{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///../node_modules/axios/lib/core/createError.js","webpack:///../node_modules/axios/lib/core/transformData.js","webpack:///../node_modules/axios/lib/helpers/bind.js","webpack:///../node_modules/axios/lib/helpers/spread.js","webpack:///../node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///./Utils/HttpUtil.js","webpack:///../node_modules/axios/lib/cancel/CancelToken.js","webpack:///../node_modules/axios/lib/core/enhanceError.js","webpack:///./index.js","webpack:///../node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///../node_modules/axios/lib/axios.js","webpack:///../node_modules/axios/lib/core/mergeConfig.js","webpack:///../node_modules/axios/lib/core/settle.js","webpack:///../node_modules/axios/lib/defaults.js","webpack:///../node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///../node_modules/axios/index.js","webpack:///../node_modules/axios/lib/cancel/isCancel.js","webpack:///../node_modules/axios/lib/helpers/buildURL.js","webpack:///../node_modules/axios/lib/core/dispatchRequest.js","webpack:///../node_modules/axios/lib/core/buildFullPath.js","webpack:///../node_modules/axios/lib/helpers/combineURLs.js","webpack:///../src/util.js","webpack:///../src/create-element.js","webpack:///../src/component.js","webpack:///../src/diff/children.js","webpack:///../src/diff/props.js","webpack:///../src/diff/index.js","webpack:///../src/render.js","webpack:///../src/clone-element.js","webpack:///../src/create-context.js","webpack:///../src/constants.js","webpack:///../src/options.js","webpack:///../src/diff/catch-error.js","webpack:///../node_modules/axios/lib/core/InterceptorManager.js","webpack:///./Utils/UrlUtil.js","webpack:///../node_modules/preact-cli/lib/lib/entry.js","webpack:///./Utils/AuthUtil.js","webpack:///../node_modules/axios/lib/utils.js","webpack:///../node_modules/axios/lib/cancel/Cancel.js","webpack:///../node_modules/axios/lib/core/Axios.js","webpack:///../node_modules/axios/lib/helpers/cookies.js","webpack:///../node_modules/axios/lib/helpers/parseHeaders.js","webpack:///../node_modules/axios/lib/adapters/xhr.js"],"names":["__webpack_require__","moduleId","installedModules","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","enhanceError","require","message","config","code","request","response","error","Error","utils","data","headers","fns","forEach","fn","thisArg","args","Array","arguments","length","apply","callback","arr","normalizedName","toUpperCase","axios","default","HttpUtil","getMe","process","AuthUtil","getToken","verifyCode","tenantId","phoneNumber","post","CancelToken","executor","TypeError","resolvePromise","this","promise","Promise","resolve","token","reason","Cancel","throwIfRequested","source","cancel","isAxiosError","toJSON","description","number","fileName","lineNumber","columnNumber","stack","App","state","juncture","currentTenant","tenants","accessCode","heading","messageClass","navbarClass","onAccessCodeInput","e","setState","target","onPhoneNumberInput","onVerifyNew","onSubmit","ev","preventDefault","getSelectedTenant","id","then","res","visitorName","visitorPhoneNumber","0","1","2","3","4","Date","tokenStartDate","toLocaleString","tokenEndDate","metadata","keys","catch","err","Message","toggleMenu","componentDidMount","isAuthenticated","init","accessToken","UrlUtil","getUrlParamaterByName","expiresIn","saveToken","saveTokenExpiry","saveMe","console","log","alert","window","location","getAuthEndpoint","nextJuncture","validateUserHasAbility","getTenants","switchTenant","clear","logout","render","class","role","aria-label","href","src","width","height","onClick","aria-expanded","data-target","aria-hidden","map","tenant","style","type","onInput","placeholder","required","Component","url","test","createInstance","defaultConfig","context","Axios","instance","extend","mergeConfig","instanceConfig","defaults","isCancel","all","promises","spread","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","prop","isObject","deepMerge","axiosKeys","concat","otherKeys","filter","indexOf","createError","reject","validateStatus","status","setContentTypeIfUnset","isUndefined","adapter","normalizeHeaderName","DEFAULT_CONTENT_TYPE","XMLHttpRequest","toString","transformRequest","isFormData","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","JSON","stringify","transformResponse","parse","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","common","method","merge","isStandardBrowserEnv","resolveURL","msie","urlParsingNode","setAttribute","protocol","replace","host","search","hash","hostname","port","pathname","charAt","originURL","navigator","userAgent","document","createElement","requestURL","parsed","isString","__CANCEL__","encode","val","encodeURIComponent","params","paramsSerializer","serializedParams","parts","isArray","v","isDate","toISOString","push","join","hashmarkIndex","slice","throwIfCancellationRequested","cancelToken","transformData","isAbsoluteURL","combineURLs","baseURL","requestedURL","relativeURL","assign","obj","props","removeNode","node","parentNode","removeChild","children","normalizedProps","defaultProps","createVNode","ref","vnode","_children","_parent","_depth","_dom","_nextDom","_component","constructor","undefined","options","createRef","Fragment","getDomSibling","childIndex","sibling","updateParentDomPointers","child","base","enqueueRender","_dirty","rerenderQueue","rerenderCount","prevDebounce","debounceRendering","defer","queue","sort","a","b","_vnode","some","component","commitQueue","newDom","oldDom","parentDom","_parentDom","diff","_globalContext","ownerSVGElement","commitRoot","diffChildren","newParentVNode","oldParentVNode","globalContext","isSvg","excessDomChildren","isHydrating","j","oldVNode","sibDom","firstChildDom","refs","oldChildren","EMPTY_ARR","oldChildrenLength","EMPTY_OBJ","toChildArray","childVNode","nextDom","outer","appendChild","nextSibling","insertBefore","unmount","applyRef","flattened","setStyle","setProperty","IS_NON_DIMENSIONAL","dom","oldValue","useCapture","nameLower","cssText","toLowerCase","addEventListener","eventProxy","_listeners","removeEventListener","removeAttributeNS","setAttributeNS","removeAttribute","event","newVNode","tmp","isNew","oldProps","oldState","snapshot","clearProcessingException","newProps","provider","componentContext","newType","_diff","contextType","_id","_defaultValue","_processingException","_pendingError","doRender","sub","_renderCallbacks","_nextState","getDerivedStateFromProps","componentWillMount","componentWillReceiveProps","_force","shouldComponentUpdate","componentWillUpdate","componentDidUpdate","_render","getChildContext","getSnapshotBeforeUpdate","diffElementNodes","diffed","_catchError","root","_commit","cb","oldHtml","newHtml","nodeType","localName","createTextNode","createElementNS","is","childNodes","dangerouslySetInnerHTML","attributes","__html","innerHTML","hydrate","diffProps","checked","current","parentVNode","skipRemove","componentWillUnmount","replaceNode","_root","IS_HYDRATE","cloneElement","createContext","defaultValue","ctx","Consumer","Provider","subs","_this","_props","old","splice","isValidElement","hasCaught","getDerivedStateFromError","componentDidCatch","update","forceUpdate","setTimeout","InterceptorManager","handlers","use","fulfilled","rejected","eject","h","results","RegExp","exec","decodeURIComponent","interopDefault","serviceWorker","register","__webpack_public_path__","body","firstElementChild","app","preRenderData","inlineDataElement","querySelector","CLI_DATA","returnTo","redirectUri","origin","split","guidIndex","findIndex","isTokenExpired","getTime","getTokenExpiry","sessionStorage","getItem","setItem","tokenExpiresIn","expiryTime","setSeconds","getSeconds","payload","getTokenDetails","getSelectedTenantId","selectedTenantId","getAbilitiesForCurrentTenant","products","abilities","reduce","prev","curr","ability","tokenDetails","$reset","Number","isFunction","FormData","ArrayBuffer","isView","isNumber","pipe","URLSearchParams","product","assignValue","result","trim","str","interceptors","buildURL","dispatchRequest","chain","interceptor","unshift","shift","getUri","write","expires","path","domain","secure","cookie","toGMTString","read","match","remove","now","ignoreDuplicateOf","line","substr","settle","buildFullPath","parseHeaders","isURLSameOrigin","requestData","requestHeaders","auth","Authorization","btoa","username","password","fullPath","open","onreadystatechange","readyState","responseURL","responseHeaders","getAllResponseHeaders","responseType","responseText","statusText","onabort","onerror","ontimeout","timeoutErrorMessage","cookies","xsrfValue","withCredentials","setRequestHeader","onDownloadProgress","onUploadProgress","upload","abort","send"],"mappings":"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","file":"bundle.4f228.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 = \"mdyV\");\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","import { AuthUtil } from './AuthUtil';\r\n\r\nconst axios = require('axios').default;\r\n\r\nexport class HttpUtil {\r\n static getMe() {\r\n return axios.get(`${process.env.PREACT_APP_AUTH_HOST}/oauth/me`, {\r\n headers: {\r\n \"Authorization\": `Bearer ${AuthUtil.getToken()}`\r\n }\r\n });\r\n }\r\n\r\n static verifyCode(tenantId, code, phoneNumber) {\r\n return axios.post(`${process.env.PREACT_APP_API_HOST}/api/${tenantId}/access/backend/validate`,\r\n {\r\n code,\r\n phoneNumber\r\n },\r\n {\r\n headers: {\r\n \"Authorization\": `Bearer ${AuthUtil.getToken()}`\r\n }\r\n });\r\n }\r\n}","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","import './style';\r\nimport { Component } from 'preact';\r\nimport { AuthUtil } from \"./Utils/AuthUtil\";\r\nimport { HttpUtil } from \"./Utils/HttpUtil\";\r\nimport { UrlUtil } from \"./Utils/UrlUtil\";\r\n\r\nconst JUNCTURE_LOADING = 'JUNCTURE_LOADING';\r\nconst JUNCTURE_INVALID_PERMISSIONS = 'JUNCTURE_INVALID_PERMISSIONS';\r\nconst JUNCTURE_VALIDATE = 'JUNCTURE_VALIDATE';\r\nconst JUNCTURE_VALIDATED = 'JUNCTURE_VALIDATED';\r\n\r\nexport default class App extends Component {\r\n\tstate = {\r\n\t\tjuncture: JUNCTURE_LOADING,\r\n\t\tcurrentTenant: null,\r\n\t\ttenants: null,\r\n\t\taccessCode: null,\r\n\t\tphoneNumber: null,\r\n\t\tmessage: null,\r\n\t\theading: null,\r\n\t\tmessageClass: null,\r\n\t\tnavbarClass: ''\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tif (!AuthUtil.isAuthenticated()) {\r\n\t\t\tlet accessToken = UrlUtil.getUrlParamaterByName('access_token');\r\n\t\t\tlet expiresIn = UrlUtil.getUrlParamaterByName('expires_in');\r\n\t\t\tlet tenantId = UrlUtil.getUrlParamaterByName('tenantId');\r\n\r\n\t\t\tif (accessToken && expiresIn) {\r\n\t\t\t\tAuthUtil.saveToken(accessToken, tenantId ? tenantId : \"0\");\r\n\t\t\t\tAuthUtil.saveTokenExpiry(expiresIn);\r\n\t\t\t\tHttpUtil.getMe().then(res => {\r\n\t\t\t\t\tAuthUtil.saveMe(res.data);\r\n\t\t\t\t\tthis.init();\r\n\t\t\t\t}).catch(err => {\r\n\t\t\t\t\tconsole.log(err);\r\n\t\t\t\t\talert(\"Something went wrong while trying to log you in, please try again.\")\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\twindow.location = AuthUtil.getAuthEndpoint();\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.init()\r\n\t\t}\r\n\t}\r\n\r\n\tinit() {\r\n\t\tthis.setState({ currentTenant: AuthUtil.getSelectedTenant() });\r\n\t\tlet nextJuncture = AuthUtil.validateUserHasAbility('ability-access-control-validate') ? JUNCTURE_VALIDATE : JUNCTURE_INVALID_PERMISSIONS;\r\n\t\tthis.setState({ tenants: AuthUtil.getTenants(), juncture: nextJuncture });\r\n\t}\r\n\r\n\tonAccessCodeInput = e => {\r\n\t\tthis.setState({ accessCode: e.target.value });\r\n\t}\r\n\r\n\tonPhoneNumberInput = e => {\r\n\t\tthis.setState({ phoneNumber: e.target.value });\r\n\t}\r\n\r\n\tonVerifyNew = e => {\r\n\t\tthis.setState({ juncture: JUNCTURE_VALIDATE, accessCode: null, phoneNumber: null });\r\n\t}\r\n\r\n\tonSubmit = (ev) => {\r\n\t\tev.preventDefault();\r\n\t\tthis.setState({ juncture: JUNCTURE_LOADING });\r\n\r\n\t\tlet { accessCode, phoneNumber } = this.state;\r\n\r\n\t\tHttpUtil.verifyCode(AuthUtil.getSelectedTenant().id, accessCode, phoneNumber).then(res => {\r\n\t\t\tlet accessCodeStates = {\r\n\t\t\t\t0: 'Available',\r\n\t\t\t\t1: 'Entered',\r\n\t\t\t\t2: 'Exited',\r\n\t\t\t\t3: 'Revoked',\r\n\t\t\t\t4: 'Expired'\r\n\t\t\t}\r\n\r\n\t\t\tlet message = \"This token has been verified successfully: \\n\\n\"\r\n\r\n\t\t\tmessage += `Name: ${res.data.visitorName}\\n`;\r\n\t\t\tmessage += `Number: ${res.data.visitorPhoneNumber}\\n`;\r\n\t\t\tmessage += `State: ${accessCodeStates[res.data.state]}\\n\\n`;\r\n\t\t\tmessage += `Valid from ${new Date(res.data.tokenStartDate).toLocaleString()} to ${new Date(res.data.tokenEndDate).toLocaleString()}`;\r\n\r\n\t\t\tif (res.data.metadata != null && Object.keys(res.data.metadata).length > 0) {\r\n\t\t\t\tmessage += `\\n\\nAdditional Information:\\n`;\r\n\t\t\t\tfor (const key in res.data.metadata) {\r\n\t\t\t\t\tif (res.data.metadata.hasOwnProperty(key)) {\r\n\t\t\t\t\t\tconst element = res.data.metadata[key];\r\n\t\t\t\t\t\tmessage += `${key}: ${element}\\n`;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis.setState({ heading: 'Success', message: message, juncture: JUNCTURE_VALIDATED, messageClass: 'is-success' });\r\n\t\t}\r\n\t\t).catch(err => {\r\n\t\t\tlet message = err.response && err.response.data && err.response.data.Message ? err.response.data.Message : 'Failed to validate the token';\r\n\t\t\tthis.setState({ heading: 'Error', message, juncture: JUNCTURE_VALIDATED, messageClass: 'is-danger' });\r\n\t\t})\r\n\t}\r\n\r\n\ttoggleMenu = e => {\r\n\t\tlet { navbarClass } = this.state;\r\n\t\tnavbarClass = navbarClass ? '' : 'is-active';\r\n\t\tthis.setState({ navbarClass })\r\n\t}\r\n\r\n\tswitchTenant(tenantId) {\r\n\t\tthis.setState({ juncture: JUNCTURE_LOADING })\r\n\t\tAuthUtil.clear();\r\n\t\twindow.location = AuthUtil.getAuthEndpoint(tenantId);\r\n\t}\r\n\r\n\tlogout() {\r\n\t\tAuthUtil.logout();\r\n\t}\r\n\r\n\trender() {\r\n\t\tlet { juncture, currentTenant, tenants, accessCode, phoneNumber, message, heading, messageClass, navbarClass } = this.state;\r\n\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t\r\n\r\n\t\t\t\t{juncture == JUNCTURE_LOADING &&\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t

Loading

\r\n\t\t\t\t\t\t

Loading, please wait

\r\n\t\t\t\t\t
\r\n\t\t\t\t}\r\n\r\n\t\t\t\t{juncture == JUNCTURE_INVALID_PERMISSIONS &&\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t

Unauthorized

\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\tYou are not authorized to validate access codes.\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t}\r\n\r\n\t\t\t\t{juncture == JUNCTURE_VALIDATE &&\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t

Validate Access

\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t}\r\n\r\n\t\t\t\t{juncture == JUNCTURE_VALIDATED &&\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t

{heading}

\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t{message}\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t}\r\n\t\t\t
\r\n\t\t);\r\n\t}\r\n}\r\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'params', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy'];\n var defaultToConfig2Keys = [\n 'baseURL', 'url', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress',\n 'maxContentLength', 'validateStatus', 'maxRedirects', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath'\n ];\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, function mergeDeepProperties(prop) {\n if (utils.isObject(config2[prop])) {\n config[prop] = utils.deepMerge(config1[prop], config2[prop]);\n } else if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (utils.isObject(config1[prop])) {\n config[prop] = utils.deepMerge(config1[prop]);\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys);\n\n var otherKeys = Object\n .keys(config2)\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, function otherKeysDefaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","module.exports = require('./lib/axios');","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Remove a child node from its parent if attached. This is a workaround for\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\n * is smaller than including a dedicated polyfill.\n * @param {Node} node The node to remove\n */\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n","import options from './options';\n\n/**\n * Create an virtual node (used for JSX)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * constructor for this virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array} [children] The children of the virtual node\n * @returns {import('./internal').VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\ti;\n\tfor (i in props) {\n\t\tif (i !== 'key' && i !== 'ref') normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 3) {\n\t\tchildren = [children];\n\t\t// https://github.com/preactjs/preact/issues/1916\n\t\tfor (i = 3; i < arguments.length; i++) {\n\t\t\tchildren.push(arguments[i]);\n\t\t}\n\t}\n\tif (children != null) {\n\t\tnormalizedProps.children = children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type === 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(\n\t\ttype,\n\t\tnormalizedProps,\n\t\tprops && props.key,\n\t\tprops && props.ref\n\t);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {import('./internal').VNode}\n */\nexport function createVNode(type, props, key, ref) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\n\t\t// be set to dom.nextSibling which can return `null` and it is important\n\t\t// to be able to distinguish between an uninitialized _nextDom and\n\t\t// a _nextDom that has been set to `null`\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\tconstructor: undefined\n\t};\n\n\tif (options.vnode) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn {};\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is import('./internal').VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor === undefined;\n","import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function Component(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nComponent.prototype.setState = function(update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\tupdate = update(s, this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nComponent.prototype.forceUpdate = function(callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {import('./index').ComponentChildren | void}\n */\nComponent.prototype.render = Fragment;\n\n/**\n * @param {import('./internal').VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._parent._children.indexOf(vnode) + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type === 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {import('./internal').Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet vnode = component._vnode,\n\t\toldDom = vnode._dom,\n\t\tparentDom = component._parentDom;\n\n\tif (parentDom) {\n\t\tlet commitQueue = [];\n\t\tlet newDom = diff(\n\t\t\tparentDom,\n\t\t\tvnode,\n\t\t\tassign({}, vnode),\n\t\t\tcomponent._globalContext,\n\t\t\tparentDom.ownerSVGElement !== undefined,\n\t\t\tnull,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(vnode) : oldDom\n\t\t);\n\t\tcommitRoot(commitQueue, vnode);\n\n\t\tif (newDom != oldDom) {\n\t\t\tupdateParentDomPointers(vnode);\n\t\t}\n\t}\n}\n\n/**\n * @param {import('./internal').VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\n\t\tvnode._dom = vnode._component.base = null;\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != null && child._dom != null) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array}\n */\nlet rerenderQueue = [];\nlet rerenderCount = 0;\n\n/**\n * Asynchronously schedule a callback\n * @type {(cb: () => void) => void}\n */\n/* istanbul ignore next */\n// Note the following line isn't tree-shaken by rollup cuz of rollup/rollup#2566\nconst defer =\n\ttypeof Promise == 'function'\n\t\t? Promise.prototype.then.bind(Promise.resolve())\n\t\t: setTimeout;\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\n/**\n * Enqueue a rerender of a component\n * @param {import('./internal').Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!rerenderCount++) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || defer)(process);\n\t}\n}\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet queue;\n\twhile ((rerenderCount = rerenderQueue.length)) {\n\t\tqueue = rerenderQueue.sort((a, b) => a._vnode._depth - b._vnode._depth);\n\t\trerenderQueue = [];\n\t\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t\t// process() calls from getting scheduled while `queue` is still being consumed.\n\t\tqueue.some(c => {\n\t\t\tif (c._dirty) renderComponent(c);\n\t\t});\n\t}\n}\n","import { diff, unmount, applyRef } from './index';\nimport { createVNode } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { removeNode } from '../util';\nimport { getDomSibling } from '../component';\n\n/**\n * Diff the children of a virtual node\n * @param {import('../internal').PreactElement} parentDom The DOM element whose\n * children are being diffed\n * @param {import('../internal').VNode} newParentVNode The new virtual\n * node whose children should be diff'ed against oldParentVNode\n * @param {import('../internal').VNode} oldParentVNode The old virtual\n * node whose children should be diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by getChildContext\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {Node | Text} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n */\nexport function diffChildren(\n\tparentDom,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet i, j, oldVNode, newDom, sibDom, firstChildDom, refs;\n\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet oldChildrenLength = oldChildren.length;\n\n\t// Only in very specific places should this logic be invoked (top level `render` and `diffElementNodes`).\n\t// I'm using `EMPTY_OBJ` to signal when `diffChildren` is invoked in these situations. I can't use `null`\n\t// for this purpose, because `null` is a valid value for `oldDom` which can mean to skip to this logic\n\t// (e.g. if mounting a new tree in which the old DOM should be ignored (usually for Fragments).\n\tif (oldDom == EMPTY_OBJ) {\n\t\tif (excessDomChildren != null) {\n\t\t\toldDom = excessDomChildren[0];\n\t\t} else if (oldChildrenLength) {\n\t\t\toldDom = getDomSibling(oldParentVNode, 0);\n\t\t} else {\n\t\t\toldDom = null;\n\t\t}\n\t}\n\n\ti = 0;\n\tnewParentVNode._children = toChildArray(\n\t\tnewParentVNode._children,\n\t\tchildVNode => {\n\t\t\tif (childVNode != null) {\n\t\t\t\tchildVNode._parent = newParentVNode;\n\t\t\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t\t\t// Check if we find a corresponding element in oldChildren.\n\t\t\t\t// If found, delete the array item by setting to `undefined`.\n\t\t\t\t// We use `undefined`, as `null` is reserved for empty placeholders\n\t\t\t\t// (holes).\n\t\t\t\toldVNode = oldChildren[i];\n\n\t\t\t\tif (\n\t\t\t\t\toldVNode === null ||\n\t\t\t\t\t(oldVNode &&\n\t\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\t\tchildVNode.type === oldVNode.type)\n\t\t\t\t) {\n\t\t\t\t\toldChildren[i] = undefined;\n\t\t\t\t} else {\n\t\t\t\t\t// Either oldVNode === undefined or oldChildrenLength > 0,\n\t\t\t\t\t// so after this loop oldVNode == null or oldVNode is a valid value.\n\t\t\t\t\tfor (j = 0; j < oldChildrenLength; j++) {\n\t\t\t\t\t\toldVNode = oldChildren[j];\n\t\t\t\t\t\t// If childVNode is unkeyed, we only match similarly unkeyed nodes, otherwise we match by key.\n\t\t\t\t\t\t// We always match by type (in either case).\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\toldVNode &&\n\t\t\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\t\t\tchildVNode.type === oldVNode.type\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\toldChildren[j] = undefined;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\toldVNode = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\toldVNode = oldVNode || EMPTY_OBJ;\n\n\t\t\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\t\t\tnewDom = diff(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldVNode,\n\t\t\t\t\tglobalContext,\n\t\t\t\t\tisSvg,\n\t\t\t\t\texcessDomChildren,\n\t\t\t\t\tcommitQueue,\n\t\t\t\t\toldDom,\n\t\t\t\t\tisHydrating\n\t\t\t\t);\n\n\t\t\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\n\t\t\t\t\tif (!refs) refs = [];\n\t\t\t\t\tif (oldVNode.ref) refs.push(oldVNode.ref, null, childVNode);\n\t\t\t\t\trefs.push(j, childVNode._component || newDom, childVNode);\n\t\t\t\t}\n\n\t\t\t\t// Only proceed if the vnode has not been unmounted by `diff()` above.\n\t\t\t\tif (newDom != null) {\n\t\t\t\t\tif (firstChildDom == null) {\n\t\t\t\t\t\tfirstChildDom = newDom;\n\t\t\t\t\t}\n\n\t\t\t\t\tlet nextDom;\n\t\t\t\t\tif (childVNode._nextDom !== undefined) {\n\t\t\t\t\t\t// Only Fragments or components that return Fragment like VNodes will\n\t\t\t\t\t\t// have a non-undefined _nextDom. Continue the diff from the sibling\n\t\t\t\t\t\t// of last DOM child of this child VNode\n\t\t\t\t\t\tnextDom = childVNode._nextDom;\n\n\t\t\t\t\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because\n\t\t\t\t\t\t// it is only used by `diffChildren` to determine where to resume the diff after\n\t\t\t\t\t\t// diffing Components and Fragments. Once we store it the nextDOM local var, we\n\t\t\t\t\t\t// can clean up the property\n\t\t\t\t\t\tchildVNode._nextDom = undefined;\n\t\t\t\t\t} else if (\n\t\t\t\t\t\texcessDomChildren == oldVNode ||\n\t\t\t\t\t\tnewDom != oldDom ||\n\t\t\t\t\t\tnewDom.parentNode == null\n\t\t\t\t\t) {\n\t\t\t\t\t\t// NOTE: excessDomChildren==oldVNode above:\n\t\t\t\t\t\t// This is a compression of excessDomChildren==null && oldVNode==null!\n\t\t\t\t\t\t// The values only have the same type when `null`.\n\n\t\t\t\t\t\touter: if (oldDom == null || oldDom.parentNode !== parentDom) {\n\t\t\t\t\t\t\tparentDom.appendChild(newDom);\n\t\t\t\t\t\t\tnextDom = null;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// `j import('../internal').VNode} [callback]\n * A function to invoke for each child before it is added to the flattened list.\n * @param {Array} [flattened] An flat array of children to modify\n * @returns {import('../internal').VNode[]}\n */\nexport function toChildArray(children, callback, flattened) {\n\tif (flattened == null) flattened = [];\n\n\tif (children == null || typeof children === 'boolean') {\n\t\tif (callback) flattened.push(callback(null));\n\t} else if (Array.isArray(children)) {\n\t\tfor (let i = 0; i < children.length; i++) {\n\t\t\ttoChildArray(children[i], callback, flattened);\n\t\t}\n\t} else if (!callback) {\n\t\tflattened.push(children);\n\t} else if (typeof children === 'string' || typeof children === 'number') {\n\t\tflattened.push(callback(createVNode(null, children, null, null)));\n\t} else if (children._dom != null || children._component != null) {\n\t\tflattened.push(\n\t\t\tcallback(createVNode(children.type, children.props, children.key, null))\n\t\t);\n\t} else {\n\t\tflattened.push(callback(children));\n\t}\n\n\treturn flattened;\n}\n","import { IS_NON_DIMENSIONAL } from '../constants';\nimport options from '../options';\n\n/**\n * Diff the old and new properties of a VNode and apply changes to the DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to apply\n * changes to\n * @param {object} newProps The new props\n * @param {object} oldProps The old props\n * @param {boolean} isSvg Whether or not this node is an SVG node\n * @param {boolean} hydrate Whether or not we are in hydration mode\n */\nexport function diffProps(dom, newProps, oldProps, isSvg, hydrate) {\n\tlet i;\n\n\tfor (i in oldProps) {\n\t\tif (!(i in newProps)) {\n\t\t\tsetProperty(dom, i, null, oldProps[i], isSvg);\n\t\t}\n\t}\n\n\tfor (i in newProps) {\n\t\tif (\n\t\t\t(!hydrate || typeof newProps[i] == 'function') &&\n\t\t\ti !== 'value' &&\n\t\t\ti !== 'checked' &&\n\t\t\toldProps[i] !== newProps[i]\n\t\t) {\n\t\t\tsetProperty(dom, i, newProps[i], oldProps[i], isSvg);\n\t\t}\n\t}\n}\n\nfunction setStyle(style, key, value) {\n\tif (key[0] === '-') {\n\t\tstyle.setProperty(key, value);\n\t} else if (\n\t\ttypeof value === 'number' &&\n\t\tIS_NON_DIMENSIONAL.test(key) === false\n\t) {\n\t\tstyle[key] = value + 'px';\n\t} else if (value == null) {\n\t\tstyle[key] = '';\n\t} else {\n\t\tstyle[key] = value;\n\t}\n}\n\n/**\n * Set a property value on a DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to modify\n * @param {string} name The name of the property to set\n * @param {*} value The value to set the property to\n * @param {*} oldValue The old value the property had\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node or not\n */\nfunction setProperty(dom, name, value, oldValue, isSvg) {\n\tif (isSvg) {\n\t\tif (name === 'className') {\n\t\t\tname = 'class';\n\t\t}\n\t} else if (name === 'class') {\n\t\tname = 'className';\n\t}\n\n\tif (name === 'key' || name === 'children') {\n\t} else if (name === 'style') {\n\t\tconst s = dom.style;\n\n\t\tif (typeof value === 'string') {\n\t\t\ts.cssText = value;\n\t\t} else {\n\t\t\tif (typeof oldValue === 'string') {\n\t\t\t\ts.cssText = '';\n\t\t\t\toldValue = null;\n\t\t\t}\n\n\t\t\tif (oldValue) {\n\t\t\t\tfor (let i in oldValue) {\n\t\t\t\t\tif (!(value && i in value)) {\n\t\t\t\t\t\tsetStyle(s, i, '');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\tfor (let i in value) {\n\t\t\t\t\tif (!oldValue || value[i] !== oldValue[i]) {\n\t\t\t\t\t\tsetStyle(s, i, value[i]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6\n\telse if (name[0] === 'o' && name[1] === 'n') {\n\t\tlet useCapture = name !== (name = name.replace(/Capture$/, ''));\n\t\tlet nameLower = name.toLowerCase();\n\t\tname = (nameLower in dom ? nameLower : name).slice(2);\n\n\t\tif (value) {\n\t\t\tif (!oldValue) dom.addEventListener(name, eventProxy, useCapture);\n\t\t\t(dom._listeners || (dom._listeners = {}))[name] = value;\n\t\t} else {\n\t\t\tdom.removeEventListener(name, eventProxy, useCapture);\n\t\t}\n\t} else if (\n\t\tname !== 'list' &&\n\t\tname !== 'tagName' &&\n\t\t// HTMLButtonElement.form and HTMLInputElement.form are read-only but can be set using\n\t\t// setAttribute\n\t\tname !== 'form' &&\n\t\tname !== 'type' &&\n\t\tname !== 'size' &&\n\t\t!isSvg &&\n\t\tname in dom\n\t) {\n\t\tdom[name] = value == null ? '' : value;\n\t} else if (\n\t\ttypeof value !== 'function' &&\n\t\tname !== 'dangerouslySetInnerHTML'\n\t) {\n\t\tif (name !== (name = name.replace(/^xlink:?/, ''))) {\n\t\t\tif (value == null || value === false) {\n\t\t\t\tdom.removeAttributeNS(\n\t\t\t\t\t'http://www.w3.org/1999/xlink',\n\t\t\t\t\tname.toLowerCase()\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tdom.setAttributeNS(\n\t\t\t\t\t'http://www.w3.org/1999/xlink',\n\t\t\t\t\tname.toLowerCase(),\n\t\t\t\t\tvalue\n\t\t\t\t);\n\t\t\t}\n\t\t} else if (\n\t\t\tvalue == null ||\n\t\t\t(value === false &&\n\t\t\t\t// ARIA-attributes have a different notion of boolean values.\n\t\t\t\t// The value `false` is different from the attribute not\n\t\t\t\t// existing on the DOM, so we can't remove it. For non-boolean\n\t\t\t\t// ARIA-attributes we could treat false as a removal, but the\n\t\t\t\t// amount of exceptions would cost us too many bytes. On top of\n\t\t\t\t// that other VDOM frameworks also always stringify `false`.\n\t\t\t\t!/^ar/.test(name))\n\t\t) {\n\t\t\tdom.removeAttribute(name);\n\t\t} else {\n\t\t\tdom.setAttribute(name, value);\n\t\t}\n\t}\n}\n\n/**\n * Proxy an event to hooked event handlers\n * @param {Event} e The event object from the browser\n * @private\n */\nfunction eventProxy(e) {\n\tthis._listeners[e.type](options.event ? options.event(e) : e);\n}\n","import { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { Component } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { diffProps } from './props';\nimport { assign, removeNode } from '../util';\nimport options from '../options';\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {import('../internal').PreactElement} parentDom The parent of the DOM element\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by getChildContext\n * @param {boolean} isSvg Whether or not this element is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {Element | Text} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} [isHydrating] Whether or not we are in hydration\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== undefined) return null;\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\ttry {\n\t\touter: if (typeof newType === 'function') {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\tnewVNode._component = c = new Component(newProps, componentContext);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\t\t\tif (newType.getDerivedStateFromProps != null) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t!c._force &&\n\t\t\t\t\tc.shouldComponentUpdate != null &&\n\t\t\t\t\tc.shouldComponentUpdate(newProps, c._nextState, componentContext) ===\n\t\t\t\t\t\tfalse\n\t\t\t\t) {\n\t\t\t\t\tc.props = newProps;\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\tc._dirty = false;\n\t\t\t\t\tc._vnode = newVNode;\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\t\t\t\t\tfor (tmp = 0; tmp < newVNode._children.length; tmp++) {\n\t\t\t\t\t\tif (newVNode._children[tmp]) {\n\t\t\t\t\t\t\tnewVNode._children[tmp]._parent = newVNode;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc.state = c._nextState;\n\n\t\t\tif ((tmp = options._render)) tmp(newVNode);\n\n\t\t\tc._dirty = false;\n\t\t\tc._vnode = newVNode;\n\t\t\tc._parentDom = parentDom;\n\n\t\t\ttmp = c.render(c.props, c.state, c.context);\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type == Fragment && tmp.key == null;\n\t\t\tnewVNode._children = isTopLevelFragment\n\t\t\t\t? tmp.props.children\n\t\t\t\t: Array.isArray(tmp)\n\t\t\t\t? tmp\n\t\t\t\t: [tmp];\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (!isNew && c.getSnapshotBeforeUpdate != null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tdiffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\n\t\t\tc._force = false;\n\t\t} else {\n\t\t\tnewVNode._dom = diffElementNodes(\n\t\t\t\toldVNode._dom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\tif ((tmp = options.diffed)) tmp(newVNode);\n\t} catch (e) {\n\t\toptions._catchError(e, newVNode, oldVNode);\n\t}\n\n\treturn newVNode._dom;\n}\n\n/**\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').VNode} root\n */\nexport function commitRoot(commitQueue, root) {\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {import('../internal').PreactElement} dom The DOM element representing\n * the virtual nodes being diffed\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {*} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @returns {import('../internal').PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating\n) {\n\tlet i;\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tisSvg = newVNode.type === 'svg' || isSvg;\n\n\tif (excessDomChildren != null) {\n\t\tfor (i = 0; i < excessDomChildren.length; i++) {\n\t\t\tconst child = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tchild != null &&\n\t\t\t\t((newVNode.type === null\n\t\t\t\t\t? child.nodeType === 3\n\t\t\t\t\t: child.localName === newVNode.type) ||\n\t\t\t\t\tdom == child)\n\t\t\t) {\n\t\t\t\tdom = child;\n\t\t\t\texcessDomChildren[i] = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom == null) {\n\t\tif (newVNode.type === null) {\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tdom = isSvg\n\t\t\t? document.createElementNS('http://www.w3.org/2000/svg', newVNode.type)\n\t\t\t: document.createElement(\n\t\t\t\t\tnewVNode.type,\n\t\t\t\t\tnewProps.is && { is: newProps.is }\n\t\t\t );\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t}\n\n\tif (newVNode.type === null) {\n\t\tif (oldProps !== newProps && dom.data != newProps) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else if (newVNode !== oldVNode) {\n\t\tif (excessDomChildren != null) {\n\t\t\texcessDomChildren = EMPTY_ARR.slice.call(dom.childNodes);\n\t\t}\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\tlet oldHtml = oldProps.dangerouslySetInnerHTML;\n\t\tlet newHtml = newProps.dangerouslySetInnerHTML;\n\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tif (!isHydrating) {\n\t\t\tif (oldProps === EMPTY_OBJ) {\n\t\t\t\toldProps = {};\n\t\t\t\tfor (let i = 0; i < dom.attributes.length; i++) {\n\t\t\t\t\toldProps[dom.attributes[i].name] = dom.attributes[i].value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (newHtml || oldHtml) {\n\t\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\t\tif (!newHtml || !oldHtml || newHtml.__html != oldHtml.__html) {\n\t\t\t\t\tdom.innerHTML = (newHtml && newHtml.__html) || '';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdiffProps(dom, newProps, oldProps, isSvg, isHydrating);\n\n\t\tnewVNode._children = newVNode.props.children;\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (!newHtml) {\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tnewVNode.type === 'foreignObject' ? false : isSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tEMPTY_OBJ,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\t// (as above, don't diff props during hydration)\n\t\tif (!isHydrating) {\n\t\t\tif (\n\t\t\t\t'value' in newProps &&\n\t\t\t\tnewProps.value !== undefined &&\n\t\t\t\tnewProps.value !== dom.value\n\t\t\t) {\n\t\t\t\tdom.value = newProps.value == null ? '' : newProps.value;\n\t\t\t}\n\t\t\tif (\n\t\t\t\t'checked' in newProps &&\n\t\t\t\tnewProps.checked !== undefined &&\n\t\t\t\tnewProps.checked !== dom.checked\n\t\t\t) {\n\t\t\t\tdom.checked = newProps.checked;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn dom;\n}\n\n/**\n * Invoke or update a ref, depending on whether it is a function or object ref.\n * @param {object|function} ref\n * @param {any} value\n * @param {import('../internal').VNode} vnode\n */\nexport function applyRef(ref, value, vnode) {\n\ttry {\n\t\tif (typeof ref == 'function') ref(value);\n\t\telse ref.current = value;\n\t} catch (e) {\n\t\toptions._catchError(e, vnode);\n\t}\n}\n\n/**\n * Unmount a virtual node from the tree and apply DOM changes\n * @param {import('../internal').VNode} vnode The virtual node to unmount\n * @param {import('../internal').VNode} parentVNode The parent of the VNode that\n * initiated the unmount\n * @param {boolean} [skipRemove] Flag that indicates that a parent node of the\n * current element is already detached from the DOM.\n */\nexport function unmount(vnode, parentVNode, skipRemove) {\n\tlet r;\n\tif (options.unmount) options.unmount(vnode);\n\n\tif ((r = vnode.ref)) {\n\t\tif (!r.current || r.current === vnode._dom) applyRef(r, null, parentVNode);\n\t}\n\n\tlet dom;\n\tif (!skipRemove && typeof vnode.type !== 'function') {\n\t\tskipRemove = (dom = vnode._dom) != null;\n\t}\n\n\t// Must be set to `undefined` to properly clean up `_nextDom`\n\t// for which `null` is a valid value. See comment in `create-element.js`\n\tvnode._dom = vnode._nextDom = undefined;\n\n\tif ((r = vnode._component) != null) {\n\t\tif (r.componentWillUnmount) {\n\t\t\ttry {\n\t\t\t\tr.componentWillUnmount();\n\t\t\t} catch (e) {\n\t\t\t\toptions._catchError(e, parentVNode);\n\t\t\t}\n\t\t}\n\n\t\tr.base = r._parentDom = null;\n\t}\n\n\tif ((r = vnode._children)) {\n\t\tfor (let i = 0; i < r.length; i++) {\n\t\t\tif (r[i]) unmount(r[i], parentVNode, skipRemove);\n\t\t}\n\t}\n\n\tif (dom != null) removeNode(dom);\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n","import { EMPTY_OBJ, EMPTY_ARR } from './constants';\nimport { commitRoot, diff } from './diff/index';\nimport { createElement, Fragment } from './create-element';\nimport options from './options';\n\nconst IS_HYDRATE = EMPTY_OBJ;\n\n/**\n * Render a Preact virtual node into a DOM element\n * @param {import('./index').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * render into\n * @param {Element | Text} [replaceNode] Optional: Attempt to re-use an\n * existing DOM tree rooted at `replaceNode`\n */\nexport function render(vnode, parentDom, replaceNode) {\n\tif (options._root) options._root(vnode, parentDom);\n\n\t// We abuse the `replaceNode` parameter in `hydrate()` to signal if we\n\t// are in hydration mode or not by passing `IS_HYDRATE` instead of a\n\t// DOM element.\n\tlet isHydrating = replaceNode === IS_HYDRATE;\n\n\t// To be able to support calling `render()` multiple times on the same\n\t// DOM node, we need to obtain a reference to the previous tree. We do\n\t// this by assigning a new `_children` property to DOM nodes which points\n\t// to the last rendered tree. By default this property is not present, which\n\t// means that we are mounting a new tree for the first time.\n\tlet oldVNode = isHydrating\n\t\t? null\n\t\t: (replaceNode && replaceNode._children) || parentDom._children;\n\tvnode = createElement(Fragment, null, [vnode]);\n\n\t// List of effects that need to be called after diffing.\n\tlet commitQueue = [];\n\tdiff(\n\t\tparentDom,\n\t\t// Determine the new vnode tree and store it on the DOM element on\n\t\t// our custom `_children` property.\n\t\t((isHydrating ? parentDom : replaceNode || parentDom)._children = vnode),\n\t\toldVNode || EMPTY_OBJ,\n\t\tEMPTY_OBJ,\n\t\tparentDom.ownerSVGElement !== undefined,\n\t\treplaceNode && !isHydrating\n\t\t\t? [replaceNode]\n\t\t\t: oldVNode\n\t\t\t? null\n\t\t\t: EMPTY_ARR.slice.call(parentDom.childNodes),\n\t\tcommitQueue,\n\t\treplaceNode || EMPTY_OBJ,\n\t\tisHydrating\n\t);\n\n\t// Flush all queued effects\n\tcommitRoot(commitQueue, vnode);\n}\n\n/**\n * Update an existing DOM element with data from a Preact virtual node\n * @param {import('./index').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * update\n */\nexport function hydrate(vnode, parentDom) {\n\trender(vnode, parentDom, IS_HYDRATE);\n}\n","import { assign } from './util';\nimport { EMPTY_ARR } from './constants';\nimport { createVNode } from './create-element';\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {import('./internal').VNode} vnode The virtual DOM element to clone\n * @param {object} props Attributes/props to add when cloning\n * @param {Array} rest Any additional arguments will be used as replacement children.\n * @returns {import('./internal').VNode}\n */\nexport function cloneElement(vnode, props) {\n\tprops = assign(assign({}, vnode.props), props);\n\tif (arguments.length > 2) props.children = EMPTY_ARR.slice.call(arguments, 2);\n\treturn createVNode(\n\t\tvnode.type,\n\t\tprops,\n\t\tprops.key || vnode.key,\n\t\tprops.ref || vnode.ref\n\t);\n}\n","import { enqueueRender } from './component';\n\nexport let i = 0;\n\nexport function createContext(defaultValue) {\n\tconst ctx = {};\n\n\tconst context = {\n\t\t_id: '__cC' + i++,\n\t\t_defaultValue: defaultValue,\n\t\tConsumer(props, context) {\n\t\t\treturn props.children(context);\n\t\t},\n\t\tProvider(props) {\n\t\t\tif (!this.getChildContext) {\n\t\t\t\tconst subs = [];\n\t\t\t\tthis.getChildContext = () => {\n\t\t\t\t\tctx[context._id] = this;\n\t\t\t\t\treturn ctx;\n\t\t\t\t};\n\t\t\t\tthis.shouldComponentUpdate = _props => {\n\t\t\t\t\tif (props.value !== _props.value) {\n\t\t\t\t\t\tsubs.some(c => {\n\t\t\t\t\t\t\tc.context = _props.value;\n\t\t\t\t\t\t\tenqueueRender(c);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tthis.sub = c => {\n\t\t\t\t\tsubs.push(c);\n\t\t\t\t\tlet old = c.componentWillUnmount;\n\t\t\t\t\tc.componentWillUnmount = () => {\n\t\t\t\t\t\tsubs.splice(subs.indexOf(c), 1);\n\t\t\t\t\t\told && old.call(c);\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn props.children;\n\t\t}\n\t};\n\n\tcontext.Consumer.contextType = context;\n\n\treturn context;\n}\n","export const EMPTY_OBJ = {};\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord/i;\n","import { _catchError } from './diff/catch-error';\n\n/**\n * The `option` object can potentially contain callback functions\n * that are called during various stages of our renderer. This is the\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\n * for a full list of available option hooks (most editors/IDEs allow you to\n * ctrl+click or cmd+click on mac the type definition below).\n * @type {import('./internal').Options}\n */\nconst options = {\n\t_catchError\n};\n\nexport default options;\n","import { enqueueRender } from '../component';\n\n/**\n * Find the closest error boundary to a thrown error and call it\n * @param {object} error The thrown value\n * @param {import('../internal').VNode} vnode The vnode that threw\n * the error that was caught (except for unmounting when this parameter\n * is the highest parent that was being unmounted)\n */\nexport function _catchError(error, vnode) {\n\t/** @type {import('../internal').Component} */\n\tlet component, hasCaught;\n\n\tfor (; (vnode = vnode._parent); ) {\n\t\tif ((component = vnode._component) && !component._processingException) {\n\t\t\ttry {\n\t\t\t\tif (\n\t\t\t\t\tcomponent.constructor &&\n\t\t\t\t\tcomponent.constructor.getDerivedStateFromError != null\n\t\t\t\t) {\n\t\t\t\t\thasCaught = true;\n\t\t\t\t\tcomponent.setState(\n\t\t\t\t\t\tcomponent.constructor.getDerivedStateFromError(error)\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (component.componentDidCatch != null) {\n\t\t\t\t\thasCaught = true;\n\t\t\t\t\tcomponent.componentDidCatch(error);\n\t\t\t\t}\n\n\t\t\t\tif (hasCaught)\n\t\t\t\t\treturn enqueueRender((component._pendingError = component));\n\t\t\t} catch (e) {\n\t\t\t\terror = e;\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow error;\n}\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","export class UrlUtil {\r\n static getUrlParamaterByName(name, url) {\r\n if (!url) url = window.location.href;\r\n name = name.replace(/[\\[\\]]/g, '\\\\$&');\r\n var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),\r\n results = regex.exec(url);\r\n if (!results) return null;\r\n if (!results[2]) return '';\r\n return decodeURIComponent(results[2].replace(/\\+/g, ' '));\r\n }\r\n}","/* global __webpack_public_path__ */\n\nimport { h, render } from 'preact';\n\nconst interopDefault = m => (m && m.default ? m.default : m);\n\nif (process.env.NODE_ENV === 'development') {\n\t// enable preact devtools\n\trequire('preact/debug');\n\tif (process.env.RHL) {\n\t\t// enable hot loader\n\t\tconst hotLoader = interopDefault(require('react-hot-loader'));\n\t\thotLoader.preact(interopDefault(require('preact')));\n\t}\n\t// only add a debug sw if webpack service worker is not requested.\n\tif (!process.env.ADD_SW && 'serviceWorker' in navigator) {\n\t\t// eslint-disable-next-line no-undef\n\t\tnavigator.serviceWorker.register(__webpack_public_path__ + 'sw-debug.js');\n\t} else if (process.env.ADD_SW && 'serviceWorker' in navigator) {\n\t\t// eslint-disable-next-line no-undef\n\t\tnavigator.serviceWorker.register(\n\t\t\t__webpack_public_path__ + (process.env.ES_BUILD ? 'sw-esm.js' : 'sw.js')\n\t\t);\n\t}\n} else if (process.env.ADD_SW && 'serviceWorker' in navigator) {\n\t// eslint-disable-next-line no-undef\n\tnavigator.serviceWorker.register(\n\t\t__webpack_public_path__ + (process.env.ES_BUILD ? 'sw-esm.js' : 'sw.js')\n\t);\n}\n\nlet app = interopDefault(require('preact-cli-entrypoint'));\n\nif (typeof app === 'function') {\n\tlet root = document.body.firstElementChild;\n\n\tlet init = () => {\n\t\tlet app = interopDefault(require('preact-cli-entrypoint'));\n\t\tlet preRenderData = {};\n\t\tconst inlineDataElement = document.querySelector(\n\t\t\t'[type=\"__PREACT_CLI_DATA__\"]'\n\t\t);\n\t\tif (inlineDataElement) {\n\t\t\tpreRenderData = JSON.parse(inlineDataElement.innerHTML).preRenderData;\n\t\t}\n\t\t/* An object named CLI_DATA is passed as a prop,\n\t\t * this keeps us future proof if in case we decide,\n\t\t * to send other data like at some point in time.\n\t\t */\n\t\tconst CLI_DATA = { preRenderData };\n\t\troot = render(h(app, { CLI_DATA }), document.body, root);\n\t};\n\n\tif (module.hot) module.hot.accept('preact-cli-entrypoint', init);\n\n\tinit();\n}\n","export class AuthUtil {\r\n /**\r\n * Returns the endpoint to redirect to to authenticate with fabrik\r\n * @param tenantId\r\n */\r\n static getAuthEndpoint(tenantId = \"0\", returnTo = null) {\r\n let redirectUri = `${window.location.origin}` + (tenantId !== \"0\" ? `?tenantId=${tenantId}` : \"\");\r\n if (returnTo) {\r\n let parts = returnTo.split('/');\r\n let guidIndex = parts.findIndex(value => /^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/.test(value));\r\n if (guidIndex !== -1) {\r\n parts = parts.slice(0, guidIndex);\r\n }\r\n\r\n redirectUri += `?returnTo=${parts.join(\"/\")}`\r\n }\r\n\r\n let url = `${process.env.PREACT_APP_AUTH_HOST}/oauth/authorize`;\r\n url += \"?response_type=token\";\r\n url += `&client_id=${process.env.PREACT_APP_AUTH_CLIENT_ID}`;\r\n url += `&redirect_uri=${redirectUri}`;\r\n url += `&scope=product:${process.env.PREACT_APP_ACCESS_PRODUCT_ID} tenant:${tenantId}`\r\n return url;\r\n }\r\n\r\n /**\r\n * Returns true if the user is authenticated and has a valid token\r\n */\r\n static isAuthenticated() {\r\n return this.getToken() && !this.isTokenExpired();\r\n }\r\n\r\n /**\r\n * Returns true if the token is expired\r\n */\r\n static isTokenExpired() {\r\n console.log((new Date()).getTime(), this.getTokenExpiry(), this.getTokenExpiry() - (new Date()).getTime());\r\n return (new Date()).getTime() >= this.getTokenExpiry();\r\n }\r\n\r\n /**\r\n * Returns the bearer JWT from local storage\r\n */\r\n static getToken() {\r\n return sessionStorage.getItem(process.env.PREACT_APP_LOCAL_STORAGE_TOKEN_KEY);\r\n }\r\n\r\n /**\r\n * Saves the bearer JWT to local storage\r\n * @param token The bearer token\r\n */\r\n static saveToken(token, tenantId = \"0\") {\r\n sessionStorage.setItem(`${process.env.PREACT_APP_LOCAL_STORAGE_TOKEN_KEY}_TENANT`, tenantId);\r\n sessionStorage.setItem(process.env.PREACT_APP_LOCAL_STORAGE_TOKEN_KEY, token);\r\n }\r\n\r\n /**\r\n * Saves the bearer JWT expiry time to local storage\r\n * @param tokenExpiresIn The amount of seconds until the token expires\r\n */\r\n static saveTokenExpiry(tokenExpiresIn) {\r\n let expiryTime = new Date();\r\n expiryTime.setSeconds(expiryTime.getSeconds() + tokenExpiresIn);\r\n sessionStorage.setItem(`${process.env.PREACT_APP_LOCAL_STORAGE_TOKEN_KEY}_EXP`, (expiryTime.getTime() - 20).toString());\r\n }\r\n\r\n /**\r\n * Saved the oauth/me response to sessionstorage\r\n * @param payload The payload to save\r\n */\r\n static saveMe(payload) {\r\n sessionStorage.setItem(`${process.env.PREACT_APP_LOCAL_STORAGE_TOKEN_KEY}_ME`, JSON.stringify(payload));\r\n }\r\n\r\n /**\r\n * Returns the details of the current JWT token.\r\n * \r\n * Will return null if the user is not authenticated.\r\n */\r\n static getTokenDetails() {\r\n if (!this.isAuthenticated()) {\r\n return null;\r\n }\r\n\r\n return JSON.parse(sessionStorage.getItem(`${process.env.PREACT_APP_LOCAL_STORAGE_TOKEN_KEY}_ME`));\r\n }\r\n\r\n /**\r\n * Returns the id of the currently selected tenant\r\n */\r\n static getSelectedTenantId() {\r\n let tenantId = sessionStorage.getItem(`${process.env.PREACT_APP_LOCAL_STORAGE_TOKEN_KEY}_TENANT`);\r\n if (tenantId == \"0\") {\r\n let tokenDetails = this.getTokenDetails();\r\n if (tokenDetails.tenants.length) {\r\n tenantId = this.getTokenDetails().tenants[0].id;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n return tenantId;\r\n }\r\n\r\n /**\r\n * Returns the currently selected tenant of the active user\r\n */\r\n static getSelectedTenant() {\r\n let selectedTenantId = this.getSelectedTenantId();\r\n let tokenDetails = this.getTokenDetails();\r\n\r\n return tokenDetails.tenants.filter(t => t.id == selectedTenantId)[0];\r\n }\r\n\r\n /**\r\n * Returns the abilities for the current tenant\r\n */\r\n static getAbilitiesForCurrentTenant() {\r\n return this.getSelectedTenant().products.map(p => p.abilities).reduce((prev, curr) => prev.concat(curr), []);\r\n }\r\n\r\n /**\r\n * Validates that the user has the specified ability\r\n */\r\n static validateUserHasAbility(ability) {\r\n return this.getAbilitiesForCurrentTenant().indexOf(ability) !== -1;\r\n }\r\n\r\n /**\r\n * Retrieves the tenants of the user\r\n */\r\n static getTenants(excludeCurrentTenant) {\r\n let tokenDetails = this.getTokenDetails();\r\n let tenants = tokenDetails.tenants ? tokenDetails.tenants : [];\r\n let selectedTenantId = this.getSelectedTenantId();\r\n return selectedTenantId ? tenants.filter(t => t.id != selectedTenantId) : tenants;\r\n }\r\n\r\n /**\r\n * Logs the user out by clearing the session storage\r\n */\r\n static logout() {\r\n var url = \"\";\r\n var redirectUri = \"\";\r\n\r\n if (sessionStorage.redirectUri) {\r\n redirectUri += '/' + sessionStorage.redirectUri;\r\n }\r\n if (sessionStorage.accessToken) {\r\n sessionStorage.$reset();\r\n }\r\n\r\n url = process.env.PREACT_APP_AUTH_HOST + '/accounts/logout?returnUrl=' + encodeURIComponent(window.location.origin + redirectUri);\r\n sessionStorage.clear();\r\n window.location.href = url;\r\n };\r\n\r\n static clear() {\r\n sessionStorage.clear();\r\n }\r\n\r\n /**\r\n * Retrieves the token expiry time from sessionStorage\r\n */\r\n static getTokenExpiry() {\r\n return Number(sessionStorage.getItem(`${process.env.PREACT_APP_LOCAL_STORAGE_TOKEN_KEY}_EXP`));\r\n }\r\n}","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Function equal to merge with the difference being that no reference\n * to original objects is kept.\n *\n * @see merge\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction deepMerge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = deepMerge(result[key], val);\n } else if (typeof val === 'object') {\n result[key] = deepMerge({}, val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n deepMerge: deepMerge,\n extend: extend,\n trim: trim\n};\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n"],"sourceRoot":""}