@thoughtspot/visual-embed-sdk 1.47.3 → 1.49.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 (244) hide show
  1. package/cjs/package.json +1 -1
  2. package/cjs/src/auth.d.ts.map +1 -1
  3. package/cjs/src/auth.js +11 -1
  4. package/cjs/src/auth.js.map +1 -1
  5. package/cjs/src/auth.spec.js +38 -0
  6. package/cjs/src/auth.spec.js.map +1 -1
  7. package/cjs/src/authToken.d.ts +2 -0
  8. package/cjs/src/authToken.d.ts.map +1 -1
  9. package/cjs/src/authToken.js +7 -5
  10. package/cjs/src/authToken.js.map +1 -1
  11. package/cjs/src/css-variables.d.ts +140 -0
  12. package/cjs/src/css-variables.d.ts.map +1 -1
  13. package/cjs/src/embed/app.d.ts +63 -2
  14. package/cjs/src/embed/app.d.ts.map +1 -1
  15. package/cjs/src/embed/app.js +57 -6
  16. package/cjs/src/embed/app.js.map +1 -1
  17. package/cjs/src/embed/app.spec.js +200 -1
  18. package/cjs/src/embed/app.spec.js.map +1 -1
  19. package/cjs/src/embed/auto-frame-renderer.js +7 -2
  20. package/cjs/src/embed/auto-frame-renderer.js.map +1 -1
  21. package/cjs/src/embed/auto-frame-renderer.spec.js +385 -6
  22. package/cjs/src/embed/auto-frame-renderer.spec.js.map +1 -1
  23. package/cjs/src/embed/base.d.ts +1 -0
  24. package/cjs/src/embed/base.d.ts.map +1 -1
  25. package/cjs/src/embed/base.js +13 -1
  26. package/cjs/src/embed/base.js.map +1 -1
  27. package/cjs/src/embed/base.spec.js +21 -0
  28. package/cjs/src/embed/base.spec.js.map +1 -1
  29. package/cjs/src/embed/bodyless-conversation.spec.js +86 -0
  30. package/cjs/src/embed/bodyless-conversation.spec.js.map +1 -1
  31. package/cjs/src/embed/conversation.d.ts +16 -1
  32. package/cjs/src/embed/conversation.d.ts.map +1 -1
  33. package/cjs/src/embed/conversation.js +5 -1
  34. package/cjs/src/embed/conversation.js.map +1 -1
  35. package/cjs/src/embed/conversation.spec.js +26 -0
  36. package/cjs/src/embed/conversation.spec.js.map +1 -1
  37. package/cjs/src/embed/liveboard.d.ts +48 -2
  38. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  39. package/cjs/src/embed/liveboard.js +48 -7
  40. package/cjs/src/embed/liveboard.js.map +1 -1
  41. package/cjs/src/embed/liveboard.spec.js +139 -1
  42. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  43. package/cjs/src/embed/spotter-viz-utils.d.ts +85 -0
  44. package/cjs/src/embed/spotter-viz-utils.d.ts.map +1 -0
  45. package/cjs/src/embed/spotter-viz-utils.js +17 -0
  46. package/cjs/src/embed/spotter-viz-utils.js.map +1 -0
  47. package/cjs/src/embed/spotter-viz-utils.spec.d.ts +2 -0
  48. package/cjs/src/embed/spotter-viz-utils.spec.d.ts.map +1 -0
  49. package/cjs/src/embed/spotter-viz-utils.spec.js +31 -0
  50. package/cjs/src/embed/spotter-viz-utils.spec.js.map +1 -0
  51. package/cjs/src/embed/ts-embed.d.ts +58 -38
  52. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  53. package/cjs/src/embed/ts-embed.js +247 -151
  54. package/cjs/src/embed/ts-embed.js.map +1 -1
  55. package/cjs/src/embed/ts-embed.spec.js +397 -122
  56. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  57. package/cjs/src/index.d.ts +2 -1
  58. package/cjs/src/index.d.ts.map +1 -1
  59. package/cjs/src/index.js.map +1 -1
  60. package/cjs/src/react/index.d.ts.map +1 -1
  61. package/cjs/src/react/index.js +3 -0
  62. package/cjs/src/react/index.js.map +1 -1
  63. package/cjs/src/tokenizedFetch.d.ts.map +1 -1
  64. package/cjs/src/tokenizedFetch.js +12 -9
  65. package/cjs/src/tokenizedFetch.js.map +1 -1
  66. package/cjs/src/tokenizedFetch.spec.d.ts +2 -0
  67. package/cjs/src/tokenizedFetch.spec.d.ts.map +1 -0
  68. package/cjs/src/tokenizedFetch.spec.js +68 -0
  69. package/cjs/src/tokenizedFetch.spec.js.map +1 -0
  70. package/cjs/src/types.d.ts +309 -40
  71. package/cjs/src/types.d.ts.map +1 -1
  72. package/cjs/src/types.js +251 -23
  73. package/cjs/src/types.js.map +1 -1
  74. package/cjs/src/utils/authService/tokenizedAuthService.spec.js +6 -7
  75. package/cjs/src/utils/authService/tokenizedAuthService.spec.js.map +1 -1
  76. package/cjs/src/utils/logger.js +2 -1
  77. package/cjs/src/utils/logger.js.map +1 -1
  78. package/cjs/src/utils/logger.spec.d.ts +1 -0
  79. package/cjs/src/utils/logger.spec.d.ts.map +1 -1
  80. package/cjs/src/utils/logger.spec.js +10 -9
  81. package/cjs/src/utils/logger.spec.js.map +1 -1
  82. package/cjs/src/utils.d.ts +4 -1
  83. package/cjs/src/utils.d.ts.map +1 -1
  84. package/cjs/src/utils.js +107 -10
  85. package/cjs/src/utils.js.map +1 -1
  86. package/cjs/src/utils.spec.js +163 -4
  87. package/cjs/src/utils.spec.js.map +1 -1
  88. package/dist/{index-DZq20cR6.js → index-_UGCSSDR.js} +1 -1
  89. package/dist/src/auth.d.ts.map +1 -1
  90. package/dist/src/authToken.d.ts +2 -0
  91. package/dist/src/authToken.d.ts.map +1 -1
  92. package/dist/src/css-variables.d.ts +140 -0
  93. package/dist/src/css-variables.d.ts.map +1 -1
  94. package/dist/src/embed/app.d.ts +63 -2
  95. package/dist/src/embed/app.d.ts.map +1 -1
  96. package/dist/src/embed/base.d.ts +1 -0
  97. package/dist/src/embed/base.d.ts.map +1 -1
  98. package/dist/src/embed/conversation.d.ts +16 -1
  99. package/dist/src/embed/conversation.d.ts.map +1 -1
  100. package/dist/src/embed/liveboard.d.ts +48 -2
  101. package/dist/src/embed/liveboard.d.ts.map +1 -1
  102. package/dist/src/embed/spotter-viz-utils.d.ts +85 -0
  103. package/dist/src/embed/spotter-viz-utils.d.ts.map +1 -0
  104. package/dist/src/embed/spotter-viz-utils.spec.d.ts +2 -0
  105. package/dist/src/embed/spotter-viz-utils.spec.d.ts.map +1 -0
  106. package/dist/src/embed/ts-embed.d.ts +58 -38
  107. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  108. package/dist/src/index.d.ts +2 -1
  109. package/dist/src/index.d.ts.map +1 -1
  110. package/dist/src/react/index.d.ts.map +1 -1
  111. package/dist/src/tokenizedFetch.d.ts.map +1 -1
  112. package/dist/src/tokenizedFetch.spec.d.ts +2 -0
  113. package/dist/src/tokenizedFetch.spec.d.ts.map +1 -0
  114. package/dist/src/types.d.ts +309 -40
  115. package/dist/src/types.d.ts.map +1 -1
  116. package/dist/src/utils/logger.spec.d.ts +1 -0
  117. package/dist/src/utils/logger.spec.d.ts.map +1 -1
  118. package/dist/src/utils.d.ts +4 -1
  119. package/dist/src/utils.d.ts.map +1 -1
  120. package/dist/tsembed-react.es.js +3418 -2899
  121. package/dist/tsembed-react.js +3420 -2901
  122. package/dist/tsembed.es.js +3426 -2905
  123. package/dist/tsembed.js +3419 -2898
  124. package/dist/visual-embed-sdk-react-full.d.ts +687 -78
  125. package/dist/visual-embed-sdk-react.d.ts +687 -78
  126. package/dist/visual-embed-sdk.d.ts +702 -80
  127. package/lib/package.json +1 -1
  128. package/lib/src/auth.d.ts.map +1 -1
  129. package/lib/src/auth.js +12 -2
  130. package/lib/src/auth.js.map +1 -1
  131. package/lib/src/auth.spec.js +38 -0
  132. package/lib/src/auth.spec.js.map +1 -1
  133. package/lib/src/authToken.d.ts +2 -0
  134. package/lib/src/authToken.d.ts.map +1 -1
  135. package/lib/src/authToken.js +2 -2
  136. package/lib/src/authToken.js.map +1 -1
  137. package/lib/src/css-variables.d.ts +140 -0
  138. package/lib/src/css-variables.d.ts.map +1 -1
  139. package/lib/src/embed/app.d.ts +63 -2
  140. package/lib/src/embed/app.d.ts.map +1 -1
  141. package/lib/src/embed/app.js +58 -7
  142. package/lib/src/embed/app.js.map +1 -1
  143. package/lib/src/embed/app.spec.js +201 -2
  144. package/lib/src/embed/app.spec.js.map +1 -1
  145. package/lib/src/embed/auto-frame-renderer.js +7 -2
  146. package/lib/src/embed/auto-frame-renderer.js.map +1 -1
  147. package/lib/src/embed/auto-frame-renderer.spec.js +387 -8
  148. package/lib/src/embed/auto-frame-renderer.spec.js.map +1 -1
  149. package/lib/src/embed/base.d.ts +1 -0
  150. package/lib/src/embed/base.d.ts.map +1 -1
  151. package/lib/src/embed/base.js +11 -0
  152. package/lib/src/embed/base.js.map +1 -1
  153. package/lib/src/embed/base.spec.js +22 -1
  154. package/lib/src/embed/base.spec.js.map +1 -1
  155. package/lib/src/embed/bodyless-conversation.spec.js +86 -0
  156. package/lib/src/embed/bodyless-conversation.spec.js.map +1 -1
  157. package/lib/src/embed/conversation.d.ts +16 -1
  158. package/lib/src/embed/conversation.d.ts.map +1 -1
  159. package/lib/src/embed/conversation.js +5 -1
  160. package/lib/src/embed/conversation.js.map +1 -1
  161. package/lib/src/embed/conversation.spec.js +27 -1
  162. package/lib/src/embed/conversation.spec.js.map +1 -1
  163. package/lib/src/embed/liveboard.d.ts +48 -2
  164. package/lib/src/embed/liveboard.d.ts.map +1 -1
  165. package/lib/src/embed/liveboard.js +49 -8
  166. package/lib/src/embed/liveboard.js.map +1 -1
  167. package/lib/src/embed/liveboard.spec.js +139 -1
  168. package/lib/src/embed/liveboard.spec.js.map +1 -1
  169. package/lib/src/embed/spotter-viz-utils.d.ts +85 -0
  170. package/lib/src/embed/spotter-viz-utils.d.ts.map +1 -0
  171. package/lib/src/embed/spotter-viz-utils.js +13 -0
  172. package/lib/src/embed/spotter-viz-utils.js.map +1 -0
  173. package/lib/src/embed/spotter-viz-utils.spec.d.ts +2 -0
  174. package/lib/src/embed/spotter-viz-utils.spec.d.ts.map +1 -0
  175. package/lib/src/embed/spotter-viz-utils.spec.js +29 -0
  176. package/lib/src/embed/spotter-viz-utils.spec.js.map +1 -0
  177. package/lib/src/embed/ts-embed.d.ts +58 -38
  178. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  179. package/lib/src/embed/ts-embed.js +250 -154
  180. package/lib/src/embed/ts-embed.js.map +1 -1
  181. package/lib/src/embed/ts-embed.spec.js +397 -122
  182. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  183. package/lib/src/index.d.ts +2 -1
  184. package/lib/src/index.d.ts.map +1 -1
  185. package/lib/src/index.js.map +1 -1
  186. package/lib/src/react/index.d.ts.map +1 -1
  187. package/lib/src/react/index.js +3 -0
  188. package/lib/src/react/index.js.map +1 -1
  189. package/lib/src/tokenizedFetch.d.ts.map +1 -1
  190. package/lib/src/tokenizedFetch.js +13 -10
  191. package/lib/src/tokenizedFetch.js.map +1 -1
  192. package/lib/src/tokenizedFetch.spec.d.ts +2 -0
  193. package/lib/src/tokenizedFetch.spec.d.ts.map +1 -0
  194. package/lib/src/tokenizedFetch.spec.js +65 -0
  195. package/lib/src/tokenizedFetch.spec.js.map +1 -0
  196. package/lib/src/types.d.ts +309 -40
  197. package/lib/src/types.d.ts.map +1 -1
  198. package/lib/src/types.js +251 -23
  199. package/lib/src/types.js.map +1 -1
  200. package/lib/src/utils/authService/tokenizedAuthService.spec.js +6 -7
  201. package/lib/src/utils/authService/tokenizedAuthService.spec.js.map +1 -1
  202. package/lib/src/utils/logger.js +2 -1
  203. package/lib/src/utils/logger.js.map +1 -1
  204. package/lib/src/utils/logger.spec.d.ts +1 -0
  205. package/lib/src/utils/logger.spec.d.ts.map +1 -1
  206. package/lib/src/utils/logger.spec.js +10 -9
  207. package/lib/src/utils/logger.spec.js.map +1 -1
  208. package/lib/src/utils.d.ts +4 -1
  209. package/lib/src/utils.d.ts.map +1 -1
  210. package/lib/src/utils.js +103 -9
  211. package/lib/src/utils.js.map +1 -1
  212. package/lib/src/utils.spec.js +164 -5
  213. package/lib/src/utils.spec.js.map +1 -1
  214. package/lib/src/visual-embed-sdk.d.ts +702 -80
  215. package/package.json +1 -1
  216. package/src/auth.spec.ts +55 -1
  217. package/src/auth.ts +11 -2
  218. package/src/authToken.ts +2 -2
  219. package/src/css-variables.ts +175 -1
  220. package/src/embed/app.spec.ts +260 -3
  221. package/src/embed/app.ts +127 -7
  222. package/src/embed/auto-frame-renderer.spec.ts +457 -58
  223. package/src/embed/auto-frame-renderer.ts +7 -2
  224. package/src/embed/base.spec.ts +25 -1
  225. package/src/embed/base.ts +19 -5
  226. package/src/embed/bodyless-conversation.spec.ts +93 -0
  227. package/src/embed/conversation.spec.ts +34 -0
  228. package/src/embed/conversation.ts +22 -1
  229. package/src/embed/liveboard.spec.ts +163 -1
  230. package/src/embed/liveboard.ts +106 -10
  231. package/src/embed/spotter-viz-utils.spec.ts +30 -0
  232. package/src/embed/spotter-viz-utils.ts +94 -0
  233. package/src/embed/ts-embed.spec.ts +564 -231
  234. package/src/embed/ts-embed.ts +384 -258
  235. package/src/index.ts +3 -0
  236. package/src/react/index.tsx +3 -0
  237. package/src/tokenizedFetch.spec.ts +81 -0
  238. package/src/tokenizedFetch.ts +14 -11
  239. package/src/types.ts +326 -36
  240. package/src/utils/authService/tokenizedAuthService.spec.ts +6 -6
  241. package/src/utils/logger.spec.ts +11 -9
  242. package/src/utils/logger.ts +2 -2
  243. package/src/utils.spec.ts +200 -4
  244. package/src/utils.ts +128 -9
