{"version":3,"sources":["img/bublegum.gif","img/ping-pong.gif","function-fixes.js","appLoadingScreen.jsx","index.js","registerServiceWorker.js","store/storeFunctions.jsx","store/appContextStore.jsx","components/common/loadingComponent.jsx","components/common/logger.jsx","store/apiWrapper.jsx","img/CrifTimelineTrees.svg","img/Cribis.cz_grey.svg","img/Cribis.sk_grey.svg","img/Cribis.cz_white.svg","img/Cribis.sk_white.svg","img/repi/RepiCzWhite.svg","img/repi/RepiSkWhite.svg","img/repi/RepiCzGrey.svg","img/repi/RepiSkGrey.svg"],"names":["module","exports","window","NodeList","prototype","forEach","callback","thisArg","i","this","length","call","HTMLCollection","Array","undefined","find","Object","defineProperty","value","predicate","TypeError","obj","len","arguments","index","iValue","includes","configurable","searchElement","O","parseInt","k","n","writable","String","startsWith","needle","indexOf","endsWith","search","this_len","substring","padStart","targetLength","padString","apply","map","join","slice","from","toStr","toString","isCallable","fn","maxSafeInteger","Math","pow","toLength","number","Number","isNaN","isFinite","floor","abs","toInteger","min","max","arrayLike","C","items","T","mapFn","kValue","A","assign","target","varArgs","to","nextSource","nextKey","hasOwnProperty","findIndex","o","keys","a","nextIndex","ary","next","done","repeat","count","str","RangeError","Infinity","maxCount","log","Element","Document","DocumentFragment","item","enumerable","argArr","docFrag","document","createDocumentFragment","argItem","isNode","Node","appendChild","createTextNode","insertBefore","firstChild","require","polyfill","AppLoadingScreen","React","createElement","Fragment","localStorage","locales_login","className","isRepiWeb","alt","src","getLanguage","RepiSkWhite","RepiCzWhite","cribislogowhiteSk","cribislogowhiteCz","Circles","useLoginColor","RepiSkGrey","RepiCzGrey","cribislogograySk","cribislogograyCz","criftimelinetrees","style","position","bottom","width","opacity","AppLoader","lazy","addEventListener","isOpera","opr","opera","navigator","userAgent","isFirefox","InstallTrigger","isSafari","test","HTMLElement","pushNotification","isIE","documentMode","isEdge","StyleMedia","isChrome","chrome","webstore","runtime","isEdgeChromium","isBlink","CSS","isMobile","innerWidth","_browser","body","ReactDOM","render","Suspense","fallback","getElementById","serviceWorker","ready","then","registration","unregister","location","reload","langMap","momentLocaleMap","updateObject","old","toUpdate","updateObjectProperty","propName","propValue","_objectSpread","addToArray","arr","prop","mergeArrays","removeFromArray","filter","aitem","arr1","arr2","bitem","concat","toName","x","fromCharCode","getNested","data","path","p","split","validateInput","e","onInput","sanitizedValue","DOMPurify","sanitize","sanitizeUrl","url","allowScriptOrDataURI","allowCommsAppURI","allowDBConnectionStringURI","allowServiceAPIURI","allowBrowserSpecificURI","allowWebTransportURI","allowFileSystemURI","trim","sanitized","URISanity","vet","mergeInto","o1","o2","isArray","updateSection","sections","updated","sid","shift","tmpSections","isNullOrUndefined","_toConsumableArray","sec","id","subsections","tryParseInt","intVal","defaultVal","val","_unused","isFunction","isEmpty","isString","s","isGuid","syncWithLocalStorage","key","setItem","JSON","stringify","content","fetchFromLocalStorage","defaultValue","getItem","parse","toUtfString","replace","utftext","c","charCodeAt","padDate","locales_lang","hostname","match","isValidLanguage","lang","getMomentLanguage","getAuthorization","bearer","auth","token","openInNewWindow","name","height","screen","open","capitalize","charAt","toUpperCase","removeDiacritics","input","removeSpecial","removeStar","diacriticChars","normalizedChars","otherChars","sb","f","push","getRandomValue","res","crypto","getRandomValues","Uint32Array","msCrypto","isaac","getRepiSetting","repi","result","repiWebUrls","u","URL","origin","_unused2","writeErr","reloadApiVersion","version","sessionStorage","apiVersion","errorType","initialState","error","errorData","reducer","state","action","type","payload","pathname","message","messageData","_ref2","data-theme","data-login","lignItems","display","flex","JumpingBeans","writeDebug","write","writeInfo","writeWarn","lvlMap","methodMap","console","info","warn","level","isAllowed","mapMethod","moment","format","requested","parseQuery","logLevel","requestMap","requestStack","requestTimer","createHeaders","apiGet","params","onSuccess","onFail","always","queueApiCall","apiPost","apiPut","apiDelete","method","context","setTimeout","processQueue","clearTimeout","pop","apiFetch","Date","expires","now","_","config","headers","cache","paramsSerializer","createQs","t","generateRequestMapKey","hasOnSuccess","hasOnFail","hasAlways","ctx","axios","request","tt","MAX_SAFE_INTEGER","catch","err","response","constructor","parts","decodeURIComponent","encodeURI","setupInterceptors","store","history","interceptor","interceptors","use","status","eject","post","getHostApi","grant_type","refresh_token","refreshToken","respo","success","dispatch","isOnPath","prefix","hash","encodeURIComponent","Promise","reject","isObjectPathDefined","finally","setupAuthWatch","getState","userContext","authentication","loading","timeDiff","requestTime","issuedOn","tokenExpires","refreshExpires","isClickHit","holder","event","offset","getAbsoluteOffset","top","pageY","offsetHeight","left","pageX","offsetWidth","element","getBoundingClientRect","setupResizeDispatcher","onresize","evnt","object","getHostUrl","protocol","port","babylonApiUrl","hasPermission","user","permission","permissions","phash","sha1","getAgentLanguage","profile","agentLanguage","ex","regex","ix","generateId","S4","processError","processErrorMessage","defaultMessage","processErrorData"],"mappings":"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","file":"static/js/main.1ceffa32.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/bublegum.2c9b45c9.gif\";","module.exports = __webpack_public_path__ + \"static/media/ping-pong.0513b773.gif\";","(function () {\r\n if ('NodeList' in window && !NodeList.prototype.forEach) {\r\n NodeList.prototype.forEach = function (callback, thisArg) {\r\n thisArg = thisArg || window;\r\n for (var i = 0; i < this.length; i++) {\r\n callback.call(thisArg, this[i], i, this);\r\n }\r\n };\r\n }\r\n\r\n if ('HTMLCollection' in window && !HTMLCollection.prototype.forEach) {\r\n HTMLCollection.prototype.forEach = function (callback, thisArg) {\r\n thisArg = thisArg || window;\r\n for (var i = 0; i < this.length; i++) {\r\n callback.call(thisArg, this[i], i, this);\r\n }\r\n };\r\n }\r\n\r\n if (!Array.prototype.forEach) {\r\n Array.prototype.forEach = function (callback, thisArg) {\r\n thisArg = thisArg || window;\r\n for (var i = 0; i < this.length; i++) {\r\n callback.call(thisArg, this[i], i, this);\r\n }\r\n };\r\n }\r\n\r\n if (Array.prototype.find === undefined) {\r\n // eslint-disable-next-line\r\n Object.defineProperty(Array.prototype, 'find', {\r\n value: function (predicate) {\r\n\r\n if (this === null) {\r\n throw new TypeError('this is null or not defined');\r\n }\r\n\r\n var obj = Object(this);\r\n var len = obj.length >>> 0;\r\n\r\n if (typeof predicate !== 'function') {\r\n throw new TypeError('predicate must be a function');\r\n }\r\n\r\n var thisArg = arguments[1];\r\n var index = 0;\r\n\r\n while (index < len) {\r\n var iValue = obj[index];\r\n if (predicate.call(thisArg, iValue, index, obj)) {\r\n return iValue;\r\n }\r\n index++;\r\n }\r\n return undefined;\r\n }\r\n });\r\n }\r\n\r\n if (Array.prototype.includes === undefined) {\r\n // eslint-disable-next-line\r\n Object.defineProperty(Array.prototype, 'includes', {\r\n configurable: true,\r\n value: function includes(searchElement) {\r\n var O = Object(this);\r\n var len = parseInt(O.length, 10) || 0;\r\n if (len === 0) {\r\n return false;\r\n }\r\n var n = parseInt(arguments[1], 10) || 0;\r\n var k;\r\n if (n >= 0) {\r\n k = n;\r\n } else {\r\n k = len + n;\r\n if (k < 0) {\r\n k = 0;\r\n }\r\n }\r\n var currentElement;\r\n while (k < len) {\r\n currentElement = O[k];\r\n if (searchElement === currentElement) {\r\n return true;\r\n }\r\n k++;\r\n }\r\n return false;\r\n },\r\n writable: true\r\n });\r\n }\r\n\r\n if (String.prototype.startsWith === undefined) {\r\n // eslint-disable-next-line\r\n Object.defineProperty(String.prototype, 'startsWith', {\r\n configurable: true,\r\n value: function startsWith(needle) {\r\n if (this.indexOf(needle) === 0) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n });\r\n }\r\n\r\n if (String.prototype.endsWith === undefined) {\r\n String.prototype.endsWith = function (search, this_len) {\r\n if (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 if (String.prototype.includes === undefined) {\r\n // eslint-disable-next-line\r\n Object.defineProperty(String.prototype, 'includes', {\r\n value: function (needle) {\r\n if (this.indexOf(needle) >= 0) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n });\r\n }\r\n\r\n if (!String.prototype.padStart) {\r\n String.prototype.padStart = function padStart(targetLength,padString) {\r\n targetLength = targetLength>>0; //truncate if number or convert non-number to 0;\r\n padString = String((typeof padString !== 'undefined' ? padString : ' '));\r\n if (this.length > targetLength) {\r\n return String(this);\r\n }\r\n else {\r\n targetLength = targetLength-this.length;\r\n if (targetLength > padString.length) {\r\n padString += Array.apply(null, Array(targetLength)).map(function(){ return padString; }).join(\"\");\r\n }\r\n return padString.slice(0,targetLength) + String(this);\r\n }\r\n };\r\n }\r\n\r\n if (!Array.from) {\r\n Array.from = (function () {\r\n var toStr = Object.prototype.toString;\r\n var isCallable = function (fn) {\r\n return typeof fn === 'function' || toStr.call(fn) === '[object Function]';\r\n };\r\n var toInteger = function (value) {\r\n var number = Number(value);\r\n if (isNaN(number)) { return 0; }\r\n if (number === 0 || !isFinite(number)) { return number; }\r\n return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number));\r\n };\r\n var maxSafeInteger = Math.pow(2, 53) - 1;\r\n var toLength = function (value) {\r\n var len = toInteger(value);\r\n return Math.min(Math.max(len, 0), maxSafeInteger);\r\n };\r\n\r\n // The length property of the from method is 1.\r\n return function from(arrayLike/*, mapFn, thisArg */) {\r\n // 1. Let C be the this value.\r\n var C = this;\r\n\r\n // 2. Let items be ToObject(arrayLike).\r\n var items = Object(arrayLike);\r\n\r\n // 3. ReturnIfAbrupt(items).\r\n if (arrayLike == null) {\r\n throw new TypeError('Array.from requires an array-like object - not null or undefined');\r\n }\r\n\r\n // 4. If mapfn is undefined, then let mapping be false.\r\n var mapFn = arguments.length > 1 ? arguments[1] : void undefined;\r\n var T;\r\n if (typeof mapFn !== 'undefined') {\r\n // 5. else\r\n // 5. a If IsCallable(mapfn) is false, throw a TypeError exception.\r\n if (!isCallable(mapFn)) {\r\n throw new TypeError('Array.from: when provided, the second argument must be a function');\r\n }\r\n\r\n // 5. b. If thisArg was supplied, let T be thisArg; else let T be undefined.\r\n if (arguments.length > 2) {\r\n T = arguments[2];\r\n }\r\n }\r\n\r\n // 10. Let lenValue be Get(items, \"length\").\r\n // 11. Let len be ToLength(lenValue).\r\n var len = toLength(items.length);\r\n\r\n // 13. If IsConstructor(C) is true, then\r\n // 13. a. Let A be the result of calling the [[Construct]] internal method\r\n // of C with an argument list containing the single item len.\r\n // 14. a. Else, Let A be ArrayCreate(len).\r\n var A = isCallable(C) ? Object(new C(len)) : new Array(len);\r\n\r\n // 16. Let k be 0.\r\n var k = 0;\r\n // 17. Repeat, while k < len… (also steps a - h)\r\n var kValue;\r\n while (k < len) {\r\n kValue = items[k];\r\n if (mapFn) {\r\n A[k] = typeof T === 'undefined' ? mapFn(kValue, k) : mapFn.call(T, kValue, k);\r\n } else {\r\n A[k] = kValue;\r\n }\r\n k += 1;\r\n }\r\n // 18. Let putStatus be Put(A, \"length\", len, true).\r\n A.length = len;\r\n // 20. Return A.\r\n return A;\r\n };\r\n }());\r\n }\r\n\r\n if (typeof Object.assign !== 'function') {\r\n // Must be writable: true, enumerable: false, configurable: true\r\n Object.defineProperty(Object, \"assign\", {\r\n value: function assign(target, varArgs) { // .length of function is 2\r\n 'use strict';\r\n if (target === null || target === undefined) {\r\n throw new TypeError('Cannot convert undefined or null to object');\r\n }\r\n\r\n var to = Object(target);\r\n\r\n for (var index = 1; index < arguments.length; index++) {\r\n var nextSource = arguments[index];\r\n\r\n if (nextSource !== null && nextSource !== undefined) {\r\n for (var nextKey in nextSource) {\r\n // Avoid bugs when hasOwnProperty is shadowed\r\n if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\r\n to[nextKey] = nextSource[nextKey];\r\n }\r\n }\r\n }\r\n }\r\n return to;\r\n },\r\n writable: true,\r\n configurable: true\r\n });\r\n }\r\n\r\n // https://tc39.github.io/ecma262/#sec-array.prototype.findindex\r\n if (!Array.prototype.findIndex) {\r\n Object.defineProperty(Array.prototype, 'findIndex', {\r\n value: function (predicate) {\r\n // 1. Let O be ? ToObject(this value).\r\n if (this == null) {\r\n throw new TypeError('\"this\" is null or not defined');\r\n }\r\n\r\n var o = Object(this);\r\n\r\n // 2. Let len be ? ToLength(? Get(O, \"length\")).\r\n var len = o.length >>> 0;\r\n\r\n // 3. If IsCallable(predicate) is false, throw a TypeError exception.\r\n if (typeof predicate !== 'function') {\r\n throw new TypeError('predicate must be a function');\r\n }\r\n\r\n // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.\r\n var thisArg = arguments[1];\r\n\r\n // 5. Let k be 0.\r\n var k = 0;\r\n\r\n // 6. Repeat, while k < len\r\n while (k < len) {\r\n // a. Let Pk be ! ToString(k).\r\n // b. Let kValue be ? Get(O, Pk).\r\n // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).\r\n // d. If testResult is true, return k.\r\n var kValue = o[k];\r\n if (predicate.call(thisArg, kValue, k, o)) {\r\n return k;\r\n }\r\n // e. Increase k by 1.\r\n k++;\r\n }\r\n\r\n // 7. Return -1.\r\n return -1;\r\n },\r\n configurable: true,\r\n writable: true\r\n });\r\n }\r\n \r\n if (![].keys) {\r\n Array.prototype.keys = function() {\r\n var k, a = [], nextIndex = 0, ary = this;\r\n k = ary.length;\r\n while (k > 0) a[--k] = k;\r\n a.next = function(){\r\n return nextIndex < ary.length ?\r\n {value: nextIndex++, done: false} :\r\n {done: true};\r\n };\r\n return a;\r\n };\r\n }\r\n\r\n // Source: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat#Polyfill\r\n if (!String.prototype.repeat) {\r\n String.prototype.repeat = function (count) {\r\n if (this == null)\r\n throw new TypeError('can\\'t convert ' + this + ' to object');\r\n\r\n var str = '' + this;\r\n // To convert string to integer.\r\n count = +count;\r\n // Check NaN\r\n if (count != count)\r\n count = 0;\r\n\r\n if (count < 0)\r\n throw new RangeError('repeat count must be non-negative');\r\n\r\n if (count == Infinity)\r\n throw new RangeError('repeat count must be less than infinity');\r\n\r\n count = Math.floor(count);\r\n if (str.length == 0 || count == 0)\r\n return '';\r\n\r\n // Ensuring count is a 31-bit integer allows us to heavily optimize the\r\n // main part. But anyway, most current (August 2014) browsers can't handle\r\n // strings 1 << 28 chars or longer, so:\r\n if (str.length * count >= 1 << 28)\r\n throw new RangeError('repeat count must not overflow maximum string size');\r\n\r\n var maxCount = str.length * count;\r\n count = Math.floor(Math.log(count) / Math.log(2));\r\n while (count) {\r\n str += str;\r\n count--;\r\n }\r\n str += str.substring(0, maxCount - str.length);\r\n return str;\r\n }\r\n }\r\n\r\n (function (arr) {\r\n arr.forEach(function (item) {\r\n if (item.hasOwnProperty('prepend')) {\r\n return;\r\n }\r\n Object.defineProperty(item, 'prepend', {\r\n configurable: true,\r\n enumerable: true,\r\n writable: true,\r\n value: function prepend() {\r\n var argArr = Array.prototype.slice.call(arguments),\r\n docFrag = document.createDocumentFragment();\r\n\r\n argArr.forEach(function (argItem) {\r\n var isNode = argItem instanceof Node;\r\n docFrag.appendChild(isNode ? argItem : document.createTextNode(String(argItem)));\r\n });\r\n\r\n this.insertBefore(docFrag, this.firstChild);\r\n }\r\n });\r\n });\r\n })([Element.prototype, Document.prototype, DocumentFragment.prototype]);\r\n\r\n (function (arr) {\r\n arr.forEach(function (item) {\r\n if (item.hasOwnProperty('append')) {\r\n return;\r\n }\r\n Object.defineProperty(item, 'append', {\r\n configurable: true,\r\n enumerable: true,\r\n writable: true,\r\n value: function append() {\r\n var argArr = Array.prototype.slice.call(arguments),\r\n docFrag = document.createDocumentFragment();\r\n\r\n argArr.forEach(function (argItem) {\r\n var isNode = argItem instanceof Node;\r\n docFrag.appendChild(isNode ? argItem : document.createTextNode(String(argItem)));\r\n });\r\n this.appendChild(docFrag);\r\n }\r\n });\r\n });\r\n })([Element.prototype, Document.prototype, DocumentFragment.prototype]);\r\n\r\n require('es6-promise').polyfill();\r\n})();\r\n","import React from 'react';\r\nimport { Circles } from './components/common/loadingComponent';\r\nimport { getLanguage, isRepiWeb } from './store/storeFunctions';\r\n\r\nimport criftimelinetrees from './img/CrifTimelineTrees.svg';\r\nimport cribislogograyCz from './img/Cribis.cz_grey.svg';\r\nimport cribislogograySk from './img/Cribis.sk_grey.svg';\r\nimport cribislogowhiteCz from './img/Cribis.cz_white.svg';\r\nimport cribislogowhiteSk from './img/Cribis.sk_white.svg';\r\n\r\nimport RepiCzWhite from './img/repi/RepiCzWhite.svg';\r\nimport RepiSkWhite from './img/repi/RepiSkWhite.svg';\r\nimport RepiCzGrey from './img/repi/RepiCzGrey.svg';\r\nimport RepiSkGrey from './img/repi/RepiSkGrey.svg';\r\n\r\nimport './appLoadingScreen.scss';\r\nimport './root.scss';\r\nimport './components/common/loadingComponent.scss';\r\n\r\nexport const AppLoadingScreen = () => {\r\n return (<>\r\n {localStorage.locales_login === 'blue' && (\r\n
\r\n {isRepiWeb()\r\n ? \"\"\r\n : \"\"}\r\n \r\n
\r\n )}\r\n {localStorage.locales_login === 'tree' && (\r\n
\r\n
\r\n {isRepiWeb()\r\n ? \"\"\r\n : \"\"}\r\n \r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n )}\r\n )\r\n};","import 'react-app-polyfill/ie11';\r\nimport './function-fixes.js';\r\n//packages\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport registerServiceWorker from './registerServiceWorker';\r\nimport { AppLoadingScreen } from './appLoadingScreen';\r\n\r\n// app js\r\nconst AppLoader = React.lazy(() => import('./appLoader'));\r\n\r\nwindow.addEventListener('DOMContentLoaded', () => {\r\n\r\n // Opera 8.0+\r\n const isOpera = (!!window.opr && !!window['opr']['addons']) || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;\r\n // Firefox 1.0+\r\n const isFirefox = typeof InstallTrigger !== 'undefined';\r\n // Safari 3.0+ \"[object HTMLElementConstructor]\" \r\n const isSafari = /constructor/i.test(window.HTMLElement) || (function (p) { return p.toString() === \"[object SafariRemoteNotification]\"; })(!window['safari'] || (typeof window['safari'] !== 'undefined' && window['safari'].pushNotification));\r\n // Internet Explorer 6-11\r\n const isIE = /*@cc_on!@*/false || !!document.documentMode;\r\n // Edge 20+\r\n const isEdge = !isIE && !!window.StyleMedia;\r\n // Chrome 1 - 79\r\n const isChrome = !!window.chrome && (!!window.chrome.webstore || !!window.chrome.runtime);\r\n // Edge (based on chromium) detection\r\n const isEdgeChromium = isChrome && (navigator.userAgent.indexOf(\"Edg\") != -1);\r\n // Blink engine detection\r\n const isBlink = (isChrome || isOpera) && !!window.CSS;\r\n // Detect any mobile browser\r\n const isMobile = /Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile|WPDesktop/i.test(navigator.userAgent) || window.innerWidth <= 574;\r\n\r\n // store in window object for later use\r\n window._browser = { isOpera, isFirefox, isSafari, isIE, isEdge, isChrome, isEdgeChromium, isBlink, isMobile }\r\n\r\n // add class to body to allow IE specific css\r\n isOpera && (document.body.className = document.body.className + ' opera');\r\n isFirefox && (document.body.className = document.body.className + ' firefox');\r\n isSafari && (document.body.className = document.body.className + ' safari');\r\n isIE && (document.body.className = document.body.className + ' ie');\r\n isEdge && (document.body.className = document.body.className + ' edge');\r\n isChrome && (document.body.className = document.body.className + ' chrome');\r\n isEdgeChromium && (document.body.className = document.body.className + ' chromium');\r\n isBlink && (document.body.className = document.body.className + ' blink');\r\n isMobile && (document.body.className = document.body.className + ' is-mobile');\r\n});\r\n\r\nReactDOM.render(\r\n <>\r\n \r\n }>\r\n \r\n \r\n , document.getElementById('root')\r\n);\r\n\r\nregisterServiceWorker();","// In production, we register a service worker to serve assets from local cache.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\r\n// cached resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\r\n// This link also includes instructions on opting out of this behavior.\r\n\r\n//const isLocalhost = Boolean(\r\n// window.location.hostname === 'localhost' ||\r\n// // [::1] is the IPv6 localhost address.\r\n// window.location.hostname === '[::1]' ||\r\n// // 127.0.0.1/8 is considered localhost for IPv4.\r\n// window.location.hostname.match(\r\n// /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n// )\r\n// );\r\n \r\n// export function register() {\r\n// if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n// // The URL constructor is available in all browsers that support SW.\r\n// const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\r\n// if (publicUrl.origin !== window.location.origin) {\r\n// // Our service worker won't work if PUBLIC_URL is on a different origin\r\n// // from what our page is served on. This might happen if a CDN is used to\r\n// // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\r\n// }\r\n \r\n// window.addEventListener('load', () => {\r\n// const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n \r\n// if (isLocalhost) {\r\n// // This is running on localhost. Lets check if a service worker still exists or not.\r\n// checkValidServiceWorker(swUrl);\r\n// } else {\r\n// // Is not local host. Just register service worker\r\n// registerValidSW(swUrl);\r\n// }\r\n// });\r\n// }\r\n// }\r\n \r\n// function registerValidSW(swUrl) {\r\n// navigator.serviceWorker\r\n// .register(swUrl)\r\n// .then(registration => {\r\n// setInterval(() => {\r\n// // check if service worker was updated on server\r\n// registration.update()\r\n// }, 1*60*1000);\r\n\r\n// registration.onupdatefound = () => {\r\n// const installingWorker = registration.installing;\r\n// installingWorker.onstatechange = () => {\r\n// if (installingWorker.state === 'installed') {\r\n// if (navigator.serviceWorker.controller) {\r\n// // At this point, the old content will have been purged and\r\n// // the fresh content will have been added to the cache.\r\n// // It's the perfect time to display a \"New content is\r\n// // available; please refresh.\" message in your web app.\r\n// console.log('New content is available; please refresh.');\r\n// window.location.reload(); //force page refresh\r\n// } else {\r\n// // At this point, everything has been precached.\r\n// // It's the perfect time to display a\r\n// // \"Content is cached for offline use.\" message.\r\n// console.log('Content is cached for offline use.');\r\n// }\r\n// }\r\n// };\r\n// };\r\n// })\r\n// .catch(error => {\r\n// console.error('Error during service worker registration:', error);\r\n// });\r\n// }\r\n \r\n// function checkValidServiceWorker(swUrl) {\r\n// // Check if the service worker can be found. If it can't reload the page.\r\n// fetch(swUrl)\r\n// .then(response => {\r\n// // Ensure service worker exists, and that we really are getting a JS file.\r\n// if (\r\n// response.status === 404 ||\r\n// response.headers.get('content-type').indexOf('javascript') === -1\r\n// ) {\r\n// // No service worker found. Probably a different app. Reload the page.\r\n// navigator.serviceWorker.ready.then(registration => {\r\n// registration.unregister().then(() => {\r\n// window.location.reload();\r\n// });\r\n// });\r\n// } else {\r\n// // Service worker found. Proceed as normal.\r\n// registerValidSW(swUrl);\r\n// }\r\n// })\r\n// .catch(() => {\r\n// console.log(\r\n// 'No internet connection found. App is running in offline mode.'\r\n// );\r\n// });\r\n// }\r\n \r\nexport default function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(function () {\r\n window.location.reload();\r\n });\r\n });\r\n }\r\n }\r\n ","import { writeErr } from \"../components/common/logger\";\r\nimport * as isaac from 'isaac';\r\nimport DOMPurify from 'dompurify';\r\nimport URISanity from \"urisanity\";\r\n\r\nconst langMap = { \".sk\": \"sk-SK\", \".cz\": \"cs-CZ\", \".en\": \"en-US\", \".de\": \"de-DE\" };\r\nconst momentLocaleMap = { \"sk-SK\": \"sk\", \"cs-CZ\": \"cs\", \"en-US\": \"en-gb\", \"de-DE\": \"de\" };\r\n\r\nfunction updateObject(old, toUpdate) {\r\n return Object.assign({}, old, toUpdate);\r\n}\r\n\r\nfunction updateObjectProperty(old, propName, propValue) {\r\n const n = { ...old };\r\n n[propName] = propValue;\r\n return n;\r\n}\r\n\r\nfunction addToArray(arr, obj, prop) {\r\n return mergeArrays(arr, [obj], prop)\r\n}\r\n\r\nfunction removeFromArray(arr, obj, prop) {\r\n return arr.filter(aitem => aitem[prop] !== obj[prop])\r\n}\r\n\r\nfunction mergeArrays(arr1, arr2, prop) {\r\n var reduced = arr1.filter(aitem => !arr2.find(bitem => aitem[prop] === bitem[prop]))\r\n return reduced.concat(arr2);\r\n}\r\n\r\nfunction toName(arr) {\r\n return arr.map(x => String.fromCharCode(x)).join('');\r\n}\r\n\r\nfunction getNested(data, path) {\r\n let o = data;\r\n const p = path.split(/[.]/);\r\n for (let i = 0; i < p.length; i++) {\r\n if (o === null || o === undefined || !o.hasOwnProperty(p[i])) {\r\n return undefined;\r\n }\r\n o = o[p[i]];\r\n }\r\n return o;\r\n}\r\n\r\nfunction validateInput(e, onInput = null) {\r\n const { value } = e.target;\r\n const sanitizedValue = DOMPurify.sanitize(value);\r\n e.target.value = sanitizedValue;\r\n\r\n if (onInput && typeof onInput === 'function') {\r\n onInput(e);\r\n }\r\n}\r\n\r\nfunction sanitizeUrl(url,\r\n allowScriptOrDataURI = false,\r\n allowCommsAppURI = false,\r\n allowDBConnectionStringURI = false,\r\n allowServiceAPIURI = false,\r\n allowBrowserSpecificURI = false,\r\n allowWebTransportURI = true,\r\n allowFileSystemURI = false\r\n) {\r\n if (url === null || url === undefined || url.trim().length === 0)\r\n return null;\r\n\r\n const sanitized = URISanity.vet(url, {\r\n allowScriptOrDataURI,\r\n allowCommsAppURI,\r\n allowDBConnectionStringURI,\r\n allowServiceAPIURI,\r\n allowBrowserSpecificURI,\r\n allowWebTransportURI,\r\n allowFileSystemURI\r\n })\r\n\r\n return sanitized === 'about:blank' ? null : sanitized;\r\n}\r\n\r\nfunction mergeInto(o1, o2) {\r\n for (var prop in o1) {\r\n if (o2.hasOwnProperty(prop)) {\r\n if (typeof (o1[prop]) === 'object' && typeof (o2[prop]) === 'object')\r\n if (Array.isArray(o1[prop]) && Array.isArray(o2[prop]))\r\n o1[prop] = o2[prop].slice(0);\r\n else\r\n o1[prop] = mergeInto(o1[prop], o2[prop])\r\n else if (typeof (o1[prop]) === 'function' && typeof (o2[prop]) === 'function')\r\n o1[prop] = o2[prop];\r\n else if (typeof (o1[prop]) !== 'object' && typeof (o2[prop]) !== 'object' && typeof (o1[prop]) !== 'function' && typeof (o2[prop]) !== 'function')\r\n o1[prop] = o2[prop];\r\n }\r\n }\r\n return o1;\r\n}\r\n\r\nfunction updateSection(sections, path, updated) {\r\n var sid = path.shift();\r\n const tmpSections = isNullOrUndefined(sections) ? [] : [...sections];\r\n //is top section\r\n if (path.length === 0) {\r\n return tmpSections.map(sec => sec.id === sid ? updateObject(sec, updated) : sec);\r\n }\r\n return tmpSections.map(sec => sec.id === sid ? Object.assign({ ...sec }, { subsections: updateSection(sec.subsections, path, updated) }) : sec);\r\n}\r\n\r\nfunction tryParseInt(intVal, defaultVal) {\r\n try {\r\n let val = parseInt(intVal);\r\n return isNaN(val) ? defaultVal : val;\r\n } catch {\r\n return defaultVal;\r\n }\r\n}\r\n\r\nfunction isNullOrUndefined(obj) {\r\n return typeof obj === \"undefined\" || obj === null;\r\n}\r\n\r\nfunction isFunction(obj) {\r\n return typeof obj === 'function';\r\n}\r\n\r\nfunction isEmpty(obj) {\r\n return isNullOrUndefined(obj) || (obj.hasOwnProperty('length') && obj.length < 1);\r\n}\r\n\r\nfunction isString(s) {\r\n return Object.prototype.toString.call(s) === \"[object String]\";\r\n}\r\n\r\nfunction isGuid(val) {\r\n const guidRegExp = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/gi;\r\n return guidRegExp.test(val);\r\n}\r\n\r\nfunction syncWithLocalStorage(key, data) {\r\n localStorage.setItem(key, JSON.stringify({ content: data }));\r\n return data;\r\n}\r\n\r\nfunction fetchFromLocalStorage(key, defaultValue) {\r\n if (localStorage.getItem(key) === null || localStorage.getItem(key) === undefined) {\r\n return syncWithLocalStorage(key, defaultValue);\r\n }\r\n return JSON.parse(localStorage[key]).content;\r\n}\r\n\r\nfunction toUtfString(str) {\r\n str = str.replace(/\\r\\n/g, \"\\n\");\r\n let utftext = \"\";\r\n for (let n = 0; n < str.length; n++) {\r\n let c = str.charCodeAt(n);\r\n if (c < 128)\r\n utftext += String.fromCharCode(c);\r\n else if ((c > 127) && (c < 2048)) {\r\n utftext += String.fromCharCode((c >> 6) | 192);\r\n utftext += String.fromCharCode((c & 63) | 128);\r\n }\r\n else {\r\n utftext += String.fromCharCode((c >> 12) | 224);\r\n utftext += String.fromCharCode(((c >> 6) & 63) | 128);\r\n utftext += String.fromCharCode((c & 63) | 128);\r\n }\r\n }\r\n return utftext;\r\n}\r\n\r\nfunction padDate(x) { return (x < 10 ? '0' : '') + x; }\r\n\r\nfunction getLanguage() {\r\n return localStorage.locales_lang || langMap[(window.location.hostname.match(/(.cz$)|(.sk$)|(.en$)|(.de$)/gi) || ['.sk'])] || \"sk-SK\";\r\n};\r\n\r\nfunction isValidLanguage(lang) {\r\n return !isNullOrUndefined(momentLocaleMap[lang]);\r\n}\r\n\r\nfunction getMomentLanguage(lang) {\r\n return momentLocaleMap[lang];\r\n}\r\n\r\nfunction getAuthorization(bearer) {\r\n if (localStorage === undefined || localStorage === null) {\r\n return \"\";\r\n }\r\n let auth = localStorage.getItem('auth');\r\n if (auth === null || auth === undefined) {\r\n return \"\";\r\n }\r\n auth = JSON.parse(auth);\r\n if (auth === null || auth === undefined || auth.token === null || auth.token === undefined) {\r\n return \"\";\r\n }\r\n\r\n return (bearer ? \"Bearer \" : \"\") + auth.token;\r\n}\r\n\r\nfunction openInNewWindow(url, name, width = 1024, height = null) {\r\n width = width > window.screen.width ? window.screen.width - 40 : width;\r\n height = height === null ? window.screen.height - 110 : height;\r\n window.open(url, name, `width=${width}, height=${height}, location=no, status=no, toolbar=no, menubar=no, scrollbars=yes, resizable=yes`);\r\n}\r\n\r\nfunction capitalize(s) {\r\n return isNullOrUndefined(s) || s.length === 0 ? s : s.charAt(0).toUpperCase() + s.slice(1);\r\n}\r\n\r\nfunction removeDiacritics(input, removeSpecial = true, removeStar = false) {\r\n if (isNullOrUndefined(input))\r\n return null;\r\n\r\n const diacriticChars = \"áäčďéěíľĺňóöőôŕřšťúůýžÁÄČĎÉĚÍĽĹŇÓÖŐÔŔŘŠŤÚŮÝŽ\";\r\n const normalizedChars = \"aacdeeillnoooorrstuuyzAACDEEILLNOOOORRSTUUYZ\";\r\n\r\n var otherChars = \"\";\r\n if (removeSpecial)\r\n otherChars = \" .,;!@#$%^&():{}[]?> {\r\n if (diacriticChars.includes(f))\r\n sb.push(normalizedChars[diacriticChars.indexOf(f)]);\r\n else if (!otherChars.includes(f))\r\n sb.push(f)\r\n });\r\n\r\n return sb.join(\"\");\r\n}\r\n\r\nfunction getRandomValue() {\r\n var res;\r\n\r\n // First we're going to try to use a built-in CSPRNG\r\n if (window.crypto && window.crypto.getRandomValues) {\r\n res = new Uint32Array(1);\r\n window.crypto.getRandomValues(res);\r\n }\r\n // Because of course IE calls it msCrypto instead of being standard\r\n else if (window.msCrypto && window.msCrypto.getRandomValues) {\r\n res = new Uint32Array(1);\r\n window.msCrypto.getRandomValues(res);\r\n }\r\n // Last resort - we'll use isaac.js to get a random number. It's seeded from Math.random(),\r\n // so this isn't ideal, but it'll still greatly increase the space of guesses a hacker would\r\n // have to make to crack the password.\r\n else {\r\n res = [(((1 + isaac.random()) * 0x10000) | 0)];\r\n }\r\n\r\n return res[0];\r\n}\r\n\r\nfunction getRepiSetting(prop, defaultValue = null) {\r\n const auth = JSON.parse(localStorage.getItem('auth'));\r\n return (isNullOrUndefined(auth) || isNullOrUndefined(auth.repi) || isNullOrUndefined(auth.repi[prop]))\r\n ? defaultValue\r\n : auth.repi[prop];\r\n}\r\n\r\nfunction isRepiWeb() {\r\n let result = localStorage.getItem(\"is_repi_web\");\r\n if (isNullOrUndefined(result)) {\r\n let value = false;\r\n const urls = window.repiWebUrls.split(\";\")\r\n urls.forEach(url => {\r\n try {\r\n const u = new URL(url);\r\n if (window.location.origin === u.origin)\r\n value = true;\r\n } catch {\r\n writeErr(`Invalid URL '${url}'`)\r\n }\r\n });\r\n\r\n localStorage.setItem(\"is_repi_web\", value);\r\n result = value;\r\n }\r\n\r\n return result === true || result === \"true\";\r\n}\r\n\r\nfunction reloadApiVersion(version) {\r\n if (!isEmpty(version))\r\n if (isNullOrUndefined(sessionStorage.apiVersion))\r\n sessionStorage.setItem(\"apiVersion\", version);\r\n else if (sessionStorage.apiVersion !== version) {\r\n sessionStorage.setItem(\"apiVersion\", version);\r\n window.location.reload();\r\n }\r\n}\r\n\r\nexport {\r\n updateObject, updateObjectProperty, getNested, mergeInto, tryParseInt, isNullOrUndefined, isFunction, toUtfString, padDate,\r\n getLanguage, getMomentLanguage, getAuthorization, addToArray, mergeArrays, removeFromArray, toName, updateSection,\r\n syncWithLocalStorage, fetchFromLocalStorage, openInNewWindow, isEmpty, isString, capitalize, removeDiacritics, getRandomValue, getRepiSetting, isRepiWeb,\r\n isValidLanguage, validateInput, reloadApiVersion, sanitizeUrl, isGuid\r\n}","const LOCATION_CHANGE = '@@router/LOCATION_CHANGE'; // hardcoded to save 9KB lib link just to get one value\r\nexport const errorType = 'MAKE_USER_UNHAPPY';\r\n\r\nconst initialState = {\r\n error: null,\r\n errorData: null\r\n};\r\n\r\n// store reducer\r\nexport const reducer = (state, action) => {\r\n state = state || initialState;\r\n switch(action.type) {\r\n case LOCATION_CHANGE:\r\n return { ...state, location: action.payload.pathname, error: null, errorData: null };\r\n case errorType:\r\n return { ...state, error: action.message, errorData: action.messageData };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import React from 'react';\r\nimport './loadingComponent.scss';\r\nimport Buble from '../../img/bublegum.gif';\r\nimport Ping from '../../img/ping-pong.gif';\r\nimport BirdAnimated from \"../../img/icons/leftPanel/BirdAnimated\";\r\n\r\n\r\nconst Loading = ({ noText, position = \"relative\" }) => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {!noText &&
}\r\n
\r\n );\r\n}\r\n\r\nconst BubleHead = () => {\r\n return (\r\n
\"\"
\r\n );\r\n}\r\nconst PingPong = () => {\r\n return (\r\n
\"\"
\r\n );\r\n}\r\n\r\nconst Circles = ({ useLoginColor }) => {\r\n if(useLoginColor) {\r\n return (\r\n
\r\n
\r\n
\r\n );\r\n }\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nconst Bird = () => {\r\n return (\r\n
\r\n \r\n
\r\n\r\n )\r\n}\r\nconst JumpingBeans = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport {\r\n Loading,\r\n BubleHead,\r\n PingPong,\r\n Circles,\r\n Bird,\r\n JumpingBeans\r\n};","import { parseQuery } from '../../store/apiWrapper'\r\nimport moment from 'moment';\r\n\r\nfunction writeDebug(message, data) { write('debug', message, data); }\r\nfunction writeInfo(message, data) { write('info', message, data); }\r\nfunction writeWarn(message, data) { write('warn', message, data); }\r\nfunction writeErr(message, data) { write('err', message, data); }\r\n\r\nconst lvlMap = {\r\n 'debug':4,\r\n 'info':3,\r\n 'warn':2,\r\n 'err':1\r\n};\r\nconst methodMap = {\r\n 'debug': console.log,\r\n 'info': console.info,\r\n 'warn': console.warn,\r\n 'err': console.error\r\n};\r\n\r\nfunction write(level, message, data){\r\n try {\r\n if (message === null || message === undefined || message === '') {\r\n if (isAllowed(level)) mapMethod(level)(moment().format('YYYY-MM-DD HH:mm:ss.SSS') + ' - [' + level + ']', data);\r\n } else if (data === null || data === undefined) {\r\n if (isAllowed(level)) mapMethod(level)(moment().format('YYYY-MM-DD HH:mm:ss.SSS') + ' - [' + level + '] - ' + message);\r\n } else {\r\n if (isAllowed(level)) mapMethod(level)(moment().format('YYYY-MM-DD HH:mm:ss.SSS') + ' - [' + level + '] - ' + message, data);\r\n }\r\n\r\n } catch(e){}\r\n}\r\n\r\nfunction isAllowed(requested) {\r\n const l1 = lvlMap[parseQuery(window.location.search).logLevel] || lvlMap[localStorage.getItem('logLevel')] || 2;\r\n const l2 = lvlMap[requested] || 0;\r\n\r\n return l1 >= l2;\r\n}\r\n\r\nfunction mapMethod(requested) {\r\n return methodMap[requested] || function(){};\r\n}\r\n\r\nexport { writeDebug, writeInfo, writeWarn, writeErr };\r\n","import { writeDebug, writeErr } from '../components/common/logger';\r\nimport { errorType } from './appContextStore';\r\nimport { push } from 'react-router-redux'\r\nimport axios from 'axios';\r\nimport sha1 from 'crypto-js/sha1';\r\nimport { getLanguage, getMomentLanguage, getAuthorization, isString, getRandomValue } from './storeFunctions';\r\n\r\nconst LOCATION_CHANGE = '@@router/LOCATION_CHANGE'; // hardcoded to save 9KB lib link just to get one value\r\nlet requestMap = [];\r\nlet requestStack = [];\r\nlet requestTimer = undefined;\r\n\r\nconst createHeaders = () => {\r\n return {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Accept-Language': getLanguage(),\r\n 'Authorization': getAuthorization(true)\r\n };\r\n};\r\n\r\n// GET | POST | PUT | DELETE must be raw functions to allow context propagation\r\nconst apiGet = function (url, params, onSuccess, onFail, always) {\r\n queueApiCall.call(this, url, params, null, 'GET', onSuccess, onFail, always)\r\n};\r\nconst apiPost = function (url, params, data, onSuccess, onFail, always) {\r\n queueApiCall.call(this, url, params, data, 'POST', onSuccess, onFail, always)\r\n};\r\nconst apiPut = function (url, params, data, onSuccess, onFail, always) {\r\n queueApiCall.call(this, url, params, data, 'PUT', onSuccess, onFail, always)\r\n};\r\nconst apiDelete = function (url, params, data, onSuccess, onFail, always) {\r\n queueApiCall.call(this, url, params, data, 'DELETE', onSuccess, onFail, always)\r\n};\r\n\r\nconst queueApiCall = function (url, params, data, method, onSuccess, onFail, always) {\r\n requestStack.push({ url, params, data, method, onSuccess, onFail, always, context: this });\r\n if (requestTimer === undefined) {\r\n requestTimer = setTimeout(() => processQueue(), 0);\r\n }\r\n};\r\n\r\nconst processQueue = function () {\r\n if (requestStack.length === 0) {\r\n clearTimeout(requestTimer);\r\n requestTimer = undefined;\r\n writeDebug('Queue empty');\r\n return;\r\n }\r\n const item = requestStack.pop();\r\n writeDebug(`Queue item [${item.url}] processing begin`);\r\n\r\n apiFetch.call(item.context, item.url, item.params, item.data, item.method, item.onSuccess, item.onFail, () => {\r\n if (isFunction(item.always)) {\r\n item.always.call(item.context);\r\n }\r\n writeDebug(`Queue item [${item.url}] processing finished`);\r\n requestTimer = setTimeout(() => processQueue(), 0);\r\n });\r\n\r\n try {\r\n // if we have still valid token run in parallel\r\n if (Date.parse(JSON.parse(localStorage.getItem('auth')).expires) > (Date.now() + 30 * 1000)) {\r\n writeDebug('Queue parallel execution');\r\n requestTimer = setTimeout(() => processQueue(), 0);\r\n }\r\n } catch (_) { }\r\n}\r\n\r\nconst apiFetch = function (url, params, data, method, onSuccess, onFail, always) {\r\n writeDebug(\"fetch - \" + method + \" - \" + url);\r\n let config = { method: method, headers: createHeaders(), cache: \"no-cache\", url, paramsSerializer: createQs };\r\n if (data !== null && data !== undefined) {\r\n config.data = JSON.stringify(data);\r\n }\r\n\r\n const t = Date.now();\r\n requestMap[generateRequestMapKey(url, params)] = t;\r\n config.params = Object.assign({}, params, { t });\r\n config.hasOnSuccess = isFunction(onSuccess);\r\n config.hasOnFail = isFunction(onFail);\r\n config.hasAlways = isFunction(always);\r\n\r\n const ctx = this;\r\n axios.request(config)\r\n .then(res => {\r\n try {\r\n const tt = requestMap[generateRequestMapKey(url, params)];\r\n const ttt = parseInt(res.headers['x-timestamp'], 10) || Number.MAX_SAFE_INTEGER;\r\n if (ttt >= tt && isFunction(onSuccess)) {\r\n onSuccess.call(ctx, res.data);\r\n }\r\n } catch (error) {\r\n writeErr('API request result processing failed', error)\r\n if (isFunction(onFail)) {\r\n onFail.call(ctx, error);\r\n }\r\n }\r\n })\r\n .catch(err => {\r\n if (isFunction(onFail)) {\r\n onFail.call(ctx, err.response);\r\n }\r\n })\r\n .then(() => {\r\n if (isFunction(always)) {\r\n always.call(ctx);\r\n }\r\n });\r\n};\r\n\r\nconst generateRequestMapKey = function (url, params) {\r\n return url + (params ? createQs(params) : '');\r\n}\r\n\r\nconst isFunction = function (obj) {\r\n return !!(obj && obj.constructor && obj.call && obj.apply);\r\n}\r\n\r\nconst parseQuery = function (url) {\r\n let params = {};\r\n const parts = url.split(/[?]/);\r\n if (parts.length !== 2) {\r\n return params;\r\n }\r\n\r\n let arr = parts[1].split(/&|=/);\r\n for (let i = 0; i < arr.length; i += 2) {\r\n params[arr[i]] = decodeURIComponent(arr[i + 1]);\r\n }\r\n return params\r\n};\r\n\r\nconst createQs = function (obj) {\r\n const keys = Object.keys(obj);\r\n return keys.map(key => {\r\n const value = obj[key];\r\n\r\n if (value === undefined || value === null) {\r\n return '';\r\n }\r\n\r\n return encodeURI(key) + '=' + encodeURI(value);\r\n }).filter(x => x.length > 0).join('&');\r\n}\r\n\r\nconst setupInterceptors = (store, history) => {\r\n const interceptor = axios.interceptors.response.use(response => response, error => {\r\n const auth = JSON.parse(localStorage.getItem('auth'));\r\n if (error.response.status === 401) {\r\n if (auth !== null && auth !== undefined && Date.parse(auth.expires) <= Date.now()) {\r\n axios.interceptors.response.eject(interceptor);\r\n return axios.post(getHostApi() + '/api/account/login',\r\n { grant_type: 'refresh_token', refresh_token: auth.refreshToken },\r\n { headers: createHeaders(), cache: \"no-cache\" })\r\n .then(respo => {\r\n if (respo.data.data.success) {\r\n store.dispatch({ type: 'USER_LOGIN', data: respo.data.data });\r\n error.response.config.headers['Authorization'] = getAuthorization(true);\r\n return axios.request(error.response.config);\r\n } else {\r\n store.dispatch({ type: 'LOGIN_EXPIRED' });\r\n if (!isOnPath({ prefix: '/login' })) {\r\n history.push(`/login?returnUrl=${encodeURIComponent(window.location.pathname + window.location.search)}`);\r\n } else {\r\n store.dispatch({ type: LOCATION_CHANGE, payload: { pathname: '/login', hash: '', search: '' } });\r\n }\r\n return Promise.reject(error);\r\n }\r\n }).catch(error => {\r\n if (isObjectPathDefined(error, 'response.data.error.message')) {\r\n store.dispatch({ type: errorType, message: error.response.data.error.message });\r\n }\r\n if (!isOnPath({ prefix: '/login' })) {\r\n history.push(`/login?returnUrl=${encodeURIComponent(window.location.pathname + window.location.search)}`);\r\n } else {\r\n store.dispatch({ type: LOCATION_CHANGE, payload: { pathname: '/login', hash: '', search: '' } });\r\n }\r\n return Promise.reject(error);\r\n }).finally(() => setupInterceptors(store, history));\r\n } else {\r\n store.dispatch({ type: 'LOGIN_EXPIRED' });\r\n if (!isOnPath({ prefix: '/login' }) && error.config.url !== getHostApi() + '/api/account/notifications') {\r\n store.dispatch(push(`/login?returnUrl=${encodeURIComponent(window.location.pathname + window.location.search)}`));\r\n }\r\n return Promise.reject(error);\r\n }\r\n } else if (error.response.status === 403) {\r\n if (isObjectPathDefined(error, 'response.data.error.message') && !error.config.hasOnFail) {\r\n store.dispatch({ type: errorType, message: error.response.data.error.message });\r\n }\r\n } else if (error.response.status === 404) {\r\n\r\n } else {\r\n if ((error.config.url !== getHostApi() + '/api/account/notifications') && !error.config.hasOnFail)\r\n store.dispatch({ type: errorType, message: \"UnhappyUser.InternalServerError\" });\r\n }\r\n return Promise.reject(error);\r\n });\r\n};\r\n\r\nconst setupAuthWatch = (store, history) => {\r\n let auth = localStorage.getItem('auth');\r\n if ((auth === null || auth === undefined) && !store.getState().userContext.authentication.loading) {\r\n if (!isOnPath({ prefix: '/login' })) {\r\n writeDebug('Authentication expired, dispatching [LOGIN_EXPIRED] event')\r\n store.dispatch({ type: 'LOGIN_EXPIRED' })\r\n }\r\n setTimeout(() => setupAuthWatch(store, history), 1000);\r\n return;\r\n }\r\n auth = JSON.parse(auth);\r\n const authDefined = auth !== null && auth !== undefined && auth.expires !== null && auth.expires !== undefined;\r\n if (authDefined) {\r\n const timeDiff = (auth.requestTime === undefined || auth.requestTime === null || auth.issuedOn === undefined || auth.issuedOn === null) ? 0 : new Date(auth.requestTime) - new Date(auth.issuedOn);\r\n const tokenExpires = Date.parse(auth.expires) <= (Date.now() - timeDiff);\r\n const refreshExpires = auth.refreshExpires === undefined || (auth.refreshExpires !== undefined && Date.parse(auth.refreshExpires) <= (Date.now() - timeDiff));\r\n if (tokenExpires && refreshExpires && !isOnPath({ prefix: '/login' })) {\r\n writeDebug('Authentication expired, dispatching [LOGIN_EXPIRED] event')\r\n store.dispatch({ type: 'LOGIN_EXPIRED' });\r\n }\r\n } else {\r\n if (!isOnPath({ prefix: '/login' })) {\r\n writeDebug('Authentication object missing, dispatching [LOGIN_EXPIRED] event')\r\n store.dispatch({ type: 'LOGIN_EXPIRED' });\r\n }\r\n }\r\n setTimeout(() => setupAuthWatch(store, history), 1000);\r\n}\r\n\r\nconst isClickHit = (holder, event) => {\r\n const offset = getAbsoluteOffset(holder);\r\n const result = offset.top <= event.pageY &&\r\n event.pageY <= (offset.top + holder.offsetHeight) &&\r\n offset.left <= event.pageX &&\r\n event.pageX <= (offset.left + holder.offsetWidth);\r\n\r\n writeDebug('Click hit detection', { offset, event: { pageX: event.pageX, pageY: event.pageY, event }, result, holder });\r\n return result;\r\n}\r\n\r\nconst getAbsoluteOffset = function (element) {\r\n const body = document.body.getBoundingClientRect()\r\n const holder = element.getBoundingClientRect();\r\n return { top: holder.top - body.top, left: holder.left - body.left, width: holder.width, height: holder.height };\r\n}\r\n\r\nconst setupResizeDispatcher = function (store) {\r\n window.onresize = function (evnt) {\r\n store.dispatch({ type: 'WINDOW_RESIZE', event: evnt });\r\n };\r\n}\r\n\r\nconst isObjectPathDefined = function (object, path) {\r\n if (object === null || object === undefined) {\r\n return false;\r\n }\r\n let o = object\r\n const p = path.split(/[.]/);\r\n for (let i = 0; i < p.length; i++) {\r\n if (o === null || o === undefined || !o.hasOwnProperty(p[i])) {\r\n return false;\r\n }\r\n o = o[p[i]];\r\n }\r\n return o !== null && o !== undefined;\r\n}\r\n\r\nconst getHostUrl = function () {\r\n return window.location.protocol + '//' + window.location.hostname + (window.location.port ? ':' + window.location.port : '')\r\n}\r\n\r\nconst getHostApi = function () {\r\n return window.babylonApiUrl;\r\n}\r\n\r\nconst hasPermission = function (user, permission) {\r\n if (user === null || user === undefined) {\r\n user = { authentication: JSON.parse(localStorage.getItem('auth')) };\r\n }\r\n if (permission === null || permission === undefined)\r\n return true;\r\n if (isString(permission) && isObjectPathDefined(user, \"authentication.permissions\") && user.authentication.permissions.length) {\r\n const phash = sha1(permission.toUpperCase()).toString().toUpperCase();\r\n if (user.authentication.permissions.indexOf(phash) !== -1) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n\r\nconst getAgentLanguage = function (user) {\r\n try {\r\n if (user === null || user === undefined)\r\n user = { authentication: JSON.parse(localStorage.getItem('auth')) };\r\n return user.authentication.profile.agentLanguage;\r\n } catch (ex) {\r\n writeErr(ex);\r\n return null;\r\n }\r\n}\r\n\r\nconst isOnPath = function (config) {\r\n const { prefix, regex } = config;\r\n let result;\r\n\r\n if (regex !== null && regex !== undefined) {\r\n result = regex.test(window.location.pathname);\r\n }\r\n\r\n if (prefix !== null && prefix !== undefined) {\r\n const ix = window.location.pathname.indexOf(prefix);\r\n result = ix >= 0 && ix <= 1;\r\n }\r\n writeDebug('Path [' + window.location.pathname + window.location.search + '] evaluated [' + result + '] with config:', config)\r\n return result;\r\n}\r\n\r\nconst generateId = function () {\r\n var S4 = function () {\r\n return getRandomValue().toString(16).slice(-4);\r\n };\r\n return ('_' + S4() + S4() + S4() + S4() + S4() + S4() + S4() + S4());\r\n}\r\n\r\nconst processError = function (err, defaultValue = undefined) {\r\n return isObjectPathDefined(err, 'data.error') && typeof err.data.error === 'object' && err.data.error !== null\r\n && Object.keys(err.data.error).length > 0 ? err.data.error : defaultValue;\r\n}\r\n\r\nconst processErrorMessage = function (err, defaultMessage = \"UnhappyUser.InternalServerError\") {\r\n return isObjectPathDefined(err, 'data.error.message') && (err.data.error.message.startsWith('UnhappyUser.') && err.data.error.message !== 'UnhappyUser.InternalServerError') ? err.data.error.message : defaultMessage;\r\n}\r\n\r\nconst processErrorData = function (err, defaultValue = undefined) {\r\n return isObjectPathDefined(err, 'data.error.messageData') && typeof err.data.error.messageData === 'object' && err.data.error.messageData !== null\r\n && Object.keys(err.data.error.messageData).length > 0 ? err.data.error.messageData : defaultValue;\r\n}\r\n\r\nexport {\r\n apiGet, apiPost, apiPut, apiDelete, isOnPath, getLanguage, parseQuery, createQs, setupInterceptors, setupAuthWatch,\r\n isObjectPathDefined, getAuthorization, getHostUrl, getHostApi, hasPermission, getAgentLanguage,\r\n setupResizeDispatcher, getMomentLanguage, generateId, isClickHit, processError, processErrorMessage, processErrorData\r\n};","module.exports = __webpack_public_path__ + \"static/media/CrifTimelineTrees.a6d00ab6.svg\";","module.exports = __webpack_public_path__ + \"static/media/Cribis.cz_grey.fab90b7e.svg\";","module.exports = __webpack_public_path__ + \"static/media/Cribis.sk_grey.138d5250.svg\";","module.exports = __webpack_public_path__ + \"static/media/Cribis.cz_white.5b4ff9bf.svg\";","module.exports = __webpack_public_path__ + \"static/media/Cribis.sk_white.9f0b421b.svg\";","module.exports = __webpack_public_path__ + \"static/media/RepiCzWhite.ae5ba5bc.svg\";","module.exports = __webpack_public_path__ + \"static/media/RepiSkWhite.309d95e3.svg\";","module.exports = __webpack_public_path__ + \"static/media/RepiCzGrey.d546d7b1.svg\";","module.exports = __webpack_public_path__ + \"static/media/RepiSkGrey.20358878.svg\";"],"sourceRoot":""}