@difizen/libro-lsp 0.1.2

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 (104) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +0 -0
  3. package/es/adapters/adapter.d.ts +255 -0
  4. package/es/adapters/adapter.d.ts.map +1 -0
  5. package/es/adapters/adapter.js +647 -0
  6. package/es/adapters/notebook-adapter.d.ts +150 -0
  7. package/es/adapters/notebook-adapter.d.ts.map +1 -0
  8. package/es/adapters/notebook-adapter.js +588 -0
  9. package/es/adapters/status-message.d.ts +48 -0
  10. package/es/adapters/status-message.d.ts.map +1 -0
  11. package/es/adapters/status-message.js +110 -0
  12. package/es/connection-manager.d.ts +199 -0
  13. package/es/connection-manager.d.ts.map +1 -0
  14. package/es/connection-manager.js +685 -0
  15. package/es/connection.d.ts +149 -0
  16. package/es/connection.d.ts.map +1 -0
  17. package/es/connection.js +591 -0
  18. package/es/extractors/index.d.ts +4 -0
  19. package/es/extractors/index.d.ts.map +1 -0
  20. package/es/extractors/index.js +6 -0
  21. package/es/extractors/manager.d.ts +31 -0
  22. package/es/extractors/manager.d.ts.map +1 -0
  23. package/es/extractors/manager.js +90 -0
  24. package/es/extractors/text-extractor.d.ts +56 -0
  25. package/es/extractors/text-extractor.d.ts.map +1 -0
  26. package/es/extractors/text-extractor.js +72 -0
  27. package/es/extractors/types.d.ts +68 -0
  28. package/es/extractors/types.d.ts.map +1 -0
  29. package/es/extractors/types.js +1 -0
  30. package/es/feature.d.ts +29 -0
  31. package/es/feature.d.ts.map +1 -0
  32. package/es/feature.js +85 -0
  33. package/es/index.d.ts +19 -0
  34. package/es/index.d.ts.map +1 -0
  35. package/es/index.js +21 -0
  36. package/es/lsp-app-contribution.d.ts +19 -0
  37. package/es/lsp-app-contribution.d.ts.map +1 -0
  38. package/es/lsp-app-contribution.js +155 -0
  39. package/es/lsp-protocol.d.ts +10 -0
  40. package/es/lsp-protocol.d.ts.map +1 -0
  41. package/es/lsp-protocol.js +1 -0
  42. package/es/lsp.d.ts +136 -0
  43. package/es/lsp.d.ts.map +1 -0
  44. package/es/lsp.js +141 -0
  45. package/es/manager.d.ts +142 -0
  46. package/es/manager.d.ts.map +1 -0
  47. package/es/manager.js +423 -0
  48. package/es/module.d.ts +3 -0
  49. package/es/module.d.ts.map +1 -0
  50. package/es/module.js +21 -0
  51. package/es/plugin.d.ts +56 -0
  52. package/es/plugin.d.ts.map +1 -0
  53. package/es/plugin.js +0 -0
  54. package/es/positioning.d.ts +66 -0
  55. package/es/positioning.d.ts.map +1 -0
  56. package/es/positioning.js +96 -0
  57. package/es/schema.d.ts +240 -0
  58. package/es/schema.d.ts.map +1 -0
  59. package/es/schema.js +0 -0
  60. package/es/tokens.d.ts +677 -0
  61. package/es/tokens.d.ts.map +1 -0
  62. package/es/tokens.js +183 -0
  63. package/es/utils.d.ts +33 -0
  64. package/es/utils.d.ts.map +1 -0
  65. package/es/utils.js +168 -0
  66. package/es/virtual/document.d.ts +546 -0
  67. package/es/virtual/document.d.ts.map +1 -0
  68. package/es/virtual/document.js +1263 -0
  69. package/es/ws-connection/server-capability-registration.d.ts +19 -0
  70. package/es/ws-connection/server-capability-registration.d.ts.map +1 -0
  71. package/es/ws-connection/server-capability-registration.js +51 -0
  72. package/es/ws-connection/types.d.ts +76 -0
  73. package/es/ws-connection/types.d.ts.map +1 -0
  74. package/es/ws-connection/types.js +1 -0
  75. package/es/ws-connection/ws-connection.d.ts +105 -0
  76. package/es/ws-connection/ws-connection.d.ts.map +1 -0
  77. package/es/ws-connection/ws-connection.js +301 -0
  78. package/package.json +67 -0
  79. package/src/adapters/adapter.ts +611 -0
  80. package/src/adapters/notebook-adapter.ts +463 -0
  81. package/src/adapters/status-message.ts +93 -0
  82. package/src/connection-manager.ts +626 -0
  83. package/src/connection.ts +570 -0
  84. package/src/extractors/index.ts +6 -0
  85. package/src/extractors/manager.ts +82 -0
  86. package/src/extractors/text-extractor.ts +94 -0
  87. package/src/extractors/types.ts +78 -0
  88. package/src/feature.ts +60 -0
  89. package/src/index.spec.ts +10 -0
  90. package/src/index.ts +21 -0
  91. package/src/lsp-app-contribution.ts +83 -0
  92. package/src/lsp-protocol.ts +10 -0
  93. package/src/lsp.ts +160 -0
  94. package/src/manager.ts +358 -0
  95. package/src/module.ts +32 -0
  96. package/src/plugin.ts +62 -0
  97. package/src/positioning.ts +121 -0
  98. package/src/schema.ts +249 -0
  99. package/src/tokens.ts +843 -0
  100. package/src/utils.ts +109 -0
  101. package/src/virtual/document.ts +1250 -0
  102. package/src/ws-connection/server-capability-registration.ts +77 -0
  103. package/src/ws-connection/types.ts +102 -0
  104. package/src/ws-connection/ws-connection.ts +320 -0
@@ -0,0 +1,110 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
3
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
4
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
5
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
6
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
7
+ // Copyright (c) Jupyter Development Team.
8
+ // Distributed under the terms of the Modified BSD License.
9
+
10
+ import { Emitter } from '@difizen/mana-app';
11
+ export var StatusMessage = /*#__PURE__*/function () {
12
+ function StatusMessage() {
13
+ _classCallCheck(this, StatusMessage);
14
+ /**
15
+ * Timeout reference used to clear the previous `setTimeout` call.
16
+ */
17
+ /**
18
+ * The text message to be shown on the statusbar
19
+ */
20
+ this._changed = new Emitter();
21
+ this._isDisposed = false;
22
+ this._message = '';
23
+ this._timer = null;
24
+ }
25
+
26
+ /**
27
+ * Signal emitted on status changed event.
28
+ */
29
+ _createClass(StatusMessage, [{
30
+ key: "changed",
31
+ get: function get() {
32
+ return this._changed;
33
+ }
34
+
35
+ /**
36
+ * Test whether the object is disposed.
37
+ */
38
+ }, {
39
+ key: "isDisposed",
40
+ get: function get() {
41
+ return this._isDisposed;
42
+ }
43
+
44
+ /**
45
+ * Dispose the object.
46
+ */
47
+ }, {
48
+ key: "dispose",
49
+ value: function dispose() {
50
+ if (this.isDisposed) {
51
+ return;
52
+ }
53
+ this._isDisposed = true;
54
+ if (this._timer) {
55
+ window.clearTimeout(this._timer);
56
+ }
57
+ }
58
+
59
+ /**
60
+ * The text message to be shown on the statusbar.
61
+ */
62
+ }, {
63
+ key: "message",
64
+ get: function get() {
65
+ return this._message;
66
+ }
67
+
68
+ /**
69
+ * Set the text message and (optionally) the timeout to remove it.
70
+ * @param message
71
+ * @param timeout - number of ms to until the message is cleaned;
72
+ * -1 if the message should stay up indefinitely;
73
+ * defaults to 3000ms (3 seconds)
74
+ */
75
+ }, {
76
+ key: "set",
77
+ value: function set(message) {
78
+ var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1000 * 3;
79
+ this._expireTimer();
80
+ this._message = message;
81
+ this._changed.fire();
82
+ if (timeout !== -1) {
83
+ this._timer = window.setTimeout(this.clear.bind(this), timeout);
84
+ }
85
+ }
86
+
87
+ /**
88
+ * Clear the status message.
89
+ */
90
+ }, {
91
+ key: "clear",
92
+ value: function clear() {
93
+ this._message = '';
94
+ this._changed.fire();
95
+ }
96
+
97
+ /**
98
+ * Clear the previous `setTimeout` call.
99
+ */
100
+ }, {
101
+ key: "_expireTimer",
102
+ value: function _expireTimer() {
103
+ if (this._timer !== null) {
104
+ window.clearTimeout(this._timer);
105
+ this._timer = null;
106
+ }
107
+ }
108
+ }]);
109
+ return StatusMessage;
110
+ }();
@@ -0,0 +1,199 @@
1
+ import type { NotebookView } from '@difizen/libro-core';
2
+ import type { Event } from '@difizen/mana-app';
3
+ import { Emitter } from '@difizen/mana-app';
4
+ import type { WidgetLSPAdapter } from './adapters/adapter.js';
5
+ import { LSPConnection } from './connection.js';
6
+ import type { AskServersToSendTraceNotifications } from './plugin.js';
7
+ import type { Document, IDocumentConnectionData, ILanguageServerManager, ILSPConnection, ISocketConnectionOptions, TLanguageServerConfigurations, TLanguageServerId } from './tokens.js';
8
+ import { ILSPDocumentConnectionManager, ILanguageServerManagerFactory } from './tokens.js';
9
+ import type { VirtualDocument } from './virtual/document.js';
10
+ /**
11
+ * Each Widget with a document (whether file or a notebook) has the same DocumentConnectionManager
12
+ * (see JupyterLabWidgetAdapter). Using id_path instead of uri led to documents being overwritten
13
+ * as two identical id_paths could be created for two different notebooks.
14
+ */
15
+ export declare class DocumentConnectionManager implements ILSPDocumentConnectionManager {
16
+ constructor(languageServerManagerFactory: ILanguageServerManagerFactory);
17
+ /**
18
+ * Map between the URI of the virtual document and its connection
19
+ * to the language server
20
+ */
21
+ readonly connections: Map<VirtualDocument.uri, LSPConnection>;
22
+ /**
23
+ * Map between the path of the document and its adapter
24
+ */
25
+ readonly adapters: Map<string, WidgetLSPAdapter<NotebookView>>;
26
+ /**
27
+ * Map between the URI of the virtual document and the document itself.
28
+ */
29
+ readonly documents: Map<VirtualDocument.uri, VirtualDocument>;
30
+ /**
31
+ * The language server manager plugin.
32
+ */
33
+ readonly languageServerManager: ILanguageServerManager;
34
+ /**
35
+ * Initial configuration for the language servers.
36
+ */
37
+ initialConfigurations: TLanguageServerConfigurations;
38
+ /**
39
+ * Signal emitted when the manager is initialized.
40
+ */
41
+ get initialized(): Event<IDocumentConnectionData>;
42
+ /**
43
+ * Signal emitted when the manager is connected to the server
44
+ */
45
+ get connected(): Event<IDocumentConnectionData>;
46
+ /**
47
+ * Connection temporarily lost or could not be fully established; a re-connection will be attempted;
48
+ */
49
+ get disconnected(): Event<IDocumentConnectionData>;
50
+ /**
51
+ * Connection was closed permanently and no-reconnection will be attempted, e.g.:
52
+ * - there was a serious server error
53
+ * - user closed the connection,
54
+ * - re-connection attempts exceeded,
55
+ */
56
+ get closed(): Event<IDocumentConnectionData>;
57
+ /**
58
+ * Signal emitted when the document is changed.
59
+ */
60
+ get documentsChanged(): Event<Map<VirtualDocument.uri, VirtualDocument>>;
61
+ /**
62
+ * Promise resolved when the language server manager is ready.
63
+ */
64
+ get ready(): Promise<void>;
65
+ /**
66
+ * Helper to connect various virtual document signal with callbacks of
67
+ * this class.
68
+ *
69
+ * @param virtualDocument - virtual document to be connected.
70
+ */
71
+ connectDocumentSignals(virtualDocument: VirtualDocument): void;
72
+ /**
73
+ * Helper to disconnect various virtual document signal with callbacks of
74
+ * this class.
75
+ *
76
+ * @param virtualDocument - virtual document to be disconnected.
77
+ */
78
+ disconnectDocumentSignals(virtualDocument: VirtualDocument, emit?: boolean): void;
79
+ /**
80
+ * Handle foreign document opened event.
81
+ */
82
+ onForeignDocumentOpened(context: Document.IForeignContext): void;
83
+ /**
84
+ * Handle foreign document closed event.
85
+ */
86
+ onForeignDocumentClosed(context: Document.IForeignContext): void;
87
+ /**
88
+ * Register a widget adapter with this manager
89
+ *
90
+ * @param path - path to the inner document of the adapter
91
+ * @param adapter - the adapter to be registered
92
+ */
93
+ registerAdapter(path: string, adapter: WidgetLSPAdapter<NotebookView>): void;
94
+ /**
95
+ * Handles the settings that do not require an existing connection
96
+ * with a language server (or can influence to which server the
97
+ * connection will be created, e.g. `rank`).
98
+ *
99
+ * This function should be called **before** initialization of servers.
100
+ */
101
+ updateConfiguration(allServerSettings: TLanguageServerConfigurations): void;
102
+ /**
103
+ * Handles the settings that the language servers accept using
104
+ * `onDidChangeConfiguration` messages, which should be passed under
105
+ * the "serverSettings" keyword in the setting registry.
106
+ * Other configuration options are handled by `updateConfiguration` instead.
107
+ *
108
+ * This function should be called **after** initialization of servers.
109
+ */
110
+ updateServerConfigurations(allServerSettings: TLanguageServerConfigurations): void;
111
+ /**
112
+ * Fired the first time a connection is opened. These _should_ be the only
113
+ * invocation of `.on` (once remaining LSPFeature.connection_handlers are made
114
+ * singletons).
115
+ */
116
+ onNewConnection: (connection: LSPConnection) => void;
117
+ /**
118
+ * Retry to connect to the server each `reconnectDelay` seconds
119
+ * and for `retrialsLeft` times.
120
+ * TODO: presently no longer referenced. A failing connection would close
121
+ * the socket, triggering the language server on the other end to exit.
122
+ */
123
+ retryToConnect(options: ISocketConnectionOptions, reconnectDelay: number, retrialsLeft?: number): Promise<void>;
124
+ /**
125
+ * Disconnect the connection to the language server of the requested
126
+ * language.
127
+ */
128
+ disconnect(languageId: TLanguageServerId): void;
129
+ /**
130
+ * Create a new connection to the language server
131
+ * @return A promise of the LSP connection
132
+ */
133
+ connect(options: ISocketConnectionOptions, firstTimeoutSeconds?: number, secondTimeoutMinutes?: number): Promise<ILSPConnection | undefined>;
134
+ /**
135
+ * Disconnect the signals of requested virtual document uri.
136
+ */
137
+ unregisterDocument(uri: string, emit?: boolean): void;
138
+ /**
139
+ * Enable or disable the logging feature of the language servers
140
+ */
141
+ updateLogging(logAllCommunication: boolean, setTrace: AskServersToSendTraceNotifications): void;
142
+ /**
143
+ * Create the LSP connection for requested virtual document.
144
+ *
145
+ * @return Return the promise of the LSP connection.
146
+ */
147
+ protected _connectSocket(options: ISocketConnectionOptions): Promise<LSPConnection | undefined>;
148
+ /**
149
+ * Helper to apply callback on all documents of a connection.
150
+ */
151
+ protected _forEachDocumentOfConnection(connection: ILSPConnection, callback: (virtualDocument: VirtualDocument) => void): void;
152
+ protected _initialized: Emitter<IDocumentConnectionData>;
153
+ protected _connected: Emitter<IDocumentConnectionData>;
154
+ protected _disconnected: Emitter<IDocumentConnectionData>;
155
+ protected _closed: Emitter<IDocumentConnectionData>;
156
+ protected _documentsChanged: Emitter<Map<string, VirtualDocument>>;
157
+ /**
158
+ * Set of ignored languages
159
+ */
160
+ protected _ignoredLanguages: Set<string>;
161
+ }
162
+ export declare namespace DocumentConnectionManager {
163
+ interface IOptions {
164
+ /**
165
+ * The language server manager instance.
166
+ */
167
+ languageServerManager: ILanguageServerManager;
168
+ }
169
+ /**
170
+ * Generate the URI of a virtual document from input
171
+ *
172
+ * @param virtualDocument - the virtual document
173
+ * @param language - language of the document
174
+ */
175
+ function solveUris(virtualDocument: VirtualDocument, language: string): IURIs | undefined;
176
+ interface IURIs {
177
+ /**
178
+ * The root URI set by server.
179
+ *
180
+ */
181
+ base: string;
182
+ /**
183
+ * The URI to the virtual document.
184
+ *
185
+ */
186
+ document: string;
187
+ /**
188
+ * Address of websocket endpoint for LSP services.
189
+ *
190
+ */
191
+ server: string;
192
+ /**
193
+ * Address of websocket endpoint for the language server.
194
+ *
195
+ */
196
+ socket: string;
197
+ }
198
+ }
199
+ //# sourceMappingURL=connection-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection-manager.d.ts","sourceRoot":"","sources":["../src/connection-manager.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAqB,MAAM,mBAAmB,CAAC;AAG/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,KAAK,EACV,QAAQ,EACR,uBAAuB,EACvB,sBAAsB,EACtB,cAAc,EACd,wBAAwB,EACxB,6BAA6B,EAC7B,iBAAiB,EAElB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,6BAA6B,EAC7B,6BAA6B,EAC9B,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D;;;;GAIG;AACH,qBACa,yBAA0B,YAAW,6BAA6B;gBAG3E,4BAA4B,EAAE,6BAA6B;IAU7D;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,eAAe,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAE9D;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;IAE/D;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,eAAe,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IAC9D;;OAEG;IACH,QAAQ,CAAC,qBAAqB,EAAE,sBAAsB,CAAC;IAEvD;;OAEG;IACH,qBAAqB,EAAE,6BAA6B,CAAC;IAErD;;OAEG;IACH,IAAI,WAAW,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAEhD;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAE9C;IAED;;OAEG;IACH,IAAI,YAAY,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAEjD;IAED;;;;;OAKG;IACH,IAAI,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAE3C;IAED;;OAEG;IACH,IAAI,gBAAgB,IAAI,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,CAEvE;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAEzB;IAED;;;;;OAKG;IACH,sBAAsB,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;IAQ9D;;;;;OAKG;IACH,yBAAyB,CAAC,eAAe,EAAE,eAAe,EAAE,IAAI,UAAO,GAAG,IAAI;IAW9E;;OAEG;IAEH,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,eAAe,GAAG,IAAI;IAIhE;;OAEG;IACH,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,eAAe,GAAG,IAAI;IAMhE;;;;;OAKG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,CAAC,YAAY,CAAC,GAAG,IAAI;IAU5E;;;;;;OAMG;IACH,mBAAmB,CAAC,iBAAiB,EAAE,6BAA6B,GAAG,IAAI;IAI3E;;;;;;;OAOG;IACH,0BAA0B,CAAC,iBAAiB,EAAE,6BAA6B,GAAG,IAAI;IAmBlF;;;;OAIG;IACH,eAAe,eAAgB,aAAa,KAAG,IAAI,CA2CjD;IAEF;;;;;OAKG;IACG,cAAc,CAClB,OAAO,EAAE,wBAAwB,EACjC,cAAc,EAAE,MAAM,EACtB,YAAY,SAAK,GAChB,OAAO,CAAC,IAAI,CAAC;IA6BhB;;;OAGG;IACH,UAAU,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI;IAI/C;;;OAGG;IACG,OAAO,CACX,OAAO,EAAE,wBAAwB,EACjC,mBAAmB,SAAK,EACxB,oBAAoB,SAAI,GACvB,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAqCtC;;OAEG;IACH,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,UAAO,GAAG,IAAI;IAgBlD;;OAEG;IACH,aAAa,CACX,mBAAmB,EAAE,OAAO,EAC5B,QAAQ,EAAE,kCAAkC,GAC3C,IAAI;IASP;;;;OAIG;cAEa,cAAc,CAC5B,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAkCrC;;OAEG;IACH,SAAS,CAAC,4BAA4B,CACpC,UAAU,EAAE,cAAc,EAC1B,QAAQ,EAAE,CAAC,eAAe,EAAE,eAAe,KAAK,IAAI;IAUtD,SAAS,CAAC,YAAY,mCAA0C;IAEhE,SAAS,CAAC,UAAU,mCAA0C;IAE9D,SAAS,CAAC,aAAa,mCAA0C;IAEjE,SAAS,CAAC,OAAO,mCAA0C;IAE3D,SAAS,CAAC,iBAAiB,wCAEvB;IAEJ;;OAEG;IACH,SAAS,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC1C;AAED,yBAAiB,yBAAyB,CAAC;IACzC,UAAiB,QAAQ;QACvB;;WAEG;QACH,qBAAqB,EAAE,sBAAsB,CAAC;KAC/C;IAED;;;;;OAKG;IACH,SAAgB,SAAS,CACvB,eAAe,EAAE,eAAe,EAChC,QAAQ,EAAE,MAAM,GACf,KAAK,GAAG,SAAS,CAmCnB;IAED,UAAiB,KAAK;QACpB;;;WAGG;QACH,IAAI,EAAE,MAAM,CAAC;QAEb;;;WAGG;QACH,QAAQ,EAAE,MAAM,CAAC;QAEjB;;;WAGG;QACH,MAAM,EAAE,MAAM,CAAC;QAEf;;;WAGG;QACH,MAAM,EAAE,MAAM,CAAC;KAChB;CACF"}