@@ -1,10 +1,12 @@
1
1
  import { startAutoMCPFrameRenderer } from './auto-frame-renderer';
2
- import { Param, AuthType } from '../types';
2
+ import { Action, AuthType, EmbedEvent, InterceptedApiType, Param } from '../types';
3
3
  import { init } from '../index';
4
4
  import * as authInstance from '../auth';
5
5
  import { TsEmbed } from './ts-embed';
6
- import { getDocumentBody, } from '../test/test-utils';
6
+ import { LiveboardEmbed } from './liveboard';
7
+ import { getDocumentBody, getRootEl, postMessageToParent, } from '../test/test-utils';
7
8
  const thoughtSpotHost = 'tshost';
9
+ const TSMCP_SRC = `https://${thoughtSpotHost}/v2/?${Param.Tsmcp}=true#/embed/viz/lb1`;
8
10
  describe('startAutoMCPFrameRenderer', () => {
9
11
  let renderIFrameSpy;
10
12
  let getEmbedBasePathSpy;
@@ -19,7 +21,7 @@ describe('startAutoMCPFrameRenderer', () => {
19
21
  beforeEach(() => {
20
22
  document.body.innerHTML = getDocumentBody();
21
23
  getEmbedBasePathSpy = jest.spyOn(TsEmbed.prototype, 'getEmbedBasePath').mockImplementation(function (query) {
22
- return `http://${thoughtSpotHost}/?${query}#`;
24
+ return `http://${thoughtSpotHost}/${query}#`;
23
25
  });
24
26
  renderIFrameSpy = jest.spyOn(TsEmbed.prototype, 'renderIFrame').mockResolvedValue(undefined);
25
27
  });
@@ -27,6 +29,52 @@ describe('startAutoMCPFrameRenderer', () => {
27
29
  renderIFrameSpy.mockRestore();
28
30
  getEmbedBasePathSpy.mockRestore();
29
31
  });
32
+ // ─── helpers ──────────────────────────────────────────────────────────────
33
+ /** Capture the src passed to renderIFrame for the first tsmcp iframe added */
34
+ async function captureRenderedSrc(viewConfig = {}) {
35
+ let capturedSrc = '';
36
+ renderIFrameSpy.mockRestore();
37
+ renderIFrameSpy = jest.spyOn(TsEmbed.prototype, 'renderIFrame')
38
+ .mockImplementation(async function (src) {
39
+ capturedSrc = src;
40
+ });
41
+ const observer = startAutoMCPFrameRenderer(viewConfig);
42
+ const iframe = document.createElement('iframe');
43
+ iframe.src = TSMCP_SRC;
44
+ document.body.appendChild(iframe);
45
+ await new Promise((r) => setTimeout(r, 50));
46
+ observer.disconnect();
47
+ return capturedSrc;
48
+ }
49
+ /**
50
+ * Trigger a full APP_INIT cycle via the actual TsEmbed message infrastructure.
51
+ * Renders the replacement iframe into DOM so subscribeToMessageEvents fires,
52
+ * then fires APP_INIT and returns the port.postMessage response payload.
53
+ */
54
+ async function getAppInitResponse(viewConfig = {}) {
55
+ var _a;
56
+ renderIFrameSpy.mockRestore();
57
+ renderIFrameSpy = jest.spyOn(TsEmbed.prototype, 'renderIFrame')
58
+ .mockImplementation(async function (src) {
59
+ const iframe = document.createElement('iframe');
60
+ iframe.src = src;
61
+ this.setIframeElement(iframe);
62
+ this.handleInsertionIntoDOM(iframe);
63
+ this.subscribeToMessageEvents();
64
+ });
65
+ const observer = startAutoMCPFrameRenderer(viewConfig);
66
+ const tsmcpIframe = document.createElement('iframe');
67
+ tsmcpIframe.src = TSMCP_SRC;
68
+ document.body.appendChild(tsmcpIframe);
69
+ await new Promise((r) => setTimeout(r, 50));
70
+ const embeddedIframe = document.querySelector('iframe');
71
+ const mockPort = { postMessage: jest.fn() };
72
+ postMessageToParent(embeddedIframe.contentWindow, { type: EmbedEvent.APP_INIT, data: {} }, mockPort);
73
+ await new Promise((r) => setTimeout(r, 50));
74
+ observer.disconnect();
75
+ return (_a = mockPort.postMessage.mock.calls[0]) === null || _a === void 0 ? void 0 : _a[0];
76
+ }
77
+ // ─── MutationObserver setup ───────────────────────────────────────────────
30
78
  describe('MutationObserver setup', () => {
31
79
  test('should return a MutationObserver', () => {
32
80
  const observer = startAutoMCPFrameRenderer();
@@ -44,6 +92,7 @@ describe('startAutoMCPFrameRenderer', () => {
44
92
  observeSpy.mockRestore();
45
93
  });
46
94
  });
95
+ // ─── iframe detection via tsmcp param ─────────────────────────────────────
47
96
  describe('iframe detection via tsmcp param', () => {
48
97
  test('should process directly-added iframes with tsmcp=true', async () => {
49
98
  const observer = startAutoMCPFrameRenderer();
@@ -126,11 +175,13 @@ describe('startAutoMCPFrameRenderer', () => {
126
175
  observer.disconnect();
127
176
  });
128
177
  });
178
+ // ─── handleInsertionIntoDOM override ──────────────────────────────────────
129
179
  describe('handleInsertionIntoDOM override', () => {
130
180
  test('should replace the original iframe when renderIFrame inserts DOM', async () => {
131
181
  renderIFrameSpy.mockRestore();
132
182
  const replaceSpy = jest.fn();
133
- renderIFrameSpy = jest.spyOn(TsEmbed.prototype, 'renderIFrame').mockImplementation(async function () {
183
+ renderIFrameSpy = jest.spyOn(TsEmbed.prototype, 'renderIFrame')
184
+ .mockImplementation(async function () {
134
185
  const newIframe = document.createElement('iframe');
135
186
  newIframe.src = 'https://replaced.example.com';
136
187
  this.frameToReplace.replaceWith = replaceSpy;
@@ -145,23 +196,260 @@ describe('startAutoMCPFrameRenderer', () => {
145
196
  observer.disconnect();
146
197
  });
147
198
  });
148
- describe('viewConfig forwarding', () => {
199
+ // ─── URL params forwarding ────────────────────────────────────────────────
200
+ describe('URL params forwarding', () => {
149
201
  test('should accept empty viewConfig', () => {
150
202
  const observer = startAutoMCPFrameRenderer({});
151
203
  expect(observer).toBeInstanceOf(MutationObserver);
152
204
  observer.disconnect();
153
205
  });
154
- test('should accept no arguments (default empty config)', () => {
206
+ test('should accept no arguments', () => {
155
207
  const observer = startAutoMCPFrameRenderer();
156
208
  expect(observer).toBeInstanceOf(MutationObserver);
157
209
  observer.disconnect();
158
210
  });
211
+ test('disabledActions → disableAction in rendered src', async () => {
212
+ const src = await captureRenderedSrc({ disabledActions: [Action.Pin] });
213
+ expect(src).toContain('disableAction');
214
+ });
215
+ test('disabledActionReason → disableHint in rendered src', async () => {
216
+ const src = await captureRenderedSrc({
217
+ disabledActions: [Action.Pin],
218
+ disabledActionReason: 'Upgrade required',
219
+ });
220
+ expect(src).toContain('disableHint');
221
+ });
222
+ test('hiddenActions → hideAction in rendered src as JSON array', async () => {
223
+ const src = await captureRenderedSrc({ hiddenActions: [Action.Pin] });
224
+ expect(src).toContain(`hideAction=${JSON.stringify([Action.ReportError, Action.Pin])}`);
225
+ });
226
+ test('visibleActions → visibleAction in rendered src', async () => {
227
+ const src = await captureRenderedSrc({ visibleActions: [Action.Download] });
228
+ expect(src).toContain('visibleAction');
229
+ });
230
+ test('locale → locale param in rendered src', async () => {
231
+ const src = await captureRenderedSrc({ locale: 'fr-FR' });
232
+ expect(src).toContain('locale=fr-FR');
233
+ });
234
+ test('showAlerts → showAlerts param in rendered src', async () => {
235
+ const src = await captureRenderedSrc({ showAlerts: true });
236
+ expect(src).toContain('showAlerts=true');
237
+ });
238
+ test('exposeTranslationIDs → exposeTranslationIDs in rendered src', async () => {
239
+ const src = await captureRenderedSrc({ exposeTranslationIDs: true });
240
+ expect(src).toContain('exposeTranslationIDs=true');
241
+ });
242
+ test('disableRedirectionLinksInNewTab → param in rendered src', async () => {
243
+ const src = await captureRenderedSrc({ disableRedirectionLinksInNewTab: true });
244
+ expect(src).toContain('disableRedirectionLinksInNewTab=true');
245
+ });
246
+ test('overrideOrgId → orgId param in rendered src', async () => {
247
+ const src = await captureRenderedSrc({ overrideOrgId: 42 });
248
+ expect(src).toContain('orgId=42');
249
+ });
250
+ test('linkOverride (V1) auto-upgrades to V2 in rendered src', async () => {
251
+ const src = await captureRenderedSrc({ linkOverride: true });
252
+ expect(src).toContain('linkOverride=true');
253
+ expect(src).toContain('enableLinkOverridesV2=true');
254
+ });
255
+ test('enableLinkOverridesV2 → enableLinkOverridesV2 + linkOverride in rendered src', async () => {
256
+ const src = await captureRenderedSrc({ enableLinkOverridesV2: true });
257
+ expect(src).toContain('enableLinkOverridesV2=true');
258
+ expect(src).toContain('linkOverride=true');
259
+ });
260
+ test('disableRedirectionLinksInNewTab auto-disables V2 link overrides', async () => {
261
+ const src = await captureRenderedSrc({
262
+ enableLinkOverridesV2: true,
263
+ disableRedirectionLinksInNewTab: true,
264
+ });
265
+ expect(src).not.toContain('enableLinkOverridesV2=true');
266
+ expect(src).not.toContain('linkOverride=true');
267
+ expect(src).toContain('disableRedirectionLinksInNewTab=true');
268
+ });
269
+ test('disableRedirectionLinksInNewTab auto-disables V1 link override', async () => {
270
+ const src = await captureRenderedSrc({
271
+ linkOverride: true,
272
+ disableRedirectionLinksInNewTab: true,
273
+ });
274
+ expect(src).not.toContain('linkOverride=true');
275
+ expect(src).toContain('disableRedirectionLinksInNewTab=true');
276
+ });
277
+ test('additionalFlags → merged into rendered src', async () => {
278
+ const src = await captureRenderedSrc({ additionalFlags: { myFlag: 'hello', anotherFlag: 1 } });
279
+ expect(src).toContain('myFlag=hello');
280
+ expect(src).toContain('anotherFlag=1');
281
+ });
282
+ test('additionalFlags from viewConfig override those from init', async () => {
283
+ const src = await captureRenderedSrc({ additionalFlags: { overrideFlag: 'view' } });
284
+ expect(src).toContain('overrideFlag=view');
285
+ });
286
+ test('insertInToSlide → insertInToSlide param in rendered src', async () => {
287
+ const src = await captureRenderedSrc({ insertInToSlide: true });
288
+ expect(src).toContain('insertInToSlide=true');
289
+ });
290
+ test('customizations.iconSpriteUrl → iconSprite param in rendered src', async () => {
291
+ const src = await captureRenderedSrc({
292
+ customizations: { iconSpriteUrl: 'https://cdn.example.com/icons.svg' },
293
+ });
294
+ expect(src).toContain('iconSprite=cdn.example.com/icons.svg');
295
+ });
296
+ test('customizations.content.stringIDsUrl → overrideStringIDsUrl param in rendered src', async () => {
297
+ const src = await captureRenderedSrc({
298
+ customizations: { content: { stringIDsUrl: 'https://cdn.example.com/strings.json' } },
299
+ });
300
+ expect(src).toContain('overrideStringIDsUrl=');
301
+ });
302
+ test('multiple disabledActions → all actions serialised in rendered src', async () => {
303
+ const src = await captureRenderedSrc({
304
+ disabledActions: [Action.Pin, Action.Download, Action.Save],
305
+ });
306
+ expect(src).toContain('disableAction');
307
+ expect(src).toContain(Action.Pin);
308
+ expect(src).toContain(Action.Download);
309
+ expect(src).toContain(Action.Save);
310
+ });
311
+ test('multiple hiddenActions → all actions serialised in rendered src', async () => {
312
+ var _a, _b;
313
+ const src = await captureRenderedSrc({
314
+ hiddenActions: [Action.Pin, Action.Download],
315
+ });
316
+ const hideParam = decodeURIComponent((_b = (_a = src.split('hideAction=')[1]) === null || _a === void 0 ? void 0 : _a.split('&')[0]) !== null && _b !== void 0 ? _b : '');
317
+ const parsed = JSON.parse(hideParam);
318
+ expect(parsed).toContain(Action.Pin);
319
+ expect(parsed).toContain(Action.Download);
320
+ });
321
+ test('multiple visibleActions → all actions serialised in rendered src', async () => {
322
+ var _a, _b;
323
+ const src = await captureRenderedSrc({
324
+ visibleActions: [Action.Download, Action.Save, Action.Pin],
325
+ });
326
+ const visibleParam = decodeURIComponent((_b = (_a = src.split('visibleAction=')[1]) === null || _a === void 0 ? void 0 : _a.split('&')[0]) !== null && _b !== void 0 ? _b : '');
327
+ const parsed = JSON.parse(visibleParam);
328
+ expect(parsed).toContain(Action.Download);
329
+ expect(parsed).toContain(Action.Save);
330
+ expect(parsed).toContain(Action.Pin);
331
+ });
332
+ test('rendered src always contains a query string before the hash', async () => {
333
+ const src = await captureRenderedSrc();
334
+ expect(src).toMatch(/\?[^#]+#/);
335
+ });
336
+ });
337
+ // ─── frameParams forwarding ───────────────────────────────────────────────
338
+ describe('frameParams forwarding', () => {
339
+ test('frameParams.height and .width applied to the replacement iframe element', async () => {
340
+ var _a, _b, _c;
341
+ renderIFrameSpy.mockRestore();
342
+ renderIFrameSpy = jest.spyOn(TsEmbed.prototype, 'renderIFrame')
343
+ .mockResolvedValue(undefined);
344
+ const createIframeElSpy = jest.spyOn(TsEmbed.prototype, 'createIframeEl');
345
+ const observer = startAutoMCPFrameRenderer({ frameParams: { height: '600px', width: '100%' } });
346
+ const iframe = document.createElement('iframe');
347
+ iframe.src = TSMCP_SRC;
348
+ document.body.appendChild(iframe);
349
+ await new Promise((r) => setTimeout(r, 50));
350
+ if (createIframeElSpy.mock.calls.length > 0) {
351
+ const created = (_a = createIframeElSpy.mock.results[0]) === null || _a === void 0 ? void 0 : _a.value;
352
+ expect((_b = created === null || created === void 0 ? void 0 : created.style) === null || _b === void 0 ? void 0 : _b.height).toBe('600px');
353
+ expect((_c = created === null || created === void 0 ? void 0 : created.style) === null || _c === void 0 ? void 0 : _c.width).toBe('100%');
354
+ }
355
+ createIframeElSpy.mockRestore();
356
+ observer.disconnect();
357
+ });
358
+ test('frameParams custom HTML attributes applied to the iframe element', async () => {
359
+ var _a;
360
+ renderIFrameSpy.mockRestore();
361
+ renderIFrameSpy = jest.spyOn(TsEmbed.prototype, 'renderIFrame')
362
+ .mockResolvedValue(undefined);
363
+ const createIframeElSpy = jest.spyOn(TsEmbed.prototype, 'createIframeEl');
364
+ const observer = startAutoMCPFrameRenderer({
365
+ frameParams: { height: '400px', width: '800px', 'data-testid': 'my-embed' },
366
+ });
367
+ const iframe = document.createElement('iframe');
368
+ iframe.src = TSMCP_SRC;
369
+ document.body.appendChild(iframe);
370
+ await new Promise((r) => setTimeout(r, 50));
371
+ if (createIframeElSpy.mock.calls.length > 0) {
372
+ const created = (_a = createIframeElSpy.mock.results[0]) === null || _a === void 0 ? void 0 : _a.value;
373
+ expect(created === null || created === void 0 ? void 0 : created.getAttribute('data-testid')).toBe('my-embed');
374
+ }
375
+ createIframeElSpy.mockRestore();
376
+ observer.disconnect();
377
+ });
378
+ });
379
+ // ─── APP_INIT postMessage params forwarding ───────────────────────────────
380
+ //
381
+ // These params are not in the iframe src URL — they travel via the APP_INIT
382
+ // postMessage channel. AutoFrameRenderer inherits the TsEmbed APP_INIT
383
+ // handler, so the full round-trip is tested here.
384
+ describe('APP_INIT params forwarding', () => {
385
+ test('customizations.style.customCSS included in APP_INIT response', async () => {
386
+ var _a, _b, _c;
387
+ const customizations = {
388
+ style: { customCSS: { variables: { '--ts-var-root-background': '#fff' } } },
389
+ };
390
+ const response = await getAppInitResponse({ customizations });
391
+ expect((_c = (_b = (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.customisations) === null || _b === void 0 ? void 0 : _b.style) === null || _c === void 0 ? void 0 : _c.customCSS).toEqual(customizations.style.customCSS);
392
+ });
393
+ test('customizations.content.strings included in APP_INIT response', async () => {
394
+ var _a, _b, _c, _d;
395
+ const customizations = {
396
+ content: { strings: { DATA: 'Data' } },
397
+ };
398
+ const response = await getAppInitResponse({ customizations });
399
+ expect((_d = (_c = (_b = (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.customisations) === null || _b === void 0 ? void 0 : _b.content) === null || _c === void 0 ? void 0 : _c.strings) === null || _d === void 0 ? void 0 : _d.DATA).toBe('Data');
400
+ });
401
+ test('customActions included in APP_INIT response', async () => {
402
+ var _a;
403
+ const customActions = [
404
+ {
405
+ id: 'my-action',
406
+ name: 'My Action',
407
+ position: 'PRIMARY',
408
+ target: 'ANSWER',
409
+ },
410
+ ];
411
+ const response = await getAppInitResponse({ customActions });
412
+ expect((_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.customActions).toEqual(expect.arrayContaining([expect.objectContaining({ id: 'my-action' })]));
413
+ });
414
+ test('shouldBypassPayloadValidation forwarded via APP_INIT', async () => {
415
+ var _a;
416
+ const response = await getAppInitResponse({ shouldBypassPayloadValidation: true });
417
+ expect((_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.shouldBypassPayloadValidation).toBe(true);
418
+ });
419
+ test('useHostEventsV2 forwarded via APP_INIT', async () => {
420
+ var _a;
421
+ const response = await getAppInitResponse({ useHostEventsV2: true });
422
+ expect((_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.useHostEventsV2).toBe(true);
423
+ });
424
+ test('refreshAuthTokenOnNearExpiry forwarded as embedExpiryInAuthToken', async () => {
425
+ var _a;
426
+ const response = await getAppInitResponse({ refreshAuthTokenOnNearExpiry: true });
427
+ expect((_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.embedExpiryInAuthToken).toBe(true);
428
+ });
429
+ test('interceptUrls forwarded via APP_INIT', async () => {
430
+ var _a, _b;
431
+ // The SDK expands InterceptedApiType enum values into resolved prism endpoint URLs.
432
+ // Assert that the interceptUrls array is non-empty (i.e. the config was forwarded
433
+ // and processed) rather than checking the resolved strings directly.
434
+ const response = await getAppInitResponse({
435
+ interceptUrls: [InterceptedApiType.AnswerData],
436
+ });
437
+ expect((_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.interceptUrls).toBeInstanceOf(Array);
438
+ expect((_b = response === null || response === void 0 ? void 0 : response.data) === null || _b === void 0 ? void 0 : _b.interceptUrls.length).toBeGreaterThan(0);
439
+ });
440
+ test('interceptTimeout forwarded via APP_INIT', async () => {
441
+ var _a;
442
+ const response = await getAppInitResponse({ interceptTimeout: 5000 });
443
+ expect((_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.interceptTimeout).toBe(5000);
444
+ });
159
445
  });
446
+ // ─── getMCPIframeSrc URL construction ─────────────────────────────────────
160
447
  describe('getMCPIframeSrc URL construction', () => {
161
448
  test('should strip tsmcp param and merge embed params into rendered src', async () => {
162
449
  let capturedSrc = '';
163
450
  renderIFrameSpy.mockRestore();
164
- renderIFrameSpy = jest.spyOn(TsEmbed.prototype, 'renderIFrame').mockImplementation(async function (src) {
451
+ renderIFrameSpy = jest.spyOn(TsEmbed.prototype, 'renderIFrame')
452
+ .mockImplementation(async function (src) {
165
453
  capturedSrc = src;
166
454
  });
167
455
  const observer = startAutoMCPFrameRenderer();
@@ -171,12 +459,14 @@ describe('startAutoMCPFrameRenderer', () => {
171
459
  await new Promise((r) => setTimeout(r, 50));
172
460
  expect(capturedSrc).not.toContain(`${Param.Tsmcp}=true`);
173
461
  expect(capturedSrc).toContain('customParam=hello');
462
+ expect(capturedSrc).toMatch(/\?[^#]+#/);
174
463
  observer.disconnect();
175
464
  });
176
465
  test('should preserve hash from original iframe src', async () => {
177
466
  let capturedSrc = '';
178
467
  renderIFrameSpy.mockRestore();
179
- renderIFrameSpy = jest.spyOn(TsEmbed.prototype, 'renderIFrame').mockImplementation(async function (src) {
468
+ renderIFrameSpy = jest.spyOn(TsEmbed.prototype, 'renderIFrame')
469
+ .mockImplementation(async function (src) {
180
470
  capturedSrc = src;
181
471
  });
182
472
  const observer = startAutoMCPFrameRenderer();
@@ -187,6 +477,95 @@ describe('startAutoMCPFrameRenderer', () => {
187
477
  expect(capturedSrc).toContain('/embed/viz/lb123');
188
478
  observer.disconnect();
189
479
  });
480
+ test('should produce empty query string when no embed params and no source params', async () => {
481
+ let capturedSrc = '';
482
+ renderIFrameSpy.mockRestore();
483
+ renderIFrameSpy = jest.spyOn(TsEmbed.prototype, 'renderIFrame')
484
+ .mockImplementation(async function (src) {
485
+ capturedSrc = src;
486
+ });
487
+ const observer = startAutoMCPFrameRenderer();
488
+ const iframe = document.createElement('iframe');
489
+ // Only tsmcp (stripped) — no other params
490
+ iframe.src = `https://${thoughtSpotHost}/?${Param.Tsmcp}=true`;
491
+ document.body.appendChild(iframe);
492
+ await new Promise((r) => setTimeout(r, 50));
493
+ // At minimum the base embed params (hostAppUrl, sdkVersion, etc.) are always present
494
+ expect(capturedSrc).toMatch(/\?[^#]+#/);
495
+ observer.disconnect();
496
+ });
497
+ test('source params take precedence over viewConfig params for the same key', async () => {
498
+ let capturedSrc = '';
499
+ renderIFrameSpy.mockRestore();
500
+ renderIFrameSpy = jest.spyOn(TsEmbed.prototype, 'renderIFrame')
501
+ .mockImplementation(async function (src) {
502
+ capturedSrc = src;
503
+ });
504
+ const observer = startAutoMCPFrameRenderer({ additionalFlags: { locale: 'en-US' } });
505
+ const iframe = document.createElement('iframe');
506
+ // Source overrides with de-DE
507
+ iframe.src = `https://${thoughtSpotHost}/v2/?${Param.Tsmcp}=true&locale=de-DE#/embed/viz`;
508
+ document.body.appendChild(iframe);
509
+ await new Promise((r) => setTimeout(r, 50));
510
+ expect(capturedSrc).toContain('locale=de-DE');
511
+ observer.disconnect();
512
+ });
513
+ });
514
+ // ─── URL serialization parity with normal embeds ──────────────────────────
515
+ //
516
+ // These tests verify that array-typed params (hideAction, disableAction,
517
+ // visibleAction) are serialized identically by startAutoMCPFrameRenderer
518
+ // and by a standard LiveboardEmbed. Both must emit JSON arrays
519
+ // (e.g. ["pin"]) not CSV (e.g. pin) so ThoughtSpot's app honours them.
520
+ describe('URL serialization parity with LiveboardEmbed', () => {
521
+ async function captureLiveboardSrc(viewConfig) {
522
+ let capturedSrc = '';
523
+ renderIFrameSpy.mockRestore();
524
+ renderIFrameSpy = jest.spyOn(TsEmbed.prototype, 'renderIFrame')
525
+ .mockImplementation(async function (src) {
526
+ capturedSrc = src;
527
+ });
528
+ const embed = new LiveboardEmbed(getRootEl(), {
529
+ liveboardId: 'test-lb',
530
+ ...viewConfig,
531
+ });
532
+ embed.render();
533
+ await new Promise((r) => setTimeout(r, 50));
534
+ return capturedSrc;
535
+ }
536
+ function getQueryParam(url, param) {
537
+ const qIdx = url.indexOf('?');
538
+ const hIdx = url.indexOf('#');
539
+ if (qIdx === -1)
540
+ return null;
541
+ const qs = hIdx === -1 ? url.slice(qIdx + 1) : url.slice(qIdx + 1, hIdx);
542
+ return new URLSearchParams(qs).get(param);
543
+ }
544
+ test.each([
545
+ ['hiddenActions', { hiddenActions: [Action.Pin] }, 'hideAction'],
546
+ ['disabledActions', { disabledActions: [Action.Pin] }, 'disableAction'],
547
+ ['visibleActions', { visibleActions: [Action.Download] }, 'visibleAction'],
548
+ ])('%s: auto-renderer and LiveboardEmbed produce identical param format', async (_, viewConfig, paramName) => {
549
+ const liveboardSrc = await captureLiveboardSrc(viewConfig);
550
+ const autoSrc = await captureRenderedSrc(viewConfig);
551
+ const liveboardValue = getQueryParam(liveboardSrc, paramName);
552
+ const autoValue = getQueryParam(autoSrc, paramName);
553
+ expect(autoValue).not.toBeNull();
554
+ expect(liveboardValue).not.toBeNull();
555
+ expect(autoValue).toBe(liveboardValue);
556
+ });
557
+ test('hideAction value is a JSON array, not CSV', async () => {
558
+ const autoSrc = await captureRenderedSrc({ hiddenActions: [Action.Pin] });
559
+ const liveboardSrc = await captureLiveboardSrc({ hiddenActions: [Action.Pin] });
560
+ const autoValue = getQueryParam(autoSrc, 'hideAction');
561
+ const liveboardValue = getQueryParam(liveboardSrc, 'hideAction');
562
+ // Both must parse as a JSON array — not CSV like "reportError,pin"
563
+ expect(() => JSON.parse(autoValue)).not.toThrow();
564
+ expect(() => JSON.parse(liveboardValue)).not.toThrow();
565
+ expect(Array.isArray(JSON.parse(autoValue))).toBe(true);
566
+ expect(Array.isArray(JSON.parse(liveboardValue))).toBe(true);
567
+ expect(JSON.parse(autoValue)).toEqual(JSON.parse(liveboardValue));
568
+ });
190
569
  });
191
570
  });
192
571
  //# sourceMappingURL=auto-frame-renderer.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auto-frame-renderer.spec.js","sourceRoot":"","sources":["../../../src/embed/auto-frame-renderer.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auto-frame-renderer.spec.js","sourceRoot":"","sources":["../../../src/embed/auto-frame-renderer.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAkC,UAAU,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACnH,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,YAAY,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,cAAc,EAAuB,MAAM,aAAa,CAAC;AAClE,OAAO,EACH,eAAe,EACf,SAAS,EACT,mBAAmB,GACtB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,eAAe,GAAG,QAAQ,CAAC;AACjC,MAAM,SAAS,GAAG,WAAW,eAAe,QAAQ,KAAK,CAAC,KAAK,sBAAsB,CAAC;AAEtF,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACvC,IAAI,eAAiC,CAAC;IACtC,IAAI,mBAAqC,CAAC;IAE1C,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,CAAC;YACD,eAAe;YACf,QAAQ,EAAE,QAAQ,CAAC,IAAI;SAC1B,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QAClG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,GAAG,EAAE;QACZ,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,eAAe,EAAE,CAAC;QAC5C,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAC5B,OAAO,CAAC,SAAgB,EACxB,kBAAkB,CACrB,CAAC,kBAAkB,CAAC,UAAqB,KAAa;YACnD,OAAO,UAAU,eAAe,IAAI,KAAK,GAAG,CAAC;QACjD,CAAC,CAAC,CAAC;QACH,eAAe,GAAG,IAAI,CAAC,KAAK,CACxB,OAAO,CAAC,SAAgB,EACxB,cAAc,CACjB,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACX,eAAe,CAAC,WAAW,EAAE,CAAC;QAC9B,mBAAmB,CAAC,WAAW,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,6EAA6E;IAE7E,8EAA8E;IAC9E,KAAK,UAAU,kBAAkB,CAAC,aAA6C,EAAE;QAC7E,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,eAAe,CAAC,WAAW,EAAE,CAAC;QAC9B,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAgB,EAAE,cAAc,CAAC;aACjE,kBAAkB,CAAC,KAAK,WAAsB,GAAW;YACtD,WAAW,GAAG,GAAG,CAAC;QACtB,CAAC,CAAC,CAAC;QAEP,MAAM,QAAQ,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,CAAC,GAAG,GAAG,SAAS,CAAC;QACvB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5C,QAAQ,CAAC,UAAU,EAAE,CAAC;QACtB,OAAO,WAAW,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,KAAK,UAAU,kBAAkB,CAAC,aAA6C,EAAE;;QAC7E,eAAe,CAAC,WAAW,EAAE,CAAC;QAC9B,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAgB,EAAE,cAAc,CAAC;aACjE,kBAAkB,CAAC,KAAK,WAAsB,GAAW;YACtD,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;YACjB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAC9B,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;QAEP,MAAM,QAAQ,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC;QACvD,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACrD,WAAW,CAAC,GAAG,GAAG,SAAS,CAAC;QAC5B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACvC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAE5C,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;QACjD,mBAAmB,CAAC,cAAc,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;QACrG,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAE5C,QAAQ,CAAC,UAAU,EAAE,CAAC;QACtB,OAAO,MAAA,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,0CAAG,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,6EAA6E;IAE7E,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACpC,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,QAAQ,GAAG,yBAAyB,EAAE,CAAC;YAC7C,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;YAClD,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,yDAAyD,EAAE,GAAG,EAAE;YACjE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACrE,MAAM,QAAQ,GAAG,yBAAyB,EAAE,CAAC;YAC7C,MAAM,CAAC,UAAU,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,EAAE;gBACnD,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,IAAI;aAChB,CAAC,CAAC;YACH,QAAQ,CAAC,UAAU,EAAE,CAAC;YACtB,UAAU,CAAC,WAAW,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,6EAA6E;IAE7E,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC9C,IAAI,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACrE,MAAM,QAAQ,GAAG,yBAAyB,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,GAAG,GAAG,WAAW,eAAe,QAAQ,KAAK,CAAC,KAAK,2BAA2B,CAAC;YACtF,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,eAAe,CAAC,CAAC,gBAAgB,EAAE,CAAC;YAC3C,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;YAC9D,MAAM,QAAQ,GAAG,yBAAyB,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,GAAG,GAAG,WAAW,eAAe,mCAAmC,CAAC;YAC3E,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YAC/C,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;YACzE,MAAM,QAAQ,GAAG,yBAAyB,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,GAAG,GAAG,WAAW,eAAe,KAAK,KAAK,CAAC,KAAK,OAAO,CAAC;YAC/D,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC5B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACnC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,eAAe,CAAC,CAAC,gBAAgB,EAAE,CAAC;YAC3C,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACrE,MAAM,QAAQ,GAAG,yBAAyB,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,GAAG,GAAG,WAAW,eAAe,iBAAiB,CAAC;YACzD,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC5B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACnC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YAC/C,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACtD,MAAM,QAAQ,GAAG,yBAAyB,EAAE,CAAC;YAC7C,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC1C,GAAG,CAAC,WAAW,GAAG,GAAG,KAAK,CAAC,KAAK,OAAO,CAAC;YACxC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC/B,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YAC/C,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;YACxC,MAAM,QAAQ,GAAG,yBAAyB,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;YACnD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YAC/C,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACrE,MAAM,QAAQ,GAAG,yBAAyB,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC9C,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,GAAG,WAAW,eAAe,KAAK,KAAK,CAAC,KAAK,YAAY,CAAC;YACrE,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,GAAG,WAAW,eAAe,KAAK,KAAK,CAAC,KAAK,YAAY,CAAC;YACrE,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC7B,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC7B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACnC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,eAAe,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACjD,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,QAAQ,GAAG,yBAAyB,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,GAAG,GAAG,aAAa,CAAC;YAC3B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YAC/C,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,6EAA6E;IAE7E,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAC7C,IAAI,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;YAChF,eAAe,CAAC,WAAW,EAAE,CAAC;YAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;YAC7B,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAgB,EAAE,cAAc,CAAC;iBACjE,kBAAkB,CAAC,KAAK;gBACrB,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACnD,SAAS,CAAC,GAAG,GAAG,8BAA8B,CAAC;gBAC/C,IAAI,CAAC,cAAc,CAAC,WAAW,GAAG,UAAU,CAAC;gBAC7C,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;YAEP,MAAM,QAAQ,GAAG,yBAAyB,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,GAAG,GAAG,WAAW,eAAe,KAAK,KAAK,CAAC,KAAK,OAAO,CAAC;YAC/D,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,UAAU,CAAC,CAAC,gBAAgB,EAAE,CAAC;YACtC,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,6EAA6E;IAE7E,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACnC,IAAI,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,MAAM,QAAQ,GAAG,yBAAyB,CAAC,EAAE,CAAC,CAAC;YAC/C,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;YAClD,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,4BAA4B,EAAE,GAAG,EAAE;YACpC,MAAM,QAAQ,GAAG,yBAAyB,EAAE,CAAC;YAC7C,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;YAClD,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,EAAE,eAAe,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACxE,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;YAClE,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC;gBACjC,eAAe,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC;gBAC7B,oBAAoB,EAAE,kBAAkB;aAC3C,CAAC,CAAC;YACH,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;YACxE,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,EAAE,aAAa,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACtE,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5F,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;YAC9D,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,EAAE,cAAc,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC5E,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;YACrD,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YAC1D,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC7D,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3D,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;YAC3E,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,CAAC;YACrE,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;YACvE,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,EAAE,+BAA+B,EAAE,IAAI,EAAE,CAAC,CAAC;YAChF,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,sCAAsC,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5D,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACrE,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7D,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;YAC3C,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,8EAA8E,EAAE,KAAK,IAAI,EAAE;YAC5F,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC;YACtE,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;YACpD,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;YAC/E,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC;gBACjC,qBAAqB,EAAE,IAAI;gBAC3B,+BAA+B,EAAE,IAAI;aACxC,CAAC,CAAC;YACH,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;YACxD,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;YAC/C,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,sCAAsC,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;YAC9E,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC;gBACjC,YAAY,EAAE,IAAI;gBAClB,+BAA+B,EAAE,IAAI;aACxC,CAAC,CAAC;YACH,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;YAC/C,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,sCAAsC,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAC/F,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YACtC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;YACxE,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,EAAE,eAAe,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YACpF,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;YACvE,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;YAChE,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;YAC/E,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC;gBACjC,cAAc,EAAE,EAAE,aAAa,EAAE,mCAAmC,EAAE;aACzE,CAAC,CAAC;YACH,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,sCAAsC,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,kFAAkF,EAAE,KAAK,IAAI,EAAE;YAChG,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC;gBACjC,cAAc,EAAE,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,sCAAsC,EAAE,EAAE;aACxF,CAAC,CAAC;YACH,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;YACjF,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC;gBACjC,eAAe,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC;aAC9D,CAAC,CAAC;YACH,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YACvC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACvC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;;YAC/E,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC;gBACjC,aAAa,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC;aAC/C,CAAC,CAAC;YACH,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAA,MAAA,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,0CAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,mCAAI,EAAE,CAAC,CAAC;YACvF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACrC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACrC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;;YAChF,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC;gBACjC,cAAc,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC;aAC7D,CAAC,CAAC;YACH,MAAM,YAAY,GAAG,kBAAkB,CAAC,MAAA,MAAA,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,0CAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,mCAAI,EAAE,CAAC,CAAC;YAC7F,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACxC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;YAC3E,MAAM,GAAG,GAAG,MAAM,kBAAkB,EAAE,CAAC;YACvC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,6EAA6E;IAE7E,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACpC,IAAI,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;;YACvF,eAAe,CAAC,WAAW,EAAE,CAAC;YAC9B,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAgB,EAAE,cAAc,CAAC;iBACjE,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAClC,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAgB,EAAE,gBAAgB,CAAC,CAAC;YAEjF,MAAM,QAAQ,GAAG,yBAAyB,CAAC,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YAChG,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,GAAG,GAAG,SAAS,CAAC;YACvB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAE5C,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzC,MAAM,OAAO,GAAG,MAAA,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,0CAAE,KAA0B,CAAC;gBAC9E,MAAM,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,0CAAE,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC7C,MAAM,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,0CAAE,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAC9C;YACD,iBAAiB,CAAC,WAAW,EAAE,CAAC;YAChC,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;;YAChF,eAAe,CAAC,WAAW,EAAE,CAAC;YAC9B,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAgB,EAAE,cAAc,CAAC;iBACjE,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAClC,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAgB,EAAE,gBAAgB,CAAC,CAAC;YAEjF,MAAM,QAAQ,GAAG,yBAAyB,CAAC;gBACvC,WAAW,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAS;aACrF,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,GAAG,GAAG,SAAS,CAAC;YACvB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAE5C,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzC,MAAM,OAAO,GAAG,MAAA,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,0CAAE,KAA0B,CAAC;gBAC9E,MAAM,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACjE;YACD,iBAAiB,CAAC,WAAW,EAAE,CAAC;YAChC,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,6EAA6E;IAC7E,EAAE;IACF,4EAA4E;IAC5E,uEAAuE;IACvE,kDAAkD;IAElD,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACxC,IAAI,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;;YAC5E,MAAM,cAAc,GAAG;gBACnB,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,EAAE,0BAA0B,EAAE,MAAM,EAAE,EAAE,EAAE;aAC9E,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;YAC9D,MAAM,CAAC,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,cAAc,0CAAE,KAAK,0CAAE,SAAS,CAAC,CAAC,OAAO,CAC5D,cAAc,CAAC,KAAK,CAAC,SAAS,CACjC,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;;YAC5E,MAAM,cAAc,GAAG;gBACnB,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;aACzC,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;YAC9D,MAAM,CAAC,MAAA,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,cAAc,0CAAE,OAAO,0CAAE,OAAO,0CAAE,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;;YAC3D,MAAM,aAAa,GAAG;gBAClB;oBACI,EAAE,EAAE,WAAW;oBACf,IAAI,EAAE,WAAW;oBACjB,QAAQ,EAAE,SAAgB;oBAC1B,MAAM,EAAE,QAAe;iBAC1B;aACJ,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;YAC7D,MAAM,CAAC,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,aAAa,CAAC,CAAC,OAAO,CACzC,MAAM,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,CACzE,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;;YACpE,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,EAAE,6BAA6B,EAAE,IAAI,EAAE,CAAC,CAAC;YACnF,MAAM,CAAC,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,6BAA6B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;;YACtD,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;YACrE,MAAM,CAAC,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;;YAChF,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,EAAE,4BAA4B,EAAE,IAAI,EAAE,CAAC,CAAC;YAClF,MAAM,CAAC,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,sBAAsB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;;YACpD,oFAAoF;YACpF,kFAAkF;YAClF,qEAAqE;YACrE,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC;gBACtC,aAAa,EAAE,CAAC,kBAAkB,CAAC,UAAU,CAAC;aACjD,CAAC,CAAC;YACH,MAAM,CAAC,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,aAAa,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAC5D,MAAM,CAAC,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,aAAa,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;;YACvD,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;YACtE,MAAM,CAAC,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,6EAA6E;IAE7E,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC9C,IAAI,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;YACjF,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,eAAe,CAAC,WAAW,EAAE,CAAC;YAC9B,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAgB,EAAE,cAAc,CAAC;iBACjE,kBAAkB,CAAC,KAAK,WAAsB,GAAW;gBACtD,WAAW,GAAG,GAAG,CAAC;YACtB,CAAC,CAAC,CAAC;YAEP,MAAM,QAAQ,GAAG,yBAAyB,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,GAAG,GAAG,WAAW,eAAe,QAAQ,KAAK,CAAC,KAAK,oCAAoC,CAAC;YAC/F,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAE5C,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,KAAK,OAAO,CAAC,CAAC;YACzD,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;YACnD,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACxC,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC7D,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,eAAe,CAAC,WAAW,EAAE,CAAC;YAC9B,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAgB,EAAE,cAAc,CAAC;iBACjE,kBAAkB,CAAC,KAAK,WAAsB,GAAW;gBACtD,WAAW,GAAG,GAAG,CAAC;YACtB,CAAC,CAAC,CAAC;YAEP,MAAM,QAAQ,GAAG,yBAAyB,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,GAAG,GAAG,WAAW,eAAe,QAAQ,KAAK,CAAC,KAAK,wBAAwB,CAAC;YACnF,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAE5C,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;YAClD,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;YAC3F,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,eAAe,CAAC,WAAW,EAAE,CAAC;YAC9B,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAgB,EAAE,cAAc,CAAC;iBACjE,kBAAkB,CAAC,KAAK,WAAsB,GAAW;gBACtD,WAAW,GAAG,GAAG,CAAC;YACtB,CAAC,CAAC,CAAC;YAEP,MAAM,QAAQ,GAAG,yBAAyB,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,0CAA0C;YAC1C,MAAM,CAAC,GAAG,GAAG,WAAW,eAAe,KAAK,KAAK,CAAC,KAAK,OAAO,CAAC;YAC/D,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAE5C,qFAAqF;YACrF,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACxC,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;YACrF,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,eAAe,CAAC,WAAW,EAAE,CAAC;YAC9B,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAgB,EAAE,cAAc,CAAC;iBACjE,kBAAkB,CAAC,KAAK,WAAsB,GAAW;gBACtD,WAAW,GAAG,GAAG,CAAC;YACtB,CAAC,CAAC,CAAC;YAEP,MAAM,QAAQ,GAAG,yBAAyB,CAAC,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;YACrF,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,8BAA8B;YAC9B,MAAM,CAAC,GAAG,GAAG,WAAW,eAAe,QAAQ,KAAK,CAAC,KAAK,+BAA+B,CAAC;YAC1F,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAE5C,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YAC9C,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,6EAA6E;IAC7E,EAAE;IACF,yEAAyE;IACzE,yEAAyE;IACzE,+DAA+D;IAC/D,uEAAuE;IAEvE,QAAQ,CAAC,8CAA8C,EAAE,GAAG,EAAE;QAC1D,KAAK,UAAU,mBAAmB,CAC9B,UAAwC;YAExC,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,eAAe,CAAC,WAAW,EAAE,CAAC;YAC9B,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAgB,EAAE,cAAc,CAAC;iBACjE,kBAAkB,CAAC,KAAK,WAAsB,GAAW;gBACtD,WAAW,GAAG,GAAG,CAAC;YACtB,CAAC,CAAC,CAAC;YACP,MAAM,KAAK,GAAG,IAAI,cAAc,CAAC,SAAS,EAAE,EAAE;gBAC1C,WAAW,EAAE,SAAS;gBACtB,GAAG,UAAU;aAChB,CAAC,CAAC;YACH,KAAK,CAAC,MAAM,EAAE,CAAC;YACf,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC5C,OAAO,WAAW,CAAC;QACvB,CAAC;QAED,SAAS,aAAa,CAAC,GAAW,EAAE,KAAa;YAC7C,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,IAAI,KAAK,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC7B,MAAM,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;YACzE,OAAO,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,IAAI,CAAC;YACN,CAAC,eAAe,EAAE,EAAE,aAAa,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,YAAY,CAAC;YAChE,CAAC,iBAAiB,EAAE,EAAE,eAAe,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,eAAe,CAAC;YACvE,CAAC,gBAAgB,EAAE,EAAE,cAAc,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,eAAe,CAAC;SAC7E,CAAC,CACE,qEAAqE,EACrE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE;YAC/B,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC,UAAU,CAAC,CAAC;YAC3D,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,UAAU,CAAC,CAAC;YAErD,MAAM,cAAc,GAAG,aAAa,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;YAC9D,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAEpD,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YACjC,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YACtC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3C,CAAC,CACJ,CAAC;QAEF,IAAI,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,EAAE,aAAa,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC1E,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC,EAAE,aAAa,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEhF,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACvD,MAAM,cAAc,GAAG,aAAa,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;YAEjE,mEAAmE;YACnE,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YAClD,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACvD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7D,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -37,6 +37,7 @@ export declare const prefetch: (url?: string, prefetchFeatures?: PrefetchFeature
37
37
  }) => void;
38
38
  export declare const createAndSetInitPromise: () => void;
39
39
  export declare const getInitPromise: () => Promise<ReturnType<typeof init>>;
40
+ export declare const getIsInitCompleted: () => boolean;
40
41
  export declare const getIsInitCalled: () => boolean;
41
42
  /**
42
43
  * Initializes the Visual Embed SDK globally and perform
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/embed/base.ts"],"names":[],"mappings":"AAaA,OAAO,EACO,WAAW,EAAmB,gBAAgB,EAC3D,MAAM,UAAU,CAAC;AAClB,OAAO,EAMH,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,EAEZ,gBAAgB,EAEnB,MAAM,SAAS,CAAC;AACjB,OAAO,kCAAkC,CAAC;AAgB1C,MAAM,WAAW,eAAe;IAC5B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,SAAS,GAAG,aAAa,GAAG,eAAe,CAAC;IAC5D,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE;QACN,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,eAAe,GAAG,YAAY,CAAC;KAClE,EAAE,CAAC;IACJ,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACjC;AAED,eAAO,IAAI,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEzC,eAAO,MAAM,cAAc,QAAO,QAAQ,OAAO,CAAgB,CAAC;AAElE,OAAO,EACH,iBAAiB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,YAAY,GAC3E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,QAAO,QAAQ,OAAO,CAiB5C,CAAC;AASF;;;;;;;;;GASG;AACH,eAAO,MAAM,QAAQ,SACX,MAAM,qBACO,gBAAgB,EAAE;;MAEtC,IAyCF,CAAC;AAoCF,eAAO,MAAM,uBAAuB,QAAO,IAiB1C,CAAC;AAIF,eAAO,MAAM,cAAc,QACvB,QACE,WAAW,WAAW,CAAC,CACuC,CAAC;AAErE,eAAO,MAAM,eAAe,QAAO,OAA0D,CAAC;AAE9F;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,IAAI,gBAAiB,WAAW,KAAG,gBAAgB,GAAG,IAuClE,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,MAAM,uCAAoC,QAAQ,OAAO,CAQrE,CAAC;AAIF;;;;GAIG;AACH,eAAO,MAAM,aAAa,sBAAuB,GAAG,KAAK,IAAI,KAAK,QAAQ,GAAG,CAAC,KAAG,QAAQ,GAAG,CAQ3F,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,UAAU,SAAgB,eAAe,KAAG,QAAQ,GAAG,CAmCnE,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,SAAS,SAAgB,cAAc,KAAG,QAAQ,GAAG,CAoCjE,CAAC;AAGF;;GAEG;AACH,wBAAgB,KAAK,IAAI,IAAI,CAI5B;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY,WAAY,iBAAiB,SAMrD,CAAC"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/embed/base.ts"],"names":[],"mappings":"AAaA,OAAO,EACO,WAAW,EAAmB,gBAAgB,EAC3D,MAAM,UAAU,CAAC;AAClB,OAAO,EAMH,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,EAEZ,gBAAgB,EAEnB,MAAM,SAAS,CAAC;AACjB,OAAO,kCAAkC,CAAC;AAgB1C,MAAM,WAAW,eAAe;IAC5B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,SAAS,GAAG,aAAa,GAAG,eAAe,CAAC;IAC5D,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE;QACN,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,eAAe,GAAG,YAAY,CAAC;KAClE,EAAE,CAAC;IACJ,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACjC;AAED,eAAO,IAAI,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEzC,eAAO,MAAM,cAAc,QAAO,QAAQ,OAAO,CAAgB,CAAC;AAElE,OAAO,EACH,iBAAiB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,YAAY,GAC3E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,QAAO,QAAQ,OAAO,CAiB5C,CAAC;AASF;;;;;;;;;GASG;AACH,eAAO,MAAM,QAAQ,SACX,MAAM,qBACO,gBAAgB,EAAE;;MAEtC,IAyCF,CAAC;AAqCF,eAAO,MAAM,uBAAuB,QAAO,IA2B1C,CAAC;AAIF,eAAO,MAAM,cAAc,QACvB,QACI,WAAW,WAAW,CAAC,CACqC,CAAC;AAErE,eAAO,MAAM,kBAAkB,QAAO,OAC+B,CAAC;AAEtE,eAAO,MAAM,eAAe,QAAO,OAA0D,CAAC;AAE9F;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,IAAI,gBAAiB,WAAW,KAAG,gBAAgB,GAAG,IAuClE,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,MAAM,uCAAoC,QAAQ,OAAO,CAQrE,CAAC;AAIF;;;;GAIG;AACH,eAAO,MAAM,aAAa,sBAAuB,GAAG,KAAK,IAAI,KAAK,QAAQ,GAAG,CAAC,KAAG,QAAQ,GAAG,CAQ3F,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,UAAU,SAAgB,eAAe,KAAG,QAAQ,GAAG,CAmCnE,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,SAAS,SAAgB,cAAc,KAAG,QAAQ,GAAG,CAoCjE,CAAC;AAGF;;GAEG;AACH,wBAAgB,KAAK,IAAI,IAAI,CAI5B;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY,WAAY,iBAAiB,SAMrD,CAAC"}
@@ -136,15 +136,26 @@ export const createAndSetInitPromise = () => {
136
136
  const initFlagStore = {
137
137
  initPromise,
138
138
  isInitCalled: false,
139
+ isInitCompleted: false,
139
140
  initPromiseResolve,
140
141
  };
141
142
  storeValueInWindow(initFlagKey, initFlagStore, {
142
143
  // In case of diff imports the promise might be already set
143
144
  ignoreIfAlreadyExists: true,
144
145
  });
146
+ initPromise.finally(() => {
147
+ const curVal = getValueFromWindow(initFlagKey);
148
+ if (!curVal) {
149
+ logger.error('initFlagStore missing when marking init complete');
150
+ return;
151
+ }
152
+ curVal.isInitCompleted = true;
153
+ storeValueInWindow(initFlagKey, curVal);
154
+ });
145
155
  };
146
156
  createAndSetInitPromise();
147
157
  export const getInitPromise = () => { var _a; return (_a = getValueFromWindow(initFlagKey)) === null || _a === void 0 ? void 0 : _a.initPromise; };
158
+ export const getIsInitCompleted = () => { var _a; return !!((_a = getValueFromWindow(initFlagKey)) === null || _a === void 0 ? void 0 : _a.isInitCompleted); };
148
159
  export const getIsInitCalled = () => { var _a; return !!((_a = getValueFromWindow(initFlagKey)) === null || _a === void 0 ? void 0 : _a.isInitCalled); };
149
160
  /**
150
161
  * Initializes the Visual Embed SDK globally and perform