{"version":3,"file":"demo.js","mappings":"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","sources":["webpack://pb33f.io/./node_modules/@lit/reactive-element/css-tag.js","webpack://pb33f.io/./node_modules/@lit/reactive-element/reactive-element.js","webpack://pb33f.io/./node_modules/lit-html/lit-html.js","webpack://pb33f.io/./node_modules/lit-element/lit-element.js","webpack://pb33f.io/./node_modules/@lit/reactive-element/decorators/custom-element.js","webpack://pb33f.io/./node_modules/@lit/reactive-element/decorators/property.js","webpack://pb33f.io/./node_modules/@lit/reactive-element/decorators/state.js","webpack://pb33f.io/./node_modules/@lit/reactive-element/decorators/base.js","webpack://pb33f.io/./node_modules/@lit/reactive-element/decorators/query.js","webpack://pb33f.io/./node_modules/@stomp/stompjs/esm6/byte.js","webpack://pb33f.io/./node_modules/@stomp/stompjs/esm6/frame-impl.js","webpack://pb33f.io/./node_modules/@stomp/stompjs/esm6/parser.js","webpack://pb33f.io/./node_modules/@stomp/stompjs/esm6/types.js","webpack://pb33f.io/./node_modules/@stomp/stompjs/esm6/versions.js","webpack://pb33f.io/./node_modules/@stomp/stompjs/esm6/stomp-handler.js","webpack://pb33f.io/./node_modules/@stomp/stompjs/esm6/augment-websocket.js","webpack://pb33f.io/./node_modules/@stomp/stompjs/esm6/client.js","webpack://pb33f.io/./node_modules/@pb33f/ranch/dist/ranch.js","webpack://pb33f.io/./src/ts/components/demo/demo.css.ts","webpack://pb33f.io/./src/ts/components/demo/demo.component.ts","webpack://pb33f.io/./src/ts/components/demo/render-stream.css.ts","webpack://pb33f.io/./src/ts/components/demo/render-stream.component.ts","webpack://pb33f.io/./src/ts/components/demo/main-menu.css.ts","webpack://pb33f.io/./src/ts/components/demo/main-menu.component.ts","webpack://pb33f.io/./src/ts/components/demo/file-upload.css.ts","webpack://pb33f.io/./src/ts/components/demo/file-upload.component.ts","webpack://pb33f.io/./src/ts/demo.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,adoptStyles,css,getCompatibleStyle,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:r,getOwnPropertyNames:h,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),y={attribute:!0,type:String,converter:u,reflect:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class b extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=y){if(s.state&&(s.attribute=!1),this._$Ei(),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),r=this.getPropertyDescriptor(t,i,s);void 0!==r&&e(this.prototype,t,r)}}static getPropertyDescriptor(t,s,i){const{get:e,set:h}=r(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get(){return e?.call(this)},set(s){const r=e?.call(this);h.call(this,s),this.requestUpdate(t,r,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??y}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...h(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$Eg=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$ES(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$E_??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$E_?.delete(t)}_$ES(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$E_?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$E_?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$EO(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const r=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==r?this.removeAttribute(e):this.setAttribute(e,r),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),r=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e,this[e]=r.fromAttribute(s,t.type),this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){if(i??=this.constructor.getPropertyOptions(t),!(i.hasChanged??f)(this[t],s))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$Eg=this._$EP())}C(t,s,i){this._$AL.has(t)||this._$AL.set(t,s),!0===i.reflect&&this._$Em!==t&&(this._$ET??=new Set).add(t)}async _$EP(){this.isUpdatePending=!0;try{await this._$Eg}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t)!0!==i.wrapped||this._$AL.has(s)||void 0===this[s]||this.C(s,this[s],i)}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$E_?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$Ej()}catch(s){throw t=!1,this._$Ej(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$E_?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$Ej(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$Eg}shouldUpdate(t){return!0}update(t){this._$ET&&=this._$ET.forEach((t=>this._$EO(t,this[t]))),this._$Ej()}updated(t){}firstUpdated(t){}}b.elementStyles=[],b.shadowRootOptions={mode:\"open\"},b[d(\"elementProperties\")]=new Map,b[d(\"finalized\")]=new Map,p?.({ReactiveElement:b}),(a.reactiveElementVersions??=[]).push(\"2.0.3\");export{b as ReactiveElement,u as defaultConverter,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t.trustedTypes,s=i?i.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,e=\"$lit$\",h=`lit$${(Math.random()+\"\").slice(9)}$`,o=\"?\"+h,n=`<${o}>`,r=document,l=()=>r.createComment(\"\"),c=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,a=Array.isArray,u=t=>a(t)||\"function\"==typeof t?.[Symbol.iterator],d=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,v=/-->/g,_=/>/g,m=RegExp(`>|${d}(?:([^\\\\s\"'>=/]+)(${d}*=${d}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),p=/'/g,g=/\"/g,$=/^(?:script|style|textarea|title)$/i,y=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=y(1),b=y(2),w=Symbol.for(\"lit-noChange\"),T=Symbol.for(\"lit-nothing\"),A=new WeakMap,E=r.createTreeWalker(r,129);function C(t,i){if(!Array.isArray(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==s?s.createHTML(i):i}const P=(t,i)=>{const s=t.length-1,o=[];let r,l=2===i?\"\":\"\")),o]};class V{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let c=0,a=0;const u=t.length-1,d=this.parts,[f,v]=P(t,s);if(this.el=V.createElement(f,n),E.currentNode=this.el.content,2===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=E.nextNode())&&d.length0){r.textContent=i?i.emptyScript:\"\";for(let i=0;i2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=T}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=N(this,t,i,0),o=!c(t)||t!==this._$AH&&t!==w,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new M(i.insertBefore(l(),t),t,void 0,s??{})}return h._$AI(t),h};export{z as _$LH,x as html,w as noChange,T as nothing,j as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as i}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class s extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const i=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(i,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return i}}s._$litElement$=!0,s[(\"finalized\",\"finalized\")]=!0,globalThis.litElementHydrateSupport?.({LitElement:s});const r=globalThis.litElementPolyfillSupport;r?.({LitElement:s});const o={_$AK:(t,e,i)=>{t._$AK(e,i)},_$AL:t=>t._$AL};(globalThis.litElementVersions??=[]).push(\"4.0.3\");export{s as LitElement,o as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=t=>(e,o)=>{void 0!==o?o.addInitializer((()=>{customElements.define(t,e)})):customElements.define(t,e)};export{t as customElement};\n//# sourceMappingURL=custom-element.js.map\n","import{defaultConverter as t,notEqual as e}from\"../reactive-element.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o={attribute:!0,type:String,converter:t,reflect:!1,hasChanged:e},r=(t=o,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),s.set(r.name,t),\"accessor\"===n){const{name:o}=r;return{set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t)},init(e){return void 0!==e&&this.C(o,void 0,t),e}}}if(\"setter\"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t)}}throw Error(\"Unsupported decorator location: \"+n)};function n(t){return(e,o)=>\"object\"==typeof o?r(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,r?{...t,wrapped:!0}:t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}export{n as property,r as standardProperty};\n//# sourceMappingURL=property.js.map\n","import{property as t}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function r(r){return t({...r,state:!0,attribute:!1})}export{r as state};\n//# sourceMappingURL=state.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=(e,t,c)=>(c.configurable=!0,c.enumerable=!0,Reflect.decorate&&\"object\"!=typeof t&&Object.defineProperty(e,t,c),c);export{e as desc};\n//# sourceMappingURL=base.js.map\n","import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e(e,r){return(n,s,i)=>{const o=t=>t.renderRoot?.querySelector(e)??null;if(r){const{get:e,set:r}=\"object\"==typeof s?n:i??(()=>{const t=Symbol();return{get(){return this[t]},set(e){this[t]=e}}})();return t(n,s,{get(){let t=e.call(this);return void 0===t&&(t=o(this),(null!==t||this.hasUpdated)&&r.call(this,t)),t}})}return t(n,s,{get(){return o(this)}})}}export{e as query};\n//# sourceMappingURL=query.js.map\n","/**\n * Some byte values, used as per STOMP specifications.\n *\n * Part of `@stomp/stompjs`.\n *\n * @internal\n */\nexport const BYTE = {\n // LINEFEED byte (octet 10)\n LF: '\\x0A',\n // NULL byte (octet 0)\n NULL: '\\x00',\n};\n//# sourceMappingURL=byte.js.map","import { BYTE } from './byte.js';\n/**\n * Frame class represents a STOMP frame.\n *\n * @internal\n */\nexport class FrameImpl {\n /**\n * Frame constructor. `command`, `headers` and `body` are available as properties.\n *\n * @internal\n */\n constructor(params) {\n const { command, headers, body, binaryBody, escapeHeaderValues, skipContentLengthHeader, } = params;\n this.command = command;\n this.headers = Object.assign({}, headers || {});\n if (binaryBody) {\n this._binaryBody = binaryBody;\n this.isBinaryBody = true;\n }\n else {\n this._body = body || '';\n this.isBinaryBody = false;\n }\n this.escapeHeaderValues = escapeHeaderValues || false;\n this.skipContentLengthHeader = skipContentLengthHeader || false;\n }\n /**\n * body of the frame\n */\n get body() {\n if (!this._body && this.isBinaryBody) {\n this._body = new TextDecoder().decode(this._binaryBody);\n }\n return this._body || '';\n }\n /**\n * body as Uint8Array\n */\n get binaryBody() {\n if (!this._binaryBody && !this.isBinaryBody) {\n this._binaryBody = new TextEncoder().encode(this._body);\n }\n // At this stage it will definitely have a valid value\n return this._binaryBody;\n }\n /**\n * deserialize a STOMP Frame from raw data.\n *\n * @internal\n */\n static fromRawFrame(rawFrame, escapeHeaderValues) {\n const headers = {};\n const trim = (str) => str.replace(/^\\s+|\\s+$/g, '');\n // In case of repeated headers, as per standards, first value need to be used\n for (const header of rawFrame.headers.reverse()) {\n const idx = header.indexOf(':');\n const key = trim(header[0]);\n let value = trim(header[1]);\n if (escapeHeaderValues &&\n rawFrame.command !== 'CONNECT' &&\n rawFrame.command !== 'CONNECTED') {\n value = FrameImpl.hdrValueUnEscape(value);\n }\n headers[key] = value;\n }\n return new FrameImpl({\n command: rawFrame.command,\n headers,\n binaryBody: rawFrame.binaryBody,\n escapeHeaderValues,\n });\n }\n /**\n * @internal\n */\n toString() {\n return this.serializeCmdAndHeaders();\n }\n /**\n * serialize this Frame in a format suitable to be passed to WebSocket.\n * If the body is string the output will be string.\n * If the body is binary (i.e. of type Unit8Array) it will be serialized to ArrayBuffer.\n *\n * @internal\n */\n serialize() {\n const cmdAndHeaders = this.serializeCmdAndHeaders();\n if (this.isBinaryBody) {\n return FrameImpl.toUnit8Array(cmdAndHeaders, this._binaryBody).buffer;\n }\n else {\n return cmdAndHeaders + this._body + BYTE.NULL;\n }\n }\n serializeCmdAndHeaders() {\n const lines = [this.command];\n if (this.skipContentLengthHeader) {\n delete this.headers['content-length'];\n }\n for (const name of Object.keys(this.headers || {})) {\n const value = this.headers[name];\n if (this.escapeHeaderValues &&\n this.command !== 'CONNECT' &&\n this.command !== 'CONNECTED') {\n lines.push(`${name}:${FrameImpl.hdrValueEscape(`${value}`)}`);\n }\n else {\n lines.push(`${name}:${value}`);\n }\n }\n if (this.isBinaryBody ||\n (!this.isBodyEmpty() && !this.skipContentLengthHeader)) {\n lines.push(`content-length:${this.bodyLength()}`);\n }\n return lines.join(BYTE.LF) + BYTE.LF + BYTE.LF;\n }\n isBodyEmpty() {\n return this.bodyLength() === 0;\n }\n bodyLength() {\n const binaryBody = this.binaryBody;\n return binaryBody ? binaryBody.length : 0;\n }\n /**\n * Compute the size of a UTF-8 string by counting its number of bytes\n * (and not the number of characters composing the string)\n */\n static sizeOfUTF8(s) {\n return s ? new TextEncoder().encode(s).length : 0;\n }\n static toUnit8Array(cmdAndHeaders, binaryBody) {\n const uint8CmdAndHeaders = new TextEncoder().encode(cmdAndHeaders);\n const nullTerminator = new Uint8Array([0]);\n const uint8Frame = new Uint8Array(uint8CmdAndHeaders.length + binaryBody.length + nullTerminator.length);\n uint8Frame.set(uint8CmdAndHeaders);\n uint8Frame.set(binaryBody, uint8CmdAndHeaders.length);\n uint8Frame.set(nullTerminator, uint8CmdAndHeaders.length + binaryBody.length);\n return uint8Frame;\n }\n /**\n * Serialize a STOMP frame as per STOMP standards, suitable to be sent to the STOMP broker.\n *\n * @internal\n */\n static marshall(params) {\n const frame = new FrameImpl(params);\n return frame.serialize();\n }\n /**\n * Escape header values\n */\n static hdrValueEscape(str) {\n return str\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\\r/g, '\\\\r')\n .replace(/\\n/g, '\\\\n')\n .replace(/:/g, '\\\\c');\n }\n /**\n * UnEscape header values\n */\n static hdrValueUnEscape(str) {\n return str\n .replace(/\\\\r/g, '\\r')\n .replace(/\\\\n/g, '\\n')\n .replace(/\\\\c/g, ':')\n .replace(/\\\\\\\\/g, '\\\\');\n }\n}\n//# sourceMappingURL=frame-impl.js.map","/**\n * @internal\n */\nconst NULL = 0;\n/**\n * @internal\n */\nconst LF = 10;\n/**\n * @internal\n */\nconst CR = 13;\n/**\n * @internal\n */\nconst COLON = 58;\n/**\n * This is an evented, rec descent parser.\n * A stream of Octets can be passed and whenever it recognizes\n * a complete Frame or an incoming ping it will invoke the registered callbacks.\n *\n * All incoming Octets are fed into _onByte function.\n * Depending on current state the _onByte function keeps changing.\n * Depending on the state it keeps accumulating into _token and _results.\n * State is indicated by current value of _onByte, all states are named as _collect.\n *\n * STOMP standards https://stomp.github.io/stomp-specification-1.2.html\n * imply that all lengths are considered in bytes (instead of string lengths).\n * So, before actual parsing, if the incoming data is String it is converted to Octets.\n * This allows faithful implementation of the protocol and allows NULL Octets to be present in the body.\n *\n * There is no peek function on the incoming data.\n * When a state change occurs based on an Octet without consuming the Octet,\n * the Octet, after state change, is fed again (_reinjectByte).\n * This became possible as the state change can be determined by inspecting just one Octet.\n *\n * There are two modes to collect the body, if content-length header is there then it by counting Octets\n * otherwise it is determined by NULL terminator.\n *\n * Following the standards, the command and headers are converted to Strings\n * and the body is returned as Octets.\n * Headers are returned as an array and not as Hash - to allow multiple occurrence of an header.\n *\n * This parser does not use Regular Expressions as that can only operate on Strings.\n *\n * It handles if multiple STOMP frames are given as one chunk, a frame is split into multiple chunks, or\n * any combination there of. The parser remembers its state (any partial frame) and continues when a new chunk\n * is pushed.\n *\n * Typically the higher level function will convert headers to Hash, handle unescaping of header values\n * (which is protocol version specific), and convert body to text.\n *\n * Check the parser.spec.js to understand cases that this parser is supposed to handle.\n *\n * Part of `@stomp/stompjs`.\n *\n * @internal\n */\nexport class Parser {\n constructor(onFrame, onIncomingPing) {\n this.onFrame = onFrame;\n this.onIncomingPing = onIncomingPing;\n this._encoder = new TextEncoder();\n this._decoder = new TextDecoder();\n this._token = [];\n this._initState();\n }\n parseChunk(segment, appendMissingNULLonIncoming = false) {\n let chunk;\n if (typeof segment === 'string') {\n chunk = this._encoder.encode(segment);\n }\n else {\n chunk = new Uint8Array(segment);\n }\n // See https://github.com/stomp-js/stompjs/issues/89\n // Remove when underlying issue is fixed.\n //\n // Send a NULL byte, if the last byte of a Text frame was not NULL.F\n if (appendMissingNULLonIncoming && chunk[chunk.length - 1] !== 0) {\n const chunkWithNull = new Uint8Array(chunk.length + 1);\n chunkWithNull.set(chunk, 0);\n chunkWithNull[chunk.length] = 0;\n chunk = chunkWithNull;\n }\n // tslint:disable-next-line:prefer-for-of\n for (let i = 0; i < chunk.length; i++) {\n const byte = chunk[i];\n this._onByte(byte);\n }\n }\n // The following implements a simple Rec Descent Parser.\n // The grammar is simple and just one byte tells what should be the next state\n _collectFrame(byte) {\n if (byte === NULL) {\n // Ignore\n return;\n }\n if (byte === CR) {\n // Ignore CR\n return;\n }\n if (byte === LF) {\n // Incoming Ping\n this.onIncomingPing();\n return;\n }\n this._onByte = this._collectCommand;\n this._reinjectByte(byte);\n }\n _collectCommand(byte) {\n if (byte === CR) {\n // Ignore CR\n return;\n }\n if (byte === LF) {\n this._results.command = this._consumeTokenAsUTF8();\n this._onByte = this._collectHeaders;\n return;\n }\n this._consumeByte(byte);\n }\n _collectHeaders(byte) {\n if (byte === CR) {\n // Ignore CR\n return;\n }\n if (byte === LF) {\n this._setupCollectBody();\n return;\n }\n this._onByte = this._collectHeaderKey;\n this._reinjectByte(byte);\n }\n _reinjectByte(byte) {\n this._onByte(byte);\n }\n _collectHeaderKey(byte) {\n if (byte === COLON) {\n this._headerKey = this._consumeTokenAsUTF8();\n this._onByte = this._collectHeaderValue;\n return;\n }\n this._consumeByte(byte);\n }\n _collectHeaderValue(byte) {\n if (byte === CR) {\n // Ignore CR\n return;\n }\n if (byte === LF) {\n this._results.headers.push([\n this._headerKey,\n this._consumeTokenAsUTF8(),\n ]);\n this._headerKey = undefined;\n this._onByte = this._collectHeaders;\n return;\n }\n this._consumeByte(byte);\n }\n _setupCollectBody() {\n const contentLengthHeader = this._results.headers.filter((header) => {\n return header[0] === 'content-length';\n })[0];\n if (contentLengthHeader) {\n this._bodyBytesRemaining = parseInt(contentLengthHeader[1], 10);\n this._onByte = this._collectBodyFixedSize;\n }\n else {\n this._onByte = this._collectBodyNullTerminated;\n }\n }\n _collectBodyNullTerminated(byte) {\n if (byte === NULL) {\n this._retrievedBody();\n return;\n }\n this._consumeByte(byte);\n }\n _collectBodyFixedSize(byte) {\n // It is post decrement, so that we discard the trailing NULL octet\n if (this._bodyBytesRemaining-- === 0) {\n this._retrievedBody();\n return;\n }\n this._consumeByte(byte);\n }\n _retrievedBody() {\n this._results.binaryBody = this._consumeTokenAsRaw();\n try {\n this.onFrame(this._results);\n }\n catch (e) {\n console.log(`Ignoring an exception thrown by a frame handler. Original exception: `, e);\n }\n this._initState();\n }\n // Rec Descent Parser helpers\n _consumeByte(byte) {\n this._token.push(byte);\n }\n _consumeTokenAsUTF8() {\n return this._decoder.decode(this._consumeTokenAsRaw());\n }\n _consumeTokenAsRaw() {\n const rawResult = new Uint8Array(this._token);\n this._token = [];\n return rawResult;\n }\n _initState() {\n this._results = {\n command: undefined,\n headers: [],\n binaryBody: undefined,\n };\n this._token = [];\n this._headerKey = undefined;\n this._onByte = this._collectFrame;\n }\n}\n//# sourceMappingURL=parser.js.map","/**\n * Possible states for the IStompSocket\n */\nexport var StompSocketState;\n(function (StompSocketState) {\n StompSocketState[StompSocketState[\"CONNECTING\"] = 0] = \"CONNECTING\";\n StompSocketState[StompSocketState[\"OPEN\"] = 1] = \"OPEN\";\n StompSocketState[StompSocketState[\"CLOSING\"] = 2] = \"CLOSING\";\n StompSocketState[StompSocketState[\"CLOSED\"] = 3] = \"CLOSED\";\n})(StompSocketState = StompSocketState || (StompSocketState = {}));\n/**\n * Possible activation state\n */\nexport var ActivationState;\n(function (ActivationState) {\n ActivationState[ActivationState[\"ACTIVE\"] = 0] = \"ACTIVE\";\n ActivationState[ActivationState[\"DEACTIVATING\"] = 1] = \"DEACTIVATING\";\n ActivationState[ActivationState[\"INACTIVE\"] = 2] = \"INACTIVE\";\n})(ActivationState = ActivationState || (ActivationState = {}));\n//# sourceMappingURL=types.js.map","/**\n * Supported STOMP versions\n *\n * Part of `@stomp/stompjs`.\n */\nexport class Versions {\n /**\n * Takes an array of versions, typical elements '1.2', '1.1', or '1.0'\n *\n * You will be creating an instance of this class if you want to override\n * supported versions to be declared during STOMP handshake.\n */\n constructor(versions) {\n this.versions = versions;\n }\n /**\n * Used as part of CONNECT STOMP Frame\n */\n supportedVersions() {\n return this.versions.join(',');\n }\n /**\n * Used while creating a WebSocket\n */\n protocolVersions() {\n return this.versions.map(x => `v${x.replace('.', '')}.stomp`);\n }\n}\n/**\n * Indicates protocol version 1.0\n */\nVersions.V1_0 = '1.0';\n/**\n * Indicates protocol version 1.1\n */\nVersions.V1_1 = '1.1';\n/**\n * Indicates protocol version 1.2\n */\nVersions.V1_2 = '1.2';\n/**\n * @internal\n */\nVersions.default = new Versions([\n Versions.V1_2,\n Versions.V1_1,\n Versions.V1_0,\n]);\n//# sourceMappingURL=versions.js.map","import { BYTE } from './byte.js';\nimport { FrameImpl } from './frame-impl.js';\nimport { Parser } from './parser.js';\nimport { StompSocketState, } from './types.js';\nimport { Versions } from './versions.js';\nimport { augmentWebsocket } from './augment-websocket.js';\n/**\n * The STOMP protocol handler\n *\n * Part of `@stomp/stompjs`.\n *\n * @internal\n */\nexport class StompHandler {\n constructor(_client, _webSocket, config) {\n this._client = _client;\n this._webSocket = _webSocket;\n this._connected = false;\n this._serverFrameHandlers = {\n // [CONNECTED Frame](https://stomp.github.com/stomp-specification-1.2.html#CONNECTED_Frame)\n CONNECTED: frame => {\n this.debug(`connected to server ${frame.headers.server}`);\n this._connected = true;\n this._connectedVersion = frame.headers.version;\n // STOMP version 1.2 needs header values to be escaped\n if (this._connectedVersion === Versions.V1_2) {\n this._escapeHeaderValues = true;\n }\n this._setupHeartbeat(frame.headers);\n this.onConnect(frame);\n },\n // [MESSAGE Frame](https://stomp.github.com/stomp-specification-1.2.html#MESSAGE)\n MESSAGE: frame => {\n // the callback is registered when the client calls\n // `subscribe()`.\n // If there is no registered subscription for the received message,\n // the default `onUnhandledMessage` callback is used that the client can set.\n // This is useful for subscriptions that are automatically created\n // on the browser side (e.g. [RabbitMQ's temporary\n // queues](https://www.rabbitmq.com/stomp.html)).\n const subscription = frame.headers.subscription;\n const onReceive = this._subscriptions[subscription] || this.onUnhandledMessage;\n // bless the frame to be a Message\n const message = frame;\n const client = this;\n const messageId = this._connectedVersion === Versions.V1_2\n ? message.headers.ack\n : message.headers['message-id'];\n // add `ack()` and `nack()` methods directly to the returned frame\n // so that a simple call to `message.ack()` can acknowledge the message.\n message.ack = (headers = {}) => {\n return client.ack(messageId, subscription, headers);\n };\n message.nack = (headers = {}) => {\n return client.nack(messageId, subscription, headers);\n };\n onReceive(message);\n },\n // [RECEIPT Frame](https://stomp.github.com/stomp-specification-1.2.html#RECEIPT)\n RECEIPT: frame => {\n const callback = this._receiptWatchers[frame.headers['receipt-id']];\n if (callback) {\n callback(frame);\n // Server will acknowledge only once, remove the callback\n delete this._receiptWatchers[frame.headers['receipt-id']];\n }\n else {\n this.onUnhandledReceipt(frame);\n }\n },\n // [ERROR Frame](https://stomp.github.com/stomp-specification-1.2.html#ERROR)\n ERROR: frame => {\n this.onStompError(frame);\n },\n };\n // used to index subscribers\n this._counter = 0;\n // subscription callbacks indexed by subscriber's ID\n this._subscriptions = {};\n // receipt-watchers indexed by receipts-ids\n this._receiptWatchers = {};\n this._partialData = '';\n this._escapeHeaderValues = false;\n this._lastServerActivityTS = Date.now();\n this.debug = config.debug;\n this.stompVersions = config.stompVersions;\n this.connectHeaders = config.connectHeaders;\n this.disconnectHeaders = config.disconnectHeaders;\n this.heartbeatIncoming = config.heartbeatIncoming;\n this.heartbeatOutgoing = config.heartbeatOutgoing;\n this.splitLargeFrames = config.splitLargeFrames;\n this.maxWebSocketChunkSize = config.maxWebSocketChunkSize;\n this.forceBinaryWSFrames = config.forceBinaryWSFrames;\n this.logRawCommunication = config.logRawCommunication;\n this.appendMissingNULLonIncoming = config.appendMissingNULLonIncoming;\n this.discardWebsocketOnCommFailure = config.discardWebsocketOnCommFailure;\n this.onConnect = config.onConnect;\n this.onDisconnect = config.onDisconnect;\n this.onStompError = config.onStompError;\n this.onWebSocketClose = config.onWebSocketClose;\n this.onWebSocketError = config.onWebSocketError;\n this.onUnhandledMessage = config.onUnhandledMessage;\n this.onUnhandledReceipt = config.onUnhandledReceipt;\n this.onUnhandledFrame = config.onUnhandledFrame;\n }\n get connectedVersion() {\n return this._connectedVersion;\n }\n get connected() {\n return this._connected;\n }\n start() {\n const parser = new Parser(\n // On Frame\n rawFrame => {\n const frame = FrameImpl.fromRawFrame(rawFrame, this._escapeHeaderValues);\n // if this.logRawCommunication is set, the rawChunk is logged at this._webSocket.onmessage\n if (!this.logRawCommunication) {\n this.debug(`<<< ${frame}`);\n }\n const serverFrameHandler = this._serverFrameHandlers[frame.command] || this.onUnhandledFrame;\n serverFrameHandler(frame);\n }, \n // On Incoming Ping\n () => {\n this.debug('<<< PONG');\n });\n this._webSocket.onmessage = (evt) => {\n this.debug('Received data');\n this._lastServerActivityTS = Date.now();\n if (this.logRawCommunication) {\n const rawChunkAsString = evt.data instanceof ArrayBuffer\n ? new TextDecoder().decode(evt.data)\n : evt.data;\n this.debug(`<<< ${rawChunkAsString}`);\n }\n parser.parseChunk(evt.data, this.appendMissingNULLonIncoming);\n };\n this._webSocket.onclose = (closeEvent) => {\n this.debug(`Connection closed to ${this._webSocket.url}`);\n this._cleanUp();\n this.onWebSocketClose(closeEvent);\n };\n this._webSocket.onerror = (errorEvent) => {\n this.onWebSocketError(errorEvent);\n };\n this._webSocket.onopen = () => {\n // Clone before updating\n const connectHeaders = Object.assign({}, this.connectHeaders);\n this.debug('Web Socket Opened...');\n connectHeaders['accept-version'] = this.stompVersions.supportedVersions();\n connectHeaders['heart-beat'] = [\n this.heartbeatOutgoing,\n this.heartbeatIncoming,\n ].join(',');\n this._transmit({ command: 'CONNECT', headers: connectHeaders });\n };\n }\n _setupHeartbeat(headers) {\n if (headers.version !== Versions.V1_1 &&\n headers.version !== Versions.V1_2) {\n return;\n }\n // It is valid for the server to not send this header\n // https://stomp.github.io/stomp-specification-1.2.html#Heart-beating\n if (!headers['heart-beat']) {\n return;\n }\n // heart-beat header received from the server looks like:\n //\n // heart-beat: sx, sy\n const [serverOutgoing, serverIncoming] = headers['heart-beat']\n .split(',')\n .map((v) => parseInt(v, 10));\n if (this.heartbeatOutgoing !== 0 && serverIncoming !== 0) {\n const ttl = Math.max(this.heartbeatOutgoing, serverIncoming);\n this.debug(`send PING every ${ttl}ms`);\n this._pinger = setInterval(() => {\n if (this._webSocket.readyState === StompSocketState.OPEN) {\n this._webSocket.send(BYTE.LF);\n this.debug('>>> PING');\n }\n }, ttl);\n }\n if (this.heartbeatIncoming !== 0 && serverOutgoing !== 0) {\n const ttl = Math.max(this.heartbeatIncoming, serverOutgoing);\n this.debug(`check PONG every ${ttl}ms`);\n this._ponger = setInterval(() => {\n const delta = Date.now() - this._lastServerActivityTS;\n // We wait twice the TTL to be flexible on window's setInterval calls\n if (delta > ttl * 2) {\n this.debug(`did not receive server activity for the last ${delta}ms`);\n this._closeOrDiscardWebsocket();\n }\n }, ttl);\n }\n }\n _closeOrDiscardWebsocket() {\n if (this.discardWebsocketOnCommFailure) {\n this.debug('Discarding websocket, the underlying socket may linger for a while');\n this.discardWebsocket();\n }\n else {\n this.debug('Issuing close on the websocket');\n this._closeWebsocket();\n }\n }\n forceDisconnect() {\n if (this._webSocket) {\n if (this._webSocket.readyState === StompSocketState.CONNECTING ||\n this._webSocket.readyState === StompSocketState.OPEN) {\n this._closeOrDiscardWebsocket();\n }\n }\n }\n _closeWebsocket() {\n this._webSocket.onmessage = () => { }; // ignore messages\n this._webSocket.close();\n }\n discardWebsocket() {\n if (typeof this._webSocket.terminate !== 'function') {\n augmentWebsocket(this._webSocket, (msg) => this.debug(msg));\n }\n // @ts-ignore - this method will be there at this stage\n this._webSocket.terminate();\n }\n _transmit(params) {\n const { command, headers, body, binaryBody, skipContentLengthHeader } = params;\n const frame = new FrameImpl({\n command,\n headers,\n body,\n binaryBody,\n escapeHeaderValues: this._escapeHeaderValues,\n skipContentLengthHeader,\n });\n let rawChunk = frame.serialize();\n if (this.logRawCommunication) {\n this.debug(`>>> ${rawChunk}`);\n }\n else {\n this.debug(`>>> ${frame}`);\n }\n if (this.forceBinaryWSFrames && typeof rawChunk === 'string') {\n rawChunk = new TextEncoder().encode(rawChunk);\n }\n if (typeof rawChunk !== 'string' || !this.splitLargeFrames) {\n this._webSocket.send(rawChunk);\n }\n else {\n let out = rawChunk;\n while (out.length > 0) {\n const chunk = out.substring(0, this.maxWebSocketChunkSize);\n out = out.substring(this.maxWebSocketChunkSize);\n this._webSocket.send(chunk);\n this.debug(`chunk sent = ${chunk.length}, remaining = ${out.length}`);\n }\n }\n }\n dispose() {\n if (this.connected) {\n try {\n // clone before updating\n const disconnectHeaders = Object.assign({}, this.disconnectHeaders);\n if (!disconnectHeaders.receipt) {\n disconnectHeaders.receipt = `close-${this._counter++}`;\n }\n this.watchForReceipt(disconnectHeaders.receipt, frame => {\n this._closeWebsocket();\n this._cleanUp();\n this.onDisconnect(frame);\n });\n this._transmit({ command: 'DISCONNECT', headers: disconnectHeaders });\n }\n catch (error) {\n this.debug(`Ignoring error during disconnect ${error}`);\n }\n }\n else {\n if (this._webSocket.readyState === StompSocketState.CONNECTING ||\n this._webSocket.readyState === StompSocketState.OPEN) {\n this._closeWebsocket();\n }\n }\n }\n _cleanUp() {\n this._connected = false;\n if (this._pinger) {\n clearInterval(this._pinger);\n this._pinger = undefined;\n }\n if (this._ponger) {\n clearInterval(this._ponger);\n this._ponger = undefined;\n }\n }\n publish(params) {\n const { destination, headers, body, binaryBody, skipContentLengthHeader } = params;\n const hdrs = Object.assign({ destination }, headers);\n this._transmit({\n command: 'SEND',\n headers: hdrs,\n body,\n binaryBody,\n skipContentLengthHeader,\n });\n }\n watchForReceipt(receiptId, callback) {\n this._receiptWatchers[receiptId] = callback;\n }\n subscribe(destination, callback, headers = {}) {\n headers = Object.assign({}, headers);\n if (!headers.id) {\n headers.id = `sub-${this._counter++}`;\n }\n headers.destination = destination;\n this._subscriptions[headers.id] = callback;\n this._transmit({ command: 'SUBSCRIBE', headers });\n const client = this;\n return {\n id: headers.id,\n unsubscribe(hdrs) {\n return client.unsubscribe(headers.id, hdrs);\n },\n };\n }\n unsubscribe(id, headers = {}) {\n headers = Object.assign({}, headers);\n delete this._subscriptions[id];\n headers.id = id;\n this._transmit({ command: 'UNSUBSCRIBE', headers });\n }\n begin(transactionId) {\n const txId = transactionId || `tx-${this._counter++}`;\n this._transmit({\n command: 'BEGIN',\n headers: {\n transaction: txId,\n },\n });\n const client = this;\n return {\n id: txId,\n commit() {\n client.commit(txId);\n },\n abort() {\n client.abort(txId);\n },\n };\n }\n commit(transactionId) {\n this._transmit({\n command: 'COMMIT',\n headers: {\n transaction: transactionId,\n },\n });\n }\n abort(transactionId) {\n this._transmit({\n command: 'ABORT',\n headers: {\n transaction: transactionId,\n },\n });\n }\n ack(messageId, subscriptionId, headers = {}) {\n headers = Object.assign({}, headers);\n if (this._connectedVersion === Versions.V1_2) {\n headers.id = messageId;\n }\n else {\n headers['message-id'] = messageId;\n }\n headers.subscription = subscriptionId;\n this._transmit({ command: 'ACK', headers });\n }\n nack(messageId, subscriptionId, headers = {}) {\n headers = Object.assign({}, headers);\n if (this._connectedVersion === Versions.V1_2) {\n headers.id = messageId;\n }\n else {\n headers['message-id'] = messageId;\n }\n headers.subscription = subscriptionId;\n return this._transmit({ command: 'NACK', headers });\n }\n}\n//# sourceMappingURL=stomp-handler.js.map","/**\n * @internal\n */\nexport function augmentWebsocket(webSocket, debug) {\n webSocket.terminate = function () {\n const noOp = () => { };\n // set all callbacks to no op\n this.onerror = noOp;\n this.onmessage = noOp;\n this.onopen = noOp;\n const ts = new Date();\n const id = Math.random().toString().substring(2, 8); // A simulated id\n const origOnClose = this.onclose;\n // Track delay in actual closure of the socket\n this.onclose = closeEvent => {\n const delay = new Date().getTime() - ts.getTime();\n debug(`Discarded socket (#${id}) closed after ${delay}ms, with code/reason: ${closeEvent.code}/${closeEvent.reason}`);\n };\n this.close();\n origOnClose?.call(webSocket, {\n code: 4001,\n reason: `Quick discarding socket (#${id}) without waiting for the shutdown sequence.`,\n wasClean: false,\n });\n };\n}\n//# sourceMappingURL=augment-websocket.js.map","import { StompHandler } from './stomp-handler.js';\nimport { ActivationState, StompSocketState, } from './types.js';\nimport { Versions } from './versions.js';\n/**\n * STOMP Client Class.\n *\n * Part of `@stomp/stompjs`.\n */\nexport class Client {\n /**\n * Create an instance.\n */\n constructor(conf = {}) {\n /**\n * STOMP versions to attempt during STOMP handshake. By default, versions `1.2`, `1.1`, and `1.0` are attempted.\n *\n * Example:\n * ```javascript\n * // Try only versions 1.1 and 1.0\n * client.stompVersions = new Versions(['1.1', '1.0'])\n * ```\n */\n this.stompVersions = Versions.default;\n /**\n * Will retry if Stomp connection is not established in specified milliseconds.\n * Default 0, which switches off automatic reconnection.\n */\n this.connectionTimeout = 0;\n /**\n * automatically reconnect with delay in milliseconds, set to 0 to disable.\n */\n this.reconnectDelay = 5000;\n /**\n * Incoming heartbeat interval in milliseconds. Set to 0 to disable.\n */\n this.heartbeatIncoming = 10000;\n /**\n * Outgoing heartbeat interval in milliseconds. Set to 0 to disable.\n */\n this.heartbeatOutgoing = 10000;\n /**\n * This switches on a non-standard behavior while sending WebSocket packets.\n * It splits larger (text) packets into chunks of [maxWebSocketChunkSize]{@link Client#maxWebSocketChunkSize}.\n * Only Java Spring brokers seem to support this mode.\n *\n * WebSockets, by itself, split large (text) packets,\n * so it is not needed with a truly compliant STOMP/WebSocket broker.\n * Setting it for such a broker will cause large messages to fail.\n *\n * `false` by default.\n *\n * Binary frames are never split.\n */\n this.splitLargeFrames = false;\n /**\n * See [splitLargeFrames]{@link Client#splitLargeFrames}.\n * This has no effect if [splitLargeFrames]{@link Client#splitLargeFrames} is `false`.\n */\n this.maxWebSocketChunkSize = 8 * 1024;\n /**\n * Usually the\n * [type of WebSocket frame]{@link https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send#Parameters}\n * is automatically decided by type of the payload.\n * Default is `false`, which should work with all compliant brokers.\n *\n * Set this flag to force binary frames.\n */\n this.forceBinaryWSFrames = false;\n /**\n * A bug in ReactNative chops a string on occurrence of a NULL.\n * See issue [https://github.com/stomp-js/stompjs/issues/89]{@link https://github.com/stomp-js/stompjs/issues/89}.\n * This makes incoming WebSocket messages invalid STOMP packets.\n * Setting this flag attempts to reverse the damage by appending a NULL.\n * If the broker splits a large message into multiple WebSocket messages,\n * this flag will cause data loss and abnormal termination of connection.\n *\n * This is not an ideal solution, but a stop gap until the underlying issue is fixed at ReactNative library.\n */\n this.appendMissingNULLonIncoming = false;\n /**\n * Browsers do not immediately close WebSockets when `.close` is issued.\n * This may cause reconnection to take a significantly long time in case\n * of some types of failures.\n * In case of incoming heartbeat failure, this experimental flag instructs\n * the library to discard the socket immediately\n * (even before it is actually closed).\n */\n this.discardWebsocketOnCommFailure = false;\n /**\n * Activation state.\n *\n * It will usually be ACTIVE or INACTIVE.\n * When deactivating, it may go from ACTIVE to INACTIVE without entering DEACTIVATING.\n */\n this.state = ActivationState.INACTIVE;\n // No op callbacks\n const noOp = () => { };\n this.debug = noOp;\n this.beforeConnect = noOp;\n this.onConnect = noOp;\n this.onDisconnect = noOp;\n this.onUnhandledMessage = noOp;\n this.onUnhandledReceipt = noOp;\n this.onUnhandledFrame = noOp;\n this.onStompError = noOp;\n this.onWebSocketClose = noOp;\n this.onWebSocketError = noOp;\n this.logRawCommunication = false;\n this.onChangeState = noOp;\n // These parameters would typically get proper values before connect is called\n this.connectHeaders = {};\n this._disconnectHeaders = {};\n // Apply configuration\n this.configure(conf);\n }\n /**\n * Underlying WebSocket instance, READONLY.\n */\n get webSocket() {\n return this._stompHandler?._webSocket;\n }\n /**\n * Disconnection headers.\n */\n get disconnectHeaders() {\n return this._disconnectHeaders;\n }\n set disconnectHeaders(value) {\n this._disconnectHeaders = value;\n if (this._stompHandler) {\n this._stompHandler.disconnectHeaders = this._disconnectHeaders;\n }\n }\n /**\n * `true` if there is an active connection to STOMP Broker\n */\n get connected() {\n return !!this._stompHandler && this._stompHandler.connected;\n }\n /**\n * version of STOMP protocol negotiated with the server, READONLY\n */\n get connectedVersion() {\n return this._stompHandler ? this._stompHandler.connectedVersion : undefined;\n }\n /**\n * if the client is active (connected or going to reconnect)\n */\n get active() {\n return this.state === ActivationState.ACTIVE;\n }\n _changeState(state) {\n this.state = state;\n this.onChangeState(state);\n }\n /**\n * Update configuration.\n */\n configure(conf) {\n // bulk assign all properties to this\n Object.assign(this, conf);\n }\n /**\n * Initiate the connection with the broker.\n * If the connection breaks, as per [Client#reconnectDelay]{@link Client#reconnectDelay},\n * it will keep trying to reconnect.\n *\n * Call [Client#deactivate]{@link Client#deactivate} to disconnect and stop reconnection attempts.\n */\n activate() {\n const _activate = () => {\n if (this.active) {\n this.debug('Already ACTIVE, ignoring request to activate');\n return;\n }\n this._changeState(ActivationState.ACTIVE);\n this._connect();\n };\n // if it is deactivating, wait for it to complete before activating.\n if (this.state === ActivationState.DEACTIVATING) {\n this.debug('Waiting for deactivation to finish before activating');\n this.deactivate().then(() => {\n _activate();\n });\n }\n else {\n _activate();\n }\n }\n async _connect() {\n await this.beforeConnect();\n if (this._stompHandler) {\n this.debug('There is already a stompHandler, skipping the call to connect');\n return;\n }\n if (!this.active) {\n this.debug('Client has been marked inactive, will not attempt to connect');\n return;\n }\n // setup connection watcher\n if (this.connectionTimeout > 0) {\n // clear first\n if (this._connectionWatcher) {\n clearTimeout(this._connectionWatcher);\n }\n this._connectionWatcher = setTimeout(() => {\n if (this.connected) {\n return;\n }\n // Connection not established, close the underlying socket\n // a reconnection will be attempted\n this.debug(`Connection not established in ${this.connectionTimeout}ms, closing socket`);\n this.forceDisconnect();\n }, this.connectionTimeout);\n }\n this.debug('Opening Web Socket...');\n // Get the actual WebSocket (or a similar object)\n const webSocket = this._createWebSocket();\n this._stompHandler = new StompHandler(this, webSocket, {\n debug: this.debug,\n stompVersions: this.stompVersions,\n connectHeaders: this.connectHeaders,\n disconnectHeaders: this._disconnectHeaders,\n heartbeatIncoming: this.heartbeatIncoming,\n heartbeatOutgoing: this.heartbeatOutgoing,\n splitLargeFrames: this.splitLargeFrames,\n maxWebSocketChunkSize: this.maxWebSocketChunkSize,\n forceBinaryWSFrames: this.forceBinaryWSFrames,\n logRawCommunication: this.logRawCommunication,\n appendMissingNULLonIncoming: this.appendMissingNULLonIncoming,\n discardWebsocketOnCommFailure: this.discardWebsocketOnCommFailure,\n onConnect: frame => {\n // Successfully connected, stop the connection watcher\n if (this._connectionWatcher) {\n clearTimeout(this._connectionWatcher);\n this._connectionWatcher = undefined;\n }\n if (!this.active) {\n this.debug('STOMP got connected while deactivate was issued, will disconnect now');\n this._disposeStompHandler();\n return;\n }\n this.onConnect(frame);\n },\n onDisconnect: frame => {\n this.onDisconnect(frame);\n },\n onStompError: frame => {\n this.onStompError(frame);\n },\n onWebSocketClose: evt => {\n this._stompHandler = undefined; // a new one will be created in case of a reconnect\n if (this.state === ActivationState.DEACTIVATING) {\n // Mark deactivation complete\n this._changeState(ActivationState.INACTIVE);\n }\n // The callback is called before attempting to reconnect, this would allow the client\n // to be `deactivated` in the callback.\n this.onWebSocketClose(evt);\n if (this.active) {\n this._schedule_reconnect();\n }\n },\n onWebSocketError: evt => {\n this.onWebSocketError(evt);\n },\n onUnhandledMessage: message => {\n this.onUnhandledMessage(message);\n },\n onUnhandledReceipt: frame => {\n this.onUnhandledReceipt(frame);\n },\n onUnhandledFrame: frame => {\n this.onUnhandledFrame(frame);\n },\n });\n this._stompHandler.start();\n }\n _createWebSocket() {\n let webSocket;\n if (this.webSocketFactory) {\n webSocket = this.webSocketFactory();\n }\n else if (this.brokerURL) {\n webSocket = new WebSocket(this.brokerURL, this.stompVersions.protocolVersions());\n }\n else {\n throw new Error('Either brokerURL or webSocketFactory must be provided');\n }\n webSocket.binaryType = 'arraybuffer';\n return webSocket;\n }\n _schedule_reconnect() {\n if (this.reconnectDelay > 0) {\n this.debug(`STOMP: scheduling reconnection in ${this.reconnectDelay}ms`);\n this._reconnector = setTimeout(() => {\n this._connect();\n }, this.reconnectDelay);\n }\n }\n /**\n * Disconnect if connected and stop auto reconnect loop.\n * Appropriate callbacks will be invoked if there is an underlying STOMP connection.\n *\n * This call is async. It will resolve immediately if there is no underlying active websocket,\n * otherwise, it will resolve after the underlying websocket is properly disposed of.\n *\n * It is not an error to invoke this method more than once.\n * Each of those would resolve on completion of deactivation.\n *\n * To reactivate, you can call [Client#activate]{@link Client#activate}.\n *\n * Experimental: pass `force: true` to immediately discard the underlying connection.\n * This mode will skip both the STOMP and the Websocket shutdown sequences.\n * In some cases, browsers take a long time in the Websocket shutdown\n * if the underlying connection had gone stale.\n * Using this mode can speed up.\n * When this mode is used, the actual Websocket may linger for a while\n * and the broker may not realize that the connection is no longer in use.\n *\n * It is possible to invoke this method initially without the `force` option\n * and subsequently, say after a wait, with the `force` option.\n */\n async deactivate(options = {}) {\n const force = options.force || false;\n const needToDispose = this.active;\n let retPromise;\n if (this.state === ActivationState.INACTIVE) {\n this.debug(`Already INACTIVE, nothing more to do`);\n return Promise.resolve();\n }\n this._changeState(ActivationState.DEACTIVATING);\n // Clear if a reconnection was scheduled\n if (this._reconnector) {\n clearTimeout(this._reconnector);\n this._reconnector = undefined;\n }\n if (this._stompHandler &&\n // @ts-ignore - if there is a _stompHandler, there is the webSocket\n this.webSocket.readyState !== StompSocketState.CLOSED) {\n const origOnWebSocketClose = this._stompHandler.onWebSocketClose;\n // we need to wait for the underlying websocket to close\n retPromise = new Promise((resolve, reject) => {\n // @ts-ignore - there is a _stompHandler\n this._stompHandler.onWebSocketClose = evt => {\n origOnWebSocketClose(evt);\n resolve();\n };\n });\n }\n else {\n // indicate that auto reconnect loop should terminate\n this._changeState(ActivationState.INACTIVE);\n return Promise.resolve();\n }\n if (force) {\n this._stompHandler?.discardWebsocket();\n }\n else if (needToDispose) {\n this._disposeStompHandler();\n }\n return retPromise;\n }\n /**\n * Force disconnect if there is an active connection by directly closing the underlying WebSocket.\n * This is different from a normal disconnect where a DISCONNECT sequence is carried out with the broker.\n * After forcing disconnect, automatic reconnect will be attempted.\n * To stop further reconnects call [Client#deactivate]{@link Client#deactivate} as well.\n */\n forceDisconnect() {\n if (this._stompHandler) {\n this._stompHandler.forceDisconnect();\n }\n }\n _disposeStompHandler() {\n // Dispose STOMP Handler\n if (this._stompHandler) {\n this._stompHandler.dispose();\n }\n }\n /**\n * Send a message to a named destination. Refer to your STOMP broker documentation for types\n * and naming of destinations.\n *\n * STOMP protocol specifies and suggests some headers and also allows broker-specific headers.\n *\n * `body` must be String.\n * You will need to covert the payload to string in case it is not string (e.g. JSON).\n *\n * To send a binary message body, use `binaryBody` parameter. It should be a\n * [Uint8Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array).\n * Sometimes brokers may not support binary frames out of the box.\n * Please check your broker documentation.\n *\n * `content-length` header is automatically added to the STOMP Frame sent to the broker.\n * Set `skipContentLengthHeader` to indicate that `content-length` header should not be added.\n * For binary messages, `content-length` header is always added.\n *\n * Caution: The broker will, most likely, report an error and disconnect\n * if the message body has NULL octet(s) and `content-length` header is missing.\n *\n * ```javascript\n * client.publish({destination: \"/queue/test\", headers: {priority: 9}, body: \"Hello, STOMP\"});\n *\n * // Only destination is mandatory parameter\n * client.publish({destination: \"/queue/test\", body: \"Hello, STOMP\"});\n *\n * // Skip content-length header in the frame to the broker\n * client.publish({\"/queue/test\", body: \"Hello, STOMP\", skipContentLengthHeader: true});\n *\n * var binaryData = generateBinaryData(); // This need to be of type Uint8Array\n * // setting content-type header is not mandatory, however a good practice\n * client.publish({destination: '/topic/special', binaryBody: binaryData,\n * headers: {'content-type': 'application/octet-stream'}});\n * ```\n */\n publish(params) {\n this._checkConnection();\n // @ts-ignore - we already checked that there is a _stompHandler, and it is connected\n this._stompHandler.publish(params);\n }\n _checkConnection() {\n if (!this.connected) {\n throw new TypeError('There is no underlying STOMP connection');\n }\n }\n /**\n * STOMP brokers may carry out operation asynchronously and allow requesting for acknowledgement.\n * To request an acknowledgement, a `receipt` header needs to be sent with the actual request.\n * The value (say receipt-id) for this header needs to be unique for each use.\n * Typically, a sequence, a UUID, a random number or a combination may be used.\n *\n * A complaint broker will send a RECEIPT frame when an operation has actually been completed.\n * The operation needs to be matched based on the value of the receipt-id.\n *\n * This method allows watching for a receipt and invoking the callback\n * when the corresponding receipt has been received.\n *\n * The actual {@link IFrame} will be passed as parameter to the callback.\n *\n * Example:\n * ```javascript\n * // Subscribing with acknowledgement\n * let receiptId = randomText();\n *\n * client.watchForReceipt(receiptId, function() {\n * // Will be called after server acknowledges\n * });\n *\n * client.subscribe(TEST.destination, onMessage, {receipt: receiptId});\n *\n *\n * // Publishing with acknowledgement\n * receiptId = randomText();\n *\n * client.watchForReceipt(receiptId, function() {\n * // Will be called after server acknowledges\n * });\n * client.publish({destination: TEST.destination, headers: {receipt: receiptId}, body: msg});\n * ```\n */\n watchForReceipt(receiptId, callback) {\n this._checkConnection();\n // @ts-ignore - we already checked that there is a _stompHandler, and it is connected\n this._stompHandler.watchForReceipt(receiptId, callback);\n }\n /**\n * Subscribe to a STOMP Broker location. The callback will be invoked for each\n * received message with the {@link IMessage} as argument.\n *\n * Note: The library will generate a unique ID if there is none provided in the headers.\n * To use your own ID, pass it using the `headers` argument.\n *\n * ```javascript\n * callback = function(message) {\n * // called when the client receives a STOMP message from the server\n * if (message.body) {\n * alert(\"got message with body \" + message.body)\n * } else {\n * alert(\"got empty message\");\n * }\n * });\n *\n * var subscription = client.subscribe(\"/queue/test\", callback);\n *\n * // Explicit subscription id\n * var mySubId = 'my-subscription-id-001';\n * var subscription = client.subscribe(destination, callback, { id: mySubId });\n * ```\n */\n subscribe(destination, callback, headers = {}) {\n this._checkConnection();\n // @ts-ignore - we already checked that there is a _stompHandler, and it is connected\n return this._stompHandler.subscribe(destination, callback, headers);\n }\n /**\n * It is preferable to unsubscribe from a subscription by calling\n * `unsubscribe()` directly on {@link StompSubscription} returned by `client.subscribe()`:\n *\n * ```javascript\n * var subscription = client.subscribe(destination, onmessage);\n * // ...\n * subscription.unsubscribe();\n * ```\n *\n * See: https://stomp.github.com/stomp-specification-1.2.html#UNSUBSCRIBE UNSUBSCRIBE Frame\n */\n unsubscribe(id, headers = {}) {\n this._checkConnection();\n // @ts-ignore - we already checked that there is a _stompHandler, and it is connected\n this._stompHandler.unsubscribe(id, headers);\n }\n /**\n * Start a transaction, the returned {@link ITransaction} has methods - [commit]{@link ITransaction#commit}\n * and [abort]{@link ITransaction#abort}.\n *\n * `transactionId` is optional, if not passed the library will generate it internally.\n */\n begin(transactionId) {\n this._checkConnection();\n // @ts-ignore - we already checked that there is a _stompHandler, and it is connected\n return this._stompHandler.begin(transactionId);\n }\n /**\n * Commit a transaction.\n *\n * It is preferable to commit a transaction by calling [commit]{@link ITransaction#commit} directly on\n * {@link ITransaction} returned by [client.begin]{@link Client#begin}.\n *\n * ```javascript\n * var tx = client.begin(txId);\n * //...\n * tx.commit();\n * ```\n */\n commit(transactionId) {\n this._checkConnection();\n // @ts-ignore - we already checked that there is a _stompHandler, and it is connected\n this._stompHandler.commit(transactionId);\n }\n /**\n * Abort a transaction.\n * It is preferable to abort a transaction by calling [abort]{@link ITransaction#abort} directly on\n * {@link ITransaction} returned by [client.begin]{@link Client#begin}.\n *\n * ```javascript\n * var tx = client.begin(txId);\n * //...\n * tx.abort();\n * ```\n */\n abort(transactionId) {\n this._checkConnection();\n // @ts-ignore - we already checked that there is a _stompHandler, and it is connected\n this._stompHandler.abort(transactionId);\n }\n /**\n * ACK a message. It is preferable to acknowledge a message by calling [ack]{@link IMessage#ack} directly\n * on the {@link IMessage} handled by a subscription callback:\n *\n * ```javascript\n * var callback = function (message) {\n * // process the message\n * // acknowledge it\n * message.ack();\n * };\n * client.subscribe(destination, callback, {'ack': 'client'});\n * ```\n */\n ack(messageId, subscriptionId, headers = {}) {\n this._checkConnection();\n // @ts-ignore - we already checked that there is a _stompHandler, and it is connected\n this._stompHandler.ack(messageId, subscriptionId, headers);\n }\n /**\n * NACK a message. It is preferable to acknowledge a message by calling [nack]{@link IMessage#nack} directly\n * on the {@link IMessage} handled by a subscription callback:\n *\n * ```javascript\n * var callback = function (message) {\n * // process the message\n * // an error occurs, nack it\n * message.nack();\n * };\n * client.subscribe(destination, callback, {'ack': 'client'});\n * ```\n */\n nack(messageId, subscriptionId, headers = {}) {\n this._checkConnection();\n // @ts-ignore - we already checked that there is a _stompHandler, and it is connected\n this._stompHandler.nack(messageId, subscriptionId, headers);\n }\n}\n//# sourceMappingURL=client.js.map","import { Client as c } from \"@stomp/stompjs\";\nclass h {\n static genUUID() {\n let t = \"\", n, e;\n for (n = 0; n < 32; n++)\n e = Math.random() * 16 | 0, (n === 8 || n === 12 || n === 16 || n === 20) && (t += \"-\"), t += (n === 12 ? 4 : n === 16 ? e & 3 | 8 : e).toString(16);\n return t;\n }\n static genShortId(t) {\n function n(e, s) {\n for (var i = \"\", a = e; a > 0; --a) i += s[Math.floor(Math.random() * s.length)];\n return i;\n }\n return n(t, \"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\");\n }\n}\nclass l {\n _channels = [];\n _stompClient = void 0;\n _preMappedChannels;\n constructor() {\n this._preMappedChannels = /* @__PURE__ */ new Map();\n }\n getClient() {\n return this._stompClient;\n }\n get channels() {\n return this._channels;\n }\n createChannel(t) {\n const n = new p(t);\n return this._channels.push(n), n;\n }\n getChannel(t) {\n const n = this._channels.findIndex((e) => e.name === t);\n return n > -1 ? this._channels[n] : this.createChannel(t);\n }\n connectToBroker(t) {\n this._stompClient = new c(t), this._stompClient.activate(), this._stompClient.onConnect = (n) => {\n this._preMappedChannels.forEach((e, s) => {\n this._mapDestination(s, e);\n }), t.onConnect && t.onConnect(n);\n }, this._stompClient.onDisconnect = (n) => {\n console.warn(\"Disconnected from the ranch\"), t.onDisconnect && t.onDisconnect(n);\n }, this._stompClient.onWebSocketClose = (n) => {\n console.warn(\"Socket connection to the ranch was closed, reconnecting...\"), t.onDisconnect && t.onDisconnect(n);\n }, this._stompClient.activate();\n }\n _mapDestination(t, n) {\n this._stompClient && this._stompClient.subscribe(t, (e) => {\n const s = this._channels.find((i) => i.name === n);\n s && s.publish({ payload: JSON.parse(e.body) });\n });\n }\n mapChannelToBrokerDestination(t, n) {\n !this._stompClient || !this._stompClient.connected ? this._preMappedChannels.set(t, n) : this._mapDestination(t, n);\n }\n publish(t) {\n this._stompClient && this._stompClient.publish(t);\n }\n}\nclass p {\n subscribers = [];\n _name;\n constructor(t) {\n this._name = t;\n }\n get name() {\n return this._name;\n }\n subscribe(t) {\n const n = {\n name: h.genUUID(),\n callback: t\n };\n return this.subscribers.push(n), {\n unsubscribe: () => {\n this.subscribers = this.subscribers.filter((e) => e.name !== n.name);\n }\n };\n }\n publish(t) {\n this.subscribers.forEach((n) => n.callback(t));\n }\n}\nlet r;\nfunction u() {\n return r || (r = new l()), r;\n}\nfunction _() {\n return u();\n}\nexport {\n u as CreateBus,\n _ as GetBus,\n h as RanchUtils\n};\n","import { css } from 'lit';\nexport default css `\n\n \n iframe {\n width: 100%;\n height: calc(100vh - 87px);\n border: none;\n opacity: 0;\n background-color: var(--background-color);\n }\n \n iframe.show {\n animation: fadeInAnimation ease-out 200ms;\n animation-iteration-count: 1;\n animation-fill-mode: forwards;\n }\n \n #terminal-drawer {\n --size: 200px;\n --body-spacing: 0;\n --header-spacing: 0;\n --footer-spacing: 0;\n }\n \n .connect-error {\n color: var(--error-font-color);\n font-weight: bold;\n }\n \n .connection-error-icon {\n font-size: 10em;\n color: var(--error-font-color);\n margin-bottom: 20px\n }\n\n #terminal-drawer::part(header) {\n border-top: 1px dashed var(--secondary-color);\n font-family: var(--font-stack);\n padding-left: 10px;\n height: 34px;\n border-bottom: 1px dashed var(--secondary-color-lowalpha);\n }\n #terminal-drawer::part(title) {\n font-size: 16px;\n line-height: inherit;\n padding-top: 3px;\n color: var(--darker-font-color);\n }\n \n .loading {\n text-align: center;\n }\n .loading sl-spinner {\n margin-top: 40px;\n margin-bottom: 40px;\n }\n \n\n @keyframes fadeInAnimation {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n }\n`;\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { LitElement, html } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { CreateBus } from \"@pb33f/ranch\";\nimport demoCss from \"./demo.css\";\nexport var MessageType;\n(function (MessageType) {\n MessageType[MessageType[\"Progress\"] = 0] = \"Progress\";\n MessageType[MessageType[\"Complete\"] = 1] = \"Complete\";\n MessageType[MessageType[\"Error\"] = 2] = \"Error\";\n})(MessageType || (MessageType = {}));\nexport const RunReportEvent = 'run-report';\nconst ChangeServiceChannel = 'change-report-service';\nconst ClientID = 'pb33f_clientId';\nlet OnlineDemoComponent = class OnlineDemoComponent extends LitElement {\n constructor() {\n super();\n this.connected = false;\n this.host = 'api.pb33f.io';\n //host: string = 'localhost';\n this.port = 443;\n //port: number = 9090;\n this.secure = true;\n this.rolledOut = false;\n // resize when the window changes size:\n window.addEventListener('resize', () => {\n this.style.height = 'calc(100vh - 276px)';\n });\n this.bus = CreateBus();\n this.channelStream = this.bus.createChannel(ChangeServiceChannel);\n this.bus.mapChannelToBrokerDestination(\"/q/\" + ChangeServiceChannel, ChangeServiceChannel);\n this.channelStreamSubscription = this.channelStream.subscribe(this.handleChangeMessage());\n this.connect();\n }\n handleChangeMessage() {\n return (msg) => {\n var _a, _b;\n const checkMessage = (payload) => {\n switch (payload.responseType) {\n case MessageType.Progress:\n this.handleProgressMessage(payload);\n break;\n case MessageType.Complete:\n this.handleCompleteMessage(payload);\n break;\n case MessageType.Error:\n this.handleErrorMessage(payload);\n break;\n }\n };\n if (msg.payload.error) {\n console.error('DEMO ERROR', msg.payload);\n this.handleAPIError(msg.payload);\n return;\n }\n if (((_a = msg.payload) === null || _a === void 0 ? void 0 : _a.payload) != null) {\n if (!this.terminalOpen) {\n this.terminalOpen = true;\n this.terminalDrawer.show().then(() => {\n requestAnimationFrame(() => {\n setTimeout(() => {\n var _a;\n checkMessage((_a = msg.payload) === null || _a === void 0 ? void 0 : _a.payload);\n }, 200);\n });\n });\n }\n else {\n checkMessage((_b = msg.payload) === null || _b === void 0 ? void 0 : _b.payload);\n }\n }\n };\n }\n handleAPIError(error) {\n this.buildError = error.payload;\n this.mainMenu.apiError = this.buildError;\n const e = {\n message: error.payload.detail,\n type: 'error',\n };\n this.errorMessagesReceived = true;\n this.streamMessagesComponent.messages.push(e);\n this.streamMessagesComponent.requestUpdate();\n setTimeout(() => {\n this.mainMenu.reEnable();\n }, 2000);\n setTimeout(() => {\n this.terminalDrawer.hide().then(() => {\n this.streamMessagesComponent.reset();\n });\n }, 4000);\n }\n handleErrorMessage(payload) {\n const error = {\n message: payload.message,\n type: 'error',\n };\n this.errorMessagesReceived = true;\n this.streamMessagesComponent.messages.push(error);\n this.streamMessagesComponent.requestUpdate();\n setTimeout(() => {\n this.terminalDrawer.hide().then(() => {\n this.streamMessagesComponent.reset();\n });\n }, 4000);\n }\n handleCompleteMessage(payload) {\n let compiled = \"Report compiled: \" + payload.message;\n if (payload.cached) {\n compiled += ' (loaded from cache)';\n }\n const completed = {\n message: compiled,\n type: 'info',\n };\n this.streamMessagesComponent.messages.push(completed);\n this.streamMessagesComponent.requestUpdate();\n this.rollOutHeader();\n requestAnimationFrame(() => {\n setTimeout(() => {\n this.mainMenu.close();\n setTimeout(() => {\n this._reportURL = payload.reportURL;\n }, 150);\n // no errors? close the terminal.\n if (!this.errorMessagesReceived) {\n setTimeout(() => {\n this.terminalDrawer.hide().then(() => {\n this.streamMessagesComponent.reset();\n });\n }, 1200);\n }\n }, 1800);\n });\n }\n handleProgressMessage(payload) {\n const update = {\n message: payload.message,\n type: 'info',\n };\n this.streamMessagesComponent.messages.push(update);\n this.streamMessagesComponent.requestUpdate();\n }\n rollOutHeader() {\n const header = document.querySelector('#demo-header-content');\n requestAnimationFrame(() => {\n setTimeout(() => {\n // max out size of demo area.\n const demo = document.querySelector('online-demo');\n demo.classList.add('full-view');\n header.classList.add('closed');\n }, 1000);\n });\n this.rolledOut = true;\n }\n rollInHeader() {\n const header = document.querySelector('#demo-header-content');\n requestAnimationFrame(() => {\n setTimeout(() => {\n // max out size of demo area.\n const demo = document.querySelector('online-demo');\n demo.classList.remove('full-view');\n header.classList.remove('closed');\n }, 100);\n });\n this.rolledOut = false;\n }\n handleReportRequest(report) {\n return __awaiter(this, void 0, void 0, function* () {\n this.buildError = null;\n this.mainMenu.apiError = null;\n this.errorMessagesReceived = false;\n let req;\n if (report.leftSpec && report.rightSpec) {\n const leftText = yield report.leftSpec.text();\n const rightText = yield report.rightSpec.text();\n const lrr = {\n leftSpec: leftText,\n rightSpec: rightText,\n clientId: localStorage.getItem(ClientID)\n };\n req = { request: 'report-upload', payload: lrr };\n }\n else {\n report.clientId = localStorage.getItem(ClientID);\n req = { request: 'report-url', payload: report };\n }\n this.terminalDrawer.show().then(() => {\n this.bus.publish({\n destination: \"/p/q/\" + ChangeServiceChannel,\n body: JSON.stringify(req),\n });\n });\n });\n }\n stopConnectionTimer() {\n clearTimeout(this.connectionTimer);\n }\n startConnectionTimer() {\n this.connectingMessage = html `Connecting to pb33f platform...`;\n this.connectionTimer = setTimeout(() => {\n this.connectingSpinner.style.setProperty('--indicator-color', 'var(--warn-400)');\n this.connectingMessage = html ` Still trying to connect to pb33f platform...`;\n this.connectionTimer = setTimeout(() => {\n this.connectingSpinner.style.setProperty('--indicator-color', 'var(--error-color)');\n this.connectingMessage = html `About to give up trying to connect...`;\n this.connectionTimer = setTimeout(() => {\n this.connectingSpinner.style.setProperty('--indicator-color', 'red');\n this.connectingSpinner.style.display = 'none';\n this.connectingMessage = html `\n \n Disconnected from the pb33f platform. Sorry about that.\n