@pacem/pacem-networking 1.0.0-bernoulli → 1.0.0-binet

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @pacem/pacem-networking v1.0.0-bernoulli (https://js.pacem.it)
2
+ * @pacem/pacem-networking v1.0.0-binet (https://js.pacem.it)
3
3
  * Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
@@ -15,6 +15,7 @@
15
15
  //namespace Pacem.Components.Networking {
16
16
  const API_JS = 'https://cdn.jsdelivr.net/npm/@microsoft/signalr@10.0.0/dist/browser/signalr.min.js'; // 'https://cdnjs.cloudflare.com/ajax/libs/microsoft-signalr/10.0.0/signalr.min.js'
17
17
  const consts = { API_JS };
18
+ /** Subscribes to a hub method (or stream) exposed by the ancestor {@link PacemHubProxyElement}, dispatching a `receive` event for every incoming message. */
18
19
  let PacemHubListenerElement = class PacemHubListenerElement extends pacemCore.Components.PacemItemElement {
19
20
  constructor() {
20
21
  super(...arguments);
@@ -142,28 +143,44 @@
142
143
  PacemHubListenerElement = __decorate$1([
143
144
  pacemCore.CustomElement({ tagName: pacemCore.P + '-hub-listener' })
144
145
  ], PacemHubListenerElement);
146
+ /** Wraps a SignalR hub connection, dispatching its connection state and exposing `invoke`/`send` to registered {@link PacemHubListenerElement} children. */
145
147
  let PacemHubProxyElement = class PacemHubProxyElement extends pacemCore.Components.PacemItemsContainerElement {
148
+ /** @inheritdoc */
146
149
  validate(item) {
147
150
  return item instanceof PacemHubListenerElement;
148
151
  }
152
+ /** @readonly Gets the underlying `signalR.HubConnection` instance, if connected. */
149
153
  get connection() {
150
154
  return this._hub;
151
155
  }
156
+ /**
157
+ * Invokes a hub method and waits for a result from the server.
158
+ * @param method Name of the hub method to invoke
159
+ * @param args Arguments to pass to the hub method
160
+ * @returns A promise that resolves with the server response
161
+ */
152
162
  invoke(method, ...args) {
153
163
  if (this.connected) {
154
164
  return this._hub.invoke.apply(this._hub, arguments);
155
165
  }
156
166
  throw 'Hub is not connected. Cannot call `invoke` method.';
157
167
  }
168
+ /**
169
+ * Invokes a hub method without waiting for a result from the server.
170
+ * @param method Name of the hub method to invoke
171
+ * @param args Arguments to pass to the hub method
172
+ */
158
173
  send(method, ...args) {
159
174
  if (this.connected) {
160
175
  return this._hub.send(method, ...args);
161
176
  }
162
177
  throw 'Hub is not connected. Cannot call `send` method.';
163
178
  }
179
+ /** (Re)establishes the hub connection. */
164
180
  start() {
165
181
  return this._resetProxy();
166
182
  }
183
+ /** Closes the hub connection, if connected. */
167
184
  async stop() {
168
185
  if (this.connected) {
169
186
  await this._hub.stop();
@@ -244,6 +261,7 @@
244
261
  return c > 3 && r && Object.defineProperty(target, key, r), r;
245
262
  };
246
263
  //namespace Pacem.Components.Networking {
264
+ /** Subscribes to a named event exposed by the ancestor {@link PacemServerSentEventsProxyElement}'s `EventSource`, dispatching a `receive` event for every incoming message. */
247
265
  let PacemServerSentEventsListenerElement = class PacemServerSentEventsListenerElement extends pacemCore.Components.PacemItemElement {
248
266
  constructor() {
249
267
  super(...arguments);
@@ -331,6 +349,7 @@
331
349
  PacemServerSentEventsListenerElement = __decorate([
332
350
  pacemCore.CustomElement({ tagName: pacemCore.P + '-sse-listener' })
333
351
  ], PacemServerSentEventsListenerElement);
352
+ /** Wraps a browser `EventSource`, opening a Server-Sent Events connection and dispatching its connection state to registered {@link PacemServerSentEventsListenerElement} children. */
334
353
  let PacemServerSentEventsProxyElement = class PacemServerSentEventsProxyElement extends pacemCore.Components.PacemItemsContainerElement {
335
354
  constructor() {
336
355
  super(...arguments);
@@ -345,6 +364,7 @@
345
364
  this.dispatchEvent(new CustomEvent('receive', { detail: e.data }));
346
365
  };
347
366
  }
367
+ /** @inheritdoc */
348
368
  validate(item) {
349
369
  return item instanceof PacemServerSentEventsListenerElement;
350
370
  }
@@ -378,6 +398,7 @@
378
398
  evtSource.onerror = this._errorHandler;
379
399
  }
380
400
  }
401
+ /** @readonly Gets the underlying `EventSource` instance, if connected. */
381
402
  get eventSource() {
382
403
  return this.#evtSource;
383
404
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pacem-networking.js","sources":["../esm/hub-proxy.js","../esm/sse-proxy.js","../esm/index-iife.js"],"sourcesContent":["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};\nimport { P, CustomElement, Watch, PropertyConverters, Utils, PropertyChangeEventName, CustomElementUtils, Components } from '@pacem/pacem-core';\n//namespace Pacem.Components.Networking {\nconst API_JS = 'https://cdn.jsdelivr.net/npm/@microsoft/signalr@10.0.0/dist/browser/signalr.min.js'; // 'https://cdnjs.cloudflare.com/ajax/libs/microsoft-signalr/10.0.0/signalr.min.js'\nconst consts = { API_JS };\nlet PacemHubListenerElement = class PacemHubListenerElement extends Components.PacemItemElement {\n constructor() {\n super(...arguments);\n this._receiveHandler = (...args) => {\n this.dispatchEvent(new CustomEvent('receive', { detail: Array.from(args) }));\n };\n this._completeHandler = () => {\n this.dispatchEvent(new Event('complete'));\n };\n this._errorHandler = (error) => {\n this.dispatchEvent(new CustomEvent('error', { detail: error }));\n };\n this._connectedHandler = (e) => {\n if (e.detail.propertyName === 'connected' && e.detail.currentValue === true) {\n this._start();\n }\n };\n }\n #streamSubscription;\n get _isConnected() {\n return this.container instanceof PacemHubProxyElement && this.container.connected || false;\n }\n get _connection() {\n return this.container instanceof PacemHubProxyElement && this.container.connection || null;\n }\n /** Start listening, if not disabled. */\n start() {\n if (!this.disabled) {\n this._start();\n }\n }\n /** Stop listening. */\n stop() {\n this._stop();\n }\n _stop(method = this.method, isStreaming = this.stream) {\n if (!this._isConnected) {\n return;\n }\n const conn = this._connection;\n if (!Utils.isNullOrEmpty(method)) {\n if (!isStreaming) {\n conn.off(method, this._receiveHandler);\n }\n else {\n this.#streamSubscription?.dispose();\n }\n }\n }\n _start(method = this.method, isStreaming = this.stream) {\n if (!this._isConnected) {\n return;\n }\n const conn = this._connection;\n if (!Utils.isNullOrEmpty(method)) {\n if (!isStreaming) {\n conn.on(method, this._receiveHandler);\n }\n else {\n const args = this.arguments || [];\n const streamResult = signalR.HubConnection.prototype.stream.apply(conn, [method].concat(args));\n this.#streamSubscription = streamResult.subscribe({\n next: this._receiveHandler,\n complete: this._completeHandler,\n error: this._errorHandler\n });\n }\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n const container = this.container;\n if (!Utils.isNull(container)) {\n container.addEventListener(PropertyChangeEventName, this._connectedHandler, false);\n }\n this.start();\n }\n disconnectedCallback() {\n const container = this.container;\n if (!Utils.isNull(container)) {\n container.removeEventListener(PropertyChangeEventName, this._connectedHandler, false);\n }\n super.disconnectedCallback();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'arguments':\n this._stop();\n this._start();\n break;\n case 'method':\n if (!Utils.isNullOrEmpty(old)) {\n this._stop(old, this.stream);\n }\n if (!Utils.isNullOrEmpty(val)) {\n this._start(val, this.stream);\n }\n break;\n case 'stream':\n const m = this.method;\n if (!Utils.isNullOrEmpty(m)) {\n this._stop(m, old);\n this._start(m, val);\n }\n break;\n case 'disabled':\n if (!Utils.isNullOrEmpty(this.method)) {\n let toggle = val ? this._stop : this._start;\n toggle();\n }\n break;\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemHubListenerElement.prototype, \"method\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemHubListenerElement.prototype, \"stream\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Json })\n], PacemHubListenerElement.prototype, \"arguments\", void 0);\nPacemHubListenerElement = __decorate([\n CustomElement({ tagName: P + '-hub-listener' })\n], PacemHubListenerElement);\nexport { PacemHubListenerElement };\nlet PacemHubProxyElement = class PacemHubProxyElement extends Components.PacemItemsContainerElement {\n validate(item) {\n return item instanceof PacemHubListenerElement;\n }\n get connection() {\n return this._hub;\n }\n invoke(method, ...args) {\n if (this.connected) {\n return this._hub.invoke.apply(this._hub, arguments);\n }\n throw 'Hub is not connected. Cannot call `invoke` method.';\n }\n send(method, ...args) {\n if (this.connected) {\n return this._hub.send(method, ...args);\n }\n throw 'Hub is not connected. Cannot call `send` method.';\n }\n start() {\n return this._resetProxy();\n }\n async stop() {\n if (this.connected) {\n await this._hub.stop();\n }\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n //\n if (first) {\n return;\n }\n if (name === 'url' || name === 'disabled' || name === 'accesstoken') {\n this._resetProxy();\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this.start();\n }\n disconnectedCallback() {\n // this will (likely) never complete, being an asynchrounous call...\n // TODO: think about it.\n this.stop();\n super.disconnectedCallback();\n }\n async _resetProxy() {\n if (!Utils.isNull(this._hub)) {\n await this._hub.stop();\n //this.connected = false;\n }\n this._setupProxy();\n }\n async _initialize() {\n if ('signalR' in window) {\n // already available, skip import\n return;\n }\n await CustomElementUtils.importjs(consts.API_JS);\n }\n async _setupProxy() {\n const listeners = this.items || [];\n if (!this.disabled && !Utils.isNullOrEmpty(this.url)) {\n await this._initialize();\n const connBuilder = new signalR.HubConnectionBuilder();\n connBuilder.withUrl(this.url, {\n accessTokenFactory: () => this.accesstoken\n });\n const h = this._hub = connBuilder.build();\n h.onclose(() => {\n for (var item of listeners) {\n item.stop();\n }\n this.connected = false;\n this._hub = null;\n });\n await h.start();\n this.connected = true;\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemHubProxyElement.prototype, \"url\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemHubProxyElement.prototype, \"accesstoken\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemHubProxyElement.prototype, \"connected\", void 0);\nPacemHubProxyElement = __decorate([\n CustomElement({ tagName: P + '-hub-proxy' })\n], PacemHubProxyElement);\nexport { PacemHubProxyElement };\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};\nimport { P, CustomElement, Watch, PropertyConverters, Utils, PropertyChangeEventName, Debounce, Components } from '@pacem/pacem-core';\n//namespace Pacem.Components.Networking {\nlet PacemServerSentEventsListenerElement = class PacemServerSentEventsListenerElement extends Components.PacemItemElement {\n constructor() {\n super(...arguments);\n this._receiveHandler = (e) => {\n this.dispatchEvent(new CustomEvent('receive', { detail: e.data }));\n };\n this._connectedHandler = (e) => {\n if (e.detail.propertyName === 'connected' && e.detail.currentValue === true) {\n this._start();\n }\n };\n }\n get _isConnected() {\n return this.container instanceof PacemServerSentEventsProxyElement && this.container.connected || false;\n }\n get _connection() {\n return this.container instanceof PacemServerSentEventsProxyElement && this.container.eventSource || null;\n }\n _stop(method = this.method) {\n if (!this._isConnected) {\n return;\n }\n const conn = this._connection;\n if (!Utils.isNullOrEmpty(method)) {\n conn.removeEventListener(method, this._receiveHandler);\n }\n }\n _start(method = this.method) {\n if (!this._isConnected) {\n return;\n }\n const conn = this._connection;\n if (!Utils.isNullOrEmpty(method)) {\n conn.addEventListener(method, this._receiveHandler);\n }\n }\n /** Start listening, if not disabled. */\n start() {\n if (!this.disabled) {\n this._start();\n }\n }\n /** Stop listening. */\n stop() {\n this._stop();\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n const container = this.container;\n if (!Utils.isNull(container)) {\n container.addEventListener(PropertyChangeEventName, this._connectedHandler, false);\n }\n this.start();\n }\n disconnectedCallback() {\n const container = this.container;\n if (!Utils.isNull(container)) {\n container.removeEventListener(PropertyChangeEventName, this._connectedHandler, false);\n }\n super.disconnectedCallback();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'method':\n if (!Utils.isNullOrEmpty(old)) {\n this._stop(old);\n }\n if (!Utils.isNullOrEmpty(val)) {\n this._start(val);\n }\n break;\n case 'disabled':\n if (!Utils.isNullOrEmpty(this.method)) {\n let toggle = val ? this._stop : this._start;\n toggle();\n }\n break;\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemServerSentEventsListenerElement.prototype, \"method\", void 0);\nPacemServerSentEventsListenerElement = __decorate([\n CustomElement({ tagName: P + '-sse-listener' })\n], PacemServerSentEventsListenerElement);\nexport { PacemServerSentEventsListenerElement };\nlet PacemServerSentEventsProxyElement = class PacemServerSentEventsProxyElement extends Components.PacemItemsContainerElement {\n constructor() {\n super(...arguments);\n this._connectHandler = (_) => {\n this.connected = true;\n this.#evtSource.onmessage = this._receiveHandler;\n };\n this._errorHandler = (_) => {\n this.connected = false;\n };\n this._receiveHandler = (e) => {\n this.dispatchEvent(new CustomEvent('receive', { detail: e.data }));\n };\n }\n validate(item) {\n return item instanceof PacemServerSentEventsListenerElement;\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._start();\n }\n disconnectedCallback() {\n this._stop();\n super.disconnectedCallback();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n //\n if (first) {\n return;\n }\n if (name === 'url' || name === 'disabled') {\n this._restart();\n }\n }\n #evtSource;\n _restart() {\n this._stop();\n this._start();\n }\n _start(url = this.url) {\n if (!Utils.isNullOrEmpty(url) && !this.disabled) {\n const evtSource = this.#evtSource = new EventSource(url);\n evtSource.onopen = this._connectHandler;\n evtSource.onerror = this._errorHandler;\n }\n }\n get eventSource() {\n return this.#evtSource;\n }\n _stop() {\n const listeners = this.items || [];\n for (var item of listeners) {\n item.stop();\n }\n const evtSource = this.#evtSource;\n if (!Utils.isNull(evtSource)) {\n evtSource.onopen = null;\n evtSource.onerror = null;\n evtSource.onmessage = null;\n evtSource.close();\n }\n this.connected = false;\n this.#evtSource = null;\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemServerSentEventsProxyElement.prototype, \"url\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemServerSentEventsProxyElement.prototype, \"connected\", void 0);\n__decorate([\n Debounce(true)\n], PacemServerSentEventsProxyElement.prototype, \"_restart\", null);\nPacemServerSentEventsProxyElement = __decorate([\n CustomElement({ tagName: P + '-sse-proxy' })\n], PacemServerSentEventsProxyElement);\nexport { PacemServerSentEventsProxyElement };\n","import { DeepMerger } from '@pacem/pacem-foundation';\nimport * as Output from './index';\nDeepMerger.merge(Output);\n"],"names":["__decorate","this","Components","Utils","PropertyChangeEventName","Watch","PropertyConverters","CustomElement","P","CustomElementUtils","Debounce","DeepMerger"],"mappings":"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"}
1
+ {"version":3,"file":"pacem-networking.js","sources":["../esm/hub-proxy.js","../esm/sse-proxy.js","../esm/index-iife.js"],"sourcesContent":["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};\nimport { P, CustomElement, Watch, PropertyConverters, Utils, PropertyChangeEventName, CustomElementUtils, Components } from '@pacem/pacem-core';\n//namespace Pacem.Components.Networking {\nconst API_JS = 'https://cdn.jsdelivr.net/npm/@microsoft/signalr@10.0.0/dist/browser/signalr.min.js'; // 'https://cdnjs.cloudflare.com/ajax/libs/microsoft-signalr/10.0.0/signalr.min.js'\nconst consts = { API_JS };\n/** Subscribes to a hub method (or stream) exposed by the ancestor {@link PacemHubProxyElement}, dispatching a `receive` event for every incoming message. */\nlet PacemHubListenerElement = class PacemHubListenerElement extends Components.PacemItemElement {\n constructor() {\n super(...arguments);\n this._receiveHandler = (...args) => {\n this.dispatchEvent(new CustomEvent('receive', { detail: Array.from(args) }));\n };\n this._completeHandler = () => {\n this.dispatchEvent(new Event('complete'));\n };\n this._errorHandler = (error) => {\n this.dispatchEvent(new CustomEvent('error', { detail: error }));\n };\n this._connectedHandler = (e) => {\n if (e.detail.propertyName === 'connected' && e.detail.currentValue === true) {\n this._start();\n }\n };\n }\n #streamSubscription;\n get _isConnected() {\n return this.container instanceof PacemHubProxyElement && this.container.connected || false;\n }\n get _connection() {\n return this.container instanceof PacemHubProxyElement && this.container.connection || null;\n }\n /** Start listening, if not disabled. */\n start() {\n if (!this.disabled) {\n this._start();\n }\n }\n /** Stop listening. */\n stop() {\n this._stop();\n }\n _stop(method = this.method, isStreaming = this.stream) {\n if (!this._isConnected) {\n return;\n }\n const conn = this._connection;\n if (!Utils.isNullOrEmpty(method)) {\n if (!isStreaming) {\n conn.off(method, this._receiveHandler);\n }\n else {\n this.#streamSubscription?.dispose();\n }\n }\n }\n _start(method = this.method, isStreaming = this.stream) {\n if (!this._isConnected) {\n return;\n }\n const conn = this._connection;\n if (!Utils.isNullOrEmpty(method)) {\n if (!isStreaming) {\n conn.on(method, this._receiveHandler);\n }\n else {\n const args = this.arguments || [];\n const streamResult = signalR.HubConnection.prototype.stream.apply(conn, [method].concat(args));\n this.#streamSubscription = streamResult.subscribe({\n next: this._receiveHandler,\n complete: this._completeHandler,\n error: this._errorHandler\n });\n }\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n const container = this.container;\n if (!Utils.isNull(container)) {\n container.addEventListener(PropertyChangeEventName, this._connectedHandler, false);\n }\n this.start();\n }\n disconnectedCallback() {\n const container = this.container;\n if (!Utils.isNull(container)) {\n container.removeEventListener(PropertyChangeEventName, this._connectedHandler, false);\n }\n super.disconnectedCallback();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'arguments':\n this._stop();\n this._start();\n break;\n case 'method':\n if (!Utils.isNullOrEmpty(old)) {\n this._stop(old, this.stream);\n }\n if (!Utils.isNullOrEmpty(val)) {\n this._start(val, this.stream);\n }\n break;\n case 'stream':\n const m = this.method;\n if (!Utils.isNullOrEmpty(m)) {\n this._stop(m, old);\n this._start(m, val);\n }\n break;\n case 'disabled':\n if (!Utils.isNullOrEmpty(this.method)) {\n let toggle = val ? this._stop : this._start;\n toggle();\n }\n break;\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemHubListenerElement.prototype, \"method\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemHubListenerElement.prototype, \"stream\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Json })\n], PacemHubListenerElement.prototype, \"arguments\", void 0);\nPacemHubListenerElement = __decorate([\n CustomElement({ tagName: P + '-hub-listener' })\n], PacemHubListenerElement);\nexport { PacemHubListenerElement };\n/** Wraps a SignalR hub connection, dispatching its connection state and exposing `invoke`/`send` to registered {@link PacemHubListenerElement} children. */\nlet PacemHubProxyElement = class PacemHubProxyElement extends Components.PacemItemsContainerElement {\n /** @inheritdoc */\n validate(item) {\n return item instanceof PacemHubListenerElement;\n }\n /** @readonly Gets the underlying `signalR.HubConnection` instance, if connected. */\n get connection() {\n return this._hub;\n }\n /**\n * Invokes a hub method and waits for a result from the server.\n * @param method Name of the hub method to invoke\n * @param args Arguments to pass to the hub method\n * @returns A promise that resolves with the server response\n */\n invoke(method, ...args) {\n if (this.connected) {\n return this._hub.invoke.apply(this._hub, arguments);\n }\n throw 'Hub is not connected. Cannot call `invoke` method.';\n }\n /**\n * Invokes a hub method without waiting for a result from the server.\n * @param method Name of the hub method to invoke\n * @param args Arguments to pass to the hub method\n */\n send(method, ...args) {\n if (this.connected) {\n return this._hub.send(method, ...args);\n }\n throw 'Hub is not connected. Cannot call `send` method.';\n }\n /** (Re)establishes the hub connection. */\n start() {\n return this._resetProxy();\n }\n /** Closes the hub connection, if connected. */\n async stop() {\n if (this.connected) {\n await this._hub.stop();\n }\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n //\n if (first) {\n return;\n }\n if (name === 'url' || name === 'disabled' || name === 'accesstoken') {\n this._resetProxy();\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this.start();\n }\n disconnectedCallback() {\n // this will (likely) never complete, being an asynchrounous call...\n // TODO: think about it.\n this.stop();\n super.disconnectedCallback();\n }\n async _resetProxy() {\n if (!Utils.isNull(this._hub)) {\n await this._hub.stop();\n //this.connected = false;\n }\n this._setupProxy();\n }\n async _initialize() {\n if ('signalR' in window) {\n // already available, skip import\n return;\n }\n await CustomElementUtils.importjs(consts.API_JS);\n }\n async _setupProxy() {\n const listeners = this.items || [];\n if (!this.disabled && !Utils.isNullOrEmpty(this.url)) {\n await this._initialize();\n const connBuilder = new signalR.HubConnectionBuilder();\n connBuilder.withUrl(this.url, {\n accessTokenFactory: () => this.accesstoken\n });\n const h = this._hub = connBuilder.build();\n h.onclose(() => {\n for (var item of listeners) {\n item.stop();\n }\n this.connected = false;\n this._hub = null;\n });\n await h.start();\n this.connected = true;\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemHubProxyElement.prototype, \"url\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemHubProxyElement.prototype, \"accesstoken\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemHubProxyElement.prototype, \"connected\", void 0);\nPacemHubProxyElement = __decorate([\n CustomElement({ tagName: P + '-hub-proxy' })\n], PacemHubProxyElement);\nexport { PacemHubProxyElement };\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};\nimport { P, CustomElement, Watch, PropertyConverters, Utils, PropertyChangeEventName, Debounce, Components } from '@pacem/pacem-core';\n//namespace Pacem.Components.Networking {\n/** Subscribes to a named event exposed by the ancestor {@link PacemServerSentEventsProxyElement}'s `EventSource`, dispatching a `receive` event for every incoming message. */\nlet PacemServerSentEventsListenerElement = class PacemServerSentEventsListenerElement extends Components.PacemItemElement {\n constructor() {\n super(...arguments);\n this._receiveHandler = (e) => {\n this.dispatchEvent(new CustomEvent('receive', { detail: e.data }));\n };\n this._connectedHandler = (e) => {\n if (e.detail.propertyName === 'connected' && e.detail.currentValue === true) {\n this._start();\n }\n };\n }\n get _isConnected() {\n return this.container instanceof PacemServerSentEventsProxyElement && this.container.connected || false;\n }\n get _connection() {\n return this.container instanceof PacemServerSentEventsProxyElement && this.container.eventSource || null;\n }\n _stop(method = this.method) {\n if (!this._isConnected) {\n return;\n }\n const conn = this._connection;\n if (!Utils.isNullOrEmpty(method)) {\n conn.removeEventListener(method, this._receiveHandler);\n }\n }\n _start(method = this.method) {\n if (!this._isConnected) {\n return;\n }\n const conn = this._connection;\n if (!Utils.isNullOrEmpty(method)) {\n conn.addEventListener(method, this._receiveHandler);\n }\n }\n /** Start listening, if not disabled. */\n start() {\n if (!this.disabled) {\n this._start();\n }\n }\n /** Stop listening. */\n stop() {\n this._stop();\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n const container = this.container;\n if (!Utils.isNull(container)) {\n container.addEventListener(PropertyChangeEventName, this._connectedHandler, false);\n }\n this.start();\n }\n disconnectedCallback() {\n const container = this.container;\n if (!Utils.isNull(container)) {\n container.removeEventListener(PropertyChangeEventName, this._connectedHandler, false);\n }\n super.disconnectedCallback();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'method':\n if (!Utils.isNullOrEmpty(old)) {\n this._stop(old);\n }\n if (!Utils.isNullOrEmpty(val)) {\n this._start(val);\n }\n break;\n case 'disabled':\n if (!Utils.isNullOrEmpty(this.method)) {\n let toggle = val ? this._stop : this._start;\n toggle();\n }\n break;\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemServerSentEventsListenerElement.prototype, \"method\", void 0);\nPacemServerSentEventsListenerElement = __decorate([\n CustomElement({ tagName: P + '-sse-listener' })\n], PacemServerSentEventsListenerElement);\nexport { PacemServerSentEventsListenerElement };\n/** Wraps a browser `EventSource`, opening a Server-Sent Events connection and dispatching its connection state to registered {@link PacemServerSentEventsListenerElement} children. */\nlet PacemServerSentEventsProxyElement = class PacemServerSentEventsProxyElement extends Components.PacemItemsContainerElement {\n constructor() {\n super(...arguments);\n this._connectHandler = (_) => {\n this.connected = true;\n this.#evtSource.onmessage = this._receiveHandler;\n };\n this._errorHandler = (_) => {\n this.connected = false;\n };\n this._receiveHandler = (e) => {\n this.dispatchEvent(new CustomEvent('receive', { detail: e.data }));\n };\n }\n /** @inheritdoc */\n validate(item) {\n return item instanceof PacemServerSentEventsListenerElement;\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._start();\n }\n disconnectedCallback() {\n this._stop();\n super.disconnectedCallback();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n //\n if (first) {\n return;\n }\n if (name === 'url' || name === 'disabled') {\n this._restart();\n }\n }\n #evtSource;\n _restart() {\n this._stop();\n this._start();\n }\n _start(url = this.url) {\n if (!Utils.isNullOrEmpty(url) && !this.disabled) {\n const evtSource = this.#evtSource = new EventSource(url);\n evtSource.onopen = this._connectHandler;\n evtSource.onerror = this._errorHandler;\n }\n }\n /** @readonly Gets the underlying `EventSource` instance, if connected. */\n get eventSource() {\n return this.#evtSource;\n }\n _stop() {\n const listeners = this.items || [];\n for (var item of listeners) {\n item.stop();\n }\n const evtSource = this.#evtSource;\n if (!Utils.isNull(evtSource)) {\n evtSource.onopen = null;\n evtSource.onerror = null;\n evtSource.onmessage = null;\n evtSource.close();\n }\n this.connected = false;\n this.#evtSource = null;\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemServerSentEventsProxyElement.prototype, \"url\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemServerSentEventsProxyElement.prototype, \"connected\", void 0);\n__decorate([\n Debounce(true)\n], PacemServerSentEventsProxyElement.prototype, \"_restart\", null);\nPacemServerSentEventsProxyElement = __decorate([\n CustomElement({ tagName: P + '-sse-proxy' })\n], PacemServerSentEventsProxyElement);\nexport { PacemServerSentEventsProxyElement };\n","import { DeepMerger } from '@pacem/pacem-foundation';\nimport * as Output from './index';\nDeepMerger.merge(Output);\n"],"names":["__decorate","this","Components","Utils","PropertyChangeEventName","Watch","PropertyConverters","CustomElement","P","CustomElementUtils","Debounce","DeepMerger"],"mappings":";;;IAAA,IAAIA,YAAU,GAAG,CAACC,SAAI,IAAIA,SAAI,CAAC,UAAU,KAAK,UAAU,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;IACvF,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;IAChI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC;IAClI,SAAS,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC;IACrJ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;IACjE,CAAC;IAED;IACA,MAAM,MAAM,GAAG,oFAAoF,CAAC;IACpG,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE;IACzB;IACA,IAAI,uBAAuB,GAAG,MAAM,uBAAuB,SAASC,oBAAU,CAAC,gBAAgB,CAAC;IAChG,IAAI,WAAW,GAAG;IAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;IAC3B,QAAQ,IAAI,CAAC,eAAe,GAAG,CAAC,GAAG,IAAI,KAAK;IAC5C,YAAY,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxF,QAAQ,CAAC;IACT,QAAQ,IAAI,CAAC,gBAAgB,GAAG,MAAM;IACtC,YAAY,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;IACrD,QAAQ,CAAC;IACT,QAAQ,IAAI,CAAC,aAAa,GAAG,CAAC,KAAK,KAAK;IACxC,YAAY,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3E,QAAQ,CAAC;IACT,QAAQ,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,KAAK;IACxC,YAAY,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,KAAK,WAAW,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,KAAK,IAAI,EAAE;IACzF,gBAAgB,IAAI,CAAC,MAAM,EAAE;IAC7B,YAAY;IACZ,QAAQ,CAAC;IACT,IAAI;IACJ,IAAI,mBAAmB;IACvB,IAAI,IAAI,YAAY,GAAG;IACvB,QAAQ,OAAO,IAAI,CAAC,SAAS,YAAY,oBAAoB,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,KAAK;IAClG,IAAI;IACJ,IAAI,IAAI,WAAW,GAAG;IACtB,QAAQ,OAAO,IAAI,CAAC,SAAS,YAAY,oBAAoB,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,IAAI,IAAI;IAClG,IAAI;IACJ;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;IAC5B,YAAY,IAAI,CAAC,MAAM,EAAE;IACzB,QAAQ;IACR,IAAI;IACJ;IACA,IAAI,IAAI,GAAG;IACX,QAAQ,IAAI,CAAC,KAAK,EAAE;IACpB,IAAI;IACJ,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE;IAC3D,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;IAChC,YAAY;IACZ,QAAQ;IACR,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW;IACrC,QAAQ,IAAI,CAACC,eAAK,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE;IAC1C,YAAY,IAAI,CAAC,WAAW,EAAE;IAC9B,gBAAgB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC;IACtD,YAAY;IACZ,iBAAiB;IACjB,gBAAgB,IAAI,CAAC,mBAAmB,EAAE,OAAO,EAAE;IACnD,YAAY;IACZ,QAAQ;IACR,IAAI;IACJ,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE;IAC5D,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;IAChC,YAAY;IACZ,QAAQ;IACR,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW;IACrC,QAAQ,IAAI,CAACA,eAAK,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE;IAC1C,YAAY,IAAI,CAAC,WAAW,EAAE;IAC9B,gBAAgB,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC;IACrD,YAAY;IACZ,iBAAiB;IACjB,gBAAgB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,IAAI,EAAE;IACjD,gBAAgB,MAAM,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9G,gBAAgB,IAAI,CAAC,mBAAmB,GAAG,YAAY,CAAC,SAAS,CAAC;IAClE,oBAAoB,IAAI,EAAE,IAAI,CAAC,eAAe;IAC9C,oBAAoB,QAAQ,EAAE,IAAI,CAAC,gBAAgB;IACnD,oBAAoB,KAAK,EAAE,IAAI,CAAC;IAChC,iBAAiB,CAAC;IAClB,YAAY;IACZ,QAAQ;IACR,IAAI;IACJ,IAAI,qBAAqB,GAAG;IAC5B,QAAQ,KAAK,CAAC,qBAAqB,EAAE;IACrC,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS;IACxC,QAAQ,IAAI,CAACA,eAAK,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;IACtC,YAAY,SAAS,CAAC,gBAAgB,CAACC,iCAAuB,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC;IAC9F,QAAQ;IACR,QAAQ,IAAI,CAAC,KAAK,EAAE;IACpB,IAAI;IACJ,IAAI,oBAAoB,GAAG;IAC3B,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS;IACxC,QAAQ,IAAI,CAACD,eAAK,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;IACtC,YAAY,SAAS,CAAC,mBAAmB,CAACC,iCAAuB,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC;IACjG,QAAQ;IACR,QAAQ,KAAK,CAAC,oBAAoB,EAAE;IACpC,IAAI;IACJ,IAAI,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;IACnD,QAAQ,KAAK,CAAC,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC;IAC5D,QAAQ,QAAQ,IAAI;IACpB,YAAY,KAAK,WAAW;IAC5B,gBAAgB,IAAI,CAAC,KAAK,EAAE;IAC5B,gBAAgB,IAAI,CAAC,MAAM,EAAE;IAC7B,gBAAgB;IAChB,YAAY,KAAK,QAAQ;IACzB,gBAAgB,IAAI,CAACD,eAAK,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE;IAC/C,oBAAoB,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC;IAChD,gBAAgB;IAChB,gBAAgB,IAAI,CAACA,eAAK,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE;IAC/C,oBAAoB,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC;IACjD,gBAAgB;IAChB,gBAAgB;IAChB,YAAY,KAAK,QAAQ;IACzB,gBAAgB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM;IACrC,gBAAgB,IAAI,CAACA,eAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;IAC7C,oBAAoB,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;IACtC,oBAAoB,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC;IACvC,gBAAgB;IAChB,gBAAgB;IAChB,YAAY,KAAK,UAAU;IAC3B,gBAAgB,IAAI,CAACA,eAAK,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;IACvD,oBAAoB,IAAI,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM;IAC/D,oBAAoB,MAAM,EAAE;IAC5B,gBAAgB;IAChB,gBAAgB;IAChB;IACA,IAAI;IACJ,CAAC;AACDH,gBAAU,CAAC;IACX,IAAIK,eAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAEC,4BAAkB,CAAC,MAAM,EAAE;IAC/D,CAAC,EAAE,uBAAuB,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC;AACvDN,gBAAU,CAAC;IACX,IAAIK,eAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAEC,4BAAkB,CAAC,OAAO,EAAE;IAChE,CAAC,EAAE,uBAAuB,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC;AACvDN,gBAAU,CAAC;IACX,IAAIK,eAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAEC,4BAAkB,CAAC,IAAI,EAAE;IAC7D,CAAC,EAAE,uBAAuB,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC;IAC1D,uBAAuB,GAAGN,YAAU,CAAC;IACrC,IAAIO,uBAAa,CAAC,EAAE,OAAO,EAAEC,WAAC,GAAG,eAAe,EAAE;IAClD,CAAC,EAAE,uBAAuB,CAAC;IAE3B;IACA,IAAI,oBAAoB,GAAG,MAAM,oBAAoB,SAASN,oBAAU,CAAC,0BAA0B,CAAC;IACpG;IACA,IAAI,QAAQ,CAAC,IAAI,EAAE;IACnB,QAAQ,OAAO,IAAI,YAAY,uBAAuB;IACtD,IAAI;IACJ;IACA,IAAI,IAAI,UAAU,GAAG;IACrB,QAAQ,OAAO,IAAI,CAAC,IAAI;IACxB,IAAI;IACJ;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,EAAE;IAC5B,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;IAC5B,YAAY,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC;IAC/D,QAAQ;IACR,QAAQ,MAAM,oDAAoD;IAClE,IAAI;IACJ;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,EAAE;IAC1B,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;IAC5B,YAAY,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;IAClD,QAAQ;IACR,QAAQ,MAAM,kDAAkD;IAChE,IAAI;IACJ;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,OAAO,IAAI,CAAC,WAAW,EAAE;IACjC,IAAI;IACJ;IACA,IAAI,MAAM,IAAI,GAAG;IACjB,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;IAC5B,YAAY,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;IAClC,QAAQ;IACR,IAAI;IACJ,IAAI,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;IACnD,QAAQ,KAAK,CAAC,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC;IAC5D;IACA,QAAQ,IAAI,KAAK,EAAE;IACnB,YAAY;IACZ,QAAQ;IACR,QAAQ,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,aAAa,EAAE;IAC7E,YAAY,IAAI,CAAC,WAAW,EAAE;IAC9B,QAAQ;IACR,IAAI;IACJ,IAAI,qBAAqB,GAAG;IAC5B,QAAQ,KAAK,CAAC,qBAAqB,EAAE;IACrC,QAAQ,IAAI,CAAC,KAAK,EAAE;IACpB,IAAI;IACJ,IAAI,oBAAoB,GAAG;IAC3B;IACA;IACA,QAAQ,IAAI,CAAC,IAAI,EAAE;IACnB,QAAQ,KAAK,CAAC,oBAAoB,EAAE;IACpC,IAAI;IACJ,IAAI,MAAM,WAAW,GAAG;IACxB,QAAQ,IAAI,CAACC,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;IACtC,YAAY,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;IAClC;IACA,QAAQ;IACR,QAAQ,IAAI,CAAC,WAAW,EAAE;IAC1B,IAAI;IACJ,IAAI,MAAM,WAAW,GAAG;IACxB,QAAQ,IAAI,SAAS,IAAI,MAAM,EAAE;IACjC;IACA,YAAY;IACZ,QAAQ;IACR,QAAQ,MAAMM,4BAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;IACxD,IAAI;IACJ,IAAI,MAAM,WAAW,GAAG;IACxB,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE;IAC1C,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAACN,eAAK,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;IAC9D,YAAY,MAAM,IAAI,CAAC,WAAW,EAAE;IACpC,YAAY,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,oBAAoB,EAAE;IAClE,YAAY,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;IAC1C,gBAAgB,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/C,aAAa,CAAC;IACd,YAAY,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,KAAK,EAAE;IACrD,YAAY,CAAC,CAAC,OAAO,CAAC,MAAM;IAC5B,gBAAgB,KAAK,IAAI,IAAI,IAAI,SAAS,EAAE;IAC5C,oBAAoB,IAAI,CAAC,IAAI,EAAE;IAC/B,gBAAgB;IAChB,gBAAgB,IAAI,CAAC,SAAS,GAAG,KAAK;IACtC,gBAAgB,IAAI,CAAC,IAAI,GAAG,IAAI;IAChC,YAAY,CAAC,CAAC;IACd,YAAY,MAAM,CAAC,CAAC,KAAK,EAAE;IAC3B,YAAY,IAAI,CAAC,SAAS,GAAG,IAAI;IACjC,QAAQ;IACR,IAAI;IACJ,CAAC;AACDH,gBAAU,CAAC;IACX,IAAIK,eAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAEC,4BAAkB,CAAC,MAAM,EAAE;IAC/D,CAAC,EAAE,oBAAoB,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC;AACjDN,gBAAU,CAAC;IACX,IAAIK,eAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAEC,4BAAkB,CAAC,MAAM,EAAE;IAC/D,CAAC,EAAE,oBAAoB,CAAC,SAAS,EAAE,aAAa,EAAE,MAAM,CAAC;AACzDN,gBAAU,CAAC;IACX,IAAIK,eAAK,CAAC,EAAE,SAAS,EAAEC,4BAAkB,CAAC,OAAO,EAAE;IACnD,CAAC,EAAE,oBAAoB,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC;IACvD,oBAAoB,GAAGN,YAAU,CAAC;IAClC,IAAIO,uBAAa,CAAC,EAAE,OAAO,EAAEC,WAAC,GAAG,YAAY,EAAE;IAC/C,CAAC,EAAE,oBAAoB,CAAC;;ICxPxB,IAAI,UAAU,GAAG,CAACP,SAAI,IAAIA,SAAI,CAAC,UAAU,KAAK,UAAU,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;IACvF,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;IAChI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC;IAClI,SAAS,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC;IACrJ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;IACjE,CAAC;IAED;IACA;IACA,IAAI,oCAAoC,GAAG,MAAM,oCAAoC,SAASC,oBAAU,CAAC,gBAAgB,CAAC;IAC1H,IAAI,WAAW,GAAG;IAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;IAC3B,QAAQ,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,KAAK;IACtC,YAAY,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9E,QAAQ,CAAC;IACT,QAAQ,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,KAAK;IACxC,YAAY,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,KAAK,WAAW,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,KAAK,IAAI,EAAE;IACzF,gBAAgB,IAAI,CAAC,MAAM,EAAE;IAC7B,YAAY;IACZ,QAAQ,CAAC;IACT,IAAI;IACJ,IAAI,IAAI,YAAY,GAAG;IACvB,QAAQ,OAAO,IAAI,CAAC,SAAS,YAAY,iCAAiC,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,KAAK;IAC/G,IAAI;IACJ,IAAI,IAAI,WAAW,GAAG;IACtB,QAAQ,OAAO,IAAI,CAAC,SAAS,YAAY,iCAAiC,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,IAAI,IAAI;IAChH,IAAI;IACJ,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;IAChC,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;IAChC,YAAY;IACZ,QAAQ;IACR,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW;IACrC,QAAQ,IAAI,CAACC,eAAK,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE;IAC1C,YAAY,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC;IAClE,QAAQ;IACR,IAAI;IACJ,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;IACjC,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;IAChC,YAAY;IACZ,QAAQ;IACR,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW;IACrC,QAAQ,IAAI,CAACA,eAAK,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE;IAC1C,YAAY,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC;IAC/D,QAAQ;IACR,IAAI;IACJ;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;IAC5B,YAAY,IAAI,CAAC,MAAM,EAAE;IACzB,QAAQ;IACR,IAAI;IACJ;IACA,IAAI,IAAI,GAAG;IACX,QAAQ,IAAI,CAAC,KAAK,EAAE;IACpB,IAAI;IACJ,IAAI,qBAAqB,GAAG;IAC5B,QAAQ,KAAK,CAAC,qBAAqB,EAAE;IACrC,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS;IACxC,QAAQ,IAAI,CAACA,eAAK,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;IACtC,YAAY,SAAS,CAAC,gBAAgB,CAACC,iCAAuB,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC;IAC9F,QAAQ;IACR,QAAQ,IAAI,CAAC,KAAK,EAAE;IACpB,IAAI;IACJ,IAAI,oBAAoB,GAAG;IAC3B,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS;IACxC,QAAQ,IAAI,CAACD,eAAK,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;IACtC,YAAY,SAAS,CAAC,mBAAmB,CAACC,iCAAuB,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC;IACjG,QAAQ;IACR,QAAQ,KAAK,CAAC,oBAAoB,EAAE;IACpC,IAAI;IACJ,IAAI,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;IACnD,QAAQ,KAAK,CAAC,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC;IAC5D,QAAQ,QAAQ,IAAI;IACpB,YAAY,KAAK,QAAQ;IACzB,gBAAgB,IAAI,CAACD,eAAK,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE;IAC/C,oBAAoB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;IACnC,gBAAgB;IAChB,gBAAgB,IAAI,CAACA,eAAK,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE;IAC/C,oBAAoB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;IACpC,gBAAgB;IAChB,gBAAgB;IAChB,YAAY,KAAK,UAAU;IAC3B,gBAAgB,IAAI,CAACA,eAAK,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;IACvD,oBAAoB,IAAI,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM;IAC/D,oBAAoB,MAAM,EAAE;IAC5B,gBAAgB;IAChB,gBAAgB;IAChB;IACA,IAAI;IACJ,CAAC;IACD,UAAU,CAAC;IACX,IAAIE,eAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAEC,4BAAkB,CAAC,MAAM,EAAE;IAC/D,CAAC,EAAE,oCAAoC,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC;IACpE,oCAAoC,GAAG,UAAU,CAAC;IAClD,IAAIC,uBAAa,CAAC,EAAE,OAAO,EAAEC,WAAC,GAAG,eAAe,EAAE;IAClD,CAAC,EAAE,oCAAoC,CAAC;IAExC;IACA,IAAI,iCAAiC,GAAG,MAAM,iCAAiC,SAASN,oBAAU,CAAC,0BAA0B,CAAC;IAC9H,IAAI,WAAW,GAAG;IAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;IAC3B,QAAQ,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,KAAK;IACtC,YAAY,IAAI,CAAC,SAAS,GAAG,IAAI;IACjC,YAAY,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe;IAC5D,QAAQ,CAAC;IACT,QAAQ,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,KAAK;IACpC,YAAY,IAAI,CAAC,SAAS,GAAG,KAAK;IAClC,QAAQ,CAAC;IACT,QAAQ,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,KAAK;IACtC,YAAY,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9E,QAAQ,CAAC;IACT,IAAI;IACJ;IACA,IAAI,QAAQ,CAAC,IAAI,EAAE;IACnB,QAAQ,OAAO,IAAI,YAAY,oCAAoC;IACnE,IAAI;IACJ,IAAI,qBAAqB,GAAG;IAC5B,QAAQ,KAAK,CAAC,qBAAqB,EAAE;IACrC,QAAQ,IAAI,CAAC,MAAM,EAAE;IACrB,IAAI;IACJ,IAAI,oBAAoB,GAAG;IAC3B,QAAQ,IAAI,CAAC,KAAK,EAAE;IACpB,QAAQ,KAAK,CAAC,oBAAoB,EAAE;IACpC,IAAI;IACJ,IAAI,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;IACnD,QAAQ,KAAK,CAAC,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC;IAC5D;IACA,QAAQ,IAAI,KAAK,EAAE;IACnB,YAAY;IACZ,QAAQ;IACR,QAAQ,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,UAAU,EAAE;IACnD,YAAY,IAAI,CAAC,QAAQ,EAAE;IAC3B,QAAQ;IACR,IAAI;IACJ,IAAI,UAAU;IACd,IAAI,QAAQ,GAAG;IACf,QAAQ,IAAI,CAAC,KAAK,EAAE;IACpB,QAAQ,IAAI,CAAC,MAAM,EAAE;IACrB,IAAI;IACJ,IAAI,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IAC3B,QAAQ,IAAI,CAACC,eAAK,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;IACzD,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC;IACpE,YAAY,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe;IACnD,YAAY,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa;IAClD,QAAQ;IACR,IAAI;IACJ;IACA,IAAI,IAAI,WAAW,GAAG;IACtB,QAAQ,OAAO,IAAI,CAAC,UAAU;IAC9B,IAAI;IACJ,IAAI,KAAK,GAAG;IACZ,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE;IAC1C,QAAQ,KAAK,IAAI,IAAI,IAAI,SAAS,EAAE;IACpC,YAAY,IAAI,CAAC,IAAI,EAAE;IACvB,QAAQ;IACR,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU;IACzC,QAAQ,IAAI,CAACA,eAAK,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;IACtC,YAAY,SAAS,CAAC,MAAM,GAAG,IAAI;IACnC,YAAY,SAAS,CAAC,OAAO,GAAG,IAAI;IACpC,YAAY,SAAS,CAAC,SAAS,GAAG,IAAI;IACtC,YAAY,SAAS,CAAC,KAAK,EAAE;IAC7B,QAAQ;IACR,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK;IAC9B,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI;IAC9B,IAAI;IACJ,CAAC;IACD,UAAU,CAAC;IACX,IAAIE,eAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAEC,4BAAkB,CAAC,MAAM,EAAE;IAC/D,CAAC,EAAE,iCAAiC,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC;IAC9D,UAAU,CAAC;IACX,IAAID,eAAK,CAAC,EAAE,SAAS,EAAEC,4BAAkB,CAAC,OAAO,EAAE;IACnD,CAAC,EAAE,iCAAiC,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC;IACpE,UAAU,CAAC;IACX,IAAII,kBAAQ,CAAC,IAAI;IACjB,CAAC,EAAE,iCAAiC,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC;IACjE,iCAAiC,GAAG,UAAU,CAAC;IAC/C,IAAIH,uBAAa,CAAC,EAAE,OAAO,EAAEC,WAAC,GAAG,YAAY,EAAE;IAC/C,CAAC,EAAE,iCAAiC,CAAC;;;;;;;;;;;;;;;;;;;;AC/KrCG,8BAAU,CAAC,KAAK,CAAC,MAAM,CAAC;;;;;;"}
@@ -1,7 +1,6 @@
1
1
  /*!
2
- * @pacem/pacem-networking v1.0.0-bernoulli (https://js.pacem.it)
2
+ * @pacem/pacem-networking v1.0.0-binet (https://js.pacem.it)
3
3
  * Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
6
6
  !function(e,t){"use strict";var n=function(e,t,n,s){var r,i=arguments.length,o=i<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,s);else for(var c=e.length-1;c>=0;c--)(r=e[c])&&(o=(i<3?r(o):i>3?r(t,n,o):r(t,n))||o);return i>3&&o&&Object.defineProperty(t,n,o),o};const s="https://cdn.jsdelivr.net/npm/@microsoft/signalr@10.0.0/dist/browser/signalr.min.js";let r=class PacemHubListenerElement extends t.Components.PacemItemElement{constructor(){super(...arguments),this._receiveHandler=(...e)=>{this.dispatchEvent(new CustomEvent("receive",{detail:Array.from(e)}))},this._completeHandler=()=>{this.dispatchEvent(new Event("complete"))},this._errorHandler=e=>{this.dispatchEvent(new CustomEvent("error",{detail:e}))},this._connectedHandler=e=>{"connected"===e.detail.propertyName&&!0===e.detail.currentValue&&this._start()}}#e;get _isConnected(){return this.container instanceof i&&this.container.connected||!1}get _connection(){return this.container instanceof i&&this.container.connection||null}start(){this.disabled||this._start()}stop(){this._stop()}_stop(e=this.method,n=this.stream){if(!this._isConnected)return;const s=this._connection;t.Utils.isNullOrEmpty(e)||(n?this.#e?.dispose():s.off(e,this._receiveHandler))}_start(e=this.method,n=this.stream){if(!this._isConnected)return;const s=this._connection;if(!t.Utils.isNullOrEmpty(e))if(n){const t=this.arguments||[],n=signalR.HubConnection.prototype.stream.apply(s,[e].concat(t));this.#e=n.subscribe({next:this._receiveHandler,complete:this._completeHandler,error:this._errorHandler})}else s.on(e,this._receiveHandler)}viewActivatedCallback(){super.viewActivatedCallback();const e=this.container;t.Utils.isNull(e)||e.addEventListener(t.PropertyChangeEventName,this._connectedHandler,!1),this.start()}disconnectedCallback(){const e=this.container;t.Utils.isNull(e)||e.removeEventListener(t.PropertyChangeEventName,this._connectedHandler,!1),super.disconnectedCallback()}propertyChangedCallback(e,n,s,r){switch(super.propertyChangedCallback(e,n,s,r),e){case"arguments":this._stop(),this._start();break;case"method":t.Utils.isNullOrEmpty(n)||this._stop(n,this.stream),t.Utils.isNullOrEmpty(s)||this._start(s,this.stream);break;case"stream":const e=this.method;t.Utils.isNullOrEmpty(e)||(this._stop(e,n),this._start(e,s));break;case"disabled":if(!t.Utils.isNullOrEmpty(this.method)){(s?this._stop:this._start)()}}}};n([t.Watch({emit:!1,converter:t.PropertyConverters.String})],r.prototype,"method",void 0),n([t.Watch({emit:!1,converter:t.PropertyConverters.Boolean})],r.prototype,"stream",void 0),n([t.Watch({emit:!1,converter:t.PropertyConverters.Json})],r.prototype,"arguments",void 0),r=n([t.CustomElement({tagName:t.P+"-hub-listener"})],r);let i=class PacemHubProxyElement extends t.Components.PacemItemsContainerElement{validate(e){return e instanceof r}get connection(){return this._hub}invoke(e,...t){if(this.connected)return this._hub.invoke.apply(this._hub,arguments);throw"Hub is not connected. Cannot call `invoke` method."}send(e,...t){if(this.connected)return this._hub.send(e,...t);throw"Hub is not connected. Cannot call `send` method."}start(){return this._resetProxy()}async stop(){this.connected&&await this._hub.stop()}propertyChangedCallback(e,t,n,s){super.propertyChangedCallback(e,t,n,s),s||"url"!==e&&"disabled"!==e&&"accesstoken"!==e||this._resetProxy()}viewActivatedCallback(){super.viewActivatedCallback(),this.start()}disconnectedCallback(){this.stop(),super.disconnectedCallback()}async _resetProxy(){t.Utils.isNull(this._hub)||await this._hub.stop(),this._setupProxy()}async _initialize(){"signalR"in window||await t.CustomElementUtils.importjs(s)}async _setupProxy(){const e=this.items||[];if(!this.disabled&&!t.Utils.isNullOrEmpty(this.url)){await this._initialize();const t=new signalR.HubConnectionBuilder;t.withUrl(this.url,{accessTokenFactory:()=>this.accesstoken});const n=this._hub=t.build();n.onclose(()=>{for(var t of e)t.stop();this.connected=!1,this._hub=null}),await n.start(),this.connected=!0}}};n([t.Watch({emit:!1,converter:t.PropertyConverters.String})],i.prototype,"url",void 0),n([t.Watch({emit:!1,converter:t.PropertyConverters.String})],i.prototype,"accesstoken",void 0),n([t.Watch({converter:t.PropertyConverters.Boolean})],i.prototype,"connected",void 0),i=n([t.CustomElement({tagName:t.P+"-hub-proxy"})],i);var o=function(e,t,n,s){var r,i=arguments.length,o=i<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,s);else for(var c=e.length-1;c>=0;c--)(r=e[c])&&(o=(i<3?r(o):i>3?r(t,n,o):r(t,n))||o);return i>3&&o&&Object.defineProperty(t,n,o),o};let c=class PacemServerSentEventsListenerElement extends t.Components.PacemItemElement{constructor(){super(...arguments),this._receiveHandler=e=>{this.dispatchEvent(new CustomEvent("receive",{detail:e.data}))},this._connectedHandler=e=>{"connected"===e.detail.propertyName&&!0===e.detail.currentValue&&this._start()}}get _isConnected(){return this.container instanceof a&&this.container.connected||!1}get _connection(){return this.container instanceof a&&this.container.eventSource||null}_stop(e=this.method){if(!this._isConnected)return;const n=this._connection;t.Utils.isNullOrEmpty(e)||n.removeEventListener(e,this._receiveHandler)}_start(e=this.method){if(!this._isConnected)return;const n=this._connection;t.Utils.isNullOrEmpty(e)||n.addEventListener(e,this._receiveHandler)}start(){this.disabled||this._start()}stop(){this._stop()}viewActivatedCallback(){super.viewActivatedCallback();const e=this.container;t.Utils.isNull(e)||e.addEventListener(t.PropertyChangeEventName,this._connectedHandler,!1),this.start()}disconnectedCallback(){const e=this.container;t.Utils.isNull(e)||e.removeEventListener(t.PropertyChangeEventName,this._connectedHandler,!1),super.disconnectedCallback()}propertyChangedCallback(e,n,s,r){switch(super.propertyChangedCallback(e,n,s,r),e){case"method":t.Utils.isNullOrEmpty(n)||this._stop(n),t.Utils.isNullOrEmpty(s)||this._start(s);break;case"disabled":if(!t.Utils.isNullOrEmpty(this.method)){(s?this._stop:this._start)()}}}};o([t.Watch({emit:!1,converter:t.PropertyConverters.String})],c.prototype,"method",void 0),c=o([t.CustomElement({tagName:t.P+"-sse-listener"})],c);let a=class PacemServerSentEventsProxyElement extends t.Components.PacemItemsContainerElement{constructor(){super(...arguments),this._connectHandler=e=>{this.connected=!0,this.#t.onmessage=this._receiveHandler},this._errorHandler=e=>{this.connected=!1},this._receiveHandler=e=>{this.dispatchEvent(new CustomEvent("receive",{detail:e.data}))}}validate(e){return e instanceof c}viewActivatedCallback(){super.viewActivatedCallback(),this._start()}disconnectedCallback(){this._stop(),super.disconnectedCallback()}propertyChangedCallback(e,t,n,s){super.propertyChangedCallback(e,t,n,s),s||"url"!==e&&"disabled"!==e||this._restart()}#t;_restart(){this._stop(),this._start()}_start(e=this.url){if(!t.Utils.isNullOrEmpty(e)&&!this.disabled){const t=this.#t=new EventSource(e);t.onopen=this._connectHandler,t.onerror=this._errorHandler}}get eventSource(){return this.#t}_stop(){const e=this.items||[];for(var n of e)n.stop();const s=this.#t;t.Utils.isNull(s)||(s.onopen=null,s.onerror=null,s.onmessage=null,s.close()),this.connected=!1,this.#t=null}};o([t.Watch({emit:!1,converter:t.PropertyConverters.String})],a.prototype,"url",void 0),o([t.Watch({converter:t.PropertyConverters.Boolean})],a.prototype,"connected",void 0),o([t.Debounce(!0)],a.prototype,"_restart",null),a=o([t.CustomElement({tagName:t.P+"-sse-proxy"})],a);var l=Object.freeze({__proto__:null,get PacemHubListenerElement(){return r},get PacemHubProxyElement(){return i},get PacemServerSentEventsListenerElement(){return c},get PacemServerSentEventsProxyElement(){return a}}),h=Object.freeze({__proto__:null,Networking:l}),d=Object.freeze({__proto__:null,Components:h});e.DeepMerger.merge(d)}(Pacem,Pacem);
7
- //# sourceMappingURL=pacem-networking.min.js.map
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @pacem/pacem-networking v1.0.0-bernoulli (https://js.pacem.it)
2
+ * @pacem/pacem-networking v1.0.0-binet (https://js.pacem.it)
3
3
  * Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @pacem/pacem-networking v1.0.0-bernoulli (https://js.pacem.it)
2
+ * @pacem/pacem-networking v1.0.0-binet (https://js.pacem.it)
3
3
  * Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
@@ -160,27 +160,42 @@ PacemHubListenerElement = __decorate([
160
160
  CustomElement({ tagName: P + "-hub-listener" })
161
161
  ], PacemHubListenerElement);
162
162
  var PacemHubProxyElement = class PacemHubProxyElement2 extends Components.PacemItemsContainerElement {
163
+ /** @inheritdoc */
163
164
  validate(item) {
164
165
  return item instanceof PacemHubListenerElement;
165
166
  }
167
+ /** @readonly Gets the underlying `signalR.HubConnection` instance, if connected. */
166
168
  get connection() {
167
169
  return this._hub;
168
170
  }
171
+ /**
172
+ * Invokes a hub method and waits for a result from the server.
173
+ * @param method Name of the hub method to invoke
174
+ * @param args Arguments to pass to the hub method
175
+ * @returns A promise that resolves with the server response
176
+ */
169
177
  invoke(method, ...args) {
170
178
  if (this.connected) {
171
179
  return this._hub.invoke.apply(this._hub, arguments);
172
180
  }
173
181
  throw "Hub is not connected. Cannot call `invoke` method.";
174
182
  }
183
+ /**
184
+ * Invokes a hub method without waiting for a result from the server.
185
+ * @param method Name of the hub method to invoke
186
+ * @param args Arguments to pass to the hub method
187
+ */
175
188
  send(method, ...args) {
176
189
  if (this.connected) {
177
190
  return this._hub.send(method, ...args);
178
191
  }
179
192
  throw "Hub is not connected. Cannot call `send` method.";
180
193
  }
194
+ /** (Re)establishes the hub connection. */
181
195
  start() {
182
196
  return this._resetProxy();
183
197
  }
198
+ /** Closes the hub connection, if connected. */
184
199
  async stop() {
185
200
  if (this.connected) {
186
201
  await this._hub.stop();
@@ -358,6 +373,7 @@ var PacemServerSentEventsProxyElement = class PacemServerSentEventsProxyElement2
358
373
  this.dispatchEvent(new CustomEvent("receive", { detail: e.data }));
359
374
  };
360
375
  }
376
+ /** @inheritdoc */
361
377
  validate(item) {
362
378
  return item instanceof PacemServerSentEventsListenerElement;
363
379
  }
@@ -390,6 +406,7 @@ var PacemServerSentEventsProxyElement = class PacemServerSentEventsProxyElement2
390
406
  evtSource.onerror = this._errorHandler;
391
407
  }
392
408
  }
409
+ /** @readonly Gets the underlying `EventSource` instance, if connected. */
393
410
  get eventSource() {
394
411
  return this.#evtSource;
395
412
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../esm/index-components.js", "../esm/index-components-networking.js", "../esm/hub-proxy.js", "../esm/sse-proxy.js"],
4
- "sourcesContent": ["export * as Networking from './index-components-networking';\n", "export * from './hub-proxy';\nexport * from './sse-proxy';\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};\nimport { P, CustomElement, Watch, PropertyConverters, Utils, PropertyChangeEventName, CustomElementUtils, Components } from '@pacem/pacem-core';\n//namespace Pacem.Components.Networking {\nconst API_JS = 'https://cdn.jsdelivr.net/npm/@microsoft/signalr@10.0.0/dist/browser/signalr.min.js'; // 'https://cdnjs.cloudflare.com/ajax/libs/microsoft-signalr/10.0.0/signalr.min.js'\nconst consts = { API_JS };\nlet PacemHubListenerElement = class PacemHubListenerElement extends Components.PacemItemElement {\n constructor() {\n super(...arguments);\n this._receiveHandler = (...args) => {\n this.dispatchEvent(new CustomEvent('receive', { detail: Array.from(args) }));\n };\n this._completeHandler = () => {\n this.dispatchEvent(new Event('complete'));\n };\n this._errorHandler = (error) => {\n this.dispatchEvent(new CustomEvent('error', { detail: error }));\n };\n this._connectedHandler = (e) => {\n if (e.detail.propertyName === 'connected' && e.detail.currentValue === true) {\n this._start();\n }\n };\n }\n #streamSubscription;\n get _isConnected() {\n return this.container instanceof PacemHubProxyElement && this.container.connected || false;\n }\n get _connection() {\n return this.container instanceof PacemHubProxyElement && this.container.connection || null;\n }\n /** Start listening, if not disabled. */\n start() {\n if (!this.disabled) {\n this._start();\n }\n }\n /** Stop listening. */\n stop() {\n this._stop();\n }\n _stop(method = this.method, isStreaming = this.stream) {\n if (!this._isConnected) {\n return;\n }\n const conn = this._connection;\n if (!Utils.isNullOrEmpty(method)) {\n if (!isStreaming) {\n conn.off(method, this._receiveHandler);\n }\n else {\n this.#streamSubscription?.dispose();\n }\n }\n }\n _start(method = this.method, isStreaming = this.stream) {\n if (!this._isConnected) {\n return;\n }\n const conn = this._connection;\n if (!Utils.isNullOrEmpty(method)) {\n if (!isStreaming) {\n conn.on(method, this._receiveHandler);\n }\n else {\n const args = this.arguments || [];\n const streamResult = signalR.HubConnection.prototype.stream.apply(conn, [method].concat(args));\n this.#streamSubscription = streamResult.subscribe({\n next: this._receiveHandler,\n complete: this._completeHandler,\n error: this._errorHandler\n });\n }\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n const container = this.container;\n if (!Utils.isNull(container)) {\n container.addEventListener(PropertyChangeEventName, this._connectedHandler, false);\n }\n this.start();\n }\n disconnectedCallback() {\n const container = this.container;\n if (!Utils.isNull(container)) {\n container.removeEventListener(PropertyChangeEventName, this._connectedHandler, false);\n }\n super.disconnectedCallback();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'arguments':\n this._stop();\n this._start();\n break;\n case 'method':\n if (!Utils.isNullOrEmpty(old)) {\n this._stop(old, this.stream);\n }\n if (!Utils.isNullOrEmpty(val)) {\n this._start(val, this.stream);\n }\n break;\n case 'stream':\n const m = this.method;\n if (!Utils.isNullOrEmpty(m)) {\n this._stop(m, old);\n this._start(m, val);\n }\n break;\n case 'disabled':\n if (!Utils.isNullOrEmpty(this.method)) {\n let toggle = val ? this._stop : this._start;\n toggle();\n }\n break;\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemHubListenerElement.prototype, \"method\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemHubListenerElement.prototype, \"stream\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Json })\n], PacemHubListenerElement.prototype, \"arguments\", void 0);\nPacemHubListenerElement = __decorate([\n CustomElement({ tagName: P + '-hub-listener' })\n], PacemHubListenerElement);\nexport { PacemHubListenerElement };\nlet PacemHubProxyElement = class PacemHubProxyElement extends Components.PacemItemsContainerElement {\n validate(item) {\n return item instanceof PacemHubListenerElement;\n }\n get connection() {\n return this._hub;\n }\n invoke(method, ...args) {\n if (this.connected) {\n return this._hub.invoke.apply(this._hub, arguments);\n }\n throw 'Hub is not connected. Cannot call `invoke` method.';\n }\n send(method, ...args) {\n if (this.connected) {\n return this._hub.send(method, ...args);\n }\n throw 'Hub is not connected. Cannot call `send` method.';\n }\n start() {\n return this._resetProxy();\n }\n async stop() {\n if (this.connected) {\n await this._hub.stop();\n }\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n //\n if (first) {\n return;\n }\n if (name === 'url' || name === 'disabled' || name === 'accesstoken') {\n this._resetProxy();\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this.start();\n }\n disconnectedCallback() {\n // this will (likely) never complete, being an asynchrounous call...\n // TODO: think about it.\n this.stop();\n super.disconnectedCallback();\n }\n async _resetProxy() {\n if (!Utils.isNull(this._hub)) {\n await this._hub.stop();\n //this.connected = false;\n }\n this._setupProxy();\n }\n async _initialize() {\n if ('signalR' in window) {\n // already available, skip import\n return;\n }\n await CustomElementUtils.importjs(consts.API_JS);\n }\n async _setupProxy() {\n const listeners = this.items || [];\n if (!this.disabled && !Utils.isNullOrEmpty(this.url)) {\n await this._initialize();\n const connBuilder = new signalR.HubConnectionBuilder();\n connBuilder.withUrl(this.url, {\n accessTokenFactory: () => this.accesstoken\n });\n const h = this._hub = connBuilder.build();\n h.onclose(() => {\n for (var item of listeners) {\n item.stop();\n }\n this.connected = false;\n this._hub = null;\n });\n await h.start();\n this.connected = true;\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemHubProxyElement.prototype, \"url\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemHubProxyElement.prototype, \"accesstoken\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemHubProxyElement.prototype, \"connected\", void 0);\nPacemHubProxyElement = __decorate([\n CustomElement({ tagName: P + '-hub-proxy' })\n], PacemHubProxyElement);\nexport { PacemHubProxyElement };\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};\nimport { P, CustomElement, Watch, PropertyConverters, Utils, PropertyChangeEventName, Debounce, Components } from '@pacem/pacem-core';\n//namespace Pacem.Components.Networking {\nlet PacemServerSentEventsListenerElement = class PacemServerSentEventsListenerElement extends Components.PacemItemElement {\n constructor() {\n super(...arguments);\n this._receiveHandler = (e) => {\n this.dispatchEvent(new CustomEvent('receive', { detail: e.data }));\n };\n this._connectedHandler = (e) => {\n if (e.detail.propertyName === 'connected' && e.detail.currentValue === true) {\n this._start();\n }\n };\n }\n get _isConnected() {\n return this.container instanceof PacemServerSentEventsProxyElement && this.container.connected || false;\n }\n get _connection() {\n return this.container instanceof PacemServerSentEventsProxyElement && this.container.eventSource || null;\n }\n _stop(method = this.method) {\n if (!this._isConnected) {\n return;\n }\n const conn = this._connection;\n if (!Utils.isNullOrEmpty(method)) {\n conn.removeEventListener(method, this._receiveHandler);\n }\n }\n _start(method = this.method) {\n if (!this._isConnected) {\n return;\n }\n const conn = this._connection;\n if (!Utils.isNullOrEmpty(method)) {\n conn.addEventListener(method, this._receiveHandler);\n }\n }\n /** Start listening, if not disabled. */\n start() {\n if (!this.disabled) {\n this._start();\n }\n }\n /** Stop listening. */\n stop() {\n this._stop();\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n const container = this.container;\n if (!Utils.isNull(container)) {\n container.addEventListener(PropertyChangeEventName, this._connectedHandler, false);\n }\n this.start();\n }\n disconnectedCallback() {\n const container = this.container;\n if (!Utils.isNull(container)) {\n container.removeEventListener(PropertyChangeEventName, this._connectedHandler, false);\n }\n super.disconnectedCallback();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'method':\n if (!Utils.isNullOrEmpty(old)) {\n this._stop(old);\n }\n if (!Utils.isNullOrEmpty(val)) {\n this._start(val);\n }\n break;\n case 'disabled':\n if (!Utils.isNullOrEmpty(this.method)) {\n let toggle = val ? this._stop : this._start;\n toggle();\n }\n break;\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemServerSentEventsListenerElement.prototype, \"method\", void 0);\nPacemServerSentEventsListenerElement = __decorate([\n CustomElement({ tagName: P + '-sse-listener' })\n], PacemServerSentEventsListenerElement);\nexport { PacemServerSentEventsListenerElement };\nlet PacemServerSentEventsProxyElement = class PacemServerSentEventsProxyElement extends Components.PacemItemsContainerElement {\n constructor() {\n super(...arguments);\n this._connectHandler = (_) => {\n this.connected = true;\n this.#evtSource.onmessage = this._receiveHandler;\n };\n this._errorHandler = (_) => {\n this.connected = false;\n };\n this._receiveHandler = (e) => {\n this.dispatchEvent(new CustomEvent('receive', { detail: e.data }));\n };\n }\n validate(item) {\n return item instanceof PacemServerSentEventsListenerElement;\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._start();\n }\n disconnectedCallback() {\n this._stop();\n super.disconnectedCallback();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n //\n if (first) {\n return;\n }\n if (name === 'url' || name === 'disabled') {\n this._restart();\n }\n }\n #evtSource;\n _restart() {\n this._stop();\n this._start();\n }\n _start(url = this.url) {\n if (!Utils.isNullOrEmpty(url) && !this.disabled) {\n const evtSource = this.#evtSource = new EventSource(url);\n evtSource.onopen = this._connectHandler;\n evtSource.onerror = this._errorHandler;\n }\n }\n get eventSource() {\n return this.#evtSource;\n }\n _stop() {\n const listeners = this.items || [];\n for (var item of listeners) {\n item.stop();\n }\n const evtSource = this.#evtSource;\n if (!Utils.isNull(evtSource)) {\n evtSource.onopen = null;\n evtSource.onerror = null;\n evtSource.onmessage = null;\n evtSource.close();\n }\n this.connected = false;\n this.#evtSource = null;\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemServerSentEventsProxyElement.prototype, \"url\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemServerSentEventsProxyElement.prototype, \"connected\", void 0);\n__decorate([\n Debounce(true)\n], PacemServerSentEventsProxyElement.prototype, \"_restart\", null);\nPacemServerSentEventsProxyElement = __decorate([\n CustomElement({ tagName: P + '-sse-proxy' })\n], PacemServerSentEventsProxyElement);\nexport { PacemServerSentEventsProxyElement };\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["export * as Networking from './index-components-networking';\n", "export * from './hub-proxy';\nexport * from './sse-proxy';\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};\nimport { P, CustomElement, Watch, PropertyConverters, Utils, PropertyChangeEventName, CustomElementUtils, Components } from '@pacem/pacem-core';\n//namespace Pacem.Components.Networking {\nconst API_JS = 'https://cdn.jsdelivr.net/npm/@microsoft/signalr@10.0.0/dist/browser/signalr.min.js'; // 'https://cdnjs.cloudflare.com/ajax/libs/microsoft-signalr/10.0.0/signalr.min.js'\nconst consts = { API_JS };\n/** Subscribes to a hub method (or stream) exposed by the ancestor {@link PacemHubProxyElement}, dispatching a `receive` event for every incoming message. */\nlet PacemHubListenerElement = class PacemHubListenerElement extends Components.PacemItemElement {\n constructor() {\n super(...arguments);\n this._receiveHandler = (...args) => {\n this.dispatchEvent(new CustomEvent('receive', { detail: Array.from(args) }));\n };\n this._completeHandler = () => {\n this.dispatchEvent(new Event('complete'));\n };\n this._errorHandler = (error) => {\n this.dispatchEvent(new CustomEvent('error', { detail: error }));\n };\n this._connectedHandler = (e) => {\n if (e.detail.propertyName === 'connected' && e.detail.currentValue === true) {\n this._start();\n }\n };\n }\n #streamSubscription;\n get _isConnected() {\n return this.container instanceof PacemHubProxyElement && this.container.connected || false;\n }\n get _connection() {\n return this.container instanceof PacemHubProxyElement && this.container.connection || null;\n }\n /** Start listening, if not disabled. */\n start() {\n if (!this.disabled) {\n this._start();\n }\n }\n /** Stop listening. */\n stop() {\n this._stop();\n }\n _stop(method = this.method, isStreaming = this.stream) {\n if (!this._isConnected) {\n return;\n }\n const conn = this._connection;\n if (!Utils.isNullOrEmpty(method)) {\n if (!isStreaming) {\n conn.off(method, this._receiveHandler);\n }\n else {\n this.#streamSubscription?.dispose();\n }\n }\n }\n _start(method = this.method, isStreaming = this.stream) {\n if (!this._isConnected) {\n return;\n }\n const conn = this._connection;\n if (!Utils.isNullOrEmpty(method)) {\n if (!isStreaming) {\n conn.on(method, this._receiveHandler);\n }\n else {\n const args = this.arguments || [];\n const streamResult = signalR.HubConnection.prototype.stream.apply(conn, [method].concat(args));\n this.#streamSubscription = streamResult.subscribe({\n next: this._receiveHandler,\n complete: this._completeHandler,\n error: this._errorHandler\n });\n }\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n const container = this.container;\n if (!Utils.isNull(container)) {\n container.addEventListener(PropertyChangeEventName, this._connectedHandler, false);\n }\n this.start();\n }\n disconnectedCallback() {\n const container = this.container;\n if (!Utils.isNull(container)) {\n container.removeEventListener(PropertyChangeEventName, this._connectedHandler, false);\n }\n super.disconnectedCallback();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'arguments':\n this._stop();\n this._start();\n break;\n case 'method':\n if (!Utils.isNullOrEmpty(old)) {\n this._stop(old, this.stream);\n }\n if (!Utils.isNullOrEmpty(val)) {\n this._start(val, this.stream);\n }\n break;\n case 'stream':\n const m = this.method;\n if (!Utils.isNullOrEmpty(m)) {\n this._stop(m, old);\n this._start(m, val);\n }\n break;\n case 'disabled':\n if (!Utils.isNullOrEmpty(this.method)) {\n let toggle = val ? this._stop : this._start;\n toggle();\n }\n break;\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemHubListenerElement.prototype, \"method\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemHubListenerElement.prototype, \"stream\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Json })\n], PacemHubListenerElement.prototype, \"arguments\", void 0);\nPacemHubListenerElement = __decorate([\n CustomElement({ tagName: P + '-hub-listener' })\n], PacemHubListenerElement);\nexport { PacemHubListenerElement };\n/** Wraps a SignalR hub connection, dispatching its connection state and exposing `invoke`/`send` to registered {@link PacemHubListenerElement} children. */\nlet PacemHubProxyElement = class PacemHubProxyElement extends Components.PacemItemsContainerElement {\n /** @inheritdoc */\n validate(item) {\n return item instanceof PacemHubListenerElement;\n }\n /** @readonly Gets the underlying `signalR.HubConnection` instance, if connected. */\n get connection() {\n return this._hub;\n }\n /**\n * Invokes a hub method and waits for a result from the server.\n * @param method Name of the hub method to invoke\n * @param args Arguments to pass to the hub method\n * @returns A promise that resolves with the server response\n */\n invoke(method, ...args) {\n if (this.connected) {\n return this._hub.invoke.apply(this._hub, arguments);\n }\n throw 'Hub is not connected. Cannot call `invoke` method.';\n }\n /**\n * Invokes a hub method without waiting for a result from the server.\n * @param method Name of the hub method to invoke\n * @param args Arguments to pass to the hub method\n */\n send(method, ...args) {\n if (this.connected) {\n return this._hub.send(method, ...args);\n }\n throw 'Hub is not connected. Cannot call `send` method.';\n }\n /** (Re)establishes the hub connection. */\n start() {\n return this._resetProxy();\n }\n /** Closes the hub connection, if connected. */\n async stop() {\n if (this.connected) {\n await this._hub.stop();\n }\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n //\n if (first) {\n return;\n }\n if (name === 'url' || name === 'disabled' || name === 'accesstoken') {\n this._resetProxy();\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this.start();\n }\n disconnectedCallback() {\n // this will (likely) never complete, being an asynchrounous call...\n // TODO: think about it.\n this.stop();\n super.disconnectedCallback();\n }\n async _resetProxy() {\n if (!Utils.isNull(this._hub)) {\n await this._hub.stop();\n //this.connected = false;\n }\n this._setupProxy();\n }\n async _initialize() {\n if ('signalR' in window) {\n // already available, skip import\n return;\n }\n await CustomElementUtils.importjs(consts.API_JS);\n }\n async _setupProxy() {\n const listeners = this.items || [];\n if (!this.disabled && !Utils.isNullOrEmpty(this.url)) {\n await this._initialize();\n const connBuilder = new signalR.HubConnectionBuilder();\n connBuilder.withUrl(this.url, {\n accessTokenFactory: () => this.accesstoken\n });\n const h = this._hub = connBuilder.build();\n h.onclose(() => {\n for (var item of listeners) {\n item.stop();\n }\n this.connected = false;\n this._hub = null;\n });\n await h.start();\n this.connected = true;\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemHubProxyElement.prototype, \"url\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemHubProxyElement.prototype, \"accesstoken\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemHubProxyElement.prototype, \"connected\", void 0);\nPacemHubProxyElement = __decorate([\n CustomElement({ tagName: P + '-hub-proxy' })\n], PacemHubProxyElement);\nexport { PacemHubProxyElement };\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};\nimport { P, CustomElement, Watch, PropertyConverters, Utils, PropertyChangeEventName, Debounce, Components } from '@pacem/pacem-core';\n//namespace Pacem.Components.Networking {\n/** Subscribes to a named event exposed by the ancestor {@link PacemServerSentEventsProxyElement}'s `EventSource`, dispatching a `receive` event for every incoming message. */\nlet PacemServerSentEventsListenerElement = class PacemServerSentEventsListenerElement extends Components.PacemItemElement {\n constructor() {\n super(...arguments);\n this._receiveHandler = (e) => {\n this.dispatchEvent(new CustomEvent('receive', { detail: e.data }));\n };\n this._connectedHandler = (e) => {\n if (e.detail.propertyName === 'connected' && e.detail.currentValue === true) {\n this._start();\n }\n };\n }\n get _isConnected() {\n return this.container instanceof PacemServerSentEventsProxyElement && this.container.connected || false;\n }\n get _connection() {\n return this.container instanceof PacemServerSentEventsProxyElement && this.container.eventSource || null;\n }\n _stop(method = this.method) {\n if (!this._isConnected) {\n return;\n }\n const conn = this._connection;\n if (!Utils.isNullOrEmpty(method)) {\n conn.removeEventListener(method, this._receiveHandler);\n }\n }\n _start(method = this.method) {\n if (!this._isConnected) {\n return;\n }\n const conn = this._connection;\n if (!Utils.isNullOrEmpty(method)) {\n conn.addEventListener(method, this._receiveHandler);\n }\n }\n /** Start listening, if not disabled. */\n start() {\n if (!this.disabled) {\n this._start();\n }\n }\n /** Stop listening. */\n stop() {\n this._stop();\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n const container = this.container;\n if (!Utils.isNull(container)) {\n container.addEventListener(PropertyChangeEventName, this._connectedHandler, false);\n }\n this.start();\n }\n disconnectedCallback() {\n const container = this.container;\n if (!Utils.isNull(container)) {\n container.removeEventListener(PropertyChangeEventName, this._connectedHandler, false);\n }\n super.disconnectedCallback();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'method':\n if (!Utils.isNullOrEmpty(old)) {\n this._stop(old);\n }\n if (!Utils.isNullOrEmpty(val)) {\n this._start(val);\n }\n break;\n case 'disabled':\n if (!Utils.isNullOrEmpty(this.method)) {\n let toggle = val ? this._stop : this._start;\n toggle();\n }\n break;\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemServerSentEventsListenerElement.prototype, \"method\", void 0);\nPacemServerSentEventsListenerElement = __decorate([\n CustomElement({ tagName: P + '-sse-listener' })\n], PacemServerSentEventsListenerElement);\nexport { PacemServerSentEventsListenerElement };\n/** Wraps a browser `EventSource`, opening a Server-Sent Events connection and dispatching its connection state to registered {@link PacemServerSentEventsListenerElement} children. */\nlet PacemServerSentEventsProxyElement = class PacemServerSentEventsProxyElement extends Components.PacemItemsContainerElement {\n constructor() {\n super(...arguments);\n this._connectHandler = (_) => {\n this.connected = true;\n this.#evtSource.onmessage = this._receiveHandler;\n };\n this._errorHandler = (_) => {\n this.connected = false;\n };\n this._receiveHandler = (e) => {\n this.dispatchEvent(new CustomEvent('receive', { detail: e.data }));\n };\n }\n /** @inheritdoc */\n validate(item) {\n return item instanceof PacemServerSentEventsListenerElement;\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._start();\n }\n disconnectedCallback() {\n this._stop();\n super.disconnectedCallback();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n //\n if (first) {\n return;\n }\n if (name === 'url' || name === 'disabled') {\n this._restart();\n }\n }\n #evtSource;\n _restart() {\n this._stop();\n this._start();\n }\n _start(url = this.url) {\n if (!Utils.isNullOrEmpty(url) && !this.disabled) {\n const evtSource = this.#evtSource = new EventSource(url);\n evtSource.onopen = this._connectHandler;\n evtSource.onerror = this._errorHandler;\n }\n }\n /** @readonly Gets the underlying `EventSource` instance, if connected. */\n get eventSource() {\n return this.#evtSource;\n }\n _stop() {\n const listeners = this.items || [];\n for (var item of listeners) {\n item.stop();\n }\n const evtSource = this.#evtSource;\n if (!Utils.isNull(evtSource)) {\n evtSource.onopen = null;\n evtSource.onerror = null;\n evtSource.onmessage = null;\n evtSource.close();\n }\n this.connected = false;\n this.#evtSource = null;\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemServerSentEventsProxyElement.prototype, \"url\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemServerSentEventsProxyElement.prototype, \"connected\", void 0);\n__decorate([\n Debounce(true)\n], PacemServerSentEventsProxyElement.prototype, \"_restart\", null);\nPacemServerSentEventsProxyElement = __decorate([\n CustomElement({ tagName: P + '-sse-proxy' })\n], PacemServerSentEventsProxyElement);\nexport { PacemServerSentEventsProxyElement };\n"],
5
+ "mappings": "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",
6
6
  "names": ["PacemHubListenerElement", "PacemHubProxyElement", "P", "CustomElement", "Watch", "PropertyConverters", "Utils", "PropertyChangeEventName", "Components", "__decorate", "PacemServerSentEventsListenerElement", "PacemServerSentEventsProxyElement", "Components", "Utils", "__decorate", "Watch", "PropertyConverters", "CustomElement", "P"]
7
7
  }