@lilaquadrat/chat 0.1.15 → 0.1.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app/assets/{de-DD_Cd2_H.js → de-BPWT8j6E.js} +1 -1
- package/dist/app/assets/loadFonts-DmNZ8tPj.js +1 -0
- package/dist/app/assets/{main-CpABZ8xk.js → main-B18LDkun.js} +2 -2
- package/dist/app/assets/{preload-helper-B46Frp_x.js → preload-helper-OSX1TyOM.js} +1 -1
- package/dist/app/assets/{support-DP0S3Vwv.js → support-DgYHnicF.js} +2 -2
- package/dist/app/assets/{support-agent-BWO3I__B.js → support-agent-CTl6KCJE.js} +1 -1
- package/dist/app/assets/{web-component-VTtUtC7T.js → web-component-BANWBXIc.js} +1 -1
- package/dist/app/index.html +2 -2
- package/dist/app/support/index.html +2 -2
- package/dist/types/src/config/auth.d.ts +5 -4
- package/dist/types/src/config/bootstrap.agent.d.ts +2 -1
- package/dist/types/src/config/chatConfig.d.ts +2 -1
- package/dist/types/src/interfaces/Message.d.ts +2 -0
- package/dist/types/src/libs/chatSession.d.ts +3 -0
- package/dist/types/src/libs/websocketManager.d.ts +2 -0
- package/dist/types/src/locales/de.d.ts +2 -0
- package/dist/types/src/locales/en.d.ts +2 -0
- package/dist/types/src/plugins/i18n.d.ts +2 -0
- package/dist/types/src/standalone/auth.d.ts +2 -1
- package/dist/types/src/stores/conversations.store.d.ts +87 -3
- package/dist/types/tsconfig.build.tsbuildinfo +1 -1
- package/dist/wc/lilaquadrat-studio-chat.js +6 -6
- package/dist/wc/lilaquadrat-studio-chat.umd.cjs +1 -1
- package/dist/wc-support/lilaquadrat-studio-support.js +6 -6
- package/dist/wc-support/lilaquadrat-studio-support.umd.cjs +1 -1
- package/package.json +1 -1
- package/dist/app/assets/loadFonts-BWquVJC2.js +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/web-component-
|
|
2
|
-
import{n as t,r as e,t as n}from"./preload-helper-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/web-component-BANWBXIc.js","assets/preload-helper-OSX1TyOM.js","assets/loadFonts-DmNZ8tPj.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{n as t,r as e,t as n}from"./preload-helper-OSX1TyOM.js";var o="#app";async function a(e){await n(()=>import("./web-component-BANWBXIc.js"),__vite__mapDeps([0,1,2]));const a=document.createElement("lilaquadrat-studio-chat");a.config={...e.chat,token:await t.getToken(),getToken:e=>t.getToken(e),user:t.getProfile(),close:()=>t.logout()},function(){const t=document.querySelector(o);if(!t)throw new Error(`mount target ${o} not found`);return t}().replaceChildren(a)}(async function(){const n=await e();n.title&&(document.title=n.title),await t.init(n)&&await a(n)})().catch(function(t){const e=t instanceof Error?t.message:String(t);console.error("[studio-chat] standalone boot failed",t);const n=document.querySelector(o);if(!n)return;const a=document.createElement("div");a.className="standalone-error",a.innerHTML="<h1>Chat unavailable</h1>",a.appendChild(Object.assign(document.createElement("p"),{textContent:e})),n.replaceChildren(a)});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=Object.create,t=Object.defineProperty,r=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,o=Object.getPrototypeOf,i=Object.prototype.hasOwnProperty,s=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),a=(e,r)=>{let n={};for(var o in e)t(n,o,{get:e[o],enumerable:!0});return r||t(n,Symbol.toStringTag,{value:"Module"}),n},c=(s,a,c)=>(c=null!=s?e(o(s)):{},((e,o,s,a)=>{if(o&&"object"==typeof o||"function"==typeof o)for(var c,u=n(o),l=0,d=u.length;l<d;l++)c=u[l],i.call(e,c)||c===s||t(e,c,{get:(e=>o[e]).bind(null,c),enumerable:!(a=r(o,c))||a.enumerable});return e})(!a&&s&&s.__esModule&&i.call(s,"default")?c:t(c,"default",{value:s,enumerable:!0}),s));!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))t(e);new MutationObserver(e=>{for(const r of e)if("childList"===r.type)for(const e of r.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&t(e)}).observe(document,{childList:!0,subtree:!0})}function t(e){if(e.ep)return;e.ep=!0;const t=function(e){const t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?t.credentials="include":"anonymous"===e.crossOrigin?t.credentials="omit":t.credentials="same-origin",t}(e);fetch(e.href,t)}}();var u="/settings/settings.json",l=["localhost","127.0.0.1","[::1]"];async function d(){const e=await fetch(u,{cache:"no-store"});if(!e.ok)throw new Error(`could not load ${u} (${e.status})`);const t=await e.json();if(!t.chat)throw new Error(`${u} has no "chat" section`);if(t.dev&&!l.includes(window.location.hostname))throw new Error(`${u} has dev mode enabled, which only works on localhost — replace it with this deployment's configuration`);return t}function h(e){const{wsUrl:t,apiUrl:r,mediaUrl:n,sound:o}=e.chat;return{wsUrl:t,apiUrl:r,mediaUrl:n,sound:o}}var f=s((e,t)=>{t.exports={}}),p=c(s((e,t)=>{!function(){var e="input is invalid type",r="object"==typeof window,n=r?window:{};n.JS_SHA256_NO_WINDOW&&(r=!1);var o=!r&&"object"==typeof self,i=!n.JS_SHA256_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node&&"renderer"!=process.type;i?n=global:o&&(n=self);var s=!n.JS_SHA256_NO_COMMON_JS&&"object"==typeof t&&t.exports,a="function"==typeof define&&define.amd,c=!n.JS_SHA256_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,u="0123456789abcdef".split(""),l=[-2147483648,8388608,32768,128],d=[24,16,8,0],h=[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],p=["hex","array","digest","arrayBuffer"],m=[];!n.JS_SHA256_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!c||!n.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(e){return"object"==typeof e&&e.buffer&&e.buffer.constructor===ArrayBuffer});var g=function(e,t){return function(r){return new b(t,!0).update(r)[e]()}},k=function(e){var t=g("hex",e);i&&(t=w(t,e)),t.create=function(){return new b(e)},t.update=function(e){return t.create().update(e)};for(var r=0;r<p.length;++r){var n=p[r];t[n]=g(n,e)}return t},w=function(t,r){var o,i=f(),s=f().Buffer,a=r?"sha224":"sha256";o=s.from&&!n.JS_SHA256_NO_BUFFER_FROM?s.from:function(e){return new s(e)};return function(r){if("string"==typeof r)return i.createHash(a).update(r,"utf8").digest("hex");if(null==r)throw new Error(e);return r.constructor===ArrayBuffer&&(r=new Uint8Array(r)),Array.isArray(r)||ArrayBuffer.isView(r)||r.constructor===s?i.createHash(a).update(o(r)).digest("hex"):t(r)}},v=function(e,t){return function(r,n){return new S(r,t,!0).update(n)[e]()}},y=function(e){var t=v("hex",e);t.create=function(t){return new S(t,e)},t.update=function(e,r){return t.create(e).update(r)};for(var r=0;r<p.length;++r){var n=p[r];t[n]=v(n,e)}return t};function b(e,t){t?(m[0]=m[16]=m[1]=m[2]=m[3]=m[4]=m[5]=m[6]=m[7]=m[8]=m[9]=m[10]=m[11]=m[12]=m[13]=m[14]=m[15]=0,this.blocks=m):this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],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):(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=!1,this.first=!0,this.is224=e}function S(t,r,n){var o,i=typeof t;if("string"===i){var s,a=[],u=t.length,l=0;for(o=0;o<u;++o)(s=t.charCodeAt(o))<128?a[l++]=s:s<2048?(a[l++]=192|s>>>6,a[l++]=128|63&s):s<55296||s>=57344?(a[l++]=224|s>>>12,a[l++]=128|s>>>6&63,a[l++]=128|63&s):(s=65536+((1023&s)<<10|1023&t.charCodeAt(++o)),a[l++]=240|s>>>18,a[l++]=128|s>>>12&63,a[l++]=128|s>>>6&63,a[l++]=128|63&s);t=a}else{if("object"!==i)throw new Error(e);if(null===t)throw new Error(e);if(c&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!(Array.isArray(t)||c&&ArrayBuffer.isView(t)))throw new Error(e)}t.length>64&&(t=new b(r,!0).update(t).array());var d=[],h=[];for(o=0;o<64;++o){var f=t[o]||0;d[o]=92^f,h[o]=54^f}b.call(this,r,n),this.update(h),this.oKeyPad=d,this.inner=!0,this.sharedMemory=n}b.prototype.update=function(t){if(!this.finalized){var r,n=typeof t;if("string"!==n){if("object"!==n)throw new Error(e);if(null===t)throw new Error(e);if(c&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!(Array.isArray(t)||c&&ArrayBuffer.isView(t)))throw new Error(e);r=!0}for(var o,i,s=0,a=t.length,u=this.blocks;s<a;){if(this.hashed&&(this.hashed=!1,u[0]=this.block,this.block=u[16]=u[1]=u[2]=u[3]=u[4]=u[5]=u[6]=u[7]=u[8]=u[9]=u[10]=u[11]=u[12]=u[13]=u[14]=u[15]=0),r)for(i=this.start;s<a&&i<64;++s)u[i>>>2]|=t[s]<<d[3&i++];else for(i=this.start;s<a&&i<64;++s)(o=t.charCodeAt(s))<128?u[i>>>2]|=o<<d[3&i++]:o<2048?(u[i>>>2]|=(192|o>>>6)<<d[3&i++],u[i>>>2]|=(128|63&o)<<d[3&i++]):o<55296||o>=57344?(u[i>>>2]|=(224|o>>>12)<<d[3&i++],u[i>>>2]|=(128|o>>>6&63)<<d[3&i++],u[i>>>2]|=(128|63&o)<<d[3&i++]):(o=65536+((1023&o)<<10|1023&t.charCodeAt(++s)),u[i>>>2]|=(240|o>>>18)<<d[3&i++],u[i>>>2]|=(128|o>>>12&63)<<d[3&i++],u[i>>>2]|=(128|o>>>6&63)<<d[3&i++],u[i>>>2]|=(128|63&o)<<d[3&i++]);this.lastByteIndex=i,this.bytes+=i-this.start,i>=64?(this.block=u[16],this.start=i-64,this.hash(),this.hashed=!0):this.start=i}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296|0,this.bytes=this.bytes%4294967296),this}},b.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex;e[16]=this.block,e[t>>>2]|=l[3&t],this.block=e[16],t>=56&&(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()}},b.prototype.hash=function(){var e,t,r,n,o,i,s,a,c,u=this.h0,l=this.h1,d=this.h2,f=this.h3,p=this.h4,m=this.h5,g=this.h6,k=this.h7,w=this.blocks;for(e=16;e<64;++e)t=((o=w[e-15])>>>7|o<<25)^(o>>>18|o<<14)^o>>>3,r=((o=w[e-2])>>>17|o<<15)^(o>>>19|o<<13)^o>>>10,w[e]=w[e-16]+t+w[e-7]+r|0;for(c=l&d,e=0;e<64;e+=4)this.first?(this.is224?(i=300032,k=(o=w[0]-1413257819)-150054599|0,f=o+24177077|0):(i=704751109,k=(o=w[0]-210244248)-1521486534|0,f=o+143694565|0),this.first=!1):(t=(u>>>2|u<<30)^(u>>>13|u<<19)^(u>>>22|u<<10),n=(i=u&l)^u&d^c,k=f+(o=k+(r=(p>>>6|p<<26)^(p>>>11|p<<21)^(p>>>25|p<<7))+(p&m^~p&g)+h[e]+w[e])|0,f=o+(t+n)|0),t=(f>>>2|f<<30)^(f>>>13|f<<19)^(f>>>22|f<<10),n=(s=f&u)^f&l^i,g=d+(o=g+(r=(k>>>6|k<<26)^(k>>>11|k<<21)^(k>>>25|k<<7))+(k&p^~k&m)+h[e+1]+w[e+1])|0,t=((d=o+(t+n)|0)>>>2|d<<30)^(d>>>13|d<<19)^(d>>>22|d<<10),n=(a=d&f)^d&u^s,m=l+(o=m+(r=(g>>>6|g<<26)^(g>>>11|g<<21)^(g>>>25|g<<7))+(g&k^~g&p)+h[e+2]+w[e+2])|0,t=((l=o+(t+n)|0)>>>2|l<<30)^(l>>>13|l<<19)^(l>>>22|l<<10),n=(c=l&d)^l&f^a,p=u+(o=p+(r=(m>>>6|m<<26)^(m>>>11|m<<21)^(m>>>25|m<<7))+(m&g^~m&k)+h[e+3]+w[e+3])|0,u=o+(t+n)|0,this.chromeBugWorkAround=!0;this.h0=this.h0+u|0,this.h1=this.h1+l|0,this.h2=this.h2+d|0,this.h3=this.h3+f|0,this.h4=this.h4+p|0,this.h5=this.h5+m|0,this.h6=this.h6+g|0,this.h7=this.h7+k|0},b.prototype.hex=function(){this.finalize();var e=this.h0,t=this.h1,r=this.h2,n=this.h3,o=this.h4,i=this.h5,s=this.h6,a=this.h7,c=u[e>>>28&15]+u[e>>>24&15]+u[e>>>20&15]+u[e>>>16&15]+u[e>>>12&15]+u[e>>>8&15]+u[e>>>4&15]+u[15&e]+u[t>>>28&15]+u[t>>>24&15]+u[t>>>20&15]+u[t>>>16&15]+u[t>>>12&15]+u[t>>>8&15]+u[t>>>4&15]+u[15&t]+u[r>>>28&15]+u[r>>>24&15]+u[r>>>20&15]+u[r>>>16&15]+u[r>>>12&15]+u[r>>>8&15]+u[r>>>4&15]+u[15&r]+u[n>>>28&15]+u[n>>>24&15]+u[n>>>20&15]+u[n>>>16&15]+u[n>>>12&15]+u[n>>>8&15]+u[n>>>4&15]+u[15&n]+u[o>>>28&15]+u[o>>>24&15]+u[o>>>20&15]+u[o>>>16&15]+u[o>>>12&15]+u[o>>>8&15]+u[o>>>4&15]+u[15&o]+u[i>>>28&15]+u[i>>>24&15]+u[i>>>20&15]+u[i>>>16&15]+u[i>>>12&15]+u[i>>>8&15]+u[i>>>4&15]+u[15&i]+u[s>>>28&15]+u[s>>>24&15]+u[s>>>20&15]+u[s>>>16&15]+u[s>>>12&15]+u[s>>>8&15]+u[s>>>4&15]+u[15&s];return this.is224||(c+=u[a>>>28&15]+u[a>>>24&15]+u[a>>>20&15]+u[a>>>16&15]+u[a>>>12&15]+u[a>>>8&15]+u[a>>>4&15]+u[15&a]),c},b.prototype.toString=b.prototype.hex,b.prototype.digest=function(){this.finalize();var e=this.h0,t=this.h1,r=this.h2,n=this.h3,o=this.h4,i=this.h5,s=this.h6,a=this.h7,c=[e>>>24&255,e>>>16&255,e>>>8&255,255&e,t>>>24&255,t>>>16&255,t>>>8&255,255&t,r>>>24&255,r>>>16&255,r>>>8&255,255&r,n>>>24&255,n>>>16&255,n>>>8&255,255&n,o>>>24&255,o>>>16&255,o>>>8&255,255&o,i>>>24&255,i>>>16&255,i>>>8&255,255&i,s>>>24&255,s>>>16&255,s>>>8&255,255&s];return this.is224||c.push(a>>>24&255,a>>>16&255,a>>>8&255,255&a),c},b.prototype.array=b.prototype.digest,b.prototype.arrayBuffer=function(){this.finalize();var e=new ArrayBuffer(this.is224?28:32),t=new DataView(e);return 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),this.is224||t.setUint32(28,this.h7),e},S.prototype=new b,S.prototype.finalize=function(){if(b.prototype.finalize.call(this),this.inner){this.inner=!1;var e=this.array();b.call(this,this.is224,this.sharedMemory),this.update(this.oKeyPad),this.update(e),b.prototype.finalize.call(this)}};var _=k();_.sha256=_,_.sha224=k(!0),_.sha256.hmac=y(),_.sha224.hmac=y(!0),s?t.exports=_:(n.sha256=_.sha256,n.sha224=_.sha224,a&&define(function(){return _}))}()})(),1),m=class extends Error{};function g(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 function(e){return decodeURIComponent(atob(e).replace(/(.)/g,(e,t)=>{let r=t.charCodeAt(0).toString(16).toUpperCase();return r.length<2&&(r="0"+r),"%"+r}))}(t)}catch(r){return atob(t)}}function k(e,t){if("string"!=typeof e)throw new m("Invalid token specified: must be a string");t||(t={});const r=!0===t.header?0:1,n=e.split(".")[r];if("string"!=typeof n)throw new m(`Invalid token specified: missing part #${r+1}`);let o;try{o=g(n)}catch(i){throw new m(`Invalid token specified: invalid base64 for part #${r+1} (${i.message})`)}try{return JSON.parse(o)}catch(i){throw new m(`Invalid token specified: invalid json for part #${r+1} (${i.message})`)}}if(m.prototype.name="InvalidTokenError","undefined"==typeof Promise)throw Error("Keycloak requires an environment that supports Promises. Make sure that you include the appropriate polyfill.");function w(e){if(!(this instanceof w))throw new Error("The 'Keycloak' constructor must be invoked with 'new'.");for(var t,r,n=this,o=[],i={enable:!0,callbackList:[],interval:5},s=document.getElementsByTagName("script"),a=0;a<s.length;a++)-1===s[a].src.indexOf("keycloak.js")&&-1===s[a].src.indexOf("keycloak.min.js")||-1===s[a].src.indexOf("version=")||(n.iframeVersion=s[a].src.substring(s[a].src.indexOf("version=")+8).split("&")[0]);var c=!0,u=R(console.info),l=R(console.warn);function d(e,t){for(var r=function(e){var t=null,r=window.crypto||window.msCrypto;if(r&&r.getRandomValues&&window.Uint8Array)return t=new Uint8Array(e),r.getRandomValues(t),t;t=new Array(e);for(var n=0;n<t.length;n++)t[n]=Math.floor(256*Math.random());return t}(e),n=new Array(e),o=0;o<e;o++)n[o]=t.charCodeAt(r[o]%t.length);return String.fromCharCode.apply(null,n)}function h(e,t){if("S256"!==e)throw new TypeError(`Invalid value for 'pkceMethod', expected 'S256' but got '${e}'.`);return function(e){const t=String.fromCodePoint(...e);return btoa(t)}(new Uint8Array(p.default.arrayBuffer(t))).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")}function f(){return void 0!==n.authServerUrl?"/"==n.authServerUrl.charAt(n.authServerUrl.length-1)?n.authServerUrl+"realms/"+encodeURIComponent(n.realm):n.authServerUrl+"/realms/"+encodeURIComponent(n.realm):void 0}function m(e,t){var r=e.code,o=e.error,i=e.prompt,s=(new Date).getTime();if(e.kc_action_status&&n.onActionUpdate&&n.onActionUpdate(e.kc_action_status),o)if("none"!=i)if(e.error_description&&"authentication_expired"===e.error_description)n.login(e.loginOptions);else{var a={error:o,error_description:e.error_description};n.onAuthError&&n.onAuthError(a),t&&t.setError(a)}else t&&t.setSuccess();else if("standard"!=n.flow&&(e.access_token||e.id_token)&&f(e.access_token,null,e.id_token,!0),"implicit"!=n.flow&&r){var l="code="+r+"&grant_type=authorization_code",d=n.endpoints.token(),h=new XMLHttpRequest;h.open("POST",d,!0),h.setRequestHeader("Content-type","application/x-www-form-urlencoded"),l+="&client_id="+encodeURIComponent(n.clientId),l+="&redirect_uri="+e.redirectUri,e.pkceCodeVerifier&&(l+="&code_verifier="+e.pkceCodeVerifier),h.withCredentials=!0,h.onreadystatechange=function(){if(4==h.readyState)if(200==h.status){var e=JSON.parse(h.responseText);f(e.access_token,e.refresh_token,e.id_token,"standard"===n.flow),A()}else n.onAuthError&&n.onAuthError(),t&&t.setError()},h.send(l)}function f(r,o,i,a){v(r,o,i,s=(s+(new Date).getTime())/2),c&&n.idTokenParsed&&n.idTokenParsed.nonce!=e.storedNonce?(u("[KEYCLOAK] Invalid nonce, clearing token"),n.clearToken(),t&&t.setError()):a&&(n.onAuthSuccess&&n.onAuthSuccess(),t&&t.setSuccess())}}function g(e){return 0==e.status&&e.responseText&&e.responseURL.startsWith("file:")}function v(e,t,r,o){if(n.tokenTimeoutHandle&&(clearTimeout(n.tokenTimeoutHandle),n.tokenTimeoutHandle=null),t?(n.refreshToken=t,n.refreshTokenParsed=k(t)):(delete n.refreshToken,delete n.refreshTokenParsed),r?(n.idToken=r,n.idTokenParsed=k(r)):(delete n.idToken,delete n.idTokenParsed),e){if(n.token=e,n.tokenParsed=k(e),n.sessionId=n.tokenParsed.sid,n.authenticated=!0,n.subject=n.tokenParsed.sub,n.realmAccess=n.tokenParsed.realm_access,n.resourceAccess=n.tokenParsed.resource_access,o&&(n.timeSkew=Math.floor(o/1e3)-n.tokenParsed.iat),null!=n.timeSkew&&(u("[KEYCLOAK] Estimated time difference between browser and server is "+n.timeSkew+" seconds"),n.onTokenExpired)){var i=1e3*(n.tokenParsed.exp-(new Date).getTime()/1e3+n.timeSkew);u("[KEYCLOAK] Token expires in "+Math.round(i/1e3)+" s"),i<=0?n.onTokenExpired():n.tokenTimeoutHandle=setTimeout(n.onTokenExpired,i)}}else delete n.token,delete n.tokenParsed,delete n.subject,delete n.realmAccess,delete n.resourceAccess,n.authenticated=!1}function y(){var e="0123456789abcdef",t=d(36,e).split("");return t[14]="4",t[19]=e.substr(3&t[19]|8,1),t[8]=t[13]=t[18]=t[23]="-",t.join("")}function b(e){var t=function(e){var t;switch(n.flow){case"standard":t=["code","state","session_state","kc_action_status","iss"];break;case"implicit":t=["access_token","token_type","id_token","state","session_state","expires_in","kc_action_status","iss"];break;case"hybrid":t=["access_token","token_type","id_token","code","state","session_state","expires_in","kc_action_status","iss"]}t.push("error"),t.push("error_description"),t.push("error_uri");var r,o,i=e.indexOf("?"),s=e.indexOf("#");"query"===n.responseMode&&-1!==i?(r=e.substring(0,i),""!==(o=S(e.substring(i+1,-1!==s?s:e.length),t)).paramsString&&(r+="?"+o.paramsString),-1!==s&&(r+=e.substring(s))):"fragment"===n.responseMode&&-1!==s&&(r=e.substring(0,s),""!==(o=S(e.substring(s+1),t)).paramsString&&(r+="#"+o.paramsString));if(o&&o.oauthParams)if("standard"===n.flow||"hybrid"===n.flow){if((o.oauthParams.code||o.oauthParams.error)&&o.oauthParams.state)return o.oauthParams.newUrl=r,o.oauthParams}else if("implicit"===n.flow&&(o.oauthParams.access_token||o.oauthParams.error)&&o.oauthParams.state)return o.oauthParams.newUrl=r,o.oauthParams}(e);if(t){var o=r.get(t.state);return o&&(t.valid=!0,t.redirectUri=o.redirectUri,t.storedNonce=o.nonce,t.prompt=o.prompt,t.pkceCodeVerifier=o.pkceCodeVerifier,t.loginOptions=o.loginOptions),t}}function S(e,t){for(var r=e.split("&"),n={paramsString:"",oauthParams:{}},o=0;o<r.length;o++){var i=r[o].indexOf("="),s=r[o].slice(0,i);-1!==t.indexOf(s)?n.oauthParams[s]=r[o].slice(i+1):(""!==n.paramsString&&(n.paramsString+="&"),n.paramsString+=r[o])}return n}function _(){var e={setSuccess:function(t){e.resolve(t)},setError:function(t){e.reject(t)}};return e.promise=new Promise(function(t,r){e.resolve=t,e.reject=r}),e}function U(){var e=_();if(!i.enable)return e.setSuccess(),e.promise;if(i.iframe)return e.setSuccess(),e.promise;var t=document.createElement("iframe");i.iframe=t,t.onload=function(){var t=n.endpoints.authorize();"/"===t.charAt(0)?i.iframeOrigin=window.location.origin?window.location.origin:window.location.protocol+"//"+window.location.hostname+(window.location.port?":"+window.location.port:""):i.iframeOrigin=t.substring(0,t.indexOf("/",8)),e.setSuccess()};var r=n.endpoints.checkSessionIframe();t.setAttribute("src",r),t.setAttribute("sandbox","allow-storage-access-by-user-activation allow-scripts allow-same-origin"),t.setAttribute("title","keycloak-session-iframe"),t.style.display="none",document.body.appendChild(t);return window.addEventListener("message",function(e){if(e.origin===i.iframeOrigin&&i.iframe.contentWindow===e.source&&("unchanged"==e.data||"changed"==e.data||"error"==e.data)){"unchanged"!=e.data&&n.clearToken();for(var t=i.callbackList.splice(0,i.callbackList.length),r=t.length-1;r>=0;--r){var o=t[r];"error"==e.data?o.setError():o.setSuccess("unchanged"==e.data)}}},!1),e.promise}function A(){i.enable&&n.token&&setTimeout(function(){E().then(function(e){e&&A()})},1e3*i.interval)}function E(){var e=_();if(i.iframe&&i.iframeOrigin){var t=n.clientId+" "+(n.sessionId?n.sessionId:"");i.callbackList.push(e);var r=i.iframeOrigin;1==i.callbackList.length&&i.iframe.contentWindow.postMessage(t,r)}else e.setSuccess();return e.promise}function T(){var e=_();if(i.enable||n.silentCheckSsoRedirectUri){var t=document.createElement("iframe");t.setAttribute("src",n.endpoints.thirdPartyCookiesIframe()),t.setAttribute("sandbox","allow-storage-access-by-user-activation allow-scripts allow-same-origin"),t.setAttribute("title","keycloak-3p-check-iframe"),t.style.display="none",document.body.appendChild(t);var r=function(o){t.contentWindow===o.source&&("supported"!==o.data&&"unsupported"!==o.data||("unsupported"===o.data&&(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\nFor more information see: https://www.keycloak.org/docs/latest/securing_apps/#_modern_browsers"),i.enable=!1,n.silentCheckSsoFallback&&(n.silentCheckSsoRedirectUri=!1)),document.body.removeChild(t),window.removeEventListener("message",r),e.setSuccess()))};window.addEventListener("message",r,!1)}else e.setSuccess();return function(e,t,r){var n=null,o=new Promise(function(e,o){n=setTimeout(function(){o({error:r})},t)});return Promise.race([e,o]).finally(function(){clearTimeout(n)})}(e.promise,n.messageReceiveTimeout,"Timeout when waiting for 3rd party check iframe message.")}function I(e){if(!e||"default"==e)return{login:function(e){return window.location.assign(n.createLoginUrl(e)),_().promise},logout:async function(e){if("GET"===(e?.logoutMethod??n.logoutMethod))return void window.location.replace(n.createLogoutUrl(e));const r=n.createLogoutUrl(e),o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({id_token_hint:n.idToken,client_id:n.clientId,post_logout_redirect_uri:t.redirectUri(e,!1)})});if(o.redirected)window.location.href=o.url;else{if(!o.ok)throw new Error("Logout failed, request returned an error code.");window.location.reload()}},register:function(e){return window.location.assign(n.createRegisterUrl(e)),_().promise},accountManagement:function(){var e=n.createAccountUrl();if(void 0===e)throw"Not supported by the OIDC server";return window.location.href=e,_().promise},redirectUri:function(e,t){return e&&e.redirectUri?e.redirectUri:n.redirectUri?n.redirectUri:location.href}};if("cordova"==e){i.enable=!1;var r=function(e,t,r){return window.cordova&&window.cordova.InAppBrowser?window.cordova.InAppBrowser.open(e,t,r):window.open(e,t,r)},o=function(e){var t=function(e){return e&&e.cordovaOptions?Object.keys(e.cordovaOptions).reduce(function(t,r){return t[r]=e.cordovaOptions[r],t},{}):{}}(e);return t.location="no",e&&"none"==e.prompt&&(t.hidden="yes"),function(e){return Object.keys(e).reduce(function(t,r){return t.push(r+"="+e[r]),t},[]).join(",")}(t)},s=function(){return n.redirectUri||"http://localhost"};return{login:function(e){var t=_(),i=o(e),a=r(n.createLoginUrl(e),"_blank",i),c=!1,u=!1,l=function(){u=!0,a.close()};return a.addEventListener("loadstart",function(e){0==e.url.indexOf(s())&&(m(b(e.url),t),l(),c=!0)}),a.addEventListener("loaderror",function(e){c||(0==e.url.indexOf(s())?(m(b(e.url),t),l(),c=!0):(t.setError(),l()))}),a.addEventListener("exit",function(e){u||t.setError({reason:"closed_by_user"})}),t.promise},logout:function(e){var t,o=_(),i=r(n.createLogoutUrl(e),"_blank","location=no,hidden=yes,clearcache=yes");return i.addEventListener("loadstart",function(e){0==e.url.indexOf(s())&&i.close()}),i.addEventListener("loaderror",function(e){0==e.url.indexOf(s())||(t=!0),i.close()}),i.addEventListener("exit",function(e){t?o.setError():(n.clearToken(),o.setSuccess())}),o.promise},register:function(e){var t=_(),i=r(n.createRegisterUrl(),"_blank",o(e));return i.addEventListener("loadstart",function(e){0==e.url.indexOf(s())&&(i.close(),m(b(e.url),t))}),t.promise},accountManagement:function(){var e=n.createAccountUrl();if(void 0===e)throw"Not supported by the OIDC server";var t=r(e,"_blank","location=no");t.addEventListener("loadstart",function(e){0==e.url.indexOf(s())&&t.close()})},redirectUri:function(e){return s()}}}if("cordova-native"==e)return i.enable=!1,{login:function(e){var t=_(),r=n.createLoginUrl(e);return universalLinks.subscribe("keycloak",function(e){universalLinks.unsubscribe("keycloak"),window.cordova.plugins.browsertab.close(),m(b(e.url),t)}),window.cordova.plugins.browsertab.openUrl(r),t.promise},logout:function(e){var t=_(),r=n.createLogoutUrl(e);return universalLinks.subscribe("keycloak",function(e){universalLinks.unsubscribe("keycloak"),window.cordova.plugins.browsertab.close(),n.clearToken(),t.setSuccess()}),window.cordova.plugins.browsertab.openUrl(r),t.promise},register:function(e){var t=_(),r=n.createRegisterUrl(e);return universalLinks.subscribe("keycloak",function(e){universalLinks.unsubscribe("keycloak"),window.cordova.plugins.browsertab.close(),m(b(e.url),t)}),window.cordova.plugins.browsertab.openUrl(r),t.promise},accountManagement:function(){var e=n.createAccountUrl();if(void 0===e)throw"Not supported by the OIDC server";window.cordova.plugins.browsertab.openUrl(e)},redirectUri:function(e){return e&&e.redirectUri?e.redirectUri:n.redirectUri?n.redirectUri:"http://localhost"}};throw"invalid adapter type: "+e}n.init=function(o){if(n.didInitialize)throw new Error("A 'Keycloak' instance can only be initialized once.");if(n.didInitialize=!0,n.authenticated=!1,r=function(){try{return new O}catch(e){}return new C}(),t=o&&["default","cordova","cordova-native"].indexOf(o.adapter)>-1?I(o.adapter):o&&"object"==typeof o.adapter?o.adapter:window.Cordova||window.cordova?I("cordova"):I(),o){if(void 0!==o.useNonce&&(c=o.useNonce),void 0!==o.checkLoginIframe&&(i.enable=o.checkLoginIframe),o.checkLoginIframeInterval&&(i.interval=o.checkLoginIframeInterval),"login-required"===o.onLoad&&(n.loginRequired=!0),o.responseMode){if("query"!==o.responseMode&&"fragment"!==o.responseMode)throw"Invalid value for responseMode";n.responseMode=o.responseMode}if(o.flow){switch(o.flow){case"standard":n.responseType="code";break;case"implicit":n.responseType="id_token token";break;case"hybrid":n.responseType="code id_token token";break;default:throw"Invalid value for flow"}n.flow=o.flow}if(null!=o.timeSkew&&(n.timeSkew=o.timeSkew),o.redirectUri&&(n.redirectUri=o.redirectUri),o.silentCheckSsoRedirectUri&&(n.silentCheckSsoRedirectUri=o.silentCheckSsoRedirectUri),"boolean"==typeof o.silentCheckSsoFallback?n.silentCheckSsoFallback=o.silentCheckSsoFallback:n.silentCheckSsoFallback=!0,void 0!==o.pkceMethod){if("S256"!==o.pkceMethod&&!1!==o.pkceMethod)throw new TypeError(`Invalid value for pkceMethod', expected 'S256' or false but got ${o.pkceMethod}.`);n.pkceMethod=o.pkceMethod}else n.pkceMethod="S256";"boolean"==typeof o.enableLogging?n.enableLogging=o.enableLogging:n.enableLogging=!1,"POST"===o.logoutMethod?n.logoutMethod="POST":n.logoutMethod="GET","string"==typeof o.scope&&(n.scope=o.scope),"string"==typeof o.acrValues&&(n.acrValues=o.acrValues),"number"==typeof o.messageReceiveTimeout&&o.messageReceiveTimeout>0?n.messageReceiveTimeout=o.messageReceiveTimeout:n.messageReceiveTimeout=1e4}n.responseMode||(n.responseMode="fragment"),n.responseType||(n.responseType="code",n.flow="standard");var s=_(),a=_();a.promise.then(function(){n.onReady&&n.onReady(n.authenticated),s.setSuccess(n.authenticated)}).catch(function(e){s.setError(e)});var u=function(){var t,r=_();e?"string"==typeof e&&(t=e):t="keycloak.json";function o(e){n.endpoints=e?{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}}:{authorize:function(){return f()+"/protocol/openid-connect/auth"},token:function(){return f()+"/protocol/openid-connect/token"},logout:function(){return f()+"/protocol/openid-connect/logout"},checkSessionIframe:function(){var e=f()+"/protocol/openid-connect/login-status-iframe.html";return n.iframeVersion&&(e=e+"?version="+n.iframeVersion),e},thirdPartyCookiesIframe:function(){var e=f()+"/protocol/openid-connect/3p-cookies/step1.html";return n.iframeVersion&&(e=e+"?version="+n.iframeVersion),e},register:function(){return f()+"/protocol/openid-connect/registrations"},userinfo:function(){return f()+"/protocol/openid-connect/userinfo"}}}if(t){(a=new XMLHttpRequest).open("GET",t,!0),a.setRequestHeader("Accept","application/json"),a.onreadystatechange=function(){if(4==a.readyState)if(200==a.status||g(a)){var e=JSON.parse(a.responseText);n.authServerUrl=e["auth-server-url"],n.realm=e.realm,n.clientId=e.resource,o(null),r.setSuccess()}else r.setError()},a.send()}else{if(!e.clientId)throw"clientId missing";n.clientId=e.clientId;var i=e.oidcProvider;if(i)if("string"==typeof i){var s,a;s="/"==i.charAt(i.length-1)?i+".well-known/openid-configuration":i+"/.well-known/openid-configuration",(a=new XMLHttpRequest).open("GET",s,!0),a.setRequestHeader("Accept","application/json"),a.onreadystatechange=function(){4==a.readyState&&(200==a.status||g(a)?(o(JSON.parse(a.responseText)),r.setSuccess()):r.setError())},a.send()}else o(i),r.setSuccess();else{if(!e.url)for(var c=document.getElementsByTagName("script"),u=0;u<c.length;u++)if(c[u].src.match(/.*keycloak\.js/)){e.url=c[u].src.substr(0,c[u].src.indexOf("/js/keycloak.js"));break}if(!e.realm)throw"realm missing";n.authServerUrl=e.url,n.realm=e.realm,o(null),r.setSuccess()}}return r.promise}();function l(){var e=function(e){e||(r.prompt="none"),o&&o.locale&&(r.locale=o.locale),n.login(r).then(function(){a.setSuccess()}).catch(function(e){a.setError(e)})},t=function(){var e=document.createElement("iframe"),t=n.createLoginUrl({prompt:"none",redirectUri:n.silentCheckSsoRedirectUri});e.setAttribute("src",t),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){t.origin===window.location.origin&&e.contentWindow===t.source&&(m(b(t.data),a),document.body.removeChild(e),window.removeEventListener("message",r))};window.addEventListener("message",r)},r={};switch(o.onLoad){case"check-sso":i.enable?U().then(function(){E().then(function(r){r?a.setSuccess():n.silentCheckSsoRedirectUri?t():e(!1)}).catch(function(e){a.setError(e)})}):n.silentCheckSsoRedirectUri?t():e(!1);break;case"login-required":e(!0);break;default:throw"Invalid value for onLoad"}}function d(){var e=b(window.location.href);if(e&&window.history.replaceState(window.history.state,null,e.newUrl),e&&e.valid)return U().then(function(){m(e,a)}).catch(function(e){a.setError(e)});o?o.token&&o.refreshToken?(v(o.token,o.refreshToken,o.idToken),i.enable?U().then(function(){E().then(function(e){e?(n.onAuthSuccess&&n.onAuthSuccess(),a.setSuccess(),A()):a.setSuccess()}).catch(function(e){a.setError(e)})}):n.updateToken(-1).then(function(){n.onAuthSuccess&&n.onAuthSuccess(),a.setSuccess()}).catch(function(e){n.onAuthError&&n.onAuthError(),o.onLoad?l():a.setError(e)})):o.onLoad?l():a.setSuccess():a.setSuccess()}return u.then(function(){(function(){var e=_(),t=function(){"interactive"!==document.readyState&&"complete"!==document.readyState||(document.removeEventListener("readystatechange",t),e.setSuccess())};return document.addEventListener("readystatechange",t),t(),e.promise})().then(T).then(d).catch(function(e){s.setError(e)})}),u.catch(function(e){s.setError(e)}),s.promise},n.login=function(e){return t.login(e)},n.createLoginUrl=function(e){var o,i=y(),s=y(),a=t.redirectUri(e),u={state:i,nonce:s,redirectUri:encodeURIComponent(a),loginOptions:e};e&&e.prompt&&(u.prompt=e.prompt),o=e&&"register"==e.action?n.endpoints.register():n.endpoints.authorize();var l=e&&e.scope||n.scope;l?-1===l.indexOf("openid")&&(l="openid "+l):l="openid";var f,p=o+"?client_id="+encodeURIComponent(n.clientId)+"&redirect_uri="+encodeURIComponent(a)+"&state="+encodeURIComponent(i)+"&response_mode="+encodeURIComponent(n.responseMode)+"&response_type="+encodeURIComponent(n.responseType)+"&scope="+encodeURIComponent(l);if(c&&(p=p+"&nonce="+encodeURIComponent(s)),e&&e.prompt&&(p+="&prompt="+encodeURIComponent(e.prompt)),e&&e.maxAge&&(p+="&max_age="+encodeURIComponent(e.maxAge)),e&&e.loginHint&&(p+="&login_hint="+encodeURIComponent(e.loginHint)),e&&e.idpHint&&(p+="&kc_idp_hint="+encodeURIComponent(e.idpHint)),e&&e.action&&"register"!=e.action&&(p+="&kc_action="+encodeURIComponent(e.action)),e&&e.locale&&(p+="&ui_locales="+encodeURIComponent(e.locale)),e&&e.acr){var m=(f=e.acr,JSON.stringify({id_token:{acr:f}}));p+="&claims="+encodeURIComponent(m)}if((e&&e.acrValues||n.acrValues)&&(p+="&acr_values="+encodeURIComponent(e.acrValues||n.acrValues)),n.pkceMethod){var g=d(96,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789");u.pkceCodeVerifier=g,p+="&code_challenge="+h(n.pkceMethod,g),p+="&code_challenge_method="+n.pkceMethod}return r.add(u),p},n.logout=function(e){return t.logout(e)},n.createLogoutUrl=function(e){if("POST"===(e?.logoutMethod??n.logoutMethod))return n.endpoints.logout();var r=n.endpoints.logout()+"?client_id="+encodeURIComponent(n.clientId)+"&post_logout_redirect_uri="+encodeURIComponent(t.redirectUri(e,!1));return n.idToken&&(r+="&id_token_hint="+encodeURIComponent(n.idToken)),r},n.register=function(e){return t.register(e)},n.createRegisterUrl=function(e){return e||(e={}),e.action="register",n.createLoginUrl(e)},n.createAccountUrl=function(e){var r=f(),o=void 0;return void 0!==r&&(o=r+"/account?referrer="+encodeURIComponent(n.clientId)+"&referrer_uri="+encodeURIComponent(t.redirectUri(e))),o},n.accountManagement=function(){return t.accountManagement()},n.hasRealmRole=function(e){var t=n.realmAccess;return!!t&&t.roles.indexOf(e)>=0},n.hasResourceRole=function(e,t){if(!n.resourceAccess)return!1;var r=n.resourceAccess[t||n.clientId];return!!r&&r.roles.indexOf(e)>=0},n.loadUserProfile=function(){var e=f()+"/account",t=new XMLHttpRequest;t.open("GET",e,!0),t.setRequestHeader("Accept","application/json"),t.setRequestHeader("Authorization","bearer "+n.token);var r=_();return t.onreadystatechange=function(){4==t.readyState&&(200==t.status?(n.profile=JSON.parse(t.responseText),r.setSuccess(n.profile)):r.setError())},t.send(),r.promise},n.loadUserInfo=function(){var e=n.endpoints.userinfo(),t=new XMLHttpRequest;t.open("GET",e,!0),t.setRequestHeader("Accept","application/json"),t.setRequestHeader("Authorization","bearer "+n.token);var r=_();return t.onreadystatechange=function(){4==t.readyState&&(200==t.status?(n.userInfo=JSON.parse(t.responseText),r.setSuccess(n.userInfo)):r.setError())},t.send(),r.promise},n.isTokenExpired=function(e){if(!n.tokenParsed||!n.refreshToken&&"implicit"!=n.flow)throw"Not authenticated";if(null==n.timeSkew)return u("[KEYCLOAK] Unable to determine if token is expired as timeskew is not set"),!0;var t=n.tokenParsed.exp-Math.ceil((new Date).getTime()/1e3)+n.timeSkew;if(e){if(isNaN(e))throw"Invalid minValidity";t-=e}return t<0},n.updateToken=function(e){var t=_();if(!n.refreshToken)return t.setError(),t.promise;e=e||5;var r=function(){var r=!1;if(-1==e?(r=!0,u("[KEYCLOAK] Refreshing token: forced refresh")):n.tokenParsed&&!n.isTokenExpired(e)||(r=!0,u("[KEYCLOAK] Refreshing token: token expired")),r){var i="grant_type=refresh_token&refresh_token="+n.refreshToken,s=n.endpoints.token();if(o.push(t),1==o.length){var a=new XMLHttpRequest;a.open("POST",s,!0),a.setRequestHeader("Content-type","application/x-www-form-urlencoded"),a.withCredentials=!0,i+="&client_id="+encodeURIComponent(n.clientId);var c=(new Date).getTime();a.onreadystatechange=function(){if(4==a.readyState)if(200==a.status){u("[KEYCLOAK] Token refreshed"),c=(c+(new Date).getTime())/2;var e=JSON.parse(a.responseText);v(e.access_token,e.refresh_token,e.id_token,c),n.onAuthRefreshSuccess&&n.onAuthRefreshSuccess();for(var t=o.pop();null!=t;t=o.pop())t.setSuccess(!0)}else{l("[KEYCLOAK] Failed to refresh token"),400==a.status&&n.clearToken(),n.onAuthRefreshError&&n.onAuthRefreshError();for(t=o.pop();null!=t;t=o.pop())t.setError(!0)}},a.send(i)}}else t.setSuccess(!1)};return i.enable?E().then(function(){r()}).catch(function(e){t.setError(e)}):r(),t.promise},n.clearToken=function(){n.token&&(v(null,null,null),n.onAuthLogout&&n.onAuthLogout(),n.loginRequired&&n.login())};var O=function(){if(!(this instanceof O))return new O;localStorage.setItem("kc-test","test"),localStorage.removeItem("kc-test");function e(){for(var e=(new Date).getTime(),t=0;t<localStorage.length;t++){var r=localStorage.key(t);if(r&&0==r.indexOf("kc-callback-")){var n=localStorage.getItem(r);if(n)try{var o=JSON.parse(n).expires;(!o||o<e)&&localStorage.removeItem(r)}catch(i){localStorage.removeItem(r)}}}}this.get=function(t){if(t){var r="kc-callback-"+t,n=localStorage.getItem(r);return n&&(localStorage.removeItem(r),n=JSON.parse(n)),e(),n}},this.add=function(t){e();var r="kc-callback-"+t.state;t.expires=(new Date).getTime()+36e5,localStorage.setItem(r,JSON.stringify(t))}},C=function(){if(!(this instanceof C))return new C;var e=this;e.get=function(e){if(e){var o=r("kc-callback-"+e);return n("kc-callback-"+e,"",t(-100)),o?JSON.parse(o):void 0}},e.add=function(e){n("kc-callback-"+e.state,JSON.stringify(e),t(60))},e.removeItem=function(e){n(e,"",t(-100))};var t=function(e){var t=new Date;return t.setTime(t.getTime()+60*e*1e3),t},r=function(e){for(var t=e+"=",r=document.cookie.split(";"),n=0;n<r.length;n++){for(var o=r[n];" "==o.charAt(0);)o=o.substring(1);if(0==o.indexOf(t))return o.substring(t.length,o.length)}return""},n=function(e,t,r){var n=e+"="+t+"; expires="+r.toUTCString()+"; ";document.cookie=n}};function R(e){return function(){n.enableLogging&&e.apply(console,Array.prototype.slice.call(arguments))}}}var v="/login/callback",y="studio-chat:login-target";function b(e,t){return"string"==typeof e[t]?e[t]:void 0}var S=new class{client;dev=!1;devToken;profile;refreshPromise;get origin(){return window.location.origin}get keycloak(){if(!this.client)throw new Error("[studio-chat] auth used before init()");return this.client}async init(e){if(e.dev)return this.dev=!0,this.devToken=e.devToken,this.devToken||console.warn("[studio-chat] settings.dev is set but devToken is missing"),!0;if(!e.keycloak)throw new Error("[studio-chat] settings.keycloak is missing");this.client=new w(e.keycloak);const t=window.location.pathname===v;return await this.keycloak.init({onLoad:"check-sso",flow:"standard",pkceMethod:"S256",scope:"profile email"})?(this.profile=this.loadProfile(),!t||this.restoreLoginTarget()):(sessionStorage.setItem(y,window.location.pathname+window.location.search),await this.keycloak.login({redirectUri:`${this.origin}${v}`}),!1)}async refreshToken(e=!1){if(this.dev)return this.devToken??"";if(!this.keycloak.authenticated)throw new Error("[studio-chat] not authenticated");if(this.refreshPromise)return this.refreshPromise;const t=this.keycloak.updateToken(e?-1:30).then(()=>{if(!this.keycloak.token)throw new Error("[studio-chat] Keycloak returned no access token");return this.keycloak.token});this.refreshPromise=t;try{return await t}finally{this.refreshPromise===t&&(this.refreshPromise=void 0)}}getToken(){return this.refreshToken()}getProfile(){return this.profile}loadProfile(){const e=this.keycloak.tokenParsed;if("object"!=typeof(t=e)||null===t)return;var t;const r=b(e,"sub");return r?{id:r,prename:b(e,"given_name"),lastname:b(e,"family_name"),name:b(e,"name")??b(e,"preferred_username"),email:b(e,"email")}:void 0}restoreLoginTarget(){const e=(t=sessionStorage.getItem(y)??void 0)&&t!==v?"/"!==t[0]||"/"===t[1]||"\\"===t[1]?"/":t:"/";var t;return sessionStorage.removeItem(y),"/"!==e?(window.location.replace(e),!1):(window.history.replaceState({},document.title,"/"),!0)}logout(){this.dev?window.location.reload():this.keycloak.logout({redirectUri:this.origin})}},_={},U=function(e,t,r){let n=Promise.resolve();if(t&&t.length>0){const e=document.getElementsByTagName("link"),r=document.querySelector("meta[property=csp-nonce]"),i=r?.nonce||r?.getAttribute("nonce");o=t.map(t=>{var r;if(t=function(e){return"/"+e}(t),r=t,(t=import.meta.resolve?import.meta.resolve(r):new URL(r,import.meta.url).href)in _)return;_[t]=!0;const n=t.endsWith(".css");for(let i=e.length-1;i>=0;i--){const r=e[i];if(r.href===t&&(!n||"stylesheet"===r.rel))return}const o=document.createElement("link");return o.rel=n?"stylesheet":"modulepreload",n||(o.as="script"),o.crossOrigin="",o.href=t,i&&o.setAttribute("nonce",i),document.head.appendChild(o),n?new Promise((e,r)=>{o.addEventListener("load",e),o.addEventListener("error",()=>r(new Error(`Unable to preload CSS for ${t}`)))}):void 0}),n=Promise.all(o.map(e=>Promise.resolve(e).then(e=>({status:"fulfilled",value:e}),e=>({status:"rejected",reason:e}))))}var o;function i(e){const t=new Event("vite:preloadError",{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return n.then(t=>{for(const e of t||[])"rejected"===e.status&&i(e.reason);return e().catch(i)})};export{s as a,h as i,S as n,a as o,d as r,c as s,U as t};
|
|
1
|
+
var e=Object.create,t=Object.defineProperty,r=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,o=Object.getPrototypeOf,i=Object.prototype.hasOwnProperty,s=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),a=(e,r)=>{let n={};for(var o in e)t(n,o,{get:e[o],enumerable:!0});return r||t(n,Symbol.toStringTag,{value:"Module"}),n},c=(s,a,c)=>(c=null!=s?e(o(s)):{},((e,o,s,a)=>{if(o&&"object"==typeof o||"function"==typeof o)for(var c,u=n(o),l=0,d=u.length;l<d;l++)c=u[l],i.call(e,c)||c===s||t(e,c,{get:(e=>o[e]).bind(null,c),enumerable:!(a=r(o,c))||a.enumerable});return e})(!a&&s&&s.__esModule&&i.call(s,"default")?c:t(c,"default",{value:s,enumerable:!0}),s));!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))t(e);new MutationObserver(e=>{for(const r of e)if("childList"===r.type)for(const e of r.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&t(e)}).observe(document,{childList:!0,subtree:!0})}function t(e){if(e.ep)return;e.ep=!0;const t=function(e){const t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?t.credentials="include":"anonymous"===e.crossOrigin?t.credentials="omit":t.credentials="same-origin",t}(e);fetch(e.href,t)}}();var u="/settings/settings.json",l=["localhost","127.0.0.1","[::1]"];async function d(){const e=await fetch(u,{cache:"no-store"});if(!e.ok)throw new Error(`could not load ${u} (${e.status})`);const t=await e.json();if(!t.chat)throw new Error(`${u} has no "chat" section`);if(t.dev&&!l.includes(window.location.hostname))throw new Error(`${u} has dev mode enabled, which only works on localhost — replace it with this deployment's configuration`);return t}function h(e){const{wsUrl:t,apiUrl:r,mediaUrl:n,sound:o}=e.chat;return{wsUrl:t,apiUrl:r,mediaUrl:n,sound:o}}var f=s((e,t)=>{t.exports={}}),p=c(s((e,t)=>{!function(){var e="input is invalid type",r="object"==typeof window,n=r?window:{};n.JS_SHA256_NO_WINDOW&&(r=!1);var o=!r&&"object"==typeof self,i=!n.JS_SHA256_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node&&"renderer"!=process.type;i?n=global:o&&(n=self);var s=!n.JS_SHA256_NO_COMMON_JS&&"object"==typeof t&&t.exports,a="function"==typeof define&&define.amd,c=!n.JS_SHA256_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,u="0123456789abcdef".split(""),l=[-2147483648,8388608,32768,128],d=[24,16,8,0],h=[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],p=["hex","array","digest","arrayBuffer"],m=[];!n.JS_SHA256_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!c||!n.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(e){return"object"==typeof e&&e.buffer&&e.buffer.constructor===ArrayBuffer});var g=function(e,t){return function(r){return new b(t,!0).update(r)[e]()}},k=function(e){var t=g("hex",e);i&&(t=w(t,e)),t.create=function(){return new b(e)},t.update=function(e){return t.create().update(e)};for(var r=0;r<p.length;++r){var n=p[r];t[n]=g(n,e)}return t},w=function(t,r){var o,i=f(),s=f().Buffer,a=r?"sha224":"sha256";o=s.from&&!n.JS_SHA256_NO_BUFFER_FROM?s.from:function(e){return new s(e)};return function(r){if("string"==typeof r)return i.createHash(a).update(r,"utf8").digest("hex");if(null==r)throw new Error(e);return r.constructor===ArrayBuffer&&(r=new Uint8Array(r)),Array.isArray(r)||ArrayBuffer.isView(r)||r.constructor===s?i.createHash(a).update(o(r)).digest("hex"):t(r)}},v=function(e,t){return function(r,n){return new S(r,t,!0).update(n)[e]()}},y=function(e){var t=v("hex",e);t.create=function(t){return new S(t,e)},t.update=function(e,r){return t.create(e).update(r)};for(var r=0;r<p.length;++r){var n=p[r];t[n]=v(n,e)}return t};function b(e,t){t?(m[0]=m[16]=m[1]=m[2]=m[3]=m[4]=m[5]=m[6]=m[7]=m[8]=m[9]=m[10]=m[11]=m[12]=m[13]=m[14]=m[15]=0,this.blocks=m):this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],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):(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=!1,this.first=!0,this.is224=e}function S(t,r,n){var o,i=typeof t;if("string"===i){var s,a=[],u=t.length,l=0;for(o=0;o<u;++o)(s=t.charCodeAt(o))<128?a[l++]=s:s<2048?(a[l++]=192|s>>>6,a[l++]=128|63&s):s<55296||s>=57344?(a[l++]=224|s>>>12,a[l++]=128|s>>>6&63,a[l++]=128|63&s):(s=65536+((1023&s)<<10|1023&t.charCodeAt(++o)),a[l++]=240|s>>>18,a[l++]=128|s>>>12&63,a[l++]=128|s>>>6&63,a[l++]=128|63&s);t=a}else{if("object"!==i)throw new Error(e);if(null===t)throw new Error(e);if(c&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!(Array.isArray(t)||c&&ArrayBuffer.isView(t)))throw new Error(e)}t.length>64&&(t=new b(r,!0).update(t).array());var d=[],h=[];for(o=0;o<64;++o){var f=t[o]||0;d[o]=92^f,h[o]=54^f}b.call(this,r,n),this.update(h),this.oKeyPad=d,this.inner=!0,this.sharedMemory=n}b.prototype.update=function(t){if(!this.finalized){var r,n=typeof t;if("string"!==n){if("object"!==n)throw new Error(e);if(null===t)throw new Error(e);if(c&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!(Array.isArray(t)||c&&ArrayBuffer.isView(t)))throw new Error(e);r=!0}for(var o,i,s=0,a=t.length,u=this.blocks;s<a;){if(this.hashed&&(this.hashed=!1,u[0]=this.block,this.block=u[16]=u[1]=u[2]=u[3]=u[4]=u[5]=u[6]=u[7]=u[8]=u[9]=u[10]=u[11]=u[12]=u[13]=u[14]=u[15]=0),r)for(i=this.start;s<a&&i<64;++s)u[i>>>2]|=t[s]<<d[3&i++];else for(i=this.start;s<a&&i<64;++s)(o=t.charCodeAt(s))<128?u[i>>>2]|=o<<d[3&i++]:o<2048?(u[i>>>2]|=(192|o>>>6)<<d[3&i++],u[i>>>2]|=(128|63&o)<<d[3&i++]):o<55296||o>=57344?(u[i>>>2]|=(224|o>>>12)<<d[3&i++],u[i>>>2]|=(128|o>>>6&63)<<d[3&i++],u[i>>>2]|=(128|63&o)<<d[3&i++]):(o=65536+((1023&o)<<10|1023&t.charCodeAt(++s)),u[i>>>2]|=(240|o>>>18)<<d[3&i++],u[i>>>2]|=(128|o>>>12&63)<<d[3&i++],u[i>>>2]|=(128|o>>>6&63)<<d[3&i++],u[i>>>2]|=(128|63&o)<<d[3&i++]);this.lastByteIndex=i,this.bytes+=i-this.start,i>=64?(this.block=u[16],this.start=i-64,this.hash(),this.hashed=!0):this.start=i}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296|0,this.bytes=this.bytes%4294967296),this}},b.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex;e[16]=this.block,e[t>>>2]|=l[3&t],this.block=e[16],t>=56&&(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()}},b.prototype.hash=function(){var e,t,r,n,o,i,s,a,c,u=this.h0,l=this.h1,d=this.h2,f=this.h3,p=this.h4,m=this.h5,g=this.h6,k=this.h7,w=this.blocks;for(e=16;e<64;++e)t=((o=w[e-15])>>>7|o<<25)^(o>>>18|o<<14)^o>>>3,r=((o=w[e-2])>>>17|o<<15)^(o>>>19|o<<13)^o>>>10,w[e]=w[e-16]+t+w[e-7]+r|0;for(c=l&d,e=0;e<64;e+=4)this.first?(this.is224?(i=300032,k=(o=w[0]-1413257819)-150054599|0,f=o+24177077|0):(i=704751109,k=(o=w[0]-210244248)-1521486534|0,f=o+143694565|0),this.first=!1):(t=(u>>>2|u<<30)^(u>>>13|u<<19)^(u>>>22|u<<10),n=(i=u&l)^u&d^c,k=f+(o=k+(r=(p>>>6|p<<26)^(p>>>11|p<<21)^(p>>>25|p<<7))+(p&m^~p&g)+h[e]+w[e])|0,f=o+(t+n)|0),t=(f>>>2|f<<30)^(f>>>13|f<<19)^(f>>>22|f<<10),n=(s=f&u)^f&l^i,g=d+(o=g+(r=(k>>>6|k<<26)^(k>>>11|k<<21)^(k>>>25|k<<7))+(k&p^~k&m)+h[e+1]+w[e+1])|0,t=((d=o+(t+n)|0)>>>2|d<<30)^(d>>>13|d<<19)^(d>>>22|d<<10),n=(a=d&f)^d&u^s,m=l+(o=m+(r=(g>>>6|g<<26)^(g>>>11|g<<21)^(g>>>25|g<<7))+(g&k^~g&p)+h[e+2]+w[e+2])|0,t=((l=o+(t+n)|0)>>>2|l<<30)^(l>>>13|l<<19)^(l>>>22|l<<10),n=(c=l&d)^l&f^a,p=u+(o=p+(r=(m>>>6|m<<26)^(m>>>11|m<<21)^(m>>>25|m<<7))+(m&g^~m&k)+h[e+3]+w[e+3])|0,u=o+(t+n)|0,this.chromeBugWorkAround=!0;this.h0=this.h0+u|0,this.h1=this.h1+l|0,this.h2=this.h2+d|0,this.h3=this.h3+f|0,this.h4=this.h4+p|0,this.h5=this.h5+m|0,this.h6=this.h6+g|0,this.h7=this.h7+k|0},b.prototype.hex=function(){this.finalize();var e=this.h0,t=this.h1,r=this.h2,n=this.h3,o=this.h4,i=this.h5,s=this.h6,a=this.h7,c=u[e>>>28&15]+u[e>>>24&15]+u[e>>>20&15]+u[e>>>16&15]+u[e>>>12&15]+u[e>>>8&15]+u[e>>>4&15]+u[15&e]+u[t>>>28&15]+u[t>>>24&15]+u[t>>>20&15]+u[t>>>16&15]+u[t>>>12&15]+u[t>>>8&15]+u[t>>>4&15]+u[15&t]+u[r>>>28&15]+u[r>>>24&15]+u[r>>>20&15]+u[r>>>16&15]+u[r>>>12&15]+u[r>>>8&15]+u[r>>>4&15]+u[15&r]+u[n>>>28&15]+u[n>>>24&15]+u[n>>>20&15]+u[n>>>16&15]+u[n>>>12&15]+u[n>>>8&15]+u[n>>>4&15]+u[15&n]+u[o>>>28&15]+u[o>>>24&15]+u[o>>>20&15]+u[o>>>16&15]+u[o>>>12&15]+u[o>>>8&15]+u[o>>>4&15]+u[15&o]+u[i>>>28&15]+u[i>>>24&15]+u[i>>>20&15]+u[i>>>16&15]+u[i>>>12&15]+u[i>>>8&15]+u[i>>>4&15]+u[15&i]+u[s>>>28&15]+u[s>>>24&15]+u[s>>>20&15]+u[s>>>16&15]+u[s>>>12&15]+u[s>>>8&15]+u[s>>>4&15]+u[15&s];return this.is224||(c+=u[a>>>28&15]+u[a>>>24&15]+u[a>>>20&15]+u[a>>>16&15]+u[a>>>12&15]+u[a>>>8&15]+u[a>>>4&15]+u[15&a]),c},b.prototype.toString=b.prototype.hex,b.prototype.digest=function(){this.finalize();var e=this.h0,t=this.h1,r=this.h2,n=this.h3,o=this.h4,i=this.h5,s=this.h6,a=this.h7,c=[e>>>24&255,e>>>16&255,e>>>8&255,255&e,t>>>24&255,t>>>16&255,t>>>8&255,255&t,r>>>24&255,r>>>16&255,r>>>8&255,255&r,n>>>24&255,n>>>16&255,n>>>8&255,255&n,o>>>24&255,o>>>16&255,o>>>8&255,255&o,i>>>24&255,i>>>16&255,i>>>8&255,255&i,s>>>24&255,s>>>16&255,s>>>8&255,255&s];return this.is224||c.push(a>>>24&255,a>>>16&255,a>>>8&255,255&a),c},b.prototype.array=b.prototype.digest,b.prototype.arrayBuffer=function(){this.finalize();var e=new ArrayBuffer(this.is224?28:32),t=new DataView(e);return 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),this.is224||t.setUint32(28,this.h7),e},S.prototype=new b,S.prototype.finalize=function(){if(b.prototype.finalize.call(this),this.inner){this.inner=!1;var e=this.array();b.call(this,this.is224,this.sharedMemory),this.update(this.oKeyPad),this.update(e),b.prototype.finalize.call(this)}};var _=k();_.sha256=_,_.sha224=k(!0),_.sha256.hmac=y(),_.sha224.hmac=y(!0),s?t.exports=_:(n.sha256=_.sha256,n.sha224=_.sha224,a&&define(function(){return _}))}()})(),1),m=class extends Error{};function g(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 function(e){return decodeURIComponent(atob(e).replace(/(.)/g,(e,t)=>{let r=t.charCodeAt(0).toString(16).toUpperCase();return r.length<2&&(r="0"+r),"%"+r}))}(t)}catch(r){return atob(t)}}function k(e,t){if("string"!=typeof e)throw new m("Invalid token specified: must be a string");t||(t={});const r=!0===t.header?0:1,n=e.split(".")[r];if("string"!=typeof n)throw new m(`Invalid token specified: missing part #${r+1}`);let o;try{o=g(n)}catch(i){throw new m(`Invalid token specified: invalid base64 for part #${r+1} (${i.message})`)}try{return JSON.parse(o)}catch(i){throw new m(`Invalid token specified: invalid json for part #${r+1} (${i.message})`)}}if(m.prototype.name="InvalidTokenError","undefined"==typeof Promise)throw Error("Keycloak requires an environment that supports Promises. Make sure that you include the appropriate polyfill.");function w(e){if(!(this instanceof w))throw new Error("The 'Keycloak' constructor must be invoked with 'new'.");for(var t,r,n=this,o=[],i={enable:!0,callbackList:[],interval:5},s=document.getElementsByTagName("script"),a=0;a<s.length;a++)-1===s[a].src.indexOf("keycloak.js")&&-1===s[a].src.indexOf("keycloak.min.js")||-1===s[a].src.indexOf("version=")||(n.iframeVersion=s[a].src.substring(s[a].src.indexOf("version=")+8).split("&")[0]);var c=!0,u=R(console.info),l=R(console.warn);function d(e,t){for(var r=function(e){var t=null,r=window.crypto||window.msCrypto;if(r&&r.getRandomValues&&window.Uint8Array)return t=new Uint8Array(e),r.getRandomValues(t),t;t=new Array(e);for(var n=0;n<t.length;n++)t[n]=Math.floor(256*Math.random());return t}(e),n=new Array(e),o=0;o<e;o++)n[o]=t.charCodeAt(r[o]%t.length);return String.fromCharCode.apply(null,n)}function h(e,t){if("S256"!==e)throw new TypeError(`Invalid value for 'pkceMethod', expected 'S256' but got '${e}'.`);return function(e){const t=String.fromCodePoint(...e);return btoa(t)}(new Uint8Array(p.default.arrayBuffer(t))).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")}function f(){return void 0!==n.authServerUrl?"/"==n.authServerUrl.charAt(n.authServerUrl.length-1)?n.authServerUrl+"realms/"+encodeURIComponent(n.realm):n.authServerUrl+"/realms/"+encodeURIComponent(n.realm):void 0}function m(e,t){var r=e.code,o=e.error,i=e.prompt,s=(new Date).getTime();if(e.kc_action_status&&n.onActionUpdate&&n.onActionUpdate(e.kc_action_status),o)if("none"!=i)if(e.error_description&&"authentication_expired"===e.error_description)n.login(e.loginOptions);else{var a={error:o,error_description:e.error_description};n.onAuthError&&n.onAuthError(a),t&&t.setError(a)}else t&&t.setSuccess();else if("standard"!=n.flow&&(e.access_token||e.id_token)&&f(e.access_token,null,e.id_token,!0),"implicit"!=n.flow&&r){var l="code="+r+"&grant_type=authorization_code",d=n.endpoints.token(),h=new XMLHttpRequest;h.open("POST",d,!0),h.setRequestHeader("Content-type","application/x-www-form-urlencoded"),l+="&client_id="+encodeURIComponent(n.clientId),l+="&redirect_uri="+e.redirectUri,e.pkceCodeVerifier&&(l+="&code_verifier="+e.pkceCodeVerifier),h.withCredentials=!0,h.onreadystatechange=function(){if(4==h.readyState)if(200==h.status){var e=JSON.parse(h.responseText);f(e.access_token,e.refresh_token,e.id_token,"standard"===n.flow),A()}else n.onAuthError&&n.onAuthError(),t&&t.setError()},h.send(l)}function f(r,o,i,a){v(r,o,i,s=(s+(new Date).getTime())/2),c&&n.idTokenParsed&&n.idTokenParsed.nonce!=e.storedNonce?(u("[KEYCLOAK] Invalid nonce, clearing token"),n.clearToken(),t&&t.setError()):a&&(n.onAuthSuccess&&n.onAuthSuccess(),t&&t.setSuccess())}}function g(e){return 0==e.status&&e.responseText&&e.responseURL.startsWith("file:")}function v(e,t,r,o){if(n.tokenTimeoutHandle&&(clearTimeout(n.tokenTimeoutHandle),n.tokenTimeoutHandle=null),t?(n.refreshToken=t,n.refreshTokenParsed=k(t)):(delete n.refreshToken,delete n.refreshTokenParsed),r?(n.idToken=r,n.idTokenParsed=k(r)):(delete n.idToken,delete n.idTokenParsed),e){if(n.token=e,n.tokenParsed=k(e),n.sessionId=n.tokenParsed.sid,n.authenticated=!0,n.subject=n.tokenParsed.sub,n.realmAccess=n.tokenParsed.realm_access,n.resourceAccess=n.tokenParsed.resource_access,o&&(n.timeSkew=Math.floor(o/1e3)-n.tokenParsed.iat),null!=n.timeSkew&&(u("[KEYCLOAK] Estimated time difference between browser and server is "+n.timeSkew+" seconds"),n.onTokenExpired)){var i=1e3*(n.tokenParsed.exp-(new Date).getTime()/1e3+n.timeSkew);u("[KEYCLOAK] Token expires in "+Math.round(i/1e3)+" s"),i<=0?n.onTokenExpired():n.tokenTimeoutHandle=setTimeout(n.onTokenExpired,i)}}else delete n.token,delete n.tokenParsed,delete n.subject,delete n.realmAccess,delete n.resourceAccess,n.authenticated=!1}function y(){var e="0123456789abcdef",t=d(36,e).split("");return t[14]="4",t[19]=e.substr(3&t[19]|8,1),t[8]=t[13]=t[18]=t[23]="-",t.join("")}function b(e){var t=function(e){var t;switch(n.flow){case"standard":t=["code","state","session_state","kc_action_status","iss"];break;case"implicit":t=["access_token","token_type","id_token","state","session_state","expires_in","kc_action_status","iss"];break;case"hybrid":t=["access_token","token_type","id_token","code","state","session_state","expires_in","kc_action_status","iss"]}t.push("error"),t.push("error_description"),t.push("error_uri");var r,o,i=e.indexOf("?"),s=e.indexOf("#");"query"===n.responseMode&&-1!==i?(r=e.substring(0,i),""!==(o=S(e.substring(i+1,-1!==s?s:e.length),t)).paramsString&&(r+="?"+o.paramsString),-1!==s&&(r+=e.substring(s))):"fragment"===n.responseMode&&-1!==s&&(r=e.substring(0,s),""!==(o=S(e.substring(s+1),t)).paramsString&&(r+="#"+o.paramsString));if(o&&o.oauthParams)if("standard"===n.flow||"hybrid"===n.flow){if((o.oauthParams.code||o.oauthParams.error)&&o.oauthParams.state)return o.oauthParams.newUrl=r,o.oauthParams}else if("implicit"===n.flow&&(o.oauthParams.access_token||o.oauthParams.error)&&o.oauthParams.state)return o.oauthParams.newUrl=r,o.oauthParams}(e);if(t){var o=r.get(t.state);return o&&(t.valid=!0,t.redirectUri=o.redirectUri,t.storedNonce=o.nonce,t.prompt=o.prompt,t.pkceCodeVerifier=o.pkceCodeVerifier,t.loginOptions=o.loginOptions),t}}function S(e,t){for(var r=e.split("&"),n={paramsString:"",oauthParams:{}},o=0;o<r.length;o++){var i=r[o].indexOf("="),s=r[o].slice(0,i);-1!==t.indexOf(s)?n.oauthParams[s]=r[o].slice(i+1):(""!==n.paramsString&&(n.paramsString+="&"),n.paramsString+=r[o])}return n}function _(){var e={setSuccess:function(t){e.resolve(t)},setError:function(t){e.reject(t)}};return e.promise=new Promise(function(t,r){e.resolve=t,e.reject=r}),e}function U(){var e=_();if(!i.enable)return e.setSuccess(),e.promise;if(i.iframe)return e.setSuccess(),e.promise;var t=document.createElement("iframe");i.iframe=t,t.onload=function(){var t=n.endpoints.authorize();"/"===t.charAt(0)?i.iframeOrigin=window.location.origin?window.location.origin:window.location.protocol+"//"+window.location.hostname+(window.location.port?":"+window.location.port:""):i.iframeOrigin=t.substring(0,t.indexOf("/",8)),e.setSuccess()};var r=n.endpoints.checkSessionIframe();t.setAttribute("src",r),t.setAttribute("sandbox","allow-storage-access-by-user-activation allow-scripts allow-same-origin"),t.setAttribute("title","keycloak-session-iframe"),t.style.display="none",document.body.appendChild(t);return window.addEventListener("message",function(e){if(e.origin===i.iframeOrigin&&i.iframe.contentWindow===e.source&&("unchanged"==e.data||"changed"==e.data||"error"==e.data)){"unchanged"!=e.data&&n.clearToken();for(var t=i.callbackList.splice(0,i.callbackList.length),r=t.length-1;r>=0;--r){var o=t[r];"error"==e.data?o.setError():o.setSuccess("unchanged"==e.data)}}},!1),e.promise}function A(){i.enable&&n.token&&setTimeout(function(){E().then(function(e){e&&A()})},1e3*i.interval)}function E(){var e=_();if(i.iframe&&i.iframeOrigin){var t=n.clientId+" "+(n.sessionId?n.sessionId:"");i.callbackList.push(e);var r=i.iframeOrigin;1==i.callbackList.length&&i.iframe.contentWindow.postMessage(t,r)}else e.setSuccess();return e.promise}function T(){var e=_();if(i.enable||n.silentCheckSsoRedirectUri){var t=document.createElement("iframe");t.setAttribute("src",n.endpoints.thirdPartyCookiesIframe()),t.setAttribute("sandbox","allow-storage-access-by-user-activation allow-scripts allow-same-origin"),t.setAttribute("title","keycloak-3p-check-iframe"),t.style.display="none",document.body.appendChild(t);var r=function(o){t.contentWindow===o.source&&("supported"!==o.data&&"unsupported"!==o.data||("unsupported"===o.data&&(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\nFor more information see: https://www.keycloak.org/docs/latest/securing_apps/#_modern_browsers"),i.enable=!1,n.silentCheckSsoFallback&&(n.silentCheckSsoRedirectUri=!1)),document.body.removeChild(t),window.removeEventListener("message",r),e.setSuccess()))};window.addEventListener("message",r,!1)}else e.setSuccess();return function(e,t,r){var n=null,o=new Promise(function(e,o){n=setTimeout(function(){o({error:r})},t)});return Promise.race([e,o]).finally(function(){clearTimeout(n)})}(e.promise,n.messageReceiveTimeout,"Timeout when waiting for 3rd party check iframe message.")}function I(e){if(!e||"default"==e)return{login:function(e){return window.location.assign(n.createLoginUrl(e)),_().promise},logout:async function(e){if("GET"===(e?.logoutMethod??n.logoutMethod))return void window.location.replace(n.createLogoutUrl(e));const r=n.createLogoutUrl(e),o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({id_token_hint:n.idToken,client_id:n.clientId,post_logout_redirect_uri:t.redirectUri(e,!1)})});if(o.redirected)window.location.href=o.url;else{if(!o.ok)throw new Error("Logout failed, request returned an error code.");window.location.reload()}},register:function(e){return window.location.assign(n.createRegisterUrl(e)),_().promise},accountManagement:function(){var e=n.createAccountUrl();if(void 0===e)throw"Not supported by the OIDC server";return window.location.href=e,_().promise},redirectUri:function(e,t){return e&&e.redirectUri?e.redirectUri:n.redirectUri?n.redirectUri:location.href}};if("cordova"==e){i.enable=!1;var r=function(e,t,r){return window.cordova&&window.cordova.InAppBrowser?window.cordova.InAppBrowser.open(e,t,r):window.open(e,t,r)},o=function(e){var t=function(e){return e&&e.cordovaOptions?Object.keys(e.cordovaOptions).reduce(function(t,r){return t[r]=e.cordovaOptions[r],t},{}):{}}(e);return t.location="no",e&&"none"==e.prompt&&(t.hidden="yes"),function(e){return Object.keys(e).reduce(function(t,r){return t.push(r+"="+e[r]),t},[]).join(",")}(t)},s=function(){return n.redirectUri||"http://localhost"};return{login:function(e){var t=_(),i=o(e),a=r(n.createLoginUrl(e),"_blank",i),c=!1,u=!1,l=function(){u=!0,a.close()};return a.addEventListener("loadstart",function(e){0==e.url.indexOf(s())&&(m(b(e.url),t),l(),c=!0)}),a.addEventListener("loaderror",function(e){c||(0==e.url.indexOf(s())?(m(b(e.url),t),l(),c=!0):(t.setError(),l()))}),a.addEventListener("exit",function(e){u||t.setError({reason:"closed_by_user"})}),t.promise},logout:function(e){var t,o=_(),i=r(n.createLogoutUrl(e),"_blank","location=no,hidden=yes,clearcache=yes");return i.addEventListener("loadstart",function(e){0==e.url.indexOf(s())&&i.close()}),i.addEventListener("loaderror",function(e){0==e.url.indexOf(s())||(t=!0),i.close()}),i.addEventListener("exit",function(e){t?o.setError():(n.clearToken(),o.setSuccess())}),o.promise},register:function(e){var t=_(),i=r(n.createRegisterUrl(),"_blank",o(e));return i.addEventListener("loadstart",function(e){0==e.url.indexOf(s())&&(i.close(),m(b(e.url),t))}),t.promise},accountManagement:function(){var e=n.createAccountUrl();if(void 0===e)throw"Not supported by the OIDC server";var t=r(e,"_blank","location=no");t.addEventListener("loadstart",function(e){0==e.url.indexOf(s())&&t.close()})},redirectUri:function(e){return s()}}}if("cordova-native"==e)return i.enable=!1,{login:function(e){var t=_(),r=n.createLoginUrl(e);return universalLinks.subscribe("keycloak",function(e){universalLinks.unsubscribe("keycloak"),window.cordova.plugins.browsertab.close(),m(b(e.url),t)}),window.cordova.plugins.browsertab.openUrl(r),t.promise},logout:function(e){var t=_(),r=n.createLogoutUrl(e);return universalLinks.subscribe("keycloak",function(e){universalLinks.unsubscribe("keycloak"),window.cordova.plugins.browsertab.close(),n.clearToken(),t.setSuccess()}),window.cordova.plugins.browsertab.openUrl(r),t.promise},register:function(e){var t=_(),r=n.createRegisterUrl(e);return universalLinks.subscribe("keycloak",function(e){universalLinks.unsubscribe("keycloak"),window.cordova.plugins.browsertab.close(),m(b(e.url),t)}),window.cordova.plugins.browsertab.openUrl(r),t.promise},accountManagement:function(){var e=n.createAccountUrl();if(void 0===e)throw"Not supported by the OIDC server";window.cordova.plugins.browsertab.openUrl(e)},redirectUri:function(e){return e&&e.redirectUri?e.redirectUri:n.redirectUri?n.redirectUri:"http://localhost"}};throw"invalid adapter type: "+e}n.init=function(o){if(n.didInitialize)throw new Error("A 'Keycloak' instance can only be initialized once.");if(n.didInitialize=!0,n.authenticated=!1,r=function(){try{return new O}catch(e){}return new C}(),t=o&&["default","cordova","cordova-native"].indexOf(o.adapter)>-1?I(o.adapter):o&&"object"==typeof o.adapter?o.adapter:window.Cordova||window.cordova?I("cordova"):I(),o){if(void 0!==o.useNonce&&(c=o.useNonce),void 0!==o.checkLoginIframe&&(i.enable=o.checkLoginIframe),o.checkLoginIframeInterval&&(i.interval=o.checkLoginIframeInterval),"login-required"===o.onLoad&&(n.loginRequired=!0),o.responseMode){if("query"!==o.responseMode&&"fragment"!==o.responseMode)throw"Invalid value for responseMode";n.responseMode=o.responseMode}if(o.flow){switch(o.flow){case"standard":n.responseType="code";break;case"implicit":n.responseType="id_token token";break;case"hybrid":n.responseType="code id_token token";break;default:throw"Invalid value for flow"}n.flow=o.flow}if(null!=o.timeSkew&&(n.timeSkew=o.timeSkew),o.redirectUri&&(n.redirectUri=o.redirectUri),o.silentCheckSsoRedirectUri&&(n.silentCheckSsoRedirectUri=o.silentCheckSsoRedirectUri),"boolean"==typeof o.silentCheckSsoFallback?n.silentCheckSsoFallback=o.silentCheckSsoFallback:n.silentCheckSsoFallback=!0,void 0!==o.pkceMethod){if("S256"!==o.pkceMethod&&!1!==o.pkceMethod)throw new TypeError(`Invalid value for pkceMethod', expected 'S256' or false but got ${o.pkceMethod}.`);n.pkceMethod=o.pkceMethod}else n.pkceMethod="S256";"boolean"==typeof o.enableLogging?n.enableLogging=o.enableLogging:n.enableLogging=!1,"POST"===o.logoutMethod?n.logoutMethod="POST":n.logoutMethod="GET","string"==typeof o.scope&&(n.scope=o.scope),"string"==typeof o.acrValues&&(n.acrValues=o.acrValues),"number"==typeof o.messageReceiveTimeout&&o.messageReceiveTimeout>0?n.messageReceiveTimeout=o.messageReceiveTimeout:n.messageReceiveTimeout=1e4}n.responseMode||(n.responseMode="fragment"),n.responseType||(n.responseType="code",n.flow="standard");var s=_(),a=_();a.promise.then(function(){n.onReady&&n.onReady(n.authenticated),s.setSuccess(n.authenticated)}).catch(function(e){s.setError(e)});var u=function(){var t,r=_();e?"string"==typeof e&&(t=e):t="keycloak.json";function o(e){n.endpoints=e?{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}}:{authorize:function(){return f()+"/protocol/openid-connect/auth"},token:function(){return f()+"/protocol/openid-connect/token"},logout:function(){return f()+"/protocol/openid-connect/logout"},checkSessionIframe:function(){var e=f()+"/protocol/openid-connect/login-status-iframe.html";return n.iframeVersion&&(e=e+"?version="+n.iframeVersion),e},thirdPartyCookiesIframe:function(){var e=f()+"/protocol/openid-connect/3p-cookies/step1.html";return n.iframeVersion&&(e=e+"?version="+n.iframeVersion),e},register:function(){return f()+"/protocol/openid-connect/registrations"},userinfo:function(){return f()+"/protocol/openid-connect/userinfo"}}}if(t){(a=new XMLHttpRequest).open("GET",t,!0),a.setRequestHeader("Accept","application/json"),a.onreadystatechange=function(){if(4==a.readyState)if(200==a.status||g(a)){var e=JSON.parse(a.responseText);n.authServerUrl=e["auth-server-url"],n.realm=e.realm,n.clientId=e.resource,o(null),r.setSuccess()}else r.setError()},a.send()}else{if(!e.clientId)throw"clientId missing";n.clientId=e.clientId;var i=e.oidcProvider;if(i)if("string"==typeof i){var s,a;s="/"==i.charAt(i.length-1)?i+".well-known/openid-configuration":i+"/.well-known/openid-configuration",(a=new XMLHttpRequest).open("GET",s,!0),a.setRequestHeader("Accept","application/json"),a.onreadystatechange=function(){4==a.readyState&&(200==a.status||g(a)?(o(JSON.parse(a.responseText)),r.setSuccess()):r.setError())},a.send()}else o(i),r.setSuccess();else{if(!e.url)for(var c=document.getElementsByTagName("script"),u=0;u<c.length;u++)if(c[u].src.match(/.*keycloak\.js/)){e.url=c[u].src.substr(0,c[u].src.indexOf("/js/keycloak.js"));break}if(!e.realm)throw"realm missing";n.authServerUrl=e.url,n.realm=e.realm,o(null),r.setSuccess()}}return r.promise}();function l(){var e=function(e){e||(r.prompt="none"),o&&o.locale&&(r.locale=o.locale),n.login(r).then(function(){a.setSuccess()}).catch(function(e){a.setError(e)})},t=function(){var e=document.createElement("iframe"),t=n.createLoginUrl({prompt:"none",redirectUri:n.silentCheckSsoRedirectUri});e.setAttribute("src",t),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){t.origin===window.location.origin&&e.contentWindow===t.source&&(m(b(t.data),a),document.body.removeChild(e),window.removeEventListener("message",r))};window.addEventListener("message",r)},r={};switch(o.onLoad){case"check-sso":i.enable?U().then(function(){E().then(function(r){r?a.setSuccess():n.silentCheckSsoRedirectUri?t():e(!1)}).catch(function(e){a.setError(e)})}):n.silentCheckSsoRedirectUri?t():e(!1);break;case"login-required":e(!0);break;default:throw"Invalid value for onLoad"}}function d(){var e=b(window.location.href);if(e&&window.history.replaceState(window.history.state,null,e.newUrl),e&&e.valid)return U().then(function(){m(e,a)}).catch(function(e){a.setError(e)});o?o.token&&o.refreshToken?(v(o.token,o.refreshToken,o.idToken),i.enable?U().then(function(){E().then(function(e){e?(n.onAuthSuccess&&n.onAuthSuccess(),a.setSuccess(),A()):a.setSuccess()}).catch(function(e){a.setError(e)})}):n.updateToken(-1).then(function(){n.onAuthSuccess&&n.onAuthSuccess(),a.setSuccess()}).catch(function(e){n.onAuthError&&n.onAuthError(),o.onLoad?l():a.setError(e)})):o.onLoad?l():a.setSuccess():a.setSuccess()}return u.then(function(){(function(){var e=_(),t=function(){"interactive"!==document.readyState&&"complete"!==document.readyState||(document.removeEventListener("readystatechange",t),e.setSuccess())};return document.addEventListener("readystatechange",t),t(),e.promise})().then(T).then(d).catch(function(e){s.setError(e)})}),u.catch(function(e){s.setError(e)}),s.promise},n.login=function(e){return t.login(e)},n.createLoginUrl=function(e){var o,i=y(),s=y(),a=t.redirectUri(e),u={state:i,nonce:s,redirectUri:encodeURIComponent(a),loginOptions:e};e&&e.prompt&&(u.prompt=e.prompt),o=e&&"register"==e.action?n.endpoints.register():n.endpoints.authorize();var l=e&&e.scope||n.scope;l?-1===l.indexOf("openid")&&(l="openid "+l):l="openid";var f,p=o+"?client_id="+encodeURIComponent(n.clientId)+"&redirect_uri="+encodeURIComponent(a)+"&state="+encodeURIComponent(i)+"&response_mode="+encodeURIComponent(n.responseMode)+"&response_type="+encodeURIComponent(n.responseType)+"&scope="+encodeURIComponent(l);if(c&&(p=p+"&nonce="+encodeURIComponent(s)),e&&e.prompt&&(p+="&prompt="+encodeURIComponent(e.prompt)),e&&e.maxAge&&(p+="&max_age="+encodeURIComponent(e.maxAge)),e&&e.loginHint&&(p+="&login_hint="+encodeURIComponent(e.loginHint)),e&&e.idpHint&&(p+="&kc_idp_hint="+encodeURIComponent(e.idpHint)),e&&e.action&&"register"!=e.action&&(p+="&kc_action="+encodeURIComponent(e.action)),e&&e.locale&&(p+="&ui_locales="+encodeURIComponent(e.locale)),e&&e.acr){var m=(f=e.acr,JSON.stringify({id_token:{acr:f}}));p+="&claims="+encodeURIComponent(m)}if((e&&e.acrValues||n.acrValues)&&(p+="&acr_values="+encodeURIComponent(e.acrValues||n.acrValues)),n.pkceMethod){var g=d(96,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789");u.pkceCodeVerifier=g,p+="&code_challenge="+h(n.pkceMethod,g),p+="&code_challenge_method="+n.pkceMethod}return r.add(u),p},n.logout=function(e){return t.logout(e)},n.createLogoutUrl=function(e){if("POST"===(e?.logoutMethod??n.logoutMethod))return n.endpoints.logout();var r=n.endpoints.logout()+"?client_id="+encodeURIComponent(n.clientId)+"&post_logout_redirect_uri="+encodeURIComponent(t.redirectUri(e,!1));return n.idToken&&(r+="&id_token_hint="+encodeURIComponent(n.idToken)),r},n.register=function(e){return t.register(e)},n.createRegisterUrl=function(e){return e||(e={}),e.action="register",n.createLoginUrl(e)},n.createAccountUrl=function(e){var r=f(),o=void 0;return void 0!==r&&(o=r+"/account?referrer="+encodeURIComponent(n.clientId)+"&referrer_uri="+encodeURIComponent(t.redirectUri(e))),o},n.accountManagement=function(){return t.accountManagement()},n.hasRealmRole=function(e){var t=n.realmAccess;return!!t&&t.roles.indexOf(e)>=0},n.hasResourceRole=function(e,t){if(!n.resourceAccess)return!1;var r=n.resourceAccess[t||n.clientId];return!!r&&r.roles.indexOf(e)>=0},n.loadUserProfile=function(){var e=f()+"/account",t=new XMLHttpRequest;t.open("GET",e,!0),t.setRequestHeader("Accept","application/json"),t.setRequestHeader("Authorization","bearer "+n.token);var r=_();return t.onreadystatechange=function(){4==t.readyState&&(200==t.status?(n.profile=JSON.parse(t.responseText),r.setSuccess(n.profile)):r.setError())},t.send(),r.promise},n.loadUserInfo=function(){var e=n.endpoints.userinfo(),t=new XMLHttpRequest;t.open("GET",e,!0),t.setRequestHeader("Accept","application/json"),t.setRequestHeader("Authorization","bearer "+n.token);var r=_();return t.onreadystatechange=function(){4==t.readyState&&(200==t.status?(n.userInfo=JSON.parse(t.responseText),r.setSuccess(n.userInfo)):r.setError())},t.send(),r.promise},n.isTokenExpired=function(e){if(!n.tokenParsed||!n.refreshToken&&"implicit"!=n.flow)throw"Not authenticated";if(null==n.timeSkew)return u("[KEYCLOAK] Unable to determine if token is expired as timeskew is not set"),!0;var t=n.tokenParsed.exp-Math.ceil((new Date).getTime()/1e3)+n.timeSkew;if(e){if(isNaN(e))throw"Invalid minValidity";t-=e}return t<0},n.updateToken=function(e){var t=_();if(!n.refreshToken)return t.setError(),t.promise;e=e||5;var r=function(){var r=!1;if(-1==e?(r=!0,u("[KEYCLOAK] Refreshing token: forced refresh")):n.tokenParsed&&!n.isTokenExpired(e)||(r=!0,u("[KEYCLOAK] Refreshing token: token expired")),r){var i="grant_type=refresh_token&refresh_token="+n.refreshToken,s=n.endpoints.token();if(o.push(t),1==o.length){var a=new XMLHttpRequest;a.open("POST",s,!0),a.setRequestHeader("Content-type","application/x-www-form-urlencoded"),a.withCredentials=!0,i+="&client_id="+encodeURIComponent(n.clientId);var c=(new Date).getTime();a.onreadystatechange=function(){if(4==a.readyState)if(200==a.status){u("[KEYCLOAK] Token refreshed"),c=(c+(new Date).getTime())/2;var e=JSON.parse(a.responseText);v(e.access_token,e.refresh_token,e.id_token,c),n.onAuthRefreshSuccess&&n.onAuthRefreshSuccess();for(var t=o.pop();null!=t;t=o.pop())t.setSuccess(!0)}else{l("[KEYCLOAK] Failed to refresh token"),400==a.status&&n.clearToken(),n.onAuthRefreshError&&n.onAuthRefreshError();for(t=o.pop();null!=t;t=o.pop())t.setError(!0)}},a.send(i)}}else t.setSuccess(!1)};return i.enable?E().then(function(){r()}).catch(function(e){t.setError(e)}):r(),t.promise},n.clearToken=function(){n.token&&(v(null,null,null),n.onAuthLogout&&n.onAuthLogout(),n.loginRequired&&n.login())};var O=function(){if(!(this instanceof O))return new O;localStorage.setItem("kc-test","test"),localStorage.removeItem("kc-test");function e(){for(var e=(new Date).getTime(),t=0;t<localStorage.length;t++){var r=localStorage.key(t);if(r&&0==r.indexOf("kc-callback-")){var n=localStorage.getItem(r);if(n)try{var o=JSON.parse(n).expires;(!o||o<e)&&localStorage.removeItem(r)}catch(i){localStorage.removeItem(r)}}}}this.get=function(t){if(t){var r="kc-callback-"+t,n=localStorage.getItem(r);return n&&(localStorage.removeItem(r),n=JSON.parse(n)),e(),n}},this.add=function(t){e();var r="kc-callback-"+t.state;t.expires=(new Date).getTime()+36e5,localStorage.setItem(r,JSON.stringify(t))}},C=function(){if(!(this instanceof C))return new C;var e=this;e.get=function(e){if(e){var o=r("kc-callback-"+e);return n("kc-callback-"+e,"",t(-100)),o?JSON.parse(o):void 0}},e.add=function(e){n("kc-callback-"+e.state,JSON.stringify(e),t(60))},e.removeItem=function(e){n(e,"",t(-100))};var t=function(e){var t=new Date;return t.setTime(t.getTime()+60*e*1e3),t},r=function(e){for(var t=e+"=",r=document.cookie.split(";"),n=0;n<r.length;n++){for(var o=r[n];" "==o.charAt(0);)o=o.substring(1);if(0==o.indexOf(t))return o.substring(t.length,o.length)}return""},n=function(e,t,r){var n=e+"="+t+"; expires="+r.toUTCString()+"; ";document.cookie=n}};function R(e){return function(){n.enableLogging&&e.apply(console,Array.prototype.slice.call(arguments))}}}var v="/login/callback",y="studio-chat:login-target";function b(e,t){return"string"==typeof e[t]?e[t]:void 0}var S=new class{client;dev=!1;devToken;profile;refreshPromise;refreshForced=!1;get origin(){return window.location.origin}get keycloak(){if(!this.client)throw new Error("[studio-chat] auth used before init()");return this.client}async init(e){if(e.dev)return this.dev=!0,this.devToken=e.devToken,this.devToken||console.warn("[studio-chat] settings.dev is set but devToken is missing"),!0;if(!e.keycloak)throw new Error("[studio-chat] settings.keycloak is missing");this.client=new w(e.keycloak);const t=window.location.pathname===v;return await this.keycloak.init({onLoad:"check-sso",flow:"standard",pkceMethod:"S256",scope:"profile email"})?(this.profile=this.loadProfile(),!t||this.restoreLoginTarget()):(sessionStorage.setItem(y,window.location.pathname+window.location.search),await this.keycloak.login({redirectUri:`${this.origin}${v}`}),!1)}async refreshToken(e=!1){if(this.dev)return this.devToken??"";if(!this.keycloak.authenticated)throw new Error("[studio-chat] not authenticated");if(this.refreshPromise){if(!e||this.refreshForced)return this.refreshPromise;try{await this.refreshPromise}catch{}return this.refreshToken(!0)}const t=this.keycloak.updateToken(e?-1:30).then(()=>{if(!this.keycloak.token)throw new Error("[studio-chat] Keycloak returned no access token");return this.keycloak.token});this.refreshPromise=t,this.refreshForced=e;try{return await t}finally{this.refreshPromise===t&&(this.refreshPromise=void 0,this.refreshForced=!1)}}getToken(e=!1){return this.refreshToken(e)}getProfile(){return this.profile}loadProfile(){const e=this.keycloak.tokenParsed;if("object"!=typeof(t=e)||null===t)return;var t;const r=b(e,"sub");return r?{id:r,prename:b(e,"given_name"),lastname:b(e,"family_name"),name:b(e,"name")??b(e,"preferred_username"),email:b(e,"email")}:void 0}restoreLoginTarget(){const e=(t=sessionStorage.getItem(y)??void 0)&&t!==v?"/"!==t[0]||"/"===t[1]||"\\"===t[1]?"/":t:"/";var t;return sessionStorage.removeItem(y),"/"!==e?(window.location.replace(e),!1):(window.history.replaceState({},document.title,"/"),!0)}logout(){this.dev?window.location.reload():this.keycloak.logout({redirectUri:this.origin})}},_={},U=function(e,t,r){let n=Promise.resolve();if(t&&t.length>0){const e=document.getElementsByTagName("link"),r=document.querySelector("meta[property=csp-nonce]"),i=r?.nonce||r?.getAttribute("nonce");o=t.map(t=>{var r;if(t=function(e){return"/"+e}(t),r=t,(t=import.meta.resolve?import.meta.resolve(r):new URL(r,import.meta.url).href)in _)return;_[t]=!0;const n=t.endsWith(".css");for(let i=e.length-1;i>=0;i--){const r=e[i];if(r.href===t&&(!n||"stylesheet"===r.rel))return}const o=document.createElement("link");return o.rel=n?"stylesheet":"modulepreload",n||(o.as="script"),o.crossOrigin="",o.href=t,i&&o.setAttribute("nonce",i),document.head.appendChild(o),n?new Promise((e,r)=>{o.addEventListener("load",e),o.addEventListener("error",()=>r(new Error(`Unable to preload CSS for ${t}`)))}):void 0}),n=Promise.all(o.map(e=>Promise.resolve(e).then(e=>({status:"fulfilled",value:e}),e=>({status:"rejected",reason:e}))))}var o;function i(e){const t=new Event("vite:preloadError",{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return n.then(t=>{for(const e of t||[])"rejected"===e.status&&i(e.reason);return e().catch(i)})};export{s as a,h as i,S as n,a as o,d as r,c as s,U as t};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/support-agent-
|
|
2
|
-
import{i as t,n as e,r as n,t as o}from"./preload-helper-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/support-agent-CTl6KCJE.js","assets/preload-helper-OSX1TyOM.js","assets/loadFonts-DmNZ8tPj.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{i as t,n as e,r as n,t as o}from"./preload-helper-OSX1TyOM.js";var a="#app";async function r(n){await o(()=>import("./support-agent-CTl6KCJE.js"),__vite__mapDeps([0,1,2]));const r=document.createElement("lilaquadrat-studio-support");r.config={...t(n),token:await e.getToken(),getToken:t=>e.getToken(t),user:e.getProfile(),close:()=>e.logout()},function(){const t=document.querySelector(a);if(!t)throw new Error(`mount target ${a} not found`);return t}().replaceChildren(r)}(async function(){const t=await n();t.title&&(document.title=t.title),await e.init(t)&&await r(t)})().catch(function(t){const e=t instanceof Error?t.message:String(t);console.error("[studio-chat] standalone support boot failed",t);const n=document.querySelector(a);if(!n)return;const o=document.createElement("div");o.className="standalone-error",o.innerHTML="<h1>Support console unavailable</h1>",o.appendChild(Object.assign(document.createElement("p"),{textContent:e})),n.replaceChildren(o)});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as t}from"./preload-helper-B46Frp_x.js";import{$ as e,A as a,B as s,C as o,D as r,H as n,I as i,J as l,L as c,M as d,O as u,Q as p,R as m,U as v,V as f,W as g,X as h,Y as y,Z as b,_ as w,a as x,at as k,b as _,c as C,d as M,et as S,f as z,g as $,h as A,i as I,it as O,k as V,l as j,m as N,n as D,nt as L,o as R,p as q,r as E,rt as F,t as T,v as U,w as B,z as H}from"./loadFonts-BWquVJC2.js";var J=t(V(),1),Q=t(u(),1),W=["aria-label"],X=j(g({__name:"support-status-filter.partial",setup(t){const e=N(),a=["all",...$];return(t,s)=>{const o=p("button-partial");return h(),f("nav",{class:"status-filters","aria-label":t.$t("supportStatus.filter")},[(h(),f(i,null,b(a,a=>v(o,{key:a,size:"sm",variant:F(e).statusFilter===a?"primary":"ghost",onClick:t=>{return s=a,void e.setStatusFilter(s);var s}},{default:S(()=>[n(k(t.$t(`supportStatus.${a}`)),1)]),_:2},1032,["variant","onClick"])),64))],8,W)}}}),[["styles",[".status-filters[data-v-d6a8b4d3]{border-bottom:1px solid var(--scm-color-highlight);flex-wrap:wrap;display:flex}"]],["__scopeId","data-v-d6a8b4d3"]]),Y=j(g({__name:"support-sla.partial",props:{sla:{type:[Object,null]},status:{type:null},statusVersion:{type:Number},now:{type:Number}},setup(t){const e=t,a=c(()=>{if("awaiting_agent"!==e.status||!e.sla||e.sla.stoppedAt||e.sla.status!==e.status||e.sla.statusVersion!==e.statusVersion)return;const t=new Date(e.sla.endAt).getTime();return Number.isNaN(t)?void 0:t-e.now}),o=c(()=>"number"==typeof a.value&&a.value<=0),r=c(()=>{if(void 0===a.value)return"";const t=Math.max(1,Math.ceil(Math.abs(a.value)/6e4)),e=Math.floor(t/1440),s=Math.floor(t%1440/60),o=t%60;return e?`${e}d ${s}h`:s?`${s}h ${o}m`:`${o}m`});return(t,e)=>void 0!==a.value?(h(),f("span",{key:0,class:O(["support-sla",{overdue:o.value}])},k(t.$t(o.value?"sla.overdue":"sla.due",{time:r.value})),3)):s("",!0)}}),[["styles",[".support-sla[data-v-bd4c02b8]{color:var(--scm-color-muted);font-size:.75em}.support-sla.overdue[data-v-bd4c02b8]{color:var(--scm-color-danger);font-weight:600}"]],["__scopeId","data-v-bd4c02b8"]]),Z={class:"conversations-module"},G=["onClick"],K={class:"row-heading"},P={class:"time"},tt={class:"message-unread-container"},et={key:0,class:"lastMessage"},at={key:2,class:"unread"},st={key:0,class:"load-more"};function ot(t,e){const a={...t,features:["support"]};delete a.getUsers,I(a,e)}var rt=[{name:"conversations",component:j(g({__name:"support-conversations.module",emits:["close"],setup(t){const a=N(),o=A(),r=U(),d=B(),{triggerEvent:u}=M(),g=L(Date.now());let x;l(()=>{x=setInterval(()=>{g.value=Date.now()},3e4)}),y(()=>{x&&clearInterval(x)}),e(()=>d.user,t=>{t&&a.load()},{immediate:!0});const z=c(()=>o.activeConversation),$=c(()=>a.conversations.map(t=>({id:t._id||t.id,customer:I(_(t.participants)),lastMessage:t.lastMessage?.message,lastActivity:t.lastActivity||t.lastMessage?.history?.created,unread:t.unread,unreadCount:t.unreadCount,muted:!0===t.participant?.muted,supportStatus:w(t.supportStatus),supportStatusVersion:t.supportStatusVersion,sla:t.sla,isActive:(z.value?._id||z.value?.id)===(t._id||t.id)})));function I(t){if(!t?.id)return;const e=r.name(t.id);return e&&e!==t.id?e:t.email||t.id}return(t,e)=>{const r=p("icons-partial"),l=p("button-partial"),c=p("notice-partial");return h(),f("section",Z,[v(X),(h(!0),f(i,null,b($.value,e=>(h(),f("article",{key:e.id,class:O(["single-conversation",{active:e.isActive,unread:e.unread,muted:e.muted}]),role:"button",onClick:t=>{return a=e.id,o.activateConversation(a),void u("close");var a}},[m("section",K,[m("h3",null,[e.customer?(h(),f(i,{key:0},[n(k(e.customer),1)],64)):(h(),f(i,{key:1},[n(k(t.$t("customer")),1)],64))]),v(C,{status:e.supportStatus},null,8,["status"]),v(Y,{sla:e.sla,status:e.supportStatus,"status-version":e.supportStatusVersion,now:g.value+F(a).serverTimeOffsetMilliseconds},null,8,["sla","status","status-version","now"])]),m("span",P,k(F(J.default)(e.lastActivity).fromNow()),1),m("section",tt,[e.lastMessage?(h(),f("p",et,k(e.lastMessage),1)):s("",!0),e.muted?(h(),H(r,{key:1,type:"muted",size:"small","aria-label":t.$t("muted")},null,8,["aria-label"])):s("",!0),e.unread?(h(),f("span",at,k(e.unreadCount),1)):s("",!0)])],10,G))),128)),F(a).hasMore?(h(),f("section",st,[v(l,{variant:"ghost",onClick:F(a).loadMore},{default:S(()=>[n(k(t.$t("load more")),1)]),_:1},8,["onClick"])])):s("",!0),F(a).loaded&&!$.value.length?(h(),H(c,{key:1,type:"notice",class:"empty-conversations"},{default:S(()=>[n(k(t.$t("no conversations yet")),1)]),_:1})):s("",!0)])}}}),[["styles",[".conversations-module[data-v-f7970e9c]{grid-auto-rows:max-content;display:grid}.conversations-module .single-conversation[data-v-f7970e9c]{cursor:pointer;grid-template-columns:1fr 1fr;gap:5px;padding:20px;display:grid}.conversations-module .single-conversation h3[data-v-f7970e9c]{letter-spacing:-.1px;color:var(--scm-color-primary);font-family:Open Sans;font-weight:600}.conversations-module .single-conversation .time[data-v-f7970e9c]{justify-self:end}.conversations-module .single-conversation .message-unread-container[data-v-f7970e9c]{grid-column:1/3;grid-template-columns:1fr max-content max-content;align-items:center;gap:5px;display:grid}.conversations-module .single-conversation .message-unread-container .lastMessage[data-v-f7970e9c]{white-space:nowrap;text-overflow:ellipsis;color:var(--scm-color-text);overflow:hidden}.conversations-module .single-conversation .message-unread-container .unread[data-v-f7970e9c]{border-radius:var(--scm-radius-lg);background-color:var(--scm-color-own);color:#fff;place-self:center end;padding:0 4px;font-size:.75em}.conversations-module .single-conversation[data-v-f7970e9c]:hover,.conversations-module .single-conversation.active[data-v-f7970e9c]{background-color:var(--scm-color-highlight)}.conversations-module .single-conversation.support[data-v-f7970e9c]{border-left:3px solid var(--scm-color-primary);font-weight:600}.conversations-module .single-conversation.muted .icon-partial[data-v-f7970e9c],.conversations-module .single-conversation.muted .unread[data-v-f7970e9c]{opacity:.5}.conversations-module .row-heading[data-v-f7970e9c]{gap:4px;min-width:0;display:grid}.conversations-module .load-more[data-v-f7970e9c]{justify-items:center;padding:10px 20px;display:grid}"]],["__scopeId","data-v-f7970e9c"]])}],nt=[{name:"support-left-target",component:j(g({__name:"support-left-target.partial",setup(t){const e=o(),a=c(()=>"conversations"===e.content.left||"mobile"!==e.viewMode&&!e.content.left);function r(){e.unsetContent("left")}return(t,o)=>{const n=p("conversations-module");return a.value?(h(),f("section",{key:0,class:O(["main-left-target",[F(e).viewMode,F(e).state]])},[v(n,{onClose:r})],2)):s("",!0)}}}),[["styles",[".main-left-target[data-v-4629b612]{background-color:var(--scm-color-surface);z-index:100;width:100%;height:calc(100% - 35px);position:absolute;top:35px;left:0;overflow:hidden}.main-left-target.desktop[data-v-4629b612],.main-left-target.tablet[data-v-4629b612]{top:unset;height:unset;position:relative}.main-left-target.disconnected[data-v-4629b612]{height:calc(100% - 55px);top:55px}"]],["__scopeId","data-v-4629b612"]])}];var it={class:"header"},lt={class:"main-target"},ct=j(g({__name:"SupportApp",props:{config:{type:Object}},setup(t){const e=t,a=o(),r=A(),n=N();q();const{viewMode:i}=D({config:()=>e.config,applyConfig:ot,onSessionRestored:()=>{n.reload().catch(()=>{})},onStarted:async()=>{await n.load(),r.readLastActiveConversation(),n.activateLastOrLatest(),a.setContent("conversations","left")}});function l(){a.unsetContent("left")}function c(){a.unsetContent("right")}return(t,e)=>{const o=p("actions-partial"),r=p("connection-status-partial"),n=p("support-left-target-partial"),d=p("chats-module"),u=p("main-right-target-partial"),g=p("error-notice-partial");return h(),f("div",{class:O(["studio-chat-root",[F(i),F(a).state]])},[m("section",it,[v(o,{onClose:c}),"disconnected"===F(a).state?(h(),H(r,{key:0})):s("",!0)]),v(n),m("section",lt,["chat"===F(a).content.main?(h(),H(d,{key:0,onClose:l})):s("",!0)]),v(u),v(g),e[0]||(e[0]=m("div",{class:"util"},null,-1))],2)}}}),[["styles",[".studio-chat-root[data-v-92390e6d]{--scm-font-size:16px;--scm-color-primary:#3f2d56;--scm-color-own:#533474;--scm-color-surface:#f9f9f9;--scm-color-subtle:#fcfcfc;--scm-color-shadow:#ccc;--scm-color-muted:#757474;--scm-color-danger:#ea624f;--scm-color-text:#555;--scm-color-highlight:hsl(from var(--scm-color-primary) h s 92%);--scm-radius:5px;--scm-radius-lg:8px;font-family:Open Sans,sans-serif;font-size:var(--scm-font-size)}#app[data-v-92390e6d]{height:100vh}.studio-chat-root[data-v-92390e6d]{grid-template-rows:35px 1fr;grid-template-columns:1fr;height:100%;display:grid}.studio-chat-root .header[data-v-92390e6d]{background-color:var(--scm-color-surface);grid-template-columns:max-content 1fr;align-content:center;display:grid}.studio-chat-root.disconnected[data-v-92390e6d]{grid-template-rows:55px 1fr}.studio-chat-root.disconnected .header[data-v-92390e6d]{grid-template-rows:35px 20px}.studio-chat-root.disconnected .header .connection-status[data-v-92390e6d]{grid-column:1/3}.studio-chat-root .conversations-module[data-v-92390e6d]{grid-column:1}.studio-chat-root .main-target[data-v-92390e6d]{height:100%;overflow:hidden}.studio-chat-root.desktop[data-v-92390e6d],.studio-chat-root.tablet[data-v-92390e6d]{grid-template-columns:350px 1fr}.studio-chat-root.desktop .header[data-v-92390e6d],.studio-chat-root.tablet .header[data-v-92390e6d]{grid-column:1/3}.studio-chat-root .chats-module[data-v-92390e6d]{grid-column:1}","*,:before,:after{box-sizing:border-box;background-repeat:no-repeat;margin:0;padding:0}*{min-width:0}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit;color:inherit}a{color:inherit;text-decoration:none}ul,ol{list-style:none}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}:host{--scm-font-size:16px;--scm-color-primary:#3f2d56;--scm-color-own:#533474;--scm-color-surface:#f9f9f9;--scm-color-subtle:#fcfcfc;--scm-color-shadow:#ccc;--scm-color-muted:#757474;--scm-color-danger:#ea624f;--scm-color-text:#555;--scm-color-highlight:hsl(from var(--scm-color-primary) h s 92%);--scm-radius:5px;--scm-radius-lg:8px;height:100%;font-family:Open Sans,sans-serif;font-size:var(--scm-font-size);display:block}"]],["__scopeId","data-v-92390e6d"]]);J.default.extend(Q.default),T();var dt=d(ct,{shadowRoot:!0,configureApp(t){const e=a();t.use(E,{selector:"lilaquadrat-studio-support"}),t.use(e),o(e).appRole="agent",t.use(r),function(t){z([...x,...rt],void 0,"module",t),z([...R,...nt],void 0,"partial",t)}(t)}});customElements.get("lilaquadrat-studio-support")||customElements.define("lilaquadrat-studio-support",dt);export{dt as LilaquadratStudioSupport};
|
|
1
|
+
import{s as t}from"./preload-helper-OSX1TyOM.js";import{$ as e,A as a,B as s,C as o,D as r,H as n,I as i,J as l,L as c,M as d,O as u,Q as p,R as m,U as v,V as f,W as g,X as h,Y as y,Z as b,_ as w,a as x,at as k,b as _,c as C,d as M,et as S,f as z,g as $,h as A,i as I,it as O,k as V,l as j,m as N,n as D,nt as L,o as R,p as q,r as E,rt as F,t as T,v as U,w as B,z as H}from"./loadFonts-DmNZ8tPj.js";var J=t(V(),1),Q=t(u(),1),W=["aria-label"],X=j(g({__name:"support-status-filter.partial",setup(t){const e=N(),a=["all",...$];return(t,s)=>{const o=p("button-partial");return h(),f("nav",{class:"status-filters","aria-label":t.$t("supportStatus.filter")},[(h(),f(i,null,b(a,a=>v(o,{key:a,size:"sm",variant:F(e).statusFilter===a?"primary":"ghost",onClick:t=>{return s=a,void e.setStatusFilter(s);var s}},{default:S(()=>[n(k(t.$t(`supportStatus.${a}`)),1)]),_:2},1032,["variant","onClick"])),64))],8,W)}}}),[["styles",[".status-filters[data-v-d6a8b4d3]{border-bottom:1px solid var(--scm-color-highlight);flex-wrap:wrap;display:flex}"]],["__scopeId","data-v-d6a8b4d3"]]),Y=j(g({__name:"support-sla.partial",props:{sla:{type:[Object,null]},status:{type:null},statusVersion:{type:Number},now:{type:Number}},setup(t){const e=t,a=c(()=>{if("awaiting_agent"!==e.status||!e.sla||e.sla.stoppedAt||e.sla.status!==e.status||e.sla.statusVersion!==e.statusVersion)return;const t=new Date(e.sla.endAt).getTime();return Number.isNaN(t)?void 0:t-e.now}),o=c(()=>"number"==typeof a.value&&a.value<=0),r=c(()=>{if(void 0===a.value)return"";const t=Math.max(1,Math.ceil(Math.abs(a.value)/6e4)),e=Math.floor(t/1440),s=Math.floor(t%1440/60),o=t%60;return e?`${e}d ${s}h`:s?`${s}h ${o}m`:`${o}m`});return(t,e)=>void 0!==a.value?(h(),f("span",{key:0,class:O(["support-sla",{overdue:o.value}])},k(t.$t(o.value?"sla.overdue":"sla.due",{time:r.value})),3)):s("",!0)}}),[["styles",[".support-sla[data-v-bd4c02b8]{color:var(--scm-color-muted);font-size:.75em}.support-sla.overdue[data-v-bd4c02b8]{color:var(--scm-color-danger);font-weight:600}"]],["__scopeId","data-v-bd4c02b8"]]),Z={class:"conversations-module"},G=["onClick"],K={class:"row-heading"},P={class:"time"},tt={class:"message-unread-container"},et={key:0,class:"lastMessage"},at={key:2,class:"unread"},st={key:0,class:"load-more"};function ot(t,e){const a={...t,features:["support"]};delete a.getUsers,I(a,e)}var rt=[{name:"conversations",component:j(g({__name:"support-conversations.module",emits:["close"],setup(t){const a=N(),o=A(),r=U(),d=B(),{triggerEvent:u}=M(),g=L(Date.now());let x;l(()=>{x=setInterval(()=>{g.value=Date.now()},3e4)}),y(()=>{x&&clearInterval(x)}),e(()=>d.user,t=>{t&&a.load()},{immediate:!0});const z=c(()=>o.activeConversation),$=c(()=>a.conversations.map(t=>({id:t._id||t.id,customer:I(_(t.participants)),lastMessage:t.lastMessage?.message,lastActivity:t.lastActivity||t.lastMessage?.history?.created,unread:t.unread,unreadCount:t.unreadCount,muted:!0===t.participant?.muted,supportStatus:w(t.supportStatus),supportStatusVersion:t.supportStatusVersion,sla:t.sla,isActive:(z.value?._id||z.value?.id)===(t._id||t.id)})));function I(t){if(!t?.id)return;const e=r.name(t.id);return e&&e!==t.id?e:t.email||t.id}return(t,e)=>{const r=p("icons-partial"),l=p("button-partial"),c=p("notice-partial");return h(),f("section",Z,[v(X),(h(!0),f(i,null,b($.value,e=>(h(),f("article",{key:e.id,class:O(["single-conversation",{active:e.isActive,unread:e.unread,muted:e.muted}]),role:"button",onClick:t=>{return a=e.id,o.activateConversation(a),void u("close");var a}},[m("section",K,[m("h3",null,[e.customer?(h(),f(i,{key:0},[n(k(e.customer),1)],64)):(h(),f(i,{key:1},[n(k(t.$t("customer")),1)],64))]),v(C,{status:e.supportStatus},null,8,["status"]),v(Y,{sla:e.sla,status:e.supportStatus,"status-version":e.supportStatusVersion,now:g.value+F(a).serverTimeOffsetMilliseconds},null,8,["sla","status","status-version","now"])]),m("span",P,k(F(J.default)(e.lastActivity).fromNow()),1),m("section",tt,[e.lastMessage?(h(),f("p",et,k(e.lastMessage),1)):s("",!0),e.muted?(h(),H(r,{key:1,type:"muted",size:"small","aria-label":t.$t("muted")},null,8,["aria-label"])):s("",!0),e.unread?(h(),f("span",at,k(e.unreadCount),1)):s("",!0)])],10,G))),128)),F(a).hasMore?(h(),f("section",st,[v(l,{variant:"ghost",onClick:F(a).loadMore},{default:S(()=>[n(k(t.$t("load more")),1)]),_:1},8,["onClick"])])):s("",!0),F(a).loaded&&!$.value.length?(h(),H(c,{key:1,type:"notice",class:"empty-conversations"},{default:S(()=>[n(k(t.$t("no conversations yet")),1)]),_:1})):s("",!0)])}}}),[["styles",[".conversations-module[data-v-f7970e9c]{grid-auto-rows:max-content;display:grid}.conversations-module .single-conversation[data-v-f7970e9c]{cursor:pointer;grid-template-columns:1fr 1fr;gap:5px;padding:20px;display:grid}.conversations-module .single-conversation h3[data-v-f7970e9c]{letter-spacing:-.1px;color:var(--scm-color-primary);font-family:Open Sans;font-weight:600}.conversations-module .single-conversation .time[data-v-f7970e9c]{justify-self:end}.conversations-module .single-conversation .message-unread-container[data-v-f7970e9c]{grid-column:1/3;grid-template-columns:1fr max-content max-content;align-items:center;gap:5px;display:grid}.conversations-module .single-conversation .message-unread-container .lastMessage[data-v-f7970e9c]{white-space:nowrap;text-overflow:ellipsis;color:var(--scm-color-text);overflow:hidden}.conversations-module .single-conversation .message-unread-container .unread[data-v-f7970e9c]{border-radius:var(--scm-radius-lg);background-color:var(--scm-color-own);color:#fff;place-self:center end;padding:0 4px;font-size:.75em}.conversations-module .single-conversation[data-v-f7970e9c]:hover,.conversations-module .single-conversation.active[data-v-f7970e9c]{background-color:var(--scm-color-highlight)}.conversations-module .single-conversation.support[data-v-f7970e9c]{border-left:3px solid var(--scm-color-primary);font-weight:600}.conversations-module .single-conversation.muted .icon-partial[data-v-f7970e9c],.conversations-module .single-conversation.muted .unread[data-v-f7970e9c]{opacity:.5}.conversations-module .row-heading[data-v-f7970e9c]{gap:4px;min-width:0;display:grid}.conversations-module .load-more[data-v-f7970e9c]{justify-items:center;padding:10px 20px;display:grid}"]],["__scopeId","data-v-f7970e9c"]])}],nt=[{name:"support-left-target",component:j(g({__name:"support-left-target.partial",setup(t){const e=o(),a=c(()=>"conversations"===e.content.left||"mobile"!==e.viewMode&&!e.content.left);function r(){e.unsetContent("left")}return(t,o)=>{const n=p("conversations-module");return a.value?(h(),f("section",{key:0,class:O(["main-left-target",[F(e).viewMode,F(e).state]])},[v(n,{onClose:r})],2)):s("",!0)}}}),[["styles",[".main-left-target[data-v-4629b612]{background-color:var(--scm-color-surface);z-index:100;width:100%;height:calc(100% - 35px);position:absolute;top:35px;left:0;overflow:hidden}.main-left-target.desktop[data-v-4629b612],.main-left-target.tablet[data-v-4629b612]{top:unset;height:unset;position:relative}.main-left-target.disconnected[data-v-4629b612]{height:calc(100% - 55px);top:55px}"]],["__scopeId","data-v-4629b612"]])}];var it={class:"header"},lt={class:"main-target"},ct=j(g({__name:"SupportApp",props:{config:{type:Object}},setup(t){const e=t,a=o(),r=A(),n=N();q();const{viewMode:i}=D({config:()=>e.config,applyConfig:ot,onSessionRestored:()=>{n.reload().catch(()=>{})},onStarted:async()=>{await n.load(),r.readLastActiveConversation(),n.activateLastOrLatest(),a.setContent("conversations","left")}});function l(){a.unsetContent("left")}function c(){a.unsetContent("right")}return(t,e)=>{const o=p("actions-partial"),r=p("connection-status-partial"),n=p("support-left-target-partial"),d=p("chats-module"),u=p("main-right-target-partial"),g=p("error-notice-partial");return h(),f("div",{class:O(["studio-chat-root",[F(i),F(a).state]])},[m("section",it,[v(o,{onClose:c}),"disconnected"===F(a).state?(h(),H(r,{key:0})):s("",!0)]),v(n),m("section",lt,["chat"===F(a).content.main?(h(),H(d,{key:0,onClose:l})):s("",!0)]),v(u),v(g),e[0]||(e[0]=m("div",{class:"util"},null,-1))],2)}}}),[["styles",[".studio-chat-root[data-v-92390e6d]{--scm-font-size:16px;--scm-color-primary:#3f2d56;--scm-color-own:#533474;--scm-color-surface:#f9f9f9;--scm-color-subtle:#fcfcfc;--scm-color-shadow:#ccc;--scm-color-muted:#757474;--scm-color-danger:#ea624f;--scm-color-text:#555;--scm-color-highlight:hsl(from var(--scm-color-primary) h s 92%);--scm-radius:5px;--scm-radius-lg:8px;font-family:Open Sans,sans-serif;font-size:var(--scm-font-size)}#app[data-v-92390e6d]{height:100vh}.studio-chat-root[data-v-92390e6d]{grid-template-rows:35px 1fr;grid-template-columns:1fr;height:100%;display:grid}.studio-chat-root .header[data-v-92390e6d]{background-color:var(--scm-color-surface);grid-template-columns:max-content 1fr;align-content:center;display:grid}.studio-chat-root.disconnected[data-v-92390e6d]{grid-template-rows:55px 1fr}.studio-chat-root.disconnected .header[data-v-92390e6d]{grid-template-rows:35px 20px}.studio-chat-root.disconnected .header .connection-status[data-v-92390e6d]{grid-column:1/3}.studio-chat-root .conversations-module[data-v-92390e6d]{grid-column:1}.studio-chat-root .main-target[data-v-92390e6d]{height:100%;overflow:hidden}.studio-chat-root.desktop[data-v-92390e6d],.studio-chat-root.tablet[data-v-92390e6d]{grid-template-columns:350px 1fr}.studio-chat-root.desktop .header[data-v-92390e6d],.studio-chat-root.tablet .header[data-v-92390e6d]{grid-column:1/3}.studio-chat-root .chats-module[data-v-92390e6d]{grid-column:1}","*,:before,:after{box-sizing:border-box;background-repeat:no-repeat;margin:0;padding:0}*{min-width:0}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit;color:inherit}a{color:inherit;text-decoration:none}ul,ol{list-style:none}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}:host{--scm-font-size:16px;--scm-color-primary:#3f2d56;--scm-color-own:#533474;--scm-color-surface:#f9f9f9;--scm-color-subtle:#fcfcfc;--scm-color-shadow:#ccc;--scm-color-muted:#757474;--scm-color-danger:#ea624f;--scm-color-text:#555;--scm-color-highlight:hsl(from var(--scm-color-primary) h s 92%);--scm-radius:5px;--scm-radius-lg:8px;height:100%;font-family:Open Sans,sans-serif;font-size:var(--scm-font-size);display:block}"]],["__scopeId","data-v-92390e6d"]]);J.default.extend(Q.default),T();var dt=d(ct,{shadowRoot:!0,configureApp(t){const e=a();t.use(E,{selector:"lilaquadrat-studio-support"}),t.use(e),o(e).appRole="agent",t.use(r),function(t){z([...x,...rt],void 0,"module",t),z([...R,...nt],void 0,"partial",t)}(t)}});customElements.get("lilaquadrat-studio-support")||customElements.define("lilaquadrat-studio-support",dt);export{dt as LilaquadratStudioSupport};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as e}from"./preload-helper-B46Frp_x.js";import{$ as a,A as t,B as o,C as n,D as s,E as r,F as i,G as l,H as c,I as d,J as u,K as p,L as v,M as m,N as g,O as f,P as h,Q as b,R as y,S as w,T as x,U as k,V as C,W as _,X as $,Z as M,a as z,at as S,d as O,et as j,f as B,h as V,i as A,it as E,j as L,k as N,l as U,n as I,nt as P,o as R,p as D,q as K,r as F,rt as q,s as T,t as G,tt as H,u as J,v as Q,w as W,x as X,y as Z,z as Y}from"./loadFonts-BWquVJC2.js";var ee=e(N(),1),ae=e(f(),1),te=L("contacts",()=>{const e=W(),a=P([]);return{contacts:v(()=>a.value.filter(a=>a.id!==e.user)),users:a,loadUsers:async function(e){const t=await new x("chat",await Z()).contacts.list(e);return a.value=t.data,Q().ingest(t.data),a.value}}}),oe={class:"contacts-module"},ne={class:"scroll-container"},se={key:0,class:"members-view"},re=["placeholder"],ie=["onClick","onKeydown"],le={key:0,class:"selected-indicator"},ce={key:2,class:"members-view"},de=["placeholder"],ue={key:1,class:"controls"},pe=U(_({__name:"contacts.module",props:{startMode:{type:String},autosave:{type:Boolean}},emits:["close"],setup(e){const t=n(),s=te(),i=V(),l=Q(),{triggerEvent:u}=O(),p=e,m=v(()=>p.startMode??"members"),f=["read","write","rename","participants","block"],h=["read","write"],x=P([]),_=P({}),z=P({}),B=v(()=>i.activeConversation),A=v(()=>Object.keys(_.value).length>0||Object.keys(z.value).length>0),L=v(()=>J(B.value,"participants")),N=v(()=>"rights"===m.value&&L.value),U=v(()=>x.value.map(e=>({id:e}))),I=P("");function R(e,a){const t=(e.prename??"").toLowerCase(),o=(e.lastname??"").toLowerCase(),n=[e.id.toLowerCase(),t,o,(e.name??"").toLowerCase(),[t,o].filter(Boolean).join(" "),[o,t].filter(Boolean).join(" ")].filter(Boolean),s=a.split(/\s+/).filter(Boolean);return!s.length||s.every(e=>n.some(a=>a.includes(e)))}const D=v(()=>{const e=I.value.trim().toLowerCase();return e?U.value.filter(a=>R(l.get(a.id)??{id:a.id},e)):U.value}),F=P(""),q=v(()=>{const e=B.value,a=r(s.contacts),t=F.value.trim().toLowerCase();return a.map(a=>({id:a.id,name:a.name,prename:a.prename,lastname:a.lastname,inConversation:!!e&&x.value.includes(a.id)})).filter(e=>!t||R(e,t))}),T=v(()=>{const e=B.value,a=r(e?.participantDocs||[]),t=new Map(a.map(e=>[e.user,e]));return x.value.map(e=>t.get(e)??{user:e,rights:h,state:"active"})});function G(e,a){const t=a.trim().toLowerCase();return e.filter(e=>!t||R(l.get(e.user)??{id:e.user},t)).sort((e,a)=>{const t=l.get(e.user),o=l.get(a.user);return(t?.lastname??"").localeCompare(o?.lastname??"")||(t?.prename??"").localeCompare(o?.prename??"")||(t?.name??"").localeCompare(o?.name??"")||e.user.localeCompare(a.user)})}function W(){const e=B.value;x.value=e?w(e.participants):[]}function X(){_.value={},z.value={}}function Z(){const e=B.value?._id;return e?i.loadParticipants(e):Promise.resolve()}const ee=v(()=>"mobile"!==t.viewMode&&!!B.value?.isNew);let ae=Promise.resolve();function pe(e){const a=x.value.indexOf(e.id);-1===a?x.value.push(e.id):x.value.splice(a,1),ee.value&&(ae=ae.then(()=>ye()).catch(e=>{console.warn("[studio-chat] autosave failed",e),W(),X()}))}async function ve(){await ye(),be()}function me(e,a){return(_.value[e.user]??e.rights??[]).includes(a)}function ge(e,a){const t=new Set(_.value[e.user]??e.rights??[]);t.has(a)?t.delete(a):t.add(a),_.value={..._.value,[e.user]:[...t]}}function fe(e){return z.value[e.user]??"blocked"===e.state}function he(e){z.value={...z.value,[e.user]:!fe(e)}}function be(){u("close")}async function ye(){const e=B.value;if(!e)return;const a=w(e.participants),t=a.filter(e=>!x.value.includes(e)),o=x.value.filter(e=>!a.includes(e));if(e.isNew)t.forEach(a=>i.removeParticipant(e.id,a)),o.forEach(a=>i.addParticipant(e.id,a));else{(o.length||t.length)&&(await i.executeParticipantsEdit(e._id,o,t),o.forEach(a=>i.addParticipant(e._id,a)),t.forEach(a=>i.removeParticipant(e._id,a)));for(const[a,t]of Object.entries(_.value))await i.setRights(e._id,a,t);for(const[a,t]of Object.entries(z.value))await i.blockUser(e._id,a,t);await Z()}X(),u("close")}return K(()=>{W(),l.ensure(x.value),"contacts"!==m.value?N.value&&Z():s.loadUsers()}),a(()=>B.value?._id,()=>{W(),X(),N.value&&Z()}),a(()=>B.value?.participants,e=>{A.value||"contacts"===m.value||(x.value=w(e??[]))}),(a,t)=>{const n=b("user-avatar-partial"),s=b("rights-editor-partial"),r=b("button-partial");return $(),C("article",oe,[y("header",null,[y("h4",null,S(a.$t("participants")),1)]),y("section",ne,["contacts"===m.value?($(),C("section",se,[H(y("input",{"onUpdate:modelValue":t[0]||(t[0]=e=>F.value=e),class:"member-filter",type:"search",placeholder:a.$t("filter contacts")},null,8,re),[[g,F.value]]),y("ul",null,[($(!0),C(d,null,M(q.value,e=>($(),C("li",{key:e.id,class:E(["single-contact",{selected:e.inConversation}]),role:"button",tabindex:"0",onClick:a=>pe(e),onKeydown:a=>function(e,a){"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),pe(a))}(a,e)},[k(n,{"user-id":e.id},null,8,["user-id"]),e.inConversation?($(),C("span",le,"✓")):o("",!0)],42,ie))),128))])])):N.value?($(),Y(s,{key:1,docs:T.value,rights:f,"has-right":me,"is-blocked":fe,"filter-docs":G,onToggleRight:ge,onToggleBlock:he},null,8,["docs"])):($(),C("section",ce,[H(y("input",{"onUpdate:modelValue":t[1]||(t[1]=e=>I.value=e),class:"member-filter",type:"search",placeholder:a.$t("filter members")},null,8,de),[[g,I.value]]),y("ul",null,[($(!0),C(d,null,M(D.value,e=>($(),C("li",{key:e.id,class:"single-contact"},[k(n,{"user-id":e.id},null,8,["user-id"])]))),128))])]))]),"contacts"!==m.value||ee.value?N.value?($(),C("section",ue,[k(r,{variant:"secondary","aria-label":a.$t("abandon"),onClick:be},{default:j(()=>[c(S(a.$t("abandon")),1)]),_:1},8,["aria-label"]),k(r,{variant:"primary",onClick:ye},{default:j(()=>[c(S(a.$t("save edits")),1)]),_:1})])):o("",!0):($(),C("section",{key:0,class:E(["controls",{single:e.autosave}])},[e.autosave?o("",!0):($(),Y(r,{key:0,variant:"secondary","aria-label":a.$t("abandon"),onClick:be},{default:j(()=>[c(S(a.$t("abandon")),1)]),_:1},8,["aria-label"])),k(r,{variant:"primary",onClick:ve},{default:j(()=>[c(S(e.autosave?a.$t("close"):a.$t("update members")),1)]),_:1})],2))])}}}),[["styles",[".contacts-module[data-v-a851b9fb]{grid-template-rows:max-content 1fr max-content;height:100%;display:grid;overflow:hidden}.contacts-module header[data-v-a851b9fb]{justify-content:space-between;align-items:center;gap:10px;padding:10px 20px;display:flex}.contacts-module .scroll-container[data-v-a851b9fb]{overflow-y:scroll}.contacts-module .scroll-container .member-filter[data-v-a851b9fb]{border:1px solid var(--scm-color-subtle);border-radius:var(--scm-radius);background-color:var(--scm-color-surface);width:calc(100% - 40px);color:inherit;font:inherit;margin:10px 20px;padding:8px 12px;display:block}.contacts-module .scroll-container .member-filter[data-v-a851b9fb]:focus-visible{outline:2px solid var(--scm-color-primary);outline-offset:1px}.contacts-module .scroll-container .single-contact[data-v-a851b9fb]{cursor:pointer;justify-content:space-between;align-items:center;padding:20px;display:flex}.contacts-module .scroll-container .single-contact[data-v-a851b9fb]:hover,.contacts-module .scroll-container .single-contact.selected[data-v-a851b9fb]{background-color:color-mix(in srgb, var(--scm-color-primary) 15%, transparent)}.contacts-module .scroll-container .single-contact .selected-indicator[data-v-a851b9fb]{color:var(--scm-color-primary);font-weight:700}.contacts-module .controls[data-v-a851b9fb]{grid-template-columns:1fr 1fr;gap:5px;padding:20px;display:grid}.contacts-module .controls.single[data-v-a851b9fb]{grid-template-columns:1fr}"]],["__scopeId","data-v-a851b9fb"]]),ve={class:"conversations-module"},me=["onClick"],ge={class:"time"},fe={class:"message-unread-container"},he={key:0,class:"lastMessage"},be={key:2,class:"unread"},ye={key:0,class:"draft"},we={key:0,class:"empty-conversations"},xe=U(_({__name:"conversations.module",emits:["close"],setup(e){const t=V(),s=W(),i=n(),{triggerEvent:l}=O();a(()=>s.user,e=>{e&&(t.cleanConversations(),t.getAllConversations())},{immediate:!0});const u=v(()=>r(t.conversations).sort((e,a)=>(0,ee.default)(a.lastMessage?.history.created).valueOf()-(0,ee.default)(e.lastMessage?.history.created).valueOf()).map(e=>({...e,isActive:p.value?._id===e._id&&e._id||p.value?.id===e.id&&e.id}))),p=v(()=>t.activeConversation);function m(e){t.activateConversation(e),l("close")}function g(){const e=t.createConversation();e&&("mobile"!==i.viewMode&&i.setContent("contacts-new","left"),l("close"),t.activateConversation(e))}let f=!1;return a(u,e=>{if(f||!e.length||p.value)return;let a;t.lastActiveConversation&&(a=e.find(e=>e._id===t.lastActiveConversation));const o=a||e.find(e=>!e.isNew);o&&(f=!0,m(o._id||o.id))}),(e,a)=>{const n=b("participants-partial"),s=b("icons-partial"),r=b("button-partial");return $(),C("section",ve,[($(!0),C(d,null,M(u.value,a=>($(),C("article",{key:a._id,class:E(["single-conversation",{active:a.isActive,unread:a.unread,support:"support"===a.operationMode,muted:a.participant?.muted}]),role:"button",onClick:e=>m(a._id||a.id)},[y("h3",null,["support"===a.operationMode?($(),C(d,{key:0},[c(S(e.$t("support")),1)],64)):a.name?($(),C(d,{key:1},[c(S(a.name),1)],64)):($(),Y(n,{key:2,participants:a.participants,inline:"","remove-user":""},null,8,["participants"]))]),y("span",ge,S(q(ee.default)(a.lastMessage?.history.created).fromNow()),1),y("section",fe,[a.lastMessage?($(),C("p",he,S(a.lastMessage.message),1)):o("",!0),a.participant?.muted?($(),Y(s,{key:1,type:"muted",size:"small","aria-label":e.$t("muted")},null,8,["aria-label"])):o("",!0),a.unread?($(),C("span",be,S(a.unreadCount),1)):o("",!0)]),a.isNew?($(),C("span",ye,"draft")):o("",!0)],10,me))),128)),q(t).conversationsLoaded&&!u.value.length?($(),C("section",we,[y("p",null,S(e.$t("no conversations yet")),1),k(r,{variant:"ghost",icon:"add",onClick:g},{default:j(()=>[c(S(e.$t("new chat")),1)]),_:1})])):o("",!0)])}}}),[["styles",[".conversations-module[data-v-c3e322ad]{grid-auto-rows:max-content;display:grid}.conversations-module .single-conversation[data-v-c3e322ad]{cursor:pointer;grid-template-columns:1fr 1fr;gap:5px;padding:20px;display:grid}.conversations-module .single-conversation h3[data-v-c3e322ad]{letter-spacing:-.1px;color:var(--scm-color-primary);font-family:Open Sans;font-weight:600}.conversations-module .single-conversation .time[data-v-c3e322ad]{justify-self:end}.conversations-module .single-conversation .message-unread-container[data-v-c3e322ad]{grid-column:1/3;grid-template-columns:1fr max-content max-content;align-items:center;gap:5px;display:grid}.conversations-module .single-conversation .message-unread-container .lastMessage[data-v-c3e322ad]{white-space:nowrap;text-overflow:ellipsis;color:var(--scm-color-text);overflow:hidden}.conversations-module .single-conversation .message-unread-container .unread[data-v-c3e322ad]{border-radius:var(--scm-radius-lg);background-color:var(--scm-color-own);color:#fff;place-self:center end;padding:0 4px;font-size:.75em}.conversations-module .single-conversation[data-v-c3e322ad]:hover,.conversations-module .single-conversation.active[data-v-c3e322ad]{background-color:var(--scm-color-highlight)}.conversations-module .single-conversation.support[data-v-c3e322ad]{border-left:3px solid var(--scm-color-primary);font-weight:600}.conversations-module .single-conversation.muted .icon-partial[data-v-c3e322ad],.conversations-module .single-conversation.muted .unread[data-v-c3e322ad]{opacity:.5}.conversations-module .empty-conversations[data-v-c3e322ad]{text-align:center;justify-items:center;gap:10px;padding:40px 20px;display:grid}.conversations-module .empty-conversations p[data-v-c3e322ad]{color:var(--scm-color-muted)}"]],["__scopeId","data-v-c3e322ad"]]),ke={key:1,class:"name-edit-module"},Ce={key:0,class:"form-container"},_e={key:1,class:"denied"},$e=U(_({__name:"name-edit.module",props:{conversation:{type:String},variant:{type:String}},emits:["close"],setup(e){const t=V(),{triggerEvent:n}=O(),s=e,r=v(()=>{if(s.conversation)return s.conversation;const e=t.activeConversation;return e?._id??e?.id}),i=v(()=>J(r.value?t.getConversation(r.value):void 0,"rename")),l=P(""),c=P(null),d=P(!1);function u(){n("close")}async function p(){const e=r.value;if(e&&l.value.length&&i.value){d.value=!0,c.value=null;try{await t.rename(e,l.value),u()}catch(a){const e=a?.response?.data?.message||"Unknown error";console.error("Error renaming conversation:",e),c.value=e}finally{d.value=!1}}}return a(r,()=>{c.value=null,l.value=r.value&&t.getConversation(r.value)?.name||""},{immediate:!0}),(a,t)=>{const n=b("name-edit-partial");return"inline"===e.variant&&i.value?($(),Y(n,{key:0,modelValue:l.value,"onUpdate:modelValue":t[0]||(t[0]=e=>l.value=e),error:c.value,saving:d.value,onSave:p,onCancel:u},null,8,["modelValue","error","saving"])):"inline"!==e.variant?($(),C("article",ke,[y("header",null,[y("h4",null,S(a.$t("rename")),1)]),i.value?($(),C("section",Ce,[k(n,{modelValue:l.value,"onUpdate:modelValue":t[1]||(t[1]=e=>l.value=e),error:c.value,saving:d.value,onSave:p,onCancel:u},null,8,["modelValue","error","saving"])])):($(),C("section",_e,S(a.$t("you left this conversation")),1))])):o("",!0)}}}),[["styles",[".name-edit-module[data-v-d3bbe054]{grid-template-rows:max-content 1fr;height:100%;display:grid;overflow:hidden}.name-edit-module header[data-v-d3bbe054]{justify-content:space-between;align-items:center;gap:10px;padding:10px 20px;display:flex}.name-edit-module header h4[data-v-d3bbe054]{letter-spacing:-.1px;font-family:Open Sans;font-size:.875em;font-weight:400}.name-edit-module .form-container[data-v-d3bbe054]{padding:10px 20px}.name-edit-module .denied[data-v-d3bbe054]{color:var(--scm-color-muted);padding:10px 20px;font-size:.75em}"]],["__scopeId","data-v-d3bbe054"]]),Me={key:0,class:"participants-partial__count"},ze=U(_({__name:"participants.partial",props:{participants:{type:Array},removeUser:{type:Boolean},isNew:{type:Boolean},inline:{type:Boolean},showNumbers:{type:Boolean},showOverview:{type:Boolean}},setup(e){const a=W(),t=e,n=v(()=>t.removeUser?t.participants.filter(e=>X(e)!==a.user):t.participants),s=v(()=>n.value.length),r=v(()=>t.isNew&&!s.value);return(a,t)=>{const i=b("user-avatar-partial");return $(),C("section",{class:E(["participants-partial",{"participants-partial--inline":e.inline}])},[r.value?o("",!0):($(),C(d,{key:0},[e.showOverview?($(),C(d,{key:0},[c(S(a.$t("member count",{count:s.value})),1)],64)):($(),C(d,{key:1},[e.showNumbers?($(),C("span",Me,S(s.value),1)):o("",!0),($(!0),C(d,null,M(n.value,(a,t)=>($(),C(d,{key:q(X)(a)},[e.inline?($(),Y(T,{key:0,"user-id":q(X)(a)},null,8,["user-id"])):($(),Y(i,{key:1,"user-id":q(X)(a)},null,8,["user-id"])),t<n.value.length-1?($(),C(d,{key:2},[c(S(", "))],64)):o("",!0)],64))),128))],64))],64))],2)}}}),[["styles",[".participants-partial__count[data-v-8352829f]{letter-spacing:-.1px;margin-right:6px;font-family:Open Sans;font-weight:600}.participants-partial--inline[data-v-8352829f]{font-size:inherit;white-space:nowrap;text-overflow:ellipsis;min-width:0;display:block;overflow:hidden}"]],["__scopeId","data-v-8352829f"]]),Se=["value","placeholder","aria-label"],Oe={key:0,class:"error",role:"alert"},je={class:"controls"},Be=_({__name:"name-edit.partial",props:{modelValue:{type:String},error:{type:[String,null]},saving:{type:Boolean}},emits:["update:modelValue","save","cancel"],setup(e,{emit:a}){const t=a,n=P();return u(async()=>{await p(),n.value?.focus()}),(a,s)=>{const r=b("button-partial");return $(),C("form",{class:"name-edit",onSubmit:s[3]||(s[3]=i(e=>t("save"),["prevent"]))},[y("input",{ref_key:"inputRef",ref:n,class:"name-input",type:"text",value:e.modelValue,placeholder:a.$t("conversation name"),"aria-label":a.$t("conversation name"),onInput:s[0]||(s[0]=e=>t("update:modelValue",e.target.value)),onKeydown:s[1]||(s[1]=h(e=>t("cancel"),["esc"]))},null,40,Se),e.error?($(),C("p",Oe,S(e.error),1)):o("",!0),y("section",je,[k(r,{variant:"secondary",size:"sm","aria-label":a.$t("abandon"),onClick:s[2]||(s[2]=e=>t("cancel"))},{default:j(()=>[c(S(a.$t("abandon")),1)]),_:1},8,["aria-label"]),k(r,{variant:"primary",size:"sm",type:"submit",disabled:!e.modelValue.length,loading:e.saving},{default:j(()=>[c(S(a.$t("save")),1)]),_:1},8,["disabled","loading"])])],32)}}}),Ve={class:"rights-panel"},Ae=["placeholder"],Ee=["aria-expanded","onClick","onKeydown"],Le={key:0,class:"rights"},Ne={key:1,class:"actions-container"},Ue=[{name:"conversations",component:xe},{name:"contacts",component:pe},{name:"name-edit",component:$e}],Ie=[{name:"participants",component:ze},{name:"name-edit",component:U(Be,[["styles",[".name-edit[data-v-898b5575]{gap:10px;display:grid}.name-edit .name-input[data-v-898b5575]{border:1px solid var(--scm-color-subtle);border-radius:var(--scm-radius);background-color:var(--scm-color-surface);width:100%;color:inherit;font:inherit;padding:8px 12px}.name-edit .name-input[data-v-898b5575]:focus-visible{outline:2px solid var(--scm-color-primary);outline-offset:1px}.name-edit .error[data-v-898b5575]{color:var(--scm-color-danger);margin:0;font-size:.75em}.name-edit .controls[data-v-898b5575]{justify-content:flex-end;gap:5px;display:flex}"]],["__scopeId","data-v-898b5575"]])},{name:"rights-editor",component:U(_({__name:"rights-editor.partial",props:{docs:{type:Array},rights:{type:Array},hasRight:{type:Function},isBlocked:{type:Function},filterDocs:{type:Function}},emits:["toggle-right","toggle-block"],setup(e,{emit:a}){const t=e,n=a,s=P(""),r=v(()=>t.filterDocs(t.docs,s.value)),i=P({});function l(e){return!!i.value[e.user]}function u(e){i.value={...i.value,[e.user]:!l(e)}}return(e,a)=>{const i=b("user-avatar-partial"),p=b("icons-partial"),v=b("checkbox-partial"),m=b("button-partial");return $(),C("section",Ve,[H(y("input",{"onUpdate:modelValue":a[0]||(a[0]=e=>s.value=e),class:"member-filter",type:"search",placeholder:e.$t("filter members")},null,8,Ae),[[g,s.value]]),y("ul",null,[($(!0),C(d,null,M(r.value,a=>($(),C("li",{key:a.user,class:E(["participant-rights",{expanded:l(a)}])},[y("section",{class:"who",role:"button",tabindex:"0","aria-expanded":l(a),onClick:e=>u(a),onKeydown:e=>function(e,a){"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),u(a))}(e,a)},[k(i,{"user-id":a.user},null,8,["user-id"]),c(" ("+S(a.state)+") ",1),k(p,{class:"expand-indicator",type:"chevron-down",rotate:l(a)?180:0},null,8,["rotate"])],40,Ee),l(a)?($(),C("section",Le,[($(!0),C(d,null,M(t.rights,o=>($(),Y(v,{key:o,class:"right-toggle","model-value":t.hasRight(a,o),label:e.$t(o),onChange:e=>n("toggle-right",a,o)},null,8,["model-value","label","onChange"]))),128))])):o("",!0),l(a)?($(),C("section",Ne,[k(m,{variant:t.isBlocked(a)?"secondary":"danger",onClick:e=>n("toggle-block",a)},{default:j(()=>[c(S(t.isBlocked(a)?e.$t("unblock"):e.$t("block")),1)]),_:2},1032,["variant","onClick"])])):o("",!0)],2))),128))])])}}}),[["styles",[".rights-panel .member-filter[data-v-a897e833]{border:1px solid var(--scm-color-subtle);border-radius:var(--scm-radius);background-color:var(--scm-color-surface);width:calc(100% - 40px);color:inherit;font:inherit;margin:10px 20px;padding:8px 12px;display:block}.rights-panel .member-filter[data-v-a897e833]:focus-visible{outline:2px solid var(--scm-color-primary);outline-offset:1px}.rights-panel .participant-rights[data-v-a897e833]{gap:30px;padding:20px;display:grid}.rights-panel .participant-rights .who[data-v-a897e833]{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;display:flex}.rights-panel .participant-rights .who .expand-indicator[data-v-a897e833]{margin-left:auto}.rights-panel .participant-rights .rights[data-v-a897e833]{gap:10px;display:grid}.rights-panel .participant-rights .rights .right-toggle[data-v-a897e833]{--scm-checkbox-font-size:.75em}"]],["__scopeId","data-v-a897e833"]])},{name:"main-left-target",component:U(_({__name:"main-left-target.partial",setup(e){const a=n(),t=V(),s=v(()=>"conversations"===a.content.left||!t.activeConversation?.isNew&&("mobile"!==a.viewMode&&!a.content.left)),r=v(()=>"contacts-new"===a.content.left||t.activeConversation?.isNew&&"mobile"!==a.viewMode&&!a.content.left?{startMode:"contacts",autosave:!0}:"contacts-edit"===a.content.left?{startMode:"contacts",autosave:!1}:"contacts-rights"===a.content.left?{startMode:"rights",autosave:!1}:void 0),i=v(()=>!!s.value||(!!r.value||"rename"===a.content.left));function c(){a.unsetContent("left")}return(e,t)=>{const n=b("conversations-module"),d=b("contacts-module"),u=b("name-edit-module");return i.value?($(),C("section",{key:0,class:E(["main-left-target",[q(a).viewMode,q(a).state]])},[s.value?($(),Y(n,{key:0,onClose:c})):o("",!0),r.value?($(),Y(d,l({key:1},r.value,{onClose:c}),null,16)):o("",!0),"rename"===q(a).content.left?($(),Y(u,{key:2,onClose:c})):o("",!0)],2)):o("",!0)}}}),[["styles",[".main-left-target[data-v-233714c6]{background-color:var(--scm-color-surface);z-index:100;width:100%;height:calc(100% - 35px);position:absolute;top:35px;left:0;overflow:hidden}.main-left-target.desktop[data-v-233714c6],.main-left-target.tablet[data-v-233714c6]{top:unset;height:unset;position:relative}.main-left-target.disconnected[data-v-233714c6]{height:calc(100% - 55px);top:55px}"]],["__scopeId","data-v-233714c6"]])}];var Pe={class:"header"},Re={class:"main-target"},De=U(_({__name:"App",props:{config:{type:Object}},setup(e){const a=e,t=n(),s=V();D();const{viewMode:r}=I({config:()=>a.config,applyConfig:A,onSessionRestored:()=>{s.handleReconnect().catch(()=>{})},onStarted:async()=>{t.isSupportOnly&&async function(){try{await s.getAllConversations()}catch(e){console.warn("[studio-chat] could not load conversations",e)}await s.startSupport()}(),await s.getAllConversations(),s.readLastActiveConversation(),s.activateLastOrLatestConversation()}});function i(){t.unsetContent("left")}function l(){t.unsetContent("right")}return(e,a)=>{const n=b("actions-partial"),s=b("connection-status-partial"),c=b("main-left-target-partial"),d=b("chats-module"),u=b("main-right-target-partial"),p=b("error-notice-partial");return $(),C("div",{class:E(["studio-chat-root",[q(r),q(t).state]])},[y("section",Pe,[k(n,{onClose:l}),"disconnected"===q(t).state?($(),Y(s,{key:0})):o("",!0)]),k(c),y("section",Re,["chat"===q(t).content.main?($(),Y(d,{key:0,onClose:i})):o("",!0)]),k(u),k(p),a[0]||(a[0]=y("div",{class:"util"},null,-1))],2)}}}),[["styles",[".studio-chat-root[data-v-74b09ea5]{--scm-font-size:16px;--scm-color-primary:#3f2d56;--scm-color-own:#533474;--scm-color-surface:#f9f9f9;--scm-color-subtle:#fcfcfc;--scm-color-shadow:#ccc;--scm-color-muted:#757474;--scm-color-danger:#ea624f;--scm-color-text:#555;--scm-color-highlight:hsl(from var(--scm-color-primary) h s 92%);--scm-radius:5px;--scm-radius-lg:8px;font-family:Open Sans,sans-serif;font-size:var(--scm-font-size)}#app[data-v-74b09ea5]{height:100vh}.studio-chat-root[data-v-74b09ea5]{grid-template-rows:35px 1fr;grid-template-columns:1fr;height:100%;display:grid}.studio-chat-root .header[data-v-74b09ea5]{background-color:var(--scm-color-surface);grid-template-columns:max-content 1fr;align-content:center;display:grid}.studio-chat-root.disconnected[data-v-74b09ea5]{grid-template-rows:55px 1fr}.studio-chat-root.disconnected .header[data-v-74b09ea5]{grid-template-rows:35px 20px}.studio-chat-root.disconnected .header .connection-status[data-v-74b09ea5]{grid-column:1/3}.studio-chat-root .conversations-module[data-v-74b09ea5]{grid-column:1}.studio-chat-root .main-target[data-v-74b09ea5]{height:100%;overflow:hidden}.studio-chat-root.desktop[data-v-74b09ea5],.studio-chat-root.tablet[data-v-74b09ea5]{grid-template-columns:350px 1fr}.studio-chat-root.desktop .header[data-v-74b09ea5],.studio-chat-root.tablet .header[data-v-74b09ea5]{grid-column:1/3}.studio-chat-root .chats-module[data-v-74b09ea5]{grid-column:1}","*,:before,:after{box-sizing:border-box;background-repeat:no-repeat;margin:0;padding:0}*{min-width:0}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit;color:inherit}a{color:inherit;text-decoration:none}ul,ol{list-style:none}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}:host{--scm-font-size:16px;--scm-color-primary:#3f2d56;--scm-color-own:#533474;--scm-color-surface:#f9f9f9;--scm-color-subtle:#fcfcfc;--scm-color-shadow:#ccc;--scm-color-muted:#757474;--scm-color-danger:#ea624f;--scm-color-text:#555;--scm-color-highlight:hsl(from var(--scm-color-primary) h s 92%);--scm-radius:5px;--scm-radius-lg:8px;height:100%;font-family:Open Sans,sans-serif;font-size:var(--scm-font-size);display:block}"]],["__scopeId","data-v-74b09ea5"]]);ee.default.extend(ae.default),G();var Ke=m(De,{shadowRoot:!0,configureApp(e){const a=t();e.use(F,{selector:"lilaquadrat-studio-chat"}),e.use(a),e.use(s),function(e){B([...z,...Ue],void 0,"module",e),B([...R,...Ie],void 0,"partial",e)}(e)}});customElements.get("lilaquadrat-studio-chat")||customElements.define("lilaquadrat-studio-chat",Ke);export{Ke as LilaquadratStudioChat};
|
|
1
|
+
import{s as e}from"./preload-helper-OSX1TyOM.js";import{$ as a,A as t,B as o,C as n,D as s,E as r,F as i,G as l,H as c,I as d,J as u,K as p,L as v,M as m,N as g,O as f,P as h,Q as b,R as y,S as w,T as x,U as k,V as C,W as _,X as $,Z as M,a as z,at as S,d as O,et as j,f as B,h as V,i as A,it as E,j as L,k as N,l as U,n as I,nt as P,o as R,p as D,q as K,r as F,rt as q,s as T,t as G,tt as H,u as J,v as Q,w as W,x as X,y as Z,z as Y}from"./loadFonts-DmNZ8tPj.js";var ee=e(N(),1),ae=e(f(),1),te=L("contacts",()=>{const e=W(),a=P([]);return{contacts:v(()=>a.value.filter(a=>a.id!==e.user)),users:a,loadUsers:async function(e){const t=await new x("chat",await Z()).contacts.list(e);return a.value=t.data,Q().ingest(t.data),a.value}}}),oe={class:"contacts-module"},ne={class:"scroll-container"},se={key:0,class:"members-view"},re=["placeholder"],ie=["onClick","onKeydown"],le={key:0,class:"selected-indicator"},ce={key:2,class:"members-view"},de=["placeholder"],ue={key:1,class:"controls"},pe=U(_({__name:"contacts.module",props:{startMode:{type:String},autosave:{type:Boolean}},emits:["close"],setup(e){const t=n(),s=te(),i=V(),l=Q(),{triggerEvent:u}=O(),p=e,m=v(()=>p.startMode??"members"),f=["read","write","rename","participants","block"],h=["read","write"],x=P([]),_=P({}),z=P({}),B=v(()=>i.activeConversation),A=v(()=>Object.keys(_.value).length>0||Object.keys(z.value).length>0),L=v(()=>J(B.value,"participants")),N=v(()=>"rights"===m.value&&L.value),U=v(()=>x.value.map(e=>({id:e}))),I=P("");function R(e,a){const t=(e.prename??"").toLowerCase(),o=(e.lastname??"").toLowerCase(),n=[e.id.toLowerCase(),t,o,(e.name??"").toLowerCase(),[t,o].filter(Boolean).join(" "),[o,t].filter(Boolean).join(" ")].filter(Boolean),s=a.split(/\s+/).filter(Boolean);return!s.length||s.every(e=>n.some(a=>a.includes(e)))}const D=v(()=>{const e=I.value.trim().toLowerCase();return e?U.value.filter(a=>R(l.get(a.id)??{id:a.id},e)):U.value}),F=P(""),q=v(()=>{const e=B.value,a=r(s.contacts),t=F.value.trim().toLowerCase();return a.map(a=>({id:a.id,name:a.name,prename:a.prename,lastname:a.lastname,inConversation:!!e&&x.value.includes(a.id)})).filter(e=>!t||R(e,t))}),T=v(()=>{const e=B.value,a=r(e?.participantDocs||[]),t=new Map(a.map(e=>[e.user,e]));return x.value.map(e=>t.get(e)??{user:e,rights:h,state:"active"})});function G(e,a){const t=a.trim().toLowerCase();return e.filter(e=>!t||R(l.get(e.user)??{id:e.user},t)).sort((e,a)=>{const t=l.get(e.user),o=l.get(a.user);return(t?.lastname??"").localeCompare(o?.lastname??"")||(t?.prename??"").localeCompare(o?.prename??"")||(t?.name??"").localeCompare(o?.name??"")||e.user.localeCompare(a.user)})}function W(){const e=B.value;x.value=e?w(e.participants):[]}function X(){_.value={},z.value={}}function Z(){const e=B.value?._id;return e?i.loadParticipants(e):Promise.resolve()}const ee=v(()=>"mobile"!==t.viewMode&&!!B.value?.isNew);let ae=Promise.resolve();function pe(e){const a=x.value.indexOf(e.id);-1===a?x.value.push(e.id):x.value.splice(a,1),ee.value&&(ae=ae.then(()=>ye()).catch(e=>{console.warn("[studio-chat] autosave failed",e),W(),X()}))}async function ve(){await ye(),be()}function me(e,a){return(_.value[e.user]??e.rights??[]).includes(a)}function ge(e,a){const t=new Set(_.value[e.user]??e.rights??[]);t.has(a)?t.delete(a):t.add(a),_.value={..._.value,[e.user]:[...t]}}function fe(e){return z.value[e.user]??"blocked"===e.state}function he(e){z.value={...z.value,[e.user]:!fe(e)}}function be(){u("close")}async function ye(){const e=B.value;if(!e)return;const a=w(e.participants),t=a.filter(e=>!x.value.includes(e)),o=x.value.filter(e=>!a.includes(e));if(e.isNew)t.forEach(a=>i.removeParticipant(e.id,a)),o.forEach(a=>i.addParticipant(e.id,a));else{(o.length||t.length)&&(await i.executeParticipantsEdit(e._id,o,t),o.forEach(a=>i.addParticipant(e._id,a)),t.forEach(a=>i.removeParticipant(e._id,a)));for(const[a,t]of Object.entries(_.value))await i.setRights(e._id,a,t);for(const[a,t]of Object.entries(z.value))await i.blockUser(e._id,a,t);await Z()}X(),u("close")}return K(()=>{W(),l.ensure(x.value),"contacts"!==m.value?N.value&&Z():s.loadUsers()}),a(()=>B.value?._id,()=>{W(),X(),N.value&&Z()}),a(()=>B.value?.participants,e=>{A.value||"contacts"===m.value||(x.value=w(e??[]))}),(a,t)=>{const n=b("user-avatar-partial"),s=b("rights-editor-partial"),r=b("button-partial");return $(),C("article",oe,[y("header",null,[y("h4",null,S(a.$t("participants")),1)]),y("section",ne,["contacts"===m.value?($(),C("section",se,[H(y("input",{"onUpdate:modelValue":t[0]||(t[0]=e=>F.value=e),class:"member-filter",type:"search",placeholder:a.$t("filter contacts")},null,8,re),[[g,F.value]]),y("ul",null,[($(!0),C(d,null,M(q.value,e=>($(),C("li",{key:e.id,class:E(["single-contact",{selected:e.inConversation}]),role:"button",tabindex:"0",onClick:a=>pe(e),onKeydown:a=>function(e,a){"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),pe(a))}(a,e)},[k(n,{"user-id":e.id},null,8,["user-id"]),e.inConversation?($(),C("span",le,"✓")):o("",!0)],42,ie))),128))])])):N.value?($(),Y(s,{key:1,docs:T.value,rights:f,"has-right":me,"is-blocked":fe,"filter-docs":G,onToggleRight:ge,onToggleBlock:he},null,8,["docs"])):($(),C("section",ce,[H(y("input",{"onUpdate:modelValue":t[1]||(t[1]=e=>I.value=e),class:"member-filter",type:"search",placeholder:a.$t("filter members")},null,8,de),[[g,I.value]]),y("ul",null,[($(!0),C(d,null,M(D.value,e=>($(),C("li",{key:e.id,class:"single-contact"},[k(n,{"user-id":e.id},null,8,["user-id"])]))),128))])]))]),"contacts"!==m.value||ee.value?N.value?($(),C("section",ue,[k(r,{variant:"secondary","aria-label":a.$t("abandon"),onClick:be},{default:j(()=>[c(S(a.$t("abandon")),1)]),_:1},8,["aria-label"]),k(r,{variant:"primary",onClick:ye},{default:j(()=>[c(S(a.$t("save edits")),1)]),_:1})])):o("",!0):($(),C("section",{key:0,class:E(["controls",{single:e.autosave}])},[e.autosave?o("",!0):($(),Y(r,{key:0,variant:"secondary","aria-label":a.$t("abandon"),onClick:be},{default:j(()=>[c(S(a.$t("abandon")),1)]),_:1},8,["aria-label"])),k(r,{variant:"primary",onClick:ve},{default:j(()=>[c(S(e.autosave?a.$t("close"):a.$t("update members")),1)]),_:1})],2))])}}}),[["styles",[".contacts-module[data-v-a851b9fb]{grid-template-rows:max-content 1fr max-content;height:100%;display:grid;overflow:hidden}.contacts-module header[data-v-a851b9fb]{justify-content:space-between;align-items:center;gap:10px;padding:10px 20px;display:flex}.contacts-module .scroll-container[data-v-a851b9fb]{overflow-y:scroll}.contacts-module .scroll-container .member-filter[data-v-a851b9fb]{border:1px solid var(--scm-color-subtle);border-radius:var(--scm-radius);background-color:var(--scm-color-surface);width:calc(100% - 40px);color:inherit;font:inherit;margin:10px 20px;padding:8px 12px;display:block}.contacts-module .scroll-container .member-filter[data-v-a851b9fb]:focus-visible{outline:2px solid var(--scm-color-primary);outline-offset:1px}.contacts-module .scroll-container .single-contact[data-v-a851b9fb]{cursor:pointer;justify-content:space-between;align-items:center;padding:20px;display:flex}.contacts-module .scroll-container .single-contact[data-v-a851b9fb]:hover,.contacts-module .scroll-container .single-contact.selected[data-v-a851b9fb]{background-color:color-mix(in srgb, var(--scm-color-primary) 15%, transparent)}.contacts-module .scroll-container .single-contact .selected-indicator[data-v-a851b9fb]{color:var(--scm-color-primary);font-weight:700}.contacts-module .controls[data-v-a851b9fb]{grid-template-columns:1fr 1fr;gap:5px;padding:20px;display:grid}.contacts-module .controls.single[data-v-a851b9fb]{grid-template-columns:1fr}"]],["__scopeId","data-v-a851b9fb"]]),ve={class:"conversations-module"},me=["onClick"],ge={class:"time"},fe={class:"message-unread-container"},he={key:0,class:"lastMessage"},be={key:2,class:"unread"},ye={key:0,class:"draft"},we={key:0,class:"empty-conversations"},xe=U(_({__name:"conversations.module",emits:["close"],setup(e){const t=V(),s=W(),i=n(),{triggerEvent:l}=O();a(()=>s.user,e=>{e&&(t.cleanConversations(),t.getAllConversations())},{immediate:!0});const u=v(()=>r(t.conversations).sort((e,a)=>(0,ee.default)(a.lastMessage?.history.created).valueOf()-(0,ee.default)(e.lastMessage?.history.created).valueOf()).map(e=>({...e,isActive:p.value?._id===e._id&&e._id||p.value?.id===e.id&&e.id}))),p=v(()=>t.activeConversation);function m(e){t.activateConversation(e),l("close")}function g(){const e=t.createConversation();e&&("mobile"!==i.viewMode&&i.setContent("contacts-new","left"),l("close"),t.activateConversation(e))}let f=!1;return a(u,e=>{if(f||!e.length||p.value)return;let a;t.lastActiveConversation&&(a=e.find(e=>e._id===t.lastActiveConversation));const o=a||e.find(e=>!e.isNew);o&&(f=!0,m(o._id||o.id))}),(e,a)=>{const n=b("participants-partial"),s=b("icons-partial"),r=b("button-partial");return $(),C("section",ve,[($(!0),C(d,null,M(u.value,a=>($(),C("article",{key:a._id,class:E(["single-conversation",{active:a.isActive,unread:a.unread,support:"support"===a.operationMode,muted:a.participant?.muted}]),role:"button",onClick:e=>m(a._id||a.id)},[y("h3",null,["support"===a.operationMode?($(),C(d,{key:0},[c(S(e.$t("support")),1)],64)):a.name?($(),C(d,{key:1},[c(S(a.name),1)],64)):($(),Y(n,{key:2,participants:a.participants,inline:"","remove-user":""},null,8,["participants"]))]),y("span",ge,S(q(ee.default)(a.lastMessage?.history.created).fromNow()),1),y("section",fe,[a.lastMessage?($(),C("p",he,S(a.lastMessage.message),1)):o("",!0),a.participant?.muted?($(),Y(s,{key:1,type:"muted",size:"small","aria-label":e.$t("muted")},null,8,["aria-label"])):o("",!0),a.unread?($(),C("span",be,S(a.unreadCount),1)):o("",!0)]),a.isNew?($(),C("span",ye,"draft")):o("",!0)],10,me))),128)),q(t).conversationsLoaded&&!u.value.length?($(),C("section",we,[y("p",null,S(e.$t("no conversations yet")),1),k(r,{variant:"ghost",icon:"add",onClick:g},{default:j(()=>[c(S(e.$t("new chat")),1)]),_:1})])):o("",!0)])}}}),[["styles",[".conversations-module[data-v-c3e322ad]{grid-auto-rows:max-content;display:grid}.conversations-module .single-conversation[data-v-c3e322ad]{cursor:pointer;grid-template-columns:1fr 1fr;gap:5px;padding:20px;display:grid}.conversations-module .single-conversation h3[data-v-c3e322ad]{letter-spacing:-.1px;color:var(--scm-color-primary);font-family:Open Sans;font-weight:600}.conversations-module .single-conversation .time[data-v-c3e322ad]{justify-self:end}.conversations-module .single-conversation .message-unread-container[data-v-c3e322ad]{grid-column:1/3;grid-template-columns:1fr max-content max-content;align-items:center;gap:5px;display:grid}.conversations-module .single-conversation .message-unread-container .lastMessage[data-v-c3e322ad]{white-space:nowrap;text-overflow:ellipsis;color:var(--scm-color-text);overflow:hidden}.conversations-module .single-conversation .message-unread-container .unread[data-v-c3e322ad]{border-radius:var(--scm-radius-lg);background-color:var(--scm-color-own);color:#fff;place-self:center end;padding:0 4px;font-size:.75em}.conversations-module .single-conversation[data-v-c3e322ad]:hover,.conversations-module .single-conversation.active[data-v-c3e322ad]{background-color:var(--scm-color-highlight)}.conversations-module .single-conversation.support[data-v-c3e322ad]{border-left:3px solid var(--scm-color-primary);font-weight:600}.conversations-module .single-conversation.muted .icon-partial[data-v-c3e322ad],.conversations-module .single-conversation.muted .unread[data-v-c3e322ad]{opacity:.5}.conversations-module .empty-conversations[data-v-c3e322ad]{text-align:center;justify-items:center;gap:10px;padding:40px 20px;display:grid}.conversations-module .empty-conversations p[data-v-c3e322ad]{color:var(--scm-color-muted)}"]],["__scopeId","data-v-c3e322ad"]]),ke={key:1,class:"name-edit-module"},Ce={key:0,class:"form-container"},_e={key:1,class:"denied"},$e=U(_({__name:"name-edit.module",props:{conversation:{type:String},variant:{type:String}},emits:["close"],setup(e){const t=V(),{triggerEvent:n}=O(),s=e,r=v(()=>{if(s.conversation)return s.conversation;const e=t.activeConversation;return e?._id??e?.id}),i=v(()=>J(r.value?t.getConversation(r.value):void 0,"rename")),l=P(""),c=P(null),d=P(!1);function u(){n("close")}async function p(){const e=r.value;if(e&&l.value.length&&i.value){d.value=!0,c.value=null;try{await t.rename(e,l.value),u()}catch(a){const e=a?.response?.data?.message||"Unknown error";console.error("Error renaming conversation:",e),c.value=e}finally{d.value=!1}}}return a(r,()=>{c.value=null,l.value=r.value&&t.getConversation(r.value)?.name||""},{immediate:!0}),(a,t)=>{const n=b("name-edit-partial");return"inline"===e.variant&&i.value?($(),Y(n,{key:0,modelValue:l.value,"onUpdate:modelValue":t[0]||(t[0]=e=>l.value=e),error:c.value,saving:d.value,onSave:p,onCancel:u},null,8,["modelValue","error","saving"])):"inline"!==e.variant?($(),C("article",ke,[y("header",null,[y("h4",null,S(a.$t("rename")),1)]),i.value?($(),C("section",Ce,[k(n,{modelValue:l.value,"onUpdate:modelValue":t[1]||(t[1]=e=>l.value=e),error:c.value,saving:d.value,onSave:p,onCancel:u},null,8,["modelValue","error","saving"])])):($(),C("section",_e,S(a.$t("you left this conversation")),1))])):o("",!0)}}}),[["styles",[".name-edit-module[data-v-d3bbe054]{grid-template-rows:max-content 1fr;height:100%;display:grid;overflow:hidden}.name-edit-module header[data-v-d3bbe054]{justify-content:space-between;align-items:center;gap:10px;padding:10px 20px;display:flex}.name-edit-module header h4[data-v-d3bbe054]{letter-spacing:-.1px;font-family:Open Sans;font-size:.875em;font-weight:400}.name-edit-module .form-container[data-v-d3bbe054]{padding:10px 20px}.name-edit-module .denied[data-v-d3bbe054]{color:var(--scm-color-muted);padding:10px 20px;font-size:.75em}"]],["__scopeId","data-v-d3bbe054"]]),Me={key:0,class:"participants-partial__count"},ze=U(_({__name:"participants.partial",props:{participants:{type:Array},removeUser:{type:Boolean},isNew:{type:Boolean},inline:{type:Boolean},showNumbers:{type:Boolean},showOverview:{type:Boolean}},setup(e){const a=W(),t=e,n=v(()=>t.removeUser?t.participants.filter(e=>X(e)!==a.user):t.participants),s=v(()=>n.value.length),r=v(()=>t.isNew&&!s.value);return(a,t)=>{const i=b("user-avatar-partial");return $(),C("section",{class:E(["participants-partial",{"participants-partial--inline":e.inline}])},[r.value?o("",!0):($(),C(d,{key:0},[e.showOverview?($(),C(d,{key:0},[c(S(a.$t("member count",{count:s.value})),1)],64)):($(),C(d,{key:1},[e.showNumbers?($(),C("span",Me,S(s.value),1)):o("",!0),($(!0),C(d,null,M(n.value,(a,t)=>($(),C(d,{key:q(X)(a)},[e.inline?($(),Y(T,{key:0,"user-id":q(X)(a)},null,8,["user-id"])):($(),Y(i,{key:1,"user-id":q(X)(a)},null,8,["user-id"])),t<n.value.length-1?($(),C(d,{key:2},[c(S(", "))],64)):o("",!0)],64))),128))],64))],64))],2)}}}),[["styles",[".participants-partial__count[data-v-8352829f]{letter-spacing:-.1px;margin-right:6px;font-family:Open Sans;font-weight:600}.participants-partial--inline[data-v-8352829f]{font-size:inherit;white-space:nowrap;text-overflow:ellipsis;min-width:0;display:block;overflow:hidden}"]],["__scopeId","data-v-8352829f"]]),Se=["value","placeholder","aria-label"],Oe={key:0,class:"error",role:"alert"},je={class:"controls"},Be=_({__name:"name-edit.partial",props:{modelValue:{type:String},error:{type:[String,null]},saving:{type:Boolean}},emits:["update:modelValue","save","cancel"],setup(e,{emit:a}){const t=a,n=P();return u(async()=>{await p(),n.value?.focus()}),(a,s)=>{const r=b("button-partial");return $(),C("form",{class:"name-edit",onSubmit:s[3]||(s[3]=i(e=>t("save"),["prevent"]))},[y("input",{ref_key:"inputRef",ref:n,class:"name-input",type:"text",value:e.modelValue,placeholder:a.$t("conversation name"),"aria-label":a.$t("conversation name"),onInput:s[0]||(s[0]=e=>t("update:modelValue",e.target.value)),onKeydown:s[1]||(s[1]=h(e=>t("cancel"),["esc"]))},null,40,Se),e.error?($(),C("p",Oe,S(e.error),1)):o("",!0),y("section",je,[k(r,{variant:"secondary",size:"sm","aria-label":a.$t("abandon"),onClick:s[2]||(s[2]=e=>t("cancel"))},{default:j(()=>[c(S(a.$t("abandon")),1)]),_:1},8,["aria-label"]),k(r,{variant:"primary",size:"sm",type:"submit",disabled:!e.modelValue.length,loading:e.saving},{default:j(()=>[c(S(a.$t("save")),1)]),_:1},8,["disabled","loading"])])],32)}}}),Ve={class:"rights-panel"},Ae=["placeholder"],Ee=["aria-expanded","onClick","onKeydown"],Le={key:0,class:"rights"},Ne={key:1,class:"actions-container"},Ue=[{name:"conversations",component:xe},{name:"contacts",component:pe},{name:"name-edit",component:$e}],Ie=[{name:"participants",component:ze},{name:"name-edit",component:U(Be,[["styles",[".name-edit[data-v-898b5575]{gap:10px;display:grid}.name-edit .name-input[data-v-898b5575]{border:1px solid var(--scm-color-subtle);border-radius:var(--scm-radius);background-color:var(--scm-color-surface);width:100%;color:inherit;font:inherit;padding:8px 12px}.name-edit .name-input[data-v-898b5575]:focus-visible{outline:2px solid var(--scm-color-primary);outline-offset:1px}.name-edit .error[data-v-898b5575]{color:var(--scm-color-danger);margin:0;font-size:.75em}.name-edit .controls[data-v-898b5575]{justify-content:flex-end;gap:5px;display:flex}"]],["__scopeId","data-v-898b5575"]])},{name:"rights-editor",component:U(_({__name:"rights-editor.partial",props:{docs:{type:Array},rights:{type:Array},hasRight:{type:Function},isBlocked:{type:Function},filterDocs:{type:Function}},emits:["toggle-right","toggle-block"],setup(e,{emit:a}){const t=e,n=a,s=P(""),r=v(()=>t.filterDocs(t.docs,s.value)),i=P({});function l(e){return!!i.value[e.user]}function u(e){i.value={...i.value,[e.user]:!l(e)}}return(e,a)=>{const i=b("user-avatar-partial"),p=b("icons-partial"),v=b("checkbox-partial"),m=b("button-partial");return $(),C("section",Ve,[H(y("input",{"onUpdate:modelValue":a[0]||(a[0]=e=>s.value=e),class:"member-filter",type:"search",placeholder:e.$t("filter members")},null,8,Ae),[[g,s.value]]),y("ul",null,[($(!0),C(d,null,M(r.value,a=>($(),C("li",{key:a.user,class:E(["participant-rights",{expanded:l(a)}])},[y("section",{class:"who",role:"button",tabindex:"0","aria-expanded":l(a),onClick:e=>u(a),onKeydown:e=>function(e,a){"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),u(a))}(e,a)},[k(i,{"user-id":a.user},null,8,["user-id"]),c(" ("+S(a.state)+") ",1),k(p,{class:"expand-indicator",type:"chevron-down",rotate:l(a)?180:0},null,8,["rotate"])],40,Ee),l(a)?($(),C("section",Le,[($(!0),C(d,null,M(t.rights,o=>($(),Y(v,{key:o,class:"right-toggle","model-value":t.hasRight(a,o),label:e.$t(o),onChange:e=>n("toggle-right",a,o)},null,8,["model-value","label","onChange"]))),128))])):o("",!0),l(a)?($(),C("section",Ne,[k(m,{variant:t.isBlocked(a)?"secondary":"danger",onClick:e=>n("toggle-block",a)},{default:j(()=>[c(S(t.isBlocked(a)?e.$t("unblock"):e.$t("block")),1)]),_:2},1032,["variant","onClick"])])):o("",!0)],2))),128))])])}}}),[["styles",[".rights-panel .member-filter[data-v-a897e833]{border:1px solid var(--scm-color-subtle);border-radius:var(--scm-radius);background-color:var(--scm-color-surface);width:calc(100% - 40px);color:inherit;font:inherit;margin:10px 20px;padding:8px 12px;display:block}.rights-panel .member-filter[data-v-a897e833]:focus-visible{outline:2px solid var(--scm-color-primary);outline-offset:1px}.rights-panel .participant-rights[data-v-a897e833]{gap:30px;padding:20px;display:grid}.rights-panel .participant-rights .who[data-v-a897e833]{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;display:flex}.rights-panel .participant-rights .who .expand-indicator[data-v-a897e833]{margin-left:auto}.rights-panel .participant-rights .rights[data-v-a897e833]{gap:10px;display:grid}.rights-panel .participant-rights .rights .right-toggle[data-v-a897e833]{--scm-checkbox-font-size:.75em}"]],["__scopeId","data-v-a897e833"]])},{name:"main-left-target",component:U(_({__name:"main-left-target.partial",setup(e){const a=n(),t=V(),s=v(()=>"conversations"===a.content.left||!t.activeConversation?.isNew&&("mobile"!==a.viewMode&&!a.content.left)),r=v(()=>"contacts-new"===a.content.left||t.activeConversation?.isNew&&"mobile"!==a.viewMode&&!a.content.left?{startMode:"contacts",autosave:!0}:"contacts-edit"===a.content.left?{startMode:"contacts",autosave:!1}:"contacts-rights"===a.content.left?{startMode:"rights",autosave:!1}:void 0),i=v(()=>!!s.value||(!!r.value||"rename"===a.content.left));function c(){a.unsetContent("left")}return(e,t)=>{const n=b("conversations-module"),d=b("contacts-module"),u=b("name-edit-module");return i.value?($(),C("section",{key:0,class:E(["main-left-target",[q(a).viewMode,q(a).state]])},[s.value?($(),Y(n,{key:0,onClose:c})):o("",!0),r.value?($(),Y(d,l({key:1},r.value,{onClose:c}),null,16)):o("",!0),"rename"===q(a).content.left?($(),Y(u,{key:2,onClose:c})):o("",!0)],2)):o("",!0)}}}),[["styles",[".main-left-target[data-v-233714c6]{background-color:var(--scm-color-surface);z-index:100;width:100%;height:calc(100% - 35px);position:absolute;top:35px;left:0;overflow:hidden}.main-left-target.desktop[data-v-233714c6],.main-left-target.tablet[data-v-233714c6]{top:unset;height:unset;position:relative}.main-left-target.disconnected[data-v-233714c6]{height:calc(100% - 55px);top:55px}"]],["__scopeId","data-v-233714c6"]])}];var Pe={class:"header"},Re={class:"main-target"},De=U(_({__name:"App",props:{config:{type:Object}},setup(e){const a=e,t=n(),s=V();D();const{viewMode:r}=I({config:()=>a.config,applyConfig:A,onSessionRestored:()=>{s.handleReconnect().catch(()=>{})},onStarted:async()=>{t.isSupportOnly&&async function(){try{await s.getAllConversations()}catch(e){console.warn("[studio-chat] could not load conversations",e)}await s.startSupport()}(),await s.getAllConversations(),s.readLastActiveConversation(),s.activateLastOrLatestConversation()}});function i(){t.unsetContent("left")}function l(){t.unsetContent("right")}return(e,a)=>{const n=b("actions-partial"),s=b("connection-status-partial"),c=b("main-left-target-partial"),d=b("chats-module"),u=b("main-right-target-partial"),p=b("error-notice-partial");return $(),C("div",{class:E(["studio-chat-root",[q(r),q(t).state]])},[y("section",Pe,[k(n,{onClose:l}),"disconnected"===q(t).state?($(),Y(s,{key:0})):o("",!0)]),k(c),y("section",Re,["chat"===q(t).content.main?($(),Y(d,{key:0,onClose:i})):o("",!0)]),k(u),k(p),a[0]||(a[0]=y("div",{class:"util"},null,-1))],2)}}}),[["styles",[".studio-chat-root[data-v-74b09ea5]{--scm-font-size:16px;--scm-color-primary:#3f2d56;--scm-color-own:#533474;--scm-color-surface:#f9f9f9;--scm-color-subtle:#fcfcfc;--scm-color-shadow:#ccc;--scm-color-muted:#757474;--scm-color-danger:#ea624f;--scm-color-text:#555;--scm-color-highlight:hsl(from var(--scm-color-primary) h s 92%);--scm-radius:5px;--scm-radius-lg:8px;font-family:Open Sans,sans-serif;font-size:var(--scm-font-size)}#app[data-v-74b09ea5]{height:100vh}.studio-chat-root[data-v-74b09ea5]{grid-template-rows:35px 1fr;grid-template-columns:1fr;height:100%;display:grid}.studio-chat-root .header[data-v-74b09ea5]{background-color:var(--scm-color-surface);grid-template-columns:max-content 1fr;align-content:center;display:grid}.studio-chat-root.disconnected[data-v-74b09ea5]{grid-template-rows:55px 1fr}.studio-chat-root.disconnected .header[data-v-74b09ea5]{grid-template-rows:35px 20px}.studio-chat-root.disconnected .header .connection-status[data-v-74b09ea5]{grid-column:1/3}.studio-chat-root .conversations-module[data-v-74b09ea5]{grid-column:1}.studio-chat-root .main-target[data-v-74b09ea5]{height:100%;overflow:hidden}.studio-chat-root.desktop[data-v-74b09ea5],.studio-chat-root.tablet[data-v-74b09ea5]{grid-template-columns:350px 1fr}.studio-chat-root.desktop .header[data-v-74b09ea5],.studio-chat-root.tablet .header[data-v-74b09ea5]{grid-column:1/3}.studio-chat-root .chats-module[data-v-74b09ea5]{grid-column:1}","*,:before,:after{box-sizing:border-box;background-repeat:no-repeat;margin:0;padding:0}*{min-width:0}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit;color:inherit}a{color:inherit;text-decoration:none}ul,ol{list-style:none}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}:host{--scm-font-size:16px;--scm-color-primary:#3f2d56;--scm-color-own:#533474;--scm-color-surface:#f9f9f9;--scm-color-subtle:#fcfcfc;--scm-color-shadow:#ccc;--scm-color-muted:#757474;--scm-color-danger:#ea624f;--scm-color-text:#555;--scm-color-highlight:hsl(from var(--scm-color-primary) h s 92%);--scm-radius:5px;--scm-radius-lg:8px;height:100%;font-family:Open Sans,sans-serif;font-size:var(--scm-font-size);display:block}"]],["__scopeId","data-v-74b09ea5"]]);ee.default.extend(ae.default),G();var Ke=m(De,{shadowRoot:!0,configureApp(e){const a=t();e.use(F,{selector:"lilaquadrat-studio-chat"}),e.use(a),e.use(s),function(e){B([...z,...Ue],void 0,"module",e),B([...R,...Ie],void 0,"partial",e)}(e)}});customElements.get("lilaquadrat-studio-chat")||customElements.define("lilaquadrat-studio-chat",Ke);export{Ke as LilaquadratStudioChat};
|
package/dist/app/index.html
CHANGED
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
color: #e53935;
|
|
28
28
|
}
|
|
29
29
|
</style>
|
|
30
|
-
<script type="module" crossorigin src="/assets/main-
|
|
31
|
-
<link rel="modulepreload" crossorigin href="/assets/preload-helper-
|
|
30
|
+
<script type="module" crossorigin src="/assets/main-B18LDkun.js"></script>
|
|
31
|
+
<link rel="modulepreload" crossorigin href="/assets/preload-helper-OSX1TyOM.js">
|
|
32
32
|
</head>
|
|
33
33
|
<body>
|
|
34
34
|
<div id="app"></div>
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
color: #e53935;
|
|
29
29
|
}
|
|
30
30
|
</style>
|
|
31
|
-
<script type="module" crossorigin src="/assets/support-
|
|
32
|
-
<link rel="modulepreload" crossorigin href="/assets/preload-helper-
|
|
31
|
+
<script type="module" crossorigin src="/assets/support-DgYHnicF.js"></script>
|
|
32
|
+
<link rel="modulepreload" crossorigin href="/assets/preload-helper-OSX1TyOM.js">
|
|
33
33
|
</head>
|
|
34
34
|
<body>
|
|
35
35
|
<div id="app"></div>
|
|
@@ -8,11 +8,12 @@
|
|
|
8
8
|
* and sends it as the WS `authenticate` token + HTTP Bearer.
|
|
9
9
|
*
|
|
10
10
|
* The function is called on every (re)connect and may be async, so the host can
|
|
11
|
-
* refresh/rotate the token transparently
|
|
11
|
+
* refresh/rotate the token transparently. `force` is true after AUTH_FAILED and
|
|
12
|
+
* must bypass the provider's normal minimum-validity check.
|
|
12
13
|
*/
|
|
13
|
-
export type GetTokenFn = () => string | Promise<string>;
|
|
14
|
+
export type GetTokenFn = (_force?: boolean) => string | Promise<string>;
|
|
14
15
|
/** register the host implementation. last call wins. */
|
|
15
16
|
export declare function setGetToken(fn: GetTokenFn): void;
|
|
16
17
|
export declare function hasGetToken(): boolean;
|
|
17
|
-
/**
|
|
18
|
-
export declare function resolveToken(): Promise<string | undefined>;
|
|
18
|
+
/** Resolve a token through the registered implementation, optionally forcing rotation. */
|
|
19
|
+
export declare function resolveToken(force?: boolean): Promise<string | undefined>;
|
|
@@ -31,7 +31,8 @@ export interface SupportAgentConfig {
|
|
|
31
31
|
token?: string;
|
|
32
32
|
/**
|
|
33
33
|
* host-provided token resolver. Called on every (re)connect; may be async and must always
|
|
34
|
-
* return a currently-valid token.
|
|
34
|
+
* return a currently-valid token. Receives `true` after AUTH_FAILED to force rotation.
|
|
35
|
+
* Preferred over the static `token` — identity comes from its `sub`.
|
|
35
36
|
*/
|
|
36
37
|
getToken?: ChatModuleConfig['getToken'];
|
|
37
38
|
/** websocket endpoint. Defaults to ws://localhost:3001 (dev). */
|
|
@@ -68,7 +68,8 @@ export interface ChatModuleConfig {
|
|
|
68
68
|
token?: string;
|
|
69
69
|
/**
|
|
70
70
|
* host-provided token resolver. Called on every (re)connect; may be async and must always
|
|
71
|
-
* return a currently-valid token.
|
|
71
|
+
* return a currently-valid token. Receives `true` after AUTH_FAILED to force rotation.
|
|
72
|
+
* Preferred over the static `token` — identity comes from its `sub`.
|
|
72
73
|
*/
|
|
73
74
|
getToken?: GetTokenFn;
|
|
74
75
|
}
|
|
@@ -61,6 +61,8 @@ export declare class ChatSession {
|
|
|
61
61
|
private reauthAttempts;
|
|
62
62
|
private lastAuthSentAt;
|
|
63
63
|
private reauthTimerId;
|
|
64
|
+
private forceRefreshOnReauth;
|
|
65
|
+
private authAckTimeoutId;
|
|
64
66
|
/** backlog waiting for the session to become ready */
|
|
65
67
|
private queue;
|
|
66
68
|
/** sent but not yet confirmed by a server echo */
|
|
@@ -88,6 +90,7 @@ export declare class ChatSession {
|
|
|
88
90
|
private hardReconnect;
|
|
89
91
|
private scheduleReauth;
|
|
90
92
|
private clearReauthTimer;
|
|
93
|
+
private clearAuthAckTimeout;
|
|
91
94
|
/** server echoes settle tracked sends: own message echo / conversation:new with our client id */
|
|
92
95
|
private confirmEcho;
|
|
93
96
|
private settleRejected;
|
|
@@ -24,6 +24,7 @@ export declare class WebSocketManager {
|
|
|
24
24
|
private heartbeatIntervalId;
|
|
25
25
|
private lastActivity;
|
|
26
26
|
private recoveryListenersInstalled;
|
|
27
|
+
private closeNotified;
|
|
27
28
|
private constructor();
|
|
28
29
|
static getInstance(): WebSocketManager;
|
|
29
30
|
get isConnected(): boolean;
|
|
@@ -45,6 +46,7 @@ export declare class WebSocketManager {
|
|
|
45
46
|
private stopHeartbeat;
|
|
46
47
|
private attemptReconnect;
|
|
47
48
|
private calculateRetryDelay;
|
|
49
|
+
private notifyClose;
|
|
48
50
|
reconnect(): void;
|
|
49
51
|
disconnect(): void;
|
|
50
52
|
private _teardownSocket;
|
|
@@ -88,6 +88,8 @@ declare const i18n: import("vue-i18n").I18n<{
|
|
|
88
88
|
unknown: string;
|
|
89
89
|
RATE_LIMIT_EXCEEDED: string;
|
|
90
90
|
NOT_ALLOWED: string;
|
|
91
|
+
FORBIDDEN: string;
|
|
92
|
+
UNAUTHORIZED: string;
|
|
91
93
|
ACTION_NOT_ALLOWED: string;
|
|
92
94
|
NOT_A_CONTACT: string;
|
|
93
95
|
CONVERSATION_NOT_FOUND: string;
|