dash-button-web 0.0.7 → 0.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/dash-button.cjs.entry.js +14 -8
- package/dist/cjs/dash-button.cjs.entry.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/web-compnont.cjs.js +1 -1
- package/dist/collection/components/my-component/dash-button.js +33 -9
- package/dist/collection/components/my-component/dash-button.js.map +1 -1
- package/dist/components/dash-button.js +15 -8
- package/dist/components/dash-button.js.map +1 -1
- package/dist/esm/dash-button.entry.js +14 -8
- package/dist/esm/dash-button.entry.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/web-compnont.js +1 -1
- package/dist/types/components/my-component/dash-button.d.ts +2 -1
- package/dist/types/components.d.ts +2 -0
- package/dist/web-compnont/{p-e4d4f568.entry.js → p-4097acc5.entry.js} +3 -3
- package/dist/web-compnont/p-4097acc5.entry.js.map +1 -0
- package/dist/web-compnont/web-compnont.esm.js +1 -1
- package/dist/web-compnont/web-compnont.esm.js.map +1 -1
- package/package.json +1 -1
- package/dist/web-compnont/p-e4d4f568.entry.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"dash-button.js","mappings":"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E,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC;AACxD,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;AACjE,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;AACjE,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;AAChE,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC;AACxD,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;AACjE,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;AACjE,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;AAChE,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC;AACxD,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;AACjE,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;AACjE,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;AAChE,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC;AACxD,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;AACjE,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;AACjE,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;AAChE,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC;AACxD,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;AACjE,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;AACjE,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;AAChE,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC;AACxD,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;AACjE,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;AACjE,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,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","names":["global","require$$0","base64"],"sources":["node_modules/base64-js/index.js","node_modules/js-sha256/src/sha256.js","node_modules/jwt-decode/build/esm/index.js","node_modules/keycloak-js/dist/keycloak.mjs","src/components/my-component/dash-button.css?tag=dash-button&encapsulation=shadow","src/components/my-component/dash-button.tsx"],"sourcesContent":["'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/**\n * [js-sha256]{@link https://github.com/emn178/js-sha256}\n *\n * @version 0.10.1\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2014-2023\n * @license MIT\n */\n/*jslint bitwise: true */\n(function () {\n 'use strict';\n\n var ERROR = 'input is invalid type';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_SHA256_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_SHA256_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_SHA256_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA256_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var EXTRA = [-2147483648, 8388608, 32768, 128];\n var SHIFT = [24, 16, 8, 0];\n var K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n ];\n var OUTPUT_TYPES = ['hex', 'array', 'digest', 'arrayBuffer'];\n\n var blocks = [];\n\n if (root.JS_SHA256_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n }\n\n if (ARRAY_BUFFER && (root.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function (obj) {\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n }\n\n var createOutputMethod = function (outputType, is224) {\n return function (message) {\n return new Sha256(is224, true).update(message)[outputType]();\n };\n };\n\n var createMethod = function (is224) {\n var method = createOutputMethod('hex', is224);\n if (NODE_JS) {\n method = nodeWrap(method, is224);\n }\n method.create = function () {\n return new Sha256(is224);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createOutputMethod(type, is224);\n }\n return method;\n };\n\n var nodeWrap = function (method, is224) {\n var crypto = require('crypto')\n var Buffer = require('buffer').Buffer;\n var algorithm = is224 ? 'sha224' : 'sha256';\n var bufferFrom;\n if (Buffer.from && !root.JS_SHA256_NO_BUFFER_FROM) {\n bufferFrom = Buffer.from;\n } else {\n bufferFrom = function (message) {\n return new Buffer(message);\n };\n }\n var nodeMethod = function (message) {\n if (typeof message === 'string') {\n return crypto.createHash(algorithm).update(message, 'utf8').digest('hex');\n } else {\n if (message === null || message === undefined) {\n throw new Error(ERROR);\n } else if (message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n }\n }\n if (Array.isArray(message) || ArrayBuffer.isView(message) ||\n message.constructor === Buffer) {\n return crypto.createHash(algorithm).update(bufferFrom(message)).digest('hex');\n } else {\n return method(message);\n }\n };\n return nodeMethod;\n };\n\n var createHmacOutputMethod = function (outputType, is224) {\n return function (key, message) {\n return new HmacSha256(key, is224, true).update(message)[outputType]();\n };\n };\n\n var createHmacMethod = function (is224) {\n var method = createHmacOutputMethod('hex', is224);\n method.create = function (key) {\n return new HmacSha256(key, is224);\n };\n method.update = function (key, message) {\n return method.create(key).update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createHmacOutputMethod(type, is224);\n }\n return method;\n };\n\n function Sha256(is224, sharedMemory) {\n if (sharedMemory) {\n blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n this.blocks = blocks;\n } else {\n this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n }\n\n if (is224) {\n this.h0 = 0xc1059ed8;\n this.h1 = 0x367cd507;\n this.h2 = 0x3070dd17;\n this.h3 = 0xf70e5939;\n this.h4 = 0xffc00b31;\n this.h5 = 0x68581511;\n this.h6 = 0x64f98fa7;\n this.h7 = 0xbefa4fa4;\n } else { // 256\n this.h0 = 0x6a09e667;\n this.h1 = 0xbb67ae85;\n this.h2 = 0x3c6ef372;\n this.h3 = 0xa54ff53a;\n this.h4 = 0x510e527f;\n this.h5 = 0x9b05688c;\n this.h6 = 0x1f83d9ab;\n this.h7 = 0x5be0cd19;\n }\n\n this.block = this.start = this.bytes = this.hBytes = 0;\n this.finalized = this.hashed = false;\n this.first = true;\n this.is224 = is224;\n }\n\n Sha256.prototype.update = function (message) {\n if (this.finalized) {\n return;\n }\n var notString, type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw new Error(ERROR);\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (!Array.isArray(message)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n throw new Error(ERROR);\n }\n }\n } else {\n throw new Error(ERROR);\n }\n notString = true;\n }\n var code, index = 0, i, length = message.length, blocks = this.blocks;\n\n while (index < length) {\n if (this.hashed) {\n this.hashed = false;\n blocks[0] = this.block;\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n\n if (notString) {\n for (i = this.start; index < length && i < 64; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < 64; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n\n this.lastByteIndex = i;\n this.bytes += i - this.start;\n if (i >= 64) {\n this.block = blocks[16];\n this.start = i - 64;\n this.hash();\n this.hashed = true;\n } else {\n this.start = i;\n }\n }\n if (this.bytes > 4294967295) {\n this.hBytes += this.bytes / 4294967296 << 0;\n this.bytes = this.bytes % 4294967296;\n }\n return this;\n };\n\n Sha256.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex;\n blocks[16] = this.block;\n blocks[i >> 2] |= EXTRA[i & 3];\n this.block = blocks[16];\n if (i >= 56) {\n if (!this.hashed) {\n this.hash();\n }\n blocks[0] = this.block;\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n blocks[14] = this.hBytes << 3 | this.bytes >>> 29;\n blocks[15] = this.bytes << 3;\n this.hash();\n };\n\n Sha256.prototype.hash = function () {\n var a = this.h0, b = this.h1, c = this.h2, d = this.h3, e = this.h4, f = this.h5, g = this.h6,\n h = this.h7, blocks = this.blocks, j, s0, s1, maj, t1, t2, ch, ab, da, cd, bc;\n\n for (j = 16; j < 64; ++j) {\n // rightrotate\n t1 = blocks[j - 15];\n s0 = ((t1 >>> 7) | (t1 << 25)) ^ ((t1 >>> 18) | (t1 << 14)) ^ (t1 >>> 3);\n t1 = blocks[j - 2];\n s1 = ((t1 >>> 17) | (t1 << 15)) ^ ((t1 >>> 19) | (t1 << 13)) ^ (t1 >>> 10);\n blocks[j] = blocks[j - 16] + s0 + blocks[j - 7] + s1 << 0;\n }\n\n bc = b & c;\n for (j = 0; j < 64; j += 4) {\n if (this.first) {\n if (this.is224) {\n ab = 300032;\n t1 = blocks[0] - 1413257819;\n h = t1 - 150054599 << 0;\n d = t1 + 24177077 << 0;\n } else {\n ab = 704751109;\n t1 = blocks[0] - 210244248;\n h = t1 - 1521486534 << 0;\n d = t1 + 143694565 << 0;\n }\n this.first = false;\n } else {\n s0 = ((a >>> 2) | (a << 30)) ^ ((a >>> 13) | (a << 19)) ^ ((a >>> 22) | (a << 10));\n s1 = ((e >>> 6) | (e << 26)) ^ ((e >>> 11) | (e << 21)) ^ ((e >>> 25) | (e << 7));\n ab = a & b;\n maj = ab ^ (a & c) ^ bc;\n ch = (e & f) ^ (~e & g);\n t1 = h + s1 + ch + K[j] + blocks[j];\n t2 = s0 + maj;\n h = d + t1 << 0;\n d = t1 + t2 << 0;\n }\n s0 = ((d >>> 2) | (d << 30)) ^ ((d >>> 13) | (d << 19)) ^ ((d >>> 22) | (d << 10));\n s1 = ((h >>> 6) | (h << 26)) ^ ((h >>> 11) | (h << 21)) ^ ((h >>> 25) | (h << 7));\n da = d & a;\n maj = da ^ (d & b) ^ ab;\n ch = (h & e) ^ (~h & f);\n t1 = g + s1 + ch + K[j + 1] + blocks[j + 1];\n t2 = s0 + maj;\n g = c + t1 << 0;\n c = t1 + t2 << 0;\n s0 = ((c >>> 2) | (c << 30)) ^ ((c >>> 13) | (c << 19)) ^ ((c >>> 22) | (c << 10));\n s1 = ((g >>> 6) | (g << 26)) ^ ((g >>> 11) | (g << 21)) ^ ((g >>> 25) | (g << 7));\n cd = c & d;\n maj = cd ^ (c & a) ^ da;\n ch = (g & h) ^ (~g & e);\n t1 = f + s1 + ch + K[j + 2] + blocks[j + 2];\n t2 = s0 + maj;\n f = b + t1 << 0;\n b = t1 + t2 << 0;\n s0 = ((b >>> 2) | (b << 30)) ^ ((b >>> 13) | (b << 19)) ^ ((b >>> 22) | (b << 10));\n s1 = ((f >>> 6) | (f << 26)) ^ ((f >>> 11) | (f << 21)) ^ ((f >>> 25) | (f << 7));\n bc = b & c;\n maj = bc ^ (b & d) ^ cd;\n ch = (f & g) ^ (~f & h);\n t1 = e + s1 + ch + K[j + 3] + blocks[j + 3];\n t2 = s0 + maj;\n e = a + t1 << 0;\n a = t1 + t2 << 0;\n this.chromeBugWorkAround = true;\n }\n\n this.h0 = this.h0 + a << 0;\n this.h1 = this.h1 + b << 0;\n this.h2 = this.h2 + c << 0;\n this.h3 = this.h3 + d << 0;\n this.h4 = this.h4 + e << 0;\n this.h5 = this.h5 + f << 0;\n this.h6 = this.h6 + g << 0;\n this.h7 = this.h7 + h << 0;\n };\n\n Sha256.prototype.hex = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n h6 = this.h6, h7 = this.h7;\n\n var hex = HEX_CHARS[(h0 >> 28) & 0x0F] + HEX_CHARS[(h0 >> 24) & 0x0F] +\n HEX_CHARS[(h0 >> 20) & 0x0F] + HEX_CHARS[(h0 >> 16) & 0x0F] +\n HEX_CHARS[(h0 >> 12) & 0x0F] + HEX_CHARS[(h0 >> 8) & 0x0F] +\n HEX_CHARS[(h0 >> 4) & 0x0F] + HEX_CHARS[h0 & 0x0F] +\n HEX_CHARS[(h1 >> 28) & 0x0F] + HEX_CHARS[(h1 >> 24) & 0x0F] +\n HEX_CHARS[(h1 >> 20) & 0x0F] + HEX_CHARS[(h1 >> 16) & 0x0F] +\n HEX_CHARS[(h1 >> 12) & 0x0F] + HEX_CHARS[(h1 >> 8) & 0x0F] +\n HEX_CHARS[(h1 >> 4) & 0x0F] + HEX_CHARS[h1 & 0x0F] +\n HEX_CHARS[(h2 >> 28) & 0x0F] + HEX_CHARS[(h2 >> 24) & 0x0F] +\n HEX_CHARS[(h2 >> 20) & 0x0F] + HEX_CHARS[(h2 >> 16) & 0x0F] +\n HEX_CHARS[(h2 >> 12) & 0x0F] + HEX_CHARS[(h2 >> 8) & 0x0F] +\n HEX_CHARS[(h2 >> 4) & 0x0F] + HEX_CHARS[h2 & 0x0F] +\n HEX_CHARS[(h3 >> 28) & 0x0F] + HEX_CHARS[(h3 >> 24) & 0x0F] +\n HEX_CHARS[(h3 >> 20) & 0x0F] + HEX_CHARS[(h3 >> 16) & 0x0F] +\n HEX_CHARS[(h3 >> 12) & 0x0F] + HEX_CHARS[(h3 >> 8) & 0x0F] +\n HEX_CHARS[(h3 >> 4) & 0x0F] + HEX_CHARS[h3 & 0x0F] +\n HEX_CHARS[(h4 >> 28) & 0x0F] + HEX_CHARS[(h4 >> 24) & 0x0F] +\n HEX_CHARS[(h4 >> 20) & 0x0F] + HEX_CHARS[(h4 >> 16) & 0x0F] +\n HEX_CHARS[(h4 >> 12) & 0x0F] + HEX_CHARS[(h4 >> 8) & 0x0F] +\n HEX_CHARS[(h4 >> 4) & 0x0F] + HEX_CHARS[h4 & 0x0F] +\n HEX_CHARS[(h5 >> 28) & 0x0F] + HEX_CHARS[(h5 >> 24) & 0x0F] +\n HEX_CHARS[(h5 >> 20) & 0x0F] + HEX_CHARS[(h5 >> 16) & 0x0F] +\n HEX_CHARS[(h5 >> 12) & 0x0F] + HEX_CHARS[(h5 >> 8) & 0x0F] +\n HEX_CHARS[(h5 >> 4) & 0x0F] + HEX_CHARS[h5 & 0x0F] +\n HEX_CHARS[(h6 >> 28) & 0x0F] + HEX_CHARS[(h6 >> 24) & 0x0F] +\n HEX_CHARS[(h6 >> 20) & 0x0F] + HEX_CHARS[(h6 >> 16) & 0x0F] +\n HEX_CHARS[(h6 >> 12) & 0x0F] + HEX_CHARS[(h6 >> 8) & 0x0F] +\n HEX_CHARS[(h6 >> 4) & 0x0F] + HEX_CHARS[h6 & 0x0F];\n if (!this.is224) {\n hex += HEX_CHARS[(h7 >> 28) & 0x0F] + HEX_CHARS[(h7 >> 24) & 0x0F] +\n HEX_CHARS[(h7 >> 20) & 0x0F] + HEX_CHARS[(h7 >> 16) & 0x0F] +\n HEX_CHARS[(h7 >> 12) & 0x0F] + HEX_CHARS[(h7 >> 8) & 0x0F] +\n HEX_CHARS[(h7 >> 4) & 0x0F] + HEX_CHARS[h7 & 0x0F];\n }\n return hex;\n };\n\n Sha256.prototype.toString = Sha256.prototype.hex;\n\n Sha256.prototype.digest = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n h6 = this.h6, h7 = this.h7;\n\n var arr = [\n (h0 >> 24) & 0xFF, (h0 >> 16) & 0xFF, (h0 >> 8) & 0xFF, h0 & 0xFF,\n (h1 >> 24) & 0xFF, (h1 >> 16) & 0xFF, (h1 >> 8) & 0xFF, h1 & 0xFF,\n (h2 >> 24) & 0xFF, (h2 >> 16) & 0xFF, (h2 >> 8) & 0xFF, h2 & 0xFF,\n (h3 >> 24) & 0xFF, (h3 >> 16) & 0xFF, (h3 >> 8) & 0xFF, h3 & 0xFF,\n (h4 >> 24) & 0xFF, (h4 >> 16) & 0xFF, (h4 >> 8) & 0xFF, h4 & 0xFF,\n (h5 >> 24) & 0xFF, (h5 >> 16) & 0xFF, (h5 >> 8) & 0xFF, h5 & 0xFF,\n (h6 >> 24) & 0xFF, (h6 >> 16) & 0xFF, (h6 >> 8) & 0xFF, h6 & 0xFF\n ];\n if (!this.is224) {\n arr.push((h7 >> 24) & 0xFF, (h7 >> 16) & 0xFF, (h7 >> 8) & 0xFF, h7 & 0xFF);\n }\n return arr;\n };\n\n Sha256.prototype.array = Sha256.prototype.digest;\n\n Sha256.prototype.arrayBuffer = function () {\n this.finalize();\n\n var buffer = new ArrayBuffer(this.is224 ? 28 : 32);\n var dataView = new DataView(buffer);\n dataView.setUint32(0, this.h0);\n dataView.setUint32(4, this.h1);\n dataView.setUint32(8, this.h2);\n dataView.setUint32(12, this.h3);\n dataView.setUint32(16, this.h4);\n dataView.setUint32(20, this.h5);\n dataView.setUint32(24, this.h6);\n if (!this.is224) {\n dataView.setUint32(28, this.h7);\n }\n return buffer;\n };\n\n function HmacSha256(key, is224, sharedMemory) {\n var i, type = typeof key;\n if (type === 'string') {\n var bytes = [], length = key.length, index = 0, code;\n for (i = 0; i < length; ++i) {\n code = key.charCodeAt(i);\n if (code < 0x80) {\n bytes[index++] = code;\n } else if (code < 0x800) {\n bytes[index++] = (0xc0 | (code >> 6));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes[index++] = (0xe0 | (code >> 12));\n bytes[index++] = (0x80 | ((code >> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (key.charCodeAt(++i) & 0x3ff));\n bytes[index++] = (0xf0 | (code >> 18));\n bytes[index++] = (0x80 | ((code >> 12) & 0x3f));\n bytes[index++] = (0x80 | ((code >> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n }\n }\n key = bytes;\n } else {\n if (type === 'object') {\n if (key === null) {\n throw new Error(ERROR);\n } else if (ARRAY_BUFFER && key.constructor === ArrayBuffer) {\n key = new Uint8Array(key);\n } else if (!Array.isArray(key)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(key)) {\n throw new Error(ERROR);\n }\n }\n } else {\n throw new Error(ERROR);\n }\n }\n\n if (key.length > 64) {\n key = (new Sha256(is224, true)).update(key).array();\n }\n\n var oKeyPad = [], iKeyPad = [];\n for (i = 0; i < 64; ++i) {\n var b = key[i] || 0;\n oKeyPad[i] = 0x5c ^ b;\n iKeyPad[i] = 0x36 ^ b;\n }\n\n Sha256.call(this, is224, sharedMemory);\n\n this.update(iKeyPad);\n this.oKeyPad = oKeyPad;\n this.inner = true;\n this.sharedMemory = sharedMemory;\n }\n HmacSha256.prototype = new Sha256();\n\n HmacSha256.prototype.finalize = function () {\n Sha256.prototype.finalize.call(this);\n if (this.inner) {\n this.inner = false;\n var innerHash = this.array();\n Sha256.call(this, this.is224, this.sharedMemory);\n this.update(this.oKeyPad);\n this.update(innerHash);\n Sha256.prototype.finalize.call(this);\n }\n };\n\n var exports = createMethod();\n exports.sha256 = exports;\n exports.sha224 = createMethod(true);\n exports.sha256.hmac = createHmacMethod();\n exports.sha224.hmac = createHmacMethod(true);\n\n if (COMMON_JS) {\n module.exports = exports;\n } else {\n root.sha256 = exports.sha256;\n root.sha224 = exports.sha224;\n if (AMD) {\n define(function () {\n return exports;\n });\n }\n }\n})();\n","export class InvalidTokenError extends Error {\n}\nInvalidTokenError.prototype.name = \"InvalidTokenError\";\nfunction b64DecodeUnicode(str) {\n return decodeURIComponent(atob(str).replace(/(.)/g, (m, p) => {\n let code = p.charCodeAt(0).toString(16).toUpperCase();\n if (code.length < 2) {\n code = \"0\" + code;\n }\n return \"%\" + code;\n }));\n}\nfunction base64UrlDecode(str) {\n let output = str.replace(/-/g, \"+\").replace(/_/g, \"/\");\n switch (output.length % 4) {\n case 0:\n break;\n case 2:\n output += \"==\";\n break;\n case 3:\n output += \"=\";\n break;\n default:\n throw new Error(\"base64 string is not of the correct length\");\n }\n try {\n return b64DecodeUnicode(output);\n }\n catch (err) {\n return atob(output);\n }\n}\nexport function jwtDecode(token, options) {\n if (typeof token !== \"string\") {\n throw new InvalidTokenError(\"Invalid token specified: must be a string\");\n }\n options || (options = {});\n const pos = options.header === true ? 0 : 1;\n const part = token.split(\".\")[pos];\n if (typeof part !== \"string\") {\n throw new InvalidTokenError(`Invalid token specified: missing part #${pos + 1}`);\n }\n let decoded;\n try {\n decoded = base64UrlDecode(part);\n }\n catch (e) {\n throw new InvalidTokenError(`Invalid token specified: invalid base64 for part #${pos + 1} (${e.message})`);\n }\n try {\n return JSON.parse(decoded);\n }\n catch (e) {\n throw new InvalidTokenError(`Invalid token specified: invalid json for part #${pos + 1} (${e.message})`);\n }\n}\n","import base64 from 'base64-js';\nimport sha256 from 'js-sha256';\nimport { jwtDecode } from 'jwt-decode';\n\n/*\n * Copyright 2016 Red Hat, Inc. and/or its affiliates\n * and other contributors as indicated by the @author tags.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nif (typeof Promise === 'undefined') {\n throw Error('Keycloak requires an environment that supports Promises. Make sure that you include the appropriate polyfill.');\n}\n\nfunction Keycloak (config) {\n if (!(this instanceof Keycloak)) {\n throw new Error(\"The 'Keycloak' constructor must be invoked with 'new'.\")\n }\n\n var kc = this;\n var adapter;\n var refreshQueue = [];\n var callbackStorage;\n\n var loginIframe = {\n enable: true,\n callbackList: [],\n interval: 5\n };\n\n var scripts = document.getElementsByTagName('script');\n for (var i = 0; i < scripts.length; i++) {\n if ((scripts[i].src.indexOf('keycloak.js') !== -1 || scripts[i].src.indexOf('keycloak.min.js') !== -1) && scripts[i].src.indexOf('version=') !== -1) {\n kc.iframeVersion = scripts[i].src.substring(scripts[i].src.indexOf('version=') + 8).split('&')[0];\n }\n }\n\n var useNonce = true;\n var logInfo = createLogger(console.info);\n var logWarn = createLogger(console.warn);\n\n kc.init = function (initOptions) {\n if (kc.didInitialize) {\n throw new Error(\"A 'Keycloak' instance can only be initialized once.\");\n }\n\n kc.didInitialize = true;\n\n kc.authenticated = false;\n\n callbackStorage = createCallbackStorage();\n var adapters = ['default', 'cordova', 'cordova-native'];\n\n if (initOptions && adapters.indexOf(initOptions.adapter) > -1) {\n adapter = loadAdapter(initOptions.adapter);\n } else if (initOptions && typeof initOptions.adapter === \"object\") {\n adapter = initOptions.adapter;\n } else {\n if (window.Cordova || window.cordova) {\n adapter = loadAdapter('cordova');\n } else {\n adapter = loadAdapter();\n }\n }\n\n if (initOptions) {\n if (typeof initOptions.useNonce !== 'undefined') {\n useNonce = initOptions.useNonce;\n }\n\n if (typeof initOptions.checkLoginIframe !== 'undefined') {\n loginIframe.enable = initOptions.checkLoginIframe;\n }\n\n if (initOptions.checkLoginIframeInterval) {\n loginIframe.interval = initOptions.checkLoginIframeInterval;\n }\n\n if (initOptions.onLoad === 'login-required') {\n kc.loginRequired = true;\n }\n\n if (initOptions.responseMode) {\n if (initOptions.responseMode === 'query' || initOptions.responseMode === 'fragment') {\n kc.responseMode = initOptions.responseMode;\n } else {\n throw 'Invalid value for responseMode';\n }\n }\n\n if (initOptions.flow) {\n switch (initOptions.flow) {\n case 'standard':\n kc.responseType = 'code';\n break;\n case 'implicit':\n kc.responseType = 'id_token token';\n break;\n case 'hybrid':\n kc.responseType = 'code id_token token';\n break;\n default:\n throw 'Invalid value for flow';\n }\n kc.flow = initOptions.flow;\n }\n\n if (initOptions.timeSkew != null) {\n kc.timeSkew = initOptions.timeSkew;\n }\n\n if(initOptions.redirectUri) {\n kc.redirectUri = initOptions.redirectUri;\n }\n\n if (initOptions.silentCheckSsoRedirectUri) {\n kc.silentCheckSsoRedirectUri = initOptions.silentCheckSsoRedirectUri;\n }\n\n if (typeof initOptions.silentCheckSsoFallback === 'boolean') {\n kc.silentCheckSsoFallback = initOptions.silentCheckSsoFallback;\n } else {\n kc.silentCheckSsoFallback = true;\n }\n\n if (initOptions.pkceMethod) {\n if (initOptions.pkceMethod !== \"S256\") {\n throw 'Invalid value for pkceMethod';\n }\n kc.pkceMethod = initOptions.pkceMethod;\n }\n\n if (typeof initOptions.enableLogging === 'boolean') {\n kc.enableLogging = initOptions.enableLogging;\n } else {\n kc.enableLogging = false;\n }\n\n if (typeof initOptions.scope === 'string') {\n kc.scope = initOptions.scope;\n }\n\n if (typeof initOptions.acrValues === 'string') {\n kc.acrValues = initOptions.acrValues;\n }\n\n if (typeof initOptions.messageReceiveTimeout === 'number' && initOptions.messageReceiveTimeout > 0) {\n kc.messageReceiveTimeout = initOptions.messageReceiveTimeout;\n } else {\n kc.messageReceiveTimeout = 10000;\n }\n }\n\n if (!kc.responseMode) {\n kc.responseMode = 'fragment';\n }\n if (!kc.responseType) {\n kc.responseType = 'code';\n kc.flow = 'standard';\n }\n\n var promise = createPromise();\n\n var initPromise = createPromise();\n initPromise.promise.then(function() {\n kc.onReady && kc.onReady(kc.authenticated);\n promise.setSuccess(kc.authenticated);\n }).catch(function(error) {\n promise.setError(error);\n });\n\n var configPromise = loadConfig();\n\n function onLoad() {\n var doLogin = function(prompt) {\n if (!prompt) {\n options.prompt = 'none';\n }\n\n if (initOptions && initOptions.locale) {\n options.locale = initOptions.locale;\n }\n kc.login(options).then(function () {\n initPromise.setSuccess();\n }).catch(function (error) {\n initPromise.setError(error);\n });\n };\n\n var checkSsoSilently = function() {\n var ifrm = document.createElement(\"iframe\");\n var src = kc.createLoginUrl({prompt: 'none', redirectUri: kc.silentCheckSsoRedirectUri});\n ifrm.setAttribute(\"src\", src);\n ifrm.setAttribute(\"sandbox\", \"allow-storage-access-by-user-activation allow-scripts allow-same-origin\");\n ifrm.setAttribute(\"title\", \"keycloak-silent-check-sso\");\n ifrm.style.display = \"none\";\n document.body.appendChild(ifrm);\n\n var messageCallback = function(event) {\n if (event.origin !== window.location.origin || ifrm.contentWindow !== event.source) {\n return;\n }\n\n var oauth = parseCallback(event.data);\n processCallback(oauth, initPromise);\n\n document.body.removeChild(ifrm);\n window.removeEventListener(\"message\", messageCallback);\n };\n\n window.addEventListener(\"message\", messageCallback);\n };\n\n var options = {};\n switch (initOptions.onLoad) {\n case 'check-sso':\n if (loginIframe.enable) {\n setupCheckLoginIframe().then(function() {\n checkLoginIframe().then(function (unchanged) {\n if (!unchanged) {\n kc.silentCheckSsoRedirectUri ? checkSsoSilently() : doLogin(false);\n } else {\n initPromise.setSuccess();\n }\n }).catch(function (error) {\n initPromise.setError(error);\n });\n });\n } else {\n kc.silentCheckSsoRedirectUri ? checkSsoSilently() : doLogin(false);\n }\n break;\n case 'login-required':\n doLogin(true);\n break;\n default:\n throw 'Invalid value for onLoad';\n }\n }\n\n function processInit() {\n var callback = parseCallback(window.location.href);\n\n if (callback) {\n window.history.replaceState(window.history.state, null, callback.newUrl);\n }\n\n if (callback && callback.valid) {\n return setupCheckLoginIframe().then(function() {\n processCallback(callback, initPromise);\n }).catch(function (error) {\n initPromise.setError(error);\n });\n } else if (initOptions) {\n if (initOptions.token && initOptions.refreshToken) {\n setToken(initOptions.token, initOptions.refreshToken, initOptions.idToken);\n\n if (loginIframe.enable) {\n setupCheckLoginIframe().then(function() {\n checkLoginIframe().then(function (unchanged) {\n if (unchanged) {\n kc.onAuthSuccess && kc.onAuthSuccess();\n initPromise.setSuccess();\n scheduleCheckIframe();\n } else {\n initPromise.setSuccess();\n }\n }).catch(function (error) {\n initPromise.setError(error);\n });\n });\n } else {\n kc.updateToken(-1).then(function() {\n kc.onAuthSuccess && kc.onAuthSuccess();\n initPromise.setSuccess();\n }).catch(function(error) {\n kc.onAuthError && kc.onAuthError();\n if (initOptions.onLoad) {\n onLoad();\n } else {\n initPromise.setError(error);\n }\n });\n }\n } else if (initOptions.onLoad) {\n onLoad();\n } else {\n initPromise.setSuccess();\n }\n } else {\n initPromise.setSuccess();\n }\n }\n\n function domReady() {\n var promise = createPromise();\n\n var checkReadyState = function () {\n if (document.readyState === 'interactive' || document.readyState === 'complete') {\n document.removeEventListener('readystatechange', checkReadyState);\n promise.setSuccess();\n }\n };\n document.addEventListener('readystatechange', checkReadyState);\n\n checkReadyState(); // just in case the event was already fired and we missed it (in case the init is done later than at the load time, i.e. it's done from code)\n\n return promise.promise;\n }\n\n configPromise.then(function () {\n domReady()\n .then(check3pCookiesSupported)\n .then(processInit)\n .catch(function (error) {\n promise.setError(error);\n });\n });\n configPromise.catch(function (error) {\n promise.setError(error);\n });\n\n return promise.promise;\n };\n\n kc.login = function (options) {\n return adapter.login(options);\n };\n\n function generateRandomData(len) {\n // use web crypto APIs if possible\n var array = null;\n var crypto = window.crypto || window.msCrypto;\n if (crypto && crypto.getRandomValues && window.Uint8Array) {\n array = new Uint8Array(len);\n crypto.getRandomValues(array);\n return array;\n }\n\n // fallback to Math random\n array = new Array(len);\n for (var j = 0; j < array.length; j++) {\n array[j] = Math.floor(256 * Math.random());\n }\n return array;\n }\n\n function generateCodeVerifier(len) {\n return generateRandomString(len, 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789');\n }\n\n function generateRandomString(len, alphabet){\n var randomData = generateRandomData(len);\n var chars = new Array(len);\n for (var i = 0; i < len; i++) {\n chars[i] = alphabet.charCodeAt(randomData[i] % alphabet.length);\n }\n return String.fromCharCode.apply(null, chars);\n }\n\n function generatePkceChallenge(pkceMethod, codeVerifier) {\n switch (pkceMethod) {\n // The use of the \"plain\" method is considered insecure and therefore not supported.\n case \"S256\":\n // hash codeVerifier, then encode as url-safe base64 without padding\n var hashBytes = new Uint8Array(sha256.arrayBuffer(codeVerifier));\n var encodedHash = base64.fromByteArray(hashBytes)\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_')\n .replace(/\\=/g, '');\n return encodedHash;\n default:\n throw 'Invalid value for pkceMethod';\n }\n }\n\n function buildClaimsParameter(requestedAcr){\n var claims = {\n id_token: {\n acr: requestedAcr\n }\n };\n return JSON.stringify(claims);\n }\n\n kc.createLoginUrl = function(options) {\n var state = createUUID();\n var nonce = createUUID();\n\n var redirectUri = adapter.redirectUri(options);\n\n var callbackState = {\n state: state,\n nonce: nonce,\n redirectUri: encodeURIComponent(redirectUri)\n };\n\n if (options && options.prompt) {\n callbackState.prompt = options.prompt;\n }\n\n var baseUrl;\n if (options && options.action == 'register') {\n baseUrl = kc.endpoints.register();\n } else {\n baseUrl = kc.endpoints.authorize();\n }\n\n var scope = options && options.scope || kc.scope;\n if (!scope) {\n // if scope is not set, default to \"openid\"\n scope = \"openid\";\n } else if (scope.indexOf(\"openid\") === -1) {\n // if openid scope is missing, prefix the given scopes with it\n scope = \"openid \" + scope;\n }\n\n var url = baseUrl\n + '?client_id=' + encodeURIComponent(kc.clientId)\n + '&redirect_uri=' + encodeURIComponent(redirectUri)\n + '&state=' + encodeURIComponent(state)\n + '&response_mode=' + encodeURIComponent(kc.responseMode)\n + '&response_type=' + encodeURIComponent(kc.responseType)\n + '&scope=' + encodeURIComponent(scope);\n if (useNonce) {\n url = url + '&nonce=' + encodeURIComponent(nonce);\n }\n\n if (options && options.prompt) {\n url += '&prompt=' + encodeURIComponent(options.prompt);\n }\n\n if (options && options.maxAge) {\n url += '&max_age=' + encodeURIComponent(options.maxAge);\n }\n\n if (options && options.loginHint) {\n url += '&login_hint=' + encodeURIComponent(options.loginHint);\n }\n\n if (options && options.idpHint) {\n url += '&kc_idp_hint=' + encodeURIComponent(options.idpHint);\n }\n\n if (options && options.action && options.action != 'register') {\n url += '&kc_action=' + encodeURIComponent(options.action);\n }\n\n if (options && options.locale) {\n url += '&ui_locales=' + encodeURIComponent(options.locale);\n }\n\n if (options && options.acr) {\n var claimsParameter = buildClaimsParameter(options.acr);\n url += '&claims=' + encodeURIComponent(claimsParameter);\n }\n\n if ((options && options.acrValues) || kc.acrValues) {\n url += '&acr_values=' + encodeURIComponent(options.acrValues || kc.acrValues);\n }\n\n if (kc.pkceMethod) {\n var codeVerifier = generateCodeVerifier(96);\n callbackState.pkceCodeVerifier = codeVerifier;\n var pkceChallenge = generatePkceChallenge(kc.pkceMethod, codeVerifier);\n url += '&code_challenge=' + pkceChallenge;\n url += '&code_challenge_method=' + kc.pkceMethod;\n }\n\n callbackStorage.add(callbackState);\n\n return url;\n };\n\n kc.logout = function(options) {\n return adapter.logout(options);\n };\n\n kc.createLogoutUrl = function(options) {\n var url = kc.endpoints.logout()\n + '?client_id=' + encodeURIComponent(kc.clientId)\n + '&post_logout_redirect_uri=' + encodeURIComponent(adapter.redirectUri(options, false));\n\n if (kc.idToken) {\n url += '&id_token_hint=' + encodeURIComponent(kc.idToken);\n }\n\n return url;\n };\n\n kc.register = function (options) {\n return adapter.register(options);\n };\n\n kc.createRegisterUrl = function(options) {\n if (!options) {\n options = {};\n }\n options.action = 'register';\n return kc.createLoginUrl(options);\n };\n\n kc.createAccountUrl = function(options) {\n var realm = getRealmUrl();\n var url = undefined;\n if (typeof realm !== 'undefined') {\n url = realm\n + '/account'\n + '?referrer=' + encodeURIComponent(kc.clientId)\n + '&referrer_uri=' + encodeURIComponent(adapter.redirectUri(options));\n }\n return url;\n };\n\n kc.accountManagement = function() {\n return adapter.accountManagement();\n };\n\n kc.hasRealmRole = function (role) {\n var access = kc.realmAccess;\n return !!access && access.roles.indexOf(role) >= 0;\n };\n\n kc.hasResourceRole = function(role, resource) {\n if (!kc.resourceAccess) {\n return false;\n }\n\n var access = kc.resourceAccess[resource || kc.clientId];\n return !!access && access.roles.indexOf(role) >= 0;\n };\n\n kc.loadUserProfile = function() {\n var url = getRealmUrl() + '/account';\n var req = new XMLHttpRequest();\n req.open('GET', url, true);\n req.setRequestHeader('Accept', 'application/json');\n req.setRequestHeader('Authorization', 'bearer ' + kc.token);\n\n var promise = createPromise();\n\n req.onreadystatechange = function () {\n if (req.readyState == 4) {\n if (req.status == 200) {\n kc.profile = JSON.parse(req.responseText);\n promise.setSuccess(kc.profile);\n } else {\n promise.setError();\n }\n }\n };\n\n req.send();\n\n return promise.promise;\n };\n\n kc.loadUserInfo = function() {\n var url = kc.endpoints.userinfo();\n var req = new XMLHttpRequest();\n req.open('GET', url, true);\n req.setRequestHeader('Accept', 'application/json');\n req.setRequestHeader('Authorization', 'bearer ' + kc.token);\n\n var promise = createPromise();\n\n req.onreadystatechange = function () {\n if (req.readyState == 4) {\n if (req.status == 200) {\n kc.userInfo = JSON.parse(req.responseText);\n promise.setSuccess(kc.userInfo);\n } else {\n promise.setError();\n }\n }\n };\n\n req.send();\n\n return promise.promise;\n };\n\n kc.isTokenExpired = function(minValidity) {\n if (!kc.tokenParsed || (!kc.refreshToken && kc.flow != 'implicit' )) {\n throw 'Not authenticated';\n }\n\n if (kc.timeSkew == null) {\n logInfo('[KEYCLOAK] Unable to determine if token is expired as timeskew is not set');\n return true;\n }\n\n var expiresIn = kc.tokenParsed['exp'] - Math.ceil(new Date().getTime() / 1000) + kc.timeSkew;\n if (minValidity) {\n if (isNaN(minValidity)) {\n throw 'Invalid minValidity';\n }\n expiresIn -= minValidity;\n }\n return expiresIn < 0;\n };\n\n kc.updateToken = function(minValidity) {\n var promise = createPromise();\n\n if (!kc.refreshToken) {\n promise.setError();\n return promise.promise;\n }\n\n minValidity = minValidity || 5;\n\n var exec = function() {\n var refreshToken = false;\n if (minValidity == -1) {\n refreshToken = true;\n logInfo('[KEYCLOAK] Refreshing token: forced refresh');\n } else if (!kc.tokenParsed || kc.isTokenExpired(minValidity)) {\n refreshToken = true;\n logInfo('[KEYCLOAK] Refreshing token: token expired');\n }\n\n if (!refreshToken) {\n promise.setSuccess(false);\n } else {\n var params = 'grant_type=refresh_token&' + 'refresh_token=' + kc.refreshToken;\n var url = kc.endpoints.token();\n\n refreshQueue.push(promise);\n\n if (refreshQueue.length == 1) {\n var req = new XMLHttpRequest();\n req.open('POST', url, true);\n req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');\n req.withCredentials = true;\n\n params += '&client_id=' + encodeURIComponent(kc.clientId);\n\n var timeLocal = new Date().getTime();\n\n req.onreadystatechange = function () {\n if (req.readyState == 4) {\n if (req.status == 200) {\n logInfo('[KEYCLOAK] Token refreshed');\n\n timeLocal = (timeLocal + new Date().getTime()) / 2;\n\n var tokenResponse = JSON.parse(req.responseText);\n\n setToken(tokenResponse['access_token'], tokenResponse['refresh_token'], tokenResponse['id_token'], timeLocal);\n\n kc.onAuthRefreshSuccess && kc.onAuthRefreshSuccess();\n for (var p = refreshQueue.pop(); p != null; p = refreshQueue.pop()) {\n p.setSuccess(true);\n }\n } else {\n logWarn('[KEYCLOAK] Failed to refresh token');\n\n if (req.status == 400) {\n kc.clearToken();\n }\n\n kc.onAuthRefreshError && kc.onAuthRefreshError();\n for (var p = refreshQueue.pop(); p != null; p = refreshQueue.pop()) {\n p.setError(true);\n }\n }\n }\n };\n\n req.send(params);\n }\n }\n };\n\n if (loginIframe.enable) {\n var iframePromise = checkLoginIframe();\n iframePromise.then(function() {\n exec();\n }).catch(function(error) {\n promise.setError(error);\n });\n } else {\n exec();\n }\n\n return promise.promise;\n };\n\n kc.clearToken = function() {\n if (kc.token) {\n setToken(null, null, null);\n kc.onAuthLogout && kc.onAuthLogout();\n if (kc.loginRequired) {\n kc.login();\n }\n }\n };\n\n function getRealmUrl() {\n if (typeof kc.authServerUrl !== 'undefined') {\n if (kc.authServerUrl.charAt(kc.authServerUrl.length - 1) == '/') {\n return kc.authServerUrl + 'realms/' + encodeURIComponent(kc.realm);\n } else {\n return kc.authServerUrl + '/realms/' + encodeURIComponent(kc.realm);\n }\n } else {\n return undefined;\n }\n }\n\n function getOrigin() {\n if (!window.location.origin) {\n return window.location.protocol + \"//\" + window.location.hostname + (window.location.port ? ':' + window.location.port: '');\n } else {\n return window.location.origin;\n }\n }\n\n function processCallback(oauth, promise) {\n var code = oauth.code;\n var error = oauth.error;\n var prompt = oauth.prompt;\n\n var timeLocal = new Date().getTime();\n\n if (oauth['kc_action_status']) {\n kc.onActionUpdate && kc.onActionUpdate(oauth['kc_action_status']);\n }\n\n if (error) {\n if (prompt != 'none') {\n var errorData = { error: error, error_description: oauth.error_description };\n kc.onAuthError && kc.onAuthError(errorData);\n promise && promise.setError(errorData);\n } else {\n promise && promise.setSuccess();\n }\n return;\n } else if ((kc.flow != 'standard') && (oauth.access_token || oauth.id_token)) {\n authSuccess(oauth.access_token, null, oauth.id_token, true);\n }\n\n if ((kc.flow != 'implicit') && code) {\n var params = 'code=' + code + '&grant_type=authorization_code';\n var url = kc.endpoints.token();\n\n var req = new XMLHttpRequest();\n req.open('POST', url, true);\n req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');\n\n params += '&client_id=' + encodeURIComponent(kc.clientId);\n params += '&redirect_uri=' + oauth.redirectUri;\n\n if (oauth.pkceCodeVerifier) {\n params += '&code_verifier=' + oauth.pkceCodeVerifier;\n }\n\n req.withCredentials = true;\n\n req.onreadystatechange = function() {\n if (req.readyState == 4) {\n if (req.status == 200) {\n\n var tokenResponse = JSON.parse(req.responseText);\n authSuccess(tokenResponse['access_token'], tokenResponse['refresh_token'], tokenResponse['id_token'], kc.flow === 'standard');\n scheduleCheckIframe();\n } else {\n kc.onAuthError && kc.onAuthError();\n promise && promise.setError();\n }\n }\n };\n\n req.send(params);\n }\n\n function authSuccess(accessToken, refreshToken, idToken, fulfillPromise) {\n timeLocal = (timeLocal + new Date().getTime()) / 2;\n\n setToken(accessToken, refreshToken, idToken, timeLocal);\n\n if (useNonce && ((kc.tokenParsed && kc.tokenParsed.nonce != oauth.storedNonce) ||\n (kc.refreshTokenParsed && kc.refreshTokenParsed.nonce != oauth.storedNonce) ||\n (kc.idTokenParsed && kc.idTokenParsed.nonce != oauth.storedNonce))) {\n\n logInfo('[KEYCLOAK] Invalid nonce, clearing token');\n kc.clearToken();\n promise && promise.setError();\n } else {\n if (fulfillPromise) {\n kc.onAuthSuccess && kc.onAuthSuccess();\n promise && promise.setSuccess();\n }\n }\n }\n\n }\n\n function loadConfig(url) {\n var promise = createPromise();\n var configUrl;\n\n if (!config) {\n configUrl = 'keycloak.json';\n } else if (typeof config === 'string') {\n configUrl = config;\n }\n\n function setupOidcEndoints(oidcConfiguration) {\n if (! oidcConfiguration) {\n kc.endpoints = {\n authorize: function() {\n return getRealmUrl() + '/protocol/openid-connect/auth';\n },\n token: function() {\n return getRealmUrl() + '/protocol/openid-connect/token';\n },\n logout: function() {\n return getRealmUrl() + '/protocol/openid-connect/logout';\n },\n checkSessionIframe: function() {\n var src = getRealmUrl() + '/protocol/openid-connect/login-status-iframe.html';\n if (kc.iframeVersion) {\n src = src + '?version=' + kc.iframeVersion;\n }\n return src;\n },\n thirdPartyCookiesIframe: function() {\n var src = getRealmUrl() + '/protocol/openid-connect/3p-cookies/step1.html';\n if (kc.iframeVersion) {\n src = src + '?version=' + kc.iframeVersion;\n }\n return src;\n },\n register: function() {\n return getRealmUrl() + '/protocol/openid-connect/registrations';\n },\n userinfo: function() {\n return getRealmUrl() + '/protocol/openid-connect/userinfo';\n }\n };\n } else {\n kc.endpoints = {\n authorize: function() {\n return oidcConfiguration.authorization_endpoint;\n },\n token: function() {\n return oidcConfiguration.token_endpoint;\n },\n logout: function() {\n if (!oidcConfiguration.end_session_endpoint) {\n throw \"Not supported by the OIDC server\";\n }\n return oidcConfiguration.end_session_endpoint;\n },\n checkSessionIframe: function() {\n if (!oidcConfiguration.check_session_iframe) {\n throw \"Not supported by the OIDC server\";\n }\n return oidcConfiguration.check_session_iframe;\n },\n register: function() {\n throw 'Redirection to \"Register user\" page not supported in standard OIDC mode';\n },\n userinfo: function() {\n if (!oidcConfiguration.userinfo_endpoint) {\n throw \"Not supported by the OIDC server\";\n }\n return oidcConfiguration.userinfo_endpoint;\n }\n };\n }\n }\n\n if (configUrl) {\n var req = new XMLHttpRequest();\n req.open('GET', configUrl, true);\n req.setRequestHeader('Accept', 'application/json');\n\n req.onreadystatechange = function () {\n if (req.readyState == 4) {\n if (req.status == 200 || fileLoaded(req)) {\n var config = JSON.parse(req.responseText);\n\n kc.authServerUrl = config['auth-server-url'];\n kc.realm = config['realm'];\n kc.clientId = config['resource'];\n setupOidcEndoints(null);\n promise.setSuccess();\n } else {\n promise.setError();\n }\n }\n };\n\n req.send();\n } else {\n if (!config.clientId) {\n throw 'clientId missing';\n }\n\n kc.clientId = config.clientId;\n\n var oidcProvider = config['oidcProvider'];\n if (!oidcProvider) {\n if (!config['url']) {\n var scripts = document.getElementsByTagName('script');\n for (var i = 0; i < scripts.length; i++) {\n if (scripts[i].src.match(/.*keycloak\\.js/)) {\n config.url = scripts[i].src.substr(0, scripts[i].src.indexOf('/js/keycloak.js'));\n break;\n }\n }\n }\n if (!config.realm) {\n throw 'realm missing';\n }\n\n kc.authServerUrl = config.url;\n kc.realm = config.realm;\n setupOidcEndoints(null);\n promise.setSuccess();\n } else {\n if (typeof oidcProvider === 'string') {\n var oidcProviderConfigUrl;\n if (oidcProvider.charAt(oidcProvider.length - 1) == '/') {\n oidcProviderConfigUrl = oidcProvider + '.well-known/openid-configuration';\n } else {\n oidcProviderConfigUrl = oidcProvider + '/.well-known/openid-configuration';\n }\n var req = new XMLHttpRequest();\n req.open('GET', oidcProviderConfigUrl, true);\n req.setRequestHeader('Accept', 'application/json');\n\n req.onreadystatechange = function () {\n if (req.readyState == 4) {\n if (req.status == 200 || fileLoaded(req)) {\n var oidcProviderConfig = JSON.parse(req.responseText);\n setupOidcEndoints(oidcProviderConfig);\n promise.setSuccess();\n } else {\n promise.setError();\n }\n }\n };\n\n req.send();\n } else {\n setupOidcEndoints(oidcProvider);\n promise.setSuccess();\n }\n }\n }\n\n return promise.promise;\n }\n\n function fileLoaded(xhr) {\n return xhr.status == 0 && xhr.responseText && xhr.responseURL.startsWith('file:');\n }\n\n function setToken(token, refreshToken, idToken, timeLocal) {\n if (kc.tokenTimeoutHandle) {\n clearTimeout(kc.tokenTimeoutHandle);\n kc.tokenTimeoutHandle = null;\n }\n\n if (refreshToken) {\n kc.refreshToken = refreshToken;\n kc.refreshTokenParsed = jwtDecode(refreshToken);\n } else {\n delete kc.refreshToken;\n delete kc.refreshTokenParsed;\n }\n\n if (idToken) {\n kc.idToken = idToken;\n kc.idTokenParsed = jwtDecode(idToken);\n } else {\n delete kc.idToken;\n delete kc.idTokenParsed;\n }\n\n if (token) {\n kc.token = token;\n kc.tokenParsed = jwtDecode(token);\n kc.sessionId = kc.tokenParsed.session_state;\n kc.authenticated = true;\n kc.subject = kc.tokenParsed.sub;\n kc.realmAccess = kc.tokenParsed.realm_access;\n kc.resourceAccess = kc.tokenParsed.resource_access;\n\n if (timeLocal) {\n kc.timeSkew = Math.floor(timeLocal / 1000) - kc.tokenParsed.iat;\n }\n\n if (kc.timeSkew != null) {\n logInfo('[KEYCLOAK] Estimated time difference between browser and server is ' + kc.timeSkew + ' seconds');\n\n if (kc.onTokenExpired) {\n var expiresIn = (kc.tokenParsed['exp'] - (new Date().getTime() / 1000) + kc.timeSkew) * 1000;\n logInfo('[KEYCLOAK] Token expires in ' + Math.round(expiresIn / 1000) + ' s');\n if (expiresIn <= 0) {\n kc.onTokenExpired();\n } else {\n kc.tokenTimeoutHandle = setTimeout(kc.onTokenExpired, expiresIn);\n }\n }\n }\n } else {\n delete kc.token;\n delete kc.tokenParsed;\n delete kc.subject;\n delete kc.realmAccess;\n delete kc.resourceAccess;\n\n kc.authenticated = false;\n }\n }\n\n function createUUID() {\n var hexDigits = '0123456789abcdef';\n var s = generateRandomString(36, hexDigits).split(\"\");\n s[14] = '4';\n s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1);\n s[8] = s[13] = s[18] = s[23] = '-';\n var uuid = s.join('');\n return uuid;\n }\n\n function parseCallback(url) {\n var oauth = parseCallbackUrl(url);\n if (!oauth) {\n return;\n }\n\n var oauthState = callbackStorage.get(oauth.state);\n\n if (oauthState) {\n oauth.valid = true;\n oauth.redirectUri = oauthState.redirectUri;\n oauth.storedNonce = oauthState.nonce;\n oauth.prompt = oauthState.prompt;\n oauth.pkceCodeVerifier = oauthState.pkceCodeVerifier;\n }\n\n return oauth;\n }\n\n function parseCallbackUrl(url) {\n var supportedParams;\n switch (kc.flow) {\n case 'standard':\n supportedParams = ['code', 'state', 'session_state', 'kc_action_status', 'iss'];\n break;\n case 'implicit':\n supportedParams = ['access_token', 'token_type', 'id_token', 'state', 'session_state', 'expires_in', 'kc_action_status', 'iss'];\n break;\n case 'hybrid':\n supportedParams = ['access_token', 'token_type', 'id_token', 'code', 'state', 'session_state', 'expires_in', 'kc_action_status', 'iss'];\n break;\n }\n\n supportedParams.push('error');\n supportedParams.push('error_description');\n supportedParams.push('error_uri');\n\n var queryIndex = url.indexOf('?');\n var fragmentIndex = url.indexOf('#');\n\n var newUrl;\n var parsed;\n\n if (kc.responseMode === 'query' && queryIndex !== -1) {\n newUrl = url.substring(0, queryIndex);\n parsed = parseCallbackParams(url.substring(queryIndex + 1, fragmentIndex !== -1 ? fragmentIndex : url.length), supportedParams);\n if (parsed.paramsString !== '') {\n newUrl += '?' + parsed.paramsString;\n }\n if (fragmentIndex !== -1) {\n newUrl += url.substring(fragmentIndex);\n }\n } else if (kc.responseMode === 'fragment' && fragmentIndex !== -1) {\n newUrl = url.substring(0, fragmentIndex);\n parsed = parseCallbackParams(url.substring(fragmentIndex + 1), supportedParams);\n if (parsed.paramsString !== '') {\n newUrl += '#' + parsed.paramsString;\n }\n }\n\n if (parsed && parsed.oauthParams) {\n if (kc.flow === 'standard' || kc.flow === 'hybrid') {\n if ((parsed.oauthParams.code || parsed.oauthParams.error) && parsed.oauthParams.state) {\n parsed.oauthParams.newUrl = newUrl;\n return parsed.oauthParams;\n }\n } else if (kc.flow === 'implicit') {\n if ((parsed.oauthParams.access_token || parsed.oauthParams.error) && parsed.oauthParams.state) {\n parsed.oauthParams.newUrl = newUrl;\n return parsed.oauthParams;\n }\n }\n }\n }\n\n function parseCallbackParams(paramsString, supportedParams) {\n var p = paramsString.split('&');\n var result = {\n paramsString: '',\n oauthParams: {}\n };\n for (var i = 0; i < p.length; i++) {\n var split = p[i].indexOf(\"=\");\n var key = p[i].slice(0, split);\n if (supportedParams.indexOf(key) !== -1) {\n result.oauthParams[key] = p[i].slice(split + 1);\n } else {\n if (result.paramsString !== '') {\n result.paramsString += '&';\n }\n result.paramsString += p[i];\n }\n }\n return result;\n }\n\n function createPromise() {\n // Need to create a native Promise which also preserves the\n // interface of the custom promise type previously used by the API\n var p = {\n setSuccess: function(result) {\n p.resolve(result);\n },\n\n setError: function(result) {\n p.reject(result);\n }\n };\n p.promise = new Promise(function(resolve, reject) {\n p.resolve = resolve;\n p.reject = reject;\n });\n\n return p;\n }\n\n // Function to extend existing native Promise with timeout\n function applyTimeoutToPromise(promise, timeout, errorMessage) {\n var timeoutHandle = null;\n var timeoutPromise = new Promise(function (resolve, reject) {\n timeoutHandle = setTimeout(function () {\n reject({ \"error\": errorMessage || \"Promise is not settled within timeout of \" + timeout + \"ms\" });\n }, timeout);\n });\n\n return Promise.race([promise, timeoutPromise]).finally(function () {\n clearTimeout(timeoutHandle);\n });\n }\n\n function setupCheckLoginIframe() {\n var promise = createPromise();\n\n if (!loginIframe.enable) {\n promise.setSuccess();\n return promise.promise;\n }\n\n if (loginIframe.iframe) {\n promise.setSuccess();\n return promise.promise;\n }\n\n var iframe = document.createElement('iframe');\n loginIframe.iframe = iframe;\n\n iframe.onload = function() {\n var authUrl = kc.endpoints.authorize();\n if (authUrl.charAt(0) === '/') {\n loginIframe.iframeOrigin = getOrigin();\n } else {\n loginIframe.iframeOrigin = authUrl.substring(0, authUrl.indexOf('/', 8));\n }\n promise.setSuccess();\n };\n\n var src = kc.endpoints.checkSessionIframe();\n iframe.setAttribute('src', src );\n iframe.setAttribute('sandbox', 'allow-storage-access-by-user-activation allow-scripts allow-same-origin');\n iframe.setAttribute('title', 'keycloak-session-iframe' );\n iframe.style.display = 'none';\n document.body.appendChild(iframe);\n\n var messageCallback = function(event) {\n if ((event.origin !== loginIframe.iframeOrigin) || (loginIframe.iframe.contentWindow !== event.source)) {\n return;\n }\n\n if (!(event.data == 'unchanged' || event.data == 'changed' || event.data == 'error')) {\n return;\n }\n\n\n if (event.data != 'unchanged') {\n kc.clearToken();\n }\n\n var callbacks = loginIframe.callbackList.splice(0, loginIframe.callbackList.length);\n\n for (var i = callbacks.length - 1; i >= 0; --i) {\n var promise = callbacks[i];\n if (event.data == 'error') {\n promise.setError();\n } else {\n promise.setSuccess(event.data == 'unchanged');\n }\n }\n };\n\n window.addEventListener('message', messageCallback, false);\n\n return promise.promise;\n }\n\n function scheduleCheckIframe() {\n if (loginIframe.enable) {\n if (kc.token) {\n setTimeout(function() {\n checkLoginIframe().then(function(unchanged) {\n if (unchanged) {\n scheduleCheckIframe();\n }\n });\n }, loginIframe.interval * 1000);\n }\n }\n }\n\n function checkLoginIframe() {\n var promise = createPromise();\n\n if (loginIframe.iframe && loginIframe.iframeOrigin ) {\n var msg = kc.clientId + ' ' + (kc.sessionId ? kc.sessionId : '');\n loginIframe.callbackList.push(promise);\n var origin = loginIframe.iframeOrigin;\n if (loginIframe.callbackList.length == 1) {\n loginIframe.iframe.contentWindow.postMessage(msg, origin);\n }\n } else {\n promise.setSuccess();\n }\n\n return promise.promise;\n }\n\n function check3pCookiesSupported() {\n var promise = createPromise();\n\n if (loginIframe.enable || kc.silentCheckSsoRedirectUri) {\n var iframe = document.createElement('iframe');\n iframe.setAttribute('src', kc.endpoints.thirdPartyCookiesIframe());\n iframe.setAttribute('sandbox', 'allow-storage-access-by-user-activation allow-scripts allow-same-origin');\n iframe.setAttribute('title', 'keycloak-3p-check-iframe' );\n iframe.style.display = 'none';\n document.body.appendChild(iframe);\n\n var messageCallback = function(event) {\n if (iframe.contentWindow !== event.source) {\n return;\n }\n\n if (event.data !== \"supported\" && event.data !== \"unsupported\") {\n return;\n } else if (event.data === \"unsupported\") {\n logWarn(\n \"[KEYCLOAK] Your browser is blocking access to 3rd-party cookies, this means:\\n\\n\" +\n \" - It is not possible to retrieve tokens without redirecting to the Keycloak server (a.k.a. no support for silent authentication).\\n\" +\n \" - It is not possible to automatically detect changes to the session status (such as the user logging out in another tab).\\n\\n\" +\n \"For more information see: https://www.keycloak.org/docs/latest/securing_apps/#_modern_browsers\"\n );\n\n loginIframe.enable = false;\n if (kc.silentCheckSsoFallback) {\n kc.silentCheckSsoRedirectUri = false;\n }\n }\n\n document.body.removeChild(iframe);\n window.removeEventListener(\"message\", messageCallback);\n promise.setSuccess();\n };\n\n window.addEventListener('message', messageCallback, false);\n } else {\n promise.setSuccess();\n }\n\n return applyTimeoutToPromise(promise.promise, kc.messageReceiveTimeout, \"Timeout when waiting for 3rd party check iframe message.\");\n }\n\n function loadAdapter(type) {\n if (!type || type == 'default') {\n return {\n login: function(options) {\n window.location.assign(kc.createLoginUrl(options));\n return createPromise().promise;\n },\n\n logout: function(options) {\n window.location.replace(kc.createLogoutUrl(options));\n return createPromise().promise;\n },\n\n register: function(options) {\n window.location.assign(kc.createRegisterUrl(options));\n return createPromise().promise;\n },\n\n accountManagement : function() {\n var accountUrl = kc.createAccountUrl();\n if (typeof accountUrl !== 'undefined') {\n window.location.href = accountUrl;\n } else {\n throw \"Not supported by the OIDC server\";\n }\n return createPromise().promise;\n },\n\n redirectUri: function(options, encodeHash) {\n\n if (options && options.redirectUri) {\n return options.redirectUri;\n } else if (kc.redirectUri) {\n return kc.redirectUri;\n } else {\n return location.href;\n }\n }\n };\n }\n\n if (type == 'cordova') {\n loginIframe.enable = false;\n var cordovaOpenWindowWrapper = function(loginUrl, target, options) {\n if (window.cordova && window.cordova.InAppBrowser) {\n // Use inappbrowser for IOS and Android if available\n return window.cordova.InAppBrowser.open(loginUrl, target, options);\n } else {\n return window.open(loginUrl, target, options);\n }\n };\n\n var shallowCloneCordovaOptions = function (userOptions) {\n if (userOptions && userOptions.cordovaOptions) {\n return Object.keys(userOptions.cordovaOptions).reduce(function (options, optionName) {\n options[optionName] = userOptions.cordovaOptions[optionName];\n return options;\n }, {});\n } else {\n return {};\n }\n };\n\n var formatCordovaOptions = function (cordovaOptions) {\n return Object.keys(cordovaOptions).reduce(function (options, optionName) {\n options.push(optionName+\"=\"+cordovaOptions[optionName]);\n return options;\n }, []).join(\",\");\n };\n\n var createCordovaOptions = function (userOptions) {\n var cordovaOptions = shallowCloneCordovaOptions(userOptions);\n cordovaOptions.location = 'no';\n if (userOptions && userOptions.prompt == 'none') {\n cordovaOptions.hidden = 'yes';\n }\n return formatCordovaOptions(cordovaOptions);\n };\n\n var getCordovaRedirectUri = function() {\n return kc.redirectUri || 'http://localhost';\n };\n \n return {\n login: function(options) {\n var promise = createPromise();\n\n var cordovaOptions = createCordovaOptions(options);\n var loginUrl = kc.createLoginUrl(options);\n var ref = cordovaOpenWindowWrapper(loginUrl, '_blank', cordovaOptions);\n var completed = false;\n\n var closed = false;\n var closeBrowser = function() {\n closed = true;\n ref.close();\n };\n\n ref.addEventListener('loadstart', function(event) {\n if (event.url.indexOf(getCordovaRedirectUri()) == 0) {\n var callback = parseCallback(event.url);\n processCallback(callback, promise);\n closeBrowser();\n completed = true;\n }\n });\n\n ref.addEventListener('loaderror', function(event) {\n if (!completed) {\n if (event.url.indexOf(getCordovaRedirectUri()) == 0) {\n var callback = parseCallback(event.url);\n processCallback(callback, promise);\n closeBrowser();\n completed = true;\n } else {\n promise.setError();\n closeBrowser();\n }\n }\n });\n\n ref.addEventListener('exit', function(event) {\n if (!closed) {\n promise.setError({\n reason: \"closed_by_user\"\n });\n }\n });\n\n return promise.promise;\n },\n\n logout: function(options) {\n var promise = createPromise();\n\n var logoutUrl = kc.createLogoutUrl(options);\n var ref = cordovaOpenWindowWrapper(logoutUrl, '_blank', 'location=no,hidden=yes,clearcache=yes');\n\n var error;\n\n ref.addEventListener('loadstart', function(event) {\n if (event.url.indexOf(getCordovaRedirectUri()) == 0) {\n ref.close();\n }\n });\n\n ref.addEventListener('loaderror', function(event) {\n if (event.url.indexOf(getCordovaRedirectUri()) == 0) {\n ref.close();\n } else {\n error = true;\n ref.close();\n }\n });\n\n ref.addEventListener('exit', function(event) {\n if (error) {\n promise.setError();\n } else {\n kc.clearToken();\n promise.setSuccess();\n }\n });\n\n return promise.promise;\n },\n\n register : function(options) {\n var promise = createPromise();\n var registerUrl = kc.createRegisterUrl();\n var cordovaOptions = createCordovaOptions(options);\n var ref = cordovaOpenWindowWrapper(registerUrl, '_blank', cordovaOptions);\n ref.addEventListener('loadstart', function(event) {\n if (event.url.indexOf(getCordovaRedirectUri()) == 0) {\n ref.close();\n var oauth = parseCallback(event.url);\n processCallback(oauth, promise);\n }\n });\n return promise.promise;\n },\n\n accountManagement : function() {\n var accountUrl = kc.createAccountUrl();\n if (typeof accountUrl !== 'undefined') {\n var ref = cordovaOpenWindowWrapper(accountUrl, '_blank', 'location=no');\n ref.addEventListener('loadstart', function(event) {\n if (event.url.indexOf(getCordovaRedirectUri()) == 0) {\n ref.close();\n }\n });\n } else {\n throw \"Not supported by the OIDC server\";\n }\n },\n\n redirectUri: function(options) {\n return getCordovaRedirectUri();\n }\n }\n }\n\n if (type == 'cordova-native') {\n loginIframe.enable = false;\n\n return {\n login: function(options) {\n var promise = createPromise();\n var loginUrl = kc.createLoginUrl(options);\n\n universalLinks.subscribe('keycloak', function(event) {\n universalLinks.unsubscribe('keycloak');\n window.cordova.plugins.browsertab.close();\n var oauth = parseCallback(event.url);\n processCallback(oauth, promise);\n });\n\n window.cordova.plugins.browsertab.openUrl(loginUrl);\n return promise.promise;\n },\n\n logout: function(options) {\n var promise = createPromise();\n var logoutUrl = kc.createLogoutUrl(options);\n\n universalLinks.subscribe('keycloak', function(event) {\n universalLinks.unsubscribe('keycloak');\n window.cordova.plugins.browsertab.close();\n kc.clearToken();\n promise.setSuccess();\n });\n\n window.cordova.plugins.browsertab.openUrl(logoutUrl);\n return promise.promise;\n },\n\n register : function(options) {\n var promise = createPromise();\n var registerUrl = kc.createRegisterUrl(options);\n universalLinks.subscribe('keycloak' , function(event) {\n universalLinks.unsubscribe('keycloak');\n window.cordova.plugins.browsertab.close();\n var oauth = parseCallback(event.url);\n processCallback(oauth, promise);\n });\n window.cordova.plugins.browsertab.openUrl(registerUrl);\n return promise.promise;\n\n },\n\n accountManagement : function() {\n var accountUrl = kc.createAccountUrl();\n if (typeof accountUrl !== 'undefined') {\n window.cordova.plugins.browsertab.openUrl(accountUrl);\n } else {\n throw \"Not supported by the OIDC server\";\n }\n },\n\n redirectUri: function(options) {\n if (options && options.redirectUri) {\n return options.redirectUri;\n } else if (kc.redirectUri) {\n return kc.redirectUri;\n } else {\n return \"http://localhost\";\n }\n }\n }\n }\n\n throw 'invalid adapter type: ' + type;\n }\n\n var LocalStorage = function() {\n if (!(this instanceof LocalStorage)) {\n return new LocalStorage();\n }\n\n localStorage.setItem('kc-test', 'test');\n localStorage.removeItem('kc-test');\n\n var cs = this;\n\n function clearExpired() {\n var time = new Date().getTime();\n for (var i = 0; i < localStorage.length; i++) {\n var key = localStorage.key(i);\n if (key && key.indexOf('kc-callback-') == 0) {\n var value = localStorage.getItem(key);\n if (value) {\n try {\n var expires = JSON.parse(value).expires;\n if (!expires || expires < time) {\n localStorage.removeItem(key);\n }\n } catch (err) {\n localStorage.removeItem(key);\n }\n }\n }\n }\n }\n\n cs.get = function(state) {\n if (!state) {\n return;\n }\n\n var key = 'kc-callback-' + state;\n var value = localStorage.getItem(key);\n if (value) {\n localStorage.removeItem(key);\n value = JSON.parse(value);\n }\n\n clearExpired();\n return value;\n };\n\n cs.add = function(state) {\n clearExpired();\n\n var key = 'kc-callback-' + state.state;\n state.expires = new Date().getTime() + (60 * 60 * 1000);\n localStorage.setItem(key, JSON.stringify(state));\n };\n };\n\n var CookieStorage = function() {\n if (!(this instanceof CookieStorage)) {\n return new CookieStorage();\n }\n\n var cs = this;\n\n cs.get = function(state) {\n if (!state) {\n return;\n }\n\n var value = getCookie('kc-callback-' + state);\n setCookie('kc-callback-' + state, '', cookieExpiration(-100));\n if (value) {\n return JSON.parse(value);\n }\n };\n\n cs.add = function(state) {\n setCookie('kc-callback-' + state.state, JSON.stringify(state), cookieExpiration(60));\n };\n\n cs.removeItem = function(key) {\n setCookie(key, '', cookieExpiration(-100));\n };\n\n var cookieExpiration = function (minutes) {\n var exp = new Date();\n exp.setTime(exp.getTime() + (minutes*60*1000));\n return exp;\n };\n\n var getCookie = function (key) {\n var name = key + '=';\n var ca = document.cookie.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) == ' ') {\n c = c.substring(1);\n }\n if (c.indexOf(name) == 0) {\n return c.substring(name.length, c.length);\n }\n }\n return '';\n };\n\n var setCookie = function (key, value, expirationDate) {\n var cookie = key + '=' + value + '; '\n + 'expires=' + expirationDate.toUTCString() + '; ';\n document.cookie = cookie;\n };\n };\n\n function createCallbackStorage() {\n try {\n return new LocalStorage();\n } catch (err) {\n }\n\n return new CookieStorage();\n }\n\n function createLogger(fn) {\n return function() {\n if (kc.enableLogging) {\n fn.apply(console, Array.prototype.slice.call(arguments));\n }\n };\n }\n}\n\nexport { Keycloak as default };\n",".button {\n\tdisplay: flex;\n\theight: 50px;\n\tpadding: 0;\n\tbackground: #3e7671;\n\tborder: none;\n\toutline: none;\n\tborder-radius: 5px;\n\toverflow: hidden;\n\tfont-size: 16px;\n\tfont-weight: 500;\n\tcursor: pointer;\n min-width: 220px;\n max-width: 220px;\n}\n\n.button:hover {\n\tbackground: #008168;\n}\n\n.button:active {\n\tbackground: #3e7671;\n}\n\n.button-text{\n\tdisplay: block;\n\tmargin: auto;\n\tpadding: 0 24px;\n\tcolor: #fff;\n text-overflow: ellipsis;\n overflow:hidden;\n white-space:nowrap;\n width: 80px;\n}\n\n.button-icon {\n margin: auto;\n padding: 10px; \n}\n\n.button-profile {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tcolor: #fff;\n}\n\n.button-profile img {\n\theight: 50px;\n}\n\n.button-text-full-width {\n width: auto!important;\n}\n\n.button-link {\n text-decoration: none!important;\n}\n\n/* Menu icon */\n.gg-menu-grid-r {\n color: #fff;\n box-sizing: border-box;\n position: relative;\n display: block;\n transform: scale(var(--ggs,1));\n width: 16px;\n height: 16px;\n}\n \n.gg-menu-grid-r::before {\n content: \"\";\n display: block;\n box-sizing: border-box;\n position: absolute;\n width: 4px;\n height: 4px;\n background: currentColor;\n box-shadow:\n 0 6px 0,\n 6px 6px 0,\n 12px 6px 0,\n 6px 12px 0,\n 12px 12px 0,\n 6px 0 0,\n 12px 0 0,\n 0 12px 0;\n} \n\n/* Drop down section */\n.dropdown {\n position: relative;\n display: inline-block;\n}\n \n.dropdown-content {\n display: none;\n position: absolute;\n right: 0;\n background-color: #f9f9f9;\n min-width: 180px;\n box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);\n z-index: 1;\n border-radius: 5px;\n}\n \n.dropdown-content a {\n color: #71797E;\n padding: 16px 20px;\n text-decoration: none;\n display: block;\n cursor: pointer;\n}\n \n.dropdown-content a:hover {\n background-color: #f1f1f1;\n color: #000;\n opacity: 0.7;\n}\n\n.dropdown:hover .dropdown-content {\n display: block;\n}\n\n\n/* Modal Content */\n.modal {\n display: none;\n position: fixed;\n z-index: 1;\n padding-top: 100px;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n overflow: auto;\n background-color: rgb(0,0,0);\n background-color: rgba(0,0,0,0.4);\n text-align: center;\n }\n \n\n .modal-content {\n background-color: #fefefe;\n margin: auto;\n padding: 20px;\n border: 1px solid #888;\n width: 40%;\n }\n\n .modal-body {\n max-height: 50vh;\n overflow-y: auto;\n }\n \n .close {\n color: #aaaaaa;\n float: right;\n font-size: 28px;\n font-weight: bold;\n }\n \n .close:hover,\n .close:focus {\n color: #000;\n text-decoration: none;\n cursor: pointer;\n }\n\n .modal-app {\n background-color: #c3e9bc;\n padding: 15px;\n margin: 10px;\n border-radius: 5px;\n }\n\n .external-app-link {\n text-decoration:none; \n color: #000;\n }\n\n .gray-text {\n color: #606060;\n }\n\n .green-text {\n color: #3e7671;\n }\n\n #countdown {\n position: relative;\n margin: auto;\n margin-top: 30px;\n height: 40px;\n width: 40px;\n text-align: center;\n }\n \n #countdown-number {\n color: #2e2e2e;\n display: inline-block;\n line-height: 40px;\n }\n \n svg {\n position: absolute;\n top: 0;\n right: 0;\n width: 40px;\n height: 40px;\n transform: rotateY(-180deg) rotateZ(-90deg);\n }\n \n svg circle {\n stroke-dasharray: 113px;\n stroke-dashoffset: 0px;\n stroke-linecap: round;\n stroke-width: 4px;\n stroke: #008168;\n fill: none;\n animation: countdown 6s linear infinite forwards;\n }\n \n @keyframes countdown {\n from {\n stroke-dashoffset: 0px;\n }\n to {\n stroke-dashoffset: 113px;\n }\n }\n\n .lds-ring {\n color: #fff\n }\n .lds-ring {\n display: flex;\n justify-content: center;\n align-items: center;\n margin: auto;\n position: relative;\n }\n .lds-ring div {\n box-sizing: border-box;\n display: block;\n position: absolute;\n width: 30px;\n height: 30px;\n margin: 3px;\n border: 3px solid currentColor;\n border-radius: 50%;\n animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\n border-color: currentColor transparent transparent transparent;\n }\n .lds-ring div:nth-child(1) {\n animation-delay: -0.45s;\n }\n .lds-ring div:nth-child(2) {\n animation-delay: -0.3s;\n }\n .lds-ring div:nth-child(3) {\n animation-delay: -0.15s;\n }\n @keyframes lds-ring {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }","import { Component, Prop, State, h, Element } from '@stencil/core';\nimport Keycloak from \"keycloak-js\";\n\n\n@Component({\n tag: 'dash-button',\n styleUrl: 'dash-button.css',\n shadow: true,\n})\nexport class DashButtonComponent {\n\n @Element() el;\n \n @Prop() showPostLoginText: boolean = false;\n @Prop() silentCheckSso: boolean = false;\n @Prop() redirectUri: string;\n @Prop() authMethod: string = \"check-sso\";\n\n @Prop() keycloakUri: string = \"http://localhost:8080\";\n @Prop() realm: string = \"\";\n @Prop() clientId: string = \"\";\n\n @Prop() appId: string = \"\";\n @Prop() portalUrl: string = \"\";\n @Prop() marketplaceUrl: string = \"\";\n @Prop() showUnauthorizedModal: boolean = false;\n @Prop() postTextDelayDuration: number;\n\n @State() keycloak: any = new Keycloak({\n url: this.keycloakUri,\n realm: this.realm,\n clientId: this.clientId,\n });;\n\n @State() isAuth = false;\n @State() givenName: string = \"\";\n @State() silentCheckSsoRedirectUri: string = window.location.origin + '/assets/verificar-sso.html';\n\n @State() appList = []\n\n @State() showPostLoginLoadingSpinner = false;\n\n componentWillLoad() {\n //\n // User set post-text-delay-duration for displaying loading spinner\n //\n if(this.postTextDelayDuration > 0) {\n // Show loading spinner\n this.showPostLoginLoadingSpinner = true\n // Removing a loading spinner after the delay period ending\n setTimeout(() => {\n this.showPostLoginLoadingSpinner = false\n }, this.postTextDelayDuration);\n }\n\n //\n // Init Keycloak\n //\n this.initKeycloak().then(() => {\n // Check if the user is authenticated\n if(this.isAuth) {\n this.getAppList().then(res => {\n this.appList = res\n\n // If the user has set an app ID, check if they have permission to access\n if(this.appId) {\n \n // Retrieve the list of buttons that are configured to set the app ID\n const appIdList = this.appId.replace(/'/g, '').split(',');\n // Remote appID list parsed from object\n const tempAppList = this.appList.map(obj => obj['shortname'])\n\n // Check if the user has permission to access the selected application\n if(appIdList.filter(id => tempAppList.includes(id)).length == 0) {\n // Update local storage app permission\n localStorage.setItem(\"ZDZW_app_permission\", JSON.stringify(false));\n\n // Show modal\n const appErrorModal = this.el.shadowRoot.querySelector('#appPermissionErrorModal');\n appErrorModal.style.display = \"block\";\n\n // If a redirect URL is provided, show the loading spinner\n if (this.portalUrl && this.showUnauthorizedModal) {\n var countdownNumberEl = this.el.shadowRoot.getElementById('countdown-number');\n var countdown = 6;\n\n countdownNumberEl.textContent = countdown.toString();\n\n setInterval(() => {\n countdown = --countdown <= 0 ? 6 : countdown;\n countdownNumberEl.textContent = countdown.toString();\n\n // Once the countdown finishes, redirect to the provided URL\n if(countdown == 1) {\n // appErrorModal.style.display = \"none\";\n window.location.replace(this.portalUrl.toString());\n }\n }, 1000);\n }\n } else {\n // The user is authenticated and has the necessary permissions\n // Update local storage app permission\n localStorage.setItem(\"ZDZW_app_permission\", JSON.stringify(true));\n }\n }\n\n })\n }\n })\n }\n\n async initKeycloak() {\n // Remove the initiation time permission localstorage object\n localStorage.removeItem(\"ZDZW_app_permission\");\n\n await this.keycloak.init(\n {\n onLoad: this.authMethod,\n checkLoginIframe: false,\n silentCheckSsoRedirectUri: this.silentCheckSso ? this.silentCheckSsoRedirectUri : '',\n }).then(res => {\n if(res) {\n this.isAuth = true\n localStorage.setItem(\"keycloak\", JSON.stringify(this.keycloak));\n document.cookie = \"ZDZW_cookie=\" + JSON.parse(localStorage.getItem('keycloak')).token;\n\n this.givenName = JSON.parse(localStorage.getItem('keycloak')).idTokenParsed.given_name\n } \n });\n }\n\n async getAppList() {\n // const token = await JSON.parse(localStorage.getItem('keycloak')).token;\n // const response = await fetch(this.marketplaceUrl + '/api/v1/product/nameAndShortName', {\n // headers: new Headers({\n // 'Authorization': 'Bearer ' + token,\n // }),\n // })\n\n const response = await fetch(this.marketplaceUrl + '/api/v1/product/nameAndShortName')\n const jsonObj = await response.json()\n return jsonObj\n }\n\n login() { \n this.keycloak.login() \n }\n\n logout() {\n localStorage.removeItem(\"keycloak\");\n document.cookie = \"ZDZW_cookie=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;\";\n this.keycloak.logout() \n } \n\n showModal() {\n const appModal = this.el.shadowRoot.querySelector('#appListModal');\n appModal.style.display = \"block\";\n }\n\n closeModal() {\n const appModal = this.el.shadowRoot.querySelector('#appListModal');\n appModal.style.display = \"none\";\n }\n\n render() {\n return <div>\n <div>\n {\n (() => {\n if(this.isAuth && this.showPostLoginText) {\n // User set post-text-delay-duration for displaying loading spinner\n if(this.showPostLoginLoadingSpinner) {\n return (\n <a id=\"login-btn\" class=\"button button-link\">\n <div class=\"lds-ring\"><div></div><div></div><div></div><div></div></div>\n </a>\n )\n } else {\n return (\n <a href={this.redirectUri} id=\"login-btn\" class=\"button button-link\">\n <span class=\"button-text button-text-full-width\">Go to Dashboard</span>\n </a>\n )\n }\n \n } else if (this.isAuth) {\n return (\n <div id=\"profile-btn\" class=\"dropdown\">\n <button type=\"button\" class=\"button\">\n <span class=\"button-profile\">\n <img src=\"https://i.pravatar.cc/100?img=32\" alt=\"\"/>\n </span>\n <span id=\"given-name\" class=\"button-text\">{this.givenName}</span>\n <div class=\"button-icon\">\n <span class=\"gg-menu-grid-r\"></span>\n </div>\n </button>\n <div class=\"dropdown-content\">\n <a onClick={this.showModal.bind(this)} id=\"applications-btn\">Applications</a>\n <a href={this.portalUrl} target='_blank' id=\"applications-btn\">Portal</a>\n <a href={this.marketplaceUrl} target='_blank' id=\"applications-btn\">Marketplace</a>\n <a onClick={this.logout.bind(this)} id=\"logout-btn\">Logout</a>\n </div>\n </div>\n )\n } else {\n return (\n <button onClick={this.login.bind(this)} id=\"login-btn\" type=\"button\" class=\"button\">\n <span class=\"button-text\">Login</span>\n </button>\n )\n }\n })() \n } \n </div>\n \n <div id=\"appListModal\" class=\"modal\">\n \n <div class=\"modal-content\">\n <span onClick={this.closeModal.bind(this)} class=\"close\">×</span>\n <h3>Applications</h3>\n <div class=\"modal-body\">\n {this.appList.length > 0 ? this.appList.map( app => {\n return (\n <a class=\"external-app-link\" target='_blank' href={\"https://\" + app.shortname + \"-zdzw\"+ this.portalUrl.replace(/(^\\w+:|^)\\/\\//, '').replace('.portal-frontend-zdzw','')}>\n <div class=\"modal-app\">\n <div>{app.name}</div>\n </div>\n </a>\n );\n }) : <div><h3 class=\"gray-text\">Not installed application found.</h3> <p class=\"gray-text\">Please contact administration.</p></div>}\n </div>\n </div>\n \n </div>\n\n <div id=\"appPermissionErrorModal\" class=\"modal\">\n <div class=\"modal-content\">\n <img src=\"data:image/png;base64,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\"/>\n <h2 class=\"green-text margin-b\">You don't have permission to access this application.</h2>\n <h3 class=\"green-text\">Please contact the administration.</h3>\n \n {(this.portalUrl && this.showUnauthorizedModal) ? \n <div>\n <h4 class=\"gray-text\">You will be automatically redirected to the portal.</h4>\n <div id=\"countdown\">\n <div id=\"countdown-number\"></div>\n <svg>\n <circle r=\"18\" cx=\"20\" cy=\"20\"></circle>\n </svg>\n </div>\n </div>\n : <div></div>\n }\n </div>\n </div>\n\n </div>;\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"dash-button.js","mappings":"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E,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC;AACxD,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;AACjE,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;AACjE,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;AAChE,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC;AACxD,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;AACjE,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;AACjE,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;AAChE,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC;AACxD,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;AACjE,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;AACjE,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;AAChE,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC;AACxD,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;AACjE,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;AACjE,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;AAChE,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC;AACxD,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;AACjE,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;AACjE,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;AAChE,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC;AACxD,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;AACjE,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;AACjE,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,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","names":["global","require$$0","base64"],"sources":["node_modules/base64-js/index.js","node_modules/js-sha256/src/sha256.js","node_modules/jwt-decode/build/esm/index.js","node_modules/keycloak-js/dist/keycloak.mjs","src/components/my-component/dash-button.css?tag=dash-button&encapsulation=shadow","src/components/my-component/dash-button.tsx"],"sourcesContent":["'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/**\n * [js-sha256]{@link https://github.com/emn178/js-sha256}\n *\n * @version 0.10.1\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2014-2023\n * @license MIT\n */\n/*jslint bitwise: true */\n(function () {\n 'use strict';\n\n var ERROR = 'input is invalid type';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_SHA256_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_SHA256_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_SHA256_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA256_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var EXTRA = [-2147483648, 8388608, 32768, 128];\n var SHIFT = [24, 16, 8, 0];\n var K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n ];\n var OUTPUT_TYPES = ['hex', 'array', 'digest', 'arrayBuffer'];\n\n var blocks = [];\n\n if (root.JS_SHA256_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n }\n\n if (ARRAY_BUFFER && (root.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function (obj) {\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n }\n\n var createOutputMethod = function (outputType, is224) {\n return function (message) {\n return new Sha256(is224, true).update(message)[outputType]();\n };\n };\n\n var createMethod = function (is224) {\n var method = createOutputMethod('hex', is224);\n if (NODE_JS) {\n method = nodeWrap(method, is224);\n }\n method.create = function () {\n return new Sha256(is224);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createOutputMethod(type, is224);\n }\n return method;\n };\n\n var nodeWrap = function (method, is224) {\n var crypto = require('crypto')\n var Buffer = require('buffer').Buffer;\n var algorithm = is224 ? 'sha224' : 'sha256';\n var bufferFrom;\n if (Buffer.from && !root.JS_SHA256_NO_BUFFER_FROM) {\n bufferFrom = Buffer.from;\n } else {\n bufferFrom = function (message) {\n return new Buffer(message);\n };\n }\n var nodeMethod = function (message) {\n if (typeof message === 'string') {\n return crypto.createHash(algorithm).update(message, 'utf8').digest('hex');\n } else {\n if (message === null || message === undefined) {\n throw new Error(ERROR);\n } else if (message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n }\n }\n if (Array.isArray(message) || ArrayBuffer.isView(message) ||\n message.constructor === Buffer) {\n return crypto.createHash(algorithm).update(bufferFrom(message)).digest('hex');\n } else {\n return method(message);\n }\n };\n return nodeMethod;\n };\n\n var createHmacOutputMethod = function (outputType, is224) {\n return function (key, message) {\n return new HmacSha256(key, is224, true).update(message)[outputType]();\n };\n };\n\n var createHmacMethod = function (is224) {\n var method = createHmacOutputMethod('hex', is224);\n method.create = function (key) {\n return new HmacSha256(key, is224);\n };\n method.update = function (key, message) {\n return method.create(key).update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createHmacOutputMethod(type, is224);\n }\n return method;\n };\n\n function Sha256(is224, sharedMemory) {\n if (sharedMemory) {\n blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n this.blocks = blocks;\n } else {\n this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n }\n\n if (is224) {\n this.h0 = 0xc1059ed8;\n this.h1 = 0x367cd507;\n this.h2 = 0x3070dd17;\n this.h3 = 0xf70e5939;\n this.h4 = 0xffc00b31;\n this.h5 = 0x68581511;\n this.h6 = 0x64f98fa7;\n this.h7 = 0xbefa4fa4;\n } else { // 256\n this.h0 = 0x6a09e667;\n this.h1 = 0xbb67ae85;\n this.h2 = 0x3c6ef372;\n this.h3 = 0xa54ff53a;\n this.h4 = 0x510e527f;\n this.h5 = 0x9b05688c;\n this.h6 = 0x1f83d9ab;\n this.h7 = 0x5be0cd19;\n }\n\n this.block = this.start = this.bytes = this.hBytes = 0;\n this.finalized = this.hashed = false;\n this.first = true;\n this.is224 = is224;\n }\n\n Sha256.prototype.update = function (message) {\n if (this.finalized) {\n return;\n }\n var notString, type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw new Error(ERROR);\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (!Array.isArray(message)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n throw new Error(ERROR);\n }\n }\n } else {\n throw new Error(ERROR);\n }\n notString = true;\n }\n var code, index = 0, i, length = message.length, blocks = this.blocks;\n\n while (index < length) {\n if (this.hashed) {\n this.hashed = false;\n blocks[0] = this.block;\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n\n if (notString) {\n for (i = this.start; index < length && i < 64; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < 64; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n\n this.lastByteIndex = i;\n this.bytes += i - this.start;\n if (i >= 64) {\n this.block = blocks[16];\n this.start = i - 64;\n this.hash();\n this.hashed = true;\n } else {\n this.start = i;\n }\n }\n if (this.bytes > 4294967295) {\n this.hBytes += this.bytes / 4294967296 << 0;\n this.bytes = this.bytes % 4294967296;\n }\n return this;\n };\n\n Sha256.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex;\n blocks[16] = this.block;\n blocks[i >> 2] |= EXTRA[i & 3];\n this.block = blocks[16];\n if (i >= 56) {\n if (!this.hashed) {\n this.hash();\n }\n blocks[0] = this.block;\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n blocks[14] = this.hBytes << 3 | this.bytes >>> 29;\n blocks[15] = this.bytes << 3;\n this.hash();\n };\n\n Sha256.prototype.hash = function () {\n var a = this.h0, b = this.h1, c = this.h2, d = this.h3, e = this.h4, f = this.h5, g = this.h6,\n h = this.h7, blocks = this.blocks, j, s0, s1, maj, t1, t2, ch, ab, da, cd, bc;\n\n for (j = 16; j < 64; ++j) {\n // rightrotate\n t1 = blocks[j - 15];\n s0 = ((t1 >>> 7) | (t1 << 25)) ^ ((t1 >>> 18) | (t1 << 14)) ^ (t1 >>> 3);\n t1 = blocks[j - 2];\n s1 = ((t1 >>> 17) | (t1 << 15)) ^ ((t1 >>> 19) | (t1 << 13)) ^ (t1 >>> 10);\n blocks[j] = blocks[j - 16] + s0 + blocks[j - 7] + s1 << 0;\n }\n\n bc = b & c;\n for (j = 0; j < 64; j += 4) {\n if (this.first) {\n if (this.is224) {\n ab = 300032;\n t1 = blocks[0] - 1413257819;\n h = t1 - 150054599 << 0;\n d = t1 + 24177077 << 0;\n } else {\n ab = 704751109;\n t1 = blocks[0] - 210244248;\n h = t1 - 1521486534 << 0;\n d = t1 + 143694565 << 0;\n }\n this.first = false;\n } else {\n s0 = ((a >>> 2) | (a << 30)) ^ ((a >>> 13) | (a << 19)) ^ ((a >>> 22) | (a << 10));\n s1 = ((e >>> 6) | (e << 26)) ^ ((e >>> 11) | (e << 21)) ^ ((e >>> 25) | (e << 7));\n ab = a & b;\n maj = ab ^ (a & c) ^ bc;\n ch = (e & f) ^ (~e & g);\n t1 = h + s1 + ch + K[j] + blocks[j];\n t2 = s0 + maj;\n h = d + t1 << 0;\n d = t1 + t2 << 0;\n }\n s0 = ((d >>> 2) | (d << 30)) ^ ((d >>> 13) | (d << 19)) ^ ((d >>> 22) | (d << 10));\n s1 = ((h >>> 6) | (h << 26)) ^ ((h >>> 11) | (h << 21)) ^ ((h >>> 25) | (h << 7));\n da = d & a;\n maj = da ^ (d & b) ^ ab;\n ch = (h & e) ^ (~h & f);\n t1 = g + s1 + ch + K[j + 1] + blocks[j + 1];\n t2 = s0 + maj;\n g = c + t1 << 0;\n c = t1 + t2 << 0;\n s0 = ((c >>> 2) | (c << 30)) ^ ((c >>> 13) | (c << 19)) ^ ((c >>> 22) | (c << 10));\n s1 = ((g >>> 6) | (g << 26)) ^ ((g >>> 11) | (g << 21)) ^ ((g >>> 25) | (g << 7));\n cd = c & d;\n maj = cd ^ (c & a) ^ da;\n ch = (g & h) ^ (~g & e);\n t1 = f + s1 + ch + K[j + 2] + blocks[j + 2];\n t2 = s0 + maj;\n f = b + t1 << 0;\n b = t1 + t2 << 0;\n s0 = ((b >>> 2) | (b << 30)) ^ ((b >>> 13) | (b << 19)) ^ ((b >>> 22) | (b << 10));\n s1 = ((f >>> 6) | (f << 26)) ^ ((f >>> 11) | (f << 21)) ^ ((f >>> 25) | (f << 7));\n bc = b & c;\n maj = bc ^ (b & d) ^ cd;\n ch = (f & g) ^ (~f & h);\n t1 = e + s1 + ch + K[j + 3] + blocks[j + 3];\n t2 = s0 + maj;\n e = a + t1 << 0;\n a = t1 + t2 << 0;\n this.chromeBugWorkAround = true;\n }\n\n this.h0 = this.h0 + a << 0;\n this.h1 = this.h1 + b << 0;\n this.h2 = this.h2 + c << 0;\n this.h3 = this.h3 + d << 0;\n this.h4 = this.h4 + e << 0;\n this.h5 = this.h5 + f << 0;\n this.h6 = this.h6 + g << 0;\n this.h7 = this.h7 + h << 0;\n };\n\n Sha256.prototype.hex = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n h6 = this.h6, h7 = this.h7;\n\n var hex = HEX_CHARS[(h0 >> 28) & 0x0F] + HEX_CHARS[(h0 >> 24) & 0x0F] +\n HEX_CHARS[(h0 >> 20) & 0x0F] + HEX_CHARS[(h0 >> 16) & 0x0F] +\n HEX_CHARS[(h0 >> 12) & 0x0F] + HEX_CHARS[(h0 >> 8) & 0x0F] +\n HEX_CHARS[(h0 >> 4) & 0x0F] + HEX_CHARS[h0 & 0x0F] +\n HEX_CHARS[(h1 >> 28) & 0x0F] + HEX_CHARS[(h1 >> 24) & 0x0F] +\n HEX_CHARS[(h1 >> 20) & 0x0F] + HEX_CHARS[(h1 >> 16) & 0x0F] +\n HEX_CHARS[(h1 >> 12) & 0x0F] + HEX_CHARS[(h1 >> 8) & 0x0F] +\n HEX_CHARS[(h1 >> 4) & 0x0F] + HEX_CHARS[h1 & 0x0F] +\n HEX_CHARS[(h2 >> 28) & 0x0F] + HEX_CHARS[(h2 >> 24) & 0x0F] +\n HEX_CHARS[(h2 >> 20) & 0x0F] + HEX_CHARS[(h2 >> 16) & 0x0F] +\n HEX_CHARS[(h2 >> 12) & 0x0F] + HEX_CHARS[(h2 >> 8) & 0x0F] +\n HEX_CHARS[(h2 >> 4) & 0x0F] + HEX_CHARS[h2 & 0x0F] +\n HEX_CHARS[(h3 >> 28) & 0x0F] + HEX_CHARS[(h3 >> 24) & 0x0F] +\n HEX_CHARS[(h3 >> 20) & 0x0F] + HEX_CHARS[(h3 >> 16) & 0x0F] +\n HEX_CHARS[(h3 >> 12) & 0x0F] + HEX_CHARS[(h3 >> 8) & 0x0F] +\n HEX_CHARS[(h3 >> 4) & 0x0F] + HEX_CHARS[h3 & 0x0F] +\n HEX_CHARS[(h4 >> 28) & 0x0F] + HEX_CHARS[(h4 >> 24) & 0x0F] +\n HEX_CHARS[(h4 >> 20) & 0x0F] + HEX_CHARS[(h4 >> 16) & 0x0F] +\n HEX_CHARS[(h4 >> 12) & 0x0F] + HEX_CHARS[(h4 >> 8) & 0x0F] +\n HEX_CHARS[(h4 >> 4) & 0x0F] + HEX_CHARS[h4 & 0x0F] +\n HEX_CHARS[(h5 >> 28) & 0x0F] + HEX_CHARS[(h5 >> 24) & 0x0F] +\n HEX_CHARS[(h5 >> 20) & 0x0F] + HEX_CHARS[(h5 >> 16) & 0x0F] +\n HEX_CHARS[(h5 >> 12) & 0x0F] + HEX_CHARS[(h5 >> 8) & 0x0F] +\n HEX_CHARS[(h5 >> 4) & 0x0F] + HEX_CHARS[h5 & 0x0F] +\n HEX_CHARS[(h6 >> 28) & 0x0F] + HEX_CHARS[(h6 >> 24) & 0x0F] +\n HEX_CHARS[(h6 >> 20) & 0x0F] + HEX_CHARS[(h6 >> 16) & 0x0F] +\n HEX_CHARS[(h6 >> 12) & 0x0F] + HEX_CHARS[(h6 >> 8) & 0x0F] +\n HEX_CHARS[(h6 >> 4) & 0x0F] + HEX_CHARS[h6 & 0x0F];\n if (!this.is224) {\n hex += HEX_CHARS[(h7 >> 28) & 0x0F] + HEX_CHARS[(h7 >> 24) & 0x0F] +\n HEX_CHARS[(h7 >> 20) & 0x0F] + HEX_CHARS[(h7 >> 16) & 0x0F] +\n HEX_CHARS[(h7 >> 12) & 0x0F] + HEX_CHARS[(h7 >> 8) & 0x0F] +\n HEX_CHARS[(h7 >> 4) & 0x0F] + HEX_CHARS[h7 & 0x0F];\n }\n return hex;\n };\n\n Sha256.prototype.toString = Sha256.prototype.hex;\n\n Sha256.prototype.digest = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n h6 = this.h6, h7 = this.h7;\n\n var arr = [\n (h0 >> 24) & 0xFF, (h0 >> 16) & 0xFF, (h0 >> 8) & 0xFF, h0 & 0xFF,\n (h1 >> 24) & 0xFF, (h1 >> 16) & 0xFF, (h1 >> 8) & 0xFF, h1 & 0xFF,\n (h2 >> 24) & 0xFF, (h2 >> 16) & 0xFF, (h2 >> 8) & 0xFF, h2 & 0xFF,\n (h3 >> 24) & 0xFF, (h3 >> 16) & 0xFF, (h3 >> 8) & 0xFF, h3 & 0xFF,\n (h4 >> 24) & 0xFF, (h4 >> 16) & 0xFF, (h4 >> 8) & 0xFF, h4 & 0xFF,\n (h5 >> 24) & 0xFF, (h5 >> 16) & 0xFF, (h5 >> 8) & 0xFF, h5 & 0xFF,\n (h6 >> 24) & 0xFF, (h6 >> 16) & 0xFF, (h6 >> 8) & 0xFF, h6 & 0xFF\n ];\n if (!this.is224) {\n arr.push((h7 >> 24) & 0xFF, (h7 >> 16) & 0xFF, (h7 >> 8) & 0xFF, h7 & 0xFF);\n }\n return arr;\n };\n\n Sha256.prototype.array = Sha256.prototype.digest;\n\n Sha256.prototype.arrayBuffer = function () {\n this.finalize();\n\n var buffer = new ArrayBuffer(this.is224 ? 28 : 32);\n var dataView = new DataView(buffer);\n dataView.setUint32(0, this.h0);\n dataView.setUint32(4, this.h1);\n dataView.setUint32(8, this.h2);\n dataView.setUint32(12, this.h3);\n dataView.setUint32(16, this.h4);\n dataView.setUint32(20, this.h5);\n dataView.setUint32(24, this.h6);\n if (!this.is224) {\n dataView.setUint32(28, this.h7);\n }\n return buffer;\n };\n\n function HmacSha256(key, is224, sharedMemory) {\n var i, type = typeof key;\n if (type === 'string') {\n var bytes = [], length = key.length, index = 0, code;\n for (i = 0; i < length; ++i) {\n code = key.charCodeAt(i);\n if (code < 0x80) {\n bytes[index++] = code;\n } else if (code < 0x800) {\n bytes[index++] = (0xc0 | (code >> 6));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes[index++] = (0xe0 | (code >> 12));\n bytes[index++] = (0x80 | ((code >> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (key.charCodeAt(++i) & 0x3ff));\n bytes[index++] = (0xf0 | (code >> 18));\n bytes[index++] = (0x80 | ((code >> 12) & 0x3f));\n bytes[index++] = (0x80 | ((code >> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n }\n }\n key = bytes;\n } else {\n if (type === 'object') {\n if (key === null) {\n throw new Error(ERROR);\n } else if (ARRAY_BUFFER && key.constructor === ArrayBuffer) {\n key = new Uint8Array(key);\n } else if (!Array.isArray(key)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(key)) {\n throw new Error(ERROR);\n }\n }\n } else {\n throw new Error(ERROR);\n }\n }\n\n if (key.length > 64) {\n key = (new Sha256(is224, true)).update(key).array();\n }\n\n var oKeyPad = [], iKeyPad = [];\n for (i = 0; i < 64; ++i) {\n var b = key[i] || 0;\n oKeyPad[i] = 0x5c ^ b;\n iKeyPad[i] = 0x36 ^ b;\n }\n\n Sha256.call(this, is224, sharedMemory);\n\n this.update(iKeyPad);\n this.oKeyPad = oKeyPad;\n this.inner = true;\n this.sharedMemory = sharedMemory;\n }\n HmacSha256.prototype = new Sha256();\n\n HmacSha256.prototype.finalize = function () {\n Sha256.prototype.finalize.call(this);\n if (this.inner) {\n this.inner = false;\n var innerHash = this.array();\n Sha256.call(this, this.is224, this.sharedMemory);\n this.update(this.oKeyPad);\n this.update(innerHash);\n Sha256.prototype.finalize.call(this);\n }\n };\n\n var exports = createMethod();\n exports.sha256 = exports;\n exports.sha224 = createMethod(true);\n exports.sha256.hmac = createHmacMethod();\n exports.sha224.hmac = createHmacMethod(true);\n\n if (COMMON_JS) {\n module.exports = exports;\n } else {\n root.sha256 = exports.sha256;\n root.sha224 = exports.sha224;\n if (AMD) {\n define(function () {\n return exports;\n });\n }\n }\n})();\n","export class InvalidTokenError extends Error {\n}\nInvalidTokenError.prototype.name = \"InvalidTokenError\";\nfunction b64DecodeUnicode(str) {\n return decodeURIComponent(atob(str).replace(/(.)/g, (m, p) => {\n let code = p.charCodeAt(0).toString(16).toUpperCase();\n if (code.length < 2) {\n code = \"0\" + code;\n }\n return \"%\" + code;\n }));\n}\nfunction base64UrlDecode(str) {\n let output = str.replace(/-/g, \"+\").replace(/_/g, \"/\");\n switch (output.length % 4) {\n case 0:\n break;\n case 2:\n output += \"==\";\n break;\n case 3:\n output += \"=\";\n break;\n default:\n throw new Error(\"base64 string is not of the correct length\");\n }\n try {\n return b64DecodeUnicode(output);\n }\n catch (err) {\n return atob(output);\n }\n}\nexport function jwtDecode(token, options) {\n if (typeof token !== \"string\") {\n throw new InvalidTokenError(\"Invalid token specified: must be a string\");\n }\n options || (options = {});\n const pos = options.header === true ? 0 : 1;\n const part = token.split(\".\")[pos];\n if (typeof part !== \"string\") {\n throw new InvalidTokenError(`Invalid token specified: missing part #${pos + 1}`);\n }\n let decoded;\n try {\n decoded = base64UrlDecode(part);\n }\n catch (e) {\n throw new InvalidTokenError(`Invalid token specified: invalid base64 for part #${pos + 1} (${e.message})`);\n }\n try {\n return JSON.parse(decoded);\n }\n catch (e) {\n throw new InvalidTokenError(`Invalid token specified: invalid json for part #${pos + 1} (${e.message})`);\n }\n}\n","import base64 from 'base64-js';\nimport sha256 from 'js-sha256';\nimport { jwtDecode } from 'jwt-decode';\n\n/*\n * Copyright 2016 Red Hat, Inc. and/or its affiliates\n * and other contributors as indicated by the @author tags.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nif (typeof Promise === 'undefined') {\n throw Error('Keycloak requires an environment that supports Promises. Make sure that you include the appropriate polyfill.');\n}\n\nfunction Keycloak (config) {\n if (!(this instanceof Keycloak)) {\n throw new Error(\"The 'Keycloak' constructor must be invoked with 'new'.\")\n }\n\n var kc = this;\n var adapter;\n var refreshQueue = [];\n var callbackStorage;\n\n var loginIframe = {\n enable: true,\n callbackList: [],\n interval: 5\n };\n\n var scripts = document.getElementsByTagName('script');\n for (var i = 0; i < scripts.length; i++) {\n if ((scripts[i].src.indexOf('keycloak.js') !== -1 || scripts[i].src.indexOf('keycloak.min.js') !== -1) && scripts[i].src.indexOf('version=') !== -1) {\n kc.iframeVersion = scripts[i].src.substring(scripts[i].src.indexOf('version=') + 8).split('&')[0];\n }\n }\n\n var useNonce = true;\n var logInfo = createLogger(console.info);\n var logWarn = createLogger(console.warn);\n\n kc.init = function (initOptions) {\n if (kc.didInitialize) {\n throw new Error(\"A 'Keycloak' instance can only be initialized once.\");\n }\n\n kc.didInitialize = true;\n\n kc.authenticated = false;\n\n callbackStorage = createCallbackStorage();\n var adapters = ['default', 'cordova', 'cordova-native'];\n\n if (initOptions && adapters.indexOf(initOptions.adapter) > -1) {\n adapter = loadAdapter(initOptions.adapter);\n } else if (initOptions && typeof initOptions.adapter === \"object\") {\n adapter = initOptions.adapter;\n } else {\n if (window.Cordova || window.cordova) {\n adapter = loadAdapter('cordova');\n } else {\n adapter = loadAdapter();\n }\n }\n\n if (initOptions) {\n if (typeof initOptions.useNonce !== 'undefined') {\n useNonce = initOptions.useNonce;\n }\n\n if (typeof initOptions.checkLoginIframe !== 'undefined') {\n loginIframe.enable = initOptions.checkLoginIframe;\n }\n\n if (initOptions.checkLoginIframeInterval) {\n loginIframe.interval = initOptions.checkLoginIframeInterval;\n }\n\n if (initOptions.onLoad === 'login-required') {\n kc.loginRequired = true;\n }\n\n if (initOptions.responseMode) {\n if (initOptions.responseMode === 'query' || initOptions.responseMode === 'fragment') {\n kc.responseMode = initOptions.responseMode;\n } else {\n throw 'Invalid value for responseMode';\n }\n }\n\n if (initOptions.flow) {\n switch (initOptions.flow) {\n case 'standard':\n kc.responseType = 'code';\n break;\n case 'implicit':\n kc.responseType = 'id_token token';\n break;\n case 'hybrid':\n kc.responseType = 'code id_token token';\n break;\n default:\n throw 'Invalid value for flow';\n }\n kc.flow = initOptions.flow;\n }\n\n if (initOptions.timeSkew != null) {\n kc.timeSkew = initOptions.timeSkew;\n }\n\n if(initOptions.redirectUri) {\n kc.redirectUri = initOptions.redirectUri;\n }\n\n if (initOptions.silentCheckSsoRedirectUri) {\n kc.silentCheckSsoRedirectUri = initOptions.silentCheckSsoRedirectUri;\n }\n\n if (typeof initOptions.silentCheckSsoFallback === 'boolean') {\n kc.silentCheckSsoFallback = initOptions.silentCheckSsoFallback;\n } else {\n kc.silentCheckSsoFallback = true;\n }\n\n if (initOptions.pkceMethod) {\n if (initOptions.pkceMethod !== \"S256\") {\n throw 'Invalid value for pkceMethod';\n }\n kc.pkceMethod = initOptions.pkceMethod;\n }\n\n if (typeof initOptions.enableLogging === 'boolean') {\n kc.enableLogging = initOptions.enableLogging;\n } else {\n kc.enableLogging = false;\n }\n\n if (typeof initOptions.scope === 'string') {\n kc.scope = initOptions.scope;\n }\n\n if (typeof initOptions.acrValues === 'string') {\n kc.acrValues = initOptions.acrValues;\n }\n\n if (typeof initOptions.messageReceiveTimeout === 'number' && initOptions.messageReceiveTimeout > 0) {\n kc.messageReceiveTimeout = initOptions.messageReceiveTimeout;\n } else {\n kc.messageReceiveTimeout = 10000;\n }\n }\n\n if (!kc.responseMode) {\n kc.responseMode = 'fragment';\n }\n if (!kc.responseType) {\n kc.responseType = 'code';\n kc.flow = 'standard';\n }\n\n var promise = createPromise();\n\n var initPromise = createPromise();\n initPromise.promise.then(function() {\n kc.onReady && kc.onReady(kc.authenticated);\n promise.setSuccess(kc.authenticated);\n }).catch(function(error) {\n promise.setError(error);\n });\n\n var configPromise = loadConfig();\n\n function onLoad() {\n var doLogin = function(prompt) {\n if (!prompt) {\n options.prompt = 'none';\n }\n\n if (initOptions && initOptions.locale) {\n options.locale = initOptions.locale;\n }\n kc.login(options).then(function () {\n initPromise.setSuccess();\n }).catch(function (error) {\n initPromise.setError(error);\n });\n };\n\n var checkSsoSilently = function() {\n var ifrm = document.createElement(\"iframe\");\n var src = kc.createLoginUrl({prompt: 'none', redirectUri: kc.silentCheckSsoRedirectUri});\n ifrm.setAttribute(\"src\", src);\n ifrm.setAttribute(\"sandbox\", \"allow-storage-access-by-user-activation allow-scripts allow-same-origin\");\n ifrm.setAttribute(\"title\", \"keycloak-silent-check-sso\");\n ifrm.style.display = \"none\";\n document.body.appendChild(ifrm);\n\n var messageCallback = function(event) {\n if (event.origin !== window.location.origin || ifrm.contentWindow !== event.source) {\n return;\n }\n\n var oauth = parseCallback(event.data);\n processCallback(oauth, initPromise);\n\n document.body.removeChild(ifrm);\n window.removeEventListener(\"message\", messageCallback);\n };\n\n window.addEventListener(\"message\", messageCallback);\n };\n\n var options = {};\n switch (initOptions.onLoad) {\n case 'check-sso':\n if (loginIframe.enable) {\n setupCheckLoginIframe().then(function() {\n checkLoginIframe().then(function (unchanged) {\n if (!unchanged) {\n kc.silentCheckSsoRedirectUri ? checkSsoSilently() : doLogin(false);\n } else {\n initPromise.setSuccess();\n }\n }).catch(function (error) {\n initPromise.setError(error);\n });\n });\n } else {\n kc.silentCheckSsoRedirectUri ? checkSsoSilently() : doLogin(false);\n }\n break;\n case 'login-required':\n doLogin(true);\n break;\n default:\n throw 'Invalid value for onLoad';\n }\n }\n\n function processInit() {\n var callback = parseCallback(window.location.href);\n\n if (callback) {\n window.history.replaceState(window.history.state, null, callback.newUrl);\n }\n\n if (callback && callback.valid) {\n return setupCheckLoginIframe().then(function() {\n processCallback(callback, initPromise);\n }).catch(function (error) {\n initPromise.setError(error);\n });\n } else if (initOptions) {\n if (initOptions.token && initOptions.refreshToken) {\n setToken(initOptions.token, initOptions.refreshToken, initOptions.idToken);\n\n if (loginIframe.enable) {\n setupCheckLoginIframe().then(function() {\n checkLoginIframe().then(function (unchanged) {\n if (unchanged) {\n kc.onAuthSuccess && kc.onAuthSuccess();\n initPromise.setSuccess();\n scheduleCheckIframe();\n } else {\n initPromise.setSuccess();\n }\n }).catch(function (error) {\n initPromise.setError(error);\n });\n });\n } else {\n kc.updateToken(-1).then(function() {\n kc.onAuthSuccess && kc.onAuthSuccess();\n initPromise.setSuccess();\n }).catch(function(error) {\n kc.onAuthError && kc.onAuthError();\n if (initOptions.onLoad) {\n onLoad();\n } else {\n initPromise.setError(error);\n }\n });\n }\n } else if (initOptions.onLoad) {\n onLoad();\n } else {\n initPromise.setSuccess();\n }\n } else {\n initPromise.setSuccess();\n }\n }\n\n function domReady() {\n var promise = createPromise();\n\n var checkReadyState = function () {\n if (document.readyState === 'interactive' || document.readyState === 'complete') {\n document.removeEventListener('readystatechange', checkReadyState);\n promise.setSuccess();\n }\n };\n document.addEventListener('readystatechange', checkReadyState);\n\n checkReadyState(); // just in case the event was already fired and we missed it (in case the init is done later than at the load time, i.e. it's done from code)\n\n return promise.promise;\n }\n\n configPromise.then(function () {\n domReady()\n .then(check3pCookiesSupported)\n .then(processInit)\n .catch(function (error) {\n promise.setError(error);\n });\n });\n configPromise.catch(function (error) {\n promise.setError(error);\n });\n\n return promise.promise;\n };\n\n kc.login = function (options) {\n return adapter.login(options);\n };\n\n function generateRandomData(len) {\n // use web crypto APIs if possible\n var array = null;\n var crypto = window.crypto || window.msCrypto;\n if (crypto && crypto.getRandomValues && window.Uint8Array) {\n array = new Uint8Array(len);\n crypto.getRandomValues(array);\n return array;\n }\n\n // fallback to Math random\n array = new Array(len);\n for (var j = 0; j < array.length; j++) {\n array[j] = Math.floor(256 * Math.random());\n }\n return array;\n }\n\n function generateCodeVerifier(len) {\n return generateRandomString(len, 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789');\n }\n\n function generateRandomString(len, alphabet){\n var randomData = generateRandomData(len);\n var chars = new Array(len);\n for (var i = 0; i < len; i++) {\n chars[i] = alphabet.charCodeAt(randomData[i] % alphabet.length);\n }\n return String.fromCharCode.apply(null, chars);\n }\n\n function generatePkceChallenge(pkceMethod, codeVerifier) {\n switch (pkceMethod) {\n // The use of the \"plain\" method is considered insecure and therefore not supported.\n case \"S256\":\n // hash codeVerifier, then encode as url-safe base64 without padding\n var hashBytes = new Uint8Array(sha256.arrayBuffer(codeVerifier));\n var encodedHash = base64.fromByteArray(hashBytes)\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_')\n .replace(/\\=/g, '');\n return encodedHash;\n default:\n throw 'Invalid value for pkceMethod';\n }\n }\n\n function buildClaimsParameter(requestedAcr){\n var claims = {\n id_token: {\n acr: requestedAcr\n }\n };\n return JSON.stringify(claims);\n }\n\n kc.createLoginUrl = function(options) {\n var state = createUUID();\n var nonce = createUUID();\n\n var redirectUri = adapter.redirectUri(options);\n\n var callbackState = {\n state: state,\n nonce: nonce,\n redirectUri: encodeURIComponent(redirectUri)\n };\n\n if (options && options.prompt) {\n callbackState.prompt = options.prompt;\n }\n\n var baseUrl;\n if (options && options.action == 'register') {\n baseUrl = kc.endpoints.register();\n } else {\n baseUrl = kc.endpoints.authorize();\n }\n\n var scope = options && options.scope || kc.scope;\n if (!scope) {\n // if scope is not set, default to \"openid\"\n scope = \"openid\";\n } else if (scope.indexOf(\"openid\") === -1) {\n // if openid scope is missing, prefix the given scopes with it\n scope = \"openid \" + scope;\n }\n\n var url = baseUrl\n + '?client_id=' + encodeURIComponent(kc.clientId)\n + '&redirect_uri=' + encodeURIComponent(redirectUri)\n + '&state=' + encodeURIComponent(state)\n + '&response_mode=' + encodeURIComponent(kc.responseMode)\n + '&response_type=' + encodeURIComponent(kc.responseType)\n + '&scope=' + encodeURIComponent(scope);\n if (useNonce) {\n url = url + '&nonce=' + encodeURIComponent(nonce);\n }\n\n if (options && options.prompt) {\n url += '&prompt=' + encodeURIComponent(options.prompt);\n }\n\n if (options && options.maxAge) {\n url += '&max_age=' + encodeURIComponent(options.maxAge);\n }\n\n if (options && options.loginHint) {\n url += '&login_hint=' + encodeURIComponent(options.loginHint);\n }\n\n if (options && options.idpHint) {\n url += '&kc_idp_hint=' + encodeURIComponent(options.idpHint);\n }\n\n if (options && options.action && options.action != 'register') {\n url += '&kc_action=' + encodeURIComponent(options.action);\n }\n\n if (options && options.locale) {\n url += '&ui_locales=' + encodeURIComponent(options.locale);\n }\n\n if (options && options.acr) {\n var claimsParameter = buildClaimsParameter(options.acr);\n url += '&claims=' + encodeURIComponent(claimsParameter);\n }\n\n if ((options && options.acrValues) || kc.acrValues) {\n url += '&acr_values=' + encodeURIComponent(options.acrValues || kc.acrValues);\n }\n\n if (kc.pkceMethod) {\n var codeVerifier = generateCodeVerifier(96);\n callbackState.pkceCodeVerifier = codeVerifier;\n var pkceChallenge = generatePkceChallenge(kc.pkceMethod, codeVerifier);\n url += '&code_challenge=' + pkceChallenge;\n url += '&code_challenge_method=' + kc.pkceMethod;\n }\n\n callbackStorage.add(callbackState);\n\n return url;\n };\n\n kc.logout = function(options) {\n return adapter.logout(options);\n };\n\n kc.createLogoutUrl = function(options) {\n var url = kc.endpoints.logout()\n + '?client_id=' + encodeURIComponent(kc.clientId)\n + '&post_logout_redirect_uri=' + encodeURIComponent(adapter.redirectUri(options, false));\n\n if (kc.idToken) {\n url += '&id_token_hint=' + encodeURIComponent(kc.idToken);\n }\n\n return url;\n };\n\n kc.register = function (options) {\n return adapter.register(options);\n };\n\n kc.createRegisterUrl = function(options) {\n if (!options) {\n options = {};\n }\n options.action = 'register';\n return kc.createLoginUrl(options);\n };\n\n kc.createAccountUrl = function(options) {\n var realm = getRealmUrl();\n var url = undefined;\n if (typeof realm !== 'undefined') {\n url = realm\n + '/account'\n + '?referrer=' + encodeURIComponent(kc.clientId)\n + '&referrer_uri=' + encodeURIComponent(adapter.redirectUri(options));\n }\n return url;\n };\n\n kc.accountManagement = function() {\n return adapter.accountManagement();\n };\n\n kc.hasRealmRole = function (role) {\n var access = kc.realmAccess;\n return !!access && access.roles.indexOf(role) >= 0;\n };\n\n kc.hasResourceRole = function(role, resource) {\n if (!kc.resourceAccess) {\n return false;\n }\n\n var access = kc.resourceAccess[resource || kc.clientId];\n return !!access && access.roles.indexOf(role) >= 0;\n };\n\n kc.loadUserProfile = function() {\n var url = getRealmUrl() + '/account';\n var req = new XMLHttpRequest();\n req.open('GET', url, true);\n req.setRequestHeader('Accept', 'application/json');\n req.setRequestHeader('Authorization', 'bearer ' + kc.token);\n\n var promise = createPromise();\n\n req.onreadystatechange = function () {\n if (req.readyState == 4) {\n if (req.status == 200) {\n kc.profile = JSON.parse(req.responseText);\n promise.setSuccess(kc.profile);\n } else {\n promise.setError();\n }\n }\n };\n\n req.send();\n\n return promise.promise;\n };\n\n kc.loadUserInfo = function() {\n var url = kc.endpoints.userinfo();\n var req = new XMLHttpRequest();\n req.open('GET', url, true);\n req.setRequestHeader('Accept', 'application/json');\n req.setRequestHeader('Authorization', 'bearer ' + kc.token);\n\n var promise = createPromise();\n\n req.onreadystatechange = function () {\n if (req.readyState == 4) {\n if (req.status == 200) {\n kc.userInfo = JSON.parse(req.responseText);\n promise.setSuccess(kc.userInfo);\n } else {\n promise.setError();\n }\n }\n };\n\n req.send();\n\n return promise.promise;\n };\n\n kc.isTokenExpired = function(minValidity) {\n if (!kc.tokenParsed || (!kc.refreshToken && kc.flow != 'implicit' )) {\n throw 'Not authenticated';\n }\n\n if (kc.timeSkew == null) {\n logInfo('[KEYCLOAK] Unable to determine if token is expired as timeskew is not set');\n return true;\n }\n\n var expiresIn = kc.tokenParsed['exp'] - Math.ceil(new Date().getTime() / 1000) + kc.timeSkew;\n if (minValidity) {\n if (isNaN(minValidity)) {\n throw 'Invalid minValidity';\n }\n expiresIn -= minValidity;\n }\n return expiresIn < 0;\n };\n\n kc.updateToken = function(minValidity) {\n var promise = createPromise();\n\n if (!kc.refreshToken) {\n promise.setError();\n return promise.promise;\n }\n\n minValidity = minValidity || 5;\n\n var exec = function() {\n var refreshToken = false;\n if (minValidity == -1) {\n refreshToken = true;\n logInfo('[KEYCLOAK] Refreshing token: forced refresh');\n } else if (!kc.tokenParsed || kc.isTokenExpired(minValidity)) {\n refreshToken = true;\n logInfo('[KEYCLOAK] Refreshing token: token expired');\n }\n\n if (!refreshToken) {\n promise.setSuccess(false);\n } else {\n var params = 'grant_type=refresh_token&' + 'refresh_token=' + kc.refreshToken;\n var url = kc.endpoints.token();\n\n refreshQueue.push(promise);\n\n if (refreshQueue.length == 1) {\n var req = new XMLHttpRequest();\n req.open('POST', url, true);\n req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');\n req.withCredentials = true;\n\n params += '&client_id=' + encodeURIComponent(kc.clientId);\n\n var timeLocal = new Date().getTime();\n\n req.onreadystatechange = function () {\n if (req.readyState == 4) {\n if (req.status == 200) {\n logInfo('[KEYCLOAK] Token refreshed');\n\n timeLocal = (timeLocal + new Date().getTime()) / 2;\n\n var tokenResponse = JSON.parse(req.responseText);\n\n setToken(tokenResponse['access_token'], tokenResponse['refresh_token'], tokenResponse['id_token'], timeLocal);\n\n kc.onAuthRefreshSuccess && kc.onAuthRefreshSuccess();\n for (var p = refreshQueue.pop(); p != null; p = refreshQueue.pop()) {\n p.setSuccess(true);\n }\n } else {\n logWarn('[KEYCLOAK] Failed to refresh token');\n\n if (req.status == 400) {\n kc.clearToken();\n }\n\n kc.onAuthRefreshError && kc.onAuthRefreshError();\n for (var p = refreshQueue.pop(); p != null; p = refreshQueue.pop()) {\n p.setError(true);\n }\n }\n }\n };\n\n req.send(params);\n }\n }\n };\n\n if (loginIframe.enable) {\n var iframePromise = checkLoginIframe();\n iframePromise.then(function() {\n exec();\n }).catch(function(error) {\n promise.setError(error);\n });\n } else {\n exec();\n }\n\n return promise.promise;\n };\n\n kc.clearToken = function() {\n if (kc.token) {\n setToken(null, null, null);\n kc.onAuthLogout && kc.onAuthLogout();\n if (kc.loginRequired) {\n kc.login();\n }\n }\n };\n\n function getRealmUrl() {\n if (typeof kc.authServerUrl !== 'undefined') {\n if (kc.authServerUrl.charAt(kc.authServerUrl.length - 1) == '/') {\n return kc.authServerUrl + 'realms/' + encodeURIComponent(kc.realm);\n } else {\n return kc.authServerUrl + '/realms/' + encodeURIComponent(kc.realm);\n }\n } else {\n return undefined;\n }\n }\n\n function getOrigin() {\n if (!window.location.origin) {\n return window.location.protocol + \"//\" + window.location.hostname + (window.location.port ? ':' + window.location.port: '');\n } else {\n return window.location.origin;\n }\n }\n\n function processCallback(oauth, promise) {\n var code = oauth.code;\n var error = oauth.error;\n var prompt = oauth.prompt;\n\n var timeLocal = new Date().getTime();\n\n if (oauth['kc_action_status']) {\n kc.onActionUpdate && kc.onActionUpdate(oauth['kc_action_status']);\n }\n\n if (error) {\n if (prompt != 'none') {\n var errorData = { error: error, error_description: oauth.error_description };\n kc.onAuthError && kc.onAuthError(errorData);\n promise && promise.setError(errorData);\n } else {\n promise && promise.setSuccess();\n }\n return;\n } else if ((kc.flow != 'standard') && (oauth.access_token || oauth.id_token)) {\n authSuccess(oauth.access_token, null, oauth.id_token, true);\n }\n\n if ((kc.flow != 'implicit') && code) {\n var params = 'code=' + code + '&grant_type=authorization_code';\n var url = kc.endpoints.token();\n\n var req = new XMLHttpRequest();\n req.open('POST', url, true);\n req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');\n\n params += '&client_id=' + encodeURIComponent(kc.clientId);\n params += '&redirect_uri=' + oauth.redirectUri;\n\n if (oauth.pkceCodeVerifier) {\n params += '&code_verifier=' + oauth.pkceCodeVerifier;\n }\n\n req.withCredentials = true;\n\n req.onreadystatechange = function() {\n if (req.readyState == 4) {\n if (req.status == 200) {\n\n var tokenResponse = JSON.parse(req.responseText);\n authSuccess(tokenResponse['access_token'], tokenResponse['refresh_token'], tokenResponse['id_token'], kc.flow === 'standard');\n scheduleCheckIframe();\n } else {\n kc.onAuthError && kc.onAuthError();\n promise && promise.setError();\n }\n }\n };\n\n req.send(params);\n }\n\n function authSuccess(accessToken, refreshToken, idToken, fulfillPromise) {\n timeLocal = (timeLocal + new Date().getTime()) / 2;\n\n setToken(accessToken, refreshToken, idToken, timeLocal);\n\n if (useNonce && ((kc.tokenParsed && kc.tokenParsed.nonce != oauth.storedNonce) ||\n (kc.refreshTokenParsed && kc.refreshTokenParsed.nonce != oauth.storedNonce) ||\n (kc.idTokenParsed && kc.idTokenParsed.nonce != oauth.storedNonce))) {\n\n logInfo('[KEYCLOAK] Invalid nonce, clearing token');\n kc.clearToken();\n promise && promise.setError();\n } else {\n if (fulfillPromise) {\n kc.onAuthSuccess && kc.onAuthSuccess();\n promise && promise.setSuccess();\n }\n }\n }\n\n }\n\n function loadConfig(url) {\n var promise = createPromise();\n var configUrl;\n\n if (!config) {\n configUrl = 'keycloak.json';\n } else if (typeof config === 'string') {\n configUrl = config;\n }\n\n function setupOidcEndoints(oidcConfiguration) {\n if (! oidcConfiguration) {\n kc.endpoints = {\n authorize: function() {\n return getRealmUrl() + '/protocol/openid-connect/auth';\n },\n token: function() {\n return getRealmUrl() + '/protocol/openid-connect/token';\n },\n logout: function() {\n return getRealmUrl() + '/protocol/openid-connect/logout';\n },\n checkSessionIframe: function() {\n var src = getRealmUrl() + '/protocol/openid-connect/login-status-iframe.html';\n if (kc.iframeVersion) {\n src = src + '?version=' + kc.iframeVersion;\n }\n return src;\n },\n thirdPartyCookiesIframe: function() {\n var src = getRealmUrl() + '/protocol/openid-connect/3p-cookies/step1.html';\n if (kc.iframeVersion) {\n src = src + '?version=' + kc.iframeVersion;\n }\n return src;\n },\n register: function() {\n return getRealmUrl() + '/protocol/openid-connect/registrations';\n },\n userinfo: function() {\n return getRealmUrl() + '/protocol/openid-connect/userinfo';\n }\n };\n } else {\n kc.endpoints = {\n authorize: function() {\n return oidcConfiguration.authorization_endpoint;\n },\n token: function() {\n return oidcConfiguration.token_endpoint;\n },\n logout: function() {\n if (!oidcConfiguration.end_session_endpoint) {\n throw \"Not supported by the OIDC server\";\n }\n return oidcConfiguration.end_session_endpoint;\n },\n checkSessionIframe: function() {\n if (!oidcConfiguration.check_session_iframe) {\n throw \"Not supported by the OIDC server\";\n }\n return oidcConfiguration.check_session_iframe;\n },\n register: function() {\n throw 'Redirection to \"Register user\" page not supported in standard OIDC mode';\n },\n userinfo: function() {\n if (!oidcConfiguration.userinfo_endpoint) {\n throw \"Not supported by the OIDC server\";\n }\n return oidcConfiguration.userinfo_endpoint;\n }\n };\n }\n }\n\n if (configUrl) {\n var req = new XMLHttpRequest();\n req.open('GET', configUrl, true);\n req.setRequestHeader('Accept', 'application/json');\n\n req.onreadystatechange = function () {\n if (req.readyState == 4) {\n if (req.status == 200 || fileLoaded(req)) {\n var config = JSON.parse(req.responseText);\n\n kc.authServerUrl = config['auth-server-url'];\n kc.realm = config['realm'];\n kc.clientId = config['resource'];\n setupOidcEndoints(null);\n promise.setSuccess();\n } else {\n promise.setError();\n }\n }\n };\n\n req.send();\n } else {\n if (!config.clientId) {\n throw 'clientId missing';\n }\n\n kc.clientId = config.clientId;\n\n var oidcProvider = config['oidcProvider'];\n if (!oidcProvider) {\n if (!config['url']) {\n var scripts = document.getElementsByTagName('script');\n for (var i = 0; i < scripts.length; i++) {\n if (scripts[i].src.match(/.*keycloak\\.js/)) {\n config.url = scripts[i].src.substr(0, scripts[i].src.indexOf('/js/keycloak.js'));\n break;\n }\n }\n }\n if (!config.realm) {\n throw 'realm missing';\n }\n\n kc.authServerUrl = config.url;\n kc.realm = config.realm;\n setupOidcEndoints(null);\n promise.setSuccess();\n } else {\n if (typeof oidcProvider === 'string') {\n var oidcProviderConfigUrl;\n if (oidcProvider.charAt(oidcProvider.length - 1) == '/') {\n oidcProviderConfigUrl = oidcProvider + '.well-known/openid-configuration';\n } else {\n oidcProviderConfigUrl = oidcProvider + '/.well-known/openid-configuration';\n }\n var req = new XMLHttpRequest();\n req.open('GET', oidcProviderConfigUrl, true);\n req.setRequestHeader('Accept', 'application/json');\n\n req.onreadystatechange = function () {\n if (req.readyState == 4) {\n if (req.status == 200 || fileLoaded(req)) {\n var oidcProviderConfig = JSON.parse(req.responseText);\n setupOidcEndoints(oidcProviderConfig);\n promise.setSuccess();\n } else {\n promise.setError();\n }\n }\n };\n\n req.send();\n } else {\n setupOidcEndoints(oidcProvider);\n promise.setSuccess();\n }\n }\n }\n\n return promise.promise;\n }\n\n function fileLoaded(xhr) {\n return xhr.status == 0 && xhr.responseText && xhr.responseURL.startsWith('file:');\n }\n\n function setToken(token, refreshToken, idToken, timeLocal) {\n if (kc.tokenTimeoutHandle) {\n clearTimeout(kc.tokenTimeoutHandle);\n kc.tokenTimeoutHandle = null;\n }\n\n if (refreshToken) {\n kc.refreshToken = refreshToken;\n kc.refreshTokenParsed = jwtDecode(refreshToken);\n } else {\n delete kc.refreshToken;\n delete kc.refreshTokenParsed;\n }\n\n if (idToken) {\n kc.idToken = idToken;\n kc.idTokenParsed = jwtDecode(idToken);\n } else {\n delete kc.idToken;\n delete kc.idTokenParsed;\n }\n\n if (token) {\n kc.token = token;\n kc.tokenParsed = jwtDecode(token);\n kc.sessionId = kc.tokenParsed.session_state;\n kc.authenticated = true;\n kc.subject = kc.tokenParsed.sub;\n kc.realmAccess = kc.tokenParsed.realm_access;\n kc.resourceAccess = kc.tokenParsed.resource_access;\n\n if (timeLocal) {\n kc.timeSkew = Math.floor(timeLocal / 1000) - kc.tokenParsed.iat;\n }\n\n if (kc.timeSkew != null) {\n logInfo('[KEYCLOAK] Estimated time difference between browser and server is ' + kc.timeSkew + ' seconds');\n\n if (kc.onTokenExpired) {\n var expiresIn = (kc.tokenParsed['exp'] - (new Date().getTime() / 1000) + kc.timeSkew) * 1000;\n logInfo('[KEYCLOAK] Token expires in ' + Math.round(expiresIn / 1000) + ' s');\n if (expiresIn <= 0) {\n kc.onTokenExpired();\n } else {\n kc.tokenTimeoutHandle = setTimeout(kc.onTokenExpired, expiresIn);\n }\n }\n }\n } else {\n delete kc.token;\n delete kc.tokenParsed;\n delete kc.subject;\n delete kc.realmAccess;\n delete kc.resourceAccess;\n\n kc.authenticated = false;\n }\n }\n\n function createUUID() {\n var hexDigits = '0123456789abcdef';\n var s = generateRandomString(36, hexDigits).split(\"\");\n s[14] = '4';\n s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1);\n s[8] = s[13] = s[18] = s[23] = '-';\n var uuid = s.join('');\n return uuid;\n }\n\n function parseCallback(url) {\n var oauth = parseCallbackUrl(url);\n if (!oauth) {\n return;\n }\n\n var oauthState = callbackStorage.get(oauth.state);\n\n if (oauthState) {\n oauth.valid = true;\n oauth.redirectUri = oauthState.redirectUri;\n oauth.storedNonce = oauthState.nonce;\n oauth.prompt = oauthState.prompt;\n oauth.pkceCodeVerifier = oauthState.pkceCodeVerifier;\n }\n\n return oauth;\n }\n\n function parseCallbackUrl(url) {\n var supportedParams;\n switch (kc.flow) {\n case 'standard':\n supportedParams = ['code', 'state', 'session_state', 'kc_action_status', 'iss'];\n break;\n case 'implicit':\n supportedParams = ['access_token', 'token_type', 'id_token', 'state', 'session_state', 'expires_in', 'kc_action_status', 'iss'];\n break;\n case 'hybrid':\n supportedParams = ['access_token', 'token_type', 'id_token', 'code', 'state', 'session_state', 'expires_in', 'kc_action_status', 'iss'];\n break;\n }\n\n supportedParams.push('error');\n supportedParams.push('error_description');\n supportedParams.push('error_uri');\n\n var queryIndex = url.indexOf('?');\n var fragmentIndex = url.indexOf('#');\n\n var newUrl;\n var parsed;\n\n if (kc.responseMode === 'query' && queryIndex !== -1) {\n newUrl = url.substring(0, queryIndex);\n parsed = parseCallbackParams(url.substring(queryIndex + 1, fragmentIndex !== -1 ? fragmentIndex : url.length), supportedParams);\n if (parsed.paramsString !== '') {\n newUrl += '?' + parsed.paramsString;\n }\n if (fragmentIndex !== -1) {\n newUrl += url.substring(fragmentIndex);\n }\n } else if (kc.responseMode === 'fragment' && fragmentIndex !== -1) {\n newUrl = url.substring(0, fragmentIndex);\n parsed = parseCallbackParams(url.substring(fragmentIndex + 1), supportedParams);\n if (parsed.paramsString !== '') {\n newUrl += '#' + parsed.paramsString;\n }\n }\n\n if (parsed && parsed.oauthParams) {\n if (kc.flow === 'standard' || kc.flow === 'hybrid') {\n if ((parsed.oauthParams.code || parsed.oauthParams.error) && parsed.oauthParams.state) {\n parsed.oauthParams.newUrl = newUrl;\n return parsed.oauthParams;\n }\n } else if (kc.flow === 'implicit') {\n if ((parsed.oauthParams.access_token || parsed.oauthParams.error) && parsed.oauthParams.state) {\n parsed.oauthParams.newUrl = newUrl;\n return parsed.oauthParams;\n }\n }\n }\n }\n\n function parseCallbackParams(paramsString, supportedParams) {\n var p = paramsString.split('&');\n var result = {\n paramsString: '',\n oauthParams: {}\n };\n for (var i = 0; i < p.length; i++) {\n var split = p[i].indexOf(\"=\");\n var key = p[i].slice(0, split);\n if (supportedParams.indexOf(key) !== -1) {\n result.oauthParams[key] = p[i].slice(split + 1);\n } else {\n if (result.paramsString !== '') {\n result.paramsString += '&';\n }\n result.paramsString += p[i];\n }\n }\n return result;\n }\n\n function createPromise() {\n // Need to create a native Promise which also preserves the\n // interface of the custom promise type previously used by the API\n var p = {\n setSuccess: function(result) {\n p.resolve(result);\n },\n\n setError: function(result) {\n p.reject(result);\n }\n };\n p.promise = new Promise(function(resolve, reject) {\n p.resolve = resolve;\n p.reject = reject;\n });\n\n return p;\n }\n\n // Function to extend existing native Promise with timeout\n function applyTimeoutToPromise(promise, timeout, errorMessage) {\n var timeoutHandle = null;\n var timeoutPromise = new Promise(function (resolve, reject) {\n timeoutHandle = setTimeout(function () {\n reject({ \"error\": errorMessage || \"Promise is not settled within timeout of \" + timeout + \"ms\" });\n }, timeout);\n });\n\n return Promise.race([promise, timeoutPromise]).finally(function () {\n clearTimeout(timeoutHandle);\n });\n }\n\n function setupCheckLoginIframe() {\n var promise = createPromise();\n\n if (!loginIframe.enable) {\n promise.setSuccess();\n return promise.promise;\n }\n\n if (loginIframe.iframe) {\n promise.setSuccess();\n return promise.promise;\n }\n\n var iframe = document.createElement('iframe');\n loginIframe.iframe = iframe;\n\n iframe.onload = function() {\n var authUrl = kc.endpoints.authorize();\n if (authUrl.charAt(0) === '/') {\n loginIframe.iframeOrigin = getOrigin();\n } else {\n loginIframe.iframeOrigin = authUrl.substring(0, authUrl.indexOf('/', 8));\n }\n promise.setSuccess();\n };\n\n var src = kc.endpoints.checkSessionIframe();\n iframe.setAttribute('src', src );\n iframe.setAttribute('sandbox', 'allow-storage-access-by-user-activation allow-scripts allow-same-origin');\n iframe.setAttribute('title', 'keycloak-session-iframe' );\n iframe.style.display = 'none';\n document.body.appendChild(iframe);\n\n var messageCallback = function(event) {\n if ((event.origin !== loginIframe.iframeOrigin) || (loginIframe.iframe.contentWindow !== event.source)) {\n return;\n }\n\n if (!(event.data == 'unchanged' || event.data == 'changed' || event.data == 'error')) {\n return;\n }\n\n\n if (event.data != 'unchanged') {\n kc.clearToken();\n }\n\n var callbacks = loginIframe.callbackList.splice(0, loginIframe.callbackList.length);\n\n for (var i = callbacks.length - 1; i >= 0; --i) {\n var promise = callbacks[i];\n if (event.data == 'error') {\n promise.setError();\n } else {\n promise.setSuccess(event.data == 'unchanged');\n }\n }\n };\n\n window.addEventListener('message', messageCallback, false);\n\n return promise.promise;\n }\n\n function scheduleCheckIframe() {\n if (loginIframe.enable) {\n if (kc.token) {\n setTimeout(function() {\n checkLoginIframe().then(function(unchanged) {\n if (unchanged) {\n scheduleCheckIframe();\n }\n });\n }, loginIframe.interval * 1000);\n }\n }\n }\n\n function checkLoginIframe() {\n var promise = createPromise();\n\n if (loginIframe.iframe && loginIframe.iframeOrigin ) {\n var msg = kc.clientId + ' ' + (kc.sessionId ? kc.sessionId : '');\n loginIframe.callbackList.push(promise);\n var origin = loginIframe.iframeOrigin;\n if (loginIframe.callbackList.length == 1) {\n loginIframe.iframe.contentWindow.postMessage(msg, origin);\n }\n } else {\n promise.setSuccess();\n }\n\n return promise.promise;\n }\n\n function check3pCookiesSupported() {\n var promise = createPromise();\n\n if (loginIframe.enable || kc.silentCheckSsoRedirectUri) {\n var iframe = document.createElement('iframe');\n iframe.setAttribute('src', kc.endpoints.thirdPartyCookiesIframe());\n iframe.setAttribute('sandbox', 'allow-storage-access-by-user-activation allow-scripts allow-same-origin');\n iframe.setAttribute('title', 'keycloak-3p-check-iframe' );\n iframe.style.display = 'none';\n document.body.appendChild(iframe);\n\n var messageCallback = function(event) {\n if (iframe.contentWindow !== event.source) {\n return;\n }\n\n if (event.data !== \"supported\" && event.data !== \"unsupported\") {\n return;\n } else if (event.data === \"unsupported\") {\n logWarn(\n \"[KEYCLOAK] Your browser is blocking access to 3rd-party cookies, this means:\\n\\n\" +\n \" - It is not possible to retrieve tokens without redirecting to the Keycloak server (a.k.a. no support for silent authentication).\\n\" +\n \" - It is not possible to automatically detect changes to the session status (such as the user logging out in another tab).\\n\\n\" +\n \"For more information see: https://www.keycloak.org/docs/latest/securing_apps/#_modern_browsers\"\n );\n\n loginIframe.enable = false;\n if (kc.silentCheckSsoFallback) {\n kc.silentCheckSsoRedirectUri = false;\n }\n }\n\n document.body.removeChild(iframe);\n window.removeEventListener(\"message\", messageCallback);\n promise.setSuccess();\n };\n\n window.addEventListener('message', messageCallback, false);\n } else {\n promise.setSuccess();\n }\n\n return applyTimeoutToPromise(promise.promise, kc.messageReceiveTimeout, \"Timeout when waiting for 3rd party check iframe message.\");\n }\n\n function loadAdapter(type) {\n if (!type || type == 'default') {\n return {\n login: function(options) {\n window.location.assign(kc.createLoginUrl(options));\n return createPromise().promise;\n },\n\n logout: function(options) {\n window.location.replace(kc.createLogoutUrl(options));\n return createPromise().promise;\n },\n\n register: function(options) {\n window.location.assign(kc.createRegisterUrl(options));\n return createPromise().promise;\n },\n\n accountManagement : function() {\n var accountUrl = kc.createAccountUrl();\n if (typeof accountUrl !== 'undefined') {\n window.location.href = accountUrl;\n } else {\n throw \"Not supported by the OIDC server\";\n }\n return createPromise().promise;\n },\n\n redirectUri: function(options, encodeHash) {\n\n if (options && options.redirectUri) {\n return options.redirectUri;\n } else if (kc.redirectUri) {\n return kc.redirectUri;\n } else {\n return location.href;\n }\n }\n };\n }\n\n if (type == 'cordova') {\n loginIframe.enable = false;\n var cordovaOpenWindowWrapper = function(loginUrl, target, options) {\n if (window.cordova && window.cordova.InAppBrowser) {\n // Use inappbrowser for IOS and Android if available\n return window.cordova.InAppBrowser.open(loginUrl, target, options);\n } else {\n return window.open(loginUrl, target, options);\n }\n };\n\n var shallowCloneCordovaOptions = function (userOptions) {\n if (userOptions && userOptions.cordovaOptions) {\n return Object.keys(userOptions.cordovaOptions).reduce(function (options, optionName) {\n options[optionName] = userOptions.cordovaOptions[optionName];\n return options;\n }, {});\n } else {\n return {};\n }\n };\n\n var formatCordovaOptions = function (cordovaOptions) {\n return Object.keys(cordovaOptions).reduce(function (options, optionName) {\n options.push(optionName+\"=\"+cordovaOptions[optionName]);\n return options;\n }, []).join(\",\");\n };\n\n var createCordovaOptions = function (userOptions) {\n var cordovaOptions = shallowCloneCordovaOptions(userOptions);\n cordovaOptions.location = 'no';\n if (userOptions && userOptions.prompt == 'none') {\n cordovaOptions.hidden = 'yes';\n }\n return formatCordovaOptions(cordovaOptions);\n };\n\n var getCordovaRedirectUri = function() {\n return kc.redirectUri || 'http://localhost';\n };\n \n return {\n login: function(options) {\n var promise = createPromise();\n\n var cordovaOptions = createCordovaOptions(options);\n var loginUrl = kc.createLoginUrl(options);\n var ref = cordovaOpenWindowWrapper(loginUrl, '_blank', cordovaOptions);\n var completed = false;\n\n var closed = false;\n var closeBrowser = function() {\n closed = true;\n ref.close();\n };\n\n ref.addEventListener('loadstart', function(event) {\n if (event.url.indexOf(getCordovaRedirectUri()) == 0) {\n var callback = parseCallback(event.url);\n processCallback(callback, promise);\n closeBrowser();\n completed = true;\n }\n });\n\n ref.addEventListener('loaderror', function(event) {\n if (!completed) {\n if (event.url.indexOf(getCordovaRedirectUri()) == 0) {\n var callback = parseCallback(event.url);\n processCallback(callback, promise);\n closeBrowser();\n completed = true;\n } else {\n promise.setError();\n closeBrowser();\n }\n }\n });\n\n ref.addEventListener('exit', function(event) {\n if (!closed) {\n promise.setError({\n reason: \"closed_by_user\"\n });\n }\n });\n\n return promise.promise;\n },\n\n logout: function(options) {\n var promise = createPromise();\n\n var logoutUrl = kc.createLogoutUrl(options);\n var ref = cordovaOpenWindowWrapper(logoutUrl, '_blank', 'location=no,hidden=yes,clearcache=yes');\n\n var error;\n\n ref.addEventListener('loadstart', function(event) {\n if (event.url.indexOf(getCordovaRedirectUri()) == 0) {\n ref.close();\n }\n });\n\n ref.addEventListener('loaderror', function(event) {\n if (event.url.indexOf(getCordovaRedirectUri()) == 0) {\n ref.close();\n } else {\n error = true;\n ref.close();\n }\n });\n\n ref.addEventListener('exit', function(event) {\n if (error) {\n promise.setError();\n } else {\n kc.clearToken();\n promise.setSuccess();\n }\n });\n\n return promise.promise;\n },\n\n register : function(options) {\n var promise = createPromise();\n var registerUrl = kc.createRegisterUrl();\n var cordovaOptions = createCordovaOptions(options);\n var ref = cordovaOpenWindowWrapper(registerUrl, '_blank', cordovaOptions);\n ref.addEventListener('loadstart', function(event) {\n if (event.url.indexOf(getCordovaRedirectUri()) == 0) {\n ref.close();\n var oauth = parseCallback(event.url);\n processCallback(oauth, promise);\n }\n });\n return promise.promise;\n },\n\n accountManagement : function() {\n var accountUrl = kc.createAccountUrl();\n if (typeof accountUrl !== 'undefined') {\n var ref = cordovaOpenWindowWrapper(accountUrl, '_blank', 'location=no');\n ref.addEventListener('loadstart', function(event) {\n if (event.url.indexOf(getCordovaRedirectUri()) == 0) {\n ref.close();\n }\n });\n } else {\n throw \"Not supported by the OIDC server\";\n }\n },\n\n redirectUri: function(options) {\n return getCordovaRedirectUri();\n }\n }\n }\n\n if (type == 'cordova-native') {\n loginIframe.enable = false;\n\n return {\n login: function(options) {\n var promise = createPromise();\n var loginUrl = kc.createLoginUrl(options);\n\n universalLinks.subscribe('keycloak', function(event) {\n universalLinks.unsubscribe('keycloak');\n window.cordova.plugins.browsertab.close();\n var oauth = parseCallback(event.url);\n processCallback(oauth, promise);\n });\n\n window.cordova.plugins.browsertab.openUrl(loginUrl);\n return promise.promise;\n },\n\n logout: function(options) {\n var promise = createPromise();\n var logoutUrl = kc.createLogoutUrl(options);\n\n universalLinks.subscribe('keycloak', function(event) {\n universalLinks.unsubscribe('keycloak');\n window.cordova.plugins.browsertab.close();\n kc.clearToken();\n promise.setSuccess();\n });\n\n window.cordova.plugins.browsertab.openUrl(logoutUrl);\n return promise.promise;\n },\n\n register : function(options) {\n var promise = createPromise();\n var registerUrl = kc.createRegisterUrl(options);\n universalLinks.subscribe('keycloak' , function(event) {\n universalLinks.unsubscribe('keycloak');\n window.cordova.plugins.browsertab.close();\n var oauth = parseCallback(event.url);\n processCallback(oauth, promise);\n });\n window.cordova.plugins.browsertab.openUrl(registerUrl);\n return promise.promise;\n\n },\n\n accountManagement : function() {\n var accountUrl = kc.createAccountUrl();\n if (typeof accountUrl !== 'undefined') {\n window.cordova.plugins.browsertab.openUrl(accountUrl);\n } else {\n throw \"Not supported by the OIDC server\";\n }\n },\n\n redirectUri: function(options) {\n if (options && options.redirectUri) {\n return options.redirectUri;\n } else if (kc.redirectUri) {\n return kc.redirectUri;\n } else {\n return \"http://localhost\";\n }\n }\n }\n }\n\n throw 'invalid adapter type: ' + type;\n }\n\n var LocalStorage = function() {\n if (!(this instanceof LocalStorage)) {\n return new LocalStorage();\n }\n\n localStorage.setItem('kc-test', 'test');\n localStorage.removeItem('kc-test');\n\n var cs = this;\n\n function clearExpired() {\n var time = new Date().getTime();\n for (var i = 0; i < localStorage.length; i++) {\n var key = localStorage.key(i);\n if (key && key.indexOf('kc-callback-') == 0) {\n var value = localStorage.getItem(key);\n if (value) {\n try {\n var expires = JSON.parse(value).expires;\n if (!expires || expires < time) {\n localStorage.removeItem(key);\n }\n } catch (err) {\n localStorage.removeItem(key);\n }\n }\n }\n }\n }\n\n cs.get = function(state) {\n if (!state) {\n return;\n }\n\n var key = 'kc-callback-' + state;\n var value = localStorage.getItem(key);\n if (value) {\n localStorage.removeItem(key);\n value = JSON.parse(value);\n }\n\n clearExpired();\n return value;\n };\n\n cs.add = function(state) {\n clearExpired();\n\n var key = 'kc-callback-' + state.state;\n state.expires = new Date().getTime() + (60 * 60 * 1000);\n localStorage.setItem(key, JSON.stringify(state));\n };\n };\n\n var CookieStorage = function() {\n if (!(this instanceof CookieStorage)) {\n return new CookieStorage();\n }\n\n var cs = this;\n\n cs.get = function(state) {\n if (!state) {\n return;\n }\n\n var value = getCookie('kc-callback-' + state);\n setCookie('kc-callback-' + state, '', cookieExpiration(-100));\n if (value) {\n return JSON.parse(value);\n }\n };\n\n cs.add = function(state) {\n setCookie('kc-callback-' + state.state, JSON.stringify(state), cookieExpiration(60));\n };\n\n cs.removeItem = function(key) {\n setCookie(key, '', cookieExpiration(-100));\n };\n\n var cookieExpiration = function (minutes) {\n var exp = new Date();\n exp.setTime(exp.getTime() + (minutes*60*1000));\n return exp;\n };\n\n var getCookie = function (key) {\n var name = key + '=';\n var ca = document.cookie.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) == ' ') {\n c = c.substring(1);\n }\n if (c.indexOf(name) == 0) {\n return c.substring(name.length, c.length);\n }\n }\n return '';\n };\n\n var setCookie = function (key, value, expirationDate) {\n var cookie = key + '=' + value + '; '\n + 'expires=' + expirationDate.toUTCString() + '; ';\n document.cookie = cookie;\n };\n };\n\n function createCallbackStorage() {\n try {\n return new LocalStorage();\n } catch (err) {\n }\n\n return new CookieStorage();\n }\n\n function createLogger(fn) {\n return function() {\n if (kc.enableLogging) {\n fn.apply(console, Array.prototype.slice.call(arguments));\n }\n };\n }\n}\n\nexport { Keycloak as default };\n",".button {\n\tdisplay: flex;\n\theight: 50px;\n\tpadding: 0;\n\tbackground: #3e7671;\n\tborder: none;\n\toutline: none;\n\tborder-radius: 5px;\n\toverflow: hidden;\n\tfont-size: 16px;\n\tfont-weight: 500;\n\tcursor: pointer;\n min-width: 220px;\n max-width: 220px;\n}\n\n.button:hover {\n\tbackground: #008168;\n}\n\n.button:active {\n\tbackground: #3e7671;\n}\n\n.button-text{\n\tdisplay: block;\n\tmargin: auto;\n\tpadding: 0 24px;\n\tcolor: #fff;\n text-overflow: ellipsis;\n overflow:hidden;\n white-space:nowrap;\n width: 80px;\n}\n\n.button-icon {\n margin: auto;\n padding: 10px; \n}\n\n.button-profile {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tcolor: #fff;\n}\n\n.button-profile img {\n\theight: 50px;\n}\n\n.button-text-full-width {\n width: auto!important;\n}\n\n.button-link {\n text-decoration: none!important;\n}\n\n/* Menu icon */\n.gg-menu-grid-r {\n color: #fff;\n box-sizing: border-box;\n position: relative;\n display: block;\n transform: scale(var(--ggs,1));\n width: 16px;\n height: 16px;\n}\n \n.gg-menu-grid-r::before {\n content: \"\";\n display: block;\n box-sizing: border-box;\n position: absolute;\n width: 4px;\n height: 4px;\n background: currentColor;\n box-shadow:\n 0 6px 0,\n 6px 6px 0,\n 12px 6px 0,\n 6px 12px 0,\n 12px 12px 0,\n 6px 0 0,\n 12px 0 0,\n 0 12px 0;\n} \n\n/* Drop down section */\n.dropdown {\n position: relative;\n display: inline-block;\n}\n \n.dropdown-content {\n display: none;\n position: absolute;\n right: 0;\n background-color: #f9f9f9;\n min-width: 180px;\n box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);\n z-index: 1;\n border-radius: 5px;\n}\n \n.dropdown-content a {\n color: #71797E;\n padding: 16px 20px;\n text-decoration: none;\n display: block;\n cursor: pointer;\n}\n \n.dropdown-content a:hover {\n background-color: #f1f1f1;\n color: #000;\n opacity: 0.7;\n}\n\n.dropdown:hover .dropdown-content {\n display: block;\n}\n\n\n/* Modal Content */\n.modal {\n display: none;\n position: fixed;\n z-index: 1;\n padding-top: 100px;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n overflow: auto;\n background-color: rgb(0,0,0);\n background-color: rgba(0,0,0,0.4);\n text-align: center;\n }\n \n\n .modal-content {\n background-color: #fefefe;\n margin: auto;\n padding: 20px;\n border: 1px solid #888;\n width: 40%;\n }\n\n .modal-body {\n max-height: 50vh;\n overflow-y: auto;\n }\n \n .close {\n color: #aaaaaa;\n float: right;\n font-size: 28px;\n font-weight: bold;\n }\n \n .close:hover,\n .close:focus {\n color: #000;\n text-decoration: none;\n cursor: pointer;\n }\n\n .modal-app {\n background-color: #c3e9bc;\n padding: 15px;\n margin: 10px;\n border-radius: 5px;\n }\n\n .external-app-link {\n text-decoration:none; \n color: #000;\n }\n\n .gray-text {\n color: #606060;\n }\n\n .green-text {\n color: #3e7671;\n }\n\n #countdown {\n position: relative;\n margin: auto;\n margin-top: 30px;\n height: 40px;\n width: 40px;\n text-align: center;\n }\n \n #countdown-number {\n color: #2e2e2e;\n display: inline-block;\n line-height: 40px;\n }\n \n svg {\n position: absolute;\n top: 0;\n right: 0;\n width: 40px;\n height: 40px;\n transform: rotateY(-180deg) rotateZ(-90deg);\n }\n \n svg circle {\n stroke-dasharray: 113px;\n stroke-dashoffset: 0px;\n stroke-linecap: round;\n stroke-width: 4px;\n stroke: #008168;\n fill: none;\n animation: countdown 6s linear infinite forwards;\n }\n \n @keyframes countdown {\n from {\n stroke-dashoffset: 0px;\n }\n to {\n stroke-dashoffset: 113px;\n }\n }\n\n .lds-ring {\n color: #fff\n }\n .lds-ring {\n display: flex;\n justify-content: center;\n align-items: center;\n margin: auto;\n position: relative;\n }\n .lds-ring div {\n box-sizing: border-box;\n display: block;\n position: absolute;\n width: 30px;\n height: 30px;\n margin: 3px;\n border: 3px solid currentColor;\n border-radius: 50%;\n animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\n border-color: currentColor transparent transparent transparent;\n }\n .lds-ring div:nth-child(1) {\n animation-delay: -0.45s;\n }\n .lds-ring div:nth-child(2) {\n animation-delay: -0.3s;\n }\n .lds-ring div:nth-child(3) {\n animation-delay: -0.15s;\n }\n @keyframes lds-ring {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }","import { Component, Prop, State, h, Element } from '@stencil/core';\nimport Keycloak from \"keycloak-js\";\n\n\n@Component({\n tag: 'dash-button',\n styleUrl: 'dash-button.css',\n shadow: true,\n})\nexport class DashButtonComponent {\n\n @Element() el;\n \n @Prop() showPostLoginText: boolean = false;\n @Prop() silentCheckSso: boolean = false;\n @Prop() redirectUri: string;\n @Prop() authMethod: string = \"check-sso\";\n\n @Prop() keycloakUri: string = \"http://localhost:8080\";\n @Prop() realm: string = \"\";\n @Prop() clientId: string = \"\";\n\n @Prop() appId: string = \"\";\n @Prop() portalUrl: string = \"\";\n @Prop() marketplaceUrl: string = \"https://marketplace-zdzw.cloud.zdzw-project.com\";\n @Prop() plmUrl: string = \"https://productlicensemanager-zdzw.cloud.zdzw-project.com\";\n @Prop() showUnauthorizedModal: boolean = false;\n @Prop() postTextDelayDuration: number;\n\n @State() keycloak: any = new Keycloak({\n url: this.keycloakUri,\n realm: this.realm,\n clientId: this.clientId,\n });;\n\n @State() isAuth = false;\n @State() givenName: string = \"\";\n @State() silentCheckSsoRedirectUri: string = window.location.origin + '/assets/verificar-sso.html';\n\n @State() appList = []\n\n @State() showPostLoginLoadingSpinner = false;\n\n componentWillLoad() {\n //\n // User set post-text-delay-duration for displaying loading spinner\n //\n if(this.postTextDelayDuration > 0) {\n // Show loading spinner\n this.showPostLoginLoadingSpinner = true\n // Removing a loading spinner after the delay period ending\n setTimeout(() => {\n this.showPostLoginLoadingSpinner = false\n }, this.postTextDelayDuration);\n }\n\n //\n // Init Keycloak\n //\n this.initKeycloak().then(() => {\n // Check if the user is authenticated\n if(this.isAuth) {\n const _token = JSON.parse(localStorage.getItem('keycloak')).token\n \n this.getAppList(_token).then(res => {\n this.appList = res\n\n // If the user has set an app ID, check if they have permission to access\n if(this.appId) {\n \n // Retrieve the list of buttons that are configured to set the app ID\n const appIdList = this.appId.replace(/'/g, '').split(',');\n // Remote appID list parsed from object\n const tempAppList = this.appList.map(obj => obj['shortname'])\n\n // Check if the user has permission to access the selected application\n if(appIdList.filter(id => tempAppList.includes(id)).length == 0) {\n // Update local storage app permission\n localStorage.setItem(\"ZDZW_app_permission\", JSON.stringify(false));\n\n // Show modal\n const appErrorModal = this.el.shadowRoot.querySelector('#appPermissionErrorModal');\n appErrorModal.style.display = \"block\";\n\n // If a redirect URL is provided, show the loading spinner\n if (this.portalUrl && this.showUnauthorizedModal) {\n var countdownNumberEl = this.el.shadowRoot.getElementById('countdown-number');\n var countdown = 6;\n\n countdownNumberEl.textContent = countdown.toString();\n\n setInterval(() => {\n countdown = --countdown <= 0 ? 6 : countdown;\n countdownNumberEl.textContent = countdown.toString();\n\n // Once the countdown finishes, redirect to the provided URL\n if(countdown == 1) {\n // appErrorModal.style.display = \"none\";\n window.location.replace(this.portalUrl.toString());\n }\n }, 1000);\n }\n } else {\n // The user is authenticated and has the necessary permissions\n // Update local storage app permission\n localStorage.setItem(\"ZDZW_app_permission\", JSON.stringify(true));\n }\n }\n\n })\n }\n })\n }\n\n async initKeycloak() {\n // Remove the initiation time permission localstorage object\n localStorage.removeItem(\"ZDZW_app_permission\");\n\n await this.keycloak.init(\n {\n onLoad: this.authMethod,\n checkLoginIframe: false,\n silentCheckSsoRedirectUri: this.silentCheckSso ? this.silentCheckSsoRedirectUri : '',\n }).then(res => {\n if(res) {\n this.isAuth = true\n localStorage.setItem(\"keycloak\", JSON.stringify(this.keycloak));\n document.cookie = \"ZDZW_cookie=\" + JSON.parse(localStorage.getItem('keycloak')).token;\n\n this.givenName = JSON.parse(localStorage.getItem('keycloak')).idTokenParsed.given_name\n } \n });\n }\n\n async getAppList(token) {\n // const token = await JSON.parse(localStorage.getItem('keycloak')).token;\n // const response = await fetch(this.marketplaceUrl + '/api/v1/product/nameAndShortName', {\n // headers: new Headers({\n // 'Authorization': 'Bearer ' + token,\n // }),\n // })\n\n const response = await fetch(this.plmUrl + '/api/v1/product/nameAndShortNameOrg', {\n headers: new Headers({\n 'Authorization': 'Bearer ' + token,\n }),\n })\n const jsonObj = await response.json()\n return jsonObj\n }\n\n login() { \n this.keycloak.login() \n }\n\n logout() {\n localStorage.removeItem(\"keycloak\");\n document.cookie = \"ZDZW_cookie=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;\";\n this.keycloak.logout() \n } \n\n showModal() {\n const appModal = this.el.shadowRoot.querySelector('#appListModal');\n appModal.style.display = \"block\";\n }\n\n closeModal() {\n const appModal = this.el.shadowRoot.querySelector('#appListModal');\n appModal.style.display = \"none\";\n }\n\n render() {\n return <div>\n <div>\n {\n (() => {\n if(this.isAuth && this.showPostLoginText) {\n // User set post-text-delay-duration for displaying loading spinner\n if(this.showPostLoginLoadingSpinner) {\n return (\n <a id=\"login-btn\" class=\"button button-link\">\n <div class=\"lds-ring\"><div></div><div></div><div></div><div></div></div>\n </a>\n )\n } else {\n return (\n <a href={this.redirectUri} id=\"login-btn\" class=\"button button-link\">\n <span class=\"button-text button-text-full-width\">Go to Dashboard</span>\n </a>\n )\n }\n \n } else if (this.isAuth) {\n return (\n <div id=\"profile-btn\" class=\"dropdown\">\n <button type=\"button\" class=\"button\">\n <span class=\"button-profile\">\n <img src=\"https://i.pravatar.cc/100?img=32\" alt=\"\"/>\n </span>\n <span id=\"given-name\" class=\"button-text\">{this.givenName}</span>\n <div class=\"button-icon\">\n <span class=\"gg-menu-grid-r\"></span>\n </div>\n </button>\n <div class=\"dropdown-content\">\n <a onClick={this.showModal.bind(this)} id=\"applications-btn\">Applications</a>\n <a href={this.portalUrl} target='_blank' id=\"applications-btn\">Portal</a>\n <a href={this.marketplaceUrl} target='_blank' id=\"applications-btn\">Marketplace</a>\n <a onClick={this.logout.bind(this)} id=\"logout-btn\">Logout</a>\n </div>\n </div>\n )\n } else {\n return (\n <button onClick={this.login.bind(this)} id=\"login-btn\" type=\"button\" class=\"button\">\n <span class=\"button-text\">Login</span>\n </button>\n )\n }\n })() \n } \n </div>\n \n <div id=\"appListModal\" class=\"modal\">\n \n <div class=\"modal-content\">\n <span onClick={this.closeModal.bind(this)} class=\"close\">×</span>\n <h3>Applications</h3>\n <div class=\"modal-body\">\n {this.appList.length > 0 ? this.appList.map( app => {\n return (\n <a class=\"external-app-link\" target='_blank' href={\"https://\" + app.shortname + \"-zdzw\"+ this.portalUrl.replace(/(^\\w+:|^)\\/\\//, '').replace('portal-frontend-zdzw','')}>\n <div class=\"modal-app\">\n <div>{app.name}</div>\n </div>\n </a>\n );\n }) : <div><h3 class=\"gray-text\">Not installed application found.</h3> <p class=\"gray-text\">Please contact administration.</p></div>}\n </div>\n </div>\n \n </div>\n\n <div id=\"appPermissionErrorModal\" class=\"modal\">\n <div class=\"modal-content\">\n <img src=\"data:image/png;base64,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\"/>\n <h2 class=\"green-text margin-b\">You don't have permission to access this application.</h2>\n <h3 class=\"green-text\">Please contact the administration.</h3>\n \n {(this.portalUrl && this.showUnauthorizedModal) ? \n <div>\n <h4 class=\"gray-text\">You will be automatically redirected to the portal.</h4>\n <div id=\"countdown\">\n <div id=\"countdown-number\"></div>\n <svg>\n <circle r=\"18\" cx=\"20\" cy=\"20\"></circle>\n </svg>\n </div>\n </div>\n : <div></div>\n }\n </div>\n </div>\n\n </div>;\n }\n}\n"],"version":3}
|