dash-button-web 0.0.1
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/LICENSE +21 -0
- package/dist/cjs/dash-button.cjs.entry.js +2549 -0
- package/dist/cjs/dash-button.cjs.entry.js.map +1 -0
- package/dist/cjs/index-8282b36b.js +1733 -0
- package/dist/cjs/index-8282b36b.js.map +1 -0
- package/dist/cjs/index.cjs.js +4 -0
- package/dist/cjs/index.cjs.js.map +1 -0
- package/dist/cjs/loader.cjs.js +15 -0
- package/dist/cjs/loader.cjs.js.map +1 -0
- package/dist/cjs/web-compnont.cjs.js +25 -0
- package/dist/cjs/web-compnont.cjs.js.map +1 -0
- package/dist/collection/collection-manifest.json +12 -0
- package/dist/collection/components/my-component/dash-button.css +169 -0
- package/dist/collection/components/my-component/dash-button.e2e.js +26 -0
- package/dist/collection/components/my-component/dash-button.e2e.js.map +1 -0
- package/dist/collection/components/my-component/dash-button.js +195 -0
- package/dist/collection/components/my-component/dash-button.js.map +1 -0
- package/dist/collection/components/my-component/dash-button.spec.js +35 -0
- package/dist/collection/components/my-component/dash-button.spec.js.map +1 -0
- package/dist/collection/index.js +2 -0
- package/dist/collection/index.js.map +1 -0
- package/dist/components/dash-button.d.ts +11 -0
- package/dist/components/dash-button.js +2574 -0
- package/dist/components/dash-button.js.map +1 -0
- package/dist/components/index.d.ts +33 -0
- package/dist/components/index.js +3 -0
- package/dist/components/index.js.map +1 -0
- package/dist/esm/dash-button.entry.js +2545 -0
- package/dist/esm/dash-button.entry.js.map +1 -0
- package/dist/esm/index-2b6c17bc.js +1706 -0
- package/dist/esm/index-2b6c17bc.js.map +1 -0
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/loader.js +11 -0
- package/dist/esm/loader.js.map +1 -0
- package/dist/esm/polyfills/core-js.js +11 -0
- package/dist/esm/polyfills/dom.js +79 -0
- package/dist/esm/polyfills/es5-html-element.js +1 -0
- package/dist/esm/polyfills/index.js +34 -0
- package/dist/esm/polyfills/system.js +6 -0
- package/dist/esm/web-compnont.js +20 -0
- package/dist/esm/web-compnont.js.map +1 -0
- package/dist/index.cjs.js +1 -0
- package/dist/index.js +1 -0
- package/dist/types/components/my-component/dash-button.d.ts +19 -0
- package/dist/types/components.d.ts +49 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/stencil-public-runtime.d.ts +1681 -0
- package/dist/web-compnont/index.esm.js +2 -0
- package/dist/web-compnont/index.esm.js.map +1 -0
- package/dist/web-compnont/p-35259f64.js +3 -0
- package/dist/web-compnont/p-35259f64.js.map +1 -0
- package/dist/web-compnont/p-97a6df2d.entry.js +10 -0
- package/dist/web-compnont/p-97a6df2d.entry.js.map +1 -0
- package/dist/web-compnont/web-compnont.esm.js +2 -0
- package/dist/web-compnont/web-compnont.esm.js.map +1 -0
- package/loader/cdn.js +3 -0
- package/loader/index.cjs.js +3 -0
- package/loader/index.d.ts +21 -0
- package/loader/index.es2017.js +3 -0
- package/loader/index.js +4 -0
- package/loader/package.json +11 -0
- package/package.json +41 -0
- package/readme.md +124 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import{r as e,h as t,g as n}from"./p-35259f64.js";var r=typeof globalThis!=="undefined"?globalThis:typeof window!=="undefined"?window:typeof global!=="undefined"?global:typeof self!=="undefined"?self:{};function i(e){if(e.__esModule)return e;var t=Object.defineProperty({},"__esModule",{value:true});Object.keys(e).forEach((function(n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:true,get:function(){return e[n]}})}));return t}var o={};o.byteLength=h;o.toByteArray=p;o.fromByteArray=g;var a=[];var s=[];var f=typeof Uint8Array!=="undefined"?Uint8Array:Array;var c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var u=0,l=c.length;u<l;++u){a[u]=c[u];s[c.charCodeAt(u)]=u}s["-".charCodeAt(0)]=62;s["_".charCodeAt(0)]=63;function d(e){var t=e.length;if(t%4>0){throw new Error("Invalid string. Length must be a multiple of 4")}var n=e.indexOf("=");if(n===-1)n=t;var r=n===t?0:4-n%4;return[n,r]}function h(e){var t=d(e);var n=t[0];var r=t[1];return(n+r)*3/4-r}function v(e,t,n){return(t+n)*3/4-n}function p(e){var t;var n=d(e);var r=n[0];var i=n[1];var o=new f(v(e,r,i));var a=0;var c=i>0?r-4:r;var u;for(u=0;u<c;u+=4){t=s[e.charCodeAt(u)]<<18|s[e.charCodeAt(u+1)]<<12|s[e.charCodeAt(u+2)]<<6|s[e.charCodeAt(u+3)];o[a++]=t>>16&255;o[a++]=t>>8&255;o[a++]=t&255}if(i===2){t=s[e.charCodeAt(u)]<<2|s[e.charCodeAt(u+1)]>>4;o[a++]=t&255}if(i===1){t=s[e.charCodeAt(u)]<<10|s[e.charCodeAt(u+1)]<<4|s[e.charCodeAt(u+2)]>>2;o[a++]=t>>8&255;o[a++]=t&255}return o}function w(e){return a[e>>18&63]+a[e>>12&63]+a[e>>6&63]+a[e&63]}function b(e,t,n){var r;var i=[];for(var o=t;o<n;o+=3){r=(e[o]<<16&16711680)+(e[o+1]<<8&65280)+(e[o+2]&255);i.push(w(r))}return i.join("")}function g(e){var t;var n=e.length;var r=n%3;var i=[];var o=16383;for(var s=0,f=n-r;s<f;s+=o){i.push(b(e,s,s+o>f?f:s+o))}if(r===1){t=e[n-1];i.push(a[t>>2]+a[t<<4&63]+"==")}else if(r===2){t=(e[n-2]<<8)+e[n-1];i.push(a[t>>10]+a[t>>4&63]+a[t<<2&63]+"=")}return i.join("")}var k={exports:{}};const m={};const y=Object.freeze({__proto__:null,default:m});const x=i(y);
|
|
2
|
+
/**
|
|
3
|
+
* [js-sha256]{@link https://github.com/emn178/js-sha256}
|
|
4
|
+
*
|
|
5
|
+
* @version 0.10.1
|
|
6
|
+
* @author Chen, Yi-Cyuan [emn178@gmail.com]
|
|
7
|
+
* @copyright Chen, Yi-Cyuan 2014-2023
|
|
8
|
+
* @license MIT
|
|
9
|
+
*/(function(e){(function(){var t="input is invalid type";var n=typeof window==="object";var i=n?window:{};if(i.JS_SHA256_NO_WINDOW){n=false}var o=!n&&typeof self==="object";var a=!i.JS_SHA256_NO_NODE_JS&&typeof process==="object"&&process.versions&&process.versions.node;if(a){i=r}else if(o){i=self}var s=!i.JS_SHA256_NO_COMMON_JS&&"object"==="object"&&e.exports;var f=!i.JS_SHA256_NO_ARRAY_BUFFER&&typeof ArrayBuffer!=="undefined";var c="0123456789abcdef".split("");var u=[-2147483648,8388608,32768,128];var l=[24,16,8,0];var d=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];var h=["hex","array","digest","arrayBuffer"];var v=[];if(i.JS_SHA256_NO_NODE_JS||!Array.isArray){Array.isArray=function(e){return Object.prototype.toString.call(e)==="[object Array]"}}if(f&&(i.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW||!ArrayBuffer.isView)){ArrayBuffer.isView=function(e){return typeof e==="object"&&e.buffer&&e.buffer.constructor===ArrayBuffer}}var p=function(e,t){return function(n){return new m(t,true).update(n)[e]()}};var w=function(e){var t=p("hex",e);if(a){t=b(t,e)}t.create=function(){return new m(e)};t.update=function(e){return t.create().update(e)};for(var n=0;n<h.length;++n){var r=h[n];t[r]=p(r,e)}return t};var b=function(e,n){var r=x;var o=x.Buffer;var a=n?"sha224":"sha256";var s;if(o.from&&!i.JS_SHA256_NO_BUFFER_FROM){s=o.from}else{s=function(e){return new o(e)}}var f=function(n){if(typeof n==="string"){return r.createHash(a).update(n,"utf8").digest("hex")}else{if(n===null||n===undefined){throw new Error(t)}else if(n.constructor===ArrayBuffer){n=new Uint8Array(n)}}if(Array.isArray(n)||ArrayBuffer.isView(n)||n.constructor===o){return r.createHash(a).update(s(n)).digest("hex")}else{return e(n)}};return f};var g=function(e,t){return function(n,r){return new y(n,t,true).update(r)[e]()}};var k=function(e){var t=g("hex",e);t.create=function(t){return new y(t,e)};t.update=function(e,n){return t.create(e).update(n)};for(var n=0;n<h.length;++n){var r=h[n];t[r]=g(r,e)}return t};function m(e,t){if(t){v[0]=v[16]=v[1]=v[2]=v[3]=v[4]=v[5]=v[6]=v[7]=v[8]=v[9]=v[10]=v[11]=v[12]=v[13]=v[14]=v[15]=0;this.blocks=v}else{this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}if(e){this.h0=3238371032;this.h1=914150663;this.h2=812702999;this.h3=4144912697;this.h4=4290775857;this.h5=1750603025;this.h6=1694076839;this.h7=3204075428}else{this.h0=1779033703;this.h1=3144134277;this.h2=1013904242;this.h3=2773480762;this.h4=1359893119;this.h5=2600822924;this.h6=528734635;this.h7=1541459225}this.block=this.start=this.bytes=this.hBytes=0;this.finalized=this.hashed=false;this.first=true;this.is224=e}m.prototype.update=function(e){if(this.finalized){return}var n,r=typeof e;if(r!=="string"){if(r==="object"){if(e===null){throw new Error(t)}else if(f&&e.constructor===ArrayBuffer){e=new Uint8Array(e)}else if(!Array.isArray(e)){if(!f||!ArrayBuffer.isView(e)){throw new Error(t)}}}else{throw new Error(t)}n=true}var i,o=0,a,s=e.length,c=this.blocks;while(o<s){if(this.hashed){this.hashed=false;c[0]=this.block;c[16]=c[1]=c[2]=c[3]=c[4]=c[5]=c[6]=c[7]=c[8]=c[9]=c[10]=c[11]=c[12]=c[13]=c[14]=c[15]=0}if(n){for(a=this.start;o<s&&a<64;++o){c[a>>2]|=e[o]<<l[a++&3]}}else{for(a=this.start;o<s&&a<64;++o){i=e.charCodeAt(o);if(i<128){c[a>>2]|=i<<l[a++&3]}else if(i<2048){c[a>>2]|=(192|i>>6)<<l[a++&3];c[a>>2]|=(128|i&63)<<l[a++&3]}else if(i<55296||i>=57344){c[a>>2]|=(224|i>>12)<<l[a++&3];c[a>>2]|=(128|i>>6&63)<<l[a++&3];c[a>>2]|=(128|i&63)<<l[a++&3]}else{i=65536+((i&1023)<<10|e.charCodeAt(++o)&1023);c[a>>2]|=(240|i>>18)<<l[a++&3];c[a>>2]|=(128|i>>12&63)<<l[a++&3];c[a>>2]|=(128|i>>6&63)<<l[a++&3];c[a>>2]|=(128|i&63)<<l[a++&3]}}}this.lastByteIndex=a;this.bytes+=a-this.start;if(a>=64){this.block=c[16];this.start=a-64;this.hash();this.hashed=true}else{this.start=a}}if(this.bytes>4294967295){this.hBytes+=this.bytes/4294967296<<0;this.bytes=this.bytes%4294967296}return this};m.prototype.finalize=function(){if(this.finalized){return}this.finalized=true;var e=this.blocks,t=this.lastByteIndex;e[16]=this.block;e[t>>2]|=u[t&3];this.block=e[16];if(t>=56){if(!this.hashed){this.hash()}e[0]=this.block;e[16]=e[1]=e[2]=e[3]=e[4]=e[5]=e[6]=e[7]=e[8]=e[9]=e[10]=e[11]=e[12]=e[13]=e[14]=e[15]=0}e[14]=this.hBytes<<3|this.bytes>>>29;e[15]=this.bytes<<3;this.hash()};m.prototype.hash=function(){var e=this.h0,t=this.h1,n=this.h2,r=this.h3,i=this.h4,o=this.h5,a=this.h6,s=this.h7,f=this.blocks,c,u,l,h,v,p,w,b,g,k,m;for(c=16;c<64;++c){v=f[c-15];u=(v>>>7|v<<25)^(v>>>18|v<<14)^v>>>3;v=f[c-2];l=(v>>>17|v<<15)^(v>>>19|v<<13)^v>>>10;f[c]=f[c-16]+u+f[c-7]+l<<0}m=t&n;for(c=0;c<64;c+=4){if(this.first){if(this.is224){b=300032;v=f[0]-1413257819;s=v-150054599<<0;r=v+24177077<<0}else{b=704751109;v=f[0]-210244248;s=v-1521486534<<0;r=v+143694565<<0}this.first=false}else{u=(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10);l=(i>>>6|i<<26)^(i>>>11|i<<21)^(i>>>25|i<<7);b=e&t;h=b^e&n^m;w=i&o^~i&a;v=s+l+w+d[c]+f[c];p=u+h;s=r+v<<0;r=v+p<<0}u=(r>>>2|r<<30)^(r>>>13|r<<19)^(r>>>22|r<<10);l=(s>>>6|s<<26)^(s>>>11|s<<21)^(s>>>25|s<<7);g=r&e;h=g^r&t^b;w=s&i^~s&o;v=a+l+w+d[c+1]+f[c+1];p=u+h;a=n+v<<0;n=v+p<<0;u=(n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10);l=(a>>>6|a<<26)^(a>>>11|a<<21)^(a>>>25|a<<7);k=n&r;h=k^n&e^g;w=a&s^~a&i;v=o+l+w+d[c+2]+f[c+2];p=u+h;o=t+v<<0;t=v+p<<0;u=(t>>>2|t<<30)^(t>>>13|t<<19)^(t>>>22|t<<10);l=(o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7);m=t&n;h=m^t&r^k;w=o&a^~o&s;v=i+l+w+d[c+3]+f[c+3];p=u+h;i=e+v<<0;e=v+p<<0;this.chromeBugWorkAround=true}this.h0=this.h0+e<<0;this.h1=this.h1+t<<0;this.h2=this.h2+n<<0;this.h3=this.h3+r<<0;this.h4=this.h4+i<<0;this.h5=this.h5+o<<0;this.h6=this.h6+a<<0;this.h7=this.h7+s<<0};m.prototype.hex=function(){this.finalize();var e=this.h0,t=this.h1,n=this.h2,r=this.h3,i=this.h4,o=this.h5,a=this.h6,s=this.h7;var f=c[e>>28&15]+c[e>>24&15]+c[e>>20&15]+c[e>>16&15]+c[e>>12&15]+c[e>>8&15]+c[e>>4&15]+c[e&15]+c[t>>28&15]+c[t>>24&15]+c[t>>20&15]+c[t>>16&15]+c[t>>12&15]+c[t>>8&15]+c[t>>4&15]+c[t&15]+c[n>>28&15]+c[n>>24&15]+c[n>>20&15]+c[n>>16&15]+c[n>>12&15]+c[n>>8&15]+c[n>>4&15]+c[n&15]+c[r>>28&15]+c[r>>24&15]+c[r>>20&15]+c[r>>16&15]+c[r>>12&15]+c[r>>8&15]+c[r>>4&15]+c[r&15]+c[i>>28&15]+c[i>>24&15]+c[i>>20&15]+c[i>>16&15]+c[i>>12&15]+c[i>>8&15]+c[i>>4&15]+c[i&15]+c[o>>28&15]+c[o>>24&15]+c[o>>20&15]+c[o>>16&15]+c[o>>12&15]+c[o>>8&15]+c[o>>4&15]+c[o&15]+c[a>>28&15]+c[a>>24&15]+c[a>>20&15]+c[a>>16&15]+c[a>>12&15]+c[a>>8&15]+c[a>>4&15]+c[a&15];if(!this.is224){f+=c[s>>28&15]+c[s>>24&15]+c[s>>20&15]+c[s>>16&15]+c[s>>12&15]+c[s>>8&15]+c[s>>4&15]+c[s&15]}return f};m.prototype.toString=m.prototype.hex;m.prototype.digest=function(){this.finalize();var e=this.h0,t=this.h1,n=this.h2,r=this.h3,i=this.h4,o=this.h5,a=this.h6,s=this.h7;var f=[e>>24&255,e>>16&255,e>>8&255,e&255,t>>24&255,t>>16&255,t>>8&255,t&255,n>>24&255,n>>16&255,n>>8&255,n&255,r>>24&255,r>>16&255,r>>8&255,r&255,i>>24&255,i>>16&255,i>>8&255,i&255,o>>24&255,o>>16&255,o>>8&255,o&255,a>>24&255,a>>16&255,a>>8&255,a&255];if(!this.is224){f.push(s>>24&255,s>>16&255,s>>8&255,s&255)}return f};m.prototype.array=m.prototype.digest;m.prototype.arrayBuffer=function(){this.finalize();var e=new ArrayBuffer(this.is224?28:32);var t=new DataView(e);t.setUint32(0,this.h0);t.setUint32(4,this.h1);t.setUint32(8,this.h2);t.setUint32(12,this.h3);t.setUint32(16,this.h4);t.setUint32(20,this.h5);t.setUint32(24,this.h6);if(!this.is224){t.setUint32(28,this.h7)}return e};function y(e,n,r){var i,o=typeof e;if(o==="string"){var a=[],s=e.length,c=0,u;for(i=0;i<s;++i){u=e.charCodeAt(i);if(u<128){a[c++]=u}else if(u<2048){a[c++]=192|u>>6;a[c++]=128|u&63}else if(u<55296||u>=57344){a[c++]=224|u>>12;a[c++]=128|u>>6&63;a[c++]=128|u&63}else{u=65536+((u&1023)<<10|e.charCodeAt(++i)&1023);a[c++]=240|u>>18;a[c++]=128|u>>12&63;a[c++]=128|u>>6&63;a[c++]=128|u&63}}e=a}else{if(o==="object"){if(e===null){throw new Error(t)}else if(f&&e.constructor===ArrayBuffer){e=new Uint8Array(e)}else if(!Array.isArray(e)){if(!f||!ArrayBuffer.isView(e)){throw new Error(t)}}}else{throw new Error(t)}}if(e.length>64){e=new m(n,true).update(e).array()}var l=[],d=[];for(i=0;i<64;++i){var h=e[i]||0;l[i]=92^h;d[i]=54^h}m.call(this,n,r);this.update(d);this.oKeyPad=l;this.inner=true;this.sharedMemory=r}y.prototype=new m;y.prototype.finalize=function(){m.prototype.finalize.call(this);if(this.inner){this.inner=false;var e=this.array();m.call(this,this.is224,this.sharedMemory);this.update(this.oKeyPad);this.update(e);m.prototype.finalize.call(this)}};var _=w();_.sha256=_;_.sha224=w(true);_.sha256.hmac=k();_.sha224.hmac=k(true);if(s){e.exports=_}else{i.sha256=_.sha256;i.sha224=_.sha224}})()})(k);const _=k.exports;class I extends Error{}I.prototype.name="InvalidTokenError";function C(e){return decodeURIComponent(atob(e).replace(/(.)/g,((e,t)=>{let n=t.charCodeAt(0).toString(16).toUpperCase();if(n.length<2){n="0"+n}return"%"+n})))}function A(e){let t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw new Error("base64 string is not of the correct length")}try{return C(t)}catch(e){return atob(t)}}function O(e,t){if(typeof e!=="string"){throw new I("Invalid token specified: must be a string")}t||(t={});const n=t.header===true?0:1;const r=e.split(".")[n];if(typeof r!=="string"){throw new I(`Invalid token specified: missing part #${n+1}`)}let i;try{i=A(r)}catch(e){throw new I(`Invalid token specified: invalid base64 for part #${n+1} (${e.message})`)}try{return JSON.parse(i)}catch(e){throw new I(`Invalid token specified: invalid json for part #${n+1} (${e.message})`)}}if(typeof Promise==="undefined"){throw Error("Keycloak requires an environment that supports Promises. Make sure that you include the appropriate polyfill.")}function U(e){if(!(this instanceof U)){throw new Error("The 'Keycloak' constructor must be invoked with 'new'.")}var t=this;var n;var r=[];var i;var a={enable:true,callbackList:[],interval:5};var s=document.getElementsByTagName("script");for(var f=0;f<s.length;f++){if((s[f].src.indexOf("keycloak.js")!==-1||s[f].src.indexOf("keycloak.min.js")!==-1)&&s[f].src.indexOf("version=")!==-1){t.iframeVersion=s[f].src.substring(s[f].src.indexOf("version=")+8).split("&")[0]}}var c=true;var u=z(console.info);var l=z(console.warn);t.init=function(e){if(t.didInitialize){throw new Error("A 'Keycloak' instance can only be initialized once.")}t.didInitialize=true;t.authenticated=false;i=J();var r=["default","cordova","cordova-native"];if(e&&r.indexOf(e.adapter)>-1){n=K(e.adapter)}else if(e&&typeof e.adapter==="object"){n=e.adapter}else{if(window.Cordova||window.cordova){n=K("cordova")}else{n=K()}}if(e){if(typeof e.useNonce!=="undefined"){c=e.useNonce}if(typeof e.checkLoginIframe!=="undefined"){a.enable=e.checkLoginIframe}if(e.checkLoginIframeInterval){a.interval=e.checkLoginIframeInterval}if(e.onLoad==="login-required"){t.loginRequired=true}if(e.responseMode){if(e.responseMode==="query"||e.responseMode==="fragment"){t.responseMode=e.responseMode}else{throw"Invalid value for responseMode"}}if(e.flow){switch(e.flow){case"standard":t.responseType="code";break;case"implicit":t.responseType="id_token token";break;case"hybrid":t.responseType="code id_token token";break;default:throw"Invalid value for flow"}t.flow=e.flow}if(e.timeSkew!=null){t.timeSkew=e.timeSkew}if(e.redirectUri){t.redirectUri=e.redirectUri}if(e.silentCheckSsoRedirectUri){t.silentCheckSsoRedirectUri=e.silentCheckSsoRedirectUri}if(typeof e.silentCheckSsoFallback==="boolean"){t.silentCheckSsoFallback=e.silentCheckSsoFallback}else{t.silentCheckSsoFallback=true}if(e.pkceMethod){if(e.pkceMethod!=="S256"){throw"Invalid value for pkceMethod"}t.pkceMethod=e.pkceMethod}if(typeof e.enableLogging==="boolean"){t.enableLogging=e.enableLogging}else{t.enableLogging=false}if(typeof e.scope==="string"){t.scope=e.scope}if(typeof e.acrValues==="string"){t.acrValues=e.acrValues}if(typeof e.messageReceiveTimeout==="number"&&e.messageReceiveTimeout>0){t.messageReceiveTimeout=e.messageReceiveTimeout}else{t.messageReceiveTimeout=1e4}}if(!t.responseMode){t.responseMode="fragment"}if(!t.responseType){t.responseType="code";t.flow="standard"}var o=R();var s=R();s.promise.then((function(){t.onReady&&t.onReady(t.authenticated);o.setSuccess(t.authenticated)})).catch((function(e){o.setError(e)}));var f=m();function u(){var n=function(n){if(!n){i.prompt="none"}if(e&&e.locale){i.locale=e.locale}t.login(i).then((function(){s.setSuccess()})).catch((function(e){s.setError(e)}))};var r=function(){var e=document.createElement("iframe");var n=t.createLoginUrl({prompt:"none",redirectUri:t.silentCheckSsoRedirectUri});e.setAttribute("src",n);e.setAttribute("sandbox","allow-storage-access-by-user-activation allow-scripts allow-same-origin");e.setAttribute("title","keycloak-silent-check-sso");e.style.display="none";document.body.appendChild(e);var r=function(t){if(t.origin!==window.location.origin||e.contentWindow!==t.source){return}var n=C(t.data);k(n,s);document.body.removeChild(e);window.removeEventListener("message",r)};window.addEventListener("message",r)};var i={};switch(e.onLoad){case"check-sso":if(a.enable){j().then((function(){M().then((function(e){if(!e){t.silentCheckSsoRedirectUri?r():n(false)}else{s.setSuccess()}})).catch((function(e){s.setError(e)}))}))}else{t.silentCheckSsoRedirectUri?r():n(false)}break;case"login-required":n(true);break;default:throw"Invalid value for onLoad"}}function l(){var n=C(window.location.href);if(n){window.history.replaceState(window.history.state,null,n.newUrl)}if(n&&n.valid){return j().then((function(){k(n,s)})).catch((function(e){s.setError(e)}))}else if(e){if(e.token&&e.refreshToken){x(e.token,e.refreshToken,e.idToken);if(a.enable){j().then((function(){M().then((function(e){if(e){t.onAuthSuccess&&t.onAuthSuccess();s.setSuccess();E()}else{s.setSuccess()}})).catch((function(e){s.setError(e)}))}))}else{t.updateToken(-1).then((function(){t.onAuthSuccess&&t.onAuthSuccess();s.setSuccess()})).catch((function(n){t.onAuthError&&t.onAuthError();if(e.onLoad){u()}else{s.setError(n)}}))}}else if(e.onLoad){u()}else{s.setSuccess()}}else{s.setSuccess()}}function d(){var e=R();var t=function(){if(document.readyState==="interactive"||document.readyState==="complete"){document.removeEventListener("readystatechange",t);e.setSuccess()}};document.addEventListener("readystatechange",t);t();return e.promise}f.then((function(){d().then(N).then(l).catch((function(e){o.setError(e)}))}));f.catch((function(e){o.setError(e)}));return o.promise};t.login=function(e){return n.login(e)};function d(e){var t=null;var n=window.crypto||window.msCrypto;if(n&&n.getRandomValues&&window.Uint8Array){t=new Uint8Array(e);n.getRandomValues(t);return t}t=new Array(e);for(var r=0;r<t.length;r++){t[r]=Math.floor(256*Math.random())}return t}function h(e){return v(e,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789")}function v(e,t){var n=d(e);var r=new Array(e);for(var i=0;i<e;i++){r[i]=t.charCodeAt(n[i]%t.length)}return String.fromCharCode.apply(null,r)}function p(e,t){switch(e){case"S256":var n=new Uint8Array(_.arrayBuffer(t));var r=o.fromByteArray(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"");return r;default:throw"Invalid value for pkceMethod"}}function w(e){var t={id_token:{acr:e}};return JSON.stringify(t)}t.createLoginUrl=function(e){var r=I();var o=I();var a=n.redirectUri(e);var s={state:r,nonce:o,redirectUri:encodeURIComponent(a)};if(e&&e.prompt){s.prompt=e.prompt}var f;if(e&&e.action=="register"){f=t.endpoints.register()}else{f=t.endpoints.authorize()}var u=e&&e.scope||t.scope;if(!u){u="openid"}else if(u.indexOf("openid")===-1){u="openid "+u}var l=f+"?client_id="+encodeURIComponent(t.clientId)+"&redirect_uri="+encodeURIComponent(a)+"&state="+encodeURIComponent(r)+"&response_mode="+encodeURIComponent(t.responseMode)+"&response_type="+encodeURIComponent(t.responseType)+"&scope="+encodeURIComponent(u);if(c){l=l+"&nonce="+encodeURIComponent(o)}if(e&&e.prompt){l+="&prompt="+encodeURIComponent(e.prompt)}if(e&&e.maxAge){l+="&max_age="+encodeURIComponent(e.maxAge)}if(e&&e.loginHint){l+="&login_hint="+encodeURIComponent(e.loginHint)}if(e&&e.idpHint){l+="&kc_idp_hint="+encodeURIComponent(e.idpHint)}if(e&&e.action&&e.action!="register"){l+="&kc_action="+encodeURIComponent(e.action)}if(e&&e.locale){l+="&ui_locales="+encodeURIComponent(e.locale)}if(e&&e.acr){var d=w(e.acr);l+="&claims="+encodeURIComponent(d)}if(e&&e.acrValues||t.acrValues){l+="&acr_values="+encodeURIComponent(e.acrValues||t.acrValues)}if(t.pkceMethod){var v=h(96);s.pkceCodeVerifier=v;var b=p(t.pkceMethod,v);l+="&code_challenge="+b;l+="&code_challenge_method="+t.pkceMethod}i.add(s);return l};t.logout=function(e){return n.logout(e)};t.createLogoutUrl=function(e){var r=t.endpoints.logout()+"?client_id="+encodeURIComponent(t.clientId)+"&post_logout_redirect_uri="+encodeURIComponent(n.redirectUri(e,false));if(t.idToken){r+="&id_token_hint="+encodeURIComponent(t.idToken)}return r};t.register=function(e){return n.register(e)};t.createRegisterUrl=function(e){if(!e){e={}}e.action="register";return t.createLoginUrl(e)};t.createAccountUrl=function(e){var r=b();var i=undefined;if(typeof r!=="undefined"){i=r+"/account"+"?referrer="+encodeURIComponent(t.clientId)+"&referrer_uri="+encodeURIComponent(n.redirectUri(e))}return i};t.accountManagement=function(){return n.accountManagement()};t.hasRealmRole=function(e){var n=t.realmAccess;return!!n&&n.roles.indexOf(e)>=0};t.hasResourceRole=function(e,n){if(!t.resourceAccess){return false}var r=t.resourceAccess[n||t.clientId];return!!r&&r.roles.indexOf(e)>=0};t.loadUserProfile=function(){var e=b()+"/account";var n=new XMLHttpRequest;n.open("GET",e,true);n.setRequestHeader("Accept","application/json");n.setRequestHeader("Authorization","bearer "+t.token);var r=R();n.onreadystatechange=function(){if(n.readyState==4){if(n.status==200){t.profile=JSON.parse(n.responseText);r.setSuccess(t.profile)}else{r.setError()}}};n.send();return r.promise};t.loadUserInfo=function(){var e=t.endpoints.userinfo();var n=new XMLHttpRequest;n.open("GET",e,true);n.setRequestHeader("Accept","application/json");n.setRequestHeader("Authorization","bearer "+t.token);var r=R();n.onreadystatechange=function(){if(n.readyState==4){if(n.status==200){t.userInfo=JSON.parse(n.responseText);r.setSuccess(t.userInfo)}else{r.setError()}}};n.send();return r.promise};t.isTokenExpired=function(e){if(!t.tokenParsed||!t.refreshToken&&t.flow!="implicit"){throw"Not authenticated"}if(t.timeSkew==null){u("[KEYCLOAK] Unable to determine if token is expired as timeskew is not set");return true}var n=t.tokenParsed["exp"]-Math.ceil((new Date).getTime()/1e3)+t.timeSkew;if(e){if(isNaN(e)){throw"Invalid minValidity"}n-=e}return n<0};t.updateToken=function(e){var n=R();if(!t.refreshToken){n.setError();return n.promise}e=e||5;var i=function(){var i=false;if(e==-1){i=true;u("[KEYCLOAK] Refreshing token: forced refresh")}else if(!t.tokenParsed||t.isTokenExpired(e)){i=true;u("[KEYCLOAK] Refreshing token: token expired")}if(!i){n.setSuccess(false)}else{var o="grant_type=refresh_token&"+"refresh_token="+t.refreshToken;var a=t.endpoints.token();r.push(n);if(r.length==1){var s=new XMLHttpRequest;s.open("POST",a,true);s.setRequestHeader("Content-type","application/x-www-form-urlencoded");s.withCredentials=true;o+="&client_id="+encodeURIComponent(t.clientId);var f=(new Date).getTime();s.onreadystatechange=function(){if(s.readyState==4){if(s.status==200){u("[KEYCLOAK] Token refreshed");f=(f+(new Date).getTime())/2;var e=JSON.parse(s.responseText);x(e["access_token"],e["refresh_token"],e["id_token"],f);t.onAuthRefreshSuccess&&t.onAuthRefreshSuccess();for(var n=r.pop();n!=null;n=r.pop()){n.setSuccess(true)}}else{l("[KEYCLOAK] Failed to refresh token");if(s.status==400){t.clearToken()}t.onAuthRefreshError&&t.onAuthRefreshError();for(var n=r.pop();n!=null;n=r.pop()){n.setError(true)}}}};s.send(o)}}};if(a.enable){var o=M();o.then((function(){i()})).catch((function(e){n.setError(e)}))}else{i()}return n.promise};t.clearToken=function(){if(t.token){x(null,null,null);t.onAuthLogout&&t.onAuthLogout();if(t.loginRequired){t.login()}}};function b(){if(typeof t.authServerUrl!=="undefined"){if(t.authServerUrl.charAt(t.authServerUrl.length-1)=="/"){return t.authServerUrl+"realms/"+encodeURIComponent(t.realm)}else{return t.authServerUrl+"/realms/"+encodeURIComponent(t.realm)}}else{return undefined}}function g(){if(!window.location.origin){return window.location.protocol+"//"+window.location.hostname+(window.location.port?":"+window.location.port:"")}else{return window.location.origin}}function k(e,n){var r=e.code;var i=e.error;var o=e.prompt;var a=(new Date).getTime();if(e["kc_action_status"]){t.onActionUpdate&&t.onActionUpdate(e["kc_action_status"])}if(i){if(o!="none"){var s={error:i,error_description:e.error_description};t.onAuthError&&t.onAuthError(s);n&&n.setError(s)}else{n&&n.setSuccess()}return}else if(t.flow!="standard"&&(e.access_token||e.id_token)){h(e.access_token,null,e.id_token,true)}if(t.flow!="implicit"&&r){var f="code="+r+"&grant_type=authorization_code";var l=t.endpoints.token();var d=new XMLHttpRequest;d.open("POST",l,true);d.setRequestHeader("Content-type","application/x-www-form-urlencoded");f+="&client_id="+encodeURIComponent(t.clientId);f+="&redirect_uri="+e.redirectUri;if(e.pkceCodeVerifier){f+="&code_verifier="+e.pkceCodeVerifier}d.withCredentials=true;d.onreadystatechange=function(){if(d.readyState==4){if(d.status==200){var e=JSON.parse(d.responseText);h(e["access_token"],e["refresh_token"],e["id_token"],t.flow==="standard");E()}else{t.onAuthError&&t.onAuthError();n&&n.setError()}}};d.send(f)}function h(r,i,o,s){a=(a+(new Date).getTime())/2;x(r,i,o,a);if(c&&(t.tokenParsed&&t.tokenParsed.nonce!=e.storedNonce||t.refreshTokenParsed&&t.refreshTokenParsed.nonce!=e.storedNonce||t.idTokenParsed&&t.idTokenParsed.nonce!=e.storedNonce)){u("[KEYCLOAK] Invalid nonce, clearing token");t.clearToken();n&&n.setError()}else{if(s){t.onAuthSuccess&&t.onAuthSuccess();n&&n.setSuccess()}}}}function m(n){var r=R();var i;if(!e){i="keycloak.json"}else if(typeof e==="string"){i=e}function o(e){if(!e){t.endpoints={authorize:function(){return b()+"/protocol/openid-connect/auth"},token:function(){return b()+"/protocol/openid-connect/token"},logout:function(){return b()+"/protocol/openid-connect/logout"},checkSessionIframe:function(){var e=b()+"/protocol/openid-connect/login-status-iframe.html";if(t.iframeVersion){e=e+"?version="+t.iframeVersion}return e},thirdPartyCookiesIframe:function(){var e=b()+"/protocol/openid-connect/3p-cookies/step1.html";if(t.iframeVersion){e=e+"?version="+t.iframeVersion}return e},register:function(){return b()+"/protocol/openid-connect/registrations"},userinfo:function(){return b()+"/protocol/openid-connect/userinfo"}}}else{t.endpoints={authorize:function(){return e.authorization_endpoint},token:function(){return e.token_endpoint},logout:function(){if(!e.end_session_endpoint){throw"Not supported by the OIDC server"}return e.end_session_endpoint},checkSessionIframe:function(){if(!e.check_session_iframe){throw"Not supported by the OIDC server"}return e.check_session_iframe},register:function(){throw'Redirection to "Register user" page not supported in standard OIDC mode'},userinfo:function(){if(!e.userinfo_endpoint){throw"Not supported by the OIDC server"}return e.userinfo_endpoint}}}}if(i){var a=new XMLHttpRequest;a.open("GET",i,true);a.setRequestHeader("Accept","application/json");a.onreadystatechange=function(){if(a.readyState==4){if(a.status==200||y(a)){var e=JSON.parse(a.responseText);t.authServerUrl=e["auth-server-url"];t.realm=e["realm"];t.clientId=e["resource"];o(null);r.setSuccess()}else{r.setError()}}};a.send()}else{if(!e.clientId){throw"clientId missing"}t.clientId=e.clientId;var s=e["oidcProvider"];if(!s){if(!e["url"]){var f=document.getElementsByTagName("script");for(var c=0;c<f.length;c++){if(f[c].src.match(/.*keycloak\.js/)){e.url=f[c].src.substr(0,f[c].src.indexOf("/js/keycloak.js"));break}}}if(!e.realm){throw"realm missing"}t.authServerUrl=e.url;t.realm=e.realm;o(null);r.setSuccess()}else{if(typeof s==="string"){var u;if(s.charAt(s.length-1)=="/"){u=s+".well-known/openid-configuration"}else{u=s+"/.well-known/openid-configuration"}var a=new XMLHttpRequest;a.open("GET",u,true);a.setRequestHeader("Accept","application/json");a.onreadystatechange=function(){if(a.readyState==4){if(a.status==200||y(a)){var e=JSON.parse(a.responseText);o(e);r.setSuccess()}else{r.setError()}}};a.send()}else{o(s);r.setSuccess()}}}return r.promise}function y(e){return e.status==0&&e.responseText&&e.responseURL.startsWith("file:")}function x(e,n,r,i){if(t.tokenTimeoutHandle){clearTimeout(t.tokenTimeoutHandle);t.tokenTimeoutHandle=null}if(n){t.refreshToken=n;t.refreshTokenParsed=O(n)}else{delete t.refreshToken;delete t.refreshTokenParsed}if(r){t.idToken=r;t.idTokenParsed=O(r)}else{delete t.idToken;delete t.idTokenParsed}if(e){t.token=e;t.tokenParsed=O(e);t.sessionId=t.tokenParsed.session_state;t.authenticated=true;t.subject=t.tokenParsed.sub;t.realmAccess=t.tokenParsed.realm_access;t.resourceAccess=t.tokenParsed.resource_access;if(i){t.timeSkew=Math.floor(i/1e3)-t.tokenParsed.iat}if(t.timeSkew!=null){u("[KEYCLOAK] Estimated time difference between browser and server is "+t.timeSkew+" seconds");if(t.onTokenExpired){var o=(t.tokenParsed["exp"]-(new Date).getTime()/1e3+t.timeSkew)*1e3;u("[KEYCLOAK] Token expires in "+Math.round(o/1e3)+" s");if(o<=0){t.onTokenExpired()}else{t.tokenTimeoutHandle=setTimeout(t.onTokenExpired,o)}}}}else{delete t.token;delete t.tokenParsed;delete t.subject;delete t.realmAccess;delete t.resourceAccess;t.authenticated=false}}function I(){var e="0123456789abcdef";var t=v(36,e).split("");t[14]="4";t[19]=e.substr(t[19]&3|8,1);t[8]=t[13]=t[18]=t[23]="-";var n=t.join("");return n}function C(e){var t=A(e);if(!t){return}var n=i.get(t.state);if(n){t.valid=true;t.redirectUri=n.redirectUri;t.storedNonce=n.nonce;t.prompt=n.prompt;t.pkceCodeVerifier=n.pkceCodeVerifier}return t}function A(e){var n;switch(t.flow){case"standard":n=["code","state","session_state","kc_action_status","iss"];break;case"implicit":n=["access_token","token_type","id_token","state","session_state","expires_in","kc_action_status","iss"];break;case"hybrid":n=["access_token","token_type","id_token","code","state","session_state","expires_in","kc_action_status","iss"];break}n.push("error");n.push("error_description");n.push("error_uri");var r=e.indexOf("?");var i=e.indexOf("#");var o;var a;if(t.responseMode==="query"&&r!==-1){o=e.substring(0,r);a=S(e.substring(r+1,i!==-1?i:e.length),n);if(a.paramsString!==""){o+="?"+a.paramsString}if(i!==-1){o+=e.substring(i)}}else if(t.responseMode==="fragment"&&i!==-1){o=e.substring(0,i);a=S(e.substring(i+1),n);if(a.paramsString!==""){o+="#"+a.paramsString}}if(a&&a.oauthParams){if(t.flow==="standard"||t.flow==="hybrid"){if((a.oauthParams.code||a.oauthParams.error)&&a.oauthParams.state){a.oauthParams.newUrl=o;return a.oauthParams}}else if(t.flow==="implicit"){if((a.oauthParams.access_token||a.oauthParams.error)&&a.oauthParams.state){a.oauthParams.newUrl=o;return a.oauthParams}}}}function S(e,t){var n=e.split("&");var r={paramsString:"",oauthParams:{}};for(var i=0;i<n.length;i++){var o=n[i].indexOf("=");var a=n[i].slice(0,o);if(t.indexOf(a)!==-1){r.oauthParams[a]=n[i].slice(o+1)}else{if(r.paramsString!==""){r.paramsString+="&"}r.paramsString+=n[i]}}return r}function R(){var e={setSuccess:function(t){e.resolve(t)},setError:function(t){e.reject(t)}};e.promise=new Promise((function(t,n){e.resolve=t;e.reject=n}));return e}function L(e,t,n){var r=null;var i=new Promise((function(e,i){r=setTimeout((function(){i({error:n||"Promise is not settled within timeout of "+t+"ms"})}),t)}));return Promise.race([e,i]).finally((function(){clearTimeout(r)}))}function j(){var e=R();if(!a.enable){e.setSuccess();return e.promise}if(a.iframe){e.setSuccess();return e.promise}var n=document.createElement("iframe");a.iframe=n;n.onload=function(){var n=t.endpoints.authorize();if(n.charAt(0)==="/"){a.iframeOrigin=g()}else{a.iframeOrigin=n.substring(0,n.indexOf("/",8))}e.setSuccess()};var r=t.endpoints.checkSessionIframe();n.setAttribute("src",r);n.setAttribute("sandbox","allow-storage-access-by-user-activation allow-scripts allow-same-origin");n.setAttribute("title","keycloak-session-iframe");n.style.display="none";document.body.appendChild(n);var i=function(e){if(e.origin!==a.iframeOrigin||a.iframe.contentWindow!==e.source){return}if(!(e.data=="unchanged"||e.data=="changed"||e.data=="error")){return}if(e.data!="unchanged"){t.clearToken()}var n=a.callbackList.splice(0,a.callbackList.length);for(var r=n.length-1;r>=0;--r){var i=n[r];if(e.data=="error"){i.setError()}else{i.setSuccess(e.data=="unchanged")}}};window.addEventListener("message",i,false);return e.promise}function E(){if(a.enable){if(t.token){setTimeout((function(){M().then((function(e){if(e){E()}}))}),a.interval*1e3)}}}function M(){var e=R();if(a.iframe&&a.iframeOrigin){var n=t.clientId+" "+(t.sessionId?t.sessionId:"");a.callbackList.push(e);var r=a.iframeOrigin;if(a.callbackList.length==1){a.iframe.contentWindow.postMessage(n,r)}}else{e.setSuccess()}return e.promise}function N(){var e=R();if(a.enable||t.silentCheckSsoRedirectUri){var n=document.createElement("iframe");n.setAttribute("src",t.endpoints.thirdPartyCookiesIframe());n.setAttribute("sandbox","allow-storage-access-by-user-activation allow-scripts allow-same-origin");n.setAttribute("title","keycloak-3p-check-iframe");n.style.display="none";document.body.appendChild(n);var r=function(i){if(n.contentWindow!==i.source){return}if(i.data!=="supported"&&i.data!=="unsupported"){return}else if(i.data==="unsupported"){l("[KEYCLOAK] Your browser is blocking access to 3rd-party cookies, this means:\n\n"+" - It is not possible to retrieve tokens without redirecting to the Keycloak server (a.k.a. no support for silent authentication).\n"+" - It is not possible to automatically detect changes to the session status (such as the user logging out in another tab).\n\n"+"For more information see: https://www.keycloak.org/docs/latest/securing_apps/#_modern_browsers");a.enable=false;if(t.silentCheckSsoFallback){t.silentCheckSsoRedirectUri=false}}document.body.removeChild(n);window.removeEventListener("message",r);e.setSuccess()};window.addEventListener("message",r,false)}else{e.setSuccess()}return L(e.promise,t.messageReceiveTimeout,"Timeout when waiting for 3rd party check iframe message.")}function K(e){if(!e||e=="default"){return{login:function(e){window.location.assign(t.createLoginUrl(e));return R().promise},logout:function(e){window.location.replace(t.createLogoutUrl(e));return R().promise},register:function(e){window.location.assign(t.createRegisterUrl(e));return R().promise},accountManagement:function(){var e=t.createAccountUrl();if(typeof e!=="undefined"){window.location.href=e}else{throw"Not supported by the OIDC server"}return R().promise},redirectUri:function(e,n){if(e&&e.redirectUri){return e.redirectUri}else if(t.redirectUri){return t.redirectUri}else{return location.href}}}}if(e=="cordova"){a.enable=false;var n=function(e,t,n){if(window.cordova&&window.cordova.InAppBrowser){return window.cordova.InAppBrowser.open(e,t,n)}else{return window.open(e,t,n)}};var r=function(e){if(e&&e.cordovaOptions){return Object.keys(e.cordovaOptions).reduce((function(t,n){t[n]=e.cordovaOptions[n];return t}),{})}else{return{}}};var i=function(e){return Object.keys(e).reduce((function(t,n){t.push(n+"="+e[n]);return t}),[]).join(",")};var o=function(e){var t=r(e);t.location="no";if(e&&e.prompt=="none"){t.hidden="yes"}return i(t)};var s=function(){return t.redirectUri||"http://localhost"};return{login:function(e){var r=R();var i=o(e);var a=t.createLoginUrl(e);var f=n(a,"_blank",i);var c=false;var u=false;var l=function(){u=true;f.close()};f.addEventListener("loadstart",(function(e){if(e.url.indexOf(s())==0){var t=C(e.url);k(t,r);l();c=true}}));f.addEventListener("loaderror",(function(e){if(!c){if(e.url.indexOf(s())==0){var t=C(e.url);k(t,r);l();c=true}else{r.setError();l()}}}));f.addEventListener("exit",(function(e){if(!u){r.setError({reason:"closed_by_user"})}}));return r.promise},logout:function(e){var r=R();var i=t.createLogoutUrl(e);var o=n(i,"_blank","location=no,hidden=yes,clearcache=yes");var a;o.addEventListener("loadstart",(function(e){if(e.url.indexOf(s())==0){o.close()}}));o.addEventListener("loaderror",(function(e){if(e.url.indexOf(s())==0){o.close()}else{a=true;o.close()}}));o.addEventListener("exit",(function(e){if(a){r.setError()}else{t.clearToken();r.setSuccess()}}));return r.promise},register:function(e){var r=R();var i=t.createRegisterUrl();var a=o(e);var f=n(i,"_blank",a);f.addEventListener("loadstart",(function(e){if(e.url.indexOf(s())==0){f.close();var t=C(e.url);k(t,r)}}));return r.promise},accountManagement:function(){var e=t.createAccountUrl();if(typeof e!=="undefined"){var r=n(e,"_blank","location=no");r.addEventListener("loadstart",(function(e){if(e.url.indexOf(s())==0){r.close()}}))}else{throw"Not supported by the OIDC server"}},redirectUri:function(e){return s()}}}if(e=="cordova-native"){a.enable=false;return{login:function(e){var n=R();var r=t.createLoginUrl(e);universalLinks.subscribe("keycloak",(function(e){universalLinks.unsubscribe("keycloak");window.cordova.plugins.browsertab.close();var t=C(e.url);k(t,n)}));window.cordova.plugins.browsertab.openUrl(r);return n.promise},logout:function(e){var n=R();var r=t.createLogoutUrl(e);universalLinks.subscribe("keycloak",(function(e){universalLinks.unsubscribe("keycloak");window.cordova.plugins.browsertab.close();t.clearToken();n.setSuccess()}));window.cordova.plugins.browsertab.openUrl(r);return n.promise},register:function(e){var n=R();var r=t.createRegisterUrl(e);universalLinks.subscribe("keycloak",(function(e){universalLinks.unsubscribe("keycloak");window.cordova.plugins.browsertab.close();var t=C(e.url);k(t,n)}));window.cordova.plugins.browsertab.openUrl(r);return n.promise},accountManagement:function(){var e=t.createAccountUrl();if(typeof e!=="undefined"){window.cordova.plugins.browsertab.openUrl(e)}else{throw"Not supported by the OIDC server"}},redirectUri:function(e){if(e&&e.redirectUri){return e.redirectUri}else if(t.redirectUri){return t.redirectUri}else{return"http://localhost"}}}}throw"invalid adapter type: "+e}var D=function(){if(!(this instanceof D)){return new D}localStorage.setItem("kc-test","test");localStorage.removeItem("kc-test");var e=this;function t(){var e=(new Date).getTime();for(var t=0;t<localStorage.length;t++){var n=localStorage.key(t);if(n&&n.indexOf("kc-callback-")==0){var r=localStorage.getItem(n);if(r){try{var i=JSON.parse(r).expires;if(!i||i<e){localStorage.removeItem(n)}}catch(e){localStorage.removeItem(n)}}}}}e.get=function(e){if(!e){return}var n="kc-callback-"+e;var r=localStorage.getItem(n);if(r){localStorage.removeItem(n);r=JSON.parse(r)}t();return r};e.add=function(e){t();var n="kc-callback-"+e.state;e.expires=(new Date).getTime()+60*60*1e3;localStorage.setItem(n,JSON.stringify(e))}};var T=function(){if(!(this instanceof T)){return new T}var e=this;e.get=function(e){if(!e){return}var i=n("kc-callback-"+e);r("kc-callback-"+e,"",t(-100));if(i){return JSON.parse(i)}};e.add=function(e){r("kc-callback-"+e.state,JSON.stringify(e),t(60))};e.removeItem=function(e){r(e,"",t(-100))};var t=function(e){var t=new Date;t.setTime(t.getTime()+e*60*1e3);return t};var n=function(e){var t=e+"=";var n=document.cookie.split(";");for(var r=0;r<n.length;r++){var i=n[r];while(i.charAt(0)==" "){i=i.substring(1)}if(i.indexOf(t)==0){return i.substring(t.length,i.length)}}return""};var r=function(e,t,n){var r=e+"="+t+"; "+"expires="+n.toUTCString()+"; ";document.cookie=r}};function J(){try{return new D}catch(e){}return new T}function z(e){return function(){if(t.enableLogging){e.apply(console,Array.prototype.slice.call(arguments))}}}}const S='.button{display:flex;height:50px;padding:0;background:#3e7671;border:none;outline:none;border-radius:5px;overflow:hidden;font-size:16px;font-weight:500;cursor:pointer;min-width:220px;max-width:220px}.button:hover{background:#008168}.button:active{background:#3e7671}.button-text{display:block;margin:auto;padding:0 24px;color:#fff;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;width:80px}.button-icon{margin:auto;padding:10px}.button-profile{display:inline-flex;align-items:center;color:#fff}.button-profile img{height:50px}.button-text-full-width{width:auto!important}.button-link{text-decoration:none!important}.gg-menu-grid-r{color:#fff;box-sizing:border-box;position:relative;display:block;transform:scale(var(--ggs,1));width:16px;height:16px}.gg-menu-grid-r::before{content:"";display:block;box-sizing:border-box;position:absolute;width:4px;height:4px;background:currentColor;box-shadow: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}.dropdown{position:relative;display:inline-block}.dropdown-content{display:none;position:absolute;right:0;background-color:#f9f9f9;min-width:180px;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);z-index:1;border-radius:5px}.dropdown-content a{color:#71797E;padding:16px 20px;text-decoration:none;display:block;cursor:pointer}.dropdown-content a:hover{background-color:#f1f1f1;color:#000;opacity:0.7}.dropdown:hover .dropdown-content{display:block}.modal{display:none;position:fixed;z-index:1;padding-top:100px;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgb(0,0,0);background-color:rgba(0,0,0,0.4);text-align:center}.modal-content{background-color:#fefefe;margin:auto;padding:20px;border:1px solid #888;width:40%}.close{color:#aaaaaa;float:right;font-size:28px;font-weight:bold}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer}.modal-app{background-color:#c3e9bc;padding:15px;margin:10px;border-radius:5px}';const R=S;const L=class{constructor(t){e(this,t);this.showPostLoginText=false;this.silentCheckSso=false;this.redirectUri=undefined;this.keycloakUri="http://localhost:8080";this.realm="";this.clientId="";this.keycloak=new U({url:this.keycloakUri,realm:this.realm,clientId:this.clientId});this.isAuth=false;this.givenName="";this.silentCheckSsoRedirectUri=window.location.origin+"/assets/verificar-sso.html"}connectedCallback(){this.keycloak.init({onLoad:"check-sso",checkLoginIframe:false,silentCheckSsoRedirectUri:this.silentCheckSso?this.silentCheckSsoRedirectUri:""}).then((e=>{if(e){this.isAuth=true;localStorage.setItem("keycloak",JSON.stringify(this.keycloak));this.givenName=JSON.parse(localStorage.getItem("keycloak")).idTokenParsed.given_name}}))}login(){this.keycloak.login()}logout(){localStorage.removeItem("keycloak");this.keycloak.logout()}showModal(){const e=this.el.shadowRoot.querySelector("#appListModal");e.style.display="block"}closeModal(){const e=this.el.shadowRoot.querySelector("#appListModal");e.style.display="none"}render(){return t("div",{key:"29a7944051bce29ea8ff3f1db8f2b44b5a157e84"},t("div",{key:"a44011e412f06a00bca1a6de134391cc1eb248c2"},(()=>{if(this.isAuth&&this.showPostLoginText){return t("a",{href:this.redirectUri,id:"login-btn",class:"button button-link"},t("span",{class:"button-text button-text-full-width"},"Go to Dashboard"))}else if(this.isAuth){return t("div",{id:"profile-btn",class:"dropdown"},t("button",{type:"button",class:"button"},t("span",{class:"button-profile"},t("img",{src:"https://i.pravatar.cc/100?img=32",alt:""})),t("span",{id:"given-name",class:"button-text"},this.givenName),t("div",{class:"button-icon"},t("span",{class:"gg-menu-grid-r"}))),t("div",{class:"dropdown-content"},t("a",{onClick:this.showModal.bind(this),id:"applications-btn"},"Applications"),t("a",{onClick:this.logout.bind(this),id:"logout-btn"},"Logout")))}else{return t("button",{onClick:this.login.bind(this),id:"login-btn",type:"button",class:"button"},t("span",{class:"button-text"},"Login"))}})()),t("div",{key:"475cbe51090c78848032e9044c9f11e460969121",id:"appListModal",class:"modal"},t("div",{key:"e0a2a1ffa3de0d45001f40fb46d258ade64dc933",class:"modal-content"},t("span",{key:"5fa70d2fcac6816d9a9ee41c329bd9c787014cbb",onClick:this.closeModal.bind(this),class:"close"},"×"),t("h3",{key:"de74b78ba75d815758e0d7c68474d7cdb7673ae7"},"Applications"),t("div",{key:"1ed88b256cb82aef902f08179e24cbd0be810bd9",class:"modal-app"},"App 1"),t("div",{key:"e3e32a260fa06452fb38e64e4593cae1d8530c7b",class:"modal-app"},"App 2"))))}get el(){return n(this)}};L.style=R;export{L as dash_button};
|
|
10
|
+
//# sourceMappingURL=p-97a6df2d.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","Uint8Array","Array","code","i","len","length","charCodeAt","getLens","b64","Error","validLen","indexOf","placeHoldersLen","lens","_byteLength","tmp","arr","curByte","tripletToBase64","num","encodeChunk","uint8","start","end","output","push","join","extraBytes","parts","maxChunkLength","len2","ERROR","WINDOW","window","root","JS_SHA256_NO_WINDOW","WEB_WORKER","self","NODE_JS","JS_SHA256_NO_NODE_JS","process","versions","node","global","COMMON_JS","JS_SHA256_NO_COMMON_JS","module","exports","ARRAY_BUFFER","JS_SHA256_NO_ARRAY_BUFFER","ArrayBuffer","HEX_CHARS","split","EXTRA","SHIFT","K","OUTPUT_TYPES","blocks","isArray","obj","Object","prototype","toString","call","JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW","isView","buffer","constructor","createOutputMethod","outputType","is224","message","Sha256","update","createMethod","method","nodeWrap","create","type","crypto","require$$0","Buffer","require$$1","algorithm","bufferFrom","from","JS_SHA256_NO_BUFFER_FROM","nodeMethod","createHash","digest","undefined","createHmacOutputMethod","key","HmacSha256","createHmacMethod","sharedMemory","this","h0","h1","h2","h3","h4","h5","h6","h7","block","bytes","hBytes","finalized","hashed","first","notString","index","lastByteIndex","hash","finalize","a","b","c","d","e","f","g","h","j","s0","s1","maj","t1","t2","ch","ab","da","cd","bc","chromeBugWorkAround","hex","array","arrayBuffer","dataView","DataView","setUint32","oKeyPad","iKeyPad","inner","innerHash","sha256","sha224","hmac","InvalidTokenError","name","b64DecodeUnicode","str","decodeURIComponent","atob","replace","m","p","toUpperCase","base64UrlDecode","err","jwtDecode","token","options","pos","header","part","decoded","JSON","parse","Promise","Keycloak","config","kc","adapter","refreshQueue","callbackStorage","loginIframe","enable","callbackList","interval","scripts","document","getElementsByTagName","src","iframeVersion","substring","useNonce","logInfo","createLogger","console","info","logWarn","warn","init","initOptions","didInitialize","authenticated","createCallbackStorage","adapters","loadAdapter","Cordova","cordova","checkLoginIframe","checkLoginIframeInterval","onLoad","loginRequired","responseMode","flow","responseType","timeSkew","redirectUri","silentCheckSsoRedirectUri","silentCheckSsoFallback","pkceMethod","enableLogging","scope","acrValues","messageReceiveTimeout","promise","createPromise","initPromise","then","onReady","setSuccess","catch","error","setError","configPromise","loadConfig","doLogin","prompt","locale","login","checkSsoSilently","ifrm","createElement","createLoginUrl","setAttribute","style","display","body","appendChild","messageCallback","event","origin","location","contentWindow","source","oauth","parseCallback","data","processCallback","removeChild","removeEventListener","addEventListener","setupCheckLoginIframe","unchanged","processInit","callback","href","history","replaceState","state","newUrl","valid","refreshToken","setToken","idToken","onAuthSuccess","scheduleCheckIframe","updateToken","onAuthError","domReady","checkReadyState","readyState","check3pCookiesSupported","generateRandomData","msCrypto","getRandomValues","Math","floor","random","generateCodeVerifier","generateRandomString","alphabet","randomData","chars","String","fromCharCode","apply","generatePkceChallenge","codeVerifier","hashBytes","encodedHash","base64","buildClaimsParameter","requestedAcr","claims","id_token","acr","stringify","createUUID","nonce","callbackState","encodeURIComponent","baseUrl","action","endpoints","register","authorize","url","clientId","maxAge","loginHint","idpHint","claimsParameter","pkceCodeVerifier","pkceChallenge","add","logout","createLogoutUrl","createRegisterUrl","createAccountUrl","realm","getRealmUrl","accountManagement","hasRealmRole","role","access","realmAccess","roles","hasResourceRole","resource","resourceAccess","loadUserProfile","req","XMLHttpRequest","open","setRequestHeader","onreadystatechange","status","profile","responseText","send","loadUserInfo","userinfo","userInfo","isTokenExpired","minValidity","tokenParsed","expiresIn","ceil","Date","getTime","isNaN","exec","params","withCredentials","timeLocal","tokenResponse","onAuthRefreshSuccess","pop","clearToken","onAuthRefreshError","iframePromise","onAuthLogout","authServerUrl","charAt","getOrigin","protocol","hostname","port","onActionUpdate","errorData","error_description","access_token","authSuccess","accessToken","fulfillPromise","storedNonce","refreshTokenParsed","idTokenParsed","configUrl","setupOidcEndoints","oidcConfiguration","checkSessionIframe","thirdPartyCookiesIframe","authorization_endpoint","token_endpoint","end_session_endpoint","check_session_iframe","userinfo_endpoint","fileLoaded","oidcProvider","match","substr","oidcProviderConfigUrl","oidcProviderConfig","xhr","responseURL","startsWith","tokenTimeoutHandle","clearTimeout","sessionId","session_state","subject","sub","realm_access","resource_access","iat","onTokenExpired","round","setTimeout","hexDigits","s","uuid","parseCallbackUrl","oauthState","get","supportedParams","queryIndex","fragmentIndex","parsed","parseCallbackParams","paramsString","oauthParams","result","slice","resolve","reject","applyTimeoutToPromise","timeout","errorMessage","timeoutHandle","timeoutPromise","race","finally","iframe","onload","authUrl","iframeOrigin","callbacks","splice","msg","postMessage","assign","accountUrl","encodeHash","cordovaOpenWindowWrapper","loginUrl","target","InAppBrowser","shallowCloneCordovaOptions","userOptions","cordovaOptions","keys","reduce","optionName","formatCordovaOptions","createCordovaOptions","hidden","getCordovaRedirectUri","ref","completed","closed","closeBrowser","close","reason","logoutUrl","registerUrl","universalLinks","subscribe","unsubscribe","plugins","browsertab","openUrl","LocalStorage","localStorage","setItem","removeItem","cs","clearExpired","time","value","getItem","expires","CookieStorage","getCookie","setCookie","cookieExpiration","minutes","exp","setTime","ca","cookie","expirationDate","toUTCString","fn","arguments","dashButtonCss","DashButtonStyle0","DashButtonComponent","keycloakUri","connectedCallback","keycloak","silentCheckSso","res","isAuth","givenName","given_name","showModal","appModal","el","shadowRoot","querySelector","closeModal","render","showPostLoginText","id","class","alt","onClick","bind"],"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 .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 }","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\n @Prop() keycloakUri: string = \"http://localhost:8080\";\n @Prop() realm: string = \"\";\n @Prop() clientId: string = \"\";\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 connectedCallback() {\n this.keycloak.init(\n {\n onLoad: 'check-sso',\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\n this.givenName = JSON.parse(localStorage.getItem('keycloak')).idTokenParsed.given_name\n } \n \n });\n\n }\n\n login() { \n this.keycloak.login() \n }\n\n logout() {\n localStorage.removeItem(\"keycloak\");\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 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 } 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 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-app\">App 1</div>\n <div class=\"modal-app\">App 2</div>\n </div>\n \n </div>\n </div>;\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{p as e,b as t}from"./p-35259f64.js";export{s as setNonce}from"./p-35259f64.js";const o=()=>{const t=import.meta.url;const s={};if(t!==""){s.resourcesUrl=new URL(".",t).href}return e(s)};o().then((e=>t([["p-97a6df2d",[[1,"dash-button",{showPostLoginText:[4,"show-post-login-text"],silentCheckSso:[4,"silent-check-sso"],redirectUri:[1,"redirect-uri"],keycloakUri:[1,"keycloak-uri"],realm:[1],clientId:[1,"client-id"],keycloak:[32],isAuth:[32],givenName:[32],silentCheckSsoRedirectUri:[32]}]]]],e)));
|
|
2
|
+
//# sourceMappingURL=web-compnont.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["patchBrowser","importMeta","url","opts","resourcesUrl","URL","href","promiseResolve","then","options","bootstrapLazy","showPostLoginText","silentCheckSso","redirectUri","keycloakUri","realm","clientId","keycloak","isAuth","givenName","silentCheckSsoRedirectUri"],"sources":["node_modules/@stencil/core/internal/client/patch-browser.js","@lazy-browser-entrypoint?app-data=conditional"],"sourcesContent":["/*\n Stencil Client Patch Browser v4.12.0 | MIT Licensed | https://stenciljs.com\n */\nimport { BUILD, NAMESPACE } from '@stencil/core/internal/app-data';\nimport { consoleDevInfo, doc, promiseResolve, H } from '@stencil/core';\nconst patchBrowser = () => {\n // NOTE!! This fn cannot use async/await!\n if (BUILD.isDev && !BUILD.isTesting) {\n consoleDevInfo('Running in development mode.');\n }\n if (BUILD.cloneNodeFix) {\n // opted-in to polyfill cloneNode() for slot polyfilled components\n patchCloneNodeFix(H.prototype);\n }\n const scriptElm = BUILD.scriptDataOpts\n ? Array.from(doc.querySelectorAll('script')).find((s) => new RegExp(`\\/${NAMESPACE}(\\\\.esm)?\\\\.js($|\\\\?|#)`).test(s.src) ||\n s.getAttribute('data-stencil-namespace') === NAMESPACE)\n : null;\n const importMeta = import.meta.url;\n const opts = BUILD.scriptDataOpts ? (scriptElm || {})['data-opts'] || {} : {};\n if (importMeta !== '') {\n opts.resourcesUrl = new URL('.', importMeta).href;\n }\n return promiseResolve(opts);\n};\nconst patchCloneNodeFix = (HTMLElementPrototype) => {\n const nativeCloneNodeFn = HTMLElementPrototype.cloneNode;\n HTMLElementPrototype.cloneNode = function (deep) {\n if (this.nodeName === 'TEMPLATE') {\n return nativeCloneNodeFn.call(this, deep);\n }\n const clonedNode = nativeCloneNodeFn.call(this, false);\n const srcChildNodes = this.childNodes;\n if (deep) {\n for (let i = 0; i < srcChildNodes.length; i++) {\n // Node.ATTRIBUTE_NODE === 2, and checking because IE11\n if (srcChildNodes[i].nodeType !== 2) {\n clonedNode.appendChild(srcChildNodes[i].cloneNode(true));\n }\n }\n }\n return clonedNode;\n };\n};\nexport { patchBrowser };\n","export { setNonce } from '@stencil/core';\nimport { bootstrapLazy } from '@stencil/core';\nimport { patchBrowser } from '@stencil/core/internal/client/patch-browser';\nimport { globalScripts } from '@stencil/core/internal/app-globals';\npatchBrowser().then(options => {\n globalScripts();\n return bootstrapLazy([/*!__STENCIL_LAZY_DATA__*/], options);\n});\n"],"mappings":"sFAKA,MAAMA,EAAe,KAajB,MAAMC,cAAyBC,IAC/B,MAAMC,EAAqE,GAC3E,GAAIF,IAAe,GAAI,CACnBE,EAAKC,aAAe,IAAIC,IAAI,IAAKJ,GAAYK,IACrD,CACI,OAAOC,EAAeJ,EAAK,ECnB/BH,IAAeQ,MAAKC,GAEXC,EAAc,iCAA8B,CAAAC,kBAAS,2BAAAC,eAAA,uBAAAC,YAAA,mBAAAC,YAAA,mBAAAC,MAAA,IAAAC,SAAA,gBAAAC,SAAA,KAAAC,OAAA,KAAAC,UAAA,KAAAC,0BAAA,UAAAX"}
|
package/loader/cdn.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export * from '../dist/types/components';
|
|
2
|
+
export interface CustomElementsDefineOptions {
|
|
3
|
+
exclude?: string[];
|
|
4
|
+
resourcesUrl?: string;
|
|
5
|
+
syncQueue?: boolean;
|
|
6
|
+
jmp?: (c: Function) => any;
|
|
7
|
+
raf?: (c: FrameRequestCallback) => number;
|
|
8
|
+
ael?: (el: EventTarget, eventName: string, listener: EventListenerOrEventListenerObject, options: boolean | AddEventListenerOptions) => void;
|
|
9
|
+
rel?: (el: EventTarget, eventName: string, listener: EventListenerOrEventListenerObject, options: boolean | AddEventListenerOptions) => void;
|
|
10
|
+
}
|
|
11
|
+
export declare function defineCustomElements(win?: Window, opts?: CustomElementsDefineOptions): void;
|
|
12
|
+
export declare function applyPolyfills(): Promise<void>;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Used to specify a nonce value that corresponds with an application's CSP.
|
|
16
|
+
* When set, the nonce will be added to all dynamically created script and style tags at runtime.
|
|
17
|
+
* Alternatively, the nonce value can be set on a meta tag in the DOM head
|
|
18
|
+
* (<meta name="csp-nonce" content="{ nonce value here }" />) which
|
|
19
|
+
* will result in the same behavior.
|
|
20
|
+
*/
|
|
21
|
+
export declare function setNonce(nonce: string): void;
|
package/loader/index.js
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
|
|
2
|
+
(function(){if("undefined"!==typeof window&&void 0!==window.Reflect&&void 0!==window.customElements){var a=HTMLElement;window.HTMLElement=function(){return Reflect.construct(a,[],this.constructor)};HTMLElement.prototype=a.prototype;HTMLElement.prototype.constructor=HTMLElement;Object.setPrototypeOf(HTMLElement,a)}})();
|
|
3
|
+
export * from '../dist/esm/polyfills/index.js';
|
|
4
|
+
export * from '../dist/esm/loader.js';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "web-compnont-loader",
|
|
3
|
+
"private": true,
|
|
4
|
+
"typings": "./index.d.ts",
|
|
5
|
+
"module": "./index.js",
|
|
6
|
+
"main": "./index.cjs.js",
|
|
7
|
+
"jsnext:main": "./index.es2017.js",
|
|
8
|
+
"es2015": "./index.es2017.js",
|
|
9
|
+
"es2017": "./index.es2017.js",
|
|
10
|
+
"unpkg": "./cdn.js"
|
|
11
|
+
}
|