@openremote/core 1.0.3 → 1.2.0-snapshot.20240512155932

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.
Files changed (43) hide show
  1. package/dist/umd/index.bundle.js +2 -273
  2. package/dist/umd/index.bundle.js.LICENSE.txt +26 -0
  3. package/dist/umd/index.js +2 -7
  4. package/dist/umd/index.js.LICENSE.txt +22 -0
  5. package/dist/umd/index.orbundle.js +50 -280
  6. package/dist/umd/index.orbundle.js.LICENSE.txt +38 -0
  7. package/{dist → lib}/asset-mixin.d.ts +2 -0
  8. package/lib/asset-mixin.js +1 -0
  9. package/lib/asset-mixin.js.map +1 -0
  10. package/{dist → lib}/console.d.ts +14 -5
  11. package/lib/console.js +1 -0
  12. package/lib/console.js.map +1 -0
  13. package/lib/defaults.js +1 -0
  14. package/lib/defaults.js.map +1 -0
  15. package/{dist → lib}/event.d.ts +20 -19
  16. package/lib/event.js +1 -0
  17. package/lib/event.js.map +1 -0
  18. package/lib/index.d.ts +150 -0
  19. package/lib/index.js +1 -0
  20. package/lib/index.js.map +1 -0
  21. package/lib/util.d.ts +92 -0
  22. package/lib/util.js +1 -0
  23. package/lib/util.js.map +1 -0
  24. package/package.json +24 -25
  25. package/.project +0 -17
  26. package/.settings/org.eclipse.buildship.core.prefs +0 -2
  27. package/@types/i18next-sprintf-postprocessor.d.ts +0 -1
  28. package/dist/asset-mixin.js +0 -156
  29. package/dist/console.js +0 -452
  30. package/dist/defaults.js +0 -16
  31. package/dist/event.js +0 -567
  32. package/dist/index.d.ts +0 -224
  33. package/dist/index.js +0 -996
  34. package/dist/mdi-icons.json +0 -1
  35. package/dist/or-icon-set.d.ts +0 -3
  36. package/dist/or-icon-set.js +0 -10
  37. package/dist/util.d.ts +0 -41
  38. package/dist/util.js +0 -362
  39. package/mdi-iconset-generator.js +0 -34
  40. package/tsconfig.json +0 -16
  41. package/typedoc.js +0 -3
  42. package/webpack.config.js +0 -16
  43. /package/{dist → lib}/defaults.d.ts +0 -0
@@ -0,0 +1,38 @@
1
+ /*!
2
+ * Platform.js v1.3.6
3
+ * Copyright 2014-2020 Benjamin Tan
4
+ * Copyright 2011-2013 John-David Dalton
5
+ * Available under MIT license
6
+ */
7
+
8
+ /**
9
+ * @license
10
+ * Copyright 2017 Google LLC
11
+ * SPDX-License-Identifier: BSD-3-Clause
12
+ */
13
+
14
+ /**
15
+ * @license
16
+ * Copyright 2021 Google LLC
17
+ * SPDX-License-Identifier: BSD-3-Clause
18
+ */
19
+
20
+ /**
21
+ * [js-sha256]{@link https://github.com/emn178/js-sha256}
22
+ *
23
+ * @version 0.10.1
24
+ * @author Chen, Yi-Cyuan [emn178@gmail.com]
25
+ * @copyright Chen, Yi-Cyuan 2014-2023
26
+ * @license MIT
27
+ */
28
+
29
+ /**!
30
+ * url-search-params-polyfill
31
+ *
32
+ * @author Jerry Bendy (https://github.com/jerrybendy)
33
+ * @licence MIT
34
+ */
35
+
36
+ //! moment.js
37
+
38
+ //! moment.js locale configuration
@@ -2,6 +2,7 @@ import { EventProviderFactory, EventProviderStatus } from "./event";
2
2
  import { AttributeRef, SharedEvent, EventRequestResponseWrapper } from "@openremote/model";
3
3
  declare type Constructor<T = {}> = new (...args: any[]) => T;
4
4
  interface CustomElement {
5
+ requestUpdate(name?: PropertyKey, oldValue?: unknown): void;
5
6
  connectedCallback?(): void;
6
7
  disconnectedCallback?(): void;
7
8
  readonly isConnected: boolean;
@@ -38,6 +39,7 @@ export declare const subscribe: (eventProviderFactory: EventProviderFactory) =>
38
39
  onEventsConnect(): void;
39
40
  onEventsDisconnect(): void;
40
41
  _onEvent(event: SharedEvent): void;
42
+ requestUpdate(name?: PropertyKey, oldValue?: unknown): void;
41
43
  readonly isConnected: boolean;
42
44
  };
43
45
  } & T;
@@ -0,0 +1 @@
1
+ var __awaiter=this&&this.__awaiter||function(t,e,s,n){return new(s||(s=Promise))((function(i,r){function o(t){try{u(n.next(t))}catch(t){r(t)}}function c(t){try{u(n.throw(t))}catch(t){r(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof s?e:new s((function(t){t(e)}))).then(o,c)}u((n=n.apply(t,e||[])).next())}))};import{EventProviderStatus}from"./event";import{objectsEqual}from"./util";import{Util}from".";export const subscribe=t=>e=>class extends e{constructor(){super(...arguments),this._connectRequested=!1,this._status=EventProviderStatus.DISCONNECTED,this._statusCallback=t=>this._onEventProviderStatusChanged(t)}connectedCallback(){super.connectedCallback&&super.connectedCallback(),this.connectEvents()}disconnectedCallback(){this.disconnectEvents(),super.disconnectedCallback&&super.disconnectedCallback()}connectEvents(){t.getEventProvider()?this._connectRequested||(this._connectRequested=!0,t.getEventProvider().subscribeStatusChange(this._statusCallback),this._doConnect()):console.log("No event provider available so cannot subscribe")}disconnectEvents(){this._connectRequested&&(this._connectRequested=!1,t.getEventProvider().unsubscribeStatusChange(this._statusCallback),this._onEventsDisconnect())}_doConnect(){return __awaiter(this,void 0,void 0,(function*(){this.eventsConnected&&this._onEventsConnect()}))}get eventsConnected(){return this._connectRequested&&t.getEventProvider().status===EventProviderStatus.CONNECTED}_onEventProviderStatusChanged(t){switch(t){case EventProviderStatus.DISCONNECTED:this._onEventsDisconnect();break;case EventProviderStatus.CONNECTED:this._doConnect()}}_onEventsConnect(){this._addEventSubscriptions(),this.onEventsConnect()}_onEventsDisconnect(){this._removeEventSubscriptions(),this.onEventsDisconnect()}_addEventSubscriptions(){return __awaiter(this,void 0,void 0,(function*(){const e=!!this._attributeRefs,s=!!this._assetIds,n=this._attributeRefs?this._attributeRefs:this._assetIds;if(n&&n.length>0){if(this._subscriptionIds=[],s){const e=yield t.getEventProvider().subscribeAssetEvents(n,!0,(t=>this._onEvent(t))),s=this._attributeRefs?this._attributeRefs:this._assetIds;if(!this._subscriptionIds||!Util.objectsEqual(n,s))return void t.getEventProvider().unsubscribe(e);this._subscriptionIds.push(e)}const i=yield t.getEventProvider().subscribeAttributeEvents(n,e,(t=>this._onEvent(t))),r=this._attributeRefs?this._attributeRefs:this._assetIds;if(!this._subscriptionIds||!Util.objectsEqual(n,r))return void t.getEventProvider().unsubscribe(i);this._subscriptionIds.push(i)}}))}_removeEventSubscriptions(){this._subscriptionIds&&(this._subscriptionIds.forEach((e=>{t.getEventProvider().unsubscribe(e)})),this._subscriptionIds=void 0)}_refreshEventSubscriptions(){this._removeEventSubscriptions(),this._addEventSubscriptions()}set assetIds(t){objectsEqual(this._assetIds,t)||(this._assetIds=t,this._refreshEventSubscriptions(),this.requestUpdate("assetIds"))}get assetIds(){return this._assetIds}set attributeRefs(t){objectsEqual(this._attributeRefs,t)||(this._attributeRefs=t,this._refreshEventSubscriptions())}get attributeRefs(){return this._attributeRefs}_sendEvent(e){t.getEventProvider().sendEvent(e)}_sendEventWithReply(e){return t.getEventProvider().sendEventWithReply(e)}onEventsConnect(){}onEventsDisconnect(){}_onEvent(t){}};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset-mixin.js","sourceRoot":"","sources":["../src/asset-mixin.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,10 @@
1
- import { ConsoleRegistration } from "@openremote/model";
2
- export interface ProviderMessage {
1
+ import { ConsoleProvider, ConsoleRegistration } from "@openremote/model";
2
+ import { Deferred } from "./util";
3
+ export interface ProviderAction {
3
4
  provider: string;
4
5
  action: string;
6
+ }
7
+ export interface ProviderMessage extends ProviderAction {
5
8
  data?: any;
6
9
  [x: string]: any;
7
10
  }
@@ -19,7 +22,10 @@ export declare class Console {
19
22
  protected _initialised: boolean;
20
23
  protected _initialiseInProgress: boolean;
21
24
  protected _pendingProviderPromises: {
22
- [name: string]: ((response: any) => void) | null;
25
+ [name: string]: [Deferred<any>, number];
26
+ };
27
+ protected _providerMessageListeners: {
28
+ [name: string]: (msg: ProviderMessage) => void;
23
29
  };
24
30
  protected _pendingProviderEnables: string[];
25
31
  protected _enableCompleteCallback: (() => void) | null;
@@ -35,10 +41,13 @@ export declare class Console {
35
41
  enableProviders(): Promise<void>;
36
42
  enableProvider(providerName: string, data?: any): Promise<ProviderEnableResponse>;
37
43
  disableProvider(provider: string): Promise<ProviderMessage>;
44
+ getProvider(name: string): ConsoleProvider | undefined;
38
45
  sendProviderMessage(message: ProviderMessage, waitForResponse: boolean): Promise<any | null>;
39
46
  sendRegistration(delay?: number): Promise<void>;
40
- storeData(key: string, value: string | null): void;
41
- retrieveData(key: string): Promise<string | undefined>;
47
+ storeData(key: string, value: any): void;
48
+ retrieveData<T>(key: string): Promise<T | undefined>;
49
+ addProviderMessageListener(providerAction: ProviderAction, listener: (msg: ProviderMessage) => void): void;
50
+ removeProviderMessageListener(providerAction: ProviderAction): void;
42
51
  protected _postNativeShellMessage(jsonMessage: any): any;
43
52
  _doSendProviderMessage(msg: any): void;
44
53
  protected _handleProviderResponse(msg: any): void;
package/lib/console.js ADDED
@@ -0,0 +1 @@
1
+ var __awaiter=this&&this.__awaiter||function(e,i,r,s){return new(r||(r=Promise))((function(t,o){function n(e){try{d(s.next(e))}catch(e){o(e)}}function a(e){try{d(s.throw(e))}catch(e){o(e)}}function d(e){var i;e.done?t(e.value):(i=e.value,i instanceof r?i:new r((function(e){e(i)}))).then(n,a)}d((s=s.apply(e,i||[])).next())}))};import manager from"./index";import{Deferred}from"./util";let platform=require("platform");export class Console{constructor(e,i,r){this._autoEnable=!1,this._initialised=!1,this._initialiseInProgress=!1,this._pendingProviderPromises={},this._providerMessageListeners={},this._pendingProviderEnables=[],this._registrationTimer=null,this._realm=e,this._autoEnable=i,this._enableCompleteCallback=r,window.OpenRemoteConsole=this;let s=new URLSearchParams(window.location.search),t=s.get("consoleName"),o=s.get("consoleVersion"),n=s.get("consolePlatform"),a=s.get("consoleProviders"),d=s.get("consoleAutoEnable"),l=a&&a.length>0?a.split(" "):["push","storage"];l.indexOf("storage")<0&&l.push("storage"),this._pendingProviderEnables=l;let p=Console._createConsoleRegistration(),g=window.localStorage.getItem("OpenRemoteConsole:"+e);if(g)try{let e=JSON.parse(g);e.id&&(p.id=e.id),e.name&&(p.name=e.name),e.providers&&(p.providers=e.providers),e.apps&&(p.apps=e.apps)}catch(e){console.error("Failed to deserialise console registration")}let h=p.providers;p.providers={};for(let e of l){let i=h&&h.hasOwnProperty(e)?h[e]:{enabled:!1,disabled:!1};p.providers[e]=i}let v=manager.getAppName();v.length>0&&p.apps.indexOf(v)<0&&p.apps.push(v),this._registration=p,t&&(p.name=t),o&&(p.version=o),n&&(p.platform=n),d&&(this._autoEnable="TRUE"===d||"true"===d)}get registration(){return this._registration}get autoEnable(){return this._autoEnable}get pendingProviderEnables(){return this._pendingProviderEnables.slice(0)}get shellApple(){const e=navigator.userAgentData&&navigator.userAgentData.platform?navigator.userAgentData.platform:navigator.platform;return e&&("iP"===e.substring(0,2)||"Mac"===e.substring(0,3))&&window.webkit&&window.webkit.messageHandlers}get shellAndroid(){return!!window.MobileInterface}get isMobile(){return this.shellApple||this.shellAndroid}initialise(){return __awaiter(this,void 0,void 0,(function*(){if(!this._initialised&&!this._initialiseInProgress){console.debug("Console: initialising"),this._initialiseInProgress=!0;try{if(this._registration.providers)for(let e of Object.keys(this._registration.providers))yield this._initialiseProvider(e);this._registration.id||(yield this.sendRegistration(0)),this._initialised=!0,this._initialiseInProgress=!1,0===this._pendingProviderEnables.length?(yield this.sendRegistration(),this._callCompletedCallback()):this._autoEnable&&(yield this.enableProviders())}catch(e){console.error(e)}finally{this._initialiseInProgress=!1}}}))}enableProviders(){return __awaiter(this,void 0,void 0,(function*(){if(!this._initialised)throw new Error("Console must be initialised before enabling providers");for(let e=this._pendingProviderEnables.length-1;e>-1;e--){let i=this._pendingProviderEnables[e];yield this.enableProvider(i)}}))}enableProvider(e,i){return __awaiter(this,void 0,void 0,(function*(){if(!this._initialised)throw console.debug("Console must be initialised before disabling providers"),new Error("Console must be initialised before enabling providers");if(!this._registration.providers.hasOwnProperty(e))throw console.debug("Invalid console provider '"+e+"'"),new Error("Invalid console provider '"+e+"'");console.debug("Console: enabling provider '"+e+"'");let r={provider:e,action:"PROVIDER_ENABLE",consoleId:this._registration.id,data:i},s=yield this.sendProviderMessage(r,!0);this._registration.providers[e].hasPermission=s.hasPermission,this._registration.providers[e].success=s.success,this._registration.providers[e].enabled=s.success,this._registration.providers[e].data=s.data;let t=this._pendingProviderEnables.indexOf(e);return t>=0&&(this._pendingProviderEnables.splice(t,1),0===this._pendingProviderEnables.length&&(this.sendRegistration(),this._callCompletedCallback())),s}))}disableProvider(e){return __awaiter(this,void 0,void 0,(function*(){if(!this._initialised)throw console.debug("Console must be initialised before disabling providers"),new Error("Console must be initialised before disabling providers");if(!this._registration.providers.hasOwnProperty(e))throw console.debug("Invalid console provider '"+e+"'"),new Error("Invalid console provider '"+e+"'");console.debug("Console: disabling provider '"+e+"'");let i=yield this.sendProviderMessage({provider:e,action:"PROVIDER_DISABLE"},!0);return this._registration.providers[e].disabled=!0,this._registration.providers[e].enabled=!1,i}))}getProvider(e){return this._registration&&this._registration.providers?this._registration.providers[e]:void 0}sendProviderMessage(e,i){return __awaiter(this,void 0,void 0,(function*(){if(!this._registration.providers.hasOwnProperty(e.provider))throw console.debug("Invalid console provider '"+e.provider+"'"),new Error("Invalid console provider '"+e.provider+"'");if(!i)return void this._doSendProviderMessage(e);let r=e.provider+e.action;if(this._pendingProviderPromises[r])throw new Error("Message already pending for provider '"+e.provider+"' with action '"+e.action+"'");const s=new Deferred;return this._pendingProviderPromises[r]=[s,window.setTimeout((()=>{delete this._pendingProviderPromises[r],s.reject("No response from provider")}),5e3)],this._doSendProviderMessage(e),s.promise}))}sendRegistration(e){return this._registrationTimer&&(window.clearTimeout(this._registrationTimer),this._registrationTimer=null),e=void 0!==e?e:2e3,console.debug("Sending registration in: "+e+"ms"),new Promise(((e,i)=>{this._registrationTimer=window.setTimeout((()=>{this._registrationTimer=null,console.debug("Console: updating registration");try{this._registration.name||(this._registration.name="Console"),this._registration.platform||(this._registration.platform="N/A"),this._registration.version||(this._registration.version="N/A"),this._registration.providers||(this._registration.providers={}),manager.rest.api.ConsoleResource.register(this._registration).then((i=>{if(200!==i.status)throw new Error("Failed to register console");this._registration=i.data,console.debug("Console: registration successful"),console.debug("Console: updating locally stored registration"),window.localStorage.setItem("OpenRemoteConsole:"+this._realm,JSON.stringify(this._registration)),e()}))}catch(e){console.error("Failed to register console"),i("Failed to register console")}}))}))}storeData(e,i){this.sendProviderMessage({provider:"storage",action:"STORE",key:e,value:i},!1)}retrieveData(e){return __awaiter(this,void 0,void 0,(function*(){let i=yield this.sendProviderMessage({provider:"storage",action:"RETRIEVE",key:e},!0);if(i&&i.value)return i.value}))}addProviderMessageListener(e,i){this._providerMessageListeners[e.provider+e.action]=i}removeProviderMessageListener(e){delete this._providerMessageListeners[e.provider+e.action]}_postNativeShellMessage(e){return this.shellAndroid?window.MobileInterface.postMessage(JSON.stringify(e)):this.shellApple?window.webkit.messageHandlers.int.postMessage(e):void 0}_doSendProviderMessage(e){if(this.isMobile)this._postNativeShellMessage({type:"provider",data:e});else{if(!e.provider||!e.action)return;switch(e.provider.trim().toUpperCase()){case"PUSH":switch(e.action.trim().toUpperCase()){case"PROVIDER_INIT":let i={action:"PROVIDER_INIT",provider:"push",version:"web",enabled:!0,disabled:!1,hasPermission:!0,requiresPermission:!1,success:!0};this._handleProviderResponse(JSON.stringify(i));break;case"PROVIDER_ENABLE":let r={action:"PROVIDER_ENABLE",provider:"push",hasPermission:!0,success:!0};this._handleProviderResponse(JSON.stringify(r));break;default:throw new Error("Unsupported provider '"+e.provider+"' and action '"+e.action+"'")}break;case"STORAGE":switch(e.action){case"PROVIDER_INIT":let i={action:"PROVIDER_INIT",provider:"storage",version:"1.0.0",disabled:!1,enabled:!0,hasPermission:!0,requiresPermission:!1,success:!0};this._handleProviderResponse(JSON.stringify(i));break;case"PROVIDER_ENABLE":let r={action:"PROVIDER_ENABLE",provider:"storage",hasPermission:!0,success:!0};this._handleProviderResponse(JSON.stringify(r));break;case"STORE":{let i=e.key?e.key.trim():null;if(!i||0===i.length)throw new Error("Storage provider 'store' action requires a `key`");null===e.value?window.localStorage.removeItem(i):window.localStorage.setItem(i,JSON.stringify(e.value))}break;case"RETRIEVE":{let i=e.key?e.key.trim():null;if(!i||0===i.length)throw new Error("Storage provider 'retrieve' action requires a `key`");let r=window.localStorage.getItem(i);if(null!==r)try{r=JSON.parse(r)}catch(e){}this._handleProviderResponse(JSON.stringify({action:"RETRIEVE",provider:"storage",key:i,value:r}))}break;default:throw new Error("Unsupported provider '"+e.provider+"' and action '"+e.action+"'")}break;default:console.error("Unsupported provider: "+e.provider)}}}_handleProviderResponse(e){if(!e)return;let i=JSON.parse(e),r=i.provider,s=i.action,t=this._pendingProviderPromises[r+s];t&&(window.clearTimeout(t[1]),delete this._pendingProviderPromises[r+s],t[0].resolve(i));let o=this._providerMessageListeners[r+s];o&&o(i)}_callCompletedCallback(){let e=this._enableCompleteCallback;this._enableCompleteCallback=null,e&&window.setTimeout((()=>{e()}),0)}static _createConsoleRegistration(){return{name:platform.name,version:platform.version,platform:platform.os.toString(),apps:[],model:((platform.manufacturer?platform.manufacturer+" ":"")+(platform.product?platform.product:"")).trim()}}_initialiseProvider(e){return __awaiter(this,void 0,void 0,(function*(){let i;console.debug("Console: initialising provider '"+e+"'");try{i=yield this.sendProviderMessage({provider:e,action:"PROVIDER_INIT"},!0),this._registration.providers[e].version=i.version,this._registration.providers[e].requiresPermission=i.requiresPermission,this._registration.providers[e].hasPermission=i.hasPermission,this._registration.providers[e].success=i.success,this._registration.providers[e].enabled=i.enabled,this._registration.providers[e].disabled=i.disabled,this._registration.providers[e].data=i.data}catch(e){console.error(e),i={action:"",disabled:!1,enabled:!1,hasPermission:!1,provider:"",requiresPermission:!1,version:"",success:!1}}if(i.success||(console.debug("Provider initialisation failed: '"+e+"'"),i.disabled=!0,this._registration.providers[e].disabled=!0),i.disabled||i.enabled){let i=this._pendingProviderEnables.indexOf(e);i>=0&&this._pendingProviderEnables.splice(i,1)}}))}}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"console.js","sourceRoot":"","sources":["../src/console.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAC,QAAQ,EAAC,MAAM,QAAQ,CAAC;AAEhC,wCAAwC;AACxC,IAAI,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AA8BnC,MAAM,OAAO,OAAO;IAahB,YAAY,KAAa,EAAE,UAAmB,EAAE,cAA0B;QAThE,gBAAW,GAAY,KAAK,CAAC;QAC7B,iBAAY,GAAY,KAAK,CAAC;QAC9B,0BAAqB,GAAY,KAAK,CAAC;QACvC,6BAAwB,GAAgD,EAAE,CAAC;QAC3E,8BAAyB,GAAuD,EAAE,CAAC;QACnF,4BAAuB,GAAa,EAAE,CAAC;QAEvC,uBAAkB,GAAkB,IAAI,CAAC;QAI/C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,uBAAuB,GAAG,cAAc,CAAC;QAE9C,2EAA2E;QAC3E,aAAa;QACb,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAEhC,gDAAgD;QAChD,IAAI,WAAW,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC9D,IAAI,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACjD,IAAI,cAAc,GAAG,WAAW,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACvD,IAAI,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACzD,IAAI,gBAAgB,GAAG,WAAW,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAC3D,IAAI,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAEzD,IAAI,kBAAkB,GAAG,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAE7H,IAAI,kBAAkB,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5C,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,4EAA4E;QACpH,CAAC;QACD,IAAI,CAAC,uBAAuB,GAAG,kBAAkB,CAAC;QAElD,mFAAmF;QACnF,IAAI,UAAU,GAAwB,OAAO,CAAC,0BAA0B,EAAE,CAAC;QAE3E,IAAI,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,oBAAoB,GAAG,KAAK,CAAC,CAAC;QAC9E,IAAI,aAAa,EAAE,CAAC;YAChB,IAAI,CAAC;gBACD,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBAC7C,IAAI,SAAS,GAAG,YAAmC,CAAC;gBACpD,IAAI,SAAS,CAAC,EAAE,EAAE,CAAC;oBACf,UAAU,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;gBACjC,CAAC;gBACD,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;oBACjB,UAAU,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;gBACrC,CAAC;gBACD,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;oBACtB,UAAU,CAAC,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;gBAC/C,CAAC;gBACD,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;oBACjB,UAAU,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;gBACrC,CAAC;YACL,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAChE,CAAC;QACL,CAAC;QAED,IAAI,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC;QACxC,UAAU,CAAC,SAAS,GAAG,EAAE,CAAC;QAE1B,KAAK,IAAI,YAAY,IAAI,kBAAkB,EAAE,CAAC;YAC1C,IAAI,QAAQ,GAAG,YAAY,IAAI,YAAY,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACpG,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,KAAK;aAClB,CAAC;YACF,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;QAClD,CAAC;QAED,IAAI,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QACnC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,IAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9D,UAAU,CAAC,IAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC;QAEhC,IAAI,WAAW,EAAE,CAAC;YACd,UAAU,CAAC,IAAI,GAAG,WAAW,CAAC;QAClC,CAAC;QACD,IAAI,cAAc,EAAE,CAAC;YACjB,UAAU,CAAC,OAAO,GAAG,cAAc,CAAC;QACxC,CAAC;QACD,IAAI,eAAe,EAAE,CAAC;YAClB,UAAU,CAAC,QAAQ,GAAG,eAAe,CAAC;QAC1C,CAAC;QAED,IAAI,aAAa,EAAE,CAAC;YAChB,IAAI,CAAC,WAAW,GAAG,aAAa,KAAK,MAAM,IAAI,aAAa,KAAK,MAAM,CAAC;QAC5E,CAAC;IACL,CAAC;IAED,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED,IAAI,sBAAsB;QACtB,OAAO,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,IAAW,UAAU;QACjB,aAAa;QACb,MAAM,QAAQ,GAAG,SAAS,CAAC,aAAa,IAAI,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC;QACrI,aAAa;QACb,OAAO,QAAQ,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC;IACnJ,CAAC;IAED,IAAW,YAAY;QACnB,aAAa;QACb,OAAO,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC;IACpC,CAAC;IAED,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,CAAC;IAChD,CAAC;IAEY,UAAU;;YACnB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAClD,OAAO;YACX,CAAC;YAED,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;YACvC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;YAElC,IAAI,CAAC;gBACD,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;oBAC/B,KAAK,IAAI,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;wBACjE,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;oBACjD,CAAC;gBACL,CAAC;gBAED,oDAAoD;gBACpD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;oBACzB,MAAM,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBACnC,CAAC;gBAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;gBAEnC,IAAI,IAAI,CAAC,uBAAuB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC5C,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBAC9B,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAClC,CAAC;qBAAM,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;oBAC1B,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;gBACjC,CAAC;YACL,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACrB,CAAC;oBAAS,CAAC;gBACP,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;YACvC,CAAC;QACL,CAAC;KAAA;IAGD,6GAA6G;IAC7G,uHAAuH;IAC1G,eAAe;;YACxB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;YAC7E,CAAC;YAED,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;gBAC5E,IAAI,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;gBACvD,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;YAC5C,CAAC;QACL,CAAC;KAAA;IAEY,cAAc,CAAC,YAAoB,EAAE,IAAU;;YACxD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACrB,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;gBACxE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;YAC7E,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAU,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC9D,OAAO,CAAC,KAAK,CAAC,4BAA4B,GAAG,YAAY,GAAG,GAAG,CAAC,CAAC;gBACjE,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,YAAY,GAAG,GAAG,CAAC,CAAC;YACvE,CAAC;YAED,OAAO,CAAC,KAAK,CAAC,8BAA8B,GAAG,YAAY,GAAG,GAAG,CAAC,CAAC;YACnE,IAAI,GAAG,GAA0B;gBAC7B,QAAQ,EAAE,YAAY;gBACtB,MAAM,EAAE,iBAAiB;gBACzB,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,EAAG;gBACjC,IAAI;aACP,CAAC;YACF,IAAI,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAEzD,IAAI,CAAC,aAAa,CAAC,SAAU,CAAC,YAAY,CAAC,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC;YACnF,IAAI,CAAC,aAAa,CAAC,SAAU,CAAC,YAAY,CAAC,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;YACvE,IAAI,CAAC,aAAa,CAAC,SAAU,CAAC,YAAY,CAAC,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;YACvE,IAAI,CAAC,aAAa,CAAC,SAAU,CAAC,YAAY,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;YAEjE,IAAI,KAAK,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAE/D,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;gBACb,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC9C,IAAI,IAAI,CAAC,uBAAuB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC5C,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACxB,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAClC,CAAC;YACL,CAAC;YAED,OAAO,QAAQ,CAAC;QACpB,CAAC;KAAA;IAEY,eAAe,CAAC,QAAgB;;YACzC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACrB,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;gBACxE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;YAC9E,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1D,OAAO,CAAC,KAAK,CAAC,4BAA4B,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC;gBAC7D,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC;YACnE,CAAC;YAED,OAAO,CAAC,KAAK,CAAC,+BAA+B,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC;YAEhE,IAAI,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC;gBAC1C,QAAQ,EAAE,QAAQ;gBAClB,MAAM,EAAE,kBAAkB;aAC7B,EAAE,IAAI,CAAC,CAAC;YACT,IAAI,CAAC,aAAa,CAAC,SAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;YACxD,IAAI,CAAC,aAAa,CAAC,SAAU,CAAC,QAAQ,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;YACxD,OAAO,QAAQ,CAAC;QACpB,CAAC;KAAA;IAEM,WAAW,CAAC,IAAY;QAC3B,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/G,CAAC;IAEY,mBAAmB,CAAC,OAAwB,EAAE,eAAwB;;YAC/E,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAU,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAClE,OAAO,CAAC,KAAK,CAAC,4BAA4B,GAAG,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC;gBACrE,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC;YAC3E,CAAC;YAED,IAAI,CAAC,eAAe,EAAE,CAAC;gBACnB,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;gBACrC,OAAO;YACX,CAAC;YAED,IAAI,WAAW,GAAG,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;YAEpD,IAAI,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC7C,MAAM,IAAI,KAAK,CAAC,wCAAwC,GAAG,OAAO,CAAC,QAAQ,GAAG,iBAAiB,GAAG,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;YAC5H,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,GAAG,EAAE;gBAChB,OAAO,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;gBAClD,QAAQ,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC;YACjD,CAAC,CAAC;YACF,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;YACzF,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;YACrC,OAAO,QAAQ,CAAC,OAAO,CAAC;QAC5B,CAAC;KAAA;IAED,4FAA4F;IACrF,gBAAgB,CAAC,KAAc;QAElC,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC7C,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QACnC,CAAC;QAED,KAAK,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAE3C,OAAO,CAAC,KAAK,CAAC,2BAA2B,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC;QAE1D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;gBAC7C,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;gBAC/B,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;gBAEhD,IAAI,CAAC;oBACD,oEAAoE;oBACpE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;wBAC3B,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,SAAS,CAAC;oBACxC,CAAC;oBACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;wBAC/B,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,KAAK,CAAC;oBACxC,CAAC;oBACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;wBAC9B,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,KAAK,CAAA;oBACtC,CAAC;oBACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;wBAChC,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,EAAE,CAAC;oBACtC,CAAC;oBACD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,QAA4C,EAAE,EAAE;wBAChH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;4BAC1B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;wBAClD,CAAC;wBAED,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC;wBACnC,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;wBAClD,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;wBAC/D,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;wBACpG,OAAO,EAAE,CAAC;oBACd,CAAC,CAAC,CAAC;gBACP,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACT,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;oBAC5C,MAAM,CAAC,4BAA4B,CAAC,CAAC;gBACzC,CAAC;YACL,CAAC,CAAE,CAAC;QACR,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,SAAS,CAAC,GAAW,EAAE,KAAU;QACpC,IAAI,CAAC,mBAAmB,CAAC;YACrB,QAAQ,EAAE,SAAS;YACnB,MAAM,EAAE,OAAO;YACf,GAAG,EAAE,GAAG;YACR,KAAK,EAAE,KAAK;SACf,EAAE,KAAK,CAAC,CAAC;IACd,CAAC;IAGY,YAAY,CAAI,GAAW;;YACpC,IAAI,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC;gBAC1C,QAAQ,EAAE,SAAS;gBACnB,MAAM,EAAE,UAAU;gBAClB,GAAG,EAAE,GAAG;aACX,EAAE,IAAI,CAAC,CAAC;YAET,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAC7B,OAAO,QAAQ,CAAC,KAAU,CAAC;YAC/B,CAAC;QACL,CAAC;KAAA;IAEM,0BAA0B,CAAC,cAA8B,EAAE,QAAwC;QACtG,IAAI,CAAC,yBAAyB,CAAC,cAAc,CAAC,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;IAC/F,CAAC;IAEM,6BAA6B,CAAC,cAA8B;QAC/D,OAAO,IAAI,CAAC,yBAAyB,CAAC,cAAc,CAAC,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAC3F,CAAC;IAES,uBAAuB,CAAC,WAAgB;QAC9C,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,aAAa;YACb,OAAO,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,aAAa;YACb,OAAO,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACtE,CAAC;IACL,CAAC;IAEM,sBAAsB,CAAC,GAAQ;QAClC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,uBAAuB,CAAC,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAC,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;gBAC/B,OAAO;YACX,CAAC;YACD,QAAQ,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxC,gEAAgE;gBAChE,KAAK,MAAM;oBAEP,QAAQ,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;wBACtC,KAAK,eAAe;4BAChB,IAAI,YAAY,GAA+B;gCAC3C,MAAM,EAAE,eAAe;gCACvB,QAAQ,EAAE,MAAM;gCAChB,OAAO,EAAE,KAAK;gCACd,OAAO,EAAE,IAAI;gCACb,QAAQ,EAAE,KAAK;gCACf,aAAa,EAAE,IAAI;gCACnB,kBAAkB,EAAE,KAAK;gCACzB,OAAO,EAAE,IAAI;6BAChB,CAAC;4BACF,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;4BAC3D,MAAM;wBACV,KAAK,iBAAiB;4BAClB,IAAI,cAAc,GAA2B;gCACzC,MAAM,EAAE,iBAAiB;gCACzB,QAAQ,EAAE,MAAM;gCAChB,aAAa,EAAE,IAAI;gCACnB,OAAO,EAAE,IAAI;6BAChB,CAAC;4BACF,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC;4BAC7D,MAAM;wBACV;4BACI,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,GAAG,CAAC,QAAQ,GAAG,gBAAgB,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;oBACvG,CAAC;oBAED,MAAM;gBAEV,KAAK,SAAS;oBAEV,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;wBACjB,KAAK,eAAe;4BAChB,IAAI,YAAY,GAA+B;gCAC3C,MAAM,EAAE,eAAe;gCACvB,QAAQ,EAAE,SAAS;gCACnB,OAAO,EAAE,OAAO;gCAChB,QAAQ,EAAE,KAAK;gCACf,OAAO,EAAE,IAAI;gCACb,aAAa,EAAE,IAAI;gCACnB,kBAAkB,EAAE,KAAK;gCACzB,OAAO,EAAE,IAAI;6BAChB,CAAC;4BACF,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;4BAC3D,MAAM;wBACV,KAAK,iBAAiB;4BAClB,IAAI,cAAc,GAA2B;gCACzC,MAAM,EAAE,iBAAiB;gCACzB,QAAQ,EAAE,SAAS;gCACnB,aAAa,EAAE,IAAI;gCACnB,OAAO,EAAE,IAAI;6BAChB,CAAC;4BACF,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC;4BAC7D,MAAM;wBACV,KAAK,OAAO;4BAAE,CAAC;gCACP,IAAI,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;gCAE/C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oCACrC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;gCACxE,CAAC;gCAED,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;oCACrB,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gCAC7C,CAAC;qCAAM,CAAC;oCACJ,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;gCACrE,CAAC;4BACL,CAAC;4BACD,MAAM;wBACV,KAAK,UAAU;4BAAE,CAAC;gCACV,IAAI,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;gCAE/C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oCACrC,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;gCAC3E,CAAC;gCAED,IAAI,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gCAChD,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;oCACf,IAAI,CAAC;wCACD,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oCAC1B,CAAC;oCAAC,OAAO,CAAC,EAAE,CAAC;wCACT,6DAA6D;oCACjE,CAAC;gCACL,CAAC;gCAED,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC;oCACxC,MAAM,EAAE,UAAU;oCAClB,QAAQ,EAAE,SAAS;oCACnB,GAAG,EAAE,QAAQ;oCACb,KAAK,EAAE,GAAG;iCACb,CAAC,CAAC,CAAC;4BACR,CAAC;4BACD,MAAM;wBACV;4BACI,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,GAAG,CAAC,QAAQ,GAAG,gBAAgB,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;oBACvG,CAAC;oBACD,MAAM;gBACV;oBACI,iEAAiE;oBACjE,OAAO,CAAC,KAAK,CAAC,wBAAwB,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC/D,CAAC;QACL,CAAC;IACL,CAAC;IAED,yCAAyC;IAC/B,uBAAuB,CAAC,GAAQ;QACtC,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,OAAO;QACX,CAAC;QAED,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC5B,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAE5B,IAAI,kBAAkB,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC;QAEtE,IAAI,kBAAkB,EAAE,CAAC;YACrB,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC,wBAAwB,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC;YACpD,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,QAAQ,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC;QAC7D,IAAI,QAAQ,EAAE,CAAC;YACX,QAAQ,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC;IACL,CAAC;IAES,sBAAsB;QAC5B,IAAI,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC;QAC5C,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;QACpC,IAAI,QAAQ,EAAE,CAAC;YACX,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;gBACnB,QAAS,EAAE,CAAA;YACf,CAAC,EAAE,CAAC,CAAC,CAAC;QACV,CAAC;IACL,CAAC;IAES,MAAM,CAAC,0BAA0B;QACvC,IAAI,GAAG,GAAwB;YAC3B,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE;YAChC,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;SAC1H,CAAC;QAEF,OAAO,GAAG,CAAC;IACf,CAAC;IAEe,mBAAmB,CAAC,YAAoB;;YACpD,OAAO,CAAC,KAAK,CAAC,kCAAkC,GAAG,YAAY,GAAG,GAAG,CAAC,CAAC;YACvE,IAAI,YAAwC,CAAC;YAE7C,IAAI,CAAC;gBACD,YAAY,IAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC;oBAC1C,QAAQ,EAAE,YAAY;oBACtB,MAAM,EAAE,eAAe;iBAC1B,EAAE,IAAI,CAA+B,CAAA,CAAC;gBAEvC,IAAI,CAAC,aAAa,CAAC,SAAU,CAAC,YAAY,CAAC,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;gBAC3E,IAAI,CAAC,aAAa,CAAC,SAAU,CAAC,YAAY,CAAC,CAAC,kBAAkB,GAAG,YAAY,CAAC,kBAAkB,CAAC;gBACjG,IAAI,CAAC,aAAa,CAAC,SAAU,CAAC,YAAY,CAAC,CAAC,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC;gBACvF,IAAI,CAAC,aAAa,CAAC,SAAU,CAAC,YAAY,CAAC,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;gBAC3E,IAAI,CAAC,aAAa,CAAC,SAAU,CAAC,YAAY,CAAC,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;gBAC3E,IAAI,CAAC,aAAa,CAAC,SAAU,CAAC,YAAY,CAAC,CAAC,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;gBAC7E,IAAI,CAAC,aAAa,CAAC,SAAU,CAAC,YAAY,CAAC,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;YACzE,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACjB,YAAY,GAAG;oBACX,MAAM,EAAE,EAAE;oBACV,QAAQ,EAAE,KAAK;oBACf,OAAO,EAAE,KAAK;oBACd,aAAa,EAAE,KAAK;oBACpB,QAAQ,EAAE,EAAE;oBACZ,kBAAkB,EAAE,KAAK;oBACzB,OAAO,EAAE,EAAE;oBACX,OAAO,EAAE,KAAK;iBACjB,CAAC;YACN,CAAC;YAED,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;gBACxB,OAAO,CAAC,KAAK,CAAC,mCAAmC,GAAG,YAAY,GAAG,GAAG,CAAC,CAAC;gBACxE,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;gBAC7B,IAAI,CAAC,aAAa,CAAC,SAAU,CAAC,YAAY,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;YAChE,CAAC;YAED,IAAI,YAAY,CAAC,QAAQ,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;gBAChD,IAAI,KAAK,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;gBAC/D,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;oBACb,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAClD,CAAC;YACL,CAAC;QACL,CAAC;KAAA;CACJ"}
@@ -0,0 +1 @@
1
+ export const DefaultColor4="#4d9d2a";export const DefaultColor7="#FFFFFF";export const DefaultColor1="#FFFFFF";export const DefaultColor2="#F9F9F9";export const DefaultColor5="#CCCCCC";export const DefaultColor6="#be0000";export const DefaultColor8="#FFFFFF";export const DefaultColor3="#4c4c4c";export const DefaultColor9="#000000";export const DefaultColor10="#000000";export const DefaultColor11="#FFFFFF";export const DefaultBoxShadowBottom="0 5px 5px -5px rgba(0,0,0,0.3)";export const DefaultBoxShadow="0 1px 3px 0 rgba(0,0,0,0.21)";export const DefaultHeaderHeight="50px";export const DefaultDisabledOpacity="0.3";
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAW,SAAS,CAAC,CAAC,UAAU;AAC1D,MAAM,CAAC,MAAM,aAAa,GAAW,SAAS,CAAC,CAAC,YAAY;AAC5D,MAAM,CAAC,MAAM,aAAa,GAAW,SAAS,CAAC,CAAC,UAAU;AAC1D,MAAM,CAAC,MAAM,aAAa,GAAW,SAAS,CAAC,CAAC,aAAa;AAC7D,MAAM,CAAC,MAAM,aAAa,GAAW,SAAS,CAAC,CAAC,oBAAoB;AACpE,MAAM,CAAC,MAAM,aAAa,GAAW,SAAS,CAAC,CAAC,gBAAgB;AAChE,MAAM,CAAC,MAAM,aAAa,GAAW,SAAS,CAAC,CAAC,aAAa;AAC7D,MAAM,CAAC,MAAM,aAAa,GAAW,SAAS,CAAC,CAAC,sBAAsB;AACtE,MAAM,CAAC,MAAM,aAAa,GAAW,SAAS,CAAC,CAAC,gBAAgB;AAChE,MAAM,CAAC,MAAM,cAAc,GAAW,SAAS,CAAC,CAAC,aAAa;AAC9D,MAAM,CAAC,MAAM,cAAc,GAAW,SAAS,CAAC,CAAC,WAAW;AAC5D,MAAM,CAAC,MAAM,sBAAsB,GAAW,gCAAgC,CAAC;AAC/E,MAAM,CAAC,MAAM,gBAAgB,GAAW,8BAA8B,CAAC;AACvE,MAAM,CAAC,MAAM,mBAAmB,GAAW,MAAM,CAAC;AAClD,MAAM,CAAC,MAAM,sBAAsB,GAAW,KAAK,CAAC"}
@@ -1,9 +1,10 @@
1
1
  import { Deferred } from "./util";
2
- import { Asset, AssetEvent, AttributeEvent, AttributeRef, EventRequestResponseWrapper, EventSubscription, SharedEvent } from "@openremote/model";
2
+ import { AssetEvent, AttributeEvent, AttributeRef, EventRequestResponseWrapper, EventSubscription, SharedEvent } from "@openremote/model";
3
3
  export declare enum EventProviderStatus {
4
4
  DISCONNECTED = "DISCONNECTED",
5
5
  CONNECTED = "CONNECTED",
6
- CONNECTING = "CONNECTING"
6
+ CONNECTING = "CONNECTING",
7
+ RECONNECT_FAILED = "RECONNECT_FAILED"
7
8
  }
8
9
  export interface EventProvider {
9
10
  status: EventProviderStatus;
@@ -13,7 +14,14 @@ export interface EventProvider {
13
14
  unsubscribeStatusChange(callback: (status: EventProviderStatus) => void): void;
14
15
  subscribe<T extends SharedEvent>(eventSubscription: EventSubscription<T>, callback: (event: T) => void): Promise<string>;
15
16
  unsubscribe<T extends SharedEvent>(subscriptionId: string): void;
16
- subscribeAssetEvents(ids: string[] | AttributeRef[] | null, requestCurrentValues: boolean, callback: (event: AssetEvent) => void): Promise<string>;
17
+ /**
18
+ * Subscribe to {@link AssetEvent}s for the specified {@link Asset}s for all {@link Asset}s
19
+ */
20
+ subscribeAssetEvents(ids: string[] | AttributeRef[] | undefined, requestCurrentValues: boolean, callback: (event: AssetEvent) => void): Promise<string>;
21
+ /**
22
+ * Subscribe to {@link AttributeEvent}s for the specified {@link Asset}s and if {@link AttributeRef}s are provided
23
+ * then the attribute names from the refs will be used for each asset ID.
24
+ */
17
25
  subscribeAttributeEvents(ids: string[] | AttributeRef[], requestCurrentValues: boolean, callback: (event: AttributeEvent) => void): Promise<string>;
18
26
  sendEvent<T extends SharedEvent>(event: T): void;
19
27
  sendEventWithReply<T extends SharedEvent, U extends SharedEvent>(event: EventRequestResponseWrapper<T>): Promise<U>;
@@ -26,11 +34,6 @@ interface EventSubscriptionInfo<T extends SharedEvent> {
26
34
  callback: (event: T) => void;
27
35
  deferred: Deferred<string> | null;
28
36
  }
29
- interface AssetSubscriptionInfo {
30
- callbacks: Map<string, (attributeEvent: AttributeEvent) => void>;
31
- asset?: Asset;
32
- promise?: Promise<void>;
33
- }
34
37
  declare abstract class EventProviderImpl implements EventProvider {
35
38
  protected static MIN_RECONNECT_DELAY: number;
36
39
  protected static MAX_RECONNECT_DELAY: number;
@@ -42,10 +45,12 @@ declare abstract class EventProviderImpl implements EventProvider {
42
45
  protected _statusCallbacks: Array<(status: EventProviderStatus) => void>;
43
46
  protected _pendingSubscription: EventSubscriptionInfo<SharedEvent> | null;
44
47
  protected _queuedSubscriptions: EventSubscriptionInfo<SharedEvent>[];
45
- protected _subscriptionMap: {
46
- [id: string]: EventSubscriptionInfo<SharedEvent>;
47
- };
48
- protected _assetSubscriptionMap: Map<string, AssetSubscriptionInfo>;
48
+ protected _subscriptionMap: Map<string, EventSubscriptionInfo<SharedEvent>>;
49
+ protected _assetEventPromise?: Promise<string>;
50
+ protected _assetEventCallbackMap: Map<string, (e: AssetEvent) => void>;
51
+ protected _attributeEventPromise?: Promise<string>;
52
+ protected _attributeEventCallbackMap: Map<string, (e: AttributeEvent) => void>;
53
+ protected _unloading: boolean;
49
54
  protected static _subscriptionCounter: number;
50
55
  abstract get endpointUrl(): string;
51
56
  get status(): EventProviderStatus;
@@ -54,15 +59,11 @@ declare abstract class EventProviderImpl implements EventProvider {
54
59
  connect(): Promise<boolean>;
55
60
  disconnect(): void;
56
61
  subscribe<T extends SharedEvent>(eventSubscription: EventSubscription<T>, callback: (event: T) => void): Promise<string>;
57
- unsubscribe<T extends SharedEvent>(subscriptionId: string): void;
62
+ unsubscribe<T extends SharedEvent>(subscriptionId: string): Promise<void>;
58
63
  sendEvent<T extends SharedEvent>(event: T): void;
59
64
  sendEventWithReply<T extends SharedEvent, U extends SharedEvent>(event: EventRequestResponseWrapper<T>): Promise<U>;
60
- subscribeAssetEvents(ids: string[] | AttributeRef[] | null, requestCurrentValues: boolean, callback: (event: AssetEvent) => void): Promise<string>;
61
- /**
62
- * Subscribe for updates to a particular attribute; internally this creates subscriptions for all attributes of an
63
- * asset and manages delivery of the update attributes to the subscribers
64
- */
65
- subscribeAttributeEvents(ids: string[] | AttributeRef[], requestCurrentValues: boolean, callback: (event: AttributeEvent) => void): Promise<string>;
65
+ subscribeAssetEvents(ids: string[] | AttributeRef[] | undefined, requestCurrentValues: boolean, callback: (event: AssetEvent) => void): Promise<string>;
66
+ subscribeAttributeEvents(ids: string[] | AttributeRef[] | undefined, requestCurrentValues: boolean, callback: (event: AttributeEvent) => void): Promise<string>;
66
67
  protected _processNextSubscription(): void;
67
68
  private _onStatusChanged;
68
69
  protected _onMessageReceived(subscriptionId: string, event: SharedEvent): void;
package/lib/event.js ADDED
@@ -0,0 +1 @@
1
+ var __awaiter=this&&this.__awaiter||function(e,t,s,i){return new(s||(s=Promise))((function(n,r){function o(e){try{a(i.next(e))}catch(e){r(e)}}function c(e){try{a(i.throw(e))}catch(e){r(e)}}function a(e){var t;e.done?n(e.value):(t=e.value,t instanceof s?t:new s((function(e){e(t)}))).then(o,c)}a((i=i.apply(e,t||[])).next())}))};import manager from"./index";import{arrayRemove,Deferred}from"./util";export var EventProviderStatus;!function(e){e.DISCONNECTED="DISCONNECTED",e.CONNECTED="CONNECTED",e.CONNECTING="CONNECTING",e.RECONNECT_FAILED="RECONNECT_FAILED"}(EventProviderStatus||(EventProviderStatus={}));const SUBSCRIBE_MESSAGE_PREFIX="SUBSCRIBE:",SUBSCRIBED_MESSAGE_PREFIX="SUBSCRIBED:",UNSUBSCRIBE_MESSAGE_PREFIX="UNSUBSCRIBE:",UNAUTHORIZED_MESSAGE_PREFIX="UNAUTHORIZED:",TRIGGERED_MESSAGE_PREFIX="TRIGGERED:",EVENT_MESSAGE_PREFIX="EVENT:",EVENT_REQUEST_RESPONSE_MESSAGE_PREFIX="REQUESTRESPONSE:";class EventProviderImpl{constructor(){this._disconnectRequested=!1,this._reconnectDelayMillis=WebSocketEventProvider.MIN_RECONNECT_DELAY,this._reconnectTimer=null,this._status=EventProviderStatus.DISCONNECTED,this._connectingDeferred=null,this._statusCallbacks=[],this._pendingSubscription=null,this._queuedSubscriptions=[],this._subscriptionMap=new Map,this._assetEventCallbackMap=new Map,this._attributeEventCallbackMap=new Map,this._unloading=!1}get status(){return this._status}subscribeStatusChange(e){this._statusCallbacks.push(e)}unsubscribeStatusChange(e){arrayRemove(this._statusCallbacks,e)}connect(){return this._status===EventProviderStatus.CONNECTED?Promise.resolve(!0):(this._disconnectRequested=!1,this._connectingDeferred||(this._onStatusChanged(EventProviderStatus.CONNECTING),this._connectingDeferred=new Deferred,this._doConnect().then((e=>{if(this._connectingDeferred){const t=this._connectingDeferred;this._connectingDeferred=null,this._reconnectTimer&&(window.clearTimeout(this._reconnectTimer),this._reconnectTimer=null),e?(console.debug("Connected to event service: "+this.endpointUrl),this._reconnectDelayMillis=WebSocketEventProvider.MIN_RECONNECT_DELAY,this._onStatusChanged(EventProviderStatus.CONNECTED),window.setTimeout((()=>{this._onConnect()}),0)):(console.debug("Failed to connect to event service: "+this.endpointUrl),this._onStatusChanged(EventProviderStatus.DISCONNECTED)),t.resolve(e)}}))),this._connectingDeferred.promise)}disconnect(){console.debug("Disconnecting from event service: "+this.endpointUrl),this._disconnectRequested||(this._disconnectRequested=!0,this._reconnectTimer&&(window.clearTimeout(this._reconnectTimer),this._reconnectTimer=null),this.status!==EventProviderStatus.DISCONNECTED&&this._doDisconnect())}subscribe(e,t){const s={eventSubscription:e,callback:t,deferred:new Deferred};return null!=this._pendingSubscription||this._status!==EventProviderStatus.CONNECTED?(this._queuedSubscriptions.push(s),s.deferred.promise):(this._pendingSubscription=s,this._doSubscribe(e).then((e=>{if(this._pendingSubscription){const t=this._pendingSubscription;this._pendingSubscription=null,this._subscriptionMap.set(e,t),this._processNextSubscription();const s=t.deferred;t.deferred=null,s&&s.resolve(e)}}),(e=>{if(this._pendingSubscription){const t=this._pendingSubscription;this._pendingSubscription=null,this._processNextSubscription();const s=t.deferred;t.deferred=null,s&&s.reject(e)}})),this._pendingSubscription.deferred.promise)}unsubscribe(e){return __awaiter(this,void 0,void 0,(function*(){if(this._subscriptionMap.delete(e))this._doUnsubscribe(e);else if(this._assetEventCallbackMap.delete(e)){if(this._assetEventPromise&&0===this._assetEventCallbackMap.size){const e=yield this._assetEventPromise;this._assetEventPromise=void 0,this.unsubscribe(e)}}else if(this._attributeEventCallbackMap.delete(e)&&this._attributeEventPromise&&0===this._attributeEventCallbackMap.size){const e=yield this._attributeEventPromise;this._attributeEventPromise=void 0,this.unsubscribe(e)}}))}sendEvent(e){this._status===EventProviderStatus.CONNECTED&&this._doSend(e)}sendEventWithReply(e){return this._status!==EventProviderStatus.CONNECTED?Promise.reject("Not connected"):this._doSendWithReply(e)}subscribeAssetEvents(e,t,s){return __awaiter(this,void 0,void 0,(function*(){const i=e&&"string"!=typeof e[0]?e.map((e=>e.id)):e,n="AssetEvent"+EventProviderImpl._subscriptionCounter++;if(!this._assetEventPromise){let e;manager.authenticated||(e={filterType:"asset",realm:manager.displayRealm});const t={eventType:"asset",filter:e};this._assetEventPromise=this.subscribe(t,(e=>{this._assetEventCallbackMap.forEach((t=>t(e)))}))}return this._assetEventCallbackMap.set(n,(e=>{const t=e.asset.id;i?i.find((e=>t===e))&&s(e):e.asset.realm===manager.displayRealm&&s(e)})),this._assetEventPromise.then((()=>{try{if(i&&t){const e={messageId:"read-assets:"+i.join(",")+":"+n,event:{eventType:"read-assets",assetQuery:{ids:i}}};this.sendEventWithReply(e).then((e=>{const t=e;t.assets&&this._assetEventCallbackMap.has(n)&&t.assets.forEach((e=>{s({eventType:"asset",asset:e,cause:"READ"})}))}))}}catch(t){throw console.error("Failed to subscribe to asset events for assets: "+e),n&&this.unsubscribe(n),t}return n}))}))}subscribeAttributeEvents(e,t,s){return __awaiter(this,void 0,void 0,(function*(){const i=e&&"string"!=typeof e[0],n=i?e.map((e=>e.id)):e,r=i?e:void 0,o="AttributeEvent"+EventProviderImpl._subscriptionCounter++;if(!this._attributeEventPromise){let e;manager.authenticated||(e={filterType:"asset",realm:manager.displayRealm});const t={eventType:"attribute",filter:e};this._attributeEventPromise=this.subscribe(t,(e=>{this._attributeEventCallbackMap.forEach((t=>t(e)))}))}const c=t=>{const r=t.ref;i?e.forEach((e=>{r.id===e.id&&r.name===e.name&&s(t)})):n?n.find((e=>r.id===e))&&s(t):t.realm===manager.displayRealm&&s(t)};return this._attributeEventCallbackMap.set(o,c),this._attributeEventPromise.then((()=>{try{if(t&&n){const e={messageId:"read-assets:"+n.join(",")+":"+o,event:{eventType:"read-assets",assetQuery:{ids:n}}};this.sendEventWithReply(e).then((e=>{const t=e;t.assets&&this._attributeEventCallbackMap.has(o)&&t.assets.forEach((e=>{e.attributes&&Object.entries(e.attributes).forEach((([t,s])=>{r&&!r.find((s=>s.id===e.id&&s.name===t))||c({eventType:"attribute",timestamp:s.timestamp,value:s.value,ref:{id:e.id,name:t}})}))}))}))}}catch(t){throw console.error("Failed to subscribe to asset events for assets: "+e),o&&this.unsubscribe(o),t}return o}))}))}_processNextSubscription(){this._status===EventProviderStatus.CONNECTED&&0!==this._queuedSubscriptions.length&&setTimeout((()=>{const e=this._queuedSubscriptions.shift();e&&this.subscribe(e.eventSubscription,e.callback).then((t=>{const s=e.deferred;e.deferred=null,s&&s.resolve(t)}),(t=>{const s=e.deferred;e.deferred=null,s&&s.reject(t)}))}),0)}_onStatusChanged(e){e!==this._status&&(console.debug("Event provider status changed: "+e),this._status=e,this._unloading||window.setTimeout((()=>{this._statusCallbacks.forEach((t=>t(e)))}),0))}_onMessageReceived(e,t){const s=this._subscriptionMap.get(e);s&&s.callback(t)}_onConnect(){if(Object.keys(this._subscriptionMap).length>0){for(const e in this._subscriptionMap)this._subscriptionMap.has(e)&&this._queuedSubscriptions.unshift(this._subscriptionMap.get(e));this._subscriptionMap.clear()}this._processNextSubscription()}_onDisconnect(){this._onStatusChanged(EventProviderStatus.DISCONNECTED),this._pendingSubscription&&(this._queuedSubscriptions.unshift(this._pendingSubscription),this._pendingSubscription=null),this._scheduleReconnect()}_scheduleReconnect(){this._reconnectTimer||this._disconnectRequested||(console.debug("Event provider scheduling reconnect in "+this._reconnectDelayMillis+"ms"),this._reconnectTimer=window.setTimeout((()=>{this._disconnectRequested||this.connect().then((e=>{e||(this._onStatusChanged(EventProviderStatus.RECONNECT_FAILED),this._scheduleReconnect())})).catch((e=>{this._onStatusChanged(EventProviderStatus.RECONNECT_FAILED),this._scheduleReconnect()}))}),this._reconnectDelayMillis),this._reconnectDelayMillis<WebSocketEventProvider.MAX_RECONNECT_DELAY&&(this._reconnectDelayMillis=Math.min(WebSocketEventProvider.MAX_RECONNECT_DELAY,this._reconnectDelayMillis+3e3)))}}EventProviderImpl.MIN_RECONNECT_DELAY=0,EventProviderImpl.MAX_RECONNECT_DELAY=3e4,EventProviderImpl._subscriptionCounter=0;export class WebSocketEventProvider extends EventProviderImpl{get endpointUrl(){return this._endpointUrl}constructor(e){super(),this._webSocket=void 0,this._connectDeferred=null,this._subscribeDeferred=null,this._repliesDeferred=new Map,this._endpointUrl=(e.startsWith("https:")?"wss":"ws")+"://"+e.substr(e.indexOf("://")+3)+"/websocket/events",window.addEventListener("beforeunload",(()=>{this._unloading=!0,this.disconnect()}))}_doConnect(){let e=this._endpointUrl+"?Realm="+manager.config.realm;return manager.authenticated&&(e+="&Authorization="+manager.getAuthorizationHeader()),this._webSocket=new WebSocket(e),this._connectDeferred=new Deferred,manager.isTokenExpired()&&this._connectDeferred.resolve(!1),this._webSocket.onopen=()=>{if(this._connectDeferred){const e=this._connectDeferred;this._connectDeferred=null,e.resolve(!0)}},this._webSocket.onerror=e=>{if(this._connectDeferred){const e=this._connectDeferred;this._connectDeferred=null,e.resolve(!1)}else console.debug("Event provider error"),this._beforeDisconnect()},this._webSocket.onclose=()=>{if(this._webSocket=void 0,this._connectDeferred){const e=this._connectDeferred;this._connectDeferred=null,e.resolve(!1)}else this._beforeDisconnect()},this._webSocket.onmessage=e=>{const t=e.data;if(t&&t.startsWith("SUBSCRIBED:")){const e=t.substring(11),s=JSON.parse(e),i=this._subscribeDeferred;this._subscribeDeferred=null,i&&i.resolve(s.subscriptionId)}else if(t.startsWith("UNAUTHORIZED:")){const e=t.substring(13),s=JSON.parse(e),i=this._subscribeDeferred;this._subscribeDeferred=null,i&&(console.warn("Unauthorized event subscription: "+JSON.stringify(s,null,2)),i.reject("Unauthorized"))}else if(t.startsWith("TRIGGERED:")){const e=t.substring(10),s=JSON.parse(e);s.events&&s.events.forEach((e=>{this._onMessageReceived(s.subscriptionId,e)}))}else if(t.startsWith("REQUESTRESPONSE:")){const e=t.substring(16),s=JSON.parse(e);if(s.messageId&&s.event){const e=this._repliesDeferred.get(s.messageId);this._repliesDeferred.delete(s.messageId),e&&e.resolve(s.event)}}},this._connectDeferred.promise}_beforeDisconnect(){this._onDisconnect()}_doDisconnect(){var e;null===(e=this._webSocket)||void 0===e||e.close(),this._subscribeDeferred=null,this._repliesDeferred.clear()}_doSubscribe(e){return this._webSocket?this._subscribeDeferred?Promise.reject("There's already a pending subscription"):(this._subscribeDeferred=new Deferred,e.subscriptionId||(e.subscriptionId=WebSocketEventProvider._subscriptionCounter+++""),this._webSocket.send("SUBSCRIBE:"+JSON.stringify(e)),this._subscribeDeferred.promise):Promise.reject("Not connected")}_doUnsubscribe(e){if(!this._webSocket)return;const t={subscriptionId:e};this._webSocket.send("UNSUBSCRIBE:"+JSON.stringify(t))}_doSend(e){const t="EVENT:"+JSON.stringify(e);this._webSocket.send(t)}_doSendWithReply(e){if(e.messageId||(e.messageId=((new Date).getTime()+10*Math.random()).toString(10)),this._repliesDeferred.has(e.messageId))return Promise.reject("There's already a pending send and reply with this ID");const t=new Deferred;return this._repliesDeferred.set(e.messageId,t),this._webSocket.send("REQUESTRESPONSE:"+JSON.stringify(e)),t.promise}}WebSocketEventProvider._subscriptionCounter=1;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.js","sourceRoot":"","sources":["../src/event.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAC,WAAW,EAAE,QAAQ,EAAC,MAAM,QAAQ,CAAC;AAiB7C,MAAM,CAAN,IAAY,mBAKX;AALD,WAAY,mBAAmB;IAC3B,oDAA6B,CAAA;IAC7B,8CAAuB,CAAA;IACvB,gDAAyB,CAAA;IACzB,4DAAqC,CAAA;AACzC,CAAC,EALW,mBAAmB,KAAnB,mBAAmB,QAK9B;AAkDD,MAAM,wBAAwB,GAAG,YAAY,CAAC;AAC9C,MAAM,yBAAyB,GAAG,aAAa,CAAC;AAChD,MAAM,0BAA0B,GAAG,cAAc,CAAC;AAClD,MAAM,2BAA2B,GAAG,eAAe,CAAC;AACpD,MAAM,wBAAwB,GAAG,YAAY,CAAC;AAC9C,MAAM,oBAAoB,GAAG,QAAQ,CAAC;AACtC,MAAM,qCAAqC,GAAG,kBAAkB,CAAC;AAEjE,MAAe,iBAAiB;IAAhC;QAIc,yBAAoB,GAAY,KAAK,CAAC;QACtC,0BAAqB,GAAW,sBAAsB,CAAC,mBAAmB,CAAC;QAC3E,oBAAe,GAAkB,IAAI,CAAC;QACtC,YAAO,GAAwB,mBAAmB,CAAC,YAAY,CAAC;QAChE,wBAAmB,GAA6B,IAAI,CAAC;QACrD,qBAAgB,GAAiD,EAAE,CAAC;QACpE,yBAAoB,GAA8C,IAAI,CAAC;QACvE,yBAAoB,GAAyC,EAAE,CAAC;QAChE,qBAAgB,GAAoD,IAAI,GAAG,EAAE,CAAC;QAE9E,2BAAsB,GAAyC,IAAI,GAAG,EAAE,CAAC;QAEzE,+BAA0B,GAA6C,IAAI,GAAG,EAAE,CAAC;QACjF,eAAU,GAAG,KAAK,CAAC;IA8ejC,CAAC;IAzeG,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAEM,qBAAqB,CAAC,QAA+C;QACxE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAEM,uBAAuB,CAAC,QAA+C;QAC1E,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;IAEM,OAAO;QACV,IAAI,IAAI,CAAC,OAAO,KAAK,mBAAmB,CAAC,SAAS,EAAE,CAAC;YACjD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAElC,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAEtD,IAAI,CAAC,mBAAmB,GAAG,IAAI,QAAQ,EAAE,CAAC;QAE1C,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,SAAkB,EAAE,EAAE;YAC1C,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC;gBAC1C,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;gBAEhC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;oBACvB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAC1C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;gBAChC,CAAC;gBAED,IAAI,SAAS,EAAE,CAAC;oBACZ,OAAO,CAAC,KAAK,CAAC,8BAA8B,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;oBACjE,IAAI,CAAC,qBAAqB,GAAG,sBAAsB,CAAC,mBAAmB,CAAC;oBACxE,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;oBAErD,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;wBACnB,IAAI,CAAC,UAAU,EAAE,CAAC;oBACtB,CAAC,EAAE,CAAC,CAAC,CAAC;gBACV,CAAC;qBAAM,CAAC;oBACJ,OAAO,CAAC,KAAK,CAAC,sCAAsC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;oBACzE,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;gBAC5D,CAAC;gBAED,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAChC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC;IAC5C,CAAC;IAEM,UAAU;QACb,OAAO,CAAC,KAAK,CAAC,oCAAoC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;QACvE,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,OAAO;QACX,CAAC;QACD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QAEjC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC1C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAChC,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,mBAAmB,CAAC,YAAY,EAAE,CAAC;YACnD,OAAO;QACX,CAAC;QAED,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAEM,SAAS,CAAwB,iBAAuC,EAAE,QAA4B;QAEzG,MAAM,gBAAgB,GAAuC;YACzD,iBAAiB,EAAE,iBAAiB;YACpC,QAAQ,EAAE,QAA0C;YACpD,QAAQ,EAAE,IAAI,QAAQ,EAAU;SACnC,CAAC;QAEF,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,mBAAmB,CAAC,SAAS,EAAE,CAAC;YACtF,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACjD,OAAO,gBAAgB,CAAC,QAAS,CAAC,OAAO,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,oBAAoB,GAAG,gBAAgB,CAAC;QAE7C,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,IAAI,CACrC,cAAc,CAAC,EAAE;YACb,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC;gBAC/C,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;gBAEjC,oCAAoC;gBACpC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;gBAExD,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAChC,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;gBACvC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;gBAE7B,IAAI,QAAQ,EAAE,CAAC;oBACX,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;gBACrC,CAAC;YACL,CAAC;QACL,CAAC,EACD,CAAC,MAAM,EAAE,EAAE;YACP,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC;gBAC/C,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;gBACjC,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAChC,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;gBACvC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;gBAE7B,IAAI,QAAQ,EAAE,CAAC;oBACX,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC5B,CAAC;YACL,CAAC;QACL,CAAC,CAAC,CAAC;QAEP,OAAO,IAAI,CAAC,oBAAoB,CAAC,QAAS,CAAC,OAAO,CAAC;IACvD,CAAC;IAEY,WAAW,CAAwB,cAAsB;;YAElE,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC/C,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;gBACpC,OAAO;YACX,CAAC;YAED,IAAI,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;gBACrD,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,sBAAsB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBACpE,gCAAgC;oBAChC,MAAM,wBAAwB,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC;oBAC/D,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;oBACpC,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;gBAC/C,CAAC;gBACD,OAAO;YACX,CAAC;YAED,IAAI,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;gBACzD,IAAI,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,0BAA0B,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBAC5E,oCAAoC;oBACpC,MAAM,4BAA4B,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC;oBACvE,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC;oBACxC,IAAI,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAC;gBACnD,CAAC;gBACD,OAAO;YACX,CAAC;QACL,CAAC;KAAA;IAEM,SAAS,CAAwB,KAAQ;QAE5C,IAAI,IAAI,CAAC,OAAO,KAAK,mBAAmB,CAAC,SAAS,EAAE,CAAC;YACjD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;IACL,CAAC;IAEM,kBAAkB,CAA+C,KAAqC;QACzG,IAAI,IAAI,CAAC,OAAO,KAAK,mBAAmB,CAAC,SAAS,EAAE,CAAC;YACjD,OAAO,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAEY,oBAAoB,CAAC,GAA0C,EAAE,oBAA6B,EAAE,QAAqC;;YAE9I,MAAM,cAAc,GAAG,GAAG,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;YACzD,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAE,GAAsB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAG,CAAC,CAAC,CAAC,CAAC,GAA2B,CAAC;YAC9G,MAAM,cAAc,GAAG,YAAY,GAAG,iBAAiB,CAAC,oBAAoB,EAAE,CAAC;YAE/E,6GAA6G;YAC7G,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAE3B,IAAI,WAAoC,CAAC;gBAEzC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;oBACzB,8CAA8C;oBAC9C,WAAW,GAAG;wBACV,UAAU,EAAE,OAAO;wBACnB,KAAK,EAAE,OAAO,CAAC,YAAY;qBAC9B,CAAA;gBACL,CAAC;gBAED,MAAM,YAAY,GAAkC;oBAChD,SAAS,EAAE,OAAO;oBAClB,MAAM,EAAE,WAAW;iBACtB,CAAC;gBACF,kBAAkB;gBAClB,8BAA8B;gBAC9B,+BAA+B;gBAC/B,6BAA6B;gBAC7B,SAAS;gBACT,IAAI;gBACJ,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE;oBAC7D,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;gBACvE,CAAC,CAAC,CAAC;YACP,CAAC;YAED,MAAM,WAAW,GAAG,CAAC,CAAa,EAAE,EAAE;gBAClC,MAAM,OAAO,GAAG,CAAC,CAAC,KAAM,CAAC,EAAG,CAAC;gBAE7B,IAAI,QAAQ,EAAE,CAAC;oBACX,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC;wBACxC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAChB,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,MAAM,KAAK,GAAG,CAAC,CAAC,KAAM,CAAC,KAAM,CAAC;oBAC9B,IAAI,KAAK,KAAK,OAAO,CAAC,YAAY,EAAE,CAAC;wBACjC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAChB,CAAC;gBACL,CAAC;YACL,CAAC,CAAC;YAEF,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;YAE7D,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,EAAE;gBAErC,IAAI,CAAC;oBACD,mDAAmD;oBACnD,IAAI,QAAQ,IAAI,oBAAoB,EAAE,CAAC;wBACnC,MAAM,WAAW,GAAiD;4BAC9D,SAAS,EAAE,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,cAAc;4BACrE,KAAK,EAAE;gCACH,SAAS,EAAE,aAAa;gCACxB,UAAU,EAAE;oCACR,GAAG,EAAE,QAAQ;iCAChB;6BACJ;yBACJ,CAAA;wBACD,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC;6BAC/B,IAAI,CAAC,CAAC,CAAc,EAAE,EAAE;4BACrB,MAAM,WAAW,GAAG,CAAgB,CAAC;4BACrC,kCAAkC;4BAClC,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;gCAC1E,OAAO;4BACX,CAAC;4BAED,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gCACjC,MAAM,UAAU,GAAe;oCAC3B,SAAS,EAAE,OAAO;oCAClB,KAAK,EAAE,KAAK;oCACZ,KAAK,mCAAsB;iCAC9B,CAAC;gCACF,QAAQ,CAAC,UAAU,CAAC,CAAC;4BACzB,CAAC,CAAC,CAAC;wBACP,CAAC,CAAC,CAAC;oBACX,CAAC;gBACL,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACT,OAAO,CAAC,KAAK,CAAC,kDAAkD,GAAG,GAAG,CAAC,CAAC;oBACxE,IAAI,cAAc,EAAE,CAAC;wBACjB,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;oBACrC,CAAC;oBACD,MAAM,CAAC,CAAC;gBACZ,CAAC;gBAED,OAAO,cAAc,CAAC;YAC1B,CAAC,CAAC,CAAC;QACP,CAAC;KAAA;IAEY,wBAAwB,CAAC,GAA0C,EAAE,oBAA6B,EAAE,QAAyC;;YAEtJ,MAAM,cAAc,GAAG,GAAG,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;YACzD,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAE,GAAsB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAG,CAAC,CAAC,CAAC,CAAC,GAA2B,CAAC;YAC9G,MAAM,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,GAAqB,CAAC,CAAC,CAAC,SAAS,CAAC;YACtE,MAAM,cAAc,GAAG,gBAAgB,GAAG,iBAAiB,CAAC,oBAAoB,EAAE,CAAC;YAEnF,iHAAiH;YACjH,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAE/B,IAAI,WAAoC,CAAC;gBAEzC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;oBACzB,8CAA8C;oBAC9C,WAAW,GAAG;wBACV,UAAU,EAAE,OAAO;wBACnB,KAAK,EAAE,OAAO,CAAC,YAAY;qBAC9B,CAAA;gBACL,CAAC;gBAED,MAAM,YAAY,GAAsC;oBACpD,SAAS,EAAE,WAAW;oBACtB,MAAM,EAAE,WAAW;iBACtB,CAAC;gBACF,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE;oBACjE,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC3E,CAAC,CAAC,CAAC;YACP,CAAC;YAED,8EAA8E;YAC9E,MAAM,WAAW,GAAG,CAAC,CAAiB,EAAE,EAAE;gBACtC,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAI,CAAC;gBAExB,IAAI,cAAc,EAAE,CAAC;oBAChB,GAAsB,CAAC,OAAO,CAAC,CAAC,GAAiB,EAAE,EAAE;wBAClD,IAAI,QAAQ,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,QAAQ,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;4BACvD,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAChB,CAAC;oBACL,CAAC,CAAC,CAAC;gBACP,CAAC;qBAAM,IAAI,QAAQ,EAAE,CAAC;oBAClB,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC;wBAC5C,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAChB,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,MAAM,KAAK,GAAG,CAAC,CAAC,KAAM,CAAC;oBACvB,IAAI,KAAK,KAAK,OAAO,CAAC,YAAY,EAAE,CAAC;wBACjC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAChB,CAAC;gBACL,CAAC;YACL,CAAC,CAAC;YAEF,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;YAEjE,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,GAAG,EAAE;gBAEzC,IAAI,CAAC;oBACD,uDAAuD;oBACvD,IAAI,oBAAoB,IAAI,QAAQ,EAAE,CAAC;wBACnC,uEAAuE;wBACvE,MAAM,WAAW,GAAiD;4BAC9D,SAAS,EAAE,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,cAAc;4BACrE,KAAK,EAAE;gCACH,SAAS,EAAE,aAAa;gCACxB,UAAU,EAAE;oCACR,GAAG,EAAE,QAAQ;iCAChB;6BACJ;yBACJ,CAAA;wBACD,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC;6BAC/B,IAAI,CAAC,CAAC,CAAc,EAAE,EAAE;4BACrB,MAAM,WAAW,GAAG,CAAgB,CAAC;4BACrC,kCAAkC;4BAClC,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;gCAC9E,OAAO;4BACX,CAAC;4BAED,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gCACjC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;oCACnB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,UAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,EAAE;wCAChE,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAM,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE,CAAC;4CAC9F,WAAW,CAAC;gDACR,SAAS,EAAE,WAAW;gDACtB,SAAS,EAAE,IAAI,CAAC,SAAS;gDACzB,KAAK,EAAE,IAAI,CAAC,KAAK;gDACjB,GAAG,EAAE;oDACD,EAAE,EAAE,KAAK,CAAC,EAAE;oDACZ,IAAI,EAAE,aAAa;iDACtB;6CACJ,CAAC,CAAC;wCACP,CAAC;oCACL,CAAC,CAAC,CAAC;gCACP,CAAC;4BACL,CAAC,CAAC,CAAC;wBACP,CAAC,CAAC,CAAC;oBACX,CAAC;gBACL,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACT,OAAO,CAAC,KAAK,CAAC,kDAAkD,GAAG,GAAG,CAAC,CAAC;oBACxE,IAAI,cAAc,EAAE,CAAC;wBACjB,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;oBACrC,CAAC;oBACD,MAAM,CAAC,CAAC;gBACZ,CAAC;gBAED,OAAO,cAAc,CAAC;YAC1B,CAAC,CAAC,CAAC;QACP,CAAC;KAAA;IAES,wBAAwB;QAC9B,IAAI,IAAI,CAAC,OAAO,KAAK,mBAAmB,CAAC,SAAS,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3F,OAAO;QACX,CAAC;QAED,UAAU,CAAC,GAAG,EAAE;YACZ,MAAM,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;YAC3D,IAAI,gBAAgB,EAAE,CAAC;gBACnB,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,QAAQ,CAAC;qBACxE,IAAI,CACD,CAAC,EAAU,EAAE,EAAE;oBACX,MAAM,QAAQ,GAAG,gBAAiB,CAAC,QAAQ,CAAC;oBAC5C,gBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC;oBAElC,IAAI,QAAQ,EAAE,CAAC;wBACX,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBACzB,CAAC;gBACL,CAAC,EAAE,MAAM,CAAC,EAAE;oBACR,MAAM,QAAQ,GAAG,gBAAiB,CAAC,QAAQ,CAAC;oBAC5C,gBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC;oBAElC,IAAI,QAAQ,EAAE,CAAC;wBACX,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBAC5B,CAAC;gBACL,CAAC,CAAC,CAAC;YACf,CAAC;QACL,CAAC,EAAE,CAAC,CAAC,CAAC;IACV,CAAC;IAEO,gBAAgB,CAAC,MAA2B;QAChD,IAAI,MAAM,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;YAC1B,OAAO;QACX,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,iCAAiC,GAAG,MAAM,CAAC,CAAC;QAE1D,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;gBACnB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;YACtD,CAAC,EAAE,CAAC,CAAC,CAAC;QACV,CAAC;IACL,CAAC;IAES,kBAAkB,CAAC,cAAsB,EAAE,KAAkB;QACnE,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAEnE,IAAI,gBAAgB,EAAE,CAAC;YACnB,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;IACL,CAAC;IAES,UAAU;QAChB,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,KAAK,MAAM,cAAc,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACjD,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;oBAC5C,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAE,CAAC,CAAC;gBAClF,CAAC;YACL,CAAC;YACD,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAClC,CAAC;QAED,IAAI,CAAC,wBAAwB,EAAE,CAAC;IACpC,CAAC;IAES,aAAa;QACnB,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;QACxD,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAC7D,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACrC,CAAC;QAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IAES,kBAAkB;QACxB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,OAAO;QACX,CAAC;QAED,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,OAAO;QACX,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,yCAAyC,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC;QAE7F,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;YAE1C,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC5B,OAAO;YACX,CAAC;YAED,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;gBAC5B,IAAI,CAAC,SAAS,EAAE,CAAC;oBACb,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;oBAC5D,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC9B,CAAC;YACL,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACb,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;gBAC5D,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC9B,CAAC,CAAC,CAAC;QACP,CAAC,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAE/B,IAAI,IAAI,CAAC,qBAAqB,GAAG,sBAAsB,CAAC,mBAAmB,EAAE,CAAC;YAC1E,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,mBAAmB,EAAE,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC;QACzH,CAAC;IACL,CAAC;;AAhfgB,qCAAmB,GAAW,CAAC,AAAZ,CAAa;AAChC,qCAAmB,GAAW,KAAK,AAAhB,CAAiB;AAepC,sCAAoB,GAAW,CAAC,AAAZ,CAAa;AA+etD,MAAM,OAAO,sBAAuB,SAAQ,iBAAiB;IAUzD,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,YAAY,UAAkB;QAC1B,KAAK,EAAE,CAAC;QAVF,eAAU,GAA0B,SAAS,CAAC;QAC9C,qBAAgB,GAA6B,IAAI,CAAC;QAClD,uBAAkB,GAA4B,IAAI,CAAC;QACnD,qBAAgB,GAAuC,IAAI,GAAG,EAAiC,CAAC;QAStG,IAAI,CAAC,YAAY,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,mBAAmB,CAAC;QAEtJ,yCAAyC;QACzC,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,GAAG,EAAE;YACzC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,UAAU,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;IACP,CAAC;IAES,UAAU;QAChB,IAAI,aAAa,GAAG,IAAI,CAAC,YAAY,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;QAEzE,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YACxB,aAAa,IAAI,iBAAiB,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;QAC1E,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,aAAa,CAAC,CAAC;QAC/C,IAAI,CAAC,gBAAgB,GAAG,IAAI,QAAQ,EAAE,CAAC;QAEvC,IAAG,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;YAC1B,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,CAAC,UAAW,CAAC,MAAM,GAAG,GAAG,EAAE;YAC3B,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC;gBACvC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBAC7B,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;QACL,CAAC,CAAC;QAEF,IAAI,CAAC,UAAW,CAAC,OAAO,GAAG,CAAC,GAAG,EAAE,EAAE;YAC/B,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC;gBACvC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBAC7B,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;gBACtC,wGAAwG;gBACxG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC7B,CAAC;QACL,CAAC,CAAC;QAEF,IAAI,CAAC,UAAW,CAAC,OAAO,GAAG,GAAG,EAAE;YAC5B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;YAE5B,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC;gBACvC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBAC7B,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC7B,CAAC;QACL,CAAC,CAAC;QAEF,IAAI,CAAC,UAAW,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,EAAE;YAC/B,MAAM,GAAG,GAAG,CAAC,CAAC,IAAc,CAAC;YAE7B,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,yBAAyB,CAAC,EAAE,CAAC;gBACnD,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;gBAChE,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAmC,CAAC;gBAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC;gBACzC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;gBAC/B,IAAI,QAAQ,EAAE,CAAC;oBACX,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,cAAe,CAAC,CAAC;gBACnD,CAAC;YACL,CAAC;iBAAM,IAAI,GAAG,CAAC,UAAU,CAAC,2BAA2B,CAAC,EAAE,CAAC;gBACrD,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;gBAClE,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAmC,CAAC;gBAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC;gBACzC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;gBAC/B,IAAI,QAAQ,EAAE,CAAC;oBACX,OAAO,CAAC,IAAI,CAAC,mCAAmC,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC1F,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;gBACpC,CAAC;YACL,CAAC;iBAAM,IAAI,GAAG,CAAC,UAAU,CAAC,wBAAwB,CAAC,EAAE,CAAC;gBAClD,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;gBAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4C,CAAC;gBAC7E,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;oBACnB,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;wBAC/B,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,cAAe,EAAE,KAAK,CAAC,CAAC;oBAC9D,CAAC,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;iBAAM,IAAI,GAAG,CAAC,UAAU,CAAC,qCAAqC,CAAC,EAAE,CAAC;gBAC/D,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,qCAAqC,CAAC,MAAM,CAAC,CAAC;gBACxE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA6C,CAAC;gBAC1E,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,SAAU,CAAC,CAAC;oBAC7D,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,SAAU,CAAC,CAAC;oBAC/C,IAAI,QAAQ,EAAE,CAAC;wBACX,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBAClC,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC,CAAC;QAEF,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;IACzC,CAAC;IAES,iBAAiB;QACvB,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAES,aAAa;;QACnB,MAAA,IAAI,CAAC,UAAU,0CAAE,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC;IAES,YAAY,CAAwB,YAAkC;QAC5E,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACnB,OAAO,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,OAAO,OAAO,CAAC,MAAM,CAAC,wCAAwC,CAAC,CAAC;QACpE,CAAC;QAED,IAAI,CAAC,kBAAkB,GAAG,IAAI,QAAQ,EAAE,CAAC;QACzC,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;YAC/B,YAAY,CAAC,cAAc,GAAG,sBAAsB,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC;QACrF,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;QAC9E,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;IAC3C,CAAC;IAES,cAAc,CAAC,cAAsB;QAC3C,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACnB,OAAO;QACX,CAAC;QACD,MAAM,kBAAkB,GAA4B;YAChD,cAAc,EAAE,cAAc;SACjC,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC1F,CAAC;IAES,OAAO,CAAwB,KAAQ;QAC7C,MAAM,OAAO,GAAG,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC7D,IAAI,CAAC,UAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAES,gBAAgB,CAA+C,KAAqC;QAE1G,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACnB,KAAK,CAAC,SAAS,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACjF,CAAC;QAED,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7C,OAAO,OAAO,CAAC,MAAM,CAAC,uDAAuD,CAAC,CAAC;QACnF,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAe,CAAC;QAC7C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACrD,IAAI,CAAC,UAAW,CAAC,IAAI,CAAC,qCAAqC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QACrF,OAAQ,QAAmC,CAAC,OAAO,CAAC;IACxD,CAAC;;AA1KgB,2CAAoB,GAAW,CAAC,AAAZ,CAAa"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,150 @@
1
+ import "url-search-params-polyfill";
2
+ import { Console } from "./console";
3
+ import { EventProvider, EventProviderFactory, EventProviderStatus } from "./event";
4
+ import { ConsoleAppConfig, ManagerConfig, MapType, UsernamePassword } from "@openremote/model";
5
+ import * as Util from "./util";
6
+ export { Util };
7
+ export * from "./asset-mixin";
8
+ export * from "./console";
9
+ export * from "./event";
10
+ export * from "./defaults";
11
+ export declare const DEFAULT_ICONSET: string;
12
+ export declare type KeycloakPromise<T> = {
13
+ success<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | KeycloakPromise<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | KeycloakPromise<TResult2>) | undefined | null): KeycloakPromise<TResult1 | TResult2>;
14
+ error<TResult = never>(onrejected?: ((reason: any) => TResult | KeycloakPromise<TResult>) | undefined | null): Promise<T | TResult>;
15
+ };
16
+ export declare enum ORError {
17
+ MANAGER_FAILED_TO_LOAD = "MANAGER_FAILED_TO_LOAD",
18
+ AUTH_FAILED = "AUTH_FAILED",
19
+ AUTH_TYPE_UNSUPPORTED = "AUTH_TYPE_UNSUPPORTED",
20
+ CONSOLE_ERROR = "CONSOLE_INIT_ERROR",
21
+ EVENTS_CONNECTION_ERROR = "EVENTS_CONNECTION_ERROR",
22
+ TRANSLATION_ERROR = "TRANSLATION_ERROR"
23
+ }
24
+ export declare enum OREvent {
25
+ ERROR = "ERROR",
26
+ READY = "READY",
27
+ ONLINE = "ONLINE",
28
+ OFFLINE = "OFFLINE",
29
+ CONNECTING = "CONNECTING",
30
+ RECONNECT_FAILED = "RECONNECT_FAILED",
31
+ CONSOLE_INIT = "CONSOLE_INIT",
32
+ CONSOLE_READY = "CONSOLE_READY",
33
+ CONSOLE_VISIBLE = "CONSOLE_VISIBLE",
34
+ CONSOLE_HIDDEN = "CONSOLE_HIDDEN",
35
+ TRANSLATE_INIT = "TRANSLATE_INIT",
36
+ TRANSLATE_LANGUAGE_CHANGED = "TRANSLATE_LANGUAGE_CHANGED",
37
+ DISPLAY_REALM_CHANGED = "DISPLAY_REALM_CHANGED"
38
+ }
39
+ export interface LoginOptions {
40
+ redirectUrl?: string;
41
+ credentials?: UsernamePassword;
42
+ }
43
+ export interface BasicLoginResult {
44
+ username: string;
45
+ password: string;
46
+ cancel: boolean;
47
+ }
48
+ export interface Languages {
49
+ [langKey: string]: string;
50
+ }
51
+ export declare const DEFAULT_LANGUAGES: Languages;
52
+ export declare function normaliseConfig(config: ManagerConfig): ManagerConfig;
53
+ export interface OrManagerEventDetail {
54
+ event: OREvent;
55
+ error?: ORError;
56
+ }
57
+ export type EventCallback = (event: OREvent) => void;
58
+ export declare class Manager implements EventProviderFactory {
59
+ get username(): string;
60
+ get error(): ORError | undefined;
61
+ get authenticated(): boolean;
62
+ get ready(): boolean;
63
+ get config(): ManagerConfig;
64
+ get roles(): Map<string, string[]>;
65
+ get managerVersion(): string;
66
+ get isManagerAvailable(): boolean | "";
67
+ get managerUrl(): any;
68
+ get keycloakUrl(): any;
69
+ get isError(): boolean;
70
+ get connectionStatus(): EventProviderStatus | undefined;
71
+ get console(): Console;
72
+ get consoleAppConfig(): ConsoleAppConfig | undefined;
73
+ get events(): EventProvider | undefined;
74
+ get rest(): import("@openremote/rest").RestApi;
75
+ get language(): string;
76
+ set language(lang: string);
77
+ get displayRealm(): string;
78
+ set displayRealm(realm: string);
79
+ getEventProvider(): EventProvider | undefined;
80
+ get mapType(): MapType;
81
+ private _error?;
82
+ private _config;
83
+ private _authenticated;
84
+ private _authDisconnected;
85
+ private _authReconnectTimeout?;
86
+ private _ready;
87
+ private _readyCallback?;
88
+ private _name;
89
+ private _username;
90
+ private _keycloak?;
91
+ private _basicIdentity?;
92
+ private _keycloakUpdateTokenInterval?;
93
+ private _managerVersion;
94
+ _authServerUrl: string;
95
+ private _listeners;
96
+ private _console;
97
+ private _consoleAppConfig?;
98
+ private _events?;
99
+ private _eventsDisconnected;
100
+ private _displayRealm?;
101
+ isManagerSameOrigin(): boolean;
102
+ addListener(callback: EventCallback): void;
103
+ removeListener(callback: EventCallback): void;
104
+ init(config: ManagerConfig): Promise<boolean>;
105
+ protected loadManagerInfo(): Promise<boolean>;
106
+ protected doTranslateInit(): Promise<boolean>;
107
+ protected doDescriptorsInit(): Promise<boolean>;
108
+ protected doAuthInit(): Promise<boolean>;
109
+ protected doRestApiInit(): boolean;
110
+ protected doEventsSubscriptionInit(): Promise<boolean>;
111
+ reconnect(force?: boolean): void;
112
+ protected _runAuthReconnectTimer(timeout?: number, timeoutMax?: number): void;
113
+ protected _finishAuthReconnectTimer(success: boolean): void;
114
+ protected isKeycloakReachable(): Promise<void>;
115
+ protected _tryUpdateAccessToken(): Promise<boolean>;
116
+ protected _tryReconnectEvents(): void;
117
+ protected _connectEvents(): void;
118
+ protected _onEventProviderStatusChanged(status: EventProviderStatus): void;
119
+ protected doConsoleInit(): Promise<boolean>;
120
+ protected doIconInit(): void;
121
+ protected getConsoleAppConfig(): Promise<boolean>;
122
+ logout(redirectUrl?: string): void;
123
+ login(options?: LoginOptions): void;
124
+ protected initialiseBasicAuth(): Promise<boolean>;
125
+ protected doBasicLogin(): Promise<void>;
126
+ isSuperUser(): boolean;
127
+ isRestrictedUser(): boolean;
128
+ getApiBaseUrl(): string;
129
+ getAppName(): string;
130
+ hasRealmRole(role: string): boolean;
131
+ hasRole(role: string, client?: string): boolean;
132
+ getAuthorizationHeader(): string | undefined;
133
+ getKeycloakToken(): string | undefined;
134
+ getBasicToken(): string | undefined;
135
+ isTokenExpired(margin?: number): boolean;
136
+ getRealm(): string | undefined;
137
+ protected isMobile(): boolean;
138
+ isKeycloak(): boolean;
139
+ protected _onAuthenticated(): void;
140
+ protected loadAndInitialiseKeycloak(): Promise<boolean>;
141
+ protected updateKeycloakAccessToken(): Promise<boolean | void>;
142
+ protected _getNativeOfflineRefreshToken(): Promise<string | undefined>;
143
+ protected _emitEvent(event: OREvent): void;
144
+ protected _setError(error: ORError): void;
145
+ protected _setAuthenticated(authenticated: boolean): void;
146
+ protected _setAuthDisconnected(disconnected: boolean, force?: boolean): void;
147
+ protected _setEventDisconnected(disconnected: boolean, force?: boolean): void;
148
+ }
149
+ export declare const manager: Manager;
150
+ export default manager;
package/lib/index.js ADDED
@@ -0,0 +1 @@
1
+ var __awaiter=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{c(n.next(e))}catch(e){s(e)}}function a(e){try{c(n.throw(e))}catch(e){s(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}c((n=n.apply(e,t||[])).next())}))};import"url-search-params-polyfill";import{Console}from"./console";import rest from"@openremote/rest";import{EventProviderStatus,WebSocketEventProvider}from"./event";import i18next from"i18next";import i18nextBackend from"i18next-http-backend";import moment from"moment";import{AssetModelUtil}from"@openremote/model";import*as Util from"./util";import{createMdiIconSet,createSvgIconSet,IconSets,OrIconSet}from"@openremote/or-icon";import Keycloak from"keycloak-js";export{Util};export*from"./asset-mixin";export*from"./console";export*from"./event";export*from"./defaults";export const DEFAULT_ICONSET="mdi";export var ORError;!function(e){e.MANAGER_FAILED_TO_LOAD="MANAGER_FAILED_TO_LOAD",e.AUTH_FAILED="AUTH_FAILED",e.AUTH_TYPE_UNSUPPORTED="AUTH_TYPE_UNSUPPORTED",e.CONSOLE_ERROR="CONSOLE_INIT_ERROR",e.EVENTS_CONNECTION_ERROR="EVENTS_CONNECTION_ERROR",e.TRANSLATION_ERROR="TRANSLATION_ERROR"}(ORError||(ORError={}));export var OREvent;!function(e){e.ERROR="ERROR",e.READY="READY",e.ONLINE="ONLINE",e.OFFLINE="OFFLINE",e.CONNECTING="CONNECTING",e.RECONNECT_FAILED="RECONNECT_FAILED",e.CONSOLE_INIT="CONSOLE_INIT",e.CONSOLE_READY="CONSOLE_READY",e.CONSOLE_VISIBLE="CONSOLE_VISIBLE",e.CONSOLE_HIDDEN="CONSOLE_HIDDEN",e.TRANSLATE_INIT="TRANSLATE_INIT",e.TRANSLATE_LANGUAGE_CHANGED="TRANSLATE_LANGUAGE_CHANGED",e.DISPLAY_REALM_CHANGED="DISPLAY_REALM_CHANGED"}(OREvent||(OREvent={}));export const DEFAULT_LANGUAGES={en:"english",cn:"chinese",nl:"dutch",fr:"french",de:"german",it:"italian",pt:"portuguese",ro:"romanian",es:"spanish",uk:"ukrainian"};export function normaliseConfig(e){const t=e?Object.assign({},e):{};return t.managerUrl&&""!==t.managerUrl?t.managerUrl=t.managerUrl.replace(/\/+$/,""):t.managerUrl=window.location.protocol+"//"+window.location.hostname+(window.location.port?":"+window.location.port:""),t.realm&&""!==t.realm||(t.realm="master"),t.auth||(t.auth="KEYCLOAK"),void 0===t.consoleAutoEnable&&(t.consoleAutoEnable=!0),t.eventProviderType||(t.eventProviderType="WEBSOCKET"),(!t.pollingIntervalMillis||t.pollingIntervalMillis<5e3)&&(t.pollingIntervalMillis=1e4),void 0===t.loadIcons&&(t.loadIcons=!0),void 0===t.loadTranslations&&(t.loadTranslations=["or"]),void 0===t.translationsLoadPath&&(t.translationsLoadPath="locales/{{lng}}/{{ns}}.json"),void 0===t.loadDescriptors&&(t.loadDescriptors=!0),void 0===t.clientId&&(t.clientId="openremote"),t}export class Manager{constructor(){this._authenticated=!1,this._authDisconnected=!1,this._ready=!1,this._name="",this._username="",this._keycloakUpdateTokenInterval=void 0,this._managerVersion="",this._authServerUrl="",this._listeners=[],this._eventsDisconnected=!1}get username(){return this._username}get error(){return this._error}get authenticated(){return this._authenticated}get ready(){return this._ready}get config(){return this._config}get roles(){const e=new Map;return this._keycloak?this._keycloak.resourceAccess&&this._config.clientId&&this._keycloak.resourceAccess&&Object.entries(this._keycloak.resourceAccess).forEach((([t,i])=>{const n=i.roles;e.set(t,n)})):this._basicIdentity&&this._basicIdentity.roles&&e.set(this._config.clientId,this._basicIdentity.roles.map((e=>e.name))),e}get managerVersion(){return this._managerVersion}get isManagerAvailable(){return this._managerVersion&&""!==this._managerVersion}get managerUrl(){return this._config.managerUrl}get keycloakUrl(){return this._config.keycloakUrl}get isError(){return!!this._error}get connectionStatus(){return this._events&&this._events.status}get console(){return this._console}get consoleAppConfig(){return this._consoleAppConfig}get events(){return this._events}get rest(){return rest}get language(){return i18next.language}set language(e){e&&(i18next.changeLanguage(e),this.console.storeData("LANGUAGE",e))}get displayRealm(){return this._displayRealm||this._config.realm}set displayRealm(e){this.isSuperUser()&&this._displayRealm!==e&&(this._displayRealm=e,this._emitEvent(OREvent.DISPLAY_REALM_CHANGED))}getEventProvider(){return this.events}get mapType(){return this._config.mapType||"VECTOR"}isManagerSameOrigin(){if(!this.ready)return!1;const e=new URL(this._config.managerUrl),t=window.location;return e.protocol===t.protocol&&e.hostname===t.hostname&&e.port===t.port}addListener(e){this._listeners.indexOf(e)<0&&this._listeners.push(e)}removeListener(e){const t=this._listeners.indexOf(e);t>=0&&this._listeners.splice(t,1)}init(e){return __awaiter(this,void 0,void 0,(function*(){this._config&&console.log("Already initialised"),this._config=normaliseConfig(e);let t=yield this.loadManagerInfo();if("BASIC"===this._config.auth)t=(yield this.doTranslateInit())&&t,t=yield this.doAuthInit();else if("KEYCLOAK"===this._config.auth){if(!this._config.keycloakUrl&&this._authServerUrl){const e=new URL(this._config.managerUrl);let t;this._authServerUrl.startsWith("//")&&(this._authServerUrl=e.protocol+this._authServerUrl);try{t=new URL(this._authServerUrl)}catch(i){t=new URL(e),t.pathname=this._authServerUrl}t.protocol||(t.protocol=e.protocol),t.hostname||(t.hostname=e.hostname),t.port||(t.port=e.port),this._config.keycloakUrl=t.toString()}this._config.keycloakUrl||(this._config.keycloakUrl=this._config.managerUrl+"/auth"),this._config.keycloakUrl=this._config.keycloakUrl.replace(/\/+$/,""),t=yield this.doAuthInit(),t||this._config.skipFallbackToBasicAuth||(console.log("Falling back to basic auth"),this._config.auth="BASIC",t=yield this.doAuthInit())}return t&&(t=this.doRestApiInit()),yield this.doConsoleInit(),t=(yield this.doTranslateInit())&&t,t&&(t=yield this.doDescriptorsInit(),t=yield this.getConsoleAppConfig()),this.doIconInit(),t?(this._readyCallback&&(yield this._readyCallback()),this._ready=!0,this._emitEvent(OREvent.READY)):(this._config=void 0,console.warn("Failed to initialise the manager")),this.displayRealm=e.realm||"master",t}))}loadManagerInfo(){return __awaiter(this,void 0,void 0,(function*(){try{const e=yield new Promise(((e,t)=>{const i=new XMLHttpRequest;i.addEventListener("load",(()=>{e(JSON.parse(i.responseText))})),i.addEventListener("error",(()=>{t(new Error("Failed to contact the manager"))})),i.open("GET",this._config.managerUrl+"/api/master/info"),i.send()}));return this._managerVersion=e&&e.version?e.version:"",this._authServerUrl=e&&e.authServerUrl?e.authServerUrl:"",!0}catch(e){return console.error("Failed to contact the manager",e),this._setError(ORError.MANAGER_FAILED_TO_LOAD),!1}}))}doTranslateInit(){return __awaiter(this,void 0,void 0,(function*(){if(i18next.isInitialized)return!0;i18next.on("initialized",(e=>{this._emitEvent(OREvent.TRANSLATE_INIT)})),i18next.on("languageChanged",(e=>{moment.locale(e),this._emitEvent(OREvent.TRANSLATE_LANGUAGE_CHANGED)}));const e={lng:(this.console?yield this.console.retrieveData("LANGUAGE"):void 0)||"en",fallbackLng:"en",defaultNS:"app",fallbackNS:"or",ns:this.config.loadTranslations,interpolation:{format:(e,t,i)=>"uppercase"===t?e.toUpperCase():e instanceof Date?moment(e).format(t):e},backend:{loadPath:(e,t)=>1===t.length&&"or"===t[0]?this.config.managerUrl+"/shared/locales/{{lng}}/{{ns}}.json":this.config.translationsLoadPath?this.config.translationsLoadPath:"locales/{{lng}}/{{ns}}.json"}};this.config.configureTranslationsOptions&&this.config.configureTranslationsOptions(e);try{yield i18next.use(i18nextBackend).init(e)}catch(e){return console.error(e),this._setError(ORError.TRANSLATION_ERROR),!1}return!0}))}doDescriptorsInit(){return __awaiter(this,void 0,void 0,(function*(){if(!this.config.loadDescriptors)return!0;try{const e=yield rest.api.AssetModelResource.getAssetInfos(),t=yield rest.api.AssetModelResource.getMetaItemDescriptors(),i=yield rest.api.AssetModelResource.getValueDescriptors();AssetModelUtil._assetTypeInfos=e.data,AssetModelUtil._metaItemDescriptors=Object.values(t.data),AssetModelUtil._valueDescriptors=Object.values(i.data)}catch(e){return console.error(e),!1}return!0}))}doAuthInit(){return __awaiter(this,void 0,void 0,(function*(){let e=!0;switch(this._config.auth){case"BASIC":e=yield this.initialiseBasicAuth();break;case"KEYCLOAK":e=yield this.loadAndInitialiseKeycloak();break;case"NONE":return!0;default:return this._setError(ORError.AUTH_TYPE_UNSUPPORTED),!1}return rest.addRequestInterceptor((e=>{if(!e.headers.Authorization){const t=this.getAuthorizationHeader();t&&(e.headers.Authorization=t)}return e})),e}))}doRestApiInit(){return rest.setTimeout(1e4),rest.initialise(this.getApiBaseUrl()),!0}doEventsSubscriptionInit(){return __awaiter(this,void 0,void 0,(function*(){let e=!1;return"WEBSOCKET"===this._config.eventProviderType&&(this._events=new WebSocketEventProvider(this._config.managerUrl),this._events.subscribeStatusChange((e=>this._onEventProviderStatusChanged(e))),e=yield this._events.connect()),e||this._setError(ORError.EVENTS_CONNECTION_ERROR),e}))}reconnect(e=!1){(this._authDisconnected||e)&&this._runAuthReconnectTimer(),(this._eventsDisconnected||e)&&this._tryReconnectEvents()}_runAuthReconnectTimer(e=5e3,t=2e4){if(this._authReconnectTimeout)this._tryUpdateAccessToken();else{const i=()=>{this._tryUpdateAccessToken().then((n=>{n?(e=Math.min(t,Math.round(1.2*e)),console.debug(`Authentication service reconnect failed. Trying again in ${e} milliseconds...`),this._authReconnectTimeout=window.setTimeout(i,e),this._emitEvent(OREvent.RECONNECT_FAILED)):this._finishAuthReconnectTimer(!0)})).catch((e=>{console.error(e),this._finishAuthReconnectTimer(!1)}))};i()}}_finishAuthReconnectTimer(e){this._authReconnectTimeout&&(clearTimeout(this._authReconnectTimeout),delete this._authReconnectTimeout,e&&this._setAuthDisconnected(!1))}isKeycloakReachable(){return __awaiter(this,void 0,void 0,(function*(){const e=new AbortController,t=setTimeout((()=>e.abort()),2e3);try{return yield fetch(this._config.keycloakUrl+"/health/ready",{method:"HEAD",mode:"no-cors",signal:e.signal}),Promise.resolve()}catch(e){return Promise.reject(e)}finally{clearTimeout(t)}}))}_tryUpdateAccessToken(){return __awaiter(this,void 0,void 0,(function*(){let e=!1;return this.isKeycloak()&&(console.debug("Attempting to update keycloak access token..."),this._emitEvent(OREvent.CONNECTING),yield this.isKeycloakReachable().catch((()=>{e=!0,console.error("Could not reach keycloak service! Aborting token update.")})),e||(yield this.updateKeycloakAccessToken().catch((t=>{e=!0,console.error(t)})))),this._setAuthDisconnected(e),e}))}_tryReconnectEvents(){var e,t,i;if((null===(e=this.events)||void 0===e?void 0:e.status)!==EventProviderStatus.CONNECTED)if((null===(t=this.events)||void 0===t?void 0:t.status)===EventProviderStatus.DISCONNECTED)this._connectEvents();else if((null===(i=this.events)||void 0===i?void 0:i.status)===EventProviderStatus.CONNECTING){const e=t=>{var i;t===EventProviderStatus.DISCONNECTED&&(null===(i=this.events)||void 0===i||i.unsubscribeStatusChange(e),this._connectEvents())};this.events.subscribeStatusChange(e),setTimeout((()=>{var t;null===(t=this.events)||void 0===t||t.unsubscribeStatusChange(e)}),4e3)}}_connectEvents(){var e;(null===(e=this.events)||void 0===e?void 0:e.status)===EventProviderStatus.DISCONNECTED?this.events.connect().catch((e=>{console.error("Failed to connect EventProvider."),console.error(e)})):console.warn("Tried to connect EventProvider, but it wasn't disconnected!")}_onEventProviderStatusChanged(e){switch(e){case EventProviderStatus.DISCONNECTED:this._setEventDisconnected(!0);break;case EventProviderStatus.CONNECTED:this._setEventDisconnected(!1);break;case EventProviderStatus.CONNECTING:this._emitEvent(OREvent.CONNECTING);break;case EventProviderStatus.RECONNECT_FAILED:this._emitEvent(OREvent.RECONNECT_FAILED)}}doConsoleInit(){return __awaiter(this,void 0,void 0,(function*(){try{const e=new Console(this._config.realm,this._config.consoleAutoEnable,(()=>{this._emitEvent(OREvent.CONSOLE_READY)}));return this._console=e,yield e.initialise(),this._emitEvent(OREvent.CONSOLE_INIT),!0}catch(e){return this._setError(ORError.CONSOLE_ERROR),!1}}))}doIconInit(){this._config.loadIcons&&(IconSets.addIconSet("mdi",createMdiIconSet(manager.config.managerUrl)),IconSets.addIconSet("or",createSvgIconSet(OrIconSet.size,OrIconSet.icons)))}getConsoleAppConfig(){return __awaiter(this,void 0,void 0,(function*(){try{const e=yield fetch(manager.config.managerUrl+"/consoleappconfig/"+manager.displayRealm+".json");return this._consoleAppConfig=yield e.json(),!0}catch(e){return!0}}))}logout(e){this._keycloak?(this.console.isMobile&&this.console.storeData("REFRESH_TOKEN",null),this._keycloak.logout(e&&""!==e?{redirectUri:e}:void 0)):this._basicIdentity&&(this._basicIdentity=void 0,e?window.location.href=e:window.location.reload())}login(e){switch(this._config.auth){case"BASIC":e&&e.credentials&&(this._config.credentials=Object.assign({},e.credentials)),this.doBasicLogin();break;case"KEYCLOAK":if(this._keycloak){const t={};e&&e.redirectUrl&&""!==e.redirectUrl&&(t.redirectUri=e.redirectUrl),this.isMobile()&&(t.scope="offline_access"),this._keycloak.login(t)}}}initialiseBasicAuth(){return __awaiter(this,void 0,void 0,(function*(){return this.config.basicLoginProvider?(this.config.autoLogin&&(this._readyCallback=()=>this.doBasicLogin()),!0):(console.log("No basicLoginProvider defined on config so cannot display login UI"),!1)}))}doBasicLogin(){var e,t,i,n;return __awaiter(this,void 0,void 0,(function*(){if(!this.config.basicLoginProvider)return;let o={username:(null===(e=this._config.credentials)||void 0===e?void 0:e.username)?null===(t=this._config.credentials)||void 0===t?void 0:t.username:"",password:(null===(i=this._config.credentials)||void 0===i?void 0:i.password)?null===(n=this._config.credentials)||void 0===n?void 0:n.password:"",cancel:!1},s=!1;for(this._basicIdentity={roles:void 0,token:void 0,user:void 0};!s;){if(o=yield this.config.basicLoginProvider(o.username,o.password),o.cancel){console.log("Basic authentication cancelled by user");break}if(!o.username||!o.password)continue;this._basicIdentity.token=btoa(o.username+":"+o.password);let e=!1;try{const t=yield rest.api.UserResource.getCurrent();200===t.status&&(e=!0,this._basicIdentity.user=t.data),e||401!==t.status&&403!==t.status||console.log("Basic authentication invalid credentials, trying again")}catch(e){console.error("Basic auth failed: ",e)}if(!e){console.log("Unknown response so aborting"),this._basicIdentity=void 0;break}{console.log("Basic authentication successful"),s=!0;const e=yield rest.api.UserResource.getCurrentUserRoles();this._basicIdentity.roles=e.data}}this._setAuthenticated(s)}))}isSuperUser(){return!(!this.getRealm()||"master"!==this.getRealm()||!this.hasRealmRole("admin"))}isRestrictedUser(){return!!this.hasRealmRole("restricted_user")}getApiBaseUrl(){let e=this._config.managerUrl;return e+="/api/"+this._config.realm+"/",e}getAppName(){const e=location.pathname.split("/");return e.length>=1?e[1]:""}hasRealmRole(e){return this.isKeycloak()&&this._keycloak.hasRealmRole(e)}hasRole(e,t=this._config.clientId){const i=this.roles;return i&&i.has(t)&&i.get(t).indexOf(e)>=0}getAuthorizationHeader(){return this.getKeycloakToken()?"Bearer "+this.getKeycloakToken():this.getBasicToken()?"Basic "+this.getBasicToken():void 0}getKeycloakToken(){if(this.isKeycloak())return this._keycloak.token}getBasicToken(){return this._basicIdentity?this._basicIdentity.token:void 0}isTokenExpired(e=2e3){var t,i,n;return this.isKeycloak()?(null===(i=null===(t=this._keycloak)||void 0===t?void 0:t.tokenParsed)||void 0===i?void 0:i.exp)<=moment().add(e,"milliseconds").unix():!(null===(n=this._basicIdentity)||void 0===n?void 0:n.token)}getRealm(){if(this._config)return this._config.realm}isMobile(){return this.console&&this.console.isMobile}isKeycloak(){return!!this._keycloak}_onAuthenticated(){var e;this.console&&this.console.isMobile&&"KEYCLOAK"===this.config.auth&&(this._keycloak&&"Offline"===(null===(e=this._keycloak.refreshTokenParsed)||void 0===e?void 0:e.typ)?(console.debug("Storing offline refresh token"),this.console.storeData("REFRESH_TOKEN",this._keycloak.refreshToken)):this.login())}loadAndInitialiseKeycloak(){var e,t;return __awaiter(this,void 0,void 0,(function*(){try{this._keycloak=new Keycloak({clientId:this._config.clientId,realm:this._config.realm,url:this._config.keycloakUrl}),this._keycloak.onAuthSuccess=()=>{this._finishAuthReconnectTimer(!0)},this._keycloak.onAuthError=()=>{this._setAuthenticated(!1)},this._keycloak.onAuthRefreshError=()=>{console.debug("Keycloak failed to refresh the access token."),this._setAuthDisconnected(!0)};const i=yield this._getNativeOfflineRefreshToken(),n=yield this._keycloak.init({checkLoginIframe:!1,onLoad:this._config.autoLogin?"login-required":"check-sso",refreshToken:i});return n&&(this._name=null===(e=this._keycloak.tokenParsed)||void 0===e?void 0:e.name,this._username=null===(t=this._keycloak.tokenParsed)||void 0===t?void 0:t.preferred_username,this._keycloakUpdateTokenInterval&&(clearInterval(this._keycloakUpdateTokenInterval),delete this._keycloakUpdateTokenInterval),this._keycloakUpdateTokenInterval=window.setInterval((()=>{this._authDisconnected||this.updateKeycloakAccessToken().catch((()=>{console.error("Could not update keycloak access token during regular interval.")}))}),1e4),this._onAuthenticated()),this._setAuthenticated(n),!0}catch(e){return this._setAuthenticated(!1),this._setError(ORError.AUTH_FAILED),console.error("Failed to initialise Keycloak: "+e),!1}}))}updateKeycloakAccessToken(){return __awaiter(this,void 0,void 0,(function*(){const e=this._keycloak.updateToken(30);let t;return e.then((e=>{console.debug("Access token update success, refreshed from server: "+e)})).catch((()=>{console.error("Access token update failed."),this._setAuthDisconnected(!0)})),Promise.race([e,new Promise(((e,i)=>t=setTimeout(i,15e3)))]).finally((()=>clearTimeout(t)))}))}_getNativeOfflineRefreshToken(){return __awaiter(this,void 0,void 0,(function*(){if(this.console&&this.console.isMobile)return yield this.console.retrieveData("REFRESH_TOKEN")}))}_emitEvent(e){window.setTimeout((()=>{const t=this._listeners;for(const i of t)i(e)}),0)}_setError(e){this._error=e,this._emitEvent(OREvent.ERROR),console.log("Error set: "+e)}_setAuthenticated(e){this._authenticated=e,this._events&&this._events.disconnect(),this._events||this.doEventsSubscriptionInit()}_setAuthDisconnected(e,t=!1){(this._authDisconnected!==e||t)&&(console.debug("Authentication service status changed: "+(e?"DISCONNECTED":"CONNECTED")),e?(this._authDisconnected=!0,this._runAuthReconnectTimer(),this._emitEvent(OREvent.OFFLINE)):(this._authDisconnected=!1,this._eventsDisconnected?this._tryReconnectEvents():this._emitEvent(OREvent.ONLINE)))}_setEventDisconnected(e,t=!1){(this._eventsDisconnected!==e||t)&&(console.debug("EventProvider status changed: "+(e?"DISCONNECTED":"CONNECTED")),e?(this._eventsDisconnected=!0,this._emitEvent(OREvent.OFFLINE),this.isTokenExpired()&&!this._authDisconnected&&this._tryUpdateAccessToken().then((e=>{e||this._setAuthDisconnected(!1,!0)}))):(this._eventsDisconnected=!1,this._authDisconnected?this._runAuthReconnectTimer():this._emitEvent(OREvent.ONLINE)))}}export const manager=new Manager;export default manager;