{"version":3,"sources":["jquery-migrate-1.2.1.min.js","signalr.min.js","url-polyfill.min.js"],"names":[],"mappings":"AAAA;AACA;ACDA;ACAA","file":"../libs.all.extended-21343fac.js","sourcesContent":["/*! jQuery Migrate v1.2.1 | (c) 2005, 2013 jQuery Foundation, Inc. and other contributors | jquery.org/license */\r\njQuery.migrateMute===void 0&&(jQuery.migrateMute=!0),function(e,t,n){function r(n){var r=t.console;i[n]||(i[n]=!0,e.migrateWarnings.push(n),r&&r.warn&&!e.migrateMute&&(r.warn(\"JQMIGRATE: \"+n),e.migrateTrace&&r.trace&&r.trace()))}function a(t,a,i,o){if(Object.defineProperty)try{return Object.defineProperty(t,a,{configurable:!0,enumerable:!0,get:function(){return r(o),i},set:function(e){r(o),i=e}}),n}catch(s){}e._definePropertyBroken=!0,t[a]=i}var i={};e.migrateWarnings=[],!e.migrateMute&&t.console&&t.console.log&&t.console.log(\"JQMIGRATE: Logging is active\"),e.migrateTrace===n&&(e.migrateTrace=!0),e.migrateReset=function(){i={},e.migrateWarnings.length=0},\"BackCompat\"===document.compatMode&&r(\"jQuery is not compatible with Quirks Mode\");var o=e(\"\",{size:1}).attr(\"size\")&&e.attrFn,s=e.attr,u=e.attrHooks.value&&e.attrHooks.value.get||function(){return null},c=e.attrHooks.value&&e.attrHooks.value.set||function(){return n},l=/^(?:input|button)$/i,d=/^[238]$/,p=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,f=/^(?:checked|selected)$/i;a(e,\"attrFn\",o||{},\"jQuery.attrFn is deprecated\"),e.attr=function(t,a,i,u){var c=a.toLowerCase(),g=t&&t.nodeType;return u&&(4>s.length&&r(\"jQuery.fn.attr( props, pass ) is deprecated\"),t&&!d.test(g)&&(o?a in o:e.isFunction(e.fn[a])))?e(t)[a](i):(\"type\"===a&&i!==n&&l.test(t.nodeName)&&t.parentNode&&r(\"Can't change the 'type' of an input or button in IE 6/7/8\"),!e.attrHooks[c]&&p.test(c)&&(e.attrHooks[c]={get:function(t,r){var a,i=e.prop(t,r);return i===!0||\"boolean\"!=typeof i&&(a=t.getAttributeNode(r))&&a.nodeValue!==!1?r.toLowerCase():n},set:function(t,n,r){var a;return n===!1?e.removeAttr(t,r):(a=e.propFix[r]||r,a in t&&(t[a]=!0),t.setAttribute(r,r.toLowerCase())),r}},f.test(c)&&r(\"jQuery.fn.attr('\"+c+\"') may use property instead of attribute\")),s.call(e,t,a,i))},e.attrHooks.value={get:function(e,t){var n=(e.nodeName||\"\").toLowerCase();return\"button\"===n?u.apply(this,arguments):(\"input\"!==n&&\"option\"!==n&&r(\"jQuery.fn.attr('value') no longer gets properties\"),t in e?e.value:null)},set:function(e,t){var a=(e.nodeName||\"\").toLowerCase();return\"button\"===a?c.apply(this,arguments):(\"input\"!==a&&\"option\"!==a&&r(\"jQuery.fn.attr('value', val) no longer sets properties\"),e.value=t,n)}};var g,h,v=e.fn.init,m=e.parseJSON,y=/^([^<]*)(<[\\w\\W]+>)([^>]*)$/;e.fn.init=function(t,n,a){var i;return t&&\"string\"==typeof t&&!e.isPlainObject(n)&&(i=y.exec(e.trim(t)))&&i[0]&&(\"<\"!==t.charAt(0)&&r(\"$(html) HTML strings must start with '<' character\"),i[3]&&r(\"$(html) HTML text after last tag is ignored\"),\"#\"===i[0].charAt(0)&&(r(\"HTML string cannot start with a '#' character\"),e.error(\"JQMIGRATE: Invalid selector string (XSS)\")),n&&n.context&&(n=n.context),e.parseHTML)?v.call(this,e.parseHTML(i[2],n,!0),n,a):v.apply(this,arguments)},e.fn.init.prototype=e.fn,e.parseJSON=function(e){return e||null===e?m.apply(this,arguments):(r(\"jQuery.parseJSON requires a valid JSON string\"),null)},e.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \\/]([\\w.]+)/.exec(e)||/(webkit)[ \\/]([\\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \\/]([\\w.]+)/.exec(e)||/(msie) ([\\w.]+)/.exec(e)||0>e.indexOf(\"compatible\")&&/(mozilla)(?:.*? rv:([\\w.]+)|)/.exec(e)||[];return{browser:t[1]||\"\",version:t[2]||\"0\"}},e.browser||(g=e.uaMatch(navigator.userAgent),h={},g.browser&&(h[g.browser]=!0,h.version=g.version),h.chrome?h.webkit=!0:h.webkit&&(h.safari=!0),e.browser=h),a(e,\"browser\",e.browser,\"jQuery.browser is deprecated\"),e.sub=function(){function t(e,n){return new t.fn.init(e,n)}e.extend(!0,t,this),t.superclass=this,t.fn=t.prototype=this(),t.fn.constructor=t,t.sub=this.sub,t.fn.init=function(r,a){return a&&a instanceof e&&!(a instanceof t)&&(a=t(a)),e.fn.init.call(this,r,a,n)},t.fn.init.prototype=t.fn;var n=t(document);return r(\"jQuery.sub() is deprecated\"),t},e.ajaxSetup({converters:{\"text json\":e.parseJSON}});var b=e.fn.data;e.fn.data=function(t){var a,i,o=this[0];return!o||\"events\"!==t||1!==arguments.length||(a=e.data(o,t),i=e._data(o,t),a!==n&&a!==i||i===n)?b.apply(this,arguments):(r(\"Use of jQuery.fn.data('events') is deprecated\"),i)};var j=/\\/(java|ecma)script/i,w=e.fn.andSelf||e.fn.addBack;e.fn.andSelf=function(){return r(\"jQuery.fn.andSelf() replaced by jQuery.fn.addBack()\"),w.apply(this,arguments)},e.clean||(e.clean=function(t,a,i,o){a=a||document,a=!a.nodeType&&a[0]||a,a=a.ownerDocument||a,r(\"jQuery.clean() is deprecated\");var s,u,c,l,d=[];if(e.merge(d,e.buildFragment(t,a).childNodes),i)for(c=function(e){return!e.type||j.test(e.type)?o?o.push(e.parentNode?e.parentNode.removeChild(e):e):i.appendChild(e):n},s=0;null!=(u=d[s]);s++)e.nodeName(u,\"script\")&&c(u)||(i.appendChild(u),u.getElementsByTagName!==n&&(l=e.grep(e.merge([],u.getElementsByTagName(\"script\")),c),d.splice.apply(d,[s+1,0].concat(l)),s+=l.length));return d});var Q=e.event.add,x=e.event.remove,k=e.event.trigger,N=e.fn.toggle,T=e.fn.live,M=e.fn.die,S=\"ajaxStart|ajaxStop|ajaxSend|ajaxComplete|ajaxError|ajaxSuccess\",C=RegExp(\"\\\\b(?:\"+S+\")\\\\b\"),H=/(?:^|\\s)hover(\\.\\S+|)\\b/,A=function(t){return\"string\"!=typeof t||e.event.special.hover?t:(H.test(t)&&r(\"'hover' pseudo-event is deprecated, use 'mouseenter mouseleave'\"),t&&t.replace(H,\"mouseenter$1 mouseleave$1\"))};e.event.props&&\"attrChange\"!==e.event.props[0]&&e.event.props.unshift(\"attrChange\",\"attrName\",\"relatedNode\",\"srcElement\"),e.event.dispatch&&a(e.event,\"handle\",e.event.dispatch,\"jQuery.event.handle is undocumented and deprecated\"),e.event.add=function(e,t,n,a,i){e!==document&&C.test(t)&&r(\"AJAX events should be attached to document: \"+t),Q.call(this,e,A(t||\"\"),n,a,i)},e.event.remove=function(e,t,n,r,a){x.call(this,e,A(t)||\"\",n,r,a)},e.fn.error=function(){var e=Array.prototype.slice.call(arguments,0);return r(\"jQuery.fn.error() is deprecated\"),e.splice(0,0,\"error\"),arguments.length?this.bind.apply(this,e):(this.triggerHandler.apply(this,e),this)},e.fn.toggle=function(t,n){if(!e.isFunction(t)||!e.isFunction(n))return N.apply(this,arguments);r(\"jQuery.fn.toggle(handler, handler...) is deprecated\");var a=arguments,i=t.guid||e.guid++,o=0,s=function(n){var r=(e._data(this,\"lastToggle\"+t.guid)||0)%o;return e._data(this,\"lastToggle\"+t.guid,r+1),n.preventDefault(),a[r].apply(this,arguments)||!1};for(s.guid=i;a.length>o;)a[o++].guid=i;return this.click(s)},e.fn.live=function(t,n,a){return r(\"jQuery.fn.live() is deprecated\"),T?T.apply(this,arguments):(e(this.context).on(t,this.selector,n,a),this)},e.fn.die=function(t,n){return r(\"jQuery.fn.die() is deprecated\"),M?M.apply(this,arguments):(e(this.context).off(t,this.selector||\"**\",n),this)},e.event.trigger=function(e,t,n,a){return n||C.test(e)||r(\"Global events are undocumented and deprecated\"),k.call(this,e,t,n||document,a)},e.each(S.split(\"|\"),function(t,n){e.event.special[n]={setup:function(){var t=this;return t!==document&&(e.event.add(document,n+\".\"+e.guid,function(){e.event.trigger(n,null,t,!0)}),e._data(this,n,e.guid++)),!1},teardown:function(){return this!==document&&e.event.remove(document,n+\".\"+e._data(this,n)),!1}}})}(jQuery,window);","var t,e;t=self,e=()=>(()=>{var t={d:(e,s)=>{for(var i in s)t.o(s,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:s[i]})}};t.g=function(){if(\"object\"==typeof globalThis)return globalThis;try{return this||new Function(\"return this\")()}catch(t){if(\"object\"==typeof window)return window}}(),t.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),t.r=t=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"t\",{value:!0})};var e,s={};t.r(s),t.d(s,{AbortError:()=>r,DefaultHttpClient:()=>H,HttpClient:()=>d,HttpError:()=>i,HttpResponse:()=>u,HttpTransportType:()=>F,HubConnection:()=>q,HubConnectionBuilder:()=>tt,HubConnectionState:()=>A,JsonHubProtocol:()=>Y,LogLevel:()=>e,MessageType:()=>x,NullLogger:()=>f,Subject:()=>U,TimeoutError:()=>n,TransferFormat:()=>B,VERSION:()=>p});class i extends Error{constructor(t,e){const s=new.target.prototype;super(`${t}: Status code '${e}'`),this.statusCode=e,this.__proto__=s}}class n extends Error{constructor(t=\"A timeout occurred.\"){const e=new.target.prototype;super(t),this.__proto__=e}}class r extends Error{constructor(t=\"An abort occurred.\"){const e=new.target.prototype;super(t),this.__proto__=e}}class o extends Error{constructor(t,e){const s=new.target.prototype;super(t),this.transport=e,this.errorType=\"UnsupportedTransportError\",this.__proto__=s}}class h extends Error{constructor(t,e){const s=new.target.prototype;super(t),this.transport=e,this.errorType=\"DisabledTransportError\",this.__proto__=s}}class c extends Error{constructor(t,e){const s=new.target.prototype;super(t),this.transport=e,this.errorType=\"FailedToStartTransportError\",this.__proto__=s}}class a extends Error{constructor(t){const e=new.target.prototype;super(t),this.errorType=\"FailedToNegotiateWithServerError\",this.__proto__=e}}class l extends Error{constructor(t,e){const s=new.target.prototype;super(t),this.innerErrors=e,this.__proto__=s}}class u{constructor(t,e,s){this.statusCode=t,this.statusText=e,this.content=s}}class d{get(t,e){return this.send({...e,method:\"GET\",url:t})}post(t,e){return this.send({...e,method:\"POST\",url:t})}delete(t,e){return this.send({...e,method:\"DELETE\",url:t})}getCookieString(t){return\"\"}}!function(t){t[t.Trace=0]=\"Trace\",t[t.Debug=1]=\"Debug\",t[t.Information=2]=\"Information\",t[t.Warning=3]=\"Warning\",t[t.Error=4]=\"Error\",t[t.Critical=5]=\"Critical\",t[t.None=6]=\"None\"}(e||(e={}));class f{constructor(){}log(t,e){}}f.instance=new f;const p=\"8.0.7\";class w{static isRequired(t,e){if(null==t)throw new Error(`The '${e}' argument is required.`)}static isNotEmpty(t,e){if(!t||t.match(/^\\s*$/))throw new Error(`The '${e}' argument should not be empty.`)}static isIn(t,e,s){if(!(t in e))throw new Error(`Unknown ${s} value: ${t}.`)}}class g{static get isBrowser(){return!g.isNode&&\"object\"==typeof window&&\"object\"==typeof window.document}static get isWebWorker(){return!g.isNode&&\"object\"==typeof self&&\"importScripts\"in self}static get isReactNative(){return!g.isNode&&\"object\"==typeof window&&void 0===window.document}static get isNode(){return\"undefined\"!=typeof process&&process.release&&\"node\"===process.release.name}}function m(t,e){let s=\"\";return y(t)?(s=`Binary data of length ${t.byteLength}`,e&&(s+=`. Content: '${function(t){const e=new Uint8Array(t);let s=\"\";return e.forEach((t=>{s+=`0x${t<16?\"0\":\"\"}${t.toString(16)} `})),s.substr(0,s.length-1)}(t)}'`)):\"string\"==typeof t&&(s=`String data of length ${t.length}`,e&&(s+=`. Content: '${t}'`)),s}function y(t){return t&&\"undefined\"!=typeof ArrayBuffer&&(t instanceof ArrayBuffer||t.constructor&&\"ArrayBuffer\"===t.constructor.name)}async function b(t,s,i,n,r,o){const h={},[c,a]=$();h[c]=a,t.log(e.Trace,`(${s} transport) sending data. ${m(r,o.logMessageContent)}.`);const l=y(r)?\"arraybuffer\":\"text\",u=await i.post(n,{content:r,headers:{...h,...o.headers},responseType:l,timeout:o.timeout,withCredentials:o.withCredentials});t.log(e.Trace,`(${s} transport) request complete. Response status: ${u.statusCode}.`)}class v{constructor(t,e){this.i=t,this.h=e}dispose(){const t=this.i.observers.indexOf(this.h);t>-1&&this.i.observers.splice(t,1),0===this.i.observers.length&&this.i.cancelCallback&&this.i.cancelCallback().catch((t=>{}))}}class E{constructor(t){this.l=t,this.out=console}log(t,s){if(t>=this.l){const i=`[${(new Date).toISOString()}] ${e[t]}: ${s}`;switch(t){case e.Critical:case e.Error:this.out.error(i);break;case e.Warning:this.out.warn(i);break;case e.Information:this.out.info(i);break;default:this.out.log(i)}}}}function $(){let t=\"X-SignalR-User-Agent\";return g.isNode&&(t=\"User-Agent\"),[t,C(p,S(),g.isNode?\"NodeJS\":\"Browser\",k())]}function C(t,e,s,i){let n=\"Microsoft SignalR/\";const r=t.split(\".\");return n+=`${r[0]}.${r[1]}`,n+=` (${t}; `,n+=e&&\"\"!==e?`${e}; `:\"Unknown OS; \",n+=`${s}`,n+=i?`; ${i}`:\"; Unknown Runtime Version\",n+=\")\",n}function S(){if(!g.isNode)return\"\";switch(process.platform){case\"win32\":return\"Windows NT\";case\"darwin\":return\"macOS\";case\"linux\":return\"Linux\";default:return process.platform}}function k(){if(g.isNode)return process.versions.node}function P(t){return t.stack?t.stack:t.message?t.message:`${t}`}class T extends d{constructor(e){if(super(),this.u=e,\"undefined\"==typeof fetch||g.isNode){const t=require;this.p=new(t(\"tough-cookie\").CookieJar),\"undefined\"==typeof fetch?this.m=t(\"node-fetch\"):this.m=fetch,this.m=t(\"fetch-cookie\")(this.m,this.p)}else this.m=fetch.bind(function(){if(\"undefined\"!=typeof globalThis)return globalThis;if(\"undefined\"!=typeof self)return self;if(\"undefined\"!=typeof window)return window;if(void 0!==t.g)return t.g;throw new Error(\"could not find global\")}());if(\"undefined\"==typeof AbortController){const t=require;this.v=t(\"abort-controller\")}else this.v=AbortController}async send(t){if(t.abortSignal&&t.abortSignal.aborted)throw new r;if(!t.method)throw new Error(\"No method defined.\");if(!t.url)throw new Error(\"No url defined.\");const s=new this.v;let o;t.abortSignal&&(t.abortSignal.onabort=()=>{s.abort(),o=new r});let h,c=null;if(t.timeout){const i=t.timeout;c=setTimeout((()=>{s.abort(),this.u.log(e.Warning,\"Timeout from HTTP request.\"),o=new n}),i)}\"\"===t.content&&(t.content=void 0),t.content&&(t.headers=t.headers||{},y(t.content)?t.headers[\"Content-Type\"]=\"application/octet-stream\":t.headers[\"Content-Type\"]=\"text/plain;charset=UTF-8\");try{h=await this.m(t.url,{body:t.content,cache:\"no-cache\",credentials:!0===t.withCredentials?\"include\":\"same-origin\",headers:{\"X-Requested-With\":\"XMLHttpRequest\",...t.headers},method:t.method,mode:\"cors\",redirect:\"follow\",signal:s.signal})}catch(t){if(o)throw o;throw this.u.log(e.Warning,`Error from HTTP request. ${t}.`),t}finally{c&&clearTimeout(c),t.abortSignal&&(t.abortSignal.onabort=null)}if(!h.ok){const t=await I(h,\"text\");throw new i(t||h.statusText,h.status)}const a=I(h,t.responseType),l=await a;return new u(h.status,h.statusText,l)}getCookieString(t){let e=\"\";return g.isNode&&this.p&&this.p.getCookies(t,((t,s)=>e=s.join(\"; \"))),e}}function I(t,e){let s;switch(e){case\"arraybuffer\":s=t.arrayBuffer();break;case\"text\":default:s=t.text();break;case\"blob\":case\"document\":case\"json\":throw new Error(`${e} is not supported.`)}return s}class _ extends d{constructor(t){super(),this.u=t}send(t){return t.abortSignal&&t.abortSignal.aborted?Promise.reject(new r):t.method?t.url?new Promise(((s,o)=>{const h=new XMLHttpRequest;h.open(t.method,t.url,!0),h.withCredentials=void 0===t.withCredentials||t.withCredentials,h.setRequestHeader(\"X-Requested-With\",\"XMLHttpRequest\"),\"\"===t.content&&(t.content=void 0),t.content&&(y(t.content)?h.setRequestHeader(\"Content-Type\",\"application/octet-stream\"):h.setRequestHeader(\"Content-Type\",\"text/plain;charset=UTF-8\"));const c=t.headers;c&&Object.keys(c).forEach((t=>{h.setRequestHeader(t,c[t])})),t.responseType&&(h.responseType=t.responseType),t.abortSignal&&(t.abortSignal.onabort=()=>{h.abort(),o(new r)}),t.timeout&&(h.timeout=t.timeout),h.onload=()=>{t.abortSignal&&(t.abortSignal.onabort=null),h.status>=200&&h.status<300?s(new u(h.status,h.statusText,h.response||h.responseText)):o(new i(h.response||h.responseText||h.statusText,h.status))},h.onerror=()=>{this.u.log(e.Warning,`Error from HTTP request. ${h.status}: ${h.statusText}.`),o(new i(h.statusText,h.status))},h.ontimeout=()=>{this.u.log(e.Warning,\"Timeout from HTTP request.\"),o(new n)},h.send(t.content)})):Promise.reject(new Error(\"No url defined.\")):Promise.reject(new Error(\"No method defined.\"))}}class H extends d{constructor(t){if(super(),\"undefined\"!=typeof fetch||g.isNode)this.$=new T(t);else{if(\"undefined\"==typeof XMLHttpRequest)throw new Error(\"No usable HttpClient found.\");this.$=new _(t)}}send(t){return t.abortSignal&&t.abortSignal.aborted?Promise.reject(new r):t.method?t.url?this.$.send(t):Promise.reject(new Error(\"No url defined.\")):Promise.reject(new Error(\"No method defined.\"))}getCookieString(t){return this.$.getCookieString(t)}}class D{static write(t){return`${t}${D.RecordSeparator}`}static parse(t){if(t[t.length-1]!==D.RecordSeparator)throw new Error(\"Message is incomplete.\");const e=t.split(D.RecordSeparator);return e.pop(),e}}D.RecordSeparatorCode=30,D.RecordSeparator=String.fromCharCode(D.RecordSeparatorCode);class R{writeHandshakeRequest(t){return D.write(JSON.stringify(t))}parseHandshakeResponse(t){let e,s;if(y(t)){const i=new Uint8Array(t),n=i.indexOf(D.RecordSeparatorCode);if(-1===n)throw new Error(\"Message is incomplete.\");const r=n+1;e=String.fromCharCode.apply(null,Array.prototype.slice.call(i.slice(0,r))),s=i.byteLength>r?i.slice(r).buffer:null}else{const i=t,n=i.indexOf(D.RecordSeparator);if(-1===n)throw new Error(\"Message is incomplete.\");const r=n+1;e=i.substring(0,r),s=i.length>r?i.substring(r):null}const i=D.parse(e),n=JSON.parse(i[0]);if(n.type)throw new Error(\"Expected a handshake response from the server.\");return[s,n]}}var x,A;!function(t){t[t.Invocation=1]=\"Invocation\",t[t.StreamItem=2]=\"StreamItem\",t[t.Completion=3]=\"Completion\",t[t.StreamInvocation=4]=\"StreamInvocation\",t[t.CancelInvocation=5]=\"CancelInvocation\",t[t.Ping=6]=\"Ping\",t[t.Close=7]=\"Close\",t[t.Ack=8]=\"Ack\",t[t.Sequence=9]=\"Sequence\"}(x||(x={}));class U{constructor(){this.observers=[]}next(t){for(const e of this.observers)e.next(t)}error(t){for(const e of this.observers)e.error&&e.error(t)}complete(){for(const t of this.observers)t.complete&&t.complete()}subscribe(t){return this.observers.push(t),new v(this,t)}}class L{constructor(t,e,s){this.C=1e5,this.S=[],this.k=0,this.P=!1,this.T=1,this.I=0,this._=0,this.H=!1,this.D=t,this.R=e,this.C=s}async A(t){const e=this.D.writeMessage(t);let s=Promise.resolve();if(this.U(t)){this.k++;let t=()=>{},i=()=>{};y(e)?this._+=e.byteLength:this._+=e.length,this._>=this.C&&(s=new Promise(((e,s)=>{t=e,i=s}))),this.S.push(new N(e,this.k,t,i))}try{this.H||await this.R.send(e)}catch{this.L()}await s}N(t){let e=-1;for(let s=0;sthis.T?this.R.stop(new Error(\"Sequence ID greater than amount of messages we've received.\")):this.T=t.sequenceId}L(){this.H=!0,this.P=!0}async B(){const t=0!==this.S.length?this.S[0].q:this.k+1;await this.R.send(this.D.writeMessage({type:x.Sequence,sequenceId:t}));const e=this.S;for(const t of e)await this.R.send(t.M);this.H=!1}X(t){null!=t||(t=new Error(\"Unable to reconnect to server.\"));for(const e of this.S)e.J(t)}U(t){switch(t.type){case x.Invocation:case x.StreamItem:case x.Completion:case x.StreamInvocation:case x.CancelInvocation:return!0;case x.Close:case x.Sequence:case x.Ping:case x.Ack:return!1}}O(){void 0===this.V&&(this.V=setTimeout((async()=>{try{this.H||await this.R.send(this.D.writeMessage({type:x.Ack,sequenceId:this.I}))}catch{}clearTimeout(this.V),this.V=void 0}),1e3))}}class N{constructor(t,e,s,i){this.M=t,this.q=e,this.j=s,this.J=i}}!function(t){t.Disconnected=\"Disconnected\",t.Connecting=\"Connecting\",t.Connected=\"Connected\",t.Disconnecting=\"Disconnecting\",t.Reconnecting=\"Reconnecting\"}(A||(A={}));class q{static create(t,e,s,i,n,r,o){return new q(t,e,s,i,n,r,o)}constructor(t,s,i,n,r,o,h){this.K=0,this.G=()=>{this.u.log(e.Warning,\"The page is being frozen, this will likely lead to the connection being closed and messages being lost. For more information see the docs at https://learn.microsoft.com/aspnet/core/signalr/javascript-client#bsleep\")},w.isRequired(t,\"connection\"),w.isRequired(s,\"logger\"),w.isRequired(i,\"protocol\"),this.serverTimeoutInMilliseconds=null!=r?r:3e4,this.keepAliveIntervalInMilliseconds=null!=o?o:15e3,this.Y=null!=h?h:1e5,this.u=s,this.D=i,this.connection=t,this.Z=n,this.tt=new R,this.connection.onreceive=t=>this.et(t),this.connection.onclose=t=>this.st(t),this.it={},this.nt={},this.rt=[],this.ot=[],this.ht=[],this.ct=0,this.lt=!1,this.ut=A.Disconnected,this.dt=!1,this.ft=this.D.writeMessage({type:x.Ping})}get state(){return this.ut}get connectionId(){return this.connection&&this.connection.connectionId||null}get baseUrl(){return this.connection.baseUrl||\"\"}set baseUrl(t){if(this.ut!==A.Disconnected&&this.ut!==A.Reconnecting)throw new Error(\"The HubConnection must be in the Disconnected or Reconnecting state to change the url.\");if(!t)throw new Error(\"The HubConnection url must be a valid url.\");this.connection.baseUrl=t}start(){return this.wt=this.gt(),this.wt}async gt(){if(this.ut!==A.Disconnected)return Promise.reject(new Error(\"Cannot start a HubConnection that is not in the 'Disconnected' state.\"));this.ut=A.Connecting,this.u.log(e.Debug,\"Starting HubConnection.\");try{await this.yt(),g.isBrowser&&window.document.addEventListener(\"freeze\",this.G),this.ut=A.Connected,this.dt=!0,this.u.log(e.Debug,\"HubConnection connected successfully.\")}catch(t){return this.ut=A.Disconnected,this.u.log(e.Debug,`HubConnection failed to start successfully because of error '${t}'.`),Promise.reject(t)}}async yt(){this.bt=void 0,this.lt=!1;const t=new Promise(((t,e)=>{this.vt=t,this.Et=e}));await this.connection.start(this.D.transferFormat);try{let s=this.D.version;this.connection.features.reconnect||(s=1);const i={protocol:this.D.name,version:s};if(this.u.log(e.Debug,\"Sending handshake request.\"),await this.$t(this.tt.writeHandshakeRequest(i)),this.u.log(e.Information,`Using HubProtocol '${this.D.name}'.`),this.Ct(),this.St(),this.kt(),await t,this.bt)throw this.bt;!!this.connection.features.reconnect&&(this.Pt=new L(this.D,this.connection,this.Y),this.connection.features.disconnected=this.Pt.L.bind(this.Pt),this.connection.features.resend=()=>{if(this.Pt)return this.Pt.B()}),this.connection.features.inherentKeepAlive||await this.$t(this.ft)}catch(t){throw this.u.log(e.Debug,`Hub handshake failed with error '${t}' during start(). Stopping HubConnection.`),this.Ct(),this.Tt(),await this.connection.stop(t),t}}async stop(){const t=this.wt;this.connection.features.reconnect=!1,this.It=this._t(),await this.It;try{await t}catch(t){}}_t(t){if(this.ut===A.Disconnected)return this.u.log(e.Debug,`Call to HubConnection.stop(${t}) ignored because it is already in the disconnected state.`),Promise.resolve();if(this.ut===A.Disconnecting)return this.u.log(e.Debug,`Call to HttpConnection.stop(${t}) ignored because the connection is already in the disconnecting state.`),this.It;const s=this.ut;return this.ut=A.Disconnecting,this.u.log(e.Debug,\"Stopping HubConnection.\"),this.Ht?(this.u.log(e.Debug,\"Connection stopped during reconnect delay. Done reconnecting.\"),clearTimeout(this.Ht),this.Ht=void 0,this.Dt(),Promise.resolve()):(s===A.Connected&&this.Rt(),this.Ct(),this.Tt(),this.bt=t||new r(\"The connection was stopped before the hub handshake could complete.\"),this.connection.stop(t))}async Rt(){try{await this.xt(this.At())}catch{}}stream(t,...e){const[s,i]=this.Ut(e),n=this.Lt(t,e,i);let r;const o=new U;return o.cancelCallback=()=>{const t=this.Nt(n.invocationId);return delete this.it[n.invocationId],r.then((()=>this.xt(t)))},this.it[n.invocationId]=(t,e)=>{e?o.error(e):t&&(t.type===x.Completion?t.error?o.error(new Error(t.error)):o.complete():o.next(t.item))},r=this.xt(n).catch((t=>{o.error(t),delete this.it[n.invocationId]})),this.qt(s,r),o}$t(t){return this.kt(),this.connection.send(t)}xt(t){return this.Pt?this.Pt.A(t):this.$t(this.D.writeMessage(t))}send(t,...e){const[s,i]=this.Ut(e),n=this.xt(this.Mt(t,e,!0,i));return this.qt(s,n),n}invoke(t,...e){const[s,i]=this.Ut(e),n=this.Mt(t,e,!1,i);return new Promise(((t,e)=>{this.it[n.invocationId]=(s,i)=>{i?e(i):s&&(s.type===x.Completion?s.error?e(new Error(s.error)):t(s.result):e(new Error(`Unexpected message type: ${s.type}`)))};const i=this.xt(n).catch((t=>{e(t),delete this.it[n.invocationId]}));this.qt(s,i)}))}on(t,e){t&&e&&(t=t.toLowerCase(),this.nt[t]||(this.nt[t]=[]),-1===this.nt[t].indexOf(e)&&this.nt[t].push(e))}off(t,e){if(!t)return;t=t.toLowerCase();const s=this.nt[t];if(s)if(e){const i=s.indexOf(e);-1!==i&&(s.splice(i,1),0===s.length&&delete this.nt[t])}else delete this.nt[t]}onclose(t){t&&this.rt.push(t)}onreconnecting(t){t&&this.ot.push(t)}onreconnected(t){t&&this.ht.push(t)}et(t){if(this.Ct(),this.lt||(t=this.jt(t),this.lt=!0),t){const s=this.D.parseMessages(t,this.u);for(const t of s)if(!this.Pt||this.Pt.W(t))switch(t.type){case x.Invocation:this.Wt(t).catch((t=>{this.u.log(e.Error,`Invoke client method threw error: ${P(t)}`)}));break;case x.StreamItem:case x.Completion:{const s=this.it[t.invocationId];if(s){t.type===x.Completion&&delete this.it[t.invocationId];try{s(t)}catch(t){this.u.log(e.Error,`Stream callback threw error: ${P(t)}`)}}break}case x.Ping:break;case x.Close:{this.u.log(e.Information,\"Close message received from server.\");const s=t.error?new Error(\"Server returned an error on close: \"+t.error):void 0;!0===t.allowReconnect?this.connection.stop(s):this.It=this._t(s);break}case x.Ack:this.Pt&&this.Pt.N(t);break;case x.Sequence:this.Pt&&this.Pt.F(t);break;default:this.u.log(e.Warning,`Invalid message type: ${t.type}.`)}}this.St()}jt(t){let s,i;try{[i,s]=this.tt.parseHandshakeResponse(t)}catch(t){const s=\"Error parsing handshake response: \"+t;this.u.log(e.Error,s);const i=new Error(s);throw this.Et(i),i}if(s.error){const t=\"Server returned handshake error: \"+s.error;this.u.log(e.Error,t);const i=new Error(t);throw this.Et(i),i}return this.u.log(e.Debug,\"Server handshake complete.\"),this.vt(),i}kt(){this.connection.features.inherentKeepAlive||(this.K=(new Date).getTime()+this.keepAliveIntervalInMilliseconds,this.Tt())}St(){if(!(this.connection.features&&this.connection.features.inherentKeepAlive||(this.Ot=setTimeout((()=>this.serverTimeout()),this.serverTimeoutInMilliseconds),void 0!==this.Ft))){let t=this.K-(new Date).getTime();t<0&&(t=0),this.Ft=setTimeout((async()=>{if(this.ut===A.Connected)try{await this.$t(this.ft)}catch{this.Tt()}}),t)}}serverTimeout(){this.connection.stop(new Error(\"Server timeout elapsed without receiving a message from the server.\"))}async Wt(t){const s=t.target.toLowerCase(),i=this.nt[s];if(!i)return this.u.log(e.Warning,`No client method with the name '${s}' found.`),void(t.invocationId&&(this.u.log(e.Warning,`No result given for '${s}' method and invocation ID '${t.invocationId}'.`),await this.xt(this.Bt(t.invocationId,\"Client didn't provide a result.\",null))));const n=i.slice(),r=!!t.invocationId;let o,h,c;for(const i of n)try{const n=o;o=await i.apply(this,t.arguments),r&&o&&n&&(this.u.log(e.Error,`Multiple results provided for '${s}'. Sending error to server.`),c=this.Bt(t.invocationId,\"Client provided multiple results.\",null)),h=void 0}catch(t){h=t,this.u.log(e.Error,`A callback for the method '${s}' threw error '${t}'.`)}c?await this.xt(c):r?(h?c=this.Bt(t.invocationId,`${h}`,null):void 0!==o?c=this.Bt(t.invocationId,null,o):(this.u.log(e.Warning,`No result given for '${s}' method and invocation ID '${t.invocationId}'.`),c=this.Bt(t.invocationId,\"Client didn't provide a result.\",null)),await this.xt(c)):o&&this.u.log(e.Error,`Result given for '${s}' method but server is not expecting a result.`)}st(t){this.u.log(e.Debug,`HubConnection.connectionClosed(${t}) called while in state ${this.ut}.`),this.bt=this.bt||t||new r(\"The underlying connection was closed before the hub handshake could complete.\"),this.vt&&this.vt(),this.Xt(t||new Error(\"Invocation canceled due to the underlying connection being closed.\")),this.Ct(),this.Tt(),this.ut===A.Disconnecting?this.Dt(t):this.ut===A.Connected&&this.Z?this.Jt(t):this.ut===A.Connected&&this.Dt(t)}Dt(t){if(this.dt){this.ut=A.Disconnected,this.dt=!1,this.Pt&&(this.Pt.X(null!=t?t:new Error(\"Connection closed.\")),this.Pt=void 0),g.isBrowser&&window.document.removeEventListener(\"freeze\",this.G);try{this.rt.forEach((e=>e.apply(this,[t])))}catch(s){this.u.log(e.Error,`An onclose callback called with error '${t}' threw error '${s}'.`)}}}async Jt(t){const s=Date.now();let i=0,n=void 0!==t?t:new Error(\"Attempting to reconnect due to a unknown error.\"),r=this.zt(i++,0,n);if(null===r)return this.u.log(e.Debug,\"Connection not reconnecting because the IRetryPolicy returned null on the first reconnect attempt.\"),void this.Dt(t);if(this.ut=A.Reconnecting,t?this.u.log(e.Information,`Connection reconnecting because of error '${t}'.`):this.u.log(e.Information,\"Connection reconnecting.\"),0!==this.ot.length){try{this.ot.forEach((e=>e.apply(this,[t])))}catch(s){this.u.log(e.Error,`An onreconnecting callback called with error '${t}' threw error '${s}'.`)}if(this.ut!==A.Reconnecting)return void this.u.log(e.Debug,\"Connection left the reconnecting state in onreconnecting callback. Done reconnecting.\")}for(;null!==r;){if(this.u.log(e.Information,`Reconnect attempt number ${i} will start in ${r} ms.`),await new Promise((t=>{this.Ht=setTimeout(t,r)})),this.Ht=void 0,this.ut!==A.Reconnecting)return void this.u.log(e.Debug,\"Connection left the reconnecting state during reconnect delay. Done reconnecting.\");try{if(await this.yt(),this.ut=A.Connected,this.u.log(e.Information,\"HubConnection reconnected successfully.\"),0!==this.ht.length)try{this.ht.forEach((t=>t.apply(this,[this.connection.connectionId])))}catch(t){this.u.log(e.Error,`An onreconnected callback called with connectionId '${this.connection.connectionId}; threw error '${t}'.`)}return}catch(t){if(this.u.log(e.Information,`Reconnect attempt failed because of error '${t}'.`),this.ut!==A.Reconnecting)return this.u.log(e.Debug,`Connection moved to the '${this.ut}' from the reconnecting state during reconnect attempt. Done reconnecting.`),void(this.ut===A.Disconnecting&&this.Dt());n=t instanceof Error?t:new Error(t.toString()),r=this.zt(i++,Date.now()-s,n)}}this.u.log(e.Information,`Reconnect retries have been exhausted after ${Date.now()-s} ms and ${i} failed attempts. Connection disconnecting.`),this.Dt()}zt(t,s,i){try{return this.Z.nextRetryDelayInMilliseconds({elapsedMilliseconds:s,previousRetryCount:t,retryReason:i})}catch(i){return this.u.log(e.Error,`IRetryPolicy.nextRetryDelayInMilliseconds(${t}, ${s}) threw error '${i}'.`),null}}Xt(t){const s=this.it;this.it={},Object.keys(s).forEach((i=>{const n=s[i];try{n(null,t)}catch(s){this.u.log(e.Error,`Stream 'error' callback called with '${t}' threw error: ${P(s)}`)}}))}Tt(){this.Ft&&(clearTimeout(this.Ft),this.Ft=void 0)}Ct(){this.Ot&&clearTimeout(this.Ot)}Mt(t,e,s,i){if(s)return 0!==i.length?{arguments:e,streamIds:i,target:t,type:x.Invocation}:{arguments:e,target:t,type:x.Invocation};{const s=this.ct;return this.ct++,0!==i.length?{arguments:e,invocationId:s.toString(),streamIds:i,target:t,type:x.Invocation}:{arguments:e,invocationId:s.toString(),target:t,type:x.Invocation}}}qt(t,e){if(0!==t.length){e||(e=Promise.resolve());for(const s in t)t[s].subscribe({complete:()=>{e=e.then((()=>this.xt(this.Bt(s))))},error:t=>{let i;i=t instanceof Error?t.message:t&&t.toString?t.toString():\"Unknown error\",e=e.then((()=>this.xt(this.Bt(s,i))))},next:t=>{e=e.then((()=>this.xt(this.Vt(s,t))))}})}}Ut(t){const e=[],s=[];for(let i=0;i0)&&(e=!1,this.Zt=await this.Yt()),this.te(t);const s=await this.Qt.send(t);return e&&401===s.statusCode&&this.Yt?(this.Zt=await this.Yt(),this.te(t),await this.Qt.send(t)):s}te(t){t.headers||(t.headers={}),this.Zt?t.headers[W.Authorization]=`Bearer ${this.Zt}`:this.Yt&&t.headers[W.Authorization]&&delete t.headers[W.Authorization]}getCookieString(t){return this.Qt.getCookieString(t)}}var F,B;!function(t){t[t.None=0]=\"None\",t[t.WebSockets=1]=\"WebSockets\",t[t.ServerSentEvents=2]=\"ServerSentEvents\",t[t.LongPolling=4]=\"LongPolling\"}(F||(F={})),function(t){t[t.Text=1]=\"Text\",t[t.Binary=2]=\"Binary\"}(B||(B={}));class X{constructor(){this.ee=!1,this.onabort=null}abort(){this.ee||(this.ee=!0,this.onabort&&this.onabort())}get signal(){return this}get aborted(){return this.ee}}class J{get pollAborted(){return this.se.aborted}constructor(t,e,s){this.$=t,this.u=e,this.se=new X,this.ie=s,this.ne=!1,this.onreceive=null,this.onclose=null}async connect(t,s){if(w.isRequired(t,\"url\"),w.isRequired(s,\"transferFormat\"),w.isIn(s,B,\"transferFormat\"),this.re=t,this.u.log(e.Trace,\"(LongPolling transport) Connecting.\"),s===B.Binary&&\"undefined\"!=typeof XMLHttpRequest&&\"string\"!=typeof(new XMLHttpRequest).responseType)throw new Error(\"Binary protocols over XmlHttpRequest not implementing advanced features are not supported.\");const[n,r]=$(),o={[n]:r,...this.ie.headers},h={abortSignal:this.se.signal,headers:o,timeout:1e5,withCredentials:this.ie.withCredentials};s===B.Binary&&(h.responseType=\"arraybuffer\");const c=`${t}&_=${Date.now()}`;this.u.log(e.Trace,`(LongPolling transport) polling: ${c}.`);const a=await this.$.get(c,h);200!==a.statusCode?(this.u.log(e.Error,`(LongPolling transport) Unexpected response code: ${a.statusCode}.`),this.oe=new i(a.statusText||\"\",a.statusCode),this.ne=!1):this.ne=!0,this.he=this.ce(this.re,h)}async ce(t,s){try{for(;this.ne;)try{const n=`${t}&_=${Date.now()}`;this.u.log(e.Trace,`(LongPolling transport) polling: ${n}.`);const r=await this.$.get(n,s);204===r.statusCode?(this.u.log(e.Information,\"(LongPolling transport) Poll terminated by server.\"),this.ne=!1):200!==r.statusCode?(this.u.log(e.Error,`(LongPolling transport) Unexpected response code: ${r.statusCode}.`),this.oe=new i(r.statusText||\"\",r.statusCode),this.ne=!1):r.content?(this.u.log(e.Trace,`(LongPolling transport) data received. ${m(r.content,this.ie.logMessageContent)}.`),this.onreceive&&this.onreceive(r.content)):this.u.log(e.Trace,\"(LongPolling transport) Poll timed out, reissuing.\")}catch(t){this.ne?t instanceof n?this.u.log(e.Trace,\"(LongPolling transport) Poll timed out, reissuing.\"):(this.oe=t,this.ne=!1):this.u.log(e.Trace,`(LongPolling transport) Poll errored after shutdown: ${t.message}`)}}finally{this.u.log(e.Trace,\"(LongPolling transport) Polling complete.\"),this.pollAborted||this.ae()}}async send(t){return this.ne?b(this.u,\"LongPolling\",this.$,this.re,t,this.ie):Promise.reject(new Error(\"Cannot send until the transport is connected\"))}async stop(){this.u.log(e.Trace,\"(LongPolling transport) Stopping polling.\"),this.ne=!1,this.se.abort();try{await this.he,this.u.log(e.Trace,`(LongPolling transport) sending DELETE request to ${this.re}.`);const t={},[s,n]=$();t[s]=n;const r={headers:{...t,...this.ie.headers},timeout:this.ie.timeout,withCredentials:this.ie.withCredentials};let o;try{await this.$.delete(this.re,r)}catch(t){o=t}o?o instanceof i&&(404===o.statusCode?this.u.log(e.Trace,\"(LongPolling transport) A 404 response was returned from sending a DELETE request.\"):this.u.log(e.Trace,`(LongPolling transport) Error sending a DELETE request: ${o}`)):this.u.log(e.Trace,\"(LongPolling transport) DELETE request accepted.\")}finally{this.u.log(e.Trace,\"(LongPolling transport) Stop finished.\"),this.ae()}}ae(){if(this.onclose){let t=\"(LongPolling transport) Firing onclose event.\";this.oe&&(t+=\" Error: \"+this.oe),this.u.log(e.Trace,t),this.onclose(this.oe)}}}class z{constructor(t,e,s,i){this.$=t,this.Zt=e,this.u=s,this.ie=i,this.onreceive=null,this.onclose=null}async connect(t,s){return w.isRequired(t,\"url\"),w.isRequired(s,\"transferFormat\"),w.isIn(s,B,\"transferFormat\"),this.u.log(e.Trace,\"(SSE transport) Connecting.\"),this.re=t,this.Zt&&(t+=(t.indexOf(\"?\")<0?\"?\":\"&\")+`access_token=${encodeURIComponent(this.Zt)}`),new Promise(((i,n)=>{let r,o=!1;if(s===B.Text){if(g.isBrowser||g.isWebWorker)r=new this.ie.EventSource(t,{withCredentials:this.ie.withCredentials});else{const e=this.$.getCookieString(t),s={};s.Cookie=e;const[i,n]=$();s[i]=n,r=new this.ie.EventSource(t,{withCredentials:this.ie.withCredentials,headers:{...s,...this.ie.headers}})}try{r.onmessage=t=>{if(this.onreceive)try{this.u.log(e.Trace,`(SSE transport) data received. ${m(t.data,this.ie.logMessageContent)}.`),this.onreceive(t.data)}catch(t){return void this.le(t)}},r.onerror=t=>{o?this.le():n(new Error(\"EventSource failed to connect. The connection could not be found on the server, either the connection ID is not present on the server, or a proxy is refusing/buffering the connection. If you have multiple servers check that sticky sessions are enabled.\"))},r.onopen=()=>{this.u.log(e.Information,`SSE connected to ${this.re}`),this.ue=r,o=!0,i()}}catch(t){return void n(t)}}else n(new Error(\"The Server-Sent Events transport only supports the 'Text' transfer format\"))}))}async send(t){return this.ue?b(this.u,\"SSE\",this.$,this.re,t,this.ie):Promise.reject(new Error(\"Cannot send until the transport is connected\"))}stop(){return this.le(),Promise.resolve()}le(t){this.ue&&(this.ue.close(),this.ue=void 0,this.onclose&&this.onclose(t))}}class V{constructor(t,e,s,i,n,r){this.u=s,this.Yt=e,this.de=i,this.fe=n,this.$=t,this.onreceive=null,this.onclose=null,this.pe=r}async connect(t,s){let i;return w.isRequired(t,\"url\"),w.isRequired(s,\"transferFormat\"),w.isIn(s,B,\"transferFormat\"),this.u.log(e.Trace,\"(WebSockets transport) Connecting.\"),this.Yt&&(i=await this.Yt()),new Promise(((n,r)=>{let o;t=t.replace(/^http/,\"ws\");const h=this.$.getCookieString(t);let c=!1;if(g.isNode||g.isReactNative){const e={},[s,n]=$();e[s]=n,i&&(e[W.Authorization]=`Bearer ${i}`),h&&(e[W.Cookie]=h),o=new this.fe(t,void 0,{headers:{...e,...this.pe}})}else i&&(t+=(t.indexOf(\"?\")<0?\"?\":\"&\")+`access_token=${encodeURIComponent(i)}`);o||(o=new this.fe(t)),s===B.Binary&&(o.binaryType=\"arraybuffer\"),o.onopen=s=>{this.u.log(e.Information,`WebSocket connected to ${t}.`),this.we=o,c=!0,n()},o.onerror=t=>{let s=null;s=\"undefined\"!=typeof ErrorEvent&&t instanceof ErrorEvent?t.error:\"There was an error with the transport\",this.u.log(e.Information,`(WebSockets transport) ${s}.`)},o.onmessage=t=>{if(this.u.log(e.Trace,`(WebSockets transport) data received. ${m(t.data,this.de)}.`),this.onreceive)try{this.onreceive(t.data)}catch(t){return void this.le(t)}},o.onclose=t=>{if(c)this.le(t);else{let e=null;e=\"undefined\"!=typeof ErrorEvent&&t instanceof ErrorEvent?t.error:\"WebSocket failed to connect. The connection could not be found on the server, either the endpoint may not be a SignalR endpoint, the connection ID is not present on the server, or there is a proxy blocking WebSockets. If you have multiple servers check that sticky sessions are enabled.\",r(new Error(e))}}}))}send(t){return this.we&&this.we.readyState===this.fe.OPEN?(this.u.log(e.Trace,`(WebSockets transport) sending data. ${m(t,this.de)}.`),this.we.send(t),Promise.resolve()):Promise.reject(\"WebSocket is not in the OPEN state\")}stop(){return this.we&&this.le(void 0),Promise.resolve()}le(t){this.we&&(this.we.onclose=()=>{},this.we.onmessage=()=>{},this.we.onerror=()=>{},this.we.close(),this.we=void 0),this.u.log(e.Trace,\"(WebSockets transport) socket closed.\"),this.onclose&&(!this.ge(t)||!1!==t.wasClean&&1e3===t.code?t instanceof Error?this.onclose(t):this.onclose():this.onclose(new Error(`WebSocket closed with status code: ${t.code} (${t.reason||\"no reason given\"}).`)))}ge(t){return t&&\"boolean\"==typeof t.wasClean&&\"number\"==typeof t.code}}class K{constructor(t,s={}){var i;if(this.me=()=>{},this.features={},this.ye=1,w.isRequired(t,\"url\"),this.u=void 0===(i=s.logger)?new E(e.Information):null===i?f.instance:void 0!==i.log?i:new E(i),this.baseUrl=this.be(t),(s=s||{}).logMessageContent=void 0!==s.logMessageContent&&s.logMessageContent,\"boolean\"!=typeof s.withCredentials&&void 0!==s.withCredentials)throw new Error(\"withCredentials option was not a 'boolean' or 'undefined' value\");s.withCredentials=void 0===s.withCredentials||s.withCredentials,s.timeout=void 0===s.timeout?1e5:s.timeout;let n=null,r=null;if(g.isNode){const t=require;n=t(\"ws\"),r=t(\"eventsource\")}g.isNode||\"undefined\"==typeof WebSocket||s.WebSocket?g.isNode&&!s.WebSocket&&n&&(s.WebSocket=n):s.WebSocket=WebSocket,g.isNode||\"undefined\"==typeof EventSource||s.EventSource?g.isNode&&!s.EventSource&&void 0!==r&&(s.EventSource=r):s.EventSource=EventSource,this.$=new O(s.httpClient||new H(this.u),s.accessTokenFactory),this.ut=\"Disconnected\",this.dt=!1,this.ie=s,this.onreceive=null,this.onclose=null}async start(t){if(t=t||B.Binary,w.isIn(t,B,\"transferFormat\"),this.u.log(e.Debug,`Starting connection with transfer format '${B[t]}'.`),\"Disconnected\"!==this.ut)return Promise.reject(new Error(\"Cannot start an HttpConnection that is not in the 'Disconnected' state.\"));if(this.ut=\"Connecting\",this.ve=this.yt(t),await this.ve,\"Disconnecting\"===this.ut){const t=\"Failed to start the HttpConnection before stop() was called.\";return this.u.log(e.Error,t),await this.It,Promise.reject(new r(t))}if(\"Connected\"!==this.ut){const t=\"HttpConnection.startInternal completed gracefully but didn't enter the connection into the connected state!\";return this.u.log(e.Error,t),Promise.reject(new r(t))}this.dt=!0}send(t){return\"Connected\"!==this.ut?Promise.reject(new Error(\"Cannot send data if the connection is not in the 'Connected' State.\")):(this.Ee||(this.Ee=new G(this.transport)),this.Ee.send(t))}async stop(t){return\"Disconnected\"===this.ut?(this.u.log(e.Debug,`Call to HttpConnection.stop(${t}) ignored because the connection is already in the disconnected state.`),Promise.resolve()):\"Disconnecting\"===this.ut?(this.u.log(e.Debug,`Call to HttpConnection.stop(${t}) ignored because the connection is already in the disconnecting state.`),this.It):(this.ut=\"Disconnecting\",this.It=new Promise((t=>{this.me=t})),await this._t(t),void await this.It)}async _t(t){this.$e=t;try{await this.ve}catch(t){}if(this.transport){try{await this.transport.stop()}catch(t){this.u.log(e.Error,`HttpConnection.transport.stop() threw error '${t}'.`),this.Ce()}this.transport=void 0}else this.u.log(e.Debug,\"HttpConnection.transport is undefined in HttpConnection.stop() because start() failed.\")}async yt(t){let s=this.baseUrl;this.Yt=this.ie.accessTokenFactory,this.$.Yt=this.Yt;try{if(this.ie.skipNegotiation){if(this.ie.transport!==F.WebSockets)throw new Error(\"Negotiation can only be skipped when using the WebSocket transport directly.\");this.transport=this.Se(F.WebSockets),await this.ke(s,t)}else{let e=null,i=0;do{if(e=await this.Pe(s),\"Disconnecting\"===this.ut||\"Disconnected\"===this.ut)throw new r(\"The connection was stopped during negotiation.\");if(e.error)throw new Error(e.error);if(e.ProtocolVersion)throw new Error(\"Detected a connection attempt to an ASP.NET SignalR Server. This client only supports connecting to an ASP.NET Core SignalR Server. See https://aka.ms/signalr-core-differences for details.\");if(e.url&&(s=e.url),e.accessToken){const t=e.accessToken;this.Yt=()=>t,this.$.Zt=t,this.$.Yt=void 0}i++}while(e.url&&i<100);if(100===i&&e.url)throw new Error(\"Negotiate redirection limit exceeded.\");await this.Te(s,this.ie.transport,e,t)}this.transport instanceof J&&(this.features.inherentKeepAlive=!0),\"Connecting\"===this.ut&&(this.u.log(e.Debug,\"The HttpConnection connected successfully.\"),this.ut=\"Connected\")}catch(t){return this.u.log(e.Error,\"Failed to start the connection: \"+t),this.ut=\"Disconnected\",this.transport=void 0,this.me(),Promise.reject(t)}}async Pe(t){const s={},[n,r]=$();s[n]=r;const o=this.Ie(t);this.u.log(e.Debug,`Sending negotiation request: ${o}.`);try{const t=await this.$.post(o,{content:\"\",headers:{...s,...this.ie.headers},timeout:this.ie.timeout,withCredentials:this.ie.withCredentials});if(200!==t.statusCode)return Promise.reject(new Error(`Unexpected status code returned from negotiate '${t.statusCode}'`));const e=JSON.parse(t.content);return(!e.negotiateVersion||e.negotiateVersion<1)&&(e.connectionToken=e.connectionId),e.useStatefulReconnect&&!0!==this.ie._e?Promise.reject(new a(\"Client didn't negotiate Stateful Reconnect but the server did.\")):e}catch(t){let s=\"Failed to complete negotiation with the server: \"+t;return t instanceof i&&404===t.statusCode&&(s+=\" Either this is not a SignalR endpoint or there is a proxy blocking the connection.\"),this.u.log(e.Error,s),Promise.reject(new a(s))}}He(t,e){return e?t+(-1===t.indexOf(\"?\")?\"?\":\"&\")+`id=${e}`:t}async Te(t,s,i,n){let o=this.He(t,i.connectionToken);if(this.De(s))return this.u.log(e.Debug,\"Connection was provided an instance of ITransport, using that directly.\"),this.transport=s,await this.ke(o,n),void(this.connectionId=i.connectionId);const h=[],a=i.availableTransports||[];let u=i;for(const i of a){const a=this.Re(i,s,n,!0===(null==u?void 0:u.useStatefulReconnect));if(a instanceof Error)h.push(`${i.transport} failed:`),h.push(a);else if(this.De(a)){if(this.transport=a,!u){try{u=await this.Pe(t)}catch(t){return Promise.reject(t)}o=this.He(t,u.connectionToken)}try{return await this.ke(o,n),void(this.connectionId=u.connectionId)}catch(t){if(this.u.log(e.Error,`Failed to start the transport '${i.transport}': ${t}`),u=void 0,h.push(new c(`${i.transport} failed: ${t}`,F[i.transport])),\"Connecting\"!==this.ut){const t=\"Failed to select transport before stop() was called.\";return this.u.log(e.Debug,t),Promise.reject(new r(t))}}}}return h.length>0?Promise.reject(new l(`Unable to connect to the server with any of the available transports. ${h.join(\" \")}`,h)):Promise.reject(new Error(\"None of the transports supported by the client are supported by the server.\"))}Se(t){switch(t){case F.WebSockets:if(!this.ie.WebSocket)throw new Error(\"'WebSocket' is not supported in your environment.\");return new V(this.$,this.Yt,this.u,this.ie.logMessageContent,this.ie.WebSocket,this.ie.headers||{});case F.ServerSentEvents:if(!this.ie.EventSource)throw new Error(\"'EventSource' is not supported in your environment.\");return new z(this.$,this.$.Zt,this.u,this.ie);case F.LongPolling:return new J(this.$,this.u,this.ie);default:throw new Error(`Unknown transport: ${t}.`)}}ke(t,e){return this.transport.onreceive=this.onreceive,this.features.reconnect?this.transport.onclose=async s=>{let i=!1;if(this.features.reconnect){try{this.features.disconnected(),await this.transport.connect(t,e),await this.features.resend()}catch{i=!0}i&&this.Ce(s)}else this.Ce(s)}:this.transport.onclose=t=>this.Ce(t),this.transport.connect(t,e)}Re(t,s,i,n){const r=F[t.transport];if(null==r)return this.u.log(e.Debug,`Skipping transport '${t.transport}' because it is not supported by this client.`),new Error(`Skipping transport '${t.transport}' because it is not supported by this client.`);if(!function(t,e){return!t||0!=(e&t)}(s,r))return this.u.log(e.Debug,`Skipping transport '${F[r]}' because it was disabled by the client.`),new h(`'${F[r]}' is disabled by the client.`,r);if(!(t.transferFormats.map((t=>B[t])).indexOf(i)>=0))return this.u.log(e.Debug,`Skipping transport '${F[r]}' because it does not support the requested transfer format '${B[i]}'.`),new Error(`'${F[r]}' does not support ${B[i]}.`);if(r===F.WebSockets&&!this.ie.WebSocket||r===F.ServerSentEvents&&!this.ie.EventSource)return this.u.log(e.Debug,`Skipping transport '${F[r]}' because it is not supported in your environment.'`),new o(`'${F[r]}' is not supported in your environment.`,r);this.u.log(e.Debug,`Selecting transport '${F[r]}'.`);try{return this.features.reconnect=r===F.WebSockets?n:void 0,this.Se(r)}catch(t){return t}}De(t){return t&&\"object\"==typeof t&&\"connect\"in t}Ce(t){if(this.u.log(e.Debug,`HttpConnection.stopConnection(${t}) called while in state ${this.ut}.`),this.transport=void 0,t=this.$e||t,this.$e=void 0,\"Disconnected\"!==this.ut){if(\"Connecting\"===this.ut)throw this.u.log(e.Warning,`Call to HttpConnection.stopConnection(${t}) was ignored because the connection is still in the connecting state.`),new Error(`HttpConnection.stopConnection(${t}) was called while the connection is still in the connecting state.`);if(\"Disconnecting\"===this.ut&&this.me(),t?this.u.log(e.Error,`Connection disconnected with error '${t}'.`):this.u.log(e.Information,\"Connection disconnected.\"),this.Ee&&(this.Ee.stop().catch((t=>{this.u.log(e.Error,`TransportSendQueue.stop() threw error '${t}'.`)})),this.Ee=void 0),this.connectionId=void 0,this.ut=\"Disconnected\",this.dt){this.dt=!1;try{this.onclose&&this.onclose(t)}catch(s){this.u.log(e.Error,`HttpConnection.onclose(${t}) threw error '${s}'.`)}}}else this.u.log(e.Debug,`Call to HttpConnection.stopConnection(${t}) was ignored because the connection is already in the disconnected state.`)}be(t){if(0===t.lastIndexOf(\"https://\",0)||0===t.lastIndexOf(\"http://\",0))return t;if(!g.isBrowser)throw new Error(`Cannot resolve '${t}'.`);const s=window.document.createElement(\"a\");return s.href=t,this.u.log(e.Information,`Normalizing '${t}' to '${s.href}'.`),s.href}Ie(t){const e=new URL(t);e.pathname.endsWith(\"/\")?e.pathname+=\"negotiate\":e.pathname+=\"/negotiate\";const s=new URLSearchParams(e.searchParams);return s.has(\"negotiateVersion\")||s.append(\"negotiateVersion\",this.ye.toString()),s.has(\"useStatefulReconnect\")?\"true\"===s.get(\"useStatefulReconnect\")&&(this.ie._e=!0):!0===this.ie._e&&s.append(\"useStatefulReconnect\",\"true\"),e.search=s.toString(),e.toString()}}class G{constructor(t){this.xe=t,this.Ae=[],this.Ue=!0,this.Le=new Q,this.Ne=new Q,this.qe=this.Me()}send(t){return this.je(t),this.Ne||(this.Ne=new Q),this.Ne.promise}stop(){return this.Ue=!1,this.Le.resolve(),this.qe}je(t){if(this.Ae.length&&typeof this.Ae[0]!=typeof t)throw new Error(`Expected data to be of type ${typeof this.Ae} but was of type ${typeof t}`);this.Ae.push(t),this.Le.resolve()}async Me(){for(;;){if(await this.Le.promise,!this.Ue){this.Ne&&this.Ne.reject(\"Connection stopped.\");break}this.Le=new Q;const t=this.Ne;this.Ne=void 0;const e=\"string\"==typeof this.Ae[0]?this.Ae.join(\"\"):G.We(this.Ae);this.Ae.length=0;try{await this.xe.send(e),t.resolve()}catch(e){t.reject(e)}}}static We(t){const e=t.map((t=>t.byteLength)).reduce(((t,e)=>t+e)),s=new Uint8Array(e);let i=0;for(const e of t)s.set(new Uint8Array(e),i),i+=e.byteLength;return s.buffer}}class Q{constructor(){this.promise=new Promise(((t,e)=>[this.j,this.Oe]=[t,e]))}resolve(){this.j()}reject(t){this.Oe(t)}}class Y{constructor(){this.name=\"json\",this.version=2,this.transferFormat=B.Text}parseMessages(t,s){if(\"string\"!=typeof t)throw new Error(\"Invalid input for JSON hub protocol. Expected a string.\");if(!t)return[];null===s&&(s=f.instance);const i=D.parse(t),n=[];for(const t of i){const i=JSON.parse(t);if(\"number\"!=typeof i.type)throw new Error(\"Invalid payload.\");switch(i.type){case x.Invocation:this.U(i);break;case x.StreamItem:this.Fe(i);break;case x.Completion:this.Be(i);break;case x.Ping:case x.Close:break;case x.Ack:this.Xe(i);break;case x.Sequence:this.Je(i);break;default:s.log(e.Information,\"Unknown message type '\"+i.type+\"' ignored.\");continue}n.push(i)}return n}writeMessage(t){return D.write(JSON.stringify(t))}U(t){this.ze(t.target,\"Invalid payload for Invocation message.\"),void 0!==t.invocationId&&this.ze(t.invocationId,\"Invalid payload for Invocation message.\")}Fe(t){if(this.ze(t.invocationId,\"Invalid payload for StreamItem message.\"),void 0===t.item)throw new Error(\"Invalid payload for StreamItem message.\")}Be(t){if(t.result&&t.error)throw new Error(\"Invalid payload for Completion message.\");!t.result&&t.error&&this.ze(t.error,\"Invalid payload for Completion message.\"),this.ze(t.invocationId,\"Invalid payload for Completion message.\")}Xe(t){if(\"number\"!=typeof t.sequenceId)throw new Error(\"Invalid SequenceId for Ack message.\")}Je(t){if(\"number\"!=typeof t.sequenceId)throw new Error(\"Invalid SequenceId for Sequence message.\")}ze(t,e){if(\"string\"!=typeof t||\"\"===t)throw new Error(e)}}const Z={trace:e.Trace,debug:e.Debug,info:e.Information,information:e.Information,warn:e.Warning,warning:e.Warning,error:e.Error,critical:e.Critical,none:e.None};class tt{configureLogging(t){if(w.isRequired(t,\"logging\"),void 0!==t.log)this.logger=t;else if(\"string\"==typeof t){const e=function(t){const e=Z[t.toLowerCase()];if(void 0!==e)return e;throw new Error(`Unknown log level: ${t}`)}(t);this.logger=new E(e)}else this.logger=new E(t);return this}withUrl(t,e){return w.isRequired(t,\"url\"),w.isNotEmpty(t,\"url\"),this.url=t,this.httpConnectionOptions=\"object\"==typeof e?{...this.httpConnectionOptions,...e}:{...this.httpConnectionOptions,transport:e},this}withHubProtocol(t){return w.isRequired(t,\"protocol\"),this.protocol=t,this}withAutomaticReconnect(t){if(this.reconnectPolicy)throw new Error(\"A reconnectPolicy has already been set.\");return t?Array.isArray(t)?this.reconnectPolicy=new j(t):this.reconnectPolicy=t:this.reconnectPolicy=new j,this}withServerTimeout(t){return w.isRequired(t,\"milliseconds\"),this.Ve=t,this}withKeepAliveInterval(t){return w.isRequired(t,\"milliseconds\"),this.Ke=t,this}withStatefulReconnect(t){return void 0===this.httpConnectionOptions&&(this.httpConnectionOptions={}),this.httpConnectionOptions._e=!0,this.Y=null==t?void 0:t.bufferSize,this}build(){const t=this.httpConnectionOptions||{};if(void 0===t.logger&&(t.logger=this.logger),!this.url)throw new Error(\"The 'HubConnectionBuilder.withUrl' method must be called before building the connection.\");const e=new K(this.url,t);return q.create(e,this.logger||f.instance,this.protocol||new Y,this.reconnectPolicy,this.Ve,this.Ke,this.Y)}}return Uint8Array.prototype.indexOf||Object.defineProperty(Uint8Array.prototype,\"indexOf\",{value:Array.prototype.indexOf,writable:!0}),Uint8Array.prototype.slice||Object.defineProperty(Uint8Array.prototype,\"slice\",{value:function(t,e){return new Uint8Array(Array.prototype.slice.call(this,t,e))},writable:!0}),Uint8Array.prototype.forEach||Object.defineProperty(Uint8Array.prototype,\"forEach\",{value:Array.prototype.forEach,writable:!0}),s})(),\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.signalR=e():t.signalR=e();","(function(t){var e=function(){try{return!!Symbol.iterator}catch(e){return false}};var r=e();var n=function(t){var e={next:function(){var e=t.shift();return{done:e===void 0,value:e}}};if(r){e[Symbol.iterator]=function(){return e}}return e};var i=function(e){return encodeURIComponent(e).replace(/%20/g,\"+\")};var o=function(e){return decodeURIComponent(String(e).replace(/\\+/g,\" \"))};var a=function(){var a=function(e){Object.defineProperty(this,\"_entries\",{writable:true,value:{}});var t=typeof e;if(t===\"undefined\"){}else if(t===\"string\"){if(e!==\"\"){this._fromString(e)}}else if(e instanceof a){var r=this;e.forEach(function(e,t){r.append(t,e)})}else if(e!==null&&t===\"object\"){if(Object.prototype.toString.call(e)===\"[object Array]\"){for(var n=0;nt[0]){return+1}else{return 0}});if(r._entries){r._entries={}}for(var e=0;e1?o(i[1]):\"\")}}})}})(typeof global!==\"undefined\"?global:typeof window!==\"undefined\"?window:typeof self!==\"undefined\"?self:this);(function(u){var e=function(){try{var e=new u.URL(\"b\",\"http://a\");e.pathname=\"c d\";return e.href===\"http://a/c%20d\"&&e.searchParams}catch(e){return false}};var t=function(){var t=u.URL;var e=function(e,t){if(typeof e!==\"string\")e=String(e);var r=document,n;if(t&&(u.location===void 0||t!==u.location.href)){r=document.implementation.createHTMLDocument(\"\");n=r.createElement(\"base\");n.href=t;r.head.appendChild(n);try{if(n.href.indexOf(t)!==0)throw new Error(n.href)}catch(e){throw new Error(\"URL unable to set base \"+t+\" due to \"+e)}}var i=r.createElement(\"a\");i.href=e;if(n){r.body.appendChild(i);i.href=i.href}var o=r.createElement(\"input\");o.type=\"url\";o.value=e;if(i.protocol===\":\"||!/:/.test(i.href)||!o.checkValidity()&&!t){throw new TypeError(\"Invalid URL\")}Object.defineProperty(this,\"_anchorElement\",{value:i});var a=new u.URLSearchParams(this.search);var s=true;var c=true;var f=this;[\"append\",\"delete\",\"set\"].forEach(function(e){var t=a[e];a[e]=function(){t.apply(a,arguments);if(s){c=false;f.search=a.toString();c=true}}});Object.defineProperty(this,\"searchParams\",{value:a,enumerable:true});var h=void 0;Object.defineProperty(this,\"_updateSearchParams\",{enumerable:false,configurable:false,writable:false,value:function(){if(this.search!==h){h=this.search;if(c){s=false;this.searchParams._fromString(this.search);s=true}}}})};var r=e.prototype;var n=function(t){Object.defineProperty(r,t,{get:function(){return this._anchorElement[t]},set:function(e){this._anchorElement[t]=e},enumerable:true})};[\"hash\",\"host\",\"hostname\",\"port\",\"protocol\"].forEach(function(e){n(e)});Object.defineProperty(r,\"search\",{get:function(){return this._anchorElement[\"search\"]},set:function(e){this._anchorElement[\"search\"]=e;this._updateSearchParams()},enumerable:true});Object.defineProperties(r,{toString:{get:function(){var e=this;return function(){return e.href}}},href:{get:function(){return this._anchorElement.href.replace(/\\?$/,\"\")},set:function(e){this._anchorElement.href=e;this._updateSearchParams()},enumerable:true},pathname:{get:function(){return this._anchorElement.pathname.replace(/(^\\/?)/,\"/\")},set:function(e){this._anchorElement.pathname=e},enumerable:true},origin:{get:function(){var e={\"http:\":80,\"https:\":443,\"ftp:\":21}[this._anchorElement.protocol];var t=this._anchorElement.port!=e&&this._anchorElement.port!==\"\";return this._anchorElement.protocol+\"//\"+this._anchorElement.hostname+(t?\":\"+this._anchorElement.port:\"\")},enumerable:true},password:{get:function(){return\"\"},set:function(e){},enumerable:true},username:{get:function(){return\"\"},set:function(e){},enumerable:true}});e.createObjectURL=function(e){return t.createObjectURL.apply(t,arguments)};e.revokeObjectURL=function(e){return t.revokeObjectURL.apply(t,arguments)};u.URL=e};if(!e()){t()}if(u.location!==void 0&&!(\"origin\"in u.location)){var r=function(){return u.location.protocol+\"//\"+u.location.hostname+(u.location.port?\":\"+u.location.port:\"\")};try{Object.defineProperty(u.location,\"origin\",{get:r,enumerable:true})}catch(e){setInterval(function(){u.location.origin=r()},100)}}})(typeof global!==\"undefined\"?global:typeof window!==\"undefined\"?window:typeof self!==\"undefined\"?self:this);"]}