@illgrenoble/webx-client 1.12.0 → 1.13.0

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 (177) hide show
  1. package/README.md +0 -2
  2. package/dist/WebXClient.d.ts +4 -2
  3. package/dist/WebXEngine.d.ts +4 -0
  4. package/dist/WebXOptions.d.ts +7 -0
  5. package/dist/display/WebXDisplay.d.ts +6 -2
  6. package/dist/display/WebXDisplayOptions.d.ts +16 -0
  7. package/dist/display/WebXDisplayOverlay.d.ts +38 -0
  8. package/dist/display/WebXMaterial.d.ts +56 -0
  9. package/dist/display/filter/WebXCRTFilterMaterial.d.ts +36 -0
  10. package/dist/display/filter/WebXFilter.d.ts +55 -0
  11. package/dist/display/filter/WebXFilterFactory.d.ts +31 -0
  12. package/dist/display/filter/WebXFilterMaterial.d.ts +41 -0
  13. package/dist/display/filter/WebXTestFilterMaterial.d.ts +41 -0
  14. package/dist/display/filter/index.d.ts +5 -0
  15. package/dist/display/index.d.ts +1 -0
  16. package/dist/index.d.ts +1 -0
  17. package/dist/renderer/WebXCanvasRenderer.d.ts +0 -1
  18. package/dist/texture/WebXTexture.d.ts +53 -4
  19. package/dist/texture/WebXTextureFactory.d.ts +1 -2
  20. package/dist/webx-client.cjs +1 -5391
  21. package/dist/webx-client.esm.js +1 -5322
  22. package/package.json +4 -3
  23. package/dist/GuacamoleKeyboard.js +0 -1551
  24. package/dist/WebXClient.js +0 -513
  25. package/dist/WebXClient.js.map +0 -1
  26. package/dist/WebXConnectionHandler.js +0 -96
  27. package/dist/WebXConnectionHandler.js.map +0 -1
  28. package/dist/WebXEngine.js +0 -7
  29. package/dist/WebXEngine.js.map +0 -1
  30. package/dist/display/WebXCursor.js +0 -139
  31. package/dist/display/WebXCursor.js.map +0 -1
  32. package/dist/display/WebXCursorFactory.js +0 -59
  33. package/dist/display/WebXCursorFactory.js.map +0 -1
  34. package/dist/display/WebXDisplay.js +0 -507
  35. package/dist/display/WebXDisplay.js.map +0 -1
  36. package/dist/display/WebXDisplayOverlay.js +0 -31
  37. package/dist/display/WebXDisplayOverlay.js.map +0 -1
  38. package/dist/display/WebXMaterial.js +0 -142
  39. package/dist/display/WebXMaterial.js.map +0 -1
  40. package/dist/display/WebXSubImage.d.ts +0 -50
  41. package/dist/display/WebXSubImage.js +0 -26
  42. package/dist/display/WebXSubImage.js.map +0 -1
  43. package/dist/display/WebXTexture.d.ts +0 -6
  44. package/dist/display/WebXTextureFactory.d.ts +0 -54
  45. package/dist/display/WebXTextureFactory.js +0 -160
  46. package/dist/display/WebXTextureFactory.js.map +0 -1
  47. package/dist/display/WebXTextureFunc.d.ts +0 -3
  48. package/dist/display/WebXWindow.js +0 -478
  49. package/dist/display/WebXWindow.js.map +0 -1
  50. package/dist/display/WebXWindowProperties.d.ts +0 -44
  51. package/dist/display/WebXWindowProperties.js +0 -25
  52. package/dist/display/WebXWindowProperties.js.map +0 -1
  53. package/dist/display/index.js +0 -24
  54. package/dist/display/index.js.map +0 -1
  55. package/dist/index.js +0 -25
  56. package/dist/index.js.map +0 -1
  57. package/dist/input/GuacamoleKeyboard.js +0 -1551
  58. package/dist/input/WebXKeyboard.js +0 -44
  59. package/dist/input/WebXKeyboard.js.map +0 -1
  60. package/dist/input/WebXMouse.js +0 -231
  61. package/dist/input/WebXMouse.js.map +0 -1
  62. package/dist/input/index.js +0 -20
  63. package/dist/input/index.js.map +0 -1
  64. package/dist/input/mouse/WebXMouseState.js +0 -217
  65. package/dist/input/mouse/WebXMouseState.js.map +0 -1
  66. package/dist/input/mouse/index.js +0 -18
  67. package/dist/input/mouse/index.js.map +0 -1
  68. package/dist/instruction/WebXClipboardInstruction.js +0 -23
  69. package/dist/instruction/WebXClipboardInstruction.js.map +0 -1
  70. package/dist/instruction/WebXConnectInstruction.js +0 -24
  71. package/dist/instruction/WebXConnectInstruction.js.map +0 -1
  72. package/dist/instruction/WebXCursorImageInstruction.js +0 -23
  73. package/dist/instruction/WebXCursorImageInstruction.js.map +0 -1
  74. package/dist/instruction/WebXDataAckInstruction.js +0 -26
  75. package/dist/instruction/WebXDataAckInstruction.js.map +0 -1
  76. package/dist/instruction/WebXImageInstruction.js +0 -23
  77. package/dist/instruction/WebXImageInstruction.js.map +0 -1
  78. package/dist/instruction/WebXInstruction.js +0 -28
  79. package/dist/instruction/WebXInstruction.js.map +0 -1
  80. package/dist/instruction/WebXInstructionResponse.js +0 -78
  81. package/dist/instruction/WebXInstructionResponse.js.map +0 -1
  82. package/dist/instruction/WebXInstructionType.js +0 -96
  83. package/dist/instruction/WebXInstructionType.js.map +0 -1
  84. package/dist/instruction/WebXKeyboardInstruction.js +0 -25
  85. package/dist/instruction/WebXKeyboardInstruction.js.map +0 -1
  86. package/dist/instruction/WebXMouseInstruction.js +0 -27
  87. package/dist/instruction/WebXMouseInstruction.js.map +0 -1
  88. package/dist/instruction/WebXPongInstruction.js +0 -23
  89. package/dist/instruction/WebXPongInstruction.js.map +0 -1
  90. package/dist/instruction/WebXQualityInstruction.js +0 -24
  91. package/dist/instruction/WebXQualityInstruction.js.map +0 -1
  92. package/dist/instruction/WebXScreenInstruction.js +0 -20
  93. package/dist/instruction/WebXScreenInstruction.js.map +0 -1
  94. package/dist/instruction/WebXShapeInstruction.js +0 -23
  95. package/dist/instruction/WebXShapeInstruction.js.map +0 -1
  96. package/dist/instruction/WebXWindowsInstruction.js +0 -21
  97. package/dist/instruction/WebXWindowsInstruction.js.map +0 -1
  98. package/dist/instruction/index.js +0 -32
  99. package/dist/instruction/index.js.map +0 -1
  100. package/dist/message/WebXClipboardMessage.js +0 -23
  101. package/dist/message/WebXClipboardMessage.js.map +0 -1
  102. package/dist/message/WebXConnectionMessage.js +0 -21
  103. package/dist/message/WebXConnectionMessage.js.map +0 -1
  104. package/dist/message/WebXCursorImageMessage.js +0 -35
  105. package/dist/message/WebXCursorImageMessage.js.map +0 -1
  106. package/dist/message/WebXImageMessage.js +0 -33
  107. package/dist/message/WebXImageMessage.js.map +0 -1
  108. package/dist/message/WebXMessage.js +0 -23
  109. package/dist/message/WebXMessage.js.map +0 -1
  110. package/dist/message/WebXMessageType.js +0 -64
  111. package/dist/message/WebXMessageType.js.map +0 -1
  112. package/dist/message/WebXMouseMessage.js +0 -29
  113. package/dist/message/WebXMouseMessage.js.map +0 -1
  114. package/dist/message/WebXNopMessage.js +0 -18
  115. package/dist/message/WebXNopMessage.js.map +0 -1
  116. package/dist/message/WebXPingMessage.js +0 -21
  117. package/dist/message/WebXPingMessage.js.map +0 -1
  118. package/dist/message/WebXQualityMessage.js +0 -32
  119. package/dist/message/WebXQualityMessage.js.map +0 -1
  120. package/dist/message/WebXScreenMessage.js +0 -29
  121. package/dist/message/WebXScreenMessage.js.map +0 -1
  122. package/dist/message/WebXShapeMessage.js +0 -29
  123. package/dist/message/WebXShapeMessage.js.map +0 -1
  124. package/dist/message/WebXSubImagesMessage.js +0 -29
  125. package/dist/message/WebXSubImagesMessage.js.map +0 -1
  126. package/dist/message/WebXWindowsMessage.js +0 -25
  127. package/dist/message/WebXWindowsMessage.js.map +0 -1
  128. package/dist/message/index.js +0 -31
  129. package/dist/message/index.js.map +0 -1
  130. package/dist/renderer/WebXAlphaStencilBlender.d.ts +0 -30
  131. package/dist/renderer/WebXAlphaStencilBlender.js +0 -136
  132. package/dist/renderer/WebXAlphaStencilBlender.js.map +0 -1
  133. package/dist/renderer/WebXCanvasRenderer.js +0 -190
  134. package/dist/renderer/WebXCanvasRenderer.js.map +0 -1
  135. package/dist/renderer/WebXImageBlenderFunc.d.ts +0 -8
  136. package/dist/renderer/WebXWindowCanvas.js +0 -312
  137. package/dist/renderer/WebXWindowCanvas.js.map +0 -1
  138. package/dist/renderer/index.js +0 -20
  139. package/dist/renderer/index.js.map +0 -1
  140. package/dist/tracer/WebXDebugImageMessageHandler.js +0 -102
  141. package/dist/tracer/WebXDebugImageMessageHandler.js.map +0 -1
  142. package/dist/tracer/WebXHandler.js +0 -3
  143. package/dist/tracer/WebXHandler.js.map +0 -1
  144. package/dist/tracer/WebXInstructionHandler.js +0 -13
  145. package/dist/tracer/WebXInstructionHandler.js.map +0 -1
  146. package/dist/tracer/WebXMessageHandler.js +0 -13
  147. package/dist/tracer/WebXMessageHandler.js.map +0 -1
  148. package/dist/tracer/WebXStatsHandler.js +0 -13
  149. package/dist/tracer/WebXStatsHandler.js.map +0 -1
  150. package/dist/tracer/index.js +0 -22
  151. package/dist/tracer/index.js.map +0 -1
  152. package/dist/transport/WebXBinarySerializer.js +0 -63
  153. package/dist/transport/WebXBinarySerializer.js.map +0 -1
  154. package/dist/transport/WebXInstructionBuffer.js +0 -109
  155. package/dist/transport/WebXInstructionBuffer.js.map +0 -1
  156. package/dist/transport/WebXInstructionEncoder.js +0 -294
  157. package/dist/transport/WebXInstructionEncoder.js.map +0 -1
  158. package/dist/transport/WebXMessageBuffer.js +0 -104
  159. package/dist/transport/WebXMessageBuffer.js.map +0 -1
  160. package/dist/transport/WebXMessageDecoder.js +0 -333
  161. package/dist/transport/WebXMessageDecoder.js.map +0 -1
  162. package/dist/transport/index.js +0 -22
  163. package/dist/transport/index.js.map +0 -1
  164. package/dist/tunnel/WebXTunnel.js +0 -156
  165. package/dist/tunnel/WebXTunnel.js.map +0 -1
  166. package/dist/tunnel/WebXWebSocketTunnel.js +0 -88
  167. package/dist/tunnel/WebXWebSocketTunnel.js.map +0 -1
  168. package/dist/tunnel/index.js +0 -19
  169. package/dist/tunnel/index.js.map +0 -1
  170. package/dist/utils/WebXColorGenerator.js +0 -46
  171. package/dist/utils/WebXColorGenerator.js.map +0 -1
  172. package/dist/utils/WebXVersion.js +0 -25
  173. package/dist/utils/WebXVersion.js.map +0 -1
  174. package/dist/utils/index.js +0 -19
  175. package/dist/utils/index.js.map +0 -1
  176. package/dist/webx-client.cjs.map +0 -1
  177. package/dist/webx-client.esm.js.map +0 -1
@@ -1,64 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WebXMessageType = void 0;
4
- /**
5
- * Enum representing the types of WebX messages.
6
- *
7
- * These types are used to categorize messages received from the WebX Engine.
8
- */
9
- var WebXMessageType;
10
- (function (WebXMessageType) {
11
- /**
12
- * Message indicating no operation.
13
- */
14
- WebXMessageType[WebXMessageType["NOP"] = 0] = "NOP";
15
- /**
16
- * Message indicating a connection event (handled by the WebX Relay).
17
- */
18
- WebXMessageType[WebXMessageType["CONNECTION"] = 1] = "CONNECTION";
19
- /**
20
- * Message containing information about visible windows.
21
- */
22
- WebXMessageType[WebXMessageType["WINDOWS"] = 2] = "WINDOWS";
23
- /**
24
- * Message containing image data for a window.
25
- */
26
- WebXMessageType[WebXMessageType["IMAGE"] = 3] = "IMAGE";
27
- /**
28
- * Message containing screen information.
29
- */
30
- WebXMessageType[WebXMessageType["SCREEN"] = 4] = "SCREEN";
31
- /**
32
- * Message containing sub-image data for a window.
33
- */
34
- WebXMessageType[WebXMessageType["SUBIMAGES"] = 5] = "SUBIMAGES";
35
- /**
36
- * Message containing mouse state updates.
37
- */
38
- WebXMessageType[WebXMessageType["MOUSE"] = 6] = "MOUSE";
39
- /**
40
- * Message containing cursor image data.
41
- */
42
- WebXMessageType[WebXMessageType["CURSOR_IMAGE"] = 7] = "CURSOR_IMAGE";
43
- /**
44
- * Ping message for connection health checks.
45
- */
46
- WebXMessageType[WebXMessageType["PING"] = 8] = "PING";
47
- /**
48
- * Message indicating a disconnection event (handled by the WebX Relay).
49
- */
50
- WebXMessageType[WebXMessageType["DISCONNECT"] = 9] = "DISCONNECT";
51
- /**
52
- * Message containing quality-related information.
53
- */
54
- WebXMessageType[WebXMessageType["QUALITY"] = 10] = "QUALITY";
55
- /**
56
- * Message containing current clipboard content.
57
- */
58
- WebXMessageType[WebXMessageType["CLIPBOARD"] = 11] = "CLIPBOARD";
59
- /**
60
- * Message containing window shape information (stencil image).
61
- */
62
- WebXMessageType[WebXMessageType["SHAPE"] = 12] = "SHAPE";
63
- })(WebXMessageType || (exports.WebXMessageType = WebXMessageType = {}));
64
- //# sourceMappingURL=WebXMessageType.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WebXMessageType.js","sourceRoot":"","sources":["../../src/message/WebXMessageType.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,IAAY,eAkEX;AAlED,WAAY,eAAe;IAEzB;;OAEG;IACH,mDAAO,CAAA;IAEP;;OAEG;IACH,iEAAc,CAAA;IAEd;;OAEG;IACH,2DAAW,CAAA;IAEX;;OAEG;IACH,uDAAS,CAAA;IAET;;OAEG;IACH,yDAAU,CAAA;IAEV;;OAEG;IACH,+DAAa,CAAA;IAEb;;OAEG;IACH,uDAAS,CAAA;IAET;;OAEG;IACH,qEAAgB,CAAA;IAEhB;;OAEG;IACH,qDAAQ,CAAA;IAER;;OAEG;IACH,iEAAc,CAAA;IAEd;;OAEG;IACH,4DAAY,CAAA;IAEZ;;OAEG;IACH,gEAAc,CAAA;IAEd;;OAEG;IACH,wDAAU,CAAA;AACZ,CAAC,EAlEW,eAAe,+BAAf,eAAe,QAkE1B"}
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WebXMouseMessage = void 0;
4
- const WebXMessage_1 = require("./WebXMessage");
5
- const WebXMessageType_1 = require("./WebXMessageType");
6
- /**
7
- * Represents a message containing mouse state updates.
8
- *
9
- * This message is received from the WebX Engine and contains details about
10
- * the mouse position and cursor ID.
11
- */
12
- class WebXMouseMessage extends WebXMessage_1.WebXMessage {
13
- /**
14
- * Constructs a new WebXMouseMessage.
15
- *
16
- * @param x The x-coordinate of the mouse pointer.
17
- * @param y The y-coordinate of the mouse pointer.
18
- * @param cursorId The ID of the cursor.
19
- * @param commandId The ID of the command associated with this message.
20
- */
21
- constructor(x, y, cursorId, commandId) {
22
- super(WebXMessageType_1.WebXMessageType.MOUSE, commandId);
23
- this.x = x;
24
- this.y = y;
25
- this.cursorId = cursorId;
26
- }
27
- }
28
- exports.WebXMouseMessage = WebXMouseMessage;
29
- //# sourceMappingURL=WebXMouseMessage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WebXMouseMessage.js","sourceRoot":"","sources":["../../src/message/WebXMouseMessage.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAC5C,uDAAoD;AAEpD;;;;;GAKG;AACH,MAAa,gBAAiB,SAAQ,yBAAW;IAgB/C;;;;;;;OAOG;IACH,YAAY,CAAS,EAAE,CAAS,EAAE,QAAgB,EAAE,SAAiB;QACnE,KAAK,CAAC,iCAAe,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACxC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AA9BD,4CA8BC"}
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WebXNopMessage = void 0;
4
- const WebXMessage_1 = require("./WebXMessage");
5
- const WebXMessageType_1 = require("./WebXMessageType");
6
- /**
7
- * Represents a no-operation message: has no effect.
8
- */
9
- class WebXNopMessage extends WebXMessage_1.WebXMessage {
10
- /**
11
- * Constructs a new WebXNopMessage.
12
- */
13
- constructor() {
14
- super(WebXMessageType_1.WebXMessageType.NOP);
15
- }
16
- }
17
- exports.WebXNopMessage = WebXNopMessage;
18
- //# sourceMappingURL=WebXNopMessage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WebXNopMessage.js","sourceRoot":"","sources":["../../src/message/WebXNopMessage.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAC5C,uDAAoD;AAEpD;;GAEG;AACH,MAAa,cAAe,SAAQ,yBAAW;IAE7C;;OAEG;IACH;QACE,KAAK,CAAC,iCAAe,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF;AARD,wCAQC"}
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WebXPingMessage = void 0;
4
- const WebXMessage_1 = require("./WebXMessage");
5
- const WebXMessageType_1 = require("./WebXMessageType");
6
- /**
7
- * Represents a ping message for connection health checks.
8
- *
9
- * This message is sent by the WebX Engine to ensure the connection is active. The client responds with
10
- * an WebXPongInstruction.
11
- */
12
- class WebXPingMessage extends WebXMessage_1.WebXMessage {
13
- /**
14
- * Constructs a new WebXPingMessage.
15
- */
16
- constructor() {
17
- super(WebXMessageType_1.WebXMessageType.PING);
18
- }
19
- }
20
- exports.WebXPingMessage = WebXPingMessage;
21
- //# sourceMappingURL=WebXPingMessage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WebXPingMessage.js","sourceRoot":"","sources":["../../src/message/WebXPingMessage.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAC5C,uDAAoD;AAEpD;;;;;GAKG;AACH,MAAa,eAAgB,SAAQ,yBAAW;IAC9C;;OAEG;IACH;QACE,KAAK,CAAC,iCAAe,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;CACF;AAPD,0CAOC"}
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WebXQualityMessage = void 0;
4
- const WebXMessage_1 = require("./WebXMessage");
5
- const WebXMessageType_1 = require("./WebXMessageType");
6
- /**
7
- * Represents a message containing quality-related information.
8
- *
9
- * This message is received from the WebX Engine and contains details about
10
- * the quality settings.
11
- */
12
- class WebXQualityMessage extends WebXMessage_1.WebXMessage {
13
- /**
14
- * Constructs a new WebXQualityMessage.
15
- *
16
- * @param index The quality index.
17
- * @param imageFPS The frames per second for image rendering.
18
- * @param rgbQuality The quality level for RGB data.
19
- * @param alphaQuality The quality level for alpha data.
20
- * @param maxMbps The maximum bandwidth in Mbps.
21
- */
22
- constructor(index, imageFPS, rgbQuality, alphaQuality, maxMbps) {
23
- super(WebXMessageType_1.WebXMessageType.QUALITY);
24
- this.index = index;
25
- this.imageFPS = imageFPS;
26
- this.rgbQuality = rgbQuality;
27
- this.alphaQuality = alphaQuality;
28
- this.maxMbps = maxMbps;
29
- }
30
- }
31
- exports.WebXQualityMessage = WebXQualityMessage;
32
- //# sourceMappingURL=WebXQualityMessage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WebXQualityMessage.js","sourceRoot":"","sources":["../../src/message/WebXQualityMessage.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAC5C,uDAAoD;AAEpD;;;;;GAKG;AACH,MAAa,kBAAmB,SAAQ,yBAAW;IA0BjD;;;;;;;;OAQG;IACH,YAAY,KAAa,EAAE,QAAgB,EAAE,UAAkB,EAAE,YAAoB,EAAE,OAAe;QACpG,KAAK,CAAC,iCAAe,CAAC,OAAO,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AA3CD,gDA2CC"}
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WebXScreenMessage = void 0;
4
- const WebXMessage_1 = require("./WebXMessage");
5
- const WebXMessageType_1 = require("./WebXMessageType");
6
- /**
7
- * Represents a message containing screen information.
8
- *
9
- * This message is received from the WebX Engine and contains details about
10
- * the screen size.
11
- */
12
- class WebXScreenMessage extends WebXMessage_1.WebXMessage {
13
- /**
14
- * Constructs a new WebXScreenMessage.
15
- *
16
- * @param screenSize The size of the screen.
17
- * @param maxQualityIndex The maximum quality index for the display.
18
- * @param engineVersion The version of the WebX Engine.
19
- * @param commandId The ID of the command associated with this message.
20
- */
21
- constructor(screenSize, maxQualityIndex, engineVersion, commandId) {
22
- super(WebXMessageType_1.WebXMessageType.SCREEN, commandId);
23
- this.screenSize = screenSize;
24
- this.maxQualityIndex = maxQualityIndex;
25
- this.engineVersion = engineVersion;
26
- }
27
- }
28
- exports.WebXScreenMessage = WebXScreenMessage;
29
- //# sourceMappingURL=WebXScreenMessage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WebXScreenMessage.js","sourceRoot":"","sources":["../../src/message/WebXScreenMessage.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAC5C,uDAAoD;AAGpD;;;;;GAKG;AACH,MAAa,iBAAkB,SAAQ,yBAAW;IAiBhD;;;;;;;OAOG;IACH,YAAY,UAA6C,EAAE,eAAsB,EAAE,aAA0B,EAAE,SAAiB;QAC9H,KAAK,CAAC,iCAAe,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;CACF;AA/BD,8CA+BC"}
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WebXShapeMessage = void 0;
4
- const WebXMessage_1 = require("./WebXMessage");
5
- const WebXMessageType_1 = require("./WebXMessageType");
6
- /**
7
- * Represents a message containing image data for a window.
8
- *
9
- * This message is received from the WebX Engine and contains the color and
10
- * alpha textures for a specific window.
11
- */
12
- class WebXShapeMessage extends WebXMessage_1.WebXMessage {
13
- /**
14
- * Constructs a new WebXImageMessage.
15
- *
16
- * @param windowId The ID of the window.
17
- * @param stencilMap The stencil texture.
18
- * @param commandId The ID of the command associated with this message.
19
- * @param size The size of the image.
20
- */
21
- constructor(windowId, stencilMap, commandId, size) {
22
- super(WebXMessageType_1.WebXMessageType.SHAPE, commandId);
23
- this.windowId = windowId;
24
- this.stencilMap = stencilMap;
25
- this.size = size;
26
- }
27
- }
28
- exports.WebXShapeMessage = WebXShapeMessage;
29
- //# sourceMappingURL=WebXShapeMessage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WebXShapeMessage.js","sourceRoot":"","sources":["../../src/message/WebXShapeMessage.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAC5C,uDAAoD;AAGpD;;;;;GAKG;AACH,MAAa,gBAAiB,SAAQ,yBAAW;IAgB/C;;;;;;;OAOG;IACH,YAAY,QAAgB,EAAE,UAAmB,EAAE,SAAiB,EAAE,IAAY;QAChF,KAAK,CAAC,iCAAe,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AA9BD,4CA8BC"}
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WebXSubImagesMessage = void 0;
4
- const WebXMessage_1 = require("./WebXMessage");
5
- const WebXMessageType_1 = require("./WebXMessageType");
6
- /**
7
- * Represents a message containing sub-image data for a window.
8
- *
9
- * This message is received from the WebX Engine and contains a list of
10
- * sub-images that should be updated.
11
- */
12
- class WebXSubImagesMessage extends WebXMessage_1.WebXMessage {
13
- /**
14
- * Constructs a new WebXSubImagesMessage.
15
- *
16
- * @param windowId The ID of the window.
17
- * @param subImages The list of sub-images.
18
- * @param commandId The ID of the command associated with this message.
19
- * @param size The size of the message in bytes.
20
- */
21
- constructor(windowId, subImages, commandId, size) {
22
- super(WebXMessageType_1.WebXMessageType.SUBIMAGES, commandId);
23
- this.windowId = windowId;
24
- this.subImages = subImages;
25
- this.size = size;
26
- }
27
- }
28
- exports.WebXSubImagesMessage = WebXSubImagesMessage;
29
- //# sourceMappingURL=WebXSubImagesMessage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WebXSubImagesMessage.js","sourceRoot":"","sources":["../../src/message/WebXSubImagesMessage.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAC5C,uDAAoD;AAGpD;;;;;GAKG;AACH,MAAa,oBAAqB,SAAQ,yBAAW;IAgBnD;;;;;;;OAOG;IACH,YAAY,QAAgB,EAAE,SAA8B,EAAE,SAAiB,EAAE,IAAY;QAC3F,KAAK,CAAC,iCAAe,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AA9BD,oDA8BC"}
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WebXWindowsMessage = void 0;
4
- const WebXMessage_1 = require("./WebXMessage");
5
- const WebXMessageType_1 = require("./WebXMessageType");
6
- /**
7
- * Represents a message containing information about visible windows.
8
- *
9
- * This message is received from the WebX Engine and contains details about
10
- * all currently visible windows.
11
- */
12
- class WebXWindowsMessage extends WebXMessage_1.WebXMessage {
13
- /**
14
- * Constructs a new WebXWindowsMessage.
15
- *
16
- * @param windows The list of visible windows.
17
- * @param commandId The ID of the command associated with this message.
18
- */
19
- constructor(windows, commandId) {
20
- super(WebXMessageType_1.WebXMessageType.WINDOWS, commandId);
21
- this.windows = windows;
22
- }
23
- }
24
- exports.WebXWindowsMessage = WebXWindowsMessage;
25
- //# sourceMappingURL=WebXWindowsMessage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WebXWindowsMessage.js","sourceRoot":"","sources":["../../src/message/WebXWindowsMessage.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAC5C,uDAAoD;AAGpD;;;;;GAKG;AACH,MAAa,kBAAmB,SAAQ,yBAAW;IAMjD;;;;;OAKG;IACH,YAAY,OAAoC,EAAE,SAAiB;QACjE,KAAK,CAAC,iCAAe,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAhBD,gDAgBC"}
@@ -1,31 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./WebXMessage"), exports);
18
- __exportStar(require("./WebXMessageType"), exports);
19
- __exportStar(require("./WebXScreenMessage"), exports);
20
- __exportStar(require("./WebXWindowsMessage"), exports);
21
- __exportStar(require("./WebXImageMessage"), exports);
22
- __exportStar(require("./WebXSubImagesMessage"), exports);
23
- __exportStar(require("./WebXMouseMessage"), exports);
24
- __exportStar(require("./WebXCursorImageMessage"), exports);
25
- __exportStar(require("./WebXPingMessage"), exports);
26
- __exportStar(require("./WebXQualityMessage"), exports);
27
- __exportStar(require("./WebXClipboardMessage"), exports);
28
- __exportStar(require("./WebXConnectionMessage"), exports);
29
- __exportStar(require("./WebXNopMessage"), exports);
30
- __exportStar(require("./WebXShapeMessage"), exports);
31
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/message/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,oDAAkC;AAClC,sDAAoC;AACpC,uDAAqC;AACrC,qDAAmC;AACnC,yDAAuC;AACvC,qDAAmC;AACnC,2DAAyC;AACzC,oDAAkC;AAClC,uDAAqC;AACrC,yDAAuC;AACvC,0DAAwC;AACxC,mDAAiC;AACjC,qDAAmC"}
@@ -1,30 +0,0 @@
1
- /**
2
- * The `WebXAlphaStencilBlender` class handles blending of alpha and stencil data
3
- * for rendering purposes. It uses a Web Worker for asynchronous processing.
4
- */
5
- export declare class WebXAlphaStencilBlender {
6
- private readonly _worker;
7
- private _pending;
8
- private _nextId;
9
- /**
10
- * Initializes the `WebXAlphaStencilBlender` and sets up the Web Worker (if web-workers present on the client).
11
- * The web worker is initialised from the worker/blending functions above. Each blending request is assigned an id.
12
- * The data is passed to the web worker along with the Id. The web worker returns the Id with blended data so that the
13
- * calling promise can be resolved.
14
- */
15
- constructor();
16
- /**
17
- * Blends alpha and stencil data asynchronously.
18
- * Main entry point to blend the different buffers. If a web-worker is available on the client then the data is prepared to transfer
19
- * to the worker. Otherwise the standard blending function is called immediately.
20
- * @param colorImageData - The color image data.
21
- * @param alphaImageData - The alpha image data.
22
- * @param stencilImageData - The stencil image data.
23
- * @returns A promise that resolves to the blended `ImageData`.
24
- */
25
- blendAlphaAndStencil(colorImageData: ImageData, alphaImageData: ImageData, stencilImageData: ImageData): Promise<ImageData>;
26
- /**
27
- * Terminates the Web Worker and clears pending tasks.
28
- */
29
- terminate(): void;
30
- }
@@ -1,136 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.WebXAlphaStencilBlender = void 0;
13
- /**
14
- * The Alpha and stencil buffer blending function. The alpha buffer contains alpha data in the
15
- * green channel. The stencil buffer is a black and white image: only pixels with a stencil value > 127 are to be rendered
16
- * @param colorData the color data array
17
- * @param alphaData the alpha data array
18
- * @param stencilData the stencil data array
19
- */
20
- function alphaAndStencilBlend(colorData, alphaData, stencilData) {
21
- if (alphaData && stencilData) {
22
- for (let i = 0; i < colorData.length; i += 4) {
23
- if (stencilData[i] < 128) {
24
- colorData[i + 3] = 0;
25
- }
26
- else {
27
- colorData[i + 3] = alphaData[i + 1];
28
- }
29
- }
30
- }
31
- else if (alphaData) {
32
- for (let i = 0; i < colorData.length; i += 4) {
33
- colorData[i + 3] = alphaData[i + 1];
34
- }
35
- }
36
- else if (stencilData) {
37
- for (let i = 0; i < colorData.length; i += 4) {
38
- colorData[i + 3] = stencilData[i] < 128 ? 0 : 255;
39
- }
40
- }
41
- }
42
- /**
43
- * The entry point for the web worker. Receives messages with data for color, alpha and stencil data and calls the blending
44
- * function.
45
- */
46
- function alphaWorkerFunc() {
47
- self.onmessage = (e) => {
48
- const { id, colorBuffer, alphaBuffer, stencilBuffer, width, height } = e.data;
49
- const colorData = new Uint8ClampedArray(colorBuffer);
50
- const alphaData = alphaBuffer ? new Uint8ClampedArray(alphaBuffer) : null;
51
- const stencilData = stencilBuffer ? new Uint8ClampedArray(stencilBuffer) : null;
52
- alphaAndStencilBlend(colorData, alphaData, stencilData);
53
- // @ts-ignore
54
- self.postMessage({ id, colorBuffer: colorData.buffer, width, height }, [colorData.buffer]);
55
- };
56
- }
57
- /**
58
- * The `WebXAlphaStencilBlender` class handles blending of alpha and stencil data
59
- * for rendering purposes. It uses a Web Worker for asynchronous processing.
60
- */
61
- class WebXAlphaStencilBlender {
62
- /**
63
- * Initializes the `WebXAlphaStencilBlender` and sets up the Web Worker (if web-workers present on the client).
64
- * The web worker is initialised from the worker/blending functions above. Each blending request is assigned an id.
65
- * The data is passed to the web worker along with the Id. The web worker returns the Id with blended data so that the
66
- * calling promise can be resolved.
67
- */
68
- constructor() {
69
- this._pending = new Map();
70
- this._nextId = 1;
71
- if (typeof Worker !== 'undefined') {
72
- const blob = new Blob([alphaAndStencilBlend.toString(), '(', alphaWorkerFunc.toString(), ')()'], { type: 'application/javascript' });
73
- const blobUrl = URL.createObjectURL(blob);
74
- this._worker = new Worker(blobUrl);
75
- URL.revokeObjectURL(blobUrl);
76
- this._worker.onmessage = (e) => {
77
- const { id, colorBuffer, width, height } = e.data;
78
- const callback = this._pending.get(id);
79
- if (!callback)
80
- return;
81
- this._pending.delete(id);
82
- // Recreate ImageData from transferred buffer
83
- const blendedData = new Uint8ClampedArray(colorBuffer);
84
- const blendedImageData = new ImageData(blendedData, width, height);
85
- callback(blendedImageData);
86
- };
87
- }
88
- }
89
- /**
90
- * Blends alpha and stencil data asynchronously.
91
- * Main entry point to blend the different buffers. If a web-worker is available on the client then the data is prepared to transfer
92
- * to the worker. Otherwise the standard blending function is called immediately.
93
- * @param colorImageData - The color image data.
94
- * @param alphaImageData - The alpha image data.
95
- * @param stencilImageData - The stencil image data.
96
- * @returns A promise that resolves to the blended `ImageData`.
97
- */
98
- blendAlphaAndStencil(colorImageData, alphaImageData, stencilImageData) {
99
- return __awaiter(this, void 0, void 0, function* () {
100
- return new Promise((resolve) => {
101
- if (this._worker) {
102
- const id = this._nextId++;
103
- this._pending.set(id, resolve);
104
- const width = colorImageData.width;
105
- const height = colorImageData.height;
106
- const colorBuffer = colorImageData.data.buffer;
107
- let alphaBuffer = null;
108
- let stencilBuffer = null;
109
- const transfers = [colorBuffer];
110
- if (alphaImageData) {
111
- alphaBuffer = alphaImageData.data.buffer;
112
- transfers.push(alphaBuffer);
113
- }
114
- if (stencilImageData) {
115
- stencilBuffer = stencilImageData.data.buffer;
116
- transfers.push(stencilBuffer);
117
- }
118
- this._worker.postMessage({ id, colorBuffer, alphaBuffer, stencilBuffer, width, height }, transfers);
119
- }
120
- else {
121
- alphaAndStencilBlend(colorImageData.data, alphaImageData === null || alphaImageData === void 0 ? void 0 : alphaImageData.data, stencilImageData === null || stencilImageData === void 0 ? void 0 : stencilImageData.data);
122
- resolve(colorImageData);
123
- }
124
- });
125
- });
126
- }
127
- /**
128
- * Terminates the Web Worker and clears pending tasks.
129
- */
130
- terminate() {
131
- this._worker.terminate();
132
- this._pending.clear();
133
- }
134
- }
135
- exports.WebXAlphaStencilBlender = WebXAlphaStencilBlender;
136
- //# sourceMappingURL=WebXAlphaStencilBlender.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WebXAlphaStencilBlender.js","sourceRoot":"","sources":["../../src/renderer/WebXAlphaStencilBlender.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;GAMG;AACH,SAAS,oBAAoB,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW;IAC7D,IAAI,SAAS,IAAI,WAAW,EAAE,CAAC;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7C,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC;gBACzB,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YAEvB,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;IAEH,CAAC;SAAM,IAAI,SAAS,EAAE,CAAC;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7C,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACtC,CAAC;IAEH,CAAC;SAAM,IAAI,WAAW,EAAE,CAAC;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7C,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACpD,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe;IACtB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,EAAE;QACrB,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC;QAC9E,MAAM,SAAS,GAAG,IAAI,iBAAiB,CAAC,WAAW,CAAC,CAAC;QACrD,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1E,MAAM,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEhF,oBAAoB,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAExD,aAAa;QACb,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7F,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAa,uBAAuB;IAKlC;;;;;OAKG;IACH;QATQ,aAAQ,GAAG,IAAI,GAAG,EAA0C,CAAC;QAC7D,YAAO,GAAG,CAAC,CAAC;QASlB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,oBAAoB,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,eAAe,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC,CAAC;YACrI,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,CAAC,OAAO,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;YACnC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAE7B,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,EAAE;gBAC7B,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC;gBAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACvC,IAAI,CAAC,QAAQ;oBAAE,OAAO;gBACtB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAEzB,6CAA6C;gBAC7C,MAAM,WAAW,GAAG,IAAI,iBAAiB,CAAC,WAAW,CAAC,CAAC;gBACvD,MAAM,gBAAgB,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;gBAEnE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;YAC7B,CAAC,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACU,oBAAoB,CAAC,cAAyB,EAAE,cAAyB,EAAE,gBAA2B;;YACjH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC7B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACjB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;oBAC1B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;oBAE/B,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC;oBACnC,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;oBAErC,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;oBAC/C,IAAI,WAAW,GAAG,IAAI,CAAC;oBACvB,IAAI,aAAa,GAAG,IAAI,CAAC;oBAEzB,MAAM,SAAS,GAAG,CAAC,WAAW,CAAC,CAAC;oBAEhC,IAAI,cAAc,EAAE,CAAC;wBACnB,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;wBACzC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;oBAC7B,CAAC;oBACD,IAAI,gBAAgB,EAAE,CAAC;wBACrB,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC;wBAC7C,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;oBAC/B,CAAC;oBAED,IAAI,CAAC,OAAO,CAAC,WAAW,CACtB,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,EAC9D,SAAS,CACV,CAAC;gBAEJ,CAAC;qBAAM,CAAC;oBACN,oBAAoB,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,IAAI,EAAE,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,CAAC,CAAC;oBACxF,OAAO,CAAC,cAAc,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;IAED;;OAEG;IACI,SAAS;QACd,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;CACF;AArFD,0DAqFC"}