@arcgis/coding-components 4.30.0-next.10 → 4.30.0-next.102

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 (188) hide show
  1. package/LICENSE.md +1 -1
  2. package/README.md +2 -4
  3. package/dist/arcgis-coding-components/arcgis-coding-components.css +1 -1
  4. package/dist/arcgis-coding-components/arcgis-coding-components.esm.js +2 -2
  5. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.ar.json +25 -0
  6. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.bg.json +25 -0
  7. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.bs.json +25 -0
  8. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.ca.json +25 -0
  9. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.cs.json +25 -0
  10. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.da.json +25 -0
  11. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.de.json +25 -0
  12. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.el.json +25 -0
  13. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.en.json +25 -0
  14. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.es.json +25 -0
  15. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.et.json +25 -0
  16. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.fi.json +25 -0
  17. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.fr.json +25 -0
  18. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.he.json +25 -0
  19. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.hr.json +25 -0
  20. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.hu.json +25 -0
  21. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.id.json +25 -0
  22. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.it.json +25 -0
  23. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.ja.json +25 -0
  24. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.ko.json +25 -0
  25. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.lt.json +25 -0
  26. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.lv.json +25 -0
  27. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.nb.json +25 -0
  28. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.nl.json +25 -0
  29. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.pl.json +25 -0
  30. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.pt-BR.json +25 -0
  31. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.pt-PT.json +25 -0
  32. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.ro.json +25 -0
  33. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.ru.json +25 -0
  34. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.sk.json +25 -0
  35. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.sl.json +25 -0
  36. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.sr.json +25 -0
  37. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.sv.json +25 -0
  38. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.th.json +25 -0
  39. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.tr.json +25 -0
  40. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.uk.json +25 -0
  41. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.vi.json +25 -0
  42. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.zh-CN.json +25 -0
  43. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.zh-HK.json +25 -0
  44. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.zh-TW.json +25 -0
  45. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.ar.json +2 -0
  46. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.bg.json +2 -0
  47. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.bs.json +2 -0
  48. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.ca.json +2 -0
  49. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.cs.json +2 -0
  50. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.da.json +2 -0
  51. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.de.json +2 -0
  52. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.el.json +2 -0
  53. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.es.json +2 -0
  54. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.et.json +2 -0
  55. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.fi.json +2 -0
  56. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.fr.json +2 -0
  57. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.he.json +2 -0
  58. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.hr.json +2 -0
  59. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.hu.json +2 -0
  60. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.id.json +2 -0
  61. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.it.json +2 -0
  62. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.ja.json +2 -0
  63. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.ko.json +2 -0
  64. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.lt.json +2 -0
  65. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.lv.json +2 -0
  66. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.nb.json +2 -0
  67. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.nl.json +2 -0
  68. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.pl.json +2 -0
  69. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.pt-BR.json +2 -0
  70. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.pt-PT.json +2 -0
  71. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.ro.json +2 -0
  72. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.ru.json +2 -0
  73. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.sk.json +2 -0
  74. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.sl.json +2 -0
  75. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.sr.json +2 -0
  76. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.sv.json +2 -0
  77. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.th.json +2 -0
  78. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.tr.json +2 -0
  79. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.uk.json +2 -0
  80. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.vi.json +2 -0
  81. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.zh-CN.json +2 -0
  82. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.zh-HK.json +2 -0
  83. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.zh-TW.json +2 -0
  84. package/dist/arcgis-coding-components/assets/code-editor/arcade.worker.js +2 -2
  85. package/dist/arcgis-coding-components/assets/code-editor/css.worker.js +1 -1
  86. package/dist/arcgis-coding-components/assets/code-editor/editor.worker.js +1 -1
  87. package/dist/arcgis-coding-components/assets/code-editor/html.worker.js +1 -1
  88. package/dist/arcgis-coding-components/assets/code-editor/json.worker.js +1 -1
  89. package/dist/arcgis-coding-components/assets/code-editor/ts.worker.js +1 -1
  90. package/dist/arcgis-coding-components/index.esm.js +2 -2
  91. package/dist/arcgis-coding-components/{p-4d5f58aa.js → p-0e27884f.js} +2 -2
  92. package/dist/arcgis-coding-components/{p-b12b2a1b.js → p-231efbff.js} +2 -2
  93. package/dist/arcgis-coding-components/p-47e96d81.js +6 -0
  94. package/dist/arcgis-coding-components/{p-655e7a9e.js → p-5ba3777a.js} +2 -2
  95. package/dist/arcgis-coding-components/p-631bbbfb.js +6 -0
  96. package/dist/arcgis-coding-components/p-6539bce3.entry.js +6 -0
  97. package/dist/arcgis-coding-components/p-73947f7a.js +7 -0
  98. package/dist/arcgis-coding-components/{p-8ee18d5c.js → p-84b8c9be.js} +2 -2
  99. package/dist/arcgis-coding-components/{p-2dcffe0e.js → p-af5781fa.js} +2 -2
  100. package/dist/arcgis-coding-components/p-dc127e91.js +68 -0
  101. package/dist/arcgis-coding-components/{p-b4339ec6.js → p-dd7c0171.js} +3 -3
  102. package/dist/arcgis-coding-components/{p-87f8241f.js → p-de337f9b.js} +3 -3
  103. package/dist/arcgis-coding-components/{p-cb0f0e5f.js → p-ec38da7b.js} +1 -1
  104. package/dist/cjs/app-globals-a39a1193.js +10 -0
  105. package/dist/cjs/{arcade-defaults-38ad9b42.js → arcade-defaults-e23b311c.js} +729 -289
  106. package/dist/cjs/{arcade-mode-9581409d.js → arcade-mode-580faadf.js} +78 -84
  107. package/dist/cjs/arcgis-arcade-api_6.cjs.entry.js +1611 -239
  108. package/dist/cjs/arcgis-coding-components.cjs.js +14 -12
  109. package/dist/cjs/{css-2fde7503.js → css-6d9d8b18.js} +1 -1
  110. package/dist/cjs/{cssMode-9815a287.js → cssMode-58ba7a48.js} +3 -3
  111. package/dist/cjs/{html-6caa7fc2.js → html-6babf2d9.js} +3 -3
  112. package/dist/cjs/{htmlMode-8d4e7d24.js → htmlMode-d3fcee1c.js} +3 -3
  113. package/dist/cjs/index-70d2e15c.js +1303 -0
  114. package/dist/cjs/index.cjs.js +3 -3
  115. package/dist/cjs/{javascript-15b22f67.js → javascript-68e357b7.js} +4 -4
  116. package/dist/cjs/{jsonMode-f21a8faa.js → jsonMode-17b6405b.js} +3 -3
  117. package/dist/cjs/loader.cjs.js +6 -4
  118. package/dist/cjs/{tsMode-a4452f18.js → tsMode-12306781.js} +3 -3
  119. package/dist/cjs/{typescript-77d49ecd.js → typescript-33e4c6bd.js} +3 -3
  120. package/dist/components/arcade-api.js +25 -34
  121. package/dist/components/arcade-contribution.js +10 -10
  122. package/dist/components/arcade-defaults.js +143 -161
  123. package/dist/components/arcade-mode.js +46 -52
  124. package/dist/components/arcade-results.js +49 -61
  125. package/dist/components/arcade-suggestions.js +25 -34
  126. package/dist/components/arcade-variables.js +24 -37
  127. package/dist/components/arcgis-arcade-api.js +1 -1
  128. package/dist/components/arcgis-arcade-editor.js +61 -89
  129. package/dist/components/arcgis-arcade-results.js +1 -1
  130. package/dist/components/arcgis-arcade-suggestions.js +1 -1
  131. package/dist/components/arcgis-arcade-variables.js +1 -1
  132. package/dist/components/arcgis-assets.d.ts +1 -1
  133. package/dist/components/arcgis-assets.js +1 -1
  134. package/dist/components/arcgis-code-editor.js +1 -1
  135. package/dist/components/chunk-IHYYRFLQ.js +1363 -0
  136. package/dist/components/code-editor.js +72 -79
  137. package/dist/components/fields.js +45 -45
  138. package/dist/components/index.js +1 -1
  139. package/dist/components/index2.js +394 -3
  140. package/dist/components/markdown.js +13 -27
  141. package/dist/components/useT9n.js +37 -0
  142. package/dist/components/utilities.js +3 -3
  143. package/dist/esm/app-globals-ad037f01.js +8 -0
  144. package/dist/esm/{arcade-defaults-978d373f.js → arcade-defaults-c440ab96.js} +712 -275
  145. package/dist/esm/{arcade-mode-8a50067b.js → arcade-mode-f87480eb.js} +78 -84
  146. package/dist/esm/arcgis-arcade-api_6.entry.js +1611 -239
  147. package/dist/esm/arcgis-coding-components.js +15 -13
  148. package/dist/esm/{css-adc1375f.js → css-3d022d97.js} +1 -1
  149. package/dist/esm/{cssMode-a292eee6.js → cssMode-cd620116.js} +3 -3
  150. package/dist/esm/{html-24d2d562.js → html-e2b7755a.js} +3 -3
  151. package/dist/esm/{htmlMode-f9eed34e.js → htmlMode-c60c352c.js} +3 -3
  152. package/dist/esm/index-9f13e665.js +1272 -0
  153. package/dist/esm/index.js +3 -3
  154. package/dist/esm/{javascript-40f3fb5c.js → javascript-6edf9a3c.js} +4 -4
  155. package/dist/esm/{jsonMode-70770104.js → jsonMode-3d2d17ee.js} +3 -3
  156. package/dist/esm/loader.js +7 -5
  157. package/dist/esm/{tsMode-f797a97b.js → tsMode-7010932a.js} +3 -3
  158. package/dist/esm/{typescript-83c789e7.js → typescript-0a9a4b7a.js} +3 -3
  159. package/dist/loader/cdn.js +1 -1
  160. package/dist/loader/index.cjs.js +1 -1
  161. package/dist/loader/index.es2017.js +1 -1
  162. package/dist/loader/index.js +1 -1
  163. package/dist/types/components/arcade-api/arcade-api.d.ts +6 -7
  164. package/dist/types/components/arcade-editor/arcade-editor.d.ts +18 -12
  165. package/dist/types/components/arcade-results/arcade-results.d.ts +6 -9
  166. package/dist/types/components/arcade-suggestions/arcade-suggestions.d.ts +7 -8
  167. package/dist/types/components/arcade-variables/arcade-variables.d.ts +6 -8
  168. package/dist/types/components/code-editor/code-editor.d.ts +23 -13
  169. package/dist/types/components.d.ts +57 -35
  170. package/dist/types/controllers/useT9n.d.ts +1 -0
  171. package/dist/types/data/actions-runner-1/_work/arcgis-web-components/arcgis-web-components/packages/coding-packages/coding-components/.stencil/stencil.config.d.ts +3 -0
  172. package/dist/types/data/actions-runner-1/_work/arcgis-web-components/arcgis-web-components/packages/coding-packages/coding-components/.stencil/stories/internal/arcade-editor/arcade-editor.stories.d.ts +34 -0
  173. package/dist/types/data/actions-runner-1/_work/arcgis-web-components/arcgis-web-components/packages/coding-packages/coding-components/.stencil/stories/internal/arcade-editor/editorContext.d.ts +15 -0
  174. package/dist/types/data/actions-runner-1/_work/arcgis-web-components/arcgis-web-components/packages/coding-packages/coding-components/.stencil/stories/internal/code-editor/code-editor.stories.d.ts +6 -0
  175. package/dist/types/data/actions-runner-1/_work/arcgis-web-components/arcgis-web-components/packages/coding-packages/coding-components/.stencil/stories/reference/stories/arcade-editor.stories.d.ts +9 -0
  176. package/dist/types/data/actions-runner-1/_work/arcgis-web-components/arcgis-web-components/packages/coding-packages/coding-components/.stencil/support/sass-inline-url-importer.d.ts +9 -0
  177. package/dist/types/data/actions-runner-1/_work/arcgis-web-components/arcgis-web-components/packages/coding-packages/coding-components/.stencil/support/sass-json-importer.d.ts +19 -0
  178. package/dist/types/data/actions-runner-1/_work/arcgis-web-components/arcgis-web-components/packages/coding-packages/coding-components/.stencil/support/stencil-monaco-plugins.d.ts +6 -0
  179. package/dist/types/utils/arcade-monaco/arcade-language-features.d.ts +1 -1
  180. package/dist/types/utils/profile/types.d.ts +40 -13
  181. package/dist/types/utils/profile/utils.d.ts +2 -4
  182. package/package.json +24 -24
  183. package/dist/arcgis-coding-components/p-2db6d470.js +0 -7
  184. package/dist/arcgis-coding-components/p-5d7c80cf.entry.js +0 -6
  185. package/dist/arcgis-coding-components/p-63894999.js +0 -68
  186. package/dist/arcgis-coding-components/p-f39c5bc0.js +0 -6
  187. package/dist/cjs/index-c33ea685.js +0 -1958
  188. package/dist/esm/index-7dec16fc.js +0 -1927
@@ -1,10 +1,10 @@
1
1
  /*!
2
2
  * All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  * See https://js.arcgis.com/4.30/esri/copyright.txt for details.
4
- * v4.30.0-next.10
4
+ * v4.30.0-next.102
5
5
  */
6
- import { r as registerInstance, c as createEvent, g as getAssetPath, h, H as Host, a as getElement, F as Fragment } from './index-7dec16fc.js';
7
- import { g as generateTokensCSSForColorMap, e as editor, S as StandaloneServices, I as IStandaloneThemeService, c as createCommonjsModule, b as commonjsGlobal, i as ie, s as se, d as importRequest, l as languages, f as arcadeDefaults, B, U as Uri, q, W, h as filterCollection, G, j as importArcade, k as h$1, m as U, n as k, K as KeyCode, Z, D, o as supportedFields, p as K, R as Range, x, r as KeyMod } from './arcade-defaults-978d373f.js';
6
+ import { g as getAssetPath, r as registerInstance, c as createEvent, h, H as Host, a as getElement, F as Fragment } from './index-9f13e665.js';
7
+ import { g as generateTokensCSSForColorMap, S as StandaloneServices, I as IStandaloneThemeService, e as editor, c as commonjsGlobal, D as Deferred, b as camelToKebab, s as safeCall, d as safeAsyncCall, f as devToolsAwareTimeout, h as startLocaleObserver, i as getElementLocales, j as isURL, k as hasSameOrigin, l as importRequest, m as languages, n as arcadeDefaults, U as Uri, o as setFocusOnElement, p as filterCollection, q as addLTRMark, r as importArcade, t as generateGuid, u as getElementTheme, K as KeyCode, v as setValuesInString, w as quoteString, x as supportedFields, y as createFilterExpression, R as Range, z as observeAncestorsMutation, A as KeyMod } from './arcade-defaults-c440ab96.js';
8
8
 
9
9
  async function colorizeCode(code) {
10
10
  return await editor.colorize(code, "arcade", { tabSize: 2 });
@@ -37,13 +37,15 @@ function onColorizeThemeChanged(func) {
37
37
  /* eslint-enable @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access */
38
38
  }
39
39
 
40
- var marked_umd = createCommonjsModule(function (module, exports) {
40
+ var marked_umd = {exports: {}};
41
+
41
42
  /**
42
43
  * marked v5.1.2 - a markdown parser
43
44
  * Copyright (c) 2011-2023, Christopher Jeffrey. (MIT Licensed)
44
45
  * https://github.com/markedjs/marked
45
46
  */
46
47
 
48
+ (function (module, exports) {
47
49
  /**
48
50
  * DO NOT EDIT THIS FILE
49
51
  * The code in this file is generated from files in ./src/
@@ -2912,31 +2914,1409 @@ var marked_umd = createCommonjsModule(function (module, exports) {
2912
2914
  exports.walkTokens = walkTokens;
2913
2915
 
2914
2916
  }));
2915
- });
2917
+ }(marked_umd, marked_umd.exports));
2916
2918
 
2917
2919
  // Set up the marked library to use GitHub Flavored Markdown and to use the custom renderer for links.
2918
- marked_umd.marked.use({
2920
+ marked_umd.exports.marked.use({
2919
2921
  gfm: true,
2922
+ breaks: true,
2923
+ async: false,
2920
2924
  renderer: {
2921
2925
  link(href, title, text) {
2922
2926
  return `<calcite-link href="${href}" title="${title ?? text}" target="Arcade Help">${text}</calcite-link>`;
2923
- }
2924
- }
2927
+ },
2928
+ },
2925
2929
  });
2926
2930
  /**
2927
2931
  * Converts a markdown string to HTML using the marked library.
2928
2932
  */
2929
2933
  function convertMarkdownString(value) {
2930
- value ?? (value = "");
2931
- const result = marked_umd.marked(typeof value === "string" ? value : value.value, {
2932
- gfm: true,
2933
- breaks: true,
2934
- headerIds: false,
2935
- mangle: false
2934
+ if (value === null || value === undefined) {
2935
+ return "";
2936
+ }
2937
+ return marked_umd.exports.marked.parse(typeof value === "string" ? value : value.value);
2938
+ }
2939
+
2940
+ // src/framework.ts
2941
+ function retrieveComponentMembers(component, isLit) {
2942
+ if (isLit) {
2943
+ const elementProperties = getLitProperties(component);
2944
+ component.manager.internals.members = Object.fromEntries(
2945
+ Array.from(elementProperties, ([name, { state, type }]) => [
2946
+ name,
2947
+ [
2948
+ state ? 32 /* State */ : type === Number ? 2 /* Number */ : type === Boolean ? 4 /* Boolean */ : 1 /* String */
2949
+ ]
2950
+ ])
2951
+ );
2952
+ } else {
2953
+ const constructor = component.constructor;
2954
+ const members = constructor.__registerControllers?.(component) ?? void 0;
2955
+ constructor.__registerControllers = void 0;
2956
+ if (typeof members !== "object") {
2957
+ throw new Error(
2958
+ "Failed to retrieve internal component meta. Make sure you have the useComponentsControllers() Rollup Plugin for Stencil Controllers configured in your Stencil config."
2959
+ );
2960
+ }
2961
+ component.manager.internals.members = members;
2962
+ }
2963
+ }
2964
+ var getLitProperties = (component) => component.constructor.elementProperties;
2965
+ function parsePropertyValue(value, type = 8 /* Any */) {
2966
+ const isComplex = value == null || typeof value === "object" || typeof value === "function";
2967
+ if (isComplex) {
2968
+ return value;
2969
+ }
2970
+ if ((type & 4 /* Boolean */) !== 0) {
2971
+ return value === "false" ? false : value === "" || !!value;
2972
+ } else if ((type & 2 /* Number */) !== 0) {
2973
+ return Number.parseFloat(value);
2974
+ } else if ((type & 1 /* String */) !== 0) {
2975
+ return String(value);
2976
+ } else {
2977
+ return value;
2978
+ }
2979
+ }
2980
+ var makeMemberFilter = (filter) => (component) => {
2981
+ const members = component.manager.internals.members;
2982
+ return Object.entries(members ?? {}).filter(([_name, [propType]]) => (propType & filter) !== 0).map(([name]) => name);
2983
+ };
2984
+ var getPropLikeMembers = makeMemberFilter(63 /* PropLike */);
2985
+ var getMemberType = (component, name) => component.manager.internals.members?.[name]?.[0];
2986
+ function getPropType(component, name) {
2987
+ const type = getMemberType(component, name);
2988
+ if (type === void 0) {
2989
+ return void 0;
2990
+ } else if (type & 32 /* State */) {
2991
+ return "state";
2992
+ } else {
2993
+ return "prop";
2994
+ }
2995
+ }
2996
+
2997
+ // src/types.ts
2998
+ var controllerSymbol = Symbol("controller");
2999
+
3000
+ // src/utils.ts
3001
+ var isController = (value) => typeof value === "object" && value !== null && (controllerSymbol in value || "hostConnected" in value || "hostDisconnected" in value || "hostUpdate" in value || "hostUpdated" in value);
3002
+
3003
+ // src/ControllerInternals.ts
3004
+ var ControllerInternals = class {
3005
+ constructor() {
3006
+ this._ambientControllers = [];
3007
+ /**
3008
+ * The type definition has to be duplicated due to the
3009
+ * "'use' is referenced directly or indirectly in its own type annotation."
3010
+ * error
3011
+ */
3012
+ this.use = async (value, watchExports) => {
3013
+ const controller = this.useRefSync(value);
3014
+ if (controller === void 0) {
3015
+ if (typeof watchExports === "function") {
3016
+ const error = new Error(
3017
+ `Unable to resolve a controller from the provided value, so can't watch it's exports. ${unresolvableExports}`
3018
+ );
3019
+ {
3020
+ console.error(error);
3021
+ }
3022
+ }
3023
+ return value;
3024
+ }
3025
+ await controller.ready;
3026
+ if (typeof watchExports === "function") {
3027
+ if (controller.watchExports === void 0) {
3028
+ throw new Error(`The controller must implement watchExports method to support watching exports`);
3029
+ }
3030
+ const unsubscribe = controller.watchExports(
3031
+ (exports) => watchExports(exports, unsubscribe)
3032
+ );
3033
+ }
3034
+ return controller.exports;
3035
+ };
3036
+ this.useRef = async (value) => {
3037
+ const controller = this.useRefSync(value);
3038
+ if (controller === void 0) {
3039
+ throw new Error(`Unable to resolve a controller from the provided value. ${unresolvableExports}`);
3040
+ }
3041
+ await controller.ready;
3042
+ return controller;
3043
+ };
3044
+ this.useRefSync = (value) => {
3045
+ const ambientChildController = this.retrieveAmbientChildController();
3046
+ if (ambientChildController !== void 0) {
3047
+ return ambientChildController;
3048
+ }
3049
+ const component = Controller.internals.retrieveComponent();
3050
+ const controller = component.manager.internals.resolveExports(value);
3051
+ if (controller !== void 0) {
3052
+ return controller;
3053
+ }
3054
+ if (isController(value)) {
3055
+ return value;
3056
+ }
3057
+ return void 0;
3058
+ };
3059
+ this.shouldBypassSetter = false;
3060
+ this.shouldBypassGetter = false;
3061
+ this.shouldBypassReadonly = false;
3062
+ /**
3063
+ * A map from component instance or component element to component instance.
3064
+ * To get from component instance or component element to component element,
3065
+ * you can just use the .el property
3066
+ */
3067
+ this.elementToInstance = /* @__PURE__ */ new WeakMap();
3068
+ }
3069
+ /*
3070
+ * Allow controllers to implicitly retrieve which component they are in, to
3071
+ * improve DX (avoids the need to pass "this" explicitly for each controller)
3072
+ */
3073
+ setAmbientComponent(component) {
3074
+ if (this._ambientComponent === component) {
3075
+ return;
3076
+ }
3077
+ this._ambientComponent = component;
3078
+ queueMicrotask(() => {
3079
+ if (this._ambientComponent === component) {
3080
+ this._ambientComponent = void 0;
3081
+ }
3082
+ });
3083
+ }
3084
+ retrieveComponent(name) {
3085
+ if (this._ambientComponent === void 0) {
3086
+ throw new Error(
3087
+ [
3088
+ `Unable to find out which component ${name || "this"} controller `,
3089
+ "belongs to. This might happen if you tried to create a controller ",
3090
+ "outside the component. If so, please wrap your controller ",
3091
+ "definition in an arrow function, ",
3092
+ "`const myController = ()=>makeController(...);` and call that",
3093
+ "function inside the component `my = myController();`, or ",
3094
+ "define your controller using makeGenericController/GenericController ",
3095
+ "instead.\n",
3096
+ "If you wish to use a controller inside an async controller, ",
3097
+ "make sure you are using controller.use.\n",
3098
+ "You might also have multiple instances of Controllers loaded"
3099
+ ].join("\n")
3100
+ );
3101
+ }
3102
+ return this._ambientComponent;
3103
+ }
3104
+ /*
3105
+ * Aids proxyExports() in knowing who is it's host
3106
+ */
3107
+ setParentController(controller) {
3108
+ if (controller === void 0) {
3109
+ this._ambientControllers = [];
3110
+ return;
3111
+ }
3112
+ const index = this._ambientControllers.indexOf(controller);
3113
+ this._ambientControllers = index === -1 ? [...this._ambientControllers, controller] : this._ambientControllers.slice(0, index + 1);
3114
+ queueMicrotask(() => {
3115
+ this._ambientControllers = [];
3116
+ });
3117
+ }
3118
+ retrieveParentControllers() {
3119
+ return this._ambientControllers;
3120
+ }
3121
+ /*
3122
+ * Aids controller.use in retrieving controller value when it receives
3123
+ * controller exports, rather than the controller itself
3124
+ */
3125
+ setAmbientChildController(controller) {
3126
+ if (this._ambientChildController === controller) {
3127
+ return;
3128
+ }
3129
+ this._ambientChildController = controller;
3130
+ queueMicrotask(() => {
3131
+ if (this._ambientChildController === controller) {
3132
+ this._ambientChildController = void 0;
3133
+ }
3134
+ });
3135
+ }
3136
+ retrieveAmbientChildController() {
3137
+ const controller = this._ambientChildController;
3138
+ this._ambientChildController = void 0;
3139
+ return controller;
3140
+ }
3141
+ };
3142
+ var unresolvableExports = [
3143
+ "The value you passed is not a controller and not a controller exports. If ",
3144
+ "your controller exports a literal value, try making your controller export ",
3145
+ "an object instead"
3146
+ ].join("");
3147
+
3148
+ // src/Controller.ts
3149
+ var _a;
3150
+ var _Controller = class _Controller {
3151
+ constructor(component) {
3152
+ this._callbacks = {
3153
+ hostConnected: [],
3154
+ hostDisconnected: [],
3155
+ hostLoad: [],
3156
+ hostLoaded: [],
3157
+ hostUpdate: [],
3158
+ hostUpdated: [],
3159
+ hostDestroy: [],
3160
+ hostLifecycle: []
3161
+ };
3162
+ this._ready = new Deferred();
3163
+ this._lifecycleDisconnected = [];
3164
+ this.connectedCalled = false;
3165
+ this.willLoadCalled = false;
3166
+ this.didLoadCalled = false;
3167
+ this[_a] = true;
3168
+ this.ready = this._ready.promise;
3169
+ /*
3170
+ * Setting default exports to "this" so that controllers that don't use
3171
+ * exports/proxyExports(), could still be used as if they did
3172
+ * (i.e with controller.use)
3173
+ */
3174
+ this._exports = makeProvisionalValue(this);
3175
+ this._exportWatchers = /* @__PURE__ */ new Set();
3176
+ const resolvedComponent = toControllerHost(
3177
+ component ?? _Controller.internals.retrieveComponent(new.target.name)
3178
+ );
3179
+ Object.defineProperty(this, "component", {
3180
+ writable: false,
3181
+ enumerable: false,
3182
+ configurable: true,
3183
+ value: resolvedComponent
3184
+ });
3185
+ this.component.addController(this);
3186
+ _Controller.internals.setParentController(this);
3187
+ if ("hostDestroy" in this) {
3188
+ this.component.manager.ensureHasDestroy();
3189
+ }
3190
+ const manager = this.component.manager;
3191
+ const isInControllerManager = manager === void 0;
3192
+ if (!isInControllerManager) {
3193
+ queueMicrotask(() => this.catchUpLifecycle());
3194
+ }
3195
+ }
3196
+ /**
3197
+ * If controller is being added dynamically, after the component
3198
+ * construction, then trigger connected and load right away
3199
+ */
3200
+ catchUpLifecycle() {
3201
+ const { manager } = this.component;
3202
+ const connectedWillStillHappen = !manager.connectedCalled;
3203
+ if (!connectedWillStillHappen && !this.connectedCalled) {
3204
+ this.triggerConnected();
3205
+ }
3206
+ const loadWillStillHappen = !manager.willLoadCalled;
3207
+ if (loadWillStillHappen) {
3208
+ return;
3209
+ }
3210
+ this.triggerLoad().then(() => {
3211
+ const loadedWillStillHappen = !manager.didLoadCalled;
3212
+ if (loadedWillStillHappen) {
3213
+ return;
3214
+ }
3215
+ this.triggerLoaded();
3216
+ }).catch(console.error);
3217
+ }
3218
+ get exports() {
3219
+ return this._exports;
3220
+ }
3221
+ /**
3222
+ * Set controller's exports property (for usage with proxyExports()) and mark
3223
+ * controller as ready (for usage in other controllers). Also, triggers
3224
+ * re-render of the component
3225
+ */
3226
+ set exports(exports) {
3227
+ if (this._exports !== exports) {
3228
+ this._exports = exports;
3229
+ if (this.connectedCalled) {
3230
+ this.component.requestUpdate();
3231
+ }
3232
+ this._exportWatchers.forEach(safeCall);
3233
+ }
3234
+ this._ready.resolve(exports);
3235
+ }
3236
+ setProvisionalExports(exports) {
3237
+ this._exports = makeProvisionalValue(exports);
3238
+ this._exportWatchers.forEach(safeCall);
3239
+ }
3240
+ watchExports(callback) {
3241
+ const safeCallback = () => callback(this._exports);
3242
+ this._exportWatchers.add(safeCallback);
3243
+ return () => void this._exportWatchers.delete(safeCallback);
3244
+ }
3245
+ /**
3246
+ * A flexible utility for making sure a controller is loaded before it's used,
3247
+ * regardless of how or where a controller was defined:
3248
+ *
3249
+ * @example
3250
+ * makeGenericController(async (component, controller) => {
3251
+ * // Await some controller from the component:
3252
+ * await controller.use(component.someController);
3253
+ * // Initialize new controllers
3254
+ * await controller.use(load(importCoreReactiveUtils));
3255
+ * await controller.use(new ViewModelController(component,newWidgetsHomeHomeViewModel));
3256
+ * await controller.use(someController(component));
3257
+ * });
3258
+ *
3259
+ * @remarks
3260
+ * If your controller is not async, and you are not creating it async, then
3261
+ * you are not required to use controller.use - you can use it directly.
3262
+ * Similarly, accessing controllers after componentWillLoad callback does not
3263
+ * require awaiting them as they are guaranteed to be loaded by then.
3264
+ */
3265
+ get use() {
3266
+ _Controller.internals.setAmbientComponent(this.component);
3267
+ return _Controller.internals.use;
3268
+ }
3269
+ /**
3270
+ * Just like controller.use, but returns the controller itself, rather than it's
3271
+ * exports
3272
+ *
3273
+ * Use cases:
3274
+ * - You have a controller and you want to make sure it's loaded before you
3275
+ * try to use it
3276
+ * - Your controller is not using exports, so you wish to access some props on
3277
+ * it directly
3278
+ * - You have a controller exports only, and you want to retrieve the
3279
+ * controller itself. This is useful if you wish to call .watchExports() or
3280
+ * some other method on the controller
3281
+ */
3282
+ get useRef() {
3283
+ _Controller.internals.setAmbientComponent(this.component);
3284
+ return _Controller.internals.useRef;
3285
+ }
3286
+ /**
3287
+ * Like useRef, but doesn't wait for the controller to get ready
3288
+ */
3289
+ get useRefSync() {
3290
+ _Controller.internals.setAmbientComponent(this.component);
3291
+ return _Controller.internals.useRefSync;
3292
+ }
3293
+ /**
3294
+ * If you need to set a prop/state without triggering the custom setter you
3295
+ * defined with getSet()/dynamicGetSet()/readonly(), set the value inside
3296
+ * of this function
3297
+ *
3298
+ * @example
3299
+ * @Prop() readOnly = this.manager.readOnly(true);
3300
+ *
3301
+ * someAction(): void {
3302
+ * this.manager.bypassSetter(()=>{
3303
+ * this.readOnly = false;
3304
+ * });
3305
+ * }
3306
+ *
3307
+ */
3308
+ bypassSetter(callback) {
3309
+ _Controller.internals.shouldBypassSetter = true;
3310
+ try {
3311
+ return callback();
3312
+ } finally {
3313
+ _Controller.internals.shouldBypassSetter = false;
3314
+ }
3315
+ }
3316
+ /**
3317
+ * Like bypassSetter, but only bypasses this.manager.readonly(), rather that
3318
+ * all setters set using this.manager.getSet()
3319
+ */
3320
+ bypassReadonly(callback) {
3321
+ _Controller.internals.shouldBypassReadonly = true;
3322
+ try {
3323
+ return callback();
3324
+ } finally {
3325
+ _Controller.internals.shouldBypassReadonly = false;
3326
+ }
3327
+ }
3328
+ /**
3329
+ * Property reads inside of this function will bypass any custom getter you
3330
+ * may have, and read the value directly from what's stored in Stencil/Lit.
3331
+ *
3332
+ * This also bypasses reactiveUtils integration - reading a property inside of
3333
+ * bypassGetter won't make that property tracked.
3334
+ *
3335
+ * @example
3336
+ * reactiveUtils.watch(
3337
+ * ()=>{
3338
+ * this.manager.bypassGetter(()=>{
3339
+ * console.log(this.someProp);
3340
+ * });
3341
+ * return this.prop;
3342
+ * },
3343
+ * console.log
3344
+ * )
3345
+ */
3346
+ bypassGetter(callback) {
3347
+ _Controller.internals.shouldBypassGetter = true;
3348
+ try {
3349
+ return callback();
3350
+ } finally {
3351
+ _Controller.internals.shouldBypassGetter = false;
3352
+ }
3353
+ }
3354
+ /**
3355
+ * Like this.manager.getSet(), but can be called on any component's
3356
+ * state/prop from anywhere, rather than just from the default value
3357
+ */
3358
+ dynamicGetSet(name, getSet) {
3359
+ this.genericGetSet(name, getSet);
3360
+ }
3361
+ /**
3362
+ * Like dynamicGetSet, but less type-safe. Useful in cases when trying to set
3363
+ * getters/setters in place where property names & types are not known
3364
+ * statically
3365
+ */
3366
+ genericGetSet(property, getSet) {
3367
+ var _a2, _b;
3368
+ const genericGetSet = getSet;
3369
+ const internals = this.component.manager.internals;
3370
+ if (typeof genericGetSet.get === "function") {
3371
+ (_a2 = internals.getters)[property] ?? (_a2[property] = []);
3372
+ internals.getters[property].unshift(genericGetSet.get);
3373
+ }
3374
+ const set = genericGetSet.set === "ignore" ? ignoreSet : genericGetSet.set;
3375
+ if (set) {
3376
+ (_b = internals.setters)[property] ?? (_b[property] = []);
3377
+ internals.setters[property].unshift(set);
3378
+ }
3379
+ }
3380
+ // FEATURE: improve typings
3381
+ /**
3382
+ * Dynamically set a watcher for any reactive property
3383
+ */
3384
+ watch(property, callback) {
3385
+ var _a2;
3386
+ const type = getMemberType(this.component, property);
3387
+ if (type === void 0) {
3388
+ throw new Error(
3389
+ `Trying to watch a non-@property, non-@state property "${property}". Either convert it into a @state() or use get/set syntax`
3390
+ );
3391
+ }
3392
+ const internals = this.component.manager.internals;
3393
+ (_a2 = internals.allWatchers)[property] ?? (_a2[property] = []);
3394
+ const watchers = internals.allWatchers[property];
3395
+ const genericCallback = callback;
3396
+ const safeCallback = (newValue, oldValue, propertyName) => safeCall(genericCallback, null, newValue, oldValue, propertyName);
3397
+ watchers.push(safeCallback);
3398
+ return () => {
3399
+ const index = watchers.indexOf(safeCallback);
3400
+ if (index !== -1) {
3401
+ watchers.splice(index, 1);
3402
+ }
3403
+ };
3404
+ }
3405
+ controllerRemoved() {
3406
+ if (this.component.el.isConnected) {
3407
+ this.triggerDisconnected();
3408
+ }
3409
+ this.triggerDestroy();
3410
+ }
3411
+ // Register a lifecycle callback
3412
+ onConnected(callback) {
3413
+ this._callbacks.hostConnected.push(callback);
3414
+ }
3415
+ onDisconnected(callback) {
3416
+ this._callbacks.hostDisconnected.push(callback);
3417
+ }
3418
+ onLoad(callback) {
3419
+ this._callbacks.hostLoad.push(callback);
3420
+ }
3421
+ onLoaded(callback) {
3422
+ this._callbacks.hostLoaded.push(callback);
3423
+ }
3424
+ onUpdate(callback) {
3425
+ this._callbacks.hostUpdate.push(callback);
3426
+ }
3427
+ onUpdated(callback) {
3428
+ this._callbacks.hostUpdated.push(callback);
3429
+ }
3430
+ onDestroy(callback) {
3431
+ this.component.manager.ensureHasDestroy();
3432
+ this._callbacks.hostDestroy.push(callback);
3433
+ }
3434
+ onLifecycle(callback) {
3435
+ this._callbacks.hostLifecycle.push(callback);
3436
+ if (this.connectedCalled && this.component.el.isConnected) {
3437
+ this._callLifecycle(callback);
3438
+ }
3439
+ }
3440
+ // Call each lifecycle hook
3441
+ triggerConnected() {
3442
+ const genericController = this;
3443
+ if (genericController.hostConnected) {
3444
+ safeCall(genericController.hostConnected, genericController);
3445
+ }
3446
+ this._callbacks.hostConnected.forEach(safeCall);
3447
+ this.triggerLifecycle();
3448
+ this.connectedCalled = true;
3449
+ }
3450
+ triggerDisconnected() {
3451
+ const genericController = this;
3452
+ if (genericController.hostDisconnected) {
3453
+ safeCall(genericController.hostDisconnected, genericController);
3454
+ }
3455
+ this._callbacks.hostDisconnected.forEach(safeCall);
3456
+ this._lifecycleDisconnected.forEach(safeCall);
3457
+ this._lifecycleDisconnected = [];
3458
+ }
3459
+ async triggerLoad() {
3460
+ if (this.willLoadCalled) {
3461
+ return;
3462
+ }
3463
+ this.willLoadCalled = true;
3464
+ const genericController = this;
3465
+ if (genericController.hostLoad) {
3466
+ await safeAsyncCall(genericController.hostLoad, genericController);
3467
+ }
3468
+ if (this._callbacks.hostLoad.length > 0) {
3469
+ await Promise.allSettled(this._callbacks.hostLoad.map(safeAsyncCall));
3470
+ }
3471
+ this._ready.resolve(this._exports);
3472
+ }
3473
+ triggerLoaded() {
3474
+ if (this.didLoadCalled) {
3475
+ return;
3476
+ }
3477
+ const genericController = this;
3478
+ if (genericController.hostLoaded) {
3479
+ safeCall(genericController.hostLoaded, genericController);
3480
+ }
3481
+ this._callbacks.hostLoaded.forEach(safeCall);
3482
+ this.didLoadCalled = true;
3483
+ }
3484
+ triggerUpdate() {
3485
+ const genericController = this;
3486
+ if (genericController.hostUpdate) {
3487
+ safeCall(genericController.hostUpdate, genericController);
3488
+ }
3489
+ this._callbacks.hostUpdate.forEach(safeCall);
3490
+ }
3491
+ triggerUpdated() {
3492
+ const genericController = this;
3493
+ if (genericController.hostUpdated) {
3494
+ safeCall(genericController.hostUpdated, genericController);
3495
+ }
3496
+ this._callbacks.hostUpdated.forEach(safeCall);
3497
+ }
3498
+ triggerDestroy() {
3499
+ const genericController = this;
3500
+ if (genericController.hostDestroy) {
3501
+ safeCall(genericController.hostDestroy, genericController);
3502
+ }
3503
+ this._callbacks.hostDestroy.forEach(safeCall);
3504
+ }
3505
+ triggerLifecycle() {
3506
+ const genericController = this;
3507
+ if (genericController.hostLifecycle) {
3508
+ this._callLifecycle(() => genericController.hostLifecycle());
3509
+ }
3510
+ this._callbacks.hostLifecycle.forEach((callback) => this._callLifecycle(callback));
3511
+ }
3512
+ _callLifecycle(callback) {
3513
+ _Controller.internals.setAmbientComponent(this.component);
3514
+ const cleanupRaw = safeCall(callback);
3515
+ const cleanup = Array.isArray(cleanupRaw) ? cleanupRaw : [cleanupRaw];
3516
+ cleanup.forEach((cleanup2) => {
3517
+ if (typeof cleanup2 === "function") {
3518
+ this._lifecycleDisconnected.push(cleanup2);
3519
+ } else if (typeof cleanup2 === "object" && typeof cleanup2.remove === "function") {
3520
+ this._lifecycleDisconnected.push(cleanup2.remove);
3521
+ }
3522
+ });
3523
+ }
3524
+ };
3525
+ _a = controllerSymbol;
3526
+ _Controller.internals = new ControllerInternals();
3527
+ var Controller = _Controller;
3528
+ var GenericController = class extends Controller {
3529
+ // Redundant constructor needed to improve typing
3530
+ constructor(component) {
3531
+ super(component);
3532
+ }
3533
+ // Overriding super's watch only to improve typing
3534
+ watch(property, callback) {
3535
+ return super.watch(
3536
+ property,
3537
+ callback
3538
+ );
3539
+ }
3540
+ dynamicGetSet(property, getSet) {
3541
+ super.genericGetSet(property, getSet);
3542
+ }
3543
+ };
3544
+ function makeProvisionalValue(base) {
3545
+ if (typeof base !== "object" && typeof base !== "function" || base === null) {
3546
+ return base;
3547
+ }
3548
+ const proxy2 = new Proxy(base, {
3549
+ get(target, prop, receiver) {
3550
+ if (cyclical.has(prop) && prop in target && target[prop] === proxy2) {
3551
+ return void 0;
3552
+ }
3553
+ if (prop in target || prop in Promise.prototype || typeof prop === "symbol") {
3554
+ return typeof target === "function" ? target[prop] : Reflect.get(target, prop, receiver);
3555
+ }
3556
+ console.error(`Trying to access "${prop.toString()}" on the controller before it's loaded. ${accessBeforeLoad}`);
3557
+ return void 0;
3558
+ },
3559
+ set(target, prop, newValue, receiver) {
3560
+ console.error(`Trying to set "${prop.toString()}" on the controller before it's loaded. ${accessBeforeLoad}`);
3561
+ return Reflect.set(target, prop, newValue, receiver);
3562
+ }
3563
+ });
3564
+ return proxy2;
3565
+ }
3566
+ var cyclical = /* @__PURE__ */ new Set(["exports", "_exports"]);
3567
+ var accessBeforeLoad = "" ;
3568
+ function toControllerHost(component) {
3569
+ if ("addController" in component) {
3570
+ return component;
3571
+ } else {
3572
+ throw new Error(
3573
+ "Component does not implement ControllerHost. This might be because you forgot to add 'manager: Controller<this> = useControllerManager(this);' in your component, or you tried to use some controller before that line"
3574
+ );
3575
+ }
3576
+ }
3577
+ var ignoreSet = (_, value) => value;
3578
+ function trackPropertyKey(object, onResolved, defaultValue) {
3579
+ const keys = Object.keys(object);
3580
+ const keyCount = keys.length;
3581
+ if (keyTrackMap === void 0) {
3582
+ queueMicrotask(keyTrackResolve);
3583
+ }
3584
+ keyTrackMap ?? (keyTrackMap = /* @__PURE__ */ new Map());
3585
+ let pendingTrackers = keyTrackMap.get(object);
3586
+ if (pendingTrackers === void 0) {
3587
+ pendingTrackers = { callbacks: [], keyCount };
3588
+ keyTrackMap.set(object, pendingTrackers);
3589
+ }
3590
+ if (pendingTrackers.keyCount !== keyCount) {
3591
+ pendingTrackers.callbacks.forEach((resolve) => resolve(keys));
3592
+ pendingTrackers.callbacks = [];
3593
+ pendingTrackers.keyCount = keyCount;
3594
+ }
3595
+ pendingTrackers.callbacks.push((keys2) => {
3596
+ const callback = (key2) => safeCall(onResolved, null, key2);
3597
+ const key = keys2[keyCount];
3598
+ if (key === void 0) {
3599
+ callback(void 0);
3600
+ } else if (object[key] === defaultValue) {
3601
+ callback(key);
3602
+ } else {
3603
+ callback(void 0);
3604
+ }
3605
+ });
3606
+ return defaultValue;
3607
+ }
3608
+ var keyTrackMap = void 0;
3609
+ function keyTrackResolve() {
3610
+ Array.from(keyTrackMap?.entries() ?? []).forEach(([object, { callbacks }]) => {
3611
+ const keys = Object.keys(object);
3612
+ callbacks.forEach((commit) => commit(keys));
3613
+ });
3614
+ keyTrackMap = void 0;
3615
+ }
3616
+ var ComponentInternals = class {
3617
+ constructor(component) {
3618
+ /**
3619
+ * When watchers are set, set then into `allWatchers`. When watchers are read
3620
+ * in the setter, read from `enabledWatchers`.
3621
+ * On connectedCallback(), controller manager does `enabledWatchers=allWatchers`.
3622
+ * Reasoning:
3623
+ * - This disables watchers until connected callback (matches behavior of
3624
+ * Stencil's watchers)
3625
+ * - This removes in the setter to check if watchers were enabled already or
3626
+ * not (as getters/setters are hot path, and should be streamlined)
3627
+ */
3628
+ this.enabledWatchers = {};
3629
+ this.allWatchers = {};
3630
+ this.trackKey = (hostsCandidates, onResolved, defaultValue) => {
3631
+ const candidateHosts = Array.isArray(hostsCandidates) ? hostsCandidates : [hostsCandidates];
3632
+ let leftToResolve = candidateHosts.length + 1;
3633
+ const resolved = (resolution) => {
3634
+ leftToResolve -= 1;
3635
+ if (resolution !== void 0) {
3636
+ leftToResolve = 0;
3637
+ }
3638
+ if (leftToResolve === 0) {
3639
+ onResolved(resolution);
3640
+ }
3641
+ };
3642
+ candidateHosts.forEach(
3643
+ (host) => this.component.manager.trackPropertyKey(
3644
+ host,
3645
+ (key) => resolved(
3646
+ key === void 0 ? void 0 : {
3647
+ key,
3648
+ host,
3649
+ type: "property",
3650
+ domValue: void 0
3651
+ }
3652
+ ),
3653
+ defaultValue
3654
+ )
3655
+ );
3656
+ this.component.manager.trackPropKey((key, domValue) => {
3657
+ const propType = key === void 0 ? void 0 : getPropType(this.component, key);
3658
+ resolved(
3659
+ key === void 0 ? void 0 : {
3660
+ key,
3661
+ host: this.component,
3662
+ type: propType ?? "prop",
3663
+ domValue: propType === "prop" ? domValue : void 0
3664
+ }
3665
+ );
3666
+ }, defaultValue);
3667
+ return defaultValue;
3668
+ };
3669
+ this.trackPropKey = (onResolved, defaultValue) => {
3670
+ if (this._trackedValue !== nothing && this._trackedValue !== defaultValue) {
3671
+ this._firePropertyTrackers(void 0, void 0, void 0);
3672
+ }
3673
+ if (this._keyTrackers.length === 0) {
3674
+ queueMicrotask(() => this._firePropertyTrackers(void 0, void 0, void 0));
3675
+ }
3676
+ this._trackedValue = defaultValue;
3677
+ this._keyTrackers.push(
3678
+ (key, value, previousValue) => safeCall(onResolved, void 0, defaultValue === value ? key : void 0, previousValue)
3679
+ );
3680
+ return defaultValue;
3681
+ };
3682
+ this._trackedValue = nothing;
3683
+ this._keyTrackers = [];
3684
+ this.getters = {};
3685
+ this.setters = {};
3686
+ this.accessorGetter = {};
3687
+ this.accessorSetter = {};
3688
+ this.reactiveUtilsIntegrations = /* @__PURE__ */ new Set();
3689
+ this._exports = /* @__PURE__ */ new WeakMap();
3690
+ Object.defineProperty(this, "component", {
3691
+ writable: false,
3692
+ enumerable: false,
3693
+ configurable: true,
3694
+ value: component
3695
+ });
3696
+ }
3697
+ _firePropertyTrackers(key, value, oldValue) {
3698
+ const trackers = this._keyTrackers;
3699
+ this._trackedValue = nothing;
3700
+ this._keyTrackers = [];
3701
+ trackers.forEach((tracker) => tracker(key, value, oldValue));
3702
+ }
3703
+ /**
3704
+ * Configure a getter or setter for a given \@Prop/\@State
3705
+ *
3706
+ * Note, since props are defined on the prototype, they are shared between all
3707
+ * instances of a component. Thus, instead of passing a reference to the
3708
+ * getter/setter function, you should update the
3709
+ * ComponentInternals.getters/setters properties, and then call getSetProxy
3710
+ * to apply the changes to the prototype
3711
+ */
3712
+ getSetProxy(property, hasGetter, hasSetter) {
3713
+ const component = this.component;
3714
+ const classPrototype = component.constructor.prototype;
3715
+ this._getSetProxy(classPrototype, property, hasGetter, hasSetter, "class");
3716
+ if (component.manager.isLit) {
3717
+ return;
3718
+ }
3719
+ const htmlPrototype = component.el.constructor.prototype;
3720
+ if (classPrototype !== htmlPrototype) {
3721
+ this._getSetProxy(htmlPrototype, property, hasGetter, hasSetter, "html");
3722
+ }
3723
+ }
3724
+ _getSetProxy(prototype, name, hasGetter, hasSetter, type) {
3725
+ const component = this.component;
3726
+ const propType = getMemberType(component, name);
3727
+ const descriptor = Object.getOwnPropertyDescriptor(prototype, name);
3728
+ const tolerateNotFound = type === "html";
3729
+ if (descriptor?.set === void 0 || descriptor.get === void 0) {
3730
+ if (descriptor !== void 0 && "value" in descriptor) {
3731
+ throw new Error(
3732
+ `getSet() should only be used on @Prop/@property/@State/@state properties. For internal component properties, use regular get/set syntax. Tried to use it on "${name}" in ${component.el.tagName}`
3733
+ );
3734
+ } else if (tolerateNotFound) {
3735
+ return;
3736
+ } else {
3737
+ throw new Error(`Unable to find "${name}" property on the ${component.el.tagName} component`);
3738
+ }
3739
+ }
3740
+ const { get: originalGet, set: originalSet } = descriptor;
3741
+ const isGetterAlreadyOverwritten = customAccessor in originalGet;
3742
+ const isSetterAlreadyOverwritten = customAccessor in originalSet;
3743
+ const shouldOverwriteGet = !isGetterAlreadyOverwritten && hasGetter;
3744
+ const shouldOverwriteSet = !isSetterAlreadyOverwritten && hasSetter;
3745
+ if (!shouldOverwriteGet && !shouldOverwriteSet) {
3746
+ return;
3747
+ }
3748
+ const finalGetter = shouldOverwriteGet ? function getter() {
3749
+ let value = originalGet.call(this);
3750
+ const component2 = Controller.internals.elementToInstance.get(this);
3751
+ if (Controller.internals.shouldBypassGetter || component2 === void 0) {
3752
+ return value;
3753
+ }
3754
+ const internals = component2.manager.internals;
3755
+ value = internals.accessorGetter[name](value, name);
3756
+ const getters = internals.getters[name] ?? emptyArray;
3757
+ for (let i = 0; i < getters.length; i++) {
3758
+ value = getters[i](value, name);
3759
+ }
3760
+ return value;
3761
+ } : originalGet;
3762
+ const finalSetter = shouldOverwriteSet ? function setter(rawNewValue) {
3763
+ const oldValue = originalGet.call(this);
3764
+ const component2 = Controller.internals.elementToInstance.get(this);
3765
+ if (component2 === void 0) {
3766
+ originalSet.call(this, rawNewValue);
3767
+ return;
3768
+ }
3769
+ let newValue = component2.manager.isLit ? rawNewValue : parsePropertyValue(rawNewValue, propType);
3770
+ const internals = component2.manager.internals;
3771
+ if (newValue === oldValue) {
3772
+ originalSet.call(this, rawNewValue);
3773
+ } else {
3774
+ const setters = Controller.internals.shouldBypassSetter ? emptyArray : internals.setters[name] ?? emptyArray;
3775
+ for (let i = 0; i < setters.length; i++) {
3776
+ newValue = setters[i](newValue, oldValue, name);
3777
+ if (newValue === oldValue) {
3778
+ break;
3779
+ }
3780
+ }
3781
+ newValue = internals.accessorSetter[name](newValue, oldValue, name);
3782
+ originalSet.call(this, newValue);
3783
+ if (newValue !== oldValue) {
3784
+ internals.enabledWatchers[name]?.forEach((watcher) => watcher(newValue, oldValue, name));
3785
+ }
3786
+ }
3787
+ if (internals._keyTrackers.length > 0) {
3788
+ internals?._firePropertyTrackers(name, rawNewValue, oldValue);
3789
+ }
3790
+ } : originalSet;
3791
+ if (shouldOverwriteGet) {
3792
+ Object.defineProperty(finalGetter, customAccessor, { value: true });
3793
+ }
3794
+ if (shouldOverwriteSet) {
3795
+ Object.defineProperty(finalSetter, customAccessor, { value: true });
3796
+ }
3797
+ Object.defineProperty(prototype, name, {
3798
+ ...descriptor,
3799
+ get: finalGetter,
3800
+ set: finalSetter
3801
+ });
3802
+ }
3803
+ /**
3804
+ * Associate an exports object with a controller for reverse lookup in
3805
+ * controller.use
3806
+ */
3807
+ markExports(controller, exports) {
3808
+ if (typeof exports === "object" && exports !== null || typeof exports === "function") {
3809
+ this._exports.set(exports, controller);
3810
+ }
3811
+ }
3812
+ resolveExports(exports) {
3813
+ if (typeof exports === "object" && exports !== null || typeof exports === "function") {
3814
+ return this._exports.get(exports);
3815
+ } else {
3816
+ return void 0;
3817
+ }
3818
+ }
3819
+ };
3820
+ var emptyArray = [];
3821
+ var customAccessor = Symbol("controllersCustomAccessor");
3822
+ var nothing = Symbol("nothing");
3823
+ var useControllerManager = (component, forceUpdate) => new ControllerManager(component, forceUpdate);
3824
+ var ControllerManager = class extends GenericController {
3825
+ constructor(component, forceUpdate) {
3826
+ const isLit = "addController" in component;
3827
+ const controllers = /* @__PURE__ */ new Set();
3828
+ function addController(controller) {
3829
+ controllers.add(controller);
3830
+ if (isLit && !(controllerSymbol in controller) && component.el.isConnected) {
3831
+ controller.hostConnected?.();
3832
+ }
3833
+ }
3834
+ function removeController(controller) {
3835
+ void controllers.delete(controller);
3836
+ controller.controllerRemoved?.();
3837
+ }
3838
+ const controllerHost = component;
3839
+ controllerHost.addController = addController;
3840
+ controllerHost.removeController = removeController;
3841
+ if (!isLit) {
3842
+ const update = forceUpdate ?? component.constructor.__forceUpdate;
3843
+ controllerHost.requestUpdate = () => update(component);
3844
+ }
3845
+ super(component);
3846
+ this.internals = new ComponentInternals(this.component);
3847
+ this.destroyed = false;
3848
+ this._updatePromise = new Deferred();
3849
+ this._originalLifecycles = {};
3850
+ /**
3851
+ * A magical solution to finding out what property name a given controller
3852
+ * on a given object was assigned to. Note, this does not work for properties
3853
+ * that have \@Prop() or \@State() decorator - for those, use
3854
+ * manager.trackPropKey() instead.
3855
+ *
3856
+ * @example
3857
+ * function trackMe<T>(defaultValue:T, component:BaseComponent):T {
3858
+ * component.manager.trackPropertyKey(component, (key)=>console.log(key), defaultValue);
3859
+ * return defaultValue;
3860
+ * }
3861
+ *
3862
+ * class MyComponent extends BaseComponent {
3863
+ * // Will console log "myProp"
3864
+ * myProp = trackMe('a', this);
3865
+ * }
3866
+ *
3867
+ */
3868
+ this.trackPropertyKey = trackPropertyKey;
3869
+ /**
3870
+ * Like manager.trackPropertyKey(), but for props that have \@State() or \@Prop()
3871
+ * decorator
3872
+ *
3873
+ * @example
3874
+ * function trackMe(component:BaseComponent) {
3875
+ * component.manager.trackPropKey((key)=>console.log(key));
3876
+ * }
3877
+ *
3878
+ * class MyComponent extends BaseComponent {
3879
+ * // Will console log "myProp"
3880
+ * @Prop() myProp = trackMe(this);
3881
+ *
3882
+ * // Will console log "myState"
3883
+ * @State() myState = trackMe(this);
3884
+ * }
3885
+ */
3886
+ this.trackPropKey = this.internals.trackPropKey;
3887
+ /**
3888
+ * A combination of trackPropertyKey() and trackPropKey(). For usage when
3889
+ * you want to track a property, but don't know if it will be defined with the
3890
+ * \@Prop() decorator or not
3891
+ */
3892
+ this.trackKey = this.internals.trackKey;
3893
+ this._readonlySetter = (newValue, oldValue, property) => {
3894
+ if (Controller.internals.shouldBypassReadonly) {
3895
+ return newValue;
3896
+ }
3897
+ const component = this.component;
3898
+ const isProp = getPropType(component, property) === "prop";
3899
+ if (isProp) {
3900
+ if (this.isLit) {
3901
+ const details = getLitProperties(component).get(property);
3902
+ if (details && details?.attribute !== false) {
3903
+ component.el.setAttribute(
3904
+ typeof details.attribute === "string" ? details.attribute : camelToKebab(property),
3905
+ // Not using converter.toAttribute to keep this unlikely case simpler
3906
+ String(oldValue)
3907
+ );
3908
+ }
3909
+ } else {
3910
+ component.requestUpdate();
3911
+ }
3912
+ }
3913
+ throw new Error(
3914
+ `Cannot assign to read-only property "${property}" of ${component.el.tagName.toLowerCase()}. Trying to assign "${String(
3915
+ newValue
3916
+ )}"`
3917
+ );
3918
+ };
3919
+ /**
3920
+ * In development, on hot module reload, controller would be re-initialized
3921
+ * with all Props and State values persistent, but properties lost. This unsafe
3922
+ * development-only API lets you set or get data for a controller that would
3923
+ * persist across hot reloads.
3924
+ */
3925
+ this.devOnlySetPersistentControllerData = void 0 ;
3926
+ this.devOnlyGetPersistentControllerData = void 0 ;
3927
+ this.isLit = isLit;
3928
+ this.component.manager = this;
3929
+ retrieveComponentMembers(component, isLit);
3930
+ this._controllers = controllers;
3931
+ this.exports = void 0;
3932
+ this.hasDestroy = "autoDestroyDisabled" in this.component && typeof this.component.destroy === "function";
3933
+ if (this.hasDestroy) {
3934
+ this.watch("autoDestroyDisabled", () => this._autoDestroyDisabledWatcher());
3935
+ }
3936
+ this._bindLifecycleMethods();
3937
+ if (!isLit) {
3938
+ Object.defineProperty(component, "updateComplete", {
3939
+ get: async () => await this._updatePromise.promise
3940
+ });
3941
+ }
3942
+ const members = getPropLikeMembers(component);
3943
+ const internals = component.manager.internals;
3944
+ members.forEach((name) => {
3945
+ internals.accessorGetter[name] = defaultGetterSetter;
3946
+ internals.accessorSetter[name] = defaultGetterSetter;
3947
+ internals.getSetProxy(name, true, true);
3948
+ });
3949
+ Controller.internals.setParentController(void 0);
3950
+ Controller.internals.setAmbientComponent(component);
3951
+ Controller.internals.elementToInstance.set(component.el, component);
3952
+ Controller.internals.elementToInstance.set(component, component);
3953
+ }
3954
+ _bindLifecycleMethods() {
3955
+ const component = this.component;
3956
+ const isLit = this.isLit;
3957
+ this._originalLifecycles = {
3958
+ // These component's callbacks will be called by Lit, so we don't have to
3959
+ connectedCallback: isLit ? void 0 : component.connectedCallback,
3960
+ disconnectedCallback: isLit ? void 0 : component.disconnectedCallback,
3961
+ componentWillLoad: isLit ? void 0 : component.componentWillLoad,
3962
+ componentDidLoad: isLit ? void 0 : component.componentDidLoad,
3963
+ componentWillUpdate: isLit ? void 0 : component.componentWillUpdate,
3964
+ componentDidUpdate: isLit ? void 0 : component.componentDidUpdate,
3965
+ destroy: component.destroy
3966
+ };
3967
+ const hostConnected = this._connectedCallback.bind(this);
3968
+ const hostDisconnected = this._disconnectedCallback.bind(this);
3969
+ const hostUpdate = this._update.bind(this);
3970
+ const hostUpdated = this._updated.bind(this);
3971
+ if (isLit) {
3972
+ component.constructor.prototype.addController.call(component, {
3973
+ // Lit will call these callbacks
3974
+ hostConnected,
3975
+ hostDisconnected,
3976
+ hostUpdate,
3977
+ hostUpdated
3978
+ });
3979
+ } else {
3980
+ component.connectedCallback = hostConnected;
3981
+ component.disconnectedCallback = hostDisconnected;
3982
+ component.componentWillLoad = this._load.bind(this);
3983
+ component.componentDidLoad = this._loaded.bind(this);
3984
+ component.componentWillUpdate = hostUpdate;
3985
+ component.componentDidUpdate = hostUpdated;
3986
+ }
3987
+ if (this.hasDestroy) {
3988
+ component.destroy = this.destroy.bind(this);
3989
+ }
3990
+ }
3991
+ /**
3992
+ * Throws an error if component does not implement destroy() lifecycle, but
3993
+ * tries to use it.
3994
+ */
3995
+ ensureHasDestroy() {
3996
+ if (!this.hasDestroy) {
3997
+ throw new Error(destroyErrorMessage);
3998
+ }
3999
+ }
4000
+ /**
4001
+ * Private because this is not supposed to be called by Component directly.
4002
+ * Instead, _bindLifecycleMethods will take care of that. Otherwise, you risk
4003
+ * calling lifecycle methods twice.
4004
+ */
4005
+ _connectedCallback() {
4006
+ if (this.destroyed) {
4007
+ const tagName = this.component.el.tagName.toLowerCase();
4008
+ this.component.el.remove();
4009
+ throw new Error(
4010
+ `The ${tagName} component has already been destroyed. It can not be used again. If you meant to disconnect and reconnect a component without automatic destroy, set the autoDestroyDisabled prop.`
4011
+ );
4012
+ }
4013
+ if (this._autoDestroyTimeout !== void 0) {
4014
+ clearTimeout(this._autoDestroyTimeout);
4015
+ }
4016
+ this.internals.enabledWatchers = this.internals.allWatchers;
4017
+ keyTrackResolve();
4018
+ this._controllers.forEach(
4019
+ (controller) => "triggerConnected" in controller ? controller.triggerConnected() : safeCall(controller.hostConnected, controller)
4020
+ );
4021
+ this._originalLifecycles.connectedCallback?.call(this.component);
4022
+ }
4023
+ _disconnectedCallback() {
4024
+ if (this.destroyed) {
4025
+ return;
4026
+ }
4027
+ this._controllers.forEach(
4028
+ (controller) => "triggerDisconnected" in controller ? controller.triggerDisconnected() : safeCall(controller.hostDisconnected, controller)
4029
+ );
4030
+ this._originalLifecycles.disconnectedCallback?.call(this.component);
4031
+ if (this.hasDestroy) {
4032
+ this._autoDestroyDisabledWatcher();
4033
+ }
4034
+ }
4035
+ async _load() {
4036
+ const integrations = this.internals.reactiveUtilsIntegrations;
4037
+ if (integrations.size > 0) {
4038
+ for (const controller of integrations) {
4039
+ if ("triggerLoad" in controller) {
4040
+ await controller.triggerLoad();
4041
+ } else {
4042
+ await safeAsyncCall(controller.hostLoad, controller);
4043
+ }
4044
+ }
4045
+ }
4046
+ await Promise.allSettled(
4047
+ Array.from(
4048
+ this._controllers,
4049
+ async (controller) => integrations.has(controller) ? void 0 : "triggerLoad" in controller ? await controller.triggerLoad() : await safeAsyncCall(controller.hostLoad, controller)
4050
+ )
4051
+ );
4052
+ await this._originalLifecycles.componentWillLoad?.call(this.component);
4053
+ }
4054
+ _loaded() {
4055
+ this._controllers.forEach(
4056
+ (controller) => "triggerLoaded" in controller ? controller.triggerLoaded() : safeCall(controller.hostLoaded, controller)
4057
+ );
4058
+ this._originalLifecycles.componentDidLoad?.call(this.component);
4059
+ }
4060
+ _update() {
4061
+ this._controllers.forEach(
4062
+ (controller) => "triggerUpdate" in controller ? controller.triggerUpdate() : safeCall(controller.hostUpdate, controller)
4063
+ );
4064
+ void this._originalLifecycles.componentWillUpdate?.call(this.component);
4065
+ }
4066
+ _updated() {
4067
+ this._controllers.forEach(
4068
+ (controller) => "triggerUpdated" in controller ? controller.triggerUpdated() : safeCall(controller.hostUpdated, controller)
4069
+ );
4070
+ this._originalLifecycles.componentDidUpdate?.call(this.component);
4071
+ if (!this.isLit) {
4072
+ const updatePromise = this._updatePromise;
4073
+ this._updatePromise = new Deferred();
4074
+ updatePromise.resolve(true);
4075
+ }
4076
+ }
4077
+ async destroy() {
4078
+ this.ensureHasDestroy();
4079
+ if (this.destroyed) {
4080
+ return;
4081
+ }
4082
+ if (this.component.el.isConnected) {
4083
+ this.hasDestroy = false;
4084
+ try {
4085
+ this.component.el.remove();
4086
+ } finally {
4087
+ this.hasDestroy = true;
4088
+ }
4089
+ }
4090
+ this._autoDestroyTimeout = void 0;
4091
+ this.destroyed = true;
4092
+ this._controllers.forEach(
4093
+ (controller) => "triggerDestroy" in controller ? controller.triggerDestroy() : safeCall(controller.hostDestroy, controller)
4094
+ );
4095
+ this._controllers.clear();
4096
+ await this._originalLifecycles.destroy?.call(this.component);
4097
+ }
4098
+ _autoDestroyDisabledWatcher() {
4099
+ if (!this.component.el.isConnected && !this.component.autoDestroyDisabled) {
4100
+ if (this._autoDestroyTimeout !== void 0) {
4101
+ clearTimeout(this._autoDestroyTimeout);
4102
+ }
4103
+ const destroy = () => void this.destroy().catch(console.error);
4104
+ {
4105
+ this._autoDestroyTimeout = devToolsAwareTimeout(destroy, autoDestroyOnDisconnectTimeout);
4106
+ }
4107
+ }
4108
+ }
4109
+ // REFACTOR: replace this with a readonly:true option in @property()
4110
+ /**
4111
+ * Make a @Prop() or @State() readonly (prevent overwriting default value).
4112
+ *
4113
+ * For internal properties, prefer TypeScript's "readonly" modifier instead.
4114
+ *
4115
+ * @example
4116
+ * // Defining readonly prop
4117
+ * @Prop({ reflect: true }) prop = this.manager.readonly('a');
4118
+ *
4119
+ * @example
4120
+ * // Overwriting readonly prop internally
4121
+ * this.manager.bypassReadonly(()=>{
4122
+ * this.prop = 'b';
4123
+ * });
4124
+ *
4125
+ */
4126
+ readonly(value) {
4127
+ return this.getSet(value, { set: this._readonlySetter });
4128
+ }
4129
+ // REFACTOR: remove this in Lit in favor of native get/set
4130
+ /**
4131
+ * Listen for any component's @State()/@Prop() change, and mutate it's
4132
+ * value before it is set.
4133
+ * This is necessary because Stencil's Compiler does not support get/set for
4134
+ * @State()/@Prop().
4135
+ * For private component properties, you should use regular get/set syntax.
4136
+ *
4137
+ * @example
4138
+ * @Prop() exampleProp = this.manager.getSet(defaultValue,{get,set})
4139
+ * @Prop() someProp = this.manager.getSet(
4140
+ * undefined as string | undefined,
4141
+ * {
4142
+ * get: (value)=>value.trim(),
4143
+ * set: (newValue,oldValue) => newValue.trim() ?? oldValue
4144
+ * }
4145
+ * )
4146
+ *
4147
+ * @remarks
4148
+ * Unlike a native get/set, the get function receives the current attribute
4149
+ * value, and can modify it before returning it (or can disregard the current
4150
+ * value and get it from elsewhere instead).
4151
+ * Similarly, setter is called with the new and old value, and is expected to
4152
+ * return the final new value (or return the old value to undo the change)
4153
+ */
4154
+ getSet(defaultValue, getSet) {
4155
+ return this.component.manager.trackPropKey((name) => {
4156
+ var _a2;
4157
+ if (name === void 0) {
4158
+ throw new Error(
4159
+ "Unable to resolve get/set's prop name. Make sure you are using it like @Prop() someProp = this.manager.getSet(defaultValue,{get,set})"
4160
+ );
4161
+ }
4162
+ if (getSet.set === this._readonlySetter) {
4163
+ (_a2 = this.internals).readonlyProps ?? (_a2.readonlyProps = /* @__PURE__ */ new Set());
4164
+ this.internals.readonlyProps.add(name);
4165
+ }
4166
+ const genericComponent = this.component;
4167
+ const value = genericComponent[name];
4168
+ const isStencilHotReload = "production" !== "production" ;
4169
+ const initialSet = getSet.initialSet ?? true;
4170
+ if (value != null && value !== defaultValue && typeof getSet.set === "function" && initialSet && !isStencilHotReload) {
4171
+ const newValue = getSet.set(value, defaultValue, name);
4172
+ if (newValue !== value) {
4173
+ if (this.isLit) {
4174
+ genericComponent[name] = newValue;
4175
+ } else {
4176
+ let firstConnected = true;
4177
+ this.onConnected(() => {
4178
+ if (!firstConnected) {
4179
+ return;
4180
+ }
4181
+ firstConnected = true;
4182
+ this.bypassSetter(() => {
4183
+ genericComponent[name] = newValue;
4184
+ });
4185
+ });
4186
+ }
4187
+ }
4188
+ }
4189
+ this.genericGetSet(name, getSet);
4190
+ }, defaultValue);
4191
+ }
4192
+ };
4193
+ var destroyErrorMessage = `
4194
+ If the component uses a controller that uses destroy() method, then the
4195
+ component must have the following properties:
4196
+ ${// Don't expose internal code in production, and keep bundle smaller:
4197
+ `autoDestroyDisabled and destroy` }
4198
+ `.trim();
4199
+ var autoDestroyOnDisconnectTimeout = 1e3;
4200
+ var defaultGetterSetter = (value) => value;
4201
+
4202
+ // src/proxyExports.ts
4203
+ var proxyExports = (Class) => (...args) => {
4204
+ const ambientControllers = Controller.internals.retrieveParentControllers();
4205
+ const instance = new Class(...args);
4206
+ const initialExports = instance.exports;
4207
+ Controller.internals.setParentController(ambientControllers.at(-1));
4208
+ const internals = instance.component.manager.internals;
4209
+ internals.markExports(instance, initialExports);
4210
+ instance.watchExports((exports) => internals.markExports(instance, exports));
4211
+ Controller.internals.setAmbientChildController(instance);
4212
+ const hostCandidates = [instance.component, ...ambientControllers].reverse();
4213
+ return internals.trackKey(
4214
+ hostCandidates,
4215
+ (resolution) => resolution === void 0 ? void 0 : setProxy(instance, resolution, initialExports),
4216
+ initialExports
4217
+ );
4218
+ };
4219
+ function setProxy(controller, { host, key, type }, initialExports) {
4220
+ const genericHost = host;
4221
+ const controllerValueChanged = genericHost[key] !== controller.exports;
4222
+ const hostValueChanged = genericHost[key] !== initialExports;
4223
+ const controllerUpdatedExports = initialExports !== controller.exports;
4224
+ if (controllerValueChanged && !hostValueChanged && controllerUpdatedExports) {
4225
+ genericHost[key] = controller.exports;
4226
+ }
4227
+ const isProxyExportsOnComponent = host === controller.component;
4228
+ if (isProxyExportsOnComponent && type === "prop") {
4229
+ const internals = controller.component.manager.internals;
4230
+ if (hostValueChanged) {
4231
+ internals.markExports(controller, genericHost[key]);
4232
+ }
4233
+ controller.component.manager.watch(key, (value) => {
4234
+ if (value !== controller.exports) {
4235
+ internals.markExports(controller, value);
4236
+ }
2936
4237
  });
2937
- return result;
4238
+ }
4239
+ controller.watchExports(() => {
4240
+ if (genericHost[key] === controller.exports) {
4241
+ return;
4242
+ }
4243
+ const manager = controller.component.manager;
4244
+ const isReadOnly = manager.internals.readonlyProps?.has(key) === true;
4245
+ if (isReadOnly) {
4246
+ manager.bypassReadonly(() => {
4247
+ genericHost[key] = controller.exports;
4248
+ });
4249
+ } else {
4250
+ genericHost[key] = controller.exports;
4251
+ }
4252
+ });
2938
4253
  }
2939
4254
 
4255
+ // src/functional.ts
4256
+ var makeController = (constructor) => proxy(void 0, constructor);
4257
+ var FunctionalController = class extends Controller {
4258
+ constructor(component, constructor) {
4259
+ super(component);
4260
+ const originalExports = this.exports;
4261
+ try {
4262
+ Controller.internals.setAmbientComponent(this.component);
4263
+ const value = constructor(this.component, this);
4264
+ const constructorChangedExports = this.exports !== originalExports;
4265
+ if (value instanceof Promise) {
4266
+ if (!constructorChangedExports) {
4267
+ this.setProvisionalExports(value);
4268
+ }
4269
+ const resolved = value.then((result) => {
4270
+ this.exports = result;
4271
+ super.catchUpLifecycle();
4272
+ }).catch((error) => {
4273
+ this._ready.reject(error);
4274
+ console.error(error);
4275
+ });
4276
+ this.onLoad(async () => await resolved);
4277
+ } else {
4278
+ if (!constructorChangedExports || value !== void 0) {
4279
+ this.exports = value;
4280
+ }
4281
+ queueMicrotask(() => super.catchUpLifecycle());
4282
+ }
4283
+ } catch (error) {
4284
+ this._ready.reject(error);
4285
+ console.error(error);
4286
+ }
4287
+ }
4288
+ /** Noop - will be called in the constructor instead */
4289
+ catchUpLifecycle() {
4290
+ return;
4291
+ }
4292
+ };
4293
+ var proxy = proxyExports(FunctionalController);
4294
+
4295
+ var makeT9nController = (getAssetPath) => ({ blocking = false, name } = {}) => (
4296
+ // eslint-disable-next-line @typescript-eslint/promise-function-async
4297
+ makeController((component, controller) => {
4298
+ controller.onLifecycle(
4299
+ () => startLocaleObserver(
4300
+ component.el,
4301
+ getAssetPath("./assets"),
4302
+ ({ t9nLocale, t9nStrings, lang }) => {
4303
+ controller.exports = { ...t9nStrings, _lang: lang, _t9nLocale: t9nLocale };
4304
+ const label = t9nStrings.componentLabel ?? t9nStrings.widgetLabel;
4305
+ if (typeof label === "string" && "label" in component && component.label == null) {
4306
+ component.label ?? (component.label = label);
4307
+ }
4308
+ },
4309
+ name
4310
+ )
4311
+ );
4312
+ if (blocking) {
4313
+ return controller.ready;
4314
+ }
4315
+ const locale = getElementLocales(component.el);
4316
+ return { _lang: locale.lang, _t9nLocale: locale.t9nLocale };
4317
+ })
4318
+ );
4319
+
2940
4320
  function isMonacoEnvironmentSetup() {
2941
4321
  return !!window.MonacoEnvironment?.getWorkerUrl;
2942
4322
  }
@@ -2977,18 +4357,18 @@ function setupMonacoEnvironment(assetsPath) {
2977
4357
  break;
2978
4358
  }
2979
4359
  // If we have a relative path or we are on same orgin, we can use the default js implementation
2980
- if (!ie(url) || se(url, globalThis.location.href, true)) {
4360
+ if (!isURL(url) || hasSameOrigin(url, globalThis.location.href, true)) {
2981
4361
  return new Worker(url, { name: languageId });
2982
4362
  }
2983
4363
  // For cross orgin, we will load the worker code as a string and manufacture a blob
2984
4364
  const esriRequest = await importRequest();
2985
4365
  const response = await esriRequest(url, {
2986
- responseType: "text"
4366
+ responseType: "text",
2987
4367
  });
2988
4368
  return new Worker(URL.createObjectURL(new Blob([response.data], {
2989
- type: "text/javascript"
4369
+ type: "text/javascript",
2990
4370
  })));
2991
- }
4371
+ },
2992
4372
  };
2993
4373
  }
2994
4374
 
@@ -3027,9 +4407,9 @@ function setupArcadeTheme() {
3027
4407
  { token: "keyword.arc", foreground: colors.keyword },
3028
4408
  { token: "identifier.arc", foreground: colors.identifier },
3029
4409
  { token: "number.arc", foreground: colors.number },
3030
- { token: "string.arc", foreground: colors.string }
4410
+ { token: "string.arc", foreground: colors.string },
3031
4411
  ],
3032
- colors: {}
4412
+ colors: {},
3033
4413
  });
3034
4414
  });
3035
4415
  }
@@ -3084,14 +4464,14 @@ async function getArcadeWorker(uri) {
3084
4464
  * @returns arcade mode module
3085
4465
  */
3086
4466
  async function getMode() {
3087
- return await import('./arcade-mode-8a50067b.js');
4467
+ return await import('./arcade-mode-f87480eb.js');
3088
4468
  }
3089
4469
  // Register the language in Monaco
3090
4470
  languages.register({
3091
4471
  id: arcadeDefaults.languageId,
3092
4472
  aliases: ["Arcade", "arcade"],
3093
4473
  extensions: [".arc"],
3094
- mimetypes: ["application/arcade"]
4474
+ mimetypes: ["application/arcade"],
3095
4475
  });
3096
4476
  // An event emitted when a language is first time needed
3097
4477
  languages.onLanguage(arcadeDefaults.languageId, () => {
@@ -3107,13 +4487,18 @@ languages.onLanguage(arcadeDefaults.languageId, () => {
3107
4487
  });
3108
4488
  });
3109
4489
 
3110
- const arcadeApiCss = ":host{background-color:var(--calcite-color-foreground-1)}:host .notice-container{margin:var(--calcite-spacing-quarter);padding:var(--calcite-spacing-half);background-color:var(--calcite-color-foreground-1)}:host .sticky{position:sticky;top:0px;z-index:10}:host calcite-flow{height:100%}:host calcite-block p:first-of-type{margin-top:0}:host calcite-block code{font-family:var(--calcite-code-family)}:host calcite-block pre{direction:ltr;overflow-x:auto;background-color:var(--calcite-color-foreground-2);padding:var(--calcite-spacing-half)}:host calcite-block pre code{font-size:var(--calcite-font-size--2)}";
4490
+ const useT9n = makeT9nController(getAssetPath);
4491
+
4492
+ const arcadeApiCss = ":host{background-color:var(--calcite-color-foreground-1)}:host .notice-container{margin:var(--calcite-spacing-xxs);padding:var(--calcite-spacing-sm);background-color:var(--calcite-color-foreground-1)}:host .sticky{position:sticky;top:0px;z-index:10}:host calcite-flow{height:100%}:host calcite-block p:first-of-type{margin-top:0}:host calcite-block code{font-family:var(--calcite-code-family)}:host calcite-block pre{direction:ltr;overflow-x:auto;background-color:var(--calcite-color-foreground-2);padding:var(--calcite-spacing-sm)}:host calcite-block pre code{font-size:var(--calcite-font-size--2)}:host calcite-list-item-group{background-color:var(--calcite-color-foreground-2)}";
4493
+ const ArcgisArcadeApiStyle0 = arcadeApiCss;
3111
4494
 
3112
4495
  const ArcgisArcadeApi = class {
3113
4496
  constructor(hostRef) {
3114
4497
  registerInstance(this, hostRef);
3115
- this.close = createEvent(this, "close", 3);
3116
- this.itemSelected = createEvent(this, "itemSelected", 3);
4498
+ this.arcgisClose = createEvent(this, "arcgisClose", 3);
4499
+ this.arcgisItemSelected = createEvent(this, "arcgisItemSelected", 3);
4500
+ this.manager = useControllerManager(this);
4501
+ this.messages = useT9n();
3117
4502
  this._emitItemSelected = (e) => {
3118
4503
  const item = e.target?.["data-item"];
3119
4504
  if (!item) {
@@ -3122,10 +4507,10 @@ const ArcgisArcadeApi = class {
3122
4507
  const keyEvent = e;
3123
4508
  if (!keyEvent.key || keyEvent.key === "Enter") {
3124
4509
  e.preventDefault();
3125
- this.itemSelected.emit(item.completion.insertText);
4510
+ this.arcgisItemSelected.emit(item.completion.insertText);
3126
4511
  }
3127
4512
  };
3128
- this._emitClose = () => this.close.emit();
4513
+ this._emitClose = () => this.arcgisClose.emit();
3129
4514
  this._emitItemSelectedAndClose = (e) => {
3130
4515
  if (!e.target) {
3131
4516
  return;
@@ -3137,7 +4522,7 @@ const ArcgisArcadeApi = class {
3137
4522
  if (!item) {
3138
4523
  return;
3139
4524
  }
3140
- this.itemSelected.emit(item.completion.insertText);
4525
+ this.arcgisItemSelected.emit(item.completion.insertText);
3141
4526
  }
3142
4527
  };
3143
4528
  this._selectItem = (e) => {
@@ -3153,9 +4538,6 @@ const ArcgisArcadeApi = class {
3153
4538
  this._updateFilterValue = (e) => {
3154
4539
  this._filterValue = e.target?.value ?? "";
3155
4540
  };
3156
- this._lang = "";
3157
- this._t9nLocale = "";
3158
- this._t9nStrings = undefined;
3159
4541
  this._selectedApiItem = undefined;
3160
4542
  this._filterValue = "";
3161
4543
  this._colorizeStyle = "";
@@ -3169,7 +4551,6 @@ const ArcgisArcadeApi = class {
3169
4551
  async componentWillLoad() {
3170
4552
  this._colorizeStyle = generateColorizeStyles();
3171
4553
  this._themeChangedListner = onColorizeThemeChanged(() => (this._colorizeStyle = generateColorizeStyles()));
3172
- await B(this, getAssetPath("./assets"));
3173
4554
  arcadeDefaults.onModelContextDidChange((key) => {
3174
4555
  if (!this.modelId || key !== Uri.parse(this.modelId).toString()) {
3175
4556
  return;
@@ -3179,7 +4560,6 @@ const ArcgisArcadeApi = class {
3179
4560
  await this._updateApiLibrary();
3180
4561
  }
3181
4562
  disconnectedCallback() {
3182
- q(this);
3183
4563
  this._flowObserver?.disconnect();
3184
4564
  this._themeChangedListner?.dispose();
3185
4565
  }
@@ -3202,8 +4582,9 @@ const ArcgisArcadeApi = class {
3202
4582
  }
3203
4583
  catch (e) {
3204
4584
  console.error("Could not load api library", e);
3205
- if (e instanceof Error)
4585
+ if (e instanceof Error) {
3206
4586
  console.error(e.stack);
4587
+ }
3207
4588
  this._apiLibrary = undefined;
3208
4589
  }
3209
4590
  finally {
@@ -3224,7 +4605,7 @@ const ArcgisArcadeApi = class {
3224
4605
  // When switching between flow the same reference is reused
3225
4606
  this._flowObserver = new MutationObserver(() => {
3226
4607
  // Get the last panel and try to set focus on the input element
3227
- W(ref.querySelector("calcite-flow-item:last-child"), "calcite-input");
4608
+ setFocusOnElement(ref.querySelector("calcite-flow-item:last-child"), "calcite-input");
3228
4609
  });
3229
4610
  this._flowObserver.observe(ref, { attributes: true, attributeFilter: ["id"], childList: true });
3230
4611
  }
@@ -3235,14 +4616,14 @@ const ArcgisArcadeApi = class {
3235
4616
  if (!filteredApiItems.length) {
3236
4617
  return null;
3237
4618
  }
3238
- return (h("calcite-list-item-group", { heading: category.title }, filteredApiItems.map((apiItem) => (h("calcite-list-item", { label: G(apiItem.completion.detail), onCalciteListItemSelect: this._emitItemSelected, onKeyPress: this._emitItemSelected, "data-item": apiItem }, h("calcite-action", { slot: "actions-end", text: this._t9nStrings?.expand ?? "Expand", icon: "chevron-right", iconFlipRtl: true, scale: "s", onClick: this._selectItem, "data-item": apiItem }))))));
4619
+ return (h("calcite-list-item-group", { heading: category.title }, filteredApiItems.map((apiItem) => (h("calcite-list-item", { label: addLTRMark(apiItem.completion.detail), onCalciteListItemSelect: this._emitItemSelected, onKeyPress: this._emitItemSelected, "data-item": apiItem }, h("calcite-action", { slot: "actions-end", text: this.messages.expand ?? "Expand", icon: "chevron-right", iconFlipRtl: true, scale: "s", onClick: this._selectItem, "data-item": apiItem }))))));
3239
4620
  }
3240
4621
  renderApiItemFlowItem() {
3241
4622
  const apiItem = this._selectedApiItem;
3242
4623
  if (!apiItem) {
3243
4624
  return null;
3244
4625
  }
3245
- return (h("calcite-flow-item", { heading: this._t9nStrings?.constantsandfunctions, beforeBack: this._unselectItem, closable: true, onCalciteFlowItemClose: this._emitClose }, this.hideDocumentationActions ? null : (h("calcite-button", { width: "half", slot: "footer", appearance: "outline", kind: "brand", scale: "s", href: apiItem.link, target: "Arcade Help", "icon-start": "information" }, this._t9nStrings?.moreinformation)), h("calcite-button", { width: "half", slot: "footer", appearance: "outline", kind: "brand", "icon-start": "code", scale: "s", onClick: this._emitItemSelectedAndClose, "data-item": apiItem, ref: (e) => void e?.setFocus() }, this._t9nStrings?.insert ?? "Insert"), h("calcite-block", { open: true, heading: G(apiItem.completion.detail) }, h("div", { innerHTML: convertMarkdownString(apiItem.completion.documentation) }), apiItem.examples ? (h("div", { ref: (e) => {
4626
+ return (h("calcite-flow-item", { heading: this.messages.constantsandfunctions, beforeBack: this._unselectItem, closable: true, onCalciteFlowItemClose: this._emitClose }, this.hideDocumentationActions ? null : (h("calcite-button", { width: "half", slot: "footer", appearance: "outline", kind: "brand", scale: "s", href: apiItem.link, target: "Arcade Help", "icon-start": "information" }, this.messages.moreinformation)), h("calcite-button", { width: "half", slot: "footer", appearance: "outline", kind: "brand", "icon-start": "code", scale: "s", onClick: this._emitItemSelectedAndClose, "data-item": apiItem, ref: (e) => void e?.setFocus() }, this.messages.insert ?? "Insert"), h("calcite-block", { open: true, heading: addLTRMark(apiItem.completion.detail) }, h("div", { innerHTML: convertMarkdownString(apiItem.completion.documentation) }), apiItem.examples ? (h("div", { ref: (e) => {
3246
4627
  if (!e) {
3247
4628
  return;
3248
4629
  }
@@ -3253,12 +4634,12 @@ const ArcgisArcadeApi = class {
3253
4634
  render() {
3254
4635
  const categories = (this._apiLibrary ?? []).map((apiCategory) => this.renderApiCategory(apiCategory));
3255
4636
  const empty = categories.every((g) => !g);
3256
- return (h(Host, null, h("style", null, this._colorizeStyle), h("calcite-flow", { ref: (ref) => this.flowFocusHandler(ref) }, h("calcite-flow-item", { heading: this._t9nStrings?.constantsandfunctions, closable: true, onCalciteFlowItemClose: this._emitClose }, h("calcite-input", { value: this._filterValue, icon: "magnifying-glass", clearable: true, onCalciteInputInput: this._updateFilterValue, class: "sticky", scale: "m" }), this._preparingApi ? (h("calcite-loader", { scale: "s", type: "indeterminate", label: this._t9nStrings?.loading ?? "Loading" })) : (h("calcite-list", null, empty ? h("div", { class: "notice-container" }, this._t9nStrings?.noitems ?? "No items") : categories))), this.renderApiItemFlowItem())));
4637
+ return (h(Host, { key: '9bd64b2ff0f6f35b952bd614fc1bb3d5bd7474b5' }, h("style", { key: '0a42f9ffb38f4c27d80dc47716ebdbeefde284ef' }, this._colorizeStyle), h("calcite-flow", { key: '8861ef8bda1dc1ff385a8375c1c2374e0ce23a5f', ref: (ref) => this.flowFocusHandler(ref) }, h("calcite-flow-item", { key: '428fd8355f4d5f27160826d1e51bb1e1f6939d11', heading: this.messages.constantsandfunctions, closable: true, onCalciteFlowItemClose: this._emitClose }, h("calcite-input", { key: 'c3f77330aae971881e4be465fea09d1401eca478', value: this._filterValue, icon: "magnifying-glass", clearable: true, onCalciteInputInput: this._updateFilterValue, class: "sticky", scale: "m" }), this._preparingApi ? (h("calcite-loader", { scale: "s", type: "indeterminate", label: this.messages.loading ?? "Loading" })) : (h("calcite-list", null, empty ? h("div", { class: "notice-container" }, this.messages.noitems ?? "No items") : categories))), this.renderApiItemFlowItem())));
3257
4638
  }
3258
4639
  static get assetsDirs() { return ["assets"]; }
3259
- get _hostElement() { return getElement(this); }
4640
+ get el() { return getElement(this); }
3260
4641
  };
3261
- ArcgisArcadeApi.style = arcadeApiCss;
4642
+ ArcgisArcadeApi.style = ArcgisArcadeApiStyle0;
3262
4643
 
3263
4644
  const DevelopersWebSitePath = "https://developers.arcgis.com/arcade/";
3264
4645
  const MaxArrayItems = 100;
@@ -3443,7 +4824,7 @@ async function executeScript(editorProfile, script, testContext, console) {
3443
4824
  // Setup an executor with the script
3444
4825
  const arcade = await importArcade();
3445
4826
  const executor = await arcade.createArcadeExecutor(script ?? "", {
3446
- variables: editorProfile?.variables ?? []
4827
+ variables: editorProfile?.variables ?? [],
3447
4828
  });
3448
4829
  // We want to measure the execution time
3449
4830
  const t1 = performance.now();
@@ -3453,7 +4834,7 @@ async function executeScript(editorProfile, script, testContext, console) {
3453
4834
  spatialReference,
3454
4835
  timeZone,
3455
4836
  rawOutput: true,
3456
- console
4837
+ console,
3457
4838
  };
3458
4839
  // Execute the script
3459
4840
  const scriptOutput = await executor.executeAsync(profileVariableInstances, executeContext);
@@ -3477,20 +4858,22 @@ async function executeScript(editorProfile, script, testContext, console) {
3477
4858
  error,
3478
4859
  timeStamp,
3479
4860
  compilationTime: 0,
3480
- executionTime: 0
4861
+ executionTime: 0,
3481
4862
  };
3482
4863
  }
3483
4864
  }
3484
4865
 
3485
- const arcadeEditorCss = "arcgis-arcade-editor{display:flex;flex-direction:column;height:100%;width:100%;position:relative;overflow:hidden;border:1px solid var(--calcite-color-border-3);box-sizing:border-box;background-color:var(--calcite-color-foreground-1)}arcgis-arcade-editor .flex-adjustable{flex:1 1 auto;overflow:hidden}arcgis-arcade-editor .flex-panel{flex:1 0 auto}arcgis-arcade-editor .position-relative{position:relative}arcgis-arcade-editor .flex-row{display:flex;flex-direction:row;overflow:hidden}arcgis-arcade-editor .flex-column{display:flex;flex-direction:column;overflow:hidden}arcgis-arcade-editor .border-inline-start{border-inline-start:1px solid var(--calcite-color-border-3);box-sizing:border-box}arcgis-arcade-editor .border-inline-end{border-inline-end:1px solid var(--calcite-color-border-3);box-sizing:border-box}arcgis-arcade-editor .sticky{position:sticky;top:0px;z-index:10}arcgis-arcade-editor .notice-container{margin:var(--calcite-spacing-quarter);padding:var(--calcite-spacing-half);background-color:var(--calcite-color-foreground-1);text-align:center}arcgis-arcade-editor .side-action-bar{max-width:25%}arcgis-arcade-editor .side-panel{max-width:45%;width:600px}arcgis-arcade-editor .side-panel calcite-flow{height:100%}arcgis-arcade-editor .main-action-bar{border-bottom:1px solid var(--calcite-color-border-3);flex:0 0 auto}arcgis-arcade-editor .main-action-bar calcite-action-group{padding-inline-end:var(--calcite-spacing-half)}arcgis-arcade-editor .main-action-bar calcite-action-group calcite-action{padding-inline-end:var(--calcite-spacing-half)}arcgis-arcade-editor .main-action-bar calcite-action-group calcite-action:not(:first-child){padding-inline-start:var(--calcite-spacing-half)}arcgis-arcade-editor .main-action-bar calcite-action-group:last-child{border-inline-end-width:0px}arcgis-arcade-editor .main-action-bar calcite-action-group:not(:first-child){padding-inline-start:var(--calcite-spacing-half)}arcgis-arcade-editor arcgis-arcade-results{border-top:1px solid var(--calcite-color-border-3);box-sizing:border-box;max-height:50%;min-height:50%;margin-bottom:-1px}arcgis-arcade-editor calcite-flow [slot=footer]{word-break:break-word}arcgis-arcade-editor calcite-list-item-group calcite-list-item{margin-bottom:1px;box-shadow:0 1px 0 var(--calcite-color-border-3)}arcgis-arcade-editor calcite-list-item-group calcite-list-item:last-child{box-shadow:none}arcgis-arcade-editor calcite-list-item-group:last-child{margin-bottom:var(--calcite-spacing-1)}";
4866
+ const arcadeEditorCss = "arcgis-arcade-editor{display:flex;flex-direction:column;position:relative;overflow:hidden;border:1px solid var(--calcite-color-border-3);box-sizing:border-box;background-color:var(--calcite-color-foreground-1);height:100%}arcgis-arcade-editor .flex-adjustable{flex:1 1 auto;overflow:hidden}arcgis-arcade-editor .flex-panel{flex:1 0 auto}arcgis-arcade-editor .position-relative{position:relative}arcgis-arcade-editor .flex-row{display:flex;flex-direction:row;overflow:hidden}arcgis-arcade-editor .flex-column{display:flex;flex-direction:column;overflow:hidden}arcgis-arcade-editor .border-inline-start{border-inline-start:1px solid var(--calcite-color-border-3);box-sizing:border-box}arcgis-arcade-editor .border-inline-end{border-inline-end:1px solid var(--calcite-color-border-3);box-sizing:border-box}arcgis-arcade-editor .sticky{position:sticky;top:0px;z-index:10}arcgis-arcade-editor .notice-container{margin:var(--calcite-spacing-xxs);padding:var(--calcite-spacing-sm);background-color:var(--calcite-color-foreground-1);text-align:center}arcgis-arcade-editor .side-action-bar{max-width:25%}arcgis-arcade-editor .side-panel{max-width:45%;width:600px}arcgis-arcade-editor .side-panel calcite-flow{height:100%}arcgis-arcade-editor .main-action-bar{border-bottom:1px solid var(--calcite-color-border-3);flex:0 0 auto}arcgis-arcade-editor .main-action-bar calcite-action-group{padding-inline-end:var(--calcite-spacing-sm)}arcgis-arcade-editor .main-action-bar calcite-action-group calcite-action{padding-inline-end:var(--calcite-spacing-sm)}arcgis-arcade-editor .main-action-bar calcite-action-group calcite-action:not(:first-child){padding-inline-start:var(--calcite-spacing-sm)}arcgis-arcade-editor .main-action-bar calcite-action-group:last-child{border-inline-end-width:0px}arcgis-arcade-editor .main-action-bar calcite-action-group:not(:first-child){padding-inline-start:var(--calcite-spacing-sm)}arcgis-arcade-editor arcgis-arcade-results{border-top:1px solid var(--calcite-color-border-3);box-sizing:border-box;max-height:50%;min-height:50%;margin-bottom:-1px}arcgis-arcade-editor calcite-flow [slot=footer]{word-break:break-word}";
4867
+ const ArcgisArcadeEditorStyle0 = arcadeEditorCss;
3486
4868
 
3487
4869
  const ArcgisArcadeEditor = class {
3488
4870
  constructor(hostRef) {
3489
4871
  registerInstance(this, hostRef);
3490
- this.scriptChange = createEvent(this, "scriptChange", 3);
3491
- this.diagnosticsChange = createEvent(this, "diagnosticsChange", 3);
3492
- this._componentReadyDefer = new h$1();
3493
- this._modelId = U();
4872
+ this.arcgisScriptChange = createEvent(this, "arcgisScriptChange", 3);
4873
+ this.arcgisDiagnosticsChange = createEvent(this, "arcgisDiagnosticsChange", 3);
4874
+ this.manager = useControllerManager(this);
4875
+ this._componentReadyDefer = new Deferred();
4876
+ this._modelId = generateGuid();
3494
4877
  this._editorProfilePromise = Promise.resolve(undefined);
3495
4878
  this._disposables = [];
3496
4879
  this._executeScript = async () => {
@@ -3531,18 +4914,16 @@ const ArcgisArcadeEditor = class {
3531
4914
  }
3532
4915
  };
3533
4916
  this._openArcadeHelp = () => void window.open(DevelopersWebSitePath, "Arcade Help");
3534
- this._emitScriptChange = (e) => {
4917
+ this._onCodeEditorValueChange = (e) => {
3535
4918
  e.stopPropagation();
3536
- this.scriptChange.emit(e.detail);
4919
+ this.script = e.detail;
4920
+ this.arcgisScriptChange.emit(e.detail);
3537
4921
  };
3538
4922
  this._insertAsSnippet = (e) => void this._codeEditorElt?.insertSnippet(e.detail).catch(console.error);
3539
4923
  this._insertAsText = (e) => void this._codeEditorElt?.insertText(e.detail).catch(console.error);
3540
4924
  this._onResultPanelChange = (e) => void (this._resultPanel = e.detail);
3541
4925
  this._onExecutionPanelClose = () => void (this._showExecutionPanel = false);
3542
- this._lang = "";
3543
- this._t9nLocale = "";
3544
- this._t9nStrings = undefined;
3545
- this._standaloneCodeEditor = undefined;
4926
+ this.messages = useT9n();
3546
4927
  this._preparingProfile = false;
3547
4928
  this._editorProfile = undefined;
3548
4929
  this._showExecutionPanel = false;
@@ -3560,6 +4941,10 @@ const ArcgisArcadeEditor = class {
3560
4941
  this.sideActionBarExpanded = false;
3561
4942
  this.openedSidePanel = "none";
3562
4943
  this.editorOptions = undefined;
4944
+ this.editorInstance = this.manager.getSet(undefined, {
4945
+ get: () => this._codeEditorElt?.editorInstance,
4946
+ set: "ignore",
4947
+ });
3563
4948
  }
3564
4949
  _profileChanged() {
3565
4950
  this._updateEditorProfile().catch(console.error);
@@ -3572,18 +4957,17 @@ const ArcgisArcadeEditor = class {
3572
4957
  }
3573
4958
  _snippetChanged() {
3574
4959
  arcadeDefaults.updateApiContextForModel(this._modelId, {
3575
- snippets: this.snippets
4960
+ snippets: this.snippets,
3576
4961
  });
3577
4962
  }
3578
4963
  // #endregion
3579
4964
  // #region Public methods API
3580
4965
  /**
3581
- * Returns the current script.
3582
- * @returns {Promise<string>}
4966
+ * @deprecated Use `script` property instead.
3583
4967
  */
3584
4968
  async getScript() {
3585
4969
  await this._componentReadyDefer.promise;
3586
- return await this._codeEditorElt?.getValue();
4970
+ return this._codeEditorElt?.value;
3587
4971
  }
3588
4972
  /**
3589
4973
  * Set the focus on the element.
@@ -3594,12 +4978,11 @@ const ArcgisArcadeEditor = class {
3594
4978
  }
3595
4979
  /**
3596
4980
  * @internal
3597
- * Returns the editor instance.
3598
- * @returns {Promise<IStandaloneCodeEditor>} - The monaco editor instance
4981
+ * @deprecated Use `editorInstance` property instead.
3599
4982
  */
3600
4983
  async getEditorInstance() {
3601
4984
  await this._componentReadyDefer.promise;
3602
- return await this._codeEditorElt?.getEditorInstance();
4985
+ return this._codeEditorElt?.editorInstance;
3603
4986
  }
3604
4987
  /**
3605
4988
  * Returns the Arcade result for the script for the provided test data.
@@ -3621,11 +5004,11 @@ const ArcgisArcadeEditor = class {
3621
5004
  * @internal
3622
5005
  */
3623
5006
  async updateThemeColors(colorRules) {
3624
- const theme = k(this._hostElement);
5007
+ const theme = getElementTheme(this.el);
3625
5008
  updateThemeColors(theme, colorRules);
3626
5009
  if (colorRules === undefined) {
3627
5010
  colorRulesKeys.forEach((key) => {
3628
- this._hostElement.style.removeProperty(`--arcgis-arcade-editor-${key}`);
5011
+ this.el.style.removeProperty(`--arcgis-arcade-editor-${key}`);
3629
5012
  });
3630
5013
  return;
3631
5014
  }
@@ -3634,7 +5017,7 @@ const ArcgisArcadeEditor = class {
3634
5017
  if (!foreground) {
3635
5018
  return;
3636
5019
  }
3637
- this._hostElement.style.setProperty(`--arcgis-arcade-editor-${key}`, foreground);
5020
+ this.el.style.setProperty(`--arcgis-arcade-editor-${key}`, foreground);
3638
5021
  });
3639
5022
  }
3640
5023
  // #endregion
@@ -3642,14 +5025,13 @@ const ArcgisArcadeEditor = class {
3642
5025
  async componentWillLoad() {
3643
5026
  const assetsPath = getAssetPath("./assets");
3644
5027
  // We are a bit in a chicken and egg situation here.
3645
- // Normally, it is the code editor that is responsible for setting up the Monaco environement.
5028
+ // Normally, it is the code editor that is responsible for setting up the Monaco environment.
3646
5029
  // However, we need to setup the environment before the code editor is instantiated because
3647
5030
  // we need to access the arcade language service to get the api library.
3648
5031
  setupMonacoEnvironment(assetsPath);
3649
- // Starts a locale observer. It will load the correct t9n strings for the component
3650
- // when the locale changes. We also pass updateEditorProfile. It will be invoked the first
3651
- // and on each locale change. The profile has to be refreshed on locale change as well.
3652
- await B(this, assetsPath, async () => await this._updateEditorProfile());
5032
+ await this._updateEditorProfile();
5033
+ // The profile has to be refreshed on locale change
5034
+ this.manager.watch("messages", () => void this._updateEditorProfile().catch(console.error));
3653
5035
  }
3654
5036
  async componentDidLoad() {
3655
5037
  // Mark on component as ready.
@@ -3658,10 +5040,9 @@ const ArcgisArcadeEditor = class {
3658
5040
  // Start listening to the validation diagnostics.
3659
5041
  // We are doing this as late as possible
3660
5042
  const diagnosticsService = await getArcadeDiagnosticService();
3661
- this._disposables.push(diagnosticsService.onDiagnosticsChange((event) => !this._preparingProfile && this.diagnosticsChange.emit(event.diagnostics)));
5043
+ this._disposables.push(diagnosticsService.onDiagnosticsChange((event) => !this._preparingProfile && this.arcgisDiagnosticsChange.emit(event.diagnostics)));
3662
5044
  // Get editor instance and add action
3663
- this._standaloneCodeEditor = await this.getEditorInstance();
3664
- this._standaloneCodeEditor?.addAction({
5045
+ this.editorInstance?.addAction({
3665
5046
  // An unique identifier for the action.
3666
5047
  id: "run-script",
3667
5048
  label: "Run Arcade Expression",
@@ -3672,12 +5053,11 @@ const ArcgisArcadeEditor = class {
3672
5053
  if (this.testData) {
3673
5054
  this._executeScript().catch(console.error);
3674
5055
  }
3675
- }
5056
+ },
3676
5057
  });
3677
5058
  await this._codeEditorElt?.setFocus();
3678
5059
  }
3679
5060
  disconnectedCallback() {
3680
- q(this);
3681
5061
  arcadeDefaults.disposeApiContextForModel(this._modelId);
3682
5062
  arcadeDefaults.disposeEditorProfileForModel(this._modelId);
3683
5063
  while (this._disposables.length) {
@@ -3694,8 +5074,8 @@ const ArcgisArcadeEditor = class {
3694
5074
  try {
3695
5075
  // Set a new profile for the model using the profile definition and the locale.
3696
5076
  await arcadeDefaults.setProfileForModel(this._modelId, this.profile, {
3697
- locale: this._t9nLocale,
3698
- snippets: this.snippets
5077
+ locale: this.messages._t9nLocale,
5078
+ snippets: this.snippets,
3699
5079
  });
3700
5080
  // Get the corresponding editor profile for the model.
3701
5081
  // The editor profile contains the specialized profile for the UI.
@@ -3715,16 +5095,16 @@ const ArcgisArcadeEditor = class {
3715
5095
  if (!this.testData) {
3716
5096
  return null;
3717
5097
  }
3718
- return (h("calcite-action-bar", { class: "main-action-bar", layout: "horizontal", scale: "s", expanded: true, "expand-disabled": true }, h("calcite-action-group", { scale: "s" }, h("calcite-action", { text: this._t9nStrings?.run ?? "Run", "text-enabled": true, icon: "play", scale: "s", loading: this._preparingProfile, onClick: this._executeScript }), this._executionResult ? (h("calcite-action", { text: this._t9nStrings?.lastresults ?? "Last results", active: this._showExecutionPanel, "text-enabled": true, icon: "access-string-results", iconFlipRtl: true, scale: "s", onClick: this._toggleShowExecutionPanel })) : null)));
5098
+ return (h("calcite-action-bar", { class: "main-action-bar", layout: "horizontal", scale: "s", expanded: true, "expand-disabled": true }, h("calcite-action-group", { scale: "s" }, h("calcite-action", { text: this.messages.run ?? "Run", "text-enabled": true, icon: "play", scale: "s", loading: this._preparingProfile, onClick: this._executeScript }), this._executionResult ? (h("calcite-action", { text: this.messages.lastresults ?? "Last results", active: this._showExecutionPanel, "text-enabled": true, icon: "access-string-results", iconFlipRtl: true, scale: "s", onClick: this._toggleShowExecutionPanel })) : null)));
3719
5099
  }
3720
5100
  //#endregion
3721
5101
  //#region Render Main Panel
3722
5102
  renderMainPanel() {
3723
- return (h("arcgis-code-editor", { class: "flex-adjustable", language: arcadeDefaults.languageId, value: this.script ?? "", modelId: this._modelId, options: this.editorOptions, onValueChange: this._emitScriptChange, ref: (e) => (this._codeEditorElt = e) }));
5103
+ return (h("arcgis-code-editor", { class: "flex-adjustable", language: arcadeDefaults.languageId, value: this.script ?? "", modelId: this._modelId, options: this.editorOptions, onArcgisValueChange: this._onCodeEditorValueChange, ref: (e) => (this._codeEditorElt = e) }));
3724
5104
  }
3725
5105
  //#endregion
3726
5106
  //#region Rendering the Action Bar
3727
- renderAction({ id, label, icon, active, panelName, onClick = this._toggleSidePanel }) {
5107
+ renderAction({ id, label, icon, active, panelName, onClick = this._toggleSidePanel, }) {
3728
5108
  return (h(Fragment, null, h("calcite-action", { id: id, text: label, icon: icon, active: active, onClick: onClick, "data-panel-name": panelName }), !this.sideActionBarExpanded && (h("calcite-tooltip", { label: label, "reference-element": id }, h("span", null, label)))));
3729
5109
  }
3730
5110
  renderSideActionBar() {
@@ -3733,33 +5113,33 @@ const ArcgisArcadeEditor = class {
3733
5113
  }
3734
5114
  return (h("calcite-action-bar", { class: "side-action-bar border-inline-start", expanded: !!this.sideActionBarExpanded, position: "end", onCalciteActionBarToggle: this._toggleSideActionBarExpanded }, h("calcite-action-group", null, this.renderAction({
3735
5115
  id: "profile-variables-action",
3736
- label: this._t9nStrings?.profilevariables ?? "Profile variables",
5116
+ label: this.messages.profilevariables ?? "Profile variables",
3737
5117
  icon: "profile-variables",
3738
5118
  active: this.openedSidePanel === "variables",
3739
- panelName: "variables"
5119
+ panelName: "variables",
3740
5120
  }), this.renderAction({
3741
5121
  id: "function-action",
3742
- label: this._t9nStrings?.constantsandfunctions ?? "Constants and functions",
5122
+ label: this.messages.constantsandfunctions ?? "Constants and functions",
3743
5123
  icon: "function",
3744
5124
  active: this.openedSidePanel === "api",
3745
- panelName: "api"
5125
+ panelName: "api",
3746
5126
  }), this.suggestions?.length
3747
5127
  ? this.renderAction({
3748
5128
  id: "suggestions-action",
3749
- label: this._t9nStrings?.suggestions ?? "Suggestions",
5129
+ label: this.messages.suggestions ?? "Suggestions",
3750
5130
  icon: "lightbulb",
3751
5131
  active: this.openedSidePanel === "suggestions",
3752
- panelName: "suggestions"
5132
+ panelName: "suggestions",
3753
5133
  })
3754
5134
  : null, this.hideDocumentationActions
3755
5135
  ? null
3756
5136
  : this.renderAction({
3757
5137
  id: "developer-website-action",
3758
- label: this._t9nStrings?.help ?? "Help",
5138
+ label: this.messages.help ?? "Help",
3759
5139
  icon: "question",
3760
5140
  active: false,
3761
5141
  panelName: "none",
3762
- onClick: this._openArcadeHelp
5142
+ onClick: this._openArcadeHelp,
3763
5143
  }))));
3764
5144
  }
3765
5145
  //#endregion
@@ -3770,11 +5150,11 @@ const ArcgisArcadeEditor = class {
3770
5150
  }
3771
5151
  switch (this.openedSidePanel) {
3772
5152
  case "api":
3773
- return (h("arcgis-arcade-api", { class: "side-panel flex-panel border-inline-start", modelId: this._modelId, hideDocumentationActions: this.hideDocumentationActions, onItemSelected: this._insertAsSnippet, onClose: this._toggleSidePanel, "data-panel-name": "none" }));
5153
+ return (h("arcgis-arcade-api", { class: "side-panel flex-panel border-inline-start", modelId: this._modelId, hideDocumentationActions: this.hideDocumentationActions, onArcgisItemSelected: this._insertAsSnippet, onArcgisClose: this._toggleSidePanel, "data-panel-name": "none" }));
3774
5154
  case "variables":
3775
- return (h("arcgis-arcade-variables", { class: "side-panel flex-panel border-inline-start", loading: this._preparingProfile, modelId: this._modelId, onItemSelected: this._insertAsText, onClose: this._toggleSidePanel, "data-panel-name": "none" }));
5155
+ return (h("arcgis-arcade-variables", { class: "side-panel flex-panel border-inline-start", loading: this._preparingProfile, modelId: this._modelId, onArcgisItemSelected: this._insertAsText, onArcgisClose: this._toggleSidePanel, "data-panel-name": "none" }));
3776
5156
  case "suggestions":
3777
- return (h("arcgis-arcade-suggestions", { class: "side-panel flex-panel border-inline-start", suggestions: this.suggestions, onItemSelected: this._insertAsText, onClose: this._toggleSidePanel, "data-panel-name": "none" }));
5157
+ return (h("arcgis-arcade-suggestions", { class: "side-panel flex-panel border-inline-start", suggestions: this.suggestions, onArcgisItemSelected: this._insertAsText, onArcgisClose: this._toggleSidePanel, "data-panel-name": "none" }));
3778
5158
  default:
3779
5159
  return null;
3780
5160
  }
@@ -3785,37 +5165,38 @@ const ArcgisArcadeEditor = class {
3785
5165
  if (!this._showExecutionPanel) {
3786
5166
  return null;
3787
5167
  }
3788
- return (h("arcgis-arcade-results", { class: "flex-adjustable", openedResultPanel: this._resultPanel, loading: this._executingScript, result: this._executionResult, consoleLogs: this._consoleLogs, onOpenedResultPanelChange: this._onResultPanelChange, onClose: this._onExecutionPanelClose }));
5168
+ return (h("arcgis-arcade-results", { class: "flex-adjustable", openedResultPanel: this._resultPanel, loading: this._executingScript, result: this._executionResult, consoleLogs: this._consoleLogs, onArcgisOpenedResultPanelChange: this._onResultPanelChange, onArcgisClose: this._onExecutionPanelClose }));
3789
5169
  }
3790
5170
  //#endregion
3791
5171
  //#region Render
3792
5172
  render() {
3793
- return (h(Host, null, this.renderMainActionBar(), h("div", { class: "flex-row flex-adjustable" }, h("div", { class: "flex-column flex-adjustable" }, this.renderMainPanel(), this.renderResultsPanel()), this.renderSidePanel(), this.renderSideActionBar())));
5173
+ return (h(Host, { key: 'd17f808be4ff15d1b6cfddee64fbd555bccc9a5e' }, this.renderMainActionBar(), h("div", { key: 'a4f02c0e2de9c20c494cc486ce24c2a3e57773b5', class: "flex-row flex-adjustable" }, h("div", { key: 'b4017cfa9a04be98fde74c60a6f1d4ba61545267', class: "flex-column flex-adjustable" }, this.renderMainPanel(), this.renderResultsPanel()), this.renderSidePanel(), this.renderSideActionBar())));
3794
5174
  }
3795
5175
  static get assetsDirs() { return ["assets"]; }
3796
- get _hostElement() { return getElement(this); }
5176
+ get el() { return getElement(this); }
3797
5177
  static get watchers() { return {
3798
5178
  "profile": ["_profileChanged"],
3799
5179
  "testData": ["_testDataChanged"],
3800
5180
  "snippets": ["_snippetChanged"]
3801
5181
  }; }
3802
5182
  };
3803
- ArcgisArcadeEditor.style = arcadeEditorCss;
5183
+ ArcgisArcadeEditor.style = ArcgisArcadeEditorStyle0;
3804
5184
 
3805
- const arcadeResultsCss = ":host{display:flex;flex-direction:column;width:100%;background-color:var(--calcite-color-foreground-1);color:var(--calcite-color-text-2)}:host .flex-adjustable{flex:1 1 auto;overflow:hidden}:host .flex-row{display:flex;flex-direction:row;overflow:hidden}:host .flex-column{display:flex;flex-direction:column;overflow:hidden}:host .y-scrollable-container{overflow-y:auto;block-size:100%;background-color:var(--calcite-color-foreground-1)}:host header{border-bottom:1px solid var(--calcite-color-border-3);flex:0 0 auto}:host .ltr-container{direction:ltr}:host calcite-action-bar calcite-action-group{padding-inline-end:var(--calcite-spacing-half)}:host calcite-action-bar calcite-action-group calcite-action{padding-inline-end:var(--calcite-spacing-half)}:host calcite-action-bar calcite-action-group calcite-action:not(:first-child){padding-inline-start:var(--calcite-spacing-half)}:host calcite-action-bar calcite-action-group:last-child{border-inline-end-width:0px}:host calcite-action-bar calcite-action-group:not(:first-child){padding-inline-start:var(--calcite-spacing-half)}:host .notice-container{margin:var(--calcite-spacing-quarter);padding:var(--calcite-spacing-half);background-color:var(--calcite-color-foreground-1)}:host .color-info{color:var(--calcite-color-status-info)}:host .color-error{color:var(--calcite-color-status-danger)}:host .color-success{color:var(--calcite-color-status-success)}:host [class*=result-value-]{font-size:var(--calcite-font-size--2);line-height:1.25rem;background-color:var(--calcite-color-foreground-1);margin:var(--calcite-spacing-three-quarter)}:host .console-logs-container{background-color:var(--calcite-color-foreground-1);padding:0 var(--calcite-spacing-three-quarter);font-family:var(--calcite-code-family);font-size:var(--calcite-font-size--2);font-weight:var(--calcite-font-weight-normal)}:host .result-value-table table{display:block;max-width:fit-content;overflow-x:auto;border-spacing:0;border-collapse:collapse;text-align:start;white-space:nowrap}:host .result-value-table table thead{background-color:var(--calcite-color-foreground-2)}:host .result-value-table table tr{border-top:1px solid var(--calcite-color-border-3);border-bottom:1px solid var(--calcite-color-border-3)}:host .result-value-table table th,:host .result-value-table table td{border-inline-start:1px solid var(--calcite-color-border-3);border-inline-end:1px solid var(--calcite-color-border-3);text-align:start;padding:var(--calcite-spacing-quarter)}:host .result-value-table table th .string-value,:host .result-value-table table td .string-value{white-space:pre}:host .result-value-table table th{font-weight:var(--calcite-font-weight-medium)}:host .tree-item-label,:host .number-value,:host .string-value,:host .boolean-value{font-family:var(--calcite-code-family)}:host .tree-item-label,:host .value-type{color:var(--calcite-color-text-2);font-weight:var(--calcite-font-weight-normal)}:host .dictionary-property{color:var(--arcgis-arcade-editor-identifier)}:host .number-value{color:var(--arcgis-arcade-editor-number)}:host .string-value{color:var(--arcgis-arcade-editor-string);white-space:pre-wrap}:host .constant-value{color:var(--arcgis-arcade-editor-constant)}:host .date-value{color:var(--arcgis-arcade-editor-date)}";
5185
+ const arcadeResultsCss = ":host{display:flex;flex-direction:column;width:100%;background-color:var(--calcite-color-foreground-1);color:var(--calcite-color-text-2)}:host .flex-adjustable{flex:1 1 auto;overflow:hidden}:host .flex-row{display:flex;flex-direction:row;overflow:hidden}:host .flex-column{display:flex;flex-direction:column;overflow:hidden}:host .y-scrollable-container{overflow-y:auto;block-size:100%;background-color:var(--calcite-color-foreground-1)}:host header{border-bottom:1px solid var(--calcite-color-border-3);flex:0 0 auto}:host .ltr-container{direction:ltr}:host calcite-action-bar calcite-action-group{padding-inline-end:var(--calcite-spacing-sm)}:host calcite-action-bar calcite-action-group calcite-action{padding-inline-end:var(--calcite-spacing-sm)}:host calcite-action-bar calcite-action-group calcite-action:not(:first-child){padding-inline-start:var(--calcite-spacing-sm)}:host calcite-action-bar calcite-action-group:last-child{border-inline-end-width:0px}:host calcite-action-bar calcite-action-group:not(:first-child){padding-inline-start:var(--calcite-spacing-sm)}:host .notice-container{margin:var(--calcite-spacing-xxs);padding:var(--calcite-spacing-sm);background-color:var(--calcite-color-foreground-1)}:host .color-info{color:var(--calcite-color-status-info)}:host .color-error{color:var(--calcite-color-status-danger)}:host .color-success{color:var(--calcite-color-status-success)}:host [class*=result-value-]{font-size:var(--calcite-font-size--2);line-height:1.25rem;background-color:var(--calcite-color-foreground-1);margin:var(--calcite-spacing-md)}:host .console-logs-container{background-color:var(--calcite-color-foreground-1);padding:0 var(--calcite-spacing-md);font-family:var(--calcite-code-family);font-size:var(--calcite-font-size--2);font-weight:var(--calcite-font-weight-normal)}:host .result-value-table table{display:block;max-width:fit-content;overflow-x:auto;border-spacing:0;border-collapse:collapse;text-align:start;white-space:nowrap}:host .result-value-table table thead{background-color:var(--calcite-color-foreground-2)}:host .result-value-table table tr{border-top:1px solid var(--calcite-color-border-3);border-bottom:1px solid var(--calcite-color-border-3)}:host .result-value-table table th,:host .result-value-table table td{border-inline-start:1px solid var(--calcite-color-border-3);border-inline-end:1px solid var(--calcite-color-border-3);text-align:start;padding:var(--calcite-spacing-xxs)}:host .result-value-table table th .string-value,:host .result-value-table table td .string-value{white-space:pre}:host .result-value-table table th{font-weight:var(--calcite-font-weight-medium)}:host .tree-item-label,:host .number-value,:host .string-value,:host .boolean-value{font-family:var(--calcite-code-family)}:host .tree-item-label,:host .value-type{color:var(--calcite-color-text-2);font-weight:var(--calcite-font-weight-normal)}:host .dictionary-property{color:var(--arcgis-arcade-editor-identifier)}:host .number-value{color:var(--arcgis-arcade-editor-number)}:host .string-value{color:var(--arcgis-arcade-editor-string);white-space:pre-wrap}:host .constant-value{color:var(--arcgis-arcade-editor-constant)}:host .date-value{color:var(--arcgis-arcade-editor-date)}";
5186
+ const ArcgisArcadeResultsStyle0 = arcadeResultsCss;
3806
5187
 
3807
5188
  //#region Specialized Constants
3808
5189
  const treeProps = {
3809
5190
  lines: true,
3810
5191
  selectionMode: "none",
3811
5192
  scale: "s",
3812
- onCalciteTreeSelect: (e) => e.target.selectedItems.forEach((itemElt) => (itemElt.selected = false))
5193
+ onCalciteTreeSelect: (e) => e.target.selectedItems.forEach((itemElt) => (itemElt.selected = false)),
3813
5194
  };
3814
5195
  const expandableTreeItemProps = {
3815
5196
  onClick: (e) => {
3816
5197
  const item = e.currentTarget;
3817
5198
  item.expanded = !item.expanded;
3818
- }
5199
+ },
3819
5200
  };
3820
5201
  //#endregion
3821
5202
  //#region Helper Functions
@@ -3834,7 +5215,7 @@ function renderSimpleValue(arcadeResult) {
3834
5215
  case "null":
3835
5216
  return h("span", { class: "constant-value" }, arcadeResult.type);
3836
5217
  case "text":
3837
- return h("span", { class: "string-value" }, D(arcadeResult.value));
5218
+ return h("span", { class: "string-value" }, quoteString(arcadeResult.value));
3838
5219
  case "number":
3839
5220
  return h("span", { class: "number-value" }, arcadeResult.value.toString());
3840
5221
  case "boolean":
@@ -3842,9 +5223,9 @@ function renderSimpleValue(arcadeResult) {
3842
5223
  case "date":
3843
5224
  return h("span", { class: "date-value" }, formatArcadeResultDate(arcadeResult));
3844
5225
  case "dateOnly":
3845
- return h("span", { class: "string-value" }, D(formatArcadeResultDateOnly(arcadeResult)));
5226
+ return h("span", { class: "string-value" }, quoteString(formatArcadeResultDateOnly(arcadeResult)));
3846
5227
  case "time":
3847
- return h("span", { class: "string-value" }, D(formatArcadeResultTimeOnly(arcadeResult)));
5228
+ return h("span", { class: "string-value" }, quoteString(formatArcadeResultTimeOnly(arcadeResult)));
3848
5229
  default:
3849
5230
  return null;
3850
5231
  }
@@ -3864,8 +5245,11 @@ function renderFeatureSetTable(arcadeResult) {
3864
5245
  const ArcgisArcadeResults = class {
3865
5246
  constructor(hostRef) {
3866
5247
  registerInstance(this, hostRef);
3867
- this.openedResultPanelChange = createEvent(this, "openedResultPanelChange", 3);
3868
- this.close = createEvent(this, "close", 3);
5248
+ this.arcgisOpenedResultPanelChange = createEvent(this, "arcgisOpenedResultPanelChange", 3);
5249
+ this.arcgisClose = createEvent(this, "arcgisClose", 3);
5250
+ this.manager = useControllerManager(this);
5251
+ //#region Private Properties
5252
+ this.messages = useT9n();
3869
5253
  this._switchResultPanel = (e) => {
3870
5254
  if (!e.target) {
3871
5255
  return;
@@ -3876,28 +5260,17 @@ const ArcgisArcadeResults = class {
3876
5260
  }
3877
5261
  this.updateResultPanel(panelName);
3878
5262
  };
3879
- this._emitClose = () => this.close.emit();
3880
- this._lang = "";
3881
- this._t9nLocale = "";
3882
- this._t9nStrings = undefined;
5263
+ this._emitClose = () => this.arcgisClose.emit();
3883
5264
  this.loading = true;
3884
5265
  this.openedResultPanel = "output";
3885
5266
  this.result = undefined;
3886
5267
  this.consoleLogs = undefined;
3887
5268
  }
3888
5269
  //#endregion
3889
- // #region Component lifecycle events
3890
- async componentWillLoad() {
3891
- await B(this, getAssetPath("./assets"));
3892
- }
3893
- disconnectedCallback() {
3894
- q(this);
3895
- }
3896
- // #endregion
3897
5270
  //#region Private Methods
3898
5271
  updateResultPanel(resultPanelType) {
3899
5272
  this.openedResultPanel = resultPanelType;
3900
- this.openedResultPanelChange.emit(resultPanelType);
5273
+ this.arcgisOpenedResultPanelChange.emit(resultPanelType);
3901
5274
  }
3902
5275
  //#endregion
3903
5276
  //#region Rendering
@@ -3908,7 +5281,7 @@ const ArcgisArcadeResults = class {
3908
5281
  if (this.loading && !this.consoleLogs?.length) {
3909
5282
  return h("calcite-loader", { scale: "s", type: "indeterminate", label: "" });
3910
5283
  }
3911
- return (h("div", { class: "console-logs-container ltr-container" }, this.consoleLogs?.length ? (this.consoleLogs.map((log) => h("p", null, log))) : (h("p", null, this._t9nStrings?.consolemessage))));
5284
+ return (h("div", { class: "console-logs-container ltr-container" }, this.consoleLogs?.length ? this.consoleLogs.map((log) => h("p", null, log)) : h("p", null, this.messages.consolemessage)));
3912
5285
  }
3913
5286
  renderLogPanel() {
3914
5287
  if (this.openedResultPanel !== "log") {
@@ -3918,24 +5291,24 @@ const ArcgisArcadeResults = class {
3918
5291
  return h("calcite-loader", { scale: "s", type: "indeterminate", label: "" });
3919
5292
  }
3920
5293
  const iconClass = this.result?.type === "error" ? "color-error" : "color-success";
3921
- return (h("calcite-list", null, this.result ? (h(Fragment, null, h("calcite-list-item", { label: Z(this._t9nStrings?.lastexecutionformat, {
3922
- timeStamp: new Intl.DateTimeFormat(this._t9nLocale, {
5294
+ return (h("calcite-list", null, this.result ? (h(Fragment, null, h("calcite-list-item", { label: setValuesInString(this.messages.lastexecutionformat, {
5295
+ timeStamp: new Intl.DateTimeFormat(this.messages._t9nLocale, {
3923
5296
  dateStyle: "medium",
3924
- timeStyle: "medium"
3925
- }).format(this.result.timeStamp)
3926
- }) }, h("calcite-icon", { slot: "content-start", icon: "information", scale: "s", class: iconClass })), h("calcite-list-item", { label: Z(this._t9nStrings?.compilationtimeformat, {
3927
- time: new Intl.NumberFormat(this._t9nLocale, {
5297
+ timeStyle: "medium",
5298
+ }).format(this.result.timeStamp),
5299
+ }) }, h("calcite-icon", { slot: "content-start", icon: "information", scale: "s", class: iconClass })), h("calcite-list-item", { label: setValuesInString(this.messages.compilationtimeformat, {
5300
+ time: new Intl.NumberFormat(this.messages._t9nLocale, {
3928
5301
  style: "unit",
3929
5302
  unit: "millisecond",
3930
- maximumFractionDigits: 2
3931
- }).format(this.result.compilationTime ?? 0)
3932
- }) }, h("calcite-icon", { slot: "content-start", icon: "information", scale: "s", class: iconClass })), h("calcite-list-item", { label: Z(this._t9nStrings?.executiontimeformat, {
3933
- time: new Intl.NumberFormat(this._t9nLocale, {
5303
+ maximumFractionDigits: 2,
5304
+ }).format(this.result.compilationTime ?? 0),
5305
+ }) }, h("calcite-icon", { slot: "content-start", icon: "information", scale: "s", class: iconClass })), h("calcite-list-item", { label: setValuesInString(this.messages.executiontimeformat, {
5306
+ time: new Intl.NumberFormat(this.messages._t9nLocale, {
3934
5307
  style: "unit",
3935
5308
  unit: "millisecond",
3936
- maximumFractionDigits: 2
3937
- }).format(this.result.executionTime ?? 0)
3938
- }) }, h("calcite-icon", { slot: "content-start", icon: "information", scale: "s", class: iconClass })))) : (h("calcite-list-item", { label: this._t9nStrings?.runscriptmessage ?? "No output, run the script once." }, h("calcite-icon", { slot: "content-start", icon: "information", scale: "s", class: "color-info" })))));
5309
+ maximumFractionDigits: 2,
5310
+ }).format(this.result.executionTime ?? 0),
5311
+ }) }, h("calcite-icon", { slot: "content-start", icon: "information", scale: "s", class: iconClass })))) : (h("calcite-list-item", { label: this.messages.runscriptmessage ?? "No output, run the script once." }, h("calcite-icon", { slot: "content-start", icon: "information", scale: "s", class: "color-info" })))));
3939
5312
  }
3940
5313
  renderOutputPanel() {
3941
5314
  if (this.openedResultPanel !== "output") {
@@ -3946,8 +5319,8 @@ const ArcgisArcadeResults = class {
3946
5319
  }
3947
5320
  switch (this.result?.type) {
3948
5321
  case "error":
3949
- return (h("div", { class: "result-value-simple flex-adjustable" }, Z(this._t9nStrings?.executionerrorformat, {
3950
- message: this.result.value
5322
+ return (h("div", { class: "result-value-simple flex-adjustable" }, setValuesInString(this.messages.executionerrorformat, {
5323
+ message: this.result.value,
3951
5324
  })));
3952
5325
  case "null":
3953
5326
  case "unknown":
@@ -3977,14 +5350,14 @@ const ArcgisArcadeResults = class {
3977
5350
  case "knowledgeGraph":
3978
5351
  return (h("div", { class: "result-value-simple ltr-container" }, h("span", { class: "value-type" }, this.result.type, ":\u00A0"), h("span", { class: "string-value" }, this.result.value.url)));
3979
5352
  default:
3980
- return (h("div", { class: "result-value-simple flex-adjustable ltr-container" }, this._t9nStrings?.runscriptmessage));
5353
+ return h("div", { class: "result-value-simple flex-adjustable ltr-container" }, this.messages.runscriptmessage);
3981
5354
  }
3982
5355
  }
3983
5356
  renderArrayHeader(arcadeResult) {
3984
5357
  const items = arcadeResult.value ?? [];
3985
5358
  const leftoverCount = Math.max(items.length - MaxArrayItems, 0);
3986
- return (h(Fragment, null, h("span", null, `${arcadeResult.type}(${items.length ?? 0})`), leftoverCount > 0 ? (h("span", null, "\u00A0", Z(this._t9nStrings?.showingfirstitemsformat, {
3987
- count: MaxArrayItems.toString()
5359
+ return (h(Fragment, null, h("span", null, `${arcadeResult.type}(${items.length ?? 0})`), leftoverCount > 0 ? (h("span", null, "\u00A0", setValuesInString(this.messages.showingfirstitemsformat, {
5360
+ count: MaxArrayItems.toString(),
3988
5361
  }))) : null));
3989
5362
  }
3990
5363
  renderArrayTree(items, subtree = false) {
@@ -4029,17 +5402,17 @@ const ArcgisArcadeResults = class {
4029
5402
  }
4030
5403
  }
4031
5404
  renderFeatureSetLabel(arcadeResult) {
4032
- return (h("div", { class: "value-type" }, h("span", null, arcadeResult.type, ":"), arcadeResult.features.length >= BatchSize ? (h("span", null, "\u00A0", Z(this._t9nStrings?.showingfirstitemsformat, {
4033
- count: BatchSize.toString()
5405
+ return (h("div", { class: "value-type" }, h("span", null, arcadeResult.type, ":"), arcadeResult.features.length >= BatchSize ? (h("span", null, "\u00A0", setValuesInString(this.messages.showingfirstitemsformat, {
5406
+ count: BatchSize.toString(),
4034
5407
  }))) : null));
4035
5408
  }
4036
5409
  render() {
4037
- return (h(Host, null, h("header", { class: "flex-row" }, h("calcite-action-bar", { class: "flex-adjustable", layout: "horizontal", scale: "s", expanded: true, "expand-disabled": true }, h("calcite-action-group", { scale: "s" }, h("calcite-action", { active: this.openedResultPanel === "output", text: this._t9nStrings?.output ?? "Output", "text-enabled": true, scale: "s", icon: "list-show-all", iconFlipRtl: true, onClick: this._switchResultPanel, "data-panel-name": "output" }), h("calcite-action", { active: this.openedResultPanel === "console", text: this._t9nStrings?.console ?? "Console", "text-enabled": true, scale: "s", icon: "console", iconFlipRtl: true, onClick: this._switchResultPanel, "data-panel-name": "console" }), h("calcite-action", { active: this.openedResultPanel === "log", text: this._t9nStrings?.log ?? "Log", "text-enabled": true, scale: "s", icon: "list", iconFlipRtl: true, onClick: this._switchResultPanel, "data-panel-name": "log" }))), h("calcite-action", { scale: "s", icon: "x", text: this._t9nStrings?.close ?? "", onClick: this._emitClose })), h("article", { class: "flex-adjustable" }, this.loading ? (h("calcite-loader", { scale: "s", type: "indeterminate", label: "" })) : (h("div", { class: "flex-column y-scrollable-container" }, this.renderOutputPanel(), this.renderConsolePanel(), this.renderLogPanel())))));
5410
+ return (h(Host, { key: 'a614339d095dcaa6ba426f3fc104f3628979a019' }, h("header", { key: 'cafdb89380b6a1db8fb478ef61d8dc328907977d', class: "flex-row" }, h("calcite-action-bar", { key: '542065aba5cc9e26ee9259c47e8c067d39aee748', class: "flex-adjustable", layout: "horizontal", scale: "s", expanded: true, "expand-disabled": true }, h("calcite-action-group", { key: 'ca20537be7a679c37ae72ba6556a2448c3ff3a3b', scale: "s" }, h("calcite-action", { key: 'e7cf514c820e23d77663b48190be003b679dd865', active: this.openedResultPanel === "output", text: this.messages.output ?? "Output", "text-enabled": true, scale: "s", icon: "list-show-all", iconFlipRtl: true, onClick: this._switchResultPanel, "data-panel-name": "output" }), h("calcite-action", { key: '086b8bb306556ce5bbe8153a5ebfa42430eef01e', active: this.openedResultPanel === "console", text: this.messages.console ?? "Console", "text-enabled": true, scale: "s", icon: "console", iconFlipRtl: true, onClick: this._switchResultPanel, "data-panel-name": "console" }), h("calcite-action", { key: 'fde3d723183ea294706adf0bb5041bd10234a222', active: this.openedResultPanel === "log", text: this.messages.log ?? "Log", "text-enabled": true, scale: "s", icon: "list", iconFlipRtl: true, onClick: this._switchResultPanel, "data-panel-name": "log" }))), h("calcite-action", { key: '51cc05e32acc8dc0eee956af96fe8541abf613e8', scale: "s", icon: "x", text: this.messages.close ?? "", onClick: this._emitClose })), h("article", { key: 'ce84fa0ec6376e764c3479a9c891dfa02dd7cb10', class: "flex-adjustable" }, this.loading ? (h("calcite-loader", { scale: "s", type: "indeterminate", label: "" })) : (h("div", { class: "flex-column y-scrollable-container" }, this.renderOutputPanel(), this.renderConsolePanel(), this.renderLogPanel())))));
4038
5411
  }
4039
5412
  static get assetsDirs() { return ["assets"]; }
4040
- get _hostElement() { return getElement(this); }
5413
+ get el() { return getElement(this); }
4041
5414
  };
4042
- ArcgisArcadeResults.style = arcadeResultsCss;
5415
+ ArcgisArcadeResults.style = ArcgisArcadeResultsStyle0;
4043
5416
 
4044
5417
  function isSuggestionGroups(item) {
4045
5418
  if (!Array.isArray(item)) {
@@ -4051,13 +5424,16 @@ function isSuggestionGroups(item) {
4051
5424
  return Array.isArray(item[0].suggestions);
4052
5425
  }
4053
5426
 
4054
- const arcadeSuggestionsCss = ":host{background-color:var(--calcite-color-foreground-1)}:host .notice-container{margin:var(--calcite-spacing-quarter);padding:var(--calcite-spacing-half);background-color:var(--calcite-color-foreground-1)}:host .sticky{position:sticky;top:0px;z-index:10}:host calcite-flow{height:100%}:host calcite-block p:first-of-type{margin-top:0}:host calcite-block code{font-family:var(--calcite-code-family)}:host calcite-block pre{direction:ltr;overflow-x:auto;background-color:var(--calcite-color-foreground-2);padding:var(--calcite-spacing-half)}:host calcite-block pre code{font-size:var(--calcite-font-size--2)}";
5427
+ const arcadeSuggestionsCss = ":host{background-color:var(--calcite-color-foreground-1)}:host .notice-container{margin:var(--calcite-spacing-xxs);padding:var(--calcite-spacing-sm);background-color:var(--calcite-color-foreground-1)}:host .sticky{position:sticky;top:0px;z-index:10}:host calcite-flow{height:100%}:host calcite-block p:first-of-type{margin-top:0}:host calcite-block code{font-family:var(--calcite-code-family)}:host calcite-block pre{direction:ltr;overflow-x:auto;background-color:var(--calcite-color-foreground-2);padding:var(--calcite-spacing-sm)}:host calcite-block pre code{font-size:var(--calcite-font-size--2)}:host calcite-list-item-group{background-color:var(--calcite-color-foreground-2)}";
5428
+ const ArcgisArcadeSuggestionsStyle0 = arcadeSuggestionsCss;
4055
5429
 
4056
5430
  const ArcgisArcadeSuggestions = class {
4057
5431
  constructor(hostRef) {
4058
5432
  registerInstance(this, hostRef);
4059
- this.close = createEvent(this, "close", 3);
4060
- this.itemSelected = createEvent(this, "itemSelected", 3);
5433
+ this.arcgisClose = createEvent(this, "arcgisClose", 3);
5434
+ this.arcgisItemSelected = createEvent(this, "arcgisItemSelected", 3);
5435
+ this.manager = useControllerManager(this);
5436
+ this.messages = useT9n();
4061
5437
  this._updateFilterValue = (e) => {
4062
5438
  this._filterValue = e.target?.value ?? "";
4063
5439
  };
@@ -4069,7 +5445,7 @@ const ArcgisArcadeSuggestions = class {
4069
5445
  const keyEvent = e;
4070
5446
  if (!keyEvent.key || keyEvent.key === "Enter") {
4071
5447
  e.preventDefault();
4072
- this.itemSelected.emit(item.code);
5448
+ this.arcgisItemSelected.emit(item.code);
4073
5449
  }
4074
5450
  };
4075
5451
  this._showSuggestionDetail = (e) => {
@@ -4081,14 +5457,11 @@ const ArcgisArcadeSuggestions = class {
4081
5457
  this._selectedSuggestion = item;
4082
5458
  };
4083
5459
  this._emitClose = () => {
4084
- this.close.emit();
5460
+ this.arcgisClose.emit();
4085
5461
  };
4086
5462
  this._beforeBack = async () => {
4087
5463
  this._selectedSuggestion = undefined;
4088
5464
  };
4089
- this._lang = "";
4090
- this._t9nLocale = "";
4091
- this._t9nStrings = undefined;
4092
5465
  this._selectedSuggestion = undefined;
4093
5466
  this._filterValue = "";
4094
5467
  this._colorizeStyle = "";
@@ -4101,13 +5474,11 @@ const ArcgisArcadeSuggestions = class {
4101
5474
  // #region Component lifecycle events
4102
5475
  async componentWillLoad() {
4103
5476
  this._colorizeStyle = generateColorizeStyles();
4104
- this._themeChangedListner = onColorizeThemeChanged(() => (this._colorizeStyle = generateColorizeStyles()));
4105
- await B(this, getAssetPath("./assets"));
5477
+ this._themeChangedListener = onColorizeThemeChanged(() => (this._colorizeStyle = generateColorizeStyles()));
4106
5478
  }
4107
5479
  disconnectedCallback() {
4108
5480
  this._flowObserver?.disconnect();
4109
- this._themeChangedListner?.dispose();
4110
- q(this);
5481
+ this._themeChangedListener?.dispose();
4111
5482
  }
4112
5483
  // #endregion
4113
5484
  //#region Private Methods
@@ -4125,7 +5496,7 @@ const ArcgisArcadeSuggestions = class {
4125
5496
  // When switching between flow the same reference is reused
4126
5497
  this._flowObserver = new MutationObserver(() => {
4127
5498
  // Get the last panel and try to set focus on the input element
4128
- W(ref.querySelector("calcite-flow-item:last-child"), "calcite-input");
5499
+ setFocusOnElement(ref.querySelector("calcite-flow-item:last-child"), "calcite-input");
4129
5500
  });
4130
5501
  this._flowObserver.observe(ref, { attributes: true, attributeFilter: ["id"], childList: true });
4131
5502
  }
@@ -4143,29 +5514,30 @@ const ArcgisArcadeSuggestions = class {
4143
5514
  renderSuggestionListItems(suggestions) {
4144
5515
  suggestions = filterCollection(suggestions, "label", this._filterValue);
4145
5516
  if (!suggestions.length) {
4146
- return h("div", { class: "notice-container" }, this._t9nStrings?.noitems ?? "No item");
5517
+ return h("div", { class: "notice-container" }, this.messages.noitems ?? "No item");
4147
5518
  }
4148
- return suggestions.map((suggestion) => (h("calcite-list-item", { label: suggestion.label, description: suggestion.description, onCalciteListItemSelect: this._emitItemSelected, onKeyPress: this._emitItemSelected, "data-item": suggestion }, h("calcite-action", { slot: "actions-end", text: this._t9nStrings?.expand ?? "", scale: "s", icon: "chevron-right", iconFlipRtl: true, onClick: this._showSuggestionDetail, "data-item": suggestion }))));
5519
+ return suggestions.map((suggestion) => (h("calcite-list-item", { label: suggestion.label, description: suggestion.description, onCalciteListItemSelect: this._emitItemSelected, onKeyPress: this._emitItemSelected, "data-item": suggestion }, h("calcite-action", { slot: "actions-end", text: this.messages.expand ?? "", scale: "s", icon: "chevron-right", iconFlipRtl: true, onClick: this._showSuggestionDetail, "data-item": suggestion }))));
4149
5520
  }
4150
5521
  renderSuggestionFlowItem() {
4151
5522
  const suggestion = this._selectedSuggestion;
4152
5523
  if (!suggestion) {
4153
5524
  return null;
4154
5525
  }
4155
- return (h("calcite-flow-item", { heading: this._t9nStrings?.suggestions, closable: true, onCalciteFlowItemClose: this._emitClose, beforeBack: this._beforeBack }, h("calcite-button", { width: "half", slot: "footer", appearance: "outline", kind: "brand", "icon-start": "code", scale: "s", onClick: this._emitItemSelected, ref: (e) => void e?.setFocus(), "data-item": suggestion }, this._t9nStrings?.insert), h("calcite-block", { open: true, heading: suggestion.label, description: suggestion.description }, h("div", { innerHTML: convertMarkdownString(suggestion.documentation) }), h("pre", null, h("code", { ref: (e) => e === undefined ? undefined : void colorizeCodeElement(e, suggestion.code).catch(console.error) })))));
5526
+ return (h("calcite-flow-item", { heading: this.messages.suggestions, closable: true, onCalciteFlowItemClose: this._emitClose, beforeBack: this._beforeBack }, h("calcite-button", { width: "half", slot: "footer", appearance: "outline", kind: "brand", "icon-start": "code", scale: "s", onClick: this._emitItemSelected, ref: (e) => void e?.setFocus(), "data-item": suggestion }, this.messages.insert), h("calcite-block", { open: true, heading: suggestion.label, description: suggestion.description }, h("div", { innerHTML: convertMarkdownString(suggestion.documentation) }), h("pre", null, h("code", { ref: (e) => e === undefined ? undefined : void colorizeCodeElement(e, suggestion.code).catch(console.error) })))));
4156
5527
  }
4157
5528
  render() {
4158
- return (h(Host, null, h("style", null, this._colorizeStyle), h("calcite-flow", { ref: (ref) => this.flowFocusHandler(ref) }, h("calcite-flow-item", { heading: this._t9nStrings?.suggestions, closable: true, onCalciteFlowItemClose: this._emitClose }, h("calcite-input", { value: this._filterValue, icon: "magnifying-glass", clearable: true, onCalciteInputInput: this._updateFilterValue, class: "sticky", scale: "m" }), h("calcite-list", null, this.renderSuggestionGroups())), this.renderSuggestionFlowItem())));
5529
+ return (h(Host, { key: '6707bd25af9f7121687352d99cd02646aec67b9e' }, h("style", { key: 'cbb41e7834f0a353b27cb21fd6cb3ee42dfa7d1f' }, this._colorizeStyle), h("calcite-flow", { key: 'b261c8f3d8dc7e1cf94c2596297509ebfea09d40', ref: (ref) => this.flowFocusHandler(ref) }, h("calcite-flow-item", { key: '9faa9a146dc090e0dce0eb30748d57cbb449b2ee', heading: this.messages.suggestions, closable: true, onCalciteFlowItemClose: this._emitClose }, h("calcite-input", { key: '692b2a425ff4ca843485be5f90bc11fc385373a7', value: this._filterValue, icon: "magnifying-glass", clearable: true, onCalciteInputInput: this._updateFilterValue, class: "sticky", scale: "m" }), h("calcite-list", { key: 'e23fdc3c39e98deb6d4c3268b48e0c289c8aefbf' }, this.renderSuggestionGroups())), this.renderSuggestionFlowItem())));
4159
5530
  }
4160
5531
  static get assetsDirs() { return ["assets"]; }
4161
- get _hostElement() { return getElement(this); }
5532
+ get el() { return getElement(this); }
4162
5533
  static get watchers() { return {
4163
5534
  "suggestions": ["suggestionsPropChanged"]
4164
5535
  }; }
4165
5536
  };
4166
- ArcgisArcadeSuggestions.style = arcadeSuggestionsCss;
5537
+ ArcgisArcadeSuggestions.style = ArcgisArcadeSuggestionsStyle0;
4167
5538
 
4168
- const arcadeVariablesCss = ":host{background-color:var(--calcite-color-foreground-1)}:host .notice-container{margin:var(--calcite-spacing-quarter);padding:var(--calcite-spacing-half);background-color:var(--calcite-color-foreground-1)}:host .sticky{position:sticky;top:0px;z-index:10}:host calcite-flow{height:100%}";
5539
+ const arcadeVariablesCss = ":host{background-color:var(--calcite-color-foreground-1)}:host .notice-container{margin:var(--calcite-spacing-xxs);padding:var(--calcite-spacing-sm);background-color:var(--calcite-color-foreground-1)}:host .sticky{position:sticky;top:0px;z-index:10}:host calcite-flow{height:100%}:host calcite-list-item-group{background-color:var(--calcite-color-foreground-2)}";
5540
+ const ArcgisArcadeVariablesStyle0 = arcadeVariablesCss;
4169
5541
 
4170
5542
  function stopEnterPropagation(e) {
4171
5543
  if (e.key === "Enter") {
@@ -4175,8 +5547,10 @@ function stopEnterPropagation(e) {
4175
5547
  const ArcgisArcadeVariables = class {
4176
5548
  constructor(hostRef) {
4177
5549
  registerInstance(this, hostRef);
4178
- this.close = createEvent(this, "close", 3);
4179
- this.itemSelected = createEvent(this, "itemSelected", 3);
5550
+ this.arcgisClose = createEvent(this, "arcgisClose", 3);
5551
+ this.arcgisItemSelected = createEvent(this, "arcgisItemSelected", 3);
5552
+ this.manager = useControllerManager(this);
5553
+ this.messages = useT9n();
4180
5554
  this._updateFilterValue = (e) => {
4181
5555
  this._filterValue = e.target.value;
4182
5556
  };
@@ -4185,7 +5559,7 @@ const ArcgisArcadeVariables = class {
4185
5559
  this._filterValue = "";
4186
5560
  };
4187
5561
  this._emitClose = () => {
4188
- this.close.emit();
5562
+ this.arcgisClose.emit();
4189
5563
  };
4190
5564
  this._backToTop = () => {
4191
5565
  this._flowItemRenderers = [];
@@ -4198,7 +5572,7 @@ const ArcgisArcadeVariables = class {
4198
5572
  const keyEvent = e;
4199
5573
  if (!keyEvent.key || keyEvent.key === "Enter") {
4200
5574
  e.preventDefault();
4201
- this.itemSelected.emit(variable.snippet);
5575
+ this.arcgisItemSelected.emit(variable.snippet);
4202
5576
  }
4203
5577
  };
4204
5578
  this._showCollectionPanel = (e) => {
@@ -4209,9 +5583,6 @@ const ArcgisArcadeVariables = class {
4209
5583
  e.stopPropagation();
4210
5584
  this.addPanelRenderer(this.collectionBasedVariableRenderer(collectionVariable));
4211
5585
  };
4212
- this._lang = "";
4213
- this._t9nLocale = "";
4214
- this._t9nStrings = undefined;
4215
5586
  this._mutationCounter = 1;
4216
5587
  this._flowItemRenderers = [];
4217
5588
  this._filterValue = "";
@@ -4222,12 +5593,7 @@ const ArcgisArcadeVariables = class {
4222
5593
  this._flowItemRenderers = [];
4223
5594
  }
4224
5595
  //#endregion
4225
- // #region Component lifecycle events
4226
- async componentWillLoad() {
4227
- await B(this, getAssetPath("./assets"));
4228
- }
4229
5596
  disconnectedCallback() {
4230
- q(this);
4231
5597
  this._flowObserver?.disconnect();
4232
5598
  }
4233
5599
  // #endregion
@@ -4252,7 +5618,7 @@ const ArcgisArcadeVariables = class {
4252
5618
  // When switching between flow the same reference is reused
4253
5619
  this._flowObserver = new MutationObserver(() => {
4254
5620
  // Get the last panel and try to set focus on the input element
4255
- W(ref.querySelector("calcite-flow-item:last-child"), "calcite-input");
5621
+ setFocusOnElement(ref.querySelector("calcite-flow-item:last-child"), "calcite-input");
4256
5622
  });
4257
5623
  this._flowObserver.observe(ref, { attributes: true, attributeFilter: ["id"], childList: true });
4258
5624
  }
@@ -4281,15 +5647,15 @@ const ArcgisArcadeVariables = class {
4281
5647
  });
4282
5648
  loading = true;
4283
5649
  }
4284
- return (h("calcite-flow-item", { heading: this._t9nStrings?.profilevariables, description: collection.breadcrumb, beforeBack: this._beforeBack, closable: true, onCalciteFlowItemClose: this._emitClose }, h("calcite-action", { slot: "header-actions-end", text: this._t9nStrings?.backtotop ?? "Back to top", scale: "m", hidden: topPanel, icon: "chevrons-left", iconFlipRtl: true, onClick: this._backToTop }), h("calcite-input", { value: this._filterValue, icon: "magnifying-glass", clearable: true, onCalciteInputInput: this._updateFilterValue, class: "sticky", scale: "m" }), loading ? (h("calcite-loader", { scale: "s", type: "indeterminate", label: this._t9nStrings?.loading ?? "Loading" })) : (h("calcite-list", null, this.renderEditorVariables(collection)))));
5650
+ return (h("calcite-flow-item", { heading: this.messages.profilevariables, description: collection.breadcrumb, beforeBack: this._beforeBack, closable: true, onCalciteFlowItemClose: this._emitClose }, h("calcite-action", { slot: "header-actions-end", text: this.messages.backtotop ?? "Back to top", scale: "m", hidden: topPanel, icon: "chevrons-left", iconFlipRtl: true, onClick: this._backToTop }), h("calcite-input", { value: this._filterValue, icon: "magnifying-glass", clearable: true, onCalciteInputInput: this._updateFilterValue, class: "sticky", scale: "m" }), loading ? (h("calcite-loader", { scale: "s", type: "indeterminate", label: this.messages.loading ?? "Loading" })) : (h("calcite-list", null, this.renderEditorVariables(collection)))));
4285
5651
  };
4286
5652
  }
4287
5653
  renderEditorVariables(collection) {
4288
5654
  // Filter the variables. Skip group, we will filter the children later on.
4289
- const filterExpression = K(this._filterValue);
5655
+ const filterExpression = createFilterExpression(this._filterValue);
4290
5656
  const filteredVariables = collection.variables.filter((variable) => variable.passFilter(filterExpression));
4291
5657
  if (!filteredVariables.length) {
4292
- return h("div", { class: "notice-container" }, this._t9nStrings?.noitems ?? "No item");
5658
+ return h("div", { class: "notice-container" }, this.messages.noitems ?? "No item");
4293
5659
  }
4294
5660
  return filteredVariables.map((variable) => this.renderEditorVariable(variable));
4295
5661
  }
@@ -4299,25 +5665,26 @@ const ArcgisArcadeVariables = class {
4299
5665
  // Group is a collection but we represent it differently
4300
5666
  return (h("calcite-list-item-group", { heading: variable.getLabel() }, this.renderEditorVariables(variable)));
4301
5667
  default:
4302
- return (h("calcite-list-item", { label: variable.getLabel(), description: variable.getDescription(), onCalciteListItemSelect: this._emitItemSelected, onKeyPress: this._emitItemSelected, "data-item": variable }, variable.isCollection ? (h("calcite-action", { slot: "actions-end", text: this._t9nStrings?.expand ?? "", scale: "s", icon: "chevron-right", iconFlipRtl: true, onClick: this._showCollectionPanel, onKeyPress: stopEnterPropagation, "data-item": variable })) : null, variable.icon ? h("calcite-icon", { icon: variable.icon, scale: "s", slot: "content-start" }) : null));
5668
+ return (h("calcite-list-item", { label: variable.getLabel(), description: variable.getDescription(), onCalciteListItemSelect: this._emitItemSelected, onKeyPress: this._emitItemSelected, "data-item": variable }, variable.isCollection ? (h("calcite-action", { slot: "actions-end", text: this.messages.expand ?? "", scale: "s", icon: "chevron-right", iconFlipRtl: true, onClick: this._showCollectionPanel, onKeyPress: stopEnterPropagation, "data-item": variable })) : null, variable.icon ? h("calcite-icon", { icon: variable.icon, scale: "s", slot: "content-start" }) : null));
4303
5669
  }
4304
5670
  }
4305
5671
  render() {
4306
5672
  const profile = arcadeDefaults.getEditorProfileForModel(this.modelId ?? "");
4307
5673
  if (!this.loading && !profile?.variables.length) {
4308
- return (h("calcite-flow", null, h("calcite-flow-item", { heading: this._t9nStrings?.profilevariables, closable: true, onCalciteFlowItemClose: this._emitClose }, h("div", { class: "notice-container" }, this._t9nStrings?.noprofilevariablesmessage ?? ""))));
5674
+ return (h("calcite-flow", null, h("calcite-flow-item", { heading: this.messages.profilevariables, closable: true, onCalciteFlowItemClose: this._emitClose }, h("div", { class: "notice-container" }, this.messages.noprofilevariablesmessage ?? ""))));
4309
5675
  }
4310
5676
  return (h("calcite-flow", { ref: (ref) => this.flowFocusHandler(ref) }, this.collectionBasedVariableRenderer(profile, true)(), this._flowItemRenderers.map((renderer) => renderer())));
4311
5677
  }
4312
5678
  static get assetsDirs() { return ["assets"]; }
4313
- get _hostElement() { return getElement(this); }
5679
+ get el() { return getElement(this); }
4314
5680
  static get watchers() { return {
4315
5681
  "modelId": ["modelIdPropChanged"]
4316
5682
  }; }
4317
5683
  };
4318
- ArcgisArcadeVariables.style = arcadeVariablesCss;
5684
+ ArcgisArcadeVariables.style = ArcgisArcadeVariablesStyle0;
4319
5685
 
4320
5686
  const codeEditorCss = "@charset \"UTF-8\";.monaco-action-bar{white-space:nowrap;height:100%}.monaco-action-bar .actions-container{display:flex;margin:0 auto;padding:0;height:100%;width:100%;align-items:center}.monaco-action-bar.vertical .actions-container{display:inline-block}.monaco-action-bar .action-item{display:block;align-items:center;justify-content:center;cursor:pointer;position:relative}.monaco-action-bar .action-item.disabled{cursor:default}.monaco-action-bar .action-item .codicon,.monaco-action-bar .action-item .icon{display:block}.monaco-action-bar .action-item .codicon{display:flex;align-items:center;width:16px;height:16px}.monaco-action-bar .action-label{display:flex;font-size:11px;padding:3px;border-radius:5px}.monaco-action-bar .action-item.disabled .action-label,.monaco-action-bar .action-item.disabled .action-label:before,.monaco-action-bar .action-item.disabled .action-label:hover{opacity:0.6}.monaco-action-bar.vertical{text-align:left}.monaco-action-bar.vertical .action-item{display:block}.monaco-action-bar.vertical .action-label.separator{display:block;border-bottom:1px solid #bbb;padding-top:1px;margin-left:0.8em;margin-right:0.8em}.monaco-action-bar .action-item .action-label.separator{width:1px;height:16px;margin:5px 4px !important;cursor:default;min-width:1px;padding:0;background-color:#bbb}.secondary-actions .monaco-action-bar .action-label{margin-left:6px}.monaco-action-bar .action-item.select-container{overflow:hidden;flex:1;max-width:170px;min-width:60px;display:flex;align-items:center;justify-content:center;margin-right:10px}.monaco-action-bar .action-item.action-dropdown-item{display:flex}.monaco-action-bar .action-item.action-dropdown-item>.action-dropdown-item-separator{display:flex;align-items:center;cursor:default}.monaco-action-bar .action-item.action-dropdown-item>.action-dropdown-item-separator>div{width:1px}.monaco-aria-container{position:absolute;left:-999em}.monaco-text-button{box-sizing:border-box;display:flex;width:100%;padding:4px;border-radius:2px;text-align:center;cursor:pointer;justify-content:center;align-items:center;border:1px solid var(--vscode-button-border, transparent);line-height:18px}.monaco-text-button:focus{outline-offset:2px !important}.monaco-text-button:hover{text-decoration:none !important}.monaco-button.disabled,.monaco-button.disabled:focus{opacity:0.4 !important;cursor:default}.monaco-text-button .codicon{margin:0 0.2em;color:inherit !important}.monaco-text-button.monaco-text-button-with-short-label{flex-direction:row;flex-wrap:wrap;padding:0 4px;overflow:hidden;height:28px}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label{flex-basis:100%}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label-short{flex-grow:1;width:0;overflow:hidden}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label,.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label-short{display:flex;justify-content:center;align-items:center;font-weight:400;font-style:inherit;padding:4px 0}.monaco-button-dropdown{display:flex;cursor:pointer}.monaco-button-dropdown.disabled{cursor:default}.monaco-button-dropdown>.monaco-button:focus{outline-offset:-1px !important}.monaco-button-dropdown.disabled>.monaco-button-dropdown-separator,.monaco-button-dropdown.disabled>.monaco-button.disabled,.monaco-button-dropdown.disabled>.monaco-button.disabled:focus{opacity:0.4 !important}.monaco-button-dropdown>.monaco-button.monaco-text-button{border-right-width:0 !important}.monaco-button-dropdown .monaco-button-dropdown-separator{padding:4px 0;cursor:default}.monaco-button-dropdown .monaco-button-dropdown-separator>div{height:100%;width:1px}.monaco-button-dropdown>.monaco-button.monaco-dropdown-button{border:1px solid var(--vscode-button-border, transparent);border-left-width:0 !important;border-radius:0 2px 2px 0;display:flex;align-items:center}.monaco-button-dropdown>.monaco-button.monaco-text-button{border-radius:2px 0 0 2px}.monaco-description-button{display:flex;flex-direction:column;align-items:center;margin:4px 5px}.monaco-description-button .monaco-button-description{font-style:italic;font-size:11px;padding:4px 20px}.monaco-description-button .monaco-button-description,.monaco-description-button .monaco-button-label{display:flex;justify-content:center;align-items:center}.monaco-description-button .monaco-button-description>.codicon,.monaco-description-button .monaco-button-label>.codicon{margin:0 0.2em;color:inherit !important}.monaco-button-dropdown.default-colors>.monaco-button,.monaco-button.default-colors{color:var(--vscode-button-foreground);background-color:var(--vscode-button-background)}.monaco-button-dropdown.default-colors>.monaco-button:hover,.monaco-button.default-colors:hover{background-color:var(--vscode-button-hoverBackground)}.monaco-button-dropdown.default-colors>.monaco-button.secondary,.monaco-button.default-colors.secondary{color:var(--vscode-button-secondaryForeground);background-color:var(--vscode-button-secondaryBackground)}.monaco-button-dropdown.default-colors>.monaco-button.secondary:hover,.monaco-button.default-colors.secondary:hover{background-color:var(--vscode-button-secondaryHoverBackground)}.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator{background-color:var(--vscode-button-background);border-top:1px solid var(--vscode-button-border);border-bottom:1px solid var(--vscode-button-border)}.monaco-button-dropdown.default-colors .monaco-button.secondary+.monaco-button-dropdown-separator{background-color:var(--vscode-button-secondaryBackground)}.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator>div{background-color:var(--vscode-button-separator)}@font-face{font-family:codicon;font-display:block;src:url(data:font/ttf;base64,AAEAAAALAIAAAwAwR1NVQiCLJXoAAAE4AAAAVE9TLzI3T0ZpAAABjAAAAGBjbWFw2WtCygAACNwAABnaZ2x5ZkUa1GQAACY0AADuCGhlYWRYl6BTAAAA4AAAADZoaGVhAlsC5wAAALwAAAAkaG10eAcp//oAAAHsAAAG8GxvY2Ec7eKIAAAiuAAAA3ptYXhwAt0BgQAAARgAAAAgbmFtZZP3uUsAARQ8AAAB+HBvc3TRsqgxAAEWNAAAGCMAAQAAASwAAAAAASz////+AS4AAQAAAAAAAAAAAAAAAAAAAbwAAQAAAAEAAKJbzxRfDzz1AAsBLAAAAAB8JbCAAAAAAHwlsID////9AS4BLQAAAAgAAgAAAAAAAAABAAABvAF1ABcAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKADAAPgACREZMVAAObGF0bgAaAAQAAAAAAAAAAQAAAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAQBKwGQAAUAAADLANIAAAAqAMsA0gAAAJAADgBNAAACAAUDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBmRWQAwOpg7CMBLAAAABsBRwADAAAAAQAAAAAAAAAAAAAAAAACAAAAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLP//ASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLP//ASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEs//8BLAAAASwAAAEsAAABLAAAASz//wEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLP//ASwAAAEsAAABLAAAASz//wEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAAAAABQAAAAMAAAAsAAAABAAABPoAAQAAAAAD9AADAAEAAAAsAAMACgAABPoABAPIAAAAEAAQAAMAAOqI6ozqx+rJ6wnrTuwj//8AAOpg6orqj+rJ6szrC+tQ//8AAAAAAAAAAAAAAAAAAAABABAAYABkANQA1AFOAdQAAAADAOkBPgE7ALEBLAGFARoBXwEEAWUATAGxAVIBWwFaAI4ANQElAIMAxwD2AEABgwB2ABYBrgCYAIUBOAETAQoBCwGYAMEAowC1AZABcACIAYEBaQF4AXYBagF5AYABewF0ALcBbwF9AAIABAAFAAoACwAMAA0ADgAPABAAEgAaABwAHQAeAFkAWgBbAFwAXwBgACEAIgAjACQAJQAoACoAKwAsAC0ALgAvADEAMgAzADQAOwA4ADwAPQA+AD8AQQBCAEQARgBHAEkAUgBTAFQAVQBkAGYAaABrAG8AcQByAHMAdAB1AHcAeAB5AHoAewB8AH4AfwCBAIIAhACGAIkAjACNAJAAkQCSAJMAlACVAJYAlwCZAJsAnACdAJ4AnwCgAKIApQCmAKcAkQCoAKkAqwCyALMAtgC4ALwAvQDAAMIAwwDEAMUAywDMAM0AzgDPANAA0QDSAOcA6gDrAO4A8QDyAPMA9AD4APkA/AD9AP4BAwEFAQYBBwEJAQ0BDgERARIBFQEWAR0BIQEiASMBJAEmAScBKAEpASoBKwEwATEBMgEzATQBNQE2ATcBOQE6ATwBPQE/AUABQgFDAUQBRQFGAUsBTAFNAU4BTwFRAVYBVwFYAVkBXAFeAWIBYwFkAWYBZwFrAWwBbQFuAXEBcgFzAXUBdwF6AXwBfgGHAYgBkQGSAZQBlgGXAZkBmgGbAZwBnQGhAaMBpAGlAagBqQGqAawBrQGyAbMBtAG1AbYBugG7AOwA7QDvAPAAXQBeAG0AOQBuAGEBfwBsAHAAagBYACYAJwD/AIoAjwC+AaIAAQAXAGIA5gEUAUgBggEfALQBVQFUARgBaAEgAS4AVwGrAEMBAACLALkA9wEQAS8AKQEeARcANgA3AEgBhAGmAaABngGfAK0BRwFJAQ8AaQG3AbkBuAGKAYsBjAGNAY4BjwGJABEAUQEZAJoBsABnAMkA1QDUANMATwBOAE0AFADKAKwArgBWAGUBSgChAGMAFQC6ALsBHAAfACAA9QATAacBDADlANYA1wDcANoA2wDeAN8A4QDjAOQA2QDYAYYAxgEtAIcABgAHAAgACQDiAN0A4AAbAL8A+wD6ADoAGQAYAEsArwCwAVAASgFTAWEAyAECAZMBlQBFAV0ApAGvADABGwEIAQEAqgBQAOgBQQFgAIAAfQAAAQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAU4AAAAAAAAAG8AADqYAAA6mAAAAADAADqYQAA6mEAAADpAADqYgAA6mIAAAE+AADqYwAA6mMAAAE7AADqZAAA6mQAAACxAADqZQAA6mUAAAEsAADqZgAA6mYAAAGFAADqZwAA6mcAAAEaAADqaAAA6mgAAAFfAADqaQAA6mkAAAEEAADqagAA6moAAAFlAADqawAA6msAAABMAADqbAAA6mwAAAGxAADqbQAA6m0AAAFSAADqbgAA6m4AAAFbAADqbwAA6m8AAAFaAADqcAAA6nAAAACOAADqcQAA6nEAAAA1AADqcgAA6nIAAAElAADqcwAA6nMAAACDAADqdAAA6nQAAADHAADqdQAA6nUAAAD2AADqdgAA6nYAAABAAADqdwAA6ncAAAGDAADqeAAA6ngAAAB2AADqeQAA6nkAAAAWAADqegAA6noAAAGuAADqewAA6nsAAACYAADqfAAA6nwAAACFAADqfQAA6n0AAAE4AADqfgAA6n4AAAETAADqfwAA6n8AAAEKAADqgAAA6oAAAAELAADqgQAA6oEAAAGYAADqggAA6oIAAADBAADqgwAA6oMAAACjAADqhAAA6oQAAAC1AADqhQAA6oUAAAGQAADqhgAA6oYAAAFwAADqhwAA6ocAAACIAADqiAAA6ogAAAGBAADqigAA6ooAAAFpAADqiwAA6osAAAF4AADqjAAA6owAAAF2AADqjwAA6o8AAAFqAADqkAAA6pAAAAF5AADqkQAA6pEAAAGAAADqkgAA6pIAAAF7AADqkwAA6pMAAAF0AADqlAAA6pQAAAC3AADqlQAA6pUAAAFvAADqlgAA6pYAAAF9AADqlwAA6pcAAAACAADqmAAA6pgAAAAEAADqmQAA6pkAAAAFAADqmgAA6poAAAAKAADqmwAA6psAAAALAADqnAAA6pwAAAAMAADqnQAA6p0AAAANAADqngAA6p4AAAAOAADqnwAA6p8AAAAPAADqoAAA6qAAAAAQAADqoQAA6qEAAAASAADqogAA6qIAAAAaAADqowAA6qMAAAAcAADqpAAA6qQAAAAdAADqpQAA6qUAAAAeAADqpgAA6qYAAABZAADqpwAA6qcAAABaAADqqAAA6qgAAABbAADqqQAA6qkAAABcAADqqgAA6qoAAABfAADqqwAA6qsAAABgAADqrAAA6qwAAAAhAADqrQAA6q0AAAAiAADqrgAA6q4AAAAjAADqrwAA6q8AAAAkAADqsAAA6rAAAAAlAADqsQAA6rEAAAAoAADqsgAA6rIAAAAqAADqswAA6rMAAAArAADqtAAA6rQAAAAsAADqtQAA6rUAAAAtAADqtgAA6rYAAAAuAADqtwAA6rcAAAAvAADquAAA6rgAAAAxAADquQAA6rkAAAAyAADqugAA6roAAAAzAADquwAA6rsAAAA0AADqvAAA6rwAAAA7AADqvQAA6r0AAAA4AADqvgAA6r4AAAA8AADqvwAA6r8AAAA9AADqwAAA6sAAAAA+AADqwQAA6sEAAAA/AADqwgAA6sIAAABBAADqwwAA6sMAAABCAADqxAAA6sQAAABEAADqxQAA6sUAAABGAADqxgAA6sYAAABHAADqxwAA6scAAABJAADqyQAA6skAAABSAADqzAAA6swAAABTAADqzQAA6s0AAABUAADqzgAA6s4AAABVAADqzwAA6s8AAABkAADq0AAA6tAAAABmAADq0QAA6tEAAABoAADq0gAA6tIAAABrAADq0wAA6tMAAABvAADq1AAA6tQAAABxAADq1QAA6tUAAAByAADq1gAA6tYAAABzAADq1wAA6tcAAAB0AADq2AAA6tgAAAB1AADq2QAA6tkAAAB3AADq2gAA6toAAAB4AADq2wAA6tsAAAB5AADq3AAA6twAAAB6AADq3QAA6t0AAAB7AADq3gAA6t4AAAB8AADq3wAA6t8AAAB+AADq4AAA6uAAAAB/AADq4QAA6uEAAACBAADq4gAA6uIAAACCAADq4wAA6uMAAACEAADq5AAA6uQAAACGAADq5QAA6uUAAACJAADq5gAA6uYAAACMAADq5wAA6ucAAACNAADq6AAA6ugAAACQAADq6QAA6ukAAACRAADq6gAA6uoAAACSAADq6wAA6usAAACTAADq7AAA6uwAAACUAADq7QAA6u0AAACVAADq7gAA6u4AAACWAADq7wAA6u8AAACXAADq8AAA6vAAAACZAADq8QAA6vEAAACbAADq8gAA6vIAAACcAADq8wAA6vMAAACdAADq9AAA6vQAAACeAADq9QAA6vUAAACfAADq9gAA6vYAAACgAADq9wAA6vcAAACiAADq+AAA6vgAAAClAADq+QAA6vkAAACmAADq+gAA6voAAACnAADq+wAA6vsAAACRAADq/AAA6vwAAACoAADq/QAA6v0AAACpAADq/gAA6v4AAACrAADq/wAA6v8AAACyAADrAAAA6wAAAACzAADrAQAA6wEAAAC2AADrAgAA6wIAAAC4AADrAwAA6wMAAAC8AADrBAAA6wQAAAC9AADrBQAA6wUAAADAAADrBgAA6wYAAADCAADrBwAA6wcAAADDAADrCAAA6wgAAADEAADrCQAA6wkAAADFAADrCwAA6wsAAADLAADrDAAA6wwAAADMAADrDQAA6w0AAADNAADrDgAA6w4AAADOAADrDwAA6w8AAADPAADrEAAA6xAAAADQAADrEQAA6xEAAADRAADrEgAA6xIAAADSAADrEwAA6xMAAADnAADrFAAA6xQAAADqAADrFQAA6xUAAADrAADrFgAA6xYAAADuAADrFwAA6xcAAADxAADrGAAA6xgAAADyAADrGQAA6xkAAADzAADrGgAA6xoAAAD0AADrGwAA6xsAAAD4AADrHAAA6xwAAAD5AADrHQAA6x0AAAD8AADrHgAA6x4AAAD9AADrHwAA6x8AAAD+AADrIAAA6yAAAAEDAADrIQAA6yEAAAEFAADrIgAA6yIAAAEGAADrIwAA6yMAAAEHAADrJAAA6yQAAAEJAADrJQAA6yUAAAENAADrJgAA6yYAAAEOAADrJwAA6ycAAAERAADrKAAA6ygAAAESAADrKQAA6ykAAAEVAADrKgAA6yoAAAEWAADrKwAA6ysAAAEdAADrLAAA6ywAAAEhAADrLQAA6y0AAAEiAADrLgAA6y4AAAEjAADrLwAA6y8AAAEkAADrMAAA6zAAAAEmAADrMQAA6zEAAAEnAADrMgAA6zIAAAEoAADrMwAA6zMAAAEpAADrNAAA6zQAAAEqAADrNQAA6zUAAAErAADrNgAA6zYAAAEwAADrNwAA6zcAAAExAADrOAAA6zgAAAEyAADrOQAA6zkAAAEzAADrOgAA6zoAAAE0AADrOwAA6zsAAAE1AADrPAAA6zwAAAE2AADrPQAA6z0AAAE3AADrPgAA6z4AAAE5AADrPwAA6z8AAAE6AADrQAAA60AAAAE8AADrQQAA60EAAAE9AADrQgAA60IAAAE/AADrQwAA60MAAAFAAADrRAAA60QAAAFCAADrRQAA60UAAAFDAADrRgAA60YAAAFEAADrRwAA60cAAAFFAADrSAAA60gAAAFGAADrSQAA60kAAAFLAADrSgAA60oAAAFMAADrSwAA60sAAAFNAADrTAAA60wAAAFOAADrTQAA600AAAFPAADrTgAA604AAAFRAADrUAAA61AAAAFWAADrUQAA61EAAAFXAADrUgAA61IAAAFYAADrUwAA61MAAAFZAADrVAAA61QAAAFcAADrVQAA61UAAAFeAADrVgAA61YAAAFiAADrVwAA61cAAAFjAADrWAAA61gAAAFkAADrWQAA61kAAAFmAADrWgAA61oAAAFnAADrWwAA61sAAAFrAADrXAAA61wAAAFsAADrXQAA610AAAFtAADrXgAA614AAAFuAADrXwAA618AAAFxAADrYAAA62AAAAFyAADrYQAA62EAAAFzAADrYgAA62IAAAF1AADrYwAA62MAAAF3AADrZAAA62QAAAF6AADrZQAA62UAAAF8AADrZgAA62YAAAF+AADrZwAA62cAAAGHAADraAAA62gAAAGIAADraQAA62kAAAGRAADragAA62oAAAGSAADrawAA62sAAAGUAADrbAAA62wAAAGWAADrbQAA620AAAGXAADrbgAA624AAAGZAADrbwAA628AAAGaAADrcAAA63AAAAGbAADrcQAA63EAAAGcAADrcgAA63IAAAGdAADrcwAA63MAAAGhAADrdAAA63QAAAGjAADrdQAA63UAAAGkAADrdgAA63YAAAGlAADrdwAA63cAAAGoAADreAAA63gAAAGpAADreQAA63kAAAGqAADregAA63oAAAGsAADrewAA63sAAAGtAADrfAAA63wAAAGyAADrfQAA630AAAGzAADrfgAA634AAAG0AADrfwAA638AAAG1AADrgAAA64AAAAG2AADrgQAA64EAAAG6AADrggAA64IAAAG7AADrgwAA64MAAADsAADrhAAA64QAAADtAADrhQAA64UAAADvAADrhgAA64YAAADwAADrhwAA64cAAABdAADriAAA64gAAABeAADriQAA64kAAABtAADrigAA64oAAAA5AADriwAA64sAAABuAADrjAAA64wAAABhAADrjQAA640AAAF/AADrjgAA644AAABsAADrjwAA648AAABwAADrkAAA65AAAABqAADrkQAA65EAAABYAADrkgAA65IAAAAmAADrkwAA65MAAAAnAADrlAAA65QAAAD/AADrlQAA65UAAACKAADrlgAA65YAAACPAADrlwAA65cAAAC+AADrmAAA65gAAAGiAADrmQAA65kAAAABAADrmgAA65oAAAAXAADrmwAA65sAAABiAADrnAAA65wAAADmAADrnQAA650AAAEUAADrngAA654AAAFIAADrnwAA658AAAGCAADroAAA66AAAAEfAADroQAA66EAAAC0AADrogAA66IAAAFVAADrowAA66MAAAFUAADrpAAA66QAAAEYAADrpQAA66UAAAFoAADrpgAA66YAAAEgAADrpwAA66cAAAEuAADrqAAA66gAAABXAADrqQAA66kAAAGrAADrqgAA66oAAABDAADrqwAA66sAAAEAAADrrAAA66wAAACLAADrrQAA660AAAC5AADrrgAA664AAAD3AADrrwAA668AAAEQAADrsAAA67AAAAEvAADrsQAA67EAAAApAADrsgAA67IAAAEeAADrswAA67MAAAEXAADrtAAA67QAAAA2AADrtQAA67UAAAA3AADrtgAA67YAAABIAADrtwAA67cAAAGEAADruAAA67gAAAGmAADruQAA67kAAAGgAADrugAA67oAAAGeAADruwAA67sAAAGfAADrvAAA67wAAACtAADrvQAA670AAAFHAADrvgAA674AAAFJAADrvwAA678AAAEPAADrwAAA68AAAABpAADrwQAA68EAAAG3AADrwgAA68IAAAG5AADrwwAA68MAAAG4AADrxAAA68QAAAGKAADrxQAA68UAAAGLAADrxgAA68YAAAGMAADrxwAA68cAAAGNAADryAAA68gAAAGOAADryQAA68kAAAGPAADrygAA68oAAAGJAADrywAA68sAAAARAADrzAAA68wAAABRAADrzQAA680AAAEZAADrzgAA684AAACaAADrzwAA688AAAGwAADr0AAA69AAAABnAADr0QAA69EAAADJAADr0gAA69IAAADVAADr0wAA69MAAADUAADr1AAA69QAAADTAADr1QAA69UAAABPAADr1gAA69YAAABOAADr1wAA69cAAABNAADr2AAA69gAAAAUAADr2QAA69kAAADKAADr2gAA69oAAACsAADr2wAA69sAAACuAADr3AAA69wAAABWAADr3QAA690AAABlAADr3gAA694AAAFKAADr3wAA698AAAChAADr4AAA6+AAAABjAADr4QAA6+EAAAAVAADr4gAA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AGQAaQBjAG8AbgBUAGgAZQAgAGkAYwBvAG4AIABmAG8AbgB0ACAAZgBvAHIAIABWAGkAcwB1AGEAbAAgAFMAdAB1AGQAaQBvACAAQwBvAGQAZQBoAHQAdABwADoALwAvAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAAIAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAABvAECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERARIBEwEUARUBFgEXARgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEpASoBKwEsAS0BLgEvATABMQEyATMBNAE1ATYBNwE4ATkBOgE7ATwBPQE+AT8BQAFBAUIBQwFEAUUBRgFHAUgBSQFKAUsBTAFNAU4BTwFQAVEBUgFTAVQBVQFWAVcBWAFZAVoBWwFcAV0BXgFfAWABYQFiAWMBZAFlAWYBZwFoAWkBagFrAWwBbQFuAW8BcAFxAXIBcwF0AXUBdgF3AXgBeQF6AXsBfAF9AX4BfwGAAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBuAG5AboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQHOAc8B0AHRAdIB0wHUAdUB1gHXAdgB2QHaAdsB3AHdAd4B3wHgAeEB4gHjAeQB5QHmAecB6AHpAeoB6wHsAe0B7gHvAfAB8QHyAfMB9AH1AfYB9wH4AfkB+gH7AfwB/QH+Af8CAAIBAgICAwIEAgUCBgIHAggCCQIKAgsCDAINAg4CDwIQAhECEgITAhQCFQIWAhcCGAIZAhoCGwIcAh0CHgIfAiACIQIiAiMCJAIlAiYCJwIoAikCKgIrAiwCLQIuAi8CMAIxAjICMwI0AjUCNgI3AjgCOQI6AjsCPAI9Aj4CPwJAAkECQgJDAkQCRQJGAkcCSAJJAkoCSwJMAk0CTgJPAlACUQJSAlMCVAJVAlYCVwJYAlkCWgJbAlwCXQJeAl8CYAJhAmICYwJkAmUCZgJnAmgCaQJqAmsCbAJtAm4CbwJwAnECcgJzAnQCdQJ2AncCeAJ5AnoCewJ8An0CfgJ/AoACgQKCAoMChAKFAoYChwKIAokCigKLAowCjQKOAo8CkAKRApICkwKUApUClgKXApgCmQKaApsCnAKdAp4CnwKgAqECogKjAqQCpQKmAqcCqAKpAqoCqwKsAq0CrgKvArACsQKyArMCtAK1ArYCtwK4ArkCugK7ArwCvQAHYWNjb3VudBRhY3RpdmF0ZS1icmVha3BvaW50cwNhZGQHYXJjaGl2ZQphcnJvdy1ib3RoEWFycm93LWNpcmNsZS1kb3duEWFycm93LWNpcmNsZS1sZWZ0EmFycm93LWNpcmNsZS1yaWdodA9hcnJvdy1jaXJjbGUtdXAKYXJyb3ctZG93bgphcnJvdy1sZWZ0C2Fycm93LXJpZ2h0EGFycm93LXNtYWxsLWRvd24QYXJyb3ctc21hbGwtbGVmdBFhcnJvdy1zbWFsbC1yaWdodA5hcnJvdy1zbWFsbC11cAphcnJvdy1zd2FwCGFycm93LXVwDGF6dXJlLWRldm9wcwVhenVyZQtiZWFrZXItc3RvcAZiZWFrZXIIYmVsbC1kb3QOYmVsbC1zbGFzaC1kb3QKYmVsbC1zbGFzaARiZWxsBWJsYW5rBGJvbGQEYm9vawhib29rbWFyawticmFja2V0LWRvdA1icmFja2V0LWVycm9yCWJyaWVmY2FzZQlicm9hZGNhc3QHYnJvd3NlcgNidWcIY2FsZW5kYXINY2FsbC1pbmNvbWluZw1jYWxsLW91dGdvaW5nDmNhc2Utc2Vuc2l0aXZlCWNoZWNrLWFsbAVjaGVjawljaGVja2xpc3QMY2hldnJvbi1kb3duDGNoZXZyb24tbGVmdA1jaGV2cm9uLXJpZ2h0CmNoZXZyb24tdXAEY2hpcAxjaHJvbWUtY2xvc2UPY2hyb21lLW1heGltaXplD2Nocm9tZS1taW5pbWl6ZQ5jaHJvbWUtcmVzdG9yZQ1jaXJjbGUtZmlsbGVkE2NpcmNsZS1sYXJnZS1maWxsZWQMY2lyY2xlLWxhcmdlDGNpcmNsZS1zbGFzaBNjaXJjbGUtc21hbGwtZmlsbGVkDGNpcmNsZS1zbWFsbAZjaXJjbGUNY2lyY3VpdC1ib2FyZAljbGVhci1hbGwGY2xpcHB5CWNsb3NlLWFsbAVjbG9zZQ5jbG91ZC1kb3dubG9hZAxjbG91ZC11cGxvYWQFY2xvdWQEY29kZQZjb2ZmZWUMY29sbGFwc2UtYWxsCmNvbG9yLW1vZGUHY29tYmluZRJjb21tZW50LWRpc2N1c3Npb24NY29tbWVudC1kcmFmdBJjb21tZW50LXVucmVzb2x2ZWQHY29tbWVudA5jb21wYXNzLWFjdGl2ZQtjb21wYXNzLWRvdAdjb21wYXNzB2NvcGlsb3QEY29weQtjcmVkaXQtY2FyZARkYXNoCWRhc2hib2FyZAhkYXRhYmFzZQlkZWJ1Zy1hbGwPZGVidWctYWx0LXNtYWxsCWRlYnVnLWFsdCdkZWJ1Zy1icmVha3BvaW50LWNvbmRpdGlvbmFsLXVudmVyaWZpZWQcZGVidWctYnJlYWtwb2ludC1jb25kaXRpb25hbCBkZWJ1Zy1icmVha3BvaW50LWRhdGEtdW52ZXJpZmllZBVkZWJ1Zy1icmVha3BvaW50LWRhdGEkZGVidWctYnJlYWtwb2ludC1mdW5jdGlvbi11bnZlcmlmaWVkGWRlYnVnLWJyZWFrcG9pbnQtZnVuY3Rpb24fZGVidWctYnJlYWtwb2ludC1sb2ctdW52ZXJpZmllZBRkZWJ1Zy1icmVha3BvaW50LWxvZxxkZWJ1Zy1icmVha3BvaW50LXVuc3VwcG9ydGVkDWRlYnVnLWNvbnNvbGUUZGVidWctY29udGludWUtc21hbGwOZGVidWctY29udGludWUOZGVidWctY292ZXJhZ2UQZGVidWctZGlzY29ubmVjdBJkZWJ1Zy1saW5lLWJ5LWxpbmULZGVidWctcGF1c2ULZGVidWctcmVydW4TZGVidWctcmVzdGFydC1mcmFtZQ1kZWJ1Zy1yZXN0YXJ0FmRlYnVnLXJldmVyc2UtY29udGludWUXZGVidWctc3RhY2tmcmFtZS1hY3RpdmUQZGVidWctc3RhY2tmcmFtZQtkZWJ1Zy1zdGFydA9kZWJ1Zy1zdGVwLWJhY2sPZGVidWctc3RlcC1pbnRvDmRlYnVnLXN0ZXAtb3V0D2RlYnVnLXN0ZXAtb3ZlcgpkZWJ1Zy1zdG9wBWRlYnVnEGRlc2t0b3AtZG93bmxvYWQTZGV2aWNlLWNhbWVyYS12aWRlbw1kZXZpY2UtY2FtZXJhDWRldmljZS1tb2JpbGUKZGlmZi1hZGRlZAxkaWZmLWlnbm9yZWQNZGlmZi1tb2RpZmllZA1kaWZmLW11bHRpcGxlDGRpZmYtcmVtb3ZlZAxkaWZmLXJlbmFtZWQLZGlmZi1zaW5nbGUEZGlmZgdkaXNjYXJkBGVkaXQNZWRpdG9yLWxheW91dAhlbGxpcHNpcwxlbXB0eS13aW5kb3cLZXJyb3Itc21hbGwFZXJyb3IHZXhjbHVkZQpleHBhbmQtYWxsBmV4cG9ydApleHRlbnNpb25zCmV5ZS1jbG9zZWQDZXllCGZlZWRiYWNrC2ZpbGUtYmluYXJ5CWZpbGUtY29kZQpmaWxlLW1lZGlhCGZpbGUtcGRmDmZpbGUtc3VibW9kdWxlFmZpbGUtc3ltbGluay1kaXJlY3RvcnkRZmlsZS1zeW1saW5rLWZpbGUIZmlsZS16aXAEZmlsZQVmaWxlcw1maWx0ZXItZmlsbGVkBmZpbHRlcgVmbGFtZQlmb2xkLWRvd24HZm9sZC11cARmb2xkDWZvbGRlci1hY3RpdmUOZm9sZGVyLWxpYnJhcnkNZm9sZGVyLW9wZW5lZAZmb2xkZXIEZ2FtZQRnZWFyBGdpZnQLZ2lzdC1zZWNyZXQKZ2l0LWNvbW1pdAtnaXQtY29tcGFyZQlnaXQtZmV0Y2gJZ2l0LW1lcmdlF2dpdC1wdWxsLXJlcXVlc3QtY2xvc2VkF2dpdC1wdWxsLXJlcXVlc3QtY3JlYXRlFmdpdC1wdWxsLXJlcXVlc3QtZHJhZnQeZ2l0LXB1bGwtcmVxdWVzdC1nby10by1jaGFuZ2VzHGdpdC1wdWxsLXJlcXVlc3QtbmV3LWNoYW5nZXMQZ2l0LXB1bGwtcmVxdWVzdA1naXRodWItYWN0aW9uCmdpdGh1Yi1hbHQPZ2l0aHViLWludmVydGVkBmdpdGh1YgVnbG9iZQpnby10by1maWxlB2dyYWJiZXIKZ3JhcGgtbGVmdApncmFwaC1saW5lDWdyYXBoLXNjYXR0ZXIFZ3JhcGgHZ3JpcHBlchFncm91cC1ieS1yZWYtdHlwZQxoZWFydC1maWxsZWQFaGVhcnQHaGlzdG9yeQRob21lD2hvcml6b250YWwtcnVsZQVodWJvdAVpbmJveAZpbmRlbnQEaW5mbwZpbnNlcnQHaW5zcGVjdAtpc3N1ZS1kcmFmdA5pc3N1ZS1yZW9wZW5lZAZpc3N1ZXMGaXRhbGljBmplcnNleQRqc29uDmtlYmFiLXZlcnRpY2FsA2tleQNsYXcNbGF5ZXJzLWFjdGl2ZQpsYXllcnMtZG90BmxheWVycxdsYXlvdXQtYWN0aXZpdHliYXItbGVmdBhsYXlvdXQtYWN0aXZpdHliYXItcmlnaHQPbGF5b3V0LWNlbnRlcmVkDmxheW91dC1tZW51YmFyE2xheW91dC1wYW5lbC1jZW50ZXIUbGF5b3V0LXBhbmVsLWp1c3RpZnkRbGF5b3V0LXBhbmVsLWxlZnQQbGF5b3V0LXBhbmVsLW9mZhJsYXlvdXQtcGFuZWwtcmlnaHQMbGF5b3V0LXBhbmVsF2xheW91dC1zaWRlYmFyLWxlZnQtb2ZmE2xheW91dC1zaWRlYmFyLWxlZnQYbGF5b3V0LXNpZGViYXItcmlnaHQtb2ZmFGxheW91dC1zaWRlYmFyLXJpZ2h0EGxheW91dC1zdGF0dXNiYXIGbGF5b3V0B2xpYnJhcnkRbGlnaHRidWxiLWF1dG9maXgRbGlnaHRidWxiLXNwYXJrbGUJbGlnaHRidWxiDWxpbmstZXh0ZXJuYWwEbGluawtsaXN0LWZpbHRlcglsaXN0LWZsYXQMbGlzdC1vcmRlcmVkDmxpc3Qtc2VsZWN0aW9uCWxpc3QtdHJlZQ5saXN0LXVub3JkZXJlZApsaXZlLXNoYXJlB2xvYWRpbmcIbG9jYXRpb24KbG9jay1zbWFsbARsb2NrBm1hZ25ldAltYWlsLXJlYWQEbWFpbAptYXAtZmlsbGVkA21hcAhtYXJrZG93bgltZWdhcGhvbmUHbWVudGlvbgRtZW51BW1lcmdlCm1pYy1maWxsZWQDbWljCW1pbGVzdG9uZQZtaXJyb3IMbW9ydGFyLWJvYXJkBG1vdmUQbXVsdGlwbGUtd2luZG93cwVtdXNpYwRtdXRlCG5ldy1maWxlCm5ldy1mb2xkZXIHbmV3bGluZQpuby1uZXdsaW5lBG5vdGURbm90ZWJvb2stdGVtcGxhdGUIbm90ZWJvb2sIb2N0b2ZhY2UMb3Blbi1wcmV2aWV3DG9yZ2FuaXphdGlvbgZvdXRwdXQHcGFja2FnZQhwYWludGNhbgtwYXNzLWZpbGxlZARwYXNzCnBlcnNvbi1hZGQGcGVyc29uBXBpYW5vCXBpZS1jaGFydANwaW4McGlubmVkLWRpcnR5BnBpbm5lZAtwbGF5LWNpcmNsZQRwbGF5BHBsdWcNcHJlc2VydmUtY2FzZQdwcmV2aWV3EHByaW1pdGl2ZS1zcXVhcmUHcHJvamVjdAVwdWxzZQhxdWVzdGlvbgVxdW90ZQtyYWRpby10b3dlcglyZWFjdGlvbnMLcmVjb3JkLWtleXMMcmVjb3JkLXNtYWxsBnJlY29yZARyZWRvCnJlZmVyZW5jZXMHcmVmcmVzaAVyZWdleA9yZW1vdGUtZXhwbG9yZXIGcmVtb3RlBnJlbW92ZQtyZXBsYWNlLWFsbAdyZXBsYWNlBXJlcGx5CnJlcG8tY2xvbmUPcmVwby1mb3JjZS1wdXNoC3JlcG8tZm9ya2VkCXJlcG8tcHVsbAlyZXBvLXB1c2gEcmVwbwZyZXBvcnQPcmVxdWVzdC1jaGFuZ2VzBXJvYm90BnJvY2tldBJyb290LWZvbGRlci1vcGVuZWQLcm9vdC1mb2xkZXIDcnNzBHJ1YnkJcnVuLWFib3ZlB3J1bi1hbGwJcnVuLWJlbG93CnJ1bi1lcnJvcnMIc2F2ZS1hbGwHc2F2ZS1hcwRzYXZlC3NjcmVlbi1mdWxsDXNjcmVlbi1ub3JtYWwMc2VhcmNoLWZ1enp5C3NlYXJjaC1zdG9wBnNlYXJjaARzZW5kEnNlcnZlci1lbnZpcm9ubWVudA5zZXJ2ZXItcHJvY2VzcwZzZXJ2ZXINc2V0dGluZ3MtZ2VhcghzZXR0aW5ncwZzaGllbGQHc2lnbi1pbghzaWduLW91dAZzbWlsZXkFc25ha2UPc29ydC1wcmVjZWRlbmNlDnNvdXJjZS1jb250cm9sDnNwYXJrbGUtZmlsbGVkB3NwYXJrbGUQc3BsaXQtaG9yaXpvbnRhbA5zcGxpdC12ZXJ0aWNhbAhzcXVpcnJlbApzdGFyLWVtcHR5CXN0YXItZnVsbAlzdGFyLWhhbGYLc3RvcC1jaXJjbGUMc3ltYm9sLWFycmF5DnN5bWJvbC1ib29sZWFuDHN5bWJvbC1jbGFzcwxzeW1ib2wtY29sb3IPc3ltYm9sLWNvbnN0YW50EnN5bWJvbC1lbnVtLW1lbWJlcgtzeW1ib2wtZW51bQxzeW1ib2wtZXZlbnQMc3ltYm9sLWZpZWxkC3N5bWJvbC1maWxlEHN5bWJvbC1pbnRlcmZhY2UKc3ltYm9sLWtleQ5zeW1ib2wta2V5d29yZA1zeW1ib2wtbWV0aG9kC3N5bWJvbC1taXNjEHN5bWJvbC1uYW1lc3BhY2UOc3ltYm9sLW51bWVyaWMPc3ltYm9sLW9wZXJhdG9yEHN5bWJvbC1wYXJhbWV0ZXIPc3ltYm9sLXByb3BlcnR5DHN5bWJvbC1ydWxlcg5zeW1ib2wtc25pcHBldA1zeW1ib2wtc3RyaW5nEHN5bWJvbC1zdHJ1Y3R1cmUPc3ltYm9sLXZhcmlhYmxlDHN5bmMtaWdub3JlZARzeW5jBXRhYmxlA3RhZwZ0YXJnZXQIdGFza2xpc3QJdGVsZXNjb3BlDXRlcm1pbmFsLWJhc2gMdGVybWluYWwtY21kD3Rlcm1pbmFsLWRlYmlhbg50ZXJtaW5hbC1saW51eBN0ZXJtaW5hbC1wb3dlcnNoZWxsDXRlcm1pbmFsLXRtdXgPdGVybWluYWwtdWJ1bnR1CHRlcm1pbmFsCXRleHQtc2l6ZQp0aHJlZS1iYXJzEXRodW1ic2Rvd24tZmlsbGVkCnRodW1ic2Rvd24PdGh1bWJzdXAtZmlsbGVkCHRodW1ic3VwBXRvb2xzBXRyYXNoDXRyaWFuZ2xlLWRvd24NdHJpYW5nbGUtbGVmdA50cmlhbmdsZS1yaWdodAt0cmlhbmdsZS11cAd0d2l0dGVyEnR5cGUtaGllcmFyY2h5LXN1YhR0eXBlLWhpZXJhcmNoeS1zdXBlcg50eXBlLWhpZXJhcmNoeQZ1bmZvbGQTdW5ncm91cC1ieS1yZWYtdHlwZQZ1bmxvY2sGdW5tdXRlCnVudmVyaWZpZWQOdmFyaWFibGUtZ3JvdXAPdmVyaWZpZWQtZmlsbGVkCHZlcmlmaWVkCHZlcnNpb25zCXZtLWFjdGl2ZQp2bS1jb25uZWN0CnZtLW91dGxpbmUKdm0tcnVubmluZwJ2bQJ2cgR3YW5kB3dhcm5pbmcFd2F0Y2gKd2hpdGVzcGFjZQp3aG9sZS13b3JkBndpbmRvdwl3b3JkLXdyYXARd29ya3NwYWNlLXRydXN0ZWQRd29ya3NwYWNlLXVua25vd24Td29ya3NwYWNlLXVudHJ1c3RlZAd6b29tLWluCHpvb20tb3V0AAAA) format(\"truetype\")}.codicon[class*=codicon-]{font:normal normal normal 16px/1 codicon;display:inline-block;text-decoration:none;text-rendering:auto;text-align:center;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;user-select:none;-webkit-user-select:none}.codicon-wrench-subaction{opacity:0.5}@keyframes codicon-spin{to{transform:rotate(1turn)}}.codicon-gear.codicon-modifier-spin,.codicon-loading.codicon-modifier-spin,.codicon-notebook-state-executing.codicon-modifier-spin,.codicon-sync.codicon-modifier-spin{animation:codicon-spin 1.5s steps(30) infinite}.codicon-modifier-disabled{opacity:0.4}.codicon-loading,.codicon-tree-item-loading:before{animation-duration:1s !important;animation-timing-function:cubic-bezier(0.53, 0.21, 0.29, 0.67) !important}.context-view{position:absolute}.context-view.fixed{all:initial;font-family:inherit;font-size:13px;position:fixed;color:inherit}.monaco-count-badge{padding:3px 6px;border-radius:11px;font-size:11px;min-width:18px;min-height:18px;line-height:11px;font-weight:400;text-align:center;display:inline-block;box-sizing:border-box}.monaco-count-badge.long{padding:2px 3px;border-radius:2px;min-height:auto;line-height:normal}.monaco-dropdown{height:100%;padding:0}.monaco-dropdown>.dropdown-label{cursor:pointer;height:100%;display:flex;align-items:center;justify-content:center}.monaco-dropdown>.dropdown-label>.action-label.disabled{cursor:default}.monaco-dropdown-with-primary{display:flex !important;flex-direction:row;border-radius:5px}.monaco-dropdown-with-primary>.action-container>.action-label{margin-right:0}.monaco-dropdown-with-primary>.dropdown-action-container>.monaco-dropdown>.dropdown-label .codicon[class*=codicon-]{font-size:12px;padding-left:0;padding-right:0;line-height:16px;margin-left:-3px}.monaco-dropdown-with-primary>.dropdown-action-container>.monaco-dropdown>.dropdown-label>.action-label{display:block;background-size:16px;background-position:50%;background-repeat:no-repeat}.monaco-findInput{position:relative}.monaco-findInput .monaco-inputbox{font-size:13px;width:100%}.monaco-findInput>.controls{position:absolute;top:3px;right:2px}.vs .monaco-findInput.disabled{background-color:#e1e1e1}.vs-dark .monaco-findInput.disabled{background-color:#333}.hc-light .monaco-findInput.highlight-0 .controls,.monaco-findInput.highlight-0 .controls{animation:monaco-findInput-highlight-0 0.1s linear 0s}.hc-light .monaco-findInput.highlight-1 .controls,.monaco-findInput.highlight-1 .controls{animation:monaco-findInput-highlight-1 0.1s linear 0s}.hc-black .monaco-findInput.highlight-0 .controls,.vs-dark .monaco-findInput.highlight-0 .controls{animation:monaco-findInput-highlight-dark-0 0.1s linear 0s}.hc-black .monaco-findInput.highlight-1 .controls,.vs-dark .monaco-findInput.highlight-1 .controls{animation:monaco-findInput-highlight-dark-1 0.1s linear 0s}@keyframes monaco-findInput-highlight-0{0%{background:rgba(253, 255, 0, 0.8)}to{background:transparent}}@keyframes monaco-findInput-highlight-1{0%{background:rgba(253, 255, 0, 0.8)}99%{background:transparent}}@keyframes monaco-findInput-highlight-dark-0{0%{background:hsla(0, 0%, 100%, 0.44)}to{background:transparent}}@keyframes monaco-findInput-highlight-dark-1{0%{background:hsla(0, 0%, 100%, 0.44)}99%{background:transparent}}.monaco-hover{cursor:default;position:absolute;overflow:hidden;user-select:text;-webkit-user-select:text;box-sizing:border-box;animation:fadein 0.1s linear;line-height:1.5em;white-space:var(--vscode-hover-whiteSpace, normal)}.monaco-hover.hidden{display:none}.monaco-hover a:hover:not(.disabled){cursor:pointer}.monaco-hover .hover-contents:not(.html-hover-contents){padding:4px 8px}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents){max-width:var(--vscode-hover-maxWidth, 500px);word-wrap:break-word}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents) hr{min-width:100%}.monaco-hover .code,.monaco-hover h1,.monaco-hover h2,.monaco-hover h3,.monaco-hover h4,.monaco-hover h5,.monaco-hover h6,.monaco-hover p,.monaco-hover ul{margin:8px 0}.monaco-hover h1,.monaco-hover h2,.monaco-hover h3,.monaco-hover h4,.monaco-hover h5,.monaco-hover h6{line-height:1.1}.monaco-hover code{font-family:var(--monaco-monospace-font)}.monaco-hover hr{box-sizing:border-box;border-left:0;border-right:0;margin:4px -8px -4px;height:1px}.monaco-hover .code:first-child,.monaco-hover p:first-child,.monaco-hover ul:first-child{margin-top:0}.monaco-hover .code:last-child,.monaco-hover p:last-child,.monaco-hover ul:last-child{margin-bottom:0}.monaco-hover ol,.monaco-hover ul{padding-left:20px}.monaco-hover li>p{margin-bottom:0}.monaco-hover li>ul{margin-top:0}.monaco-hover code{border-radius:3px;padding:0 0.4em}.monaco-hover .monaco-tokenized-source{white-space:var(--vscode-hover-sourceWhiteSpace, pre-wrap)}.monaco-hover .hover-row.status-bar{font-size:12px;line-height:22px}.monaco-hover .hover-row.status-bar .info{font-style:italic;padding:0 8px}.monaco-hover .hover-row.status-bar .actions{display:flex;padding:0 8px}.monaco-hover .hover-row.status-bar .actions .action-container{margin-right:16px;cursor:pointer}.monaco-hover .hover-row.status-bar .actions .action-container .action .icon{padding-right:4px}.monaco-hover .markdown-hover .hover-contents .codicon{color:inherit;font-size:inherit;vertical-align:middle}.monaco-hover .hover-contents a.code-link,.monaco-hover .hover-contents a.code-link:hover{color:inherit}.monaco-hover .hover-contents a.code-link:before{content:\"(\"}.monaco-hover .hover-contents a.code-link:after{content:\")\"}.monaco-hover .hover-contents a.code-link>span{text-decoration:underline;border-bottom:1px solid transparent;text-underline-position:under;color:var(--vscode-textLink-foreground)}.monaco-hover .hover-contents a.code-link>span:hover{color:var(--vscode-textLink-activeForeground)}.monaco-hover .markdown-hover .hover-contents:not(.code-hover-contents):not(.html-hover-contents) span{margin-bottom:4px;display:inline-block}.monaco-hover-content .action-container a{-webkit-user-select:none;user-select:none}.monaco-hover-content .action-container.disabled{pointer-events:none;opacity:0.4;cursor:default}.monaco-icon-label{display:flex;overflow:hidden;text-overflow:ellipsis}.monaco-icon-label:before{background-size:16px;background-position:0;background-repeat:no-repeat;padding-right:6px;width:16px;height:22px;line-height:inherit !important;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top;flex-shrink:0}.monaco-icon-label-container.disabled{color:var(--vscode-disabledForeground)}.monaco-icon-label>.monaco-icon-label-container{min-width:0;overflow:hidden;text-overflow:ellipsis;flex:1}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{color:inherit;white-space:pre}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name>.label-separator{margin:0 2px;opacity:0.5}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-suffix-container>.label-suffix{opacity:0.7;white-space:pre}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{opacity:0.7;margin-left:0.5em;font-size:0.9em;white-space:pre}.monaco-icon-label.nowrap>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{white-space:nowrap}.vs .monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{opacity:0.95}.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-description-container>.label-description,.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{font-style:italic}.monaco-icon-label.deprecated{text-decoration:line-through;opacity:0.66}.monaco-icon-label.italic:after{font-style:italic}.monaco-icon-label.strikethrough>.monaco-icon-label-container>.monaco-icon-description-container>.label-description,.monaco-icon-label.strikethrough>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{text-decoration:line-through}.monaco-icon-label:after{opacity:0.75;font-size:90%;font-weight:600;margin:auto 16px 0 5px;text-align:center}.monaco-list:focus .selected .monaco-icon-label,.monaco-list:focus .selected .monaco-icon-label:after{color:inherit !important}.monaco-list-row.focused.selected .label-description,.monaco-list-row.selected .label-description{opacity:0.8}.monaco-inputbox{position:relative;display:block;padding:0;box-sizing:border-box;border-radius:2px;font-size:inherit}.monaco-inputbox>.ibwrapper>.input,.monaco-inputbox>.ibwrapper>.mirror{padding:4px 6px}.monaco-inputbox>.ibwrapper{position:relative;width:100%;height:100%}.monaco-inputbox>.ibwrapper>.input{display:inline-block;box-sizing:border-box;width:100%;height:100%;line-height:inherit;border:none;font-family:inherit;font-size:inherit;resize:none;color:inherit}.monaco-inputbox>.ibwrapper>input{text-overflow:ellipsis}.monaco-inputbox>.ibwrapper>textarea.input{display:block;scrollbar-width:none;outline:none}.monaco-inputbox>.ibwrapper>textarea.input::-webkit-scrollbar{display:none}.monaco-inputbox>.ibwrapper>textarea.input.empty{white-space:nowrap}.monaco-inputbox>.ibwrapper>.mirror{position:absolute;display:inline-block;width:100%;top:0;left:0;box-sizing:border-box;white-space:pre-wrap;visibility:hidden;word-wrap:break-word}.monaco-inputbox-container{text-align:right}.monaco-inputbox-container .monaco-inputbox-message{display:inline-block;overflow:hidden;text-align:left;width:100%;box-sizing:border-box;padding:0.4em;font-size:12px;line-height:17px;margin-top:-1px;word-wrap:break-word}.monaco-inputbox .monaco-action-bar{position:absolute;right:2px;top:4px}.monaco-inputbox .monaco-action-bar .action-item{margin-left:2px}.monaco-inputbox .monaco-action-bar .action-item .codicon{background-repeat:no-repeat;width:16px;height:16px}.monaco-keybinding{display:flex;align-items:center;line-height:10px}.monaco-keybinding>.monaco-keybinding-key{display:inline-block;border-style:solid;border-width:1px;border-radius:3px;vertical-align:middle;font-size:11px;padding:3px 5px;margin:0 2px}.monaco-keybinding>.monaco-keybinding-key:first-child{margin-left:0}.monaco-keybinding>.monaco-keybinding-key:last-child{margin-right:0}.monaco-keybinding>.monaco-keybinding-key-separator{display:inline-block}.monaco-keybinding>.monaco-keybinding-key-chord-separator{width:6px}.monaco-list{position:relative;height:100%;width:100%;white-space:nowrap}.monaco-list.mouse-support{user-select:none;-webkit-user-select:none}.monaco-list>.monaco-scrollable-element{height:100%}.monaco-list-rows{position:relative;width:100%;height:100%}.monaco-list.horizontal-scrolling .monaco-list-rows{width:auto;min-width:100%}.monaco-list-row{position:absolute;box-sizing:border-box;overflow:hidden;width:100%}.monaco-list.mouse-support .monaco-list-row{cursor:pointer;touch-action:none}.monaco-list .monaco-scrollable-element>.scrollbar.vertical,.monaco-pane-view>.monaco-split-view2.vertical>.monaco-scrollable-element>.scrollbar.vertical{z-index:14}.monaco-list-row.scrolling{display:none !important}.monaco-list.element-focused,.monaco-list.selection-multiple,.monaco-list.selection-single{outline:0 !important}.monaco-drag-image{display:inline-block;padding:1px 7px;border-radius:10px;font-size:12px;position:absolute;z-index:1000}.monaco-list-type-filter-message{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;padding:40px 1em 1em;text-align:center;white-space:normal;opacity:0.7;pointer-events:none}.monaco-list-type-filter-message:empty{display:none}.monaco-mouse-cursor-text{cursor:text}.monaco-progress-container{width:100%;height:2px;overflow:hidden}.monaco-progress-container .progress-bit{width:2%;height:2px;position:absolute;left:0;display:none}.monaco-progress-container.active .progress-bit{display:inherit}.monaco-progress-container.discrete .progress-bit{left:0;transition:width 0.1s linear}.monaco-progress-container.discrete.done .progress-bit{width:100%}.monaco-progress-container.infinite .progress-bit{animation-name:progress;animation-duration:4s;animation-iteration-count:infinite;transform:translateZ(0);animation-timing-function:linear}.monaco-progress-container.infinite.infinite-long-running .progress-bit{animation-timing-function:steps(100)}@keyframes progress{0%{transform:translateX(0) scaleX(1)}50%{transform:translateX(2500%) scaleX(3)}to{transform:translateX(4900%) scaleX(1)}}:root{--vscode-sash-size:4px;--vscode-sash-hover-size:4px}.monaco-sash{position:absolute;z-index:35;touch-action:none}.monaco-sash.disabled{pointer-events:none}.monaco-sash.mac.vertical{cursor:col-resize}.monaco-sash.vertical.minimum{cursor:e-resize}.monaco-sash.vertical.maximum{cursor:w-resize}.monaco-sash.mac.horizontal{cursor:row-resize}.monaco-sash.horizontal.minimum{cursor:s-resize}.monaco-sash.horizontal.maximum{cursor:n-resize}.monaco-sash.disabled{cursor:default !important;pointer-events:none !important}.monaco-sash.vertical{cursor:ew-resize;top:0;width:var(--vscode-sash-size);height:100%}.monaco-sash.horizontal{cursor:ns-resize;left:0;width:100%;height:var(--vscode-sash-size)}.monaco-sash:not(.disabled)>.orthogonal-drag-handle{content:\" \";height:calc(var(--vscode-sash-size) * 2);width:calc(var(--vscode-sash-size) * 2);z-index:100;display:block;cursor:all-scroll;position:absolute}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)>.orthogonal-drag-handle.start,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)>.orthogonal-drag-handle.end{cursor:nwse-resize}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)>.orthogonal-drag-handle.end,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)>.orthogonal-drag-handle.start{cursor:nesw-resize}.monaco-sash.vertical>.orthogonal-drag-handle.start{left:calc(var(--vscode-sash-size) * -0.5);top:calc(var(--vscode-sash-size) * -1)}.monaco-sash.vertical>.orthogonal-drag-handle.end{left:calc(var(--vscode-sash-size) * -0.5);bottom:calc(var(--vscode-sash-size) * -1)}.monaco-sash.horizontal>.orthogonal-drag-handle.start{top:calc(var(--vscode-sash-size) * -0.5);left:calc(var(--vscode-sash-size) * -1)}.monaco-sash.horizontal>.orthogonal-drag-handle.end{top:calc(var(--vscode-sash-size) * -0.5);right:calc(var(--vscode-sash-size) * -1)}.monaco-sash:before{content:\"\";pointer-events:none;position:absolute;width:100%;height:100%;background:transparent}.monaco-workbench:not(.reduce-motion) .monaco-sash:before{transition:background-color 0.1s ease-out}.monaco-sash.active:before,.monaco-sash.hover:before{background:var(--vscode-sash-hoverBorder)}.monaco-sash.vertical:before{width:var(--vscode-sash-hover-size);left:calc(50% - var(--vscode-sash-hover-size) / 2)}.monaco-sash.horizontal:before{height:var(--vscode-sash-hover-size);top:calc(50% - var(--vscode-sash-hover-size) / 2)}.pointer-events-disabled{pointer-events:none !important}.monaco-sash.debug{background:#0ff}.monaco-sash.debug.disabled{background:rgba(0, 255, 255, 0.2)}.monaco-sash.debug:not(.disabled)>.orthogonal-drag-handle{background:red}.monaco-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px !important}.monaco-scrollable-element>.visible{opacity:1;background:transparent;transition:opacity 0.1s linear;z-index:11}.monaco-scrollable-element>.invisible{opacity:0;pointer-events:none}.monaco-scrollable-element>.invisible.fade{transition:opacity 0.8s linear}.monaco-scrollable-element>.shadow{position:absolute;display:none}.monaco-scrollable-element>.shadow.top{display:block;top:0;left:3px;height:3px;width:100%;box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset}.monaco-scrollable-element>.shadow.left{display:block;top:3px;left:0;height:100%;width:3px;box-shadow:var(--vscode-scrollbar-shadow) 6px 0 6px -6px inset}.monaco-scrollable-element>.shadow.top-left-corner{display:block;top:0;left:0;height:3px;width:3px}.monaco-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow) 6px 0 6px -6px inset}.monaco-scrollable-element>.scrollbar>.slider{background:var(--vscode-scrollbarSlider-background)}.monaco-scrollable-element>.scrollbar>.slider:hover{background:var(--vscode-scrollbarSlider-hoverBackground)}.monaco-scrollable-element>.scrollbar>.slider.active{background:var(--vscode-scrollbarSlider-activeBackground)}.monaco-select-box{width:100%;cursor:pointer;border-radius:2px}.monaco-select-box-dropdown-container{font-size:13px;font-weight:400;text-transform:none}.monaco-action-bar .action-item.select-container{cursor:default}.monaco-action-bar .action-item .monaco-select-box{cursor:pointer;min-width:100px;min-height:18px;padding:2px 23px 2px 8px}.mac .monaco-action-bar .action-item .monaco-select-box{font-size:11px;border-radius:5px}.monaco-select-box-dropdown-padding{--dropdown-padding-top:1px;--dropdown-padding-bottom:1px}.hc-black .monaco-select-box-dropdown-padding,.hc-light .monaco-select-box-dropdown-padding{--dropdown-padding-top:3px;--dropdown-padding-bottom:4px}.monaco-select-box-dropdown-container{display:none;box-sizing:border-box}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown *{margin:0}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown a:focus{outline:1px solid -webkit-focus-ring-color;outline-offset:-1px}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown code{line-height:15px;font-family:var(--monaco-monospace-font)}.monaco-select-box-dropdown-container.visible{display:flex;flex-direction:column;text-align:left;width:1px;overflow:hidden;border-bottom-left-radius:3px;border-bottom-right-radius:3px}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container{flex:0 0 auto;align-self:flex-start;padding-top:var(--dropdown-padding-top);padding-bottom:var(--dropdown-padding-bottom);padding-left:1px;padding-right:1px;width:100%;overflow:hidden;box-sizing:border-box}.monaco-select-box-dropdown-container>.select-box-details-pane{padding:5px}.hc-black .monaco-select-box-dropdown-container>.select-box-dropdown-list-container{padding-top:var(--dropdown-padding-top);padding-bottom:var(--dropdown-padding-bottom)}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row{cursor:pointer}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-text{text-overflow:ellipsis;overflow:hidden;padding-left:3.5px;white-space:nowrap;float:left}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-detail{text-overflow:ellipsis;overflow:hidden;padding-left:3.5px;white-space:nowrap;float:left;opacity:0.7}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-decorator-right{text-overflow:ellipsis;overflow:hidden;padding-right:10px;white-space:nowrap;float:right}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.visually-hidden{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control{flex:1 1 auto;align-self:flex-start;opacity:0}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control>.width-control-div{overflow:hidden;max-height:0}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control>.width-control-div>.option-text-width-control{padding-left:4px;padding-right:8px;white-space:nowrap}.monaco-split-view2{position:relative;width:100%;height:100%}.monaco-split-view2>.sash-container{position:absolute;width:100%;height:100%;pointer-events:none}.monaco-split-view2>.sash-container>.monaco-sash{pointer-events:auto}.monaco-split-view2>.monaco-scrollable-element{width:100%;height:100%}.monaco-split-view2>.monaco-scrollable-element>.split-view-container{width:100%;height:100%;white-space:nowrap;position:relative}.monaco-split-view2>.monaco-scrollable-element>.split-view-container>.split-view-view{white-space:normal;position:absolute}.monaco-split-view2>.monaco-scrollable-element>.split-view-container>.split-view-view:not(.visible){display:none}.monaco-split-view2.vertical>.monaco-scrollable-element>.split-view-container>.split-view-view{width:100%}.monaco-split-view2.horizontal>.monaco-scrollable-element>.split-view-container>.split-view-view{height:100%}.monaco-split-view2.separator-border>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{content:\" \";position:absolute;top:0;left:0;z-index:5;pointer-events:none;background-color:var(--separator-border)}.monaco-split-view2.separator-border.horizontal>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{height:100%;width:1px}.monaco-split-view2.separator-border.vertical>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{height:1px;width:100%}.monaco-table{display:flex;flex-direction:column;position:relative;height:100%;width:100%;white-space:nowrap;overflow:hidden}.monaco-table>.monaco-split-view2{border-bottom:1px solid transparent}.monaco-table>.monaco-list{flex:1}.monaco-table-tr{display:flex;height:100%}.monaco-table-th{width:100%;height:100%;font-weight:700;overflow:hidden;text-overflow:ellipsis}.monaco-table-td,.monaco-table-th{box-sizing:border-box;flex-shrink:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.monaco-table>.monaco-split-view2 .monaco-sash.vertical:before{content:\"\";position:absolute;left:calc(var(--vscode-sash-size) / 2);width:0;border-left:1px solid transparent}.monaco-workbench:not(.reduce-motion) .monaco-table>.monaco-split-view2,.monaco-workbench:not(.reduce-motion) .monaco-table>.monaco-split-view2 .monaco-sash.vertical:before{transition:border-color 0.2s ease-out}.monaco-custom-toggle{margin-left:2px;float:left;cursor:pointer;overflow:hidden;width:20px;height:20px;border-radius:3px;border:1px solid transparent;padding:1px;box-sizing:border-box;user-select:none;-webkit-user-select:none}.monaco-custom-toggle:hover{background-color:var(--vscode-inputOption-hoverBackground)}.hc-black .monaco-custom-toggle:hover,.hc-light .monaco-custom-toggle:hover{border:1px dashed var(--vscode-focusBorder)}.hc-black .monaco-custom-toggle,.hc-black .monaco-custom-toggle:hover,.hc-light .monaco-custom-toggle,.hc-light .monaco-custom-toggle:hover{background:none}.monaco-custom-toggle.monaco-checkbox{height:18px;width:18px;border:1px solid transparent;border-radius:3px;margin-right:9px;margin-left:0;padding:0;opacity:1;background-size:16px !important}.monaco-action-bar .checkbox-action-item{display:flex;align-items:center}.monaco-action-bar .checkbox-action-item>.monaco-custom-toggle.monaco-checkbox{margin-right:4px}.monaco-action-bar .checkbox-action-item>.checkbox-label{font-size:12px}.monaco-custom-toggle.monaco-checkbox:not(.checked):before{visibility:hidden}.monaco-toolbar{height:100%}.monaco-toolbar .toolbar-toggle-more{display:inline-block;padding:0}.monaco-tl-row{display:flex;height:100%;align-items:center;position:relative}.monaco-tl-row.disabled{cursor:default}.monaco-tl-indent{height:100%;position:absolute;top:0;left:16px;pointer-events:none}.hide-arrows .monaco-tl-indent{left:12px}.monaco-tl-indent>.indent-guide{display:inline-block;box-sizing:border-box;height:100%;border-left:1px solid transparent}.monaco-workbench:not(.reduce-motion) .monaco-tl-indent>.indent-guide{transition:border-color 0.1s linear}.monaco-tl-contents,.monaco-tl-twistie{height:100%}.monaco-tl-twistie{font-size:10px;text-align:right;padding-right:6px;flex-shrink:0;width:16px;display:flex !important;align-items:center;justify-content:center;transform:translateX(3px)}.monaco-tl-contents{flex:1;overflow:hidden}.monaco-tl-twistie:before{border-radius:20px}.monaco-tl-twistie.collapsed:before{transform:rotate(-90deg)}.monaco-tl-twistie.codicon-tree-item-loading:before{animation:codicon-spin 1.25s steps(30) infinite}.monaco-tree-type-filter{position:absolute;top:0;display:flex;padding:3px;max-width:200px;z-index:100;margin:0 6px;border:1px solid var(--vscode-widget-border);border-bottom-left-radius:4px;border-bottom-right-radius:4px}.monaco-workbench:not(.reduce-motion) .monaco-tree-type-filter{transition:top 0.3s}.monaco-tree-type-filter.disabled{top:-40px !important}.monaco-tree-type-filter-grab{display:flex !important;align-items:center;justify-content:center;cursor:grab;margin-right:2px}.monaco-tree-type-filter-grab.grabbing{cursor:grabbing}.monaco-tree-type-filter-input{flex:1}.monaco-tree-type-filter-input .monaco-inputbox{height:23px}.monaco-tree-type-filter-input .monaco-inputbox>.ibwrapper>.input,.monaco-tree-type-filter-input .monaco-inputbox>.ibwrapper>.mirror{padding:2px 4px}.monaco-tree-type-filter-input .monaco-findInput>.controls{top:2px}.monaco-tree-type-filter-actionbar{margin-left:4px}.monaco-tree-type-filter-actionbar .monaco-action-bar .action-label{padding:2px}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container{position:absolute;top:0;left:0;width:100%;height:0;z-index:13;background-color:var(--vscode-sideBar-background)}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row.monaco-list-row{position:absolute;width:100%;opacity:1 !important;overflow:hidden;background-color:var(--vscode-sideBar-background)}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row:hover{background-color:var(--vscode-list-hoverBackground) !important;cursor:pointer}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-container-shadow{position:absolute;bottom:-3px;left:0;height:3px;width:100%;box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset}.monaco-editor .inputarea{min-width:0;min-height:0;margin:0;padding:0;position:absolute;outline:none !important;resize:none;border:none;overflow:hidden;color:transparent;background-color:transparent;z-index:-10}.monaco-editor .inputarea.ime-input{z-index:10;caret-color:var(--vscode-editorCursor-foreground);color:var(--vscode-editor-foreground)}.monaco-editor .blockDecorations-container{position:absolute;top:0;pointer-events:none}.monaco-editor .blockDecorations-block{position:absolute;box-sizing:border-box}.monaco-editor .margin-view-overlays .current-line,.monaco-editor .view-overlays .current-line{display:block;position:absolute;left:0;top:0;box-sizing:border-box}.monaco-editor .margin-view-overlays .current-line.current-line-margin.current-line-margin-both{border-right:0}.monaco-editor .lines-content .cdr{position:absolute}.monaco-editor .glyph-margin{position:absolute;top:0}.monaco-editor .glyph-margin-widgets .cgmr{position:absolute;display:flex;align-items:center;justify-content:center}.monaco-editor .glyph-margin-widgets .cgmr.codicon-modifier-spin:before{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.monaco-editor .lines-content .core-guide{position:absolute;box-sizing:border-box}.monaco-editor .margin-view-overlays .line-numbers{font-variant-numeric:tabular-nums;position:absolute;text-align:right;display:inline-block;vertical-align:middle;box-sizing:border-box;cursor:default;height:100%}.monaco-editor .relative-current-line-number{text-align:left;display:inline-block;width:100%}.monaco-editor .margin-view-overlays .line-numbers.lh-odd{margin-top:1px}.monaco-editor .line-numbers{color:var(--vscode-editorLineNumber-foreground)}.monaco-editor .line-numbers.active-line-number{color:var(--vscode-editorLineNumber-activeForeground)}.mtkcontrol{color:#fff !important;background:#960000 !important}.mtkoverflow{background-color:var(--vscode-button-background, var(--vscode-editor-background));color:var(--vscode-button-foreground, var(--vscode-editor-foreground));border:1px solid var(--vscode-contrastBorder);border-radius:2px;padding:4px;cursor:pointer}.mtkoverflow:hover{background-color:var(--vscode-button-hoverBackground)}.monaco-editor.no-user-select .lines-content,.monaco-editor.no-user-select .view-line,.monaco-editor.no-user-select .view-lines{user-select:none;-webkit-user-select:none}.monaco-editor.mac .lines-content:hover,.monaco-editor.mac .view-line:hover,.monaco-editor.mac .view-lines:hover{user-select:text;-webkit-user-select:text;-ms-user-select:text}.monaco-editor.enable-user-select{user-select:initial;-webkit-user-select:initial}.monaco-editor .view-lines{white-space:nowrap}.monaco-editor .view-line{position:absolute;width:100%}.monaco-editor .mtkw,.monaco-editor .mtkz{color:var(--vscode-editorWhitespace-foreground) !important}.monaco-editor .mtkz{display:inline-block}.monaco-editor .lines-decorations{position:absolute;top:0;background:#fff}.monaco-editor .margin-view-overlays .cldr{position:absolute;height:100%}.monaco-editor .margin{background-color:var(--vscode-editorGutter-background)}.monaco-editor .margin-view-overlays .cmdr{position:absolute;left:0;width:100%;height:100%}.monaco-editor .minimap.slider-mouseover .minimap-slider{opacity:0;transition:opacity 0.1s linear}.monaco-editor .minimap.slider-mouseover .minimap-slider.active,.monaco-editor .minimap.slider-mouseover:hover .minimap-slider{opacity:1}.monaco-editor .minimap-slider .minimap-slider-horizontal{background:var(--vscode-minimapSlider-background)}.monaco-editor .minimap-slider:hover .minimap-slider-horizontal{background:var(--vscode-minimapSlider-hoverBackground)}.monaco-editor .minimap-slider.active .minimap-slider-horizontal{background:var(--vscode-minimapSlider-activeBackground)}.monaco-editor .minimap-shadow-visible{box-shadow:var(--vscode-scrollbar-shadow) -6px 0 6px -6px inset}.monaco-editor .minimap-shadow-hidden{position:absolute;width:0}.monaco-editor .minimap-shadow-visible{position:absolute;left:-6px;width:6px}.monaco-editor.no-minimap-shadow .minimap-shadow-visible{position:absolute;left:-1px;width:1px}.minimap.autohide{opacity:0;transition:opacity 0.5s}.minimap.autohide:hover{opacity:1}.monaco-editor .minimap{z-index:5}.monaco-editor .overlayWidgets{position:absolute;top:0;left:0}.monaco-editor .view-ruler{position:absolute;top:0;box-shadow:1px 0 0 0 var(--vscode-editorRuler-foreground) inset}.monaco-editor .scroll-decoration{position:absolute;top:0;left:0;height:6px;box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset}.monaco-editor .lines-content .cslr{position:absolute}.monaco-editor .focused .selected-text{background-color:var(--vscode-editor-selectionBackground)}.monaco-editor .selected-text{background-color:var(--vscode-editor-inactiveSelectionBackground)}.monaco-editor .top-left-radius{border-top-left-radius:3px}.monaco-editor .bottom-left-radius{border-bottom-left-radius:3px}.monaco-editor .top-right-radius{border-top-right-radius:3px}.monaco-editor .bottom-right-radius{border-bottom-right-radius:3px}.monaco-editor.hc-black .top-left-radius{border-top-left-radius:0}.monaco-editor.hc-black .bottom-left-radius{border-bottom-left-radius:0}.monaco-editor.hc-black .top-right-radius{border-top-right-radius:0}.monaco-editor.hc-black .bottom-right-radius{border-bottom-right-radius:0}.monaco-editor.hc-light .top-left-radius{border-top-left-radius:0}.monaco-editor.hc-light .bottom-left-radius{border-bottom-left-radius:0}.monaco-editor.hc-light .top-right-radius{border-top-right-radius:0}.monaco-editor.hc-light .bottom-right-radius{border-bottom-right-radius:0}.monaco-editor .cursors-layer{position:absolute;top:0}.monaco-editor .cursors-layer>.cursor{position:absolute;overflow:hidden;box-sizing:border-box}.monaco-editor .cursors-layer.cursor-smooth-caret-animation>.cursor{transition:all 80ms}.monaco-editor .cursors-layer.cursor-block-outline-style>.cursor{background:transparent !important;border-style:solid;border-width:1px}.monaco-editor .cursors-layer.cursor-underline-style>.cursor{border-bottom-width:2px;border-bottom-style:solid;background:transparent !important}.monaco-editor .cursors-layer.cursor-underline-thin-style>.cursor{border-bottom-width:1px;border-bottom-style:solid;background:transparent !important}@keyframes monaco-cursor-smooth{0%,20%{opacity:1}60%,to{opacity:0}}@keyframes monaco-cursor-phase{0%,20%{opacity:1}90%,to{opacity:0}}@keyframes monaco-cursor-expand{0%,20%{transform:scaleY(1)}80%,to{transform:scaleY(0)}}.cursor-smooth{animation:monaco-cursor-smooth 0.5s ease-in-out 0s 20 alternate}.cursor-phase{animation:monaco-cursor-phase 0.5s ease-in-out 0s 20 alternate}.cursor-expand>.cursor{animation:monaco-cursor-expand 0.5s ease-in-out 0s 20 alternate}.monaco-editor .mwh{position:absolute;color:var(--vscode-editorWhitespace-foreground) !important}.monaco-diff-editor .diff-review-line-number{text-align:right;display:inline-block;color:var(--vscode-editorLineNumber-foreground)}.monaco-diff-editor .diff-review{position:absolute;user-select:none;-webkit-user-select:none;z-index:99}.monaco-diff-editor .diff-review-summary{padding-left:10px}.monaco-diff-editor .diff-review-shadow{position:absolute;box-shadow:var(--vscode-scrollbar-shadow) 0 -6px 6px -6px inset}.monaco-diff-editor .diff-review-row{white-space:pre}.monaco-diff-editor .diff-review-table{display:table;min-width:100%}.monaco-diff-editor .diff-review-row{display:table-row;width:100%}.monaco-diff-editor .diff-review-spacer{display:inline-block;width:10px;vertical-align:middle}.monaco-diff-editor .diff-review-spacer>.codicon{font-size:9px !important}.monaco-diff-editor .diff-review-actions{display:inline-block;position:absolute;right:10px;top:2px;z-index:100}.monaco-diff-editor .diff-review-actions .action-label{width:16px;height:16px;margin:2px 0}.monaco-diff-editor .revertButton{cursor:pointer}.monaco-editor .diff-hidden-lines-widget{width:100%}.monaco-editor .diff-hidden-lines{height:0;transform:translateY(-10px);font-size:13px;line-height:14px}.monaco-editor .diff-hidden-lines .bottom.dragging,.monaco-editor .diff-hidden-lines .top.dragging,.monaco-editor .diff-hidden-lines:not(.dragging) .bottom:hover,.monaco-editor .diff-hidden-lines:not(.dragging) .top:hover{background-color:var(--vscode-focusBorder)}.monaco-editor .diff-hidden-lines .bottom,.monaco-editor .diff-hidden-lines .top{transition:background-color 0.1s ease-out;height:4px;background-color:transparent;background-clip:padding-box;border-bottom:2px solid transparent;border-top:4px solid transparent}.monaco-editor .diff-hidden-lines .bottom.canMoveTop:not(.canMoveBottom),.monaco-editor .diff-hidden-lines .top.canMoveTop:not(.canMoveBottom),.monaco-editor.draggingUnchangedRegion.canMoveTop:not(.canMoveBottom) *{cursor:n-resize !important}.monaco-editor .diff-hidden-lines .bottom:not(.canMoveTop).canMoveBottom,.monaco-editor .diff-hidden-lines .top:not(.canMoveTop).canMoveBottom,.monaco-editor.draggingUnchangedRegion:not(.canMoveTop).canMoveBottom *{cursor:s-resize !important}.monaco-editor .diff-hidden-lines .bottom.canMoveTop.canMoveBottom,.monaco-editor .diff-hidden-lines .top.canMoveTop.canMoveBottom,.monaco-editor.draggingUnchangedRegion.canMoveTop.canMoveBottom *{cursor:ns-resize !important}.monaco-editor .diff-hidden-lines .top{transform:translateY(4px)}.monaco-editor .diff-hidden-lines .bottom{transform:translateY(-6px)}.monaco-editor .diff-unchanged-lines{background:var(--vscode-diffEditor-unchangedCodeBackground)}.monaco-editor .noModificationsOverlay{z-index:1;background:var(--vscode-editor-background);display:flex;justify-content:center;align-items:center}.monaco-editor .diff-hidden-lines .center{background:var(--vscode-diffEditor-unchangedRegionBackground);color:var(--vscode-diffEditor-unchangedRegionForeground);overflow:hidden;display:block;text-overflow:ellipsis;white-space:nowrap;height:24px;box-shadow:inset 0 -5px 5px -7px var(--vscode-diffEditor-unchangedRegionShadow), inset 0 5px 5px -7px var(--vscode-diffEditor-unchangedRegionShadow)}.monaco-editor .diff-hidden-lines .center span.codicon{vertical-align:middle}.monaco-editor .diff-hidden-lines .center a:hover .codicon{cursor:pointer;color:var(--vscode-editorLink-activeForeground) !important}.monaco-editor .diff-hidden-lines div.breadcrumb-item{cursor:pointer}.monaco-editor .diff-hidden-lines div.breadcrumb-item:hover{color:var(--vscode-editorLink-activeForeground)}.monaco-editor .movedModified,.monaco-editor .movedOriginal{border:2px solid var(--vscode-diffEditor-move-border)}.monaco-editor .movedModified.currentMove,.monaco-editor .movedOriginal.currentMove{border:2px solid var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines path.currentMove{stroke:var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines path{pointer-events:visiblestroke}.monaco-diff-editor .moved-blocks-lines .arrow{fill:var(--vscode-diffEditor-move-border)}.monaco-diff-editor .moved-blocks-lines .arrow.currentMove{fill:var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines .arrow-rectangle{fill:var(--vscode-editor-background)}.monaco-diff-editor .moved-blocks-lines{position:absolute;pointer-events:none}.monaco-diff-editor .moved-blocks-lines path{fill:none;stroke:var(--vscode-diffEditor-move-border);stroke-width:2}.monaco-editor .char-delete.diff-range-empty{margin-left:-1px;border-left:3px solid var(--vscode-diffEditor-removedTextBackground)}.monaco-editor .char-insert.diff-range-empty{border-left:3px solid var(--vscode-diffEditor-insertedTextBackground)}.monaco-editor .fold-unchanged{cursor:pointer}.monaco-diff-editor .diff-moved-code-block{display:flex;justify-content:flex-end;margin-top:-4px}.monaco-diff-editor .diff-moved-code-block .action-bar .action-label.codicon{width:12px;height:12px;font-size:12px}.monaco-diff-editor .diffOverview{z-index:9}.monaco-diff-editor .diffOverview .diffViewport{z-index:10}.monaco-diff-editor.vs .diffOverview{background:rgba(0, 0, 0, 0.03)}.monaco-diff-editor.vs-dark .diffOverview{background:hsla(0, 0%, 100%, 0.01)}.monaco-scrollable-element.modified-in-monaco-diff-editor.vs-dark .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.vs .scrollbar{background:transparent}.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-black .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-light .scrollbar{background:none}.monaco-scrollable-element.modified-in-monaco-diff-editor .slider{z-index:10}.modified-in-monaco-diff-editor .slider.active{background:hsla(0, 0%, 67.1%, 0.4)}.modified-in-monaco-diff-editor.hc-black .slider.active,.modified-in-monaco-diff-editor.hc-light .slider.active{background:none}.monaco-diff-editor .delete-sign,.monaco-diff-editor .insert-sign,.monaco-editor .delete-sign,.monaco-editor .insert-sign{font-size:11px !important;opacity:0.7 !important;display:flex !important;align-items:center}.monaco-diff-editor.hc-black .delete-sign,.monaco-diff-editor.hc-black .insert-sign,.monaco-diff-editor.hc-light .delete-sign,.monaco-diff-editor.hc-light .insert-sign,.monaco-editor.hc-black .delete-sign,.monaco-editor.hc-black .insert-sign,.monaco-editor.hc-light .delete-sign,.monaco-editor.hc-light .insert-sign{opacity:1}.monaco-editor .inline-added-margin-view-zone,.monaco-editor .inline-deleted-margin-view-zone{text-align:right}.monaco-editor .arrow-revert-change{z-index:10;position:absolute}.monaco-editor .arrow-revert-change:hover{cursor:pointer}.monaco-editor .view-zones .view-lines .view-line span{display:inline-block}.monaco-editor .margin-view-zones .lightbulb-glyph:hover{cursor:pointer}.monaco-diff-editor .char-insert,.monaco-editor .char-insert{background-color:var(--vscode-diffEditor-insertedTextBackground)}.monaco-diff-editor .line-insert,.monaco-editor .line-insert{background-color:var(--vscode-diffEditor-insertedLineBackground, var(--vscode-diffEditor-insertedTextBackground))}.monaco-editor .char-insert,.monaco-editor .line-insert{box-sizing:border-box;border:1px solid var(--vscode-diffEditor-insertedTextBorder)}.monaco-editor.hc-black .char-insert,.monaco-editor.hc-black .line-insert,.monaco-editor.hc-light .char-insert,.monaco-editor.hc-light .line-insert{border-style:dashed}.monaco-editor .char-delete,.monaco-editor .line-delete{box-sizing:border-box;border:1px solid var(--vscode-diffEditor-removedTextBorder)}.monaco-editor.hc-black .char-delete,.monaco-editor.hc-black .line-delete,.monaco-editor.hc-light .char-delete,.monaco-editor.hc-light .line-delete{border-style:dashed}.monaco-diff-editor .gutter-insert,.monaco-editor .gutter-insert,.monaco-editor .inline-added-margin-view-zone{background-color:var(--vscode-diffEditorGutter-insertedLineBackground, var(--vscode-diffEditor-insertedLineBackground), var(--vscode-diffEditor-insertedTextBackground))}.monaco-diff-editor .char-delete,.monaco-editor .char-delete{background-color:var(--vscode-diffEditor-removedTextBackground)}.monaco-diff-editor .line-delete,.monaco-editor .line-delete{background-color:var(--vscode-diffEditor-removedLineBackground, var(--vscode-diffEditor-removedTextBackground))}.monaco-diff-editor .gutter-delete,.monaco-editor .gutter-delete,.monaco-editor .inline-deleted-margin-view-zone{background-color:var(--vscode-diffEditorGutter-removedLineBackground, var(--vscode-diffEditor-removedLineBackground), var(--vscode-diffEditor-removedTextBackground))}.monaco-diff-editor.side-by-side .editor.modified{box-shadow:-6px 0 5px -5px var(--vscode-scrollbar-shadow);border-left:1px solid var(--vscode-diffEditor-border)}.monaco-diff-editor .diffViewport{background:var(--vscode-scrollbarSlider-background)}.monaco-diff-editor .diffViewport:hover{background:var(--vscode-scrollbarSlider-hoverBackground)}.monaco-diff-editor .diffViewport:active{background:var(--vscode-scrollbarSlider-activeBackground)}.monaco-editor .diagonal-fill{background-image:linear-gradient(-45deg, var(--vscode-diffEditor-diagonalFill) 12.5%, transparent 0, transparent 50%, var(--vscode-diffEditor-diagonalFill) 0, var(--vscode-diffEditor-diagonalFill) 62.5%, transparent 0, transparent);background-size:8px 8px}::-ms-clear{display:none}.monaco-editor .editor-widget input{color:inherit}.monaco-editor{position:relative;overflow:visible;-webkit-text-size-adjust:100%;color:var(--vscode-editor-foreground)}.monaco-editor,.monaco-editor-background{background-color:var(--vscode-editor-background)}.monaco-editor .rangeHighlight{background-color:var(--vscode-editor-rangeHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-rangeHighlightBorder)}.monaco-editor.hc-black .rangeHighlight,.monaco-editor.hc-light .rangeHighlight{border-style:dotted}.monaco-editor .symbolHighlight{background-color:var(--vscode-editor-symbolHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-symbolHighlightBorder)}.monaco-editor.hc-black .symbolHighlight,.monaco-editor.hc-light .symbolHighlight{border-style:dotted}.monaco-editor .overflow-guard{position:relative;overflow:hidden}.monaco-editor .view-overlays{position:absolute;top:0}.monaco-editor .squiggly-error{border-bottom:4px double var(--vscode-editorError-border)}.monaco-editor .squiggly-error:before{display:block;content:\"\";width:100%;height:100%;background:var(--vscode-editorError-background)}.monaco-editor .squiggly-warning{border-bottom:4px double var(--vscode-editorWarning-border)}.monaco-editor .squiggly-warning:before{display:block;content:\"\";width:100%;height:100%;background:var(--vscode-editorWarning-background)}.monaco-editor .squiggly-info{border-bottom:4px double var(--vscode-editorInfo-border)}.monaco-editor .squiggly-info:before{display:block;content:\"\";width:100%;height:100%;background:var(--vscode-editorInfo-background)}.monaco-editor .squiggly-hint{border-bottom:2px dotted var(--vscode-editorHint-border)}.monaco-editor.showUnused .squiggly-unnecessary{border-bottom:2px dashed var(--vscode-editorUnnecessaryCode-border)}.monaco-editor.showDeprecated .squiggly-inline-deprecated{text-decoration:line-through;text-decoration-color:var(--vscode-editor-foreground, inherit)}.monaco-component .multiDiffEntry{display:flex;flex-direction:column}.monaco-component .multiDiffEntry .editorParent{border-left:2px solid var(--vscode-tab-inactiveBackground)}.monaco-component .multiDiffEntry.focused .editorParent{border-left:2px solid var(--vscode-notebook-focusedCellBorder)}.monaco-component .multiDiffEntry .editorParent .editorContainer{border-left:17px solid var(--vscode-tab-inactiveBackground)}.monaco-component .multiDiffEntry .collapse-button{margin:0 5px;cursor:pointer}.monaco-component .multiDiffEntry .collapse-button a{display:block}.monaco-component .multiDiffEntry .header{display:flex;align-items:center;padding:8px 5px;color:var(--vscode-foreground);background:var(--vscode-editor-background);z-index:1000;border-bottom:1px solid var(--vscode-sideBarSectionHeader-border);border-top:1px solid var(--vscode-sideBarSectionHeader-border);border-left:2px solid var(--vscode-editor-background)}.monaco-component .multiDiffEntry.focused .header{border-left:2px solid var(--vscode-notebook-focusedCellBorder)}.monaco-component .multiDiffEntry .header.shadow{box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px}.monaco-component .multiDiffEntry .header .title{flex:1;font-size:14px;line-height:22px}.monaco-component .multiDiffEntry .header .actions{padding:0 8px}.monaco-editor .selection-anchor{background-color:#007acc;width:2px !important}.monaco-editor .bracket-match{box-sizing:border-box;background-color:var(--vscode-editorBracketMatch-background);border:1px solid var(--vscode-editorBracketMatch-border)}.monaco-editor .lightBulbWidget{display:flex;align-items:center;justify-content:center}.monaco-editor .lightBulbWidget:hover{cursor:pointer}.monaco-editor .lightBulbWidget.codicon-light-bulb,.monaco-editor .lightBulbWidget.codicon-lightbulb-sparkle{color:var(--vscode-editorLightBulb-foreground)}.monaco-editor .lightBulbWidget.codicon-lightbulb-autofix,.monaco-editor .lightBulbWidget.codicon-lightbulb-sparkle-autofix{color:var(--vscode-editorLightBulbAutoFix-foreground, var(--vscode-editorLightBulb-foreground))}.monaco-editor .lightBulbWidget.codicon-sparkle-filled{color:var(--vscode-editorLightBulbAi-foreground, var(--vscode-icon-foreground))}.monaco-editor .lightBulbWidget:before{position:relative;z-index:2}.monaco-editor .lightBulbWidget:after{position:absolute;top:0;left:0;content:\"\";display:block;width:100%;height:100%;opacity:0.3;background-color:var(--vscode-editor-background);z-index:1}.monaco-editor .codelens-decoration{overflow:hidden;display:inline-block;text-overflow:ellipsis;white-space:nowrap;color:var(--vscode-editorCodeLens-foreground);line-height:var(--vscode-editorCodeLens-lineHeight);font-size:var(--vscode-editorCodeLens-fontSize);padding-right:calc(var(--vscode-editorCodeLens-fontSize) * 0.5);font-feature-settings:var(--vscode-editorCodeLens-fontFeatureSettings);font-family:var(--vscode-editorCodeLens-fontFamily), var(--vscode-editorCodeLens-fontFamilyDefault)}.monaco-editor .codelens-decoration>a,.monaco-editor .codelens-decoration>span{user-select:none;-webkit-user-select:none;white-space:nowrap;vertical-align:sub}.monaco-editor .codelens-decoration>a{text-decoration:none}.monaco-editor .codelens-decoration>a:hover{cursor:pointer}.monaco-editor .codelens-decoration>a:hover,.monaco-editor .codelens-decoration>a:hover .codicon{color:var(--vscode-editorLink-activeForeground) !important}.monaco-editor .codelens-decoration .codicon{vertical-align:middle;color:currentColor !important;color:var(--vscode-editorCodeLens-foreground);line-height:var(--vscode-editorCodeLens-lineHeight);font-size:var(--vscode-editorCodeLens-fontSize)}.monaco-editor .codelens-decoration>a:hover .codicon:before{cursor:pointer}@keyframes fadein{0%{opacity:0;visibility:visible}to{opacity:1}}.monaco-editor .codelens-decoration.fadein{animation:fadein 0.1s linear}.colorpicker-widget{height:190px;user-select:none;-webkit-user-select:none}.colorpicker-color-decoration,.hc-light .colorpicker-color-decoration{border:0.1em solid #000;box-sizing:border-box;margin:0.1em 0.2em 0;width:0.8em;height:0.8em;line-height:0.8em;display:inline-block;cursor:pointer}.hc-black .colorpicker-color-decoration,.vs-dark .colorpicker-color-decoration{border:0.1em solid #eee}.colorpicker-header{display:flex;height:24px;position:relative;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=);background-size:9px 9px;image-rendering:pixelated}.colorpicker-header .picked-color{width:240px;display:flex;align-items:center;justify-content:center;line-height:24px;cursor:pointer;color:#fff;flex:1;white-space:nowrap;overflow:hidden}.colorpicker-header .picked-color .picked-color-presentation{white-space:nowrap;margin-left:5px;margin-right:5px}.colorpicker-header .picked-color .codicon{color:inherit;font-size:14px}.colorpicker-header .picked-color.light{color:#000}.colorpicker-header .original-color{width:74px;z-index:inherit;cursor:pointer}.standalone-colorpicker{color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.colorpicker-header.standalone-colorpicker{border-bottom:none}.colorpicker-header .close-button{cursor:pointer;background-color:var(--vscode-editorHoverWidget-background);border-left:1px solid var(--vscode-editorHoverWidget-border)}.colorpicker-header .close-button-inner-div{width:100%;height:100%;text-align:center}.colorpicker-header .close-button-inner-div:hover{background-color:var(--vscode-toolbar-hoverBackground)}.colorpicker-header .close-icon{padding:3px}.colorpicker-body{display:flex;padding:8px;position:relative}.colorpicker-body .saturation-wrap{overflow:hidden;height:150px;position:relative;min-width:220px;flex:1}.colorpicker-body .saturation-box{height:150px;position:absolute}.colorpicker-body .saturation-selection{width:9px;height:9px;margin:-5px 0 0 -5px;border:1px solid #fff;border-radius:100%;box-shadow:0 0 2px rgba(0, 0, 0, 0.8);position:absolute}.colorpicker-body .strip{width:25px;height:150px}.colorpicker-body .standalone-strip{width:25px;height:122px}.colorpicker-body .hue-strip{position:relative;margin-left:8px;cursor:grab;background:linear-gradient(180deg, red 0, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, red)}.colorpicker-body .opacity-strip{position:relative;margin-left:8px;cursor:grab;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=);background-size:9px 9px;image-rendering:pixelated}.colorpicker-body .strip.grabbing{cursor:grabbing}.colorpicker-body .slider{position:absolute;top:0;left:-2px;width:calc(100% + 4px);height:4px;box-sizing:border-box;border:1px solid hsla(0, 0%, 100%, 0.71);box-shadow:0 0 1px rgba(0, 0, 0, 0.85)}.colorpicker-body .strip .overlay{height:150px;pointer-events:none}.colorpicker-body .standalone-strip .standalone-overlay{height:122px;pointer-events:none}.standalone-colorpicker-body{display:block;border:1px solid transparent;border-bottom:1px solid var(--vscode-editorHoverWidget-border);overflow:hidden}.colorpicker-body .insert-button{position:absolute;height:20px;width:58px;padding:0;right:8px;bottom:8px;background:var(--vscode-button-background);color:var(--vscode-button-foreground);border-radius:2px;border:none;cursor:pointer}.colorpicker-body .insert-button:hover{background:var(--vscode-button-hoverBackground)}.monaco-editor.hc-light .dnd-target,.monaco-editor.vs .dnd-target{border-right:2px dotted #000;color:#fff}.monaco-editor.vs-dark .dnd-target{border-right:2px dotted #aeafad;color:#51504f}.monaco-editor.hc-black .dnd-target{border-right:2px dotted #fff;color:#000}.monaco-editor.hc-black.mac.mouse-default .view-lines,.monaco-editor.hc-light.mac.mouse-default .view-lines,.monaco-editor.mouse-default .view-lines,.monaco-editor.vs-dark.mac.mouse-default .view-lines{cursor:default}.monaco-editor.hc-black.mac.mouse-copy .view-lines,.monaco-editor.hc-light.mac.mouse-copy .view-lines,.monaco-editor.mouse-copy .view-lines,.monaco-editor.vs-dark.mac.mouse-copy .view-lines{cursor:copy}.post-edit-widget{box-shadow:0 0 8px 2px var(--vscode-widget-shadow);border:1px solid var(--vscode-widget-border, transparent);border-radius:4px;background-color:var(--vscode-editorWidget-background);overflow:hidden}.post-edit-widget .monaco-button{padding:2px;border:none;border-radius:0}.post-edit-widget .monaco-button:hover{background-color:var(--vscode-button-secondaryHoverBackground) !important}.post-edit-widget .monaco-button .codicon{margin:0}.monaco-editor .findOptionsWidget{background-color:var(--vscode-editorWidget-background);color:var(--vscode-editorWidget-foreground);box-shadow:0 0 8px 2px var(--vscode-widget-shadow);border:2px solid var(--vscode-contrastBorder)}.monaco-editor .find-widget{position:absolute;z-index:35;height:33px;overflow:hidden;line-height:19px;transition:transform 0.2s linear;padding:0 4px;box-sizing:border-box;transform:translateY(calc(-100% - 10px));border-bottom-left-radius:4px;border-bottom-right-radius:4px}.monaco-workbench.reduce-motion .monaco-editor .find-widget{transition:transform 0ms linear}.monaco-editor .find-widget textarea{margin:0}.monaco-editor .find-widget.hiddenEditor{display:none}.monaco-editor .find-widget.replaceToggled>.replace-part{display:flex}.monaco-editor .find-widget.visible{transform:translateY(0)}.monaco-editor .find-widget .monaco-inputbox.synthetic-focus{outline:1px solid -webkit-focus-ring-color;outline-offset:-1px}.monaco-editor .find-widget .monaco-inputbox .input{background-color:transparent;min-height:0}.monaco-editor .find-widget .monaco-findInput .input{font-size:13px}.monaco-editor .find-widget>.find-part,.monaco-editor .find-widget>.replace-part{margin:3px 25px 0 17px;font-size:12px;display:flex}.monaco-editor .find-widget>.find-part .monaco-inputbox,.monaco-editor .find-widget>.replace-part .monaco-inputbox{min-height:25px}.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.mirror{padding-right:22px}.monaco-editor .find-widget>.find-part .monaco-inputbox>.ibwrapper>.input,.monaco-editor .find-widget>.find-part .monaco-inputbox>.ibwrapper>.mirror,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.input,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.mirror{padding-top:2px;padding-bottom:2px}.monaco-editor .find-widget>.find-part .find-actions,.monaco-editor .find-widget>.replace-part .replace-actions{height:25px;display:flex;align-items:center}.monaco-editor .find-widget .monaco-findInput{vertical-align:middle;display:flex;flex:1}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element{width:100%}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element .scrollbar.vertical{opacity:0}.monaco-editor .find-widget .matchesCount{display:flex;flex:initial;margin:0 0 0 3px;padding:2px 0 0 2px;height:25px;vertical-align:middle;box-sizing:border-box;text-align:center;line-height:23px}.monaco-editor .find-widget .button{width:16px;height:16px;padding:3px;border-radius:5px;flex:initial;margin-left:3px;background-position:50%;background-repeat:no-repeat;cursor:pointer;display:flex;align-items:center;justify-content:center}.monaco-editor .find-widget .codicon-find-selection{width:22px;height:22px;padding:3px;border-radius:5px}.monaco-editor .find-widget .button.left{margin-left:0;margin-right:3px}.monaco-editor .find-widget .button.wide{width:auto;padding:1px 6px;top:-1px}.monaco-editor .find-widget .button.toggle{position:absolute;top:0;left:3px;width:18px;height:100%;border-radius:0;box-sizing:border-box}.monaco-editor .find-widget .button.toggle.disabled{display:none}.monaco-editor .find-widget .disabled{color:var(--vscode-disabledForeground);cursor:default}.monaco-editor .find-widget>.replace-part{display:none}.monaco-editor .find-widget>.replace-part>.monaco-findInput{position:relative;display:flex;vertical-align:middle;flex:auto;flex-grow:0;flex-shrink:0}.monaco-editor .find-widget>.replace-part>.monaco-findInput>.controls{position:absolute;top:3px;right:2px}.monaco-editor .find-widget.reduced-find-widget .matchesCount{display:none}.monaco-editor .find-widget.narrow-find-widget{max-width:257px !important}.monaco-editor .find-widget.collapsed-find-widget{max-width:170px !important}.monaco-editor .find-widget.collapsed-find-widget .button.next,.monaco-editor .find-widget.collapsed-find-widget .button.previous,.monaco-editor .find-widget.collapsed-find-widget .button.replace,.monaco-editor .find-widget.collapsed-find-widget .button.replace-all,.monaco-editor .find-widget.collapsed-find-widget>.find-part .monaco-findInput .controls{display:none}.monaco-editor .findMatch{animation-duration:0;animation-name:inherit !important}.monaco-editor .find-widget .monaco-sash{left:0 !important}.monaco-editor.hc-black .find-widget .button:before{position:relative;top:1px;left:2px}.monaco-editor .find-widget>.button.codicon-widget-close{position:absolute;top:5px;right:4px}.monaco-editor .margin-view-overlays .codicon-folding-collapsed,.monaco-editor .margin-view-overlays .codicon-folding-expanded,.monaco-editor .margin-view-overlays .codicon-folding-manual-collapsed,.monaco-editor .margin-view-overlays .codicon-folding-manual-expanded{cursor:pointer;opacity:0;transition:opacity 0.5s;display:flex;align-items:center;justify-content:center;font-size:140%;margin-left:2px}.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-collapsed,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-expanded,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-manual-collapsed,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-manual-expanded{transition:initial}.monaco-editor .margin-view-overlays .codicon.alwaysShowFoldIcons,.monaco-editor .margin-view-overlays .codicon.codicon-folding-collapsed,.monaco-editor .margin-view-overlays .codicon.codicon-folding-manual-collapsed,.monaco-editor .margin-view-overlays:hover .codicon{opacity:1}.monaco-editor .inline-folded:after{color:grey;margin:0.1em 0.2em 0;content:\"⋯\";display:inline;line-height:1em;cursor:pointer}.monaco-editor .folded-background{background-color:var(--vscode-editor-foldBackground)}.monaco-editor .cldr.codicon.codicon-folding-collapsed,.monaco-editor .cldr.codicon.codicon-folding-expanded,.monaco-editor .cldr.codicon.codicon-folding-manual-collapsed,.monaco-editor .cldr.codicon.codicon-folding-manual-expanded{color:var(--vscode-editorGutter-foldingControlForeground) !important}.monaco-editor .peekview-widget .head .peekview-title .severity-icon{display:inline-block;vertical-align:text-top;margin-right:4px}.monaco-editor .marker-widget{text-overflow:ellipsis;white-space:nowrap}.monaco-editor .marker-widget>.stale{opacity:0.6;font-style:italic}.monaco-editor .marker-widget .title{display:inline-block;padding-right:5px}.monaco-editor .marker-widget .descriptioncontainer{position:absolute;white-space:pre;user-select:text;-webkit-user-select:text;padding:8px 12px 0 20px}.monaco-editor .marker-widget .descriptioncontainer .message{display:flex;flex-direction:column}.monaco-editor .marker-widget .descriptioncontainer .message .details{padding-left:6px}.monaco-editor .marker-widget .descriptioncontainer .message .source,.monaco-editor .marker-widget .descriptioncontainer .message span.code{opacity:0.6}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link{opacity:0.6;color:inherit}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:before{content:\"(\"}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:after{content:\")\"}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link>span{text-decoration:underline;border-bottom:1px solid transparent;text-underline-position:under;color:var(--vscode-textLink-foreground);color:var(--vscode-textLink-activeForeground)}.monaco-editor .marker-widget .descriptioncontainer .filename{cursor:pointer}.monaco-editor .goto-definition-link{text-decoration:underline;cursor:pointer;color:var(--vscode-editorLink-activeForeground) !important}.monaco-editor .zone-widget .zone-widget-container.reference-zone-widget{border-top-width:1px;border-bottom-width:1px}.monaco-editor .reference-zone-widget .inline{display:inline-block;vertical-align:top}.monaco-editor .reference-zone-widget .messages{height:100%;width:100%;text-align:center;padding:3em 0}.monaco-editor .reference-zone-widget .ref-tree{line-height:23px;background-color:var(--vscode-peekViewResult-background);color:var(--vscode-peekViewResult-lineForeground)}.monaco-editor .reference-zone-widget .ref-tree .reference{text-overflow:ellipsis;overflow:hidden}.monaco-editor .reference-zone-widget .ref-tree .reference-file{display:inline-flex;width:100%;height:100%;color:var(--vscode-peekViewResult-fileForeground)}.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .selected .reference-file{color:inherit !important}.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .monaco-list-rows>.monaco-list-row.selected:not(.highlighted){background-color:var(--vscode-peekViewResult-selectionBackground);color:var(--vscode-peekViewResult-selectionForeground) !important}.monaco-editor .reference-zone-widget .ref-tree .reference-file .count{margin-right:12px;margin-left:auto}.monaco-editor .reference-zone-widget .ref-tree .referenceMatch .highlight{background-color:var(--vscode-peekViewResult-matchHighlightBackground)}.monaco-editor .reference-zone-widget .preview .reference-decoration{background-color:var(--vscode-peekViewEditor-matchHighlightBackground);border:2px solid var(--vscode-peekViewEditor-matchHighlightBorder);box-sizing:border-box}.monaco-editor .reference-zone-widget .preview .monaco-editor .inputarea.ime-input,.monaco-editor .reference-zone-widget .preview .monaco-editor .monaco-editor-background{background-color:var(--vscode-peekViewEditor-background)}.monaco-editor .reference-zone-widget .preview .monaco-editor .margin{background-color:var(--vscode-peekViewEditorGutter-background)}.monaco-editor.hc-black .reference-zone-widget .ref-tree .reference-file,.monaco-editor.hc-light .reference-zone-widget .ref-tree .reference-file{font-weight:700}.monaco-editor.hc-black .reference-zone-widget .ref-tree .referenceMatch .highlight,.monaco-editor.hc-light .reference-zone-widget .ref-tree .referenceMatch .highlight{border:1px dotted var(--vscode-contrastActiveBorder, transparent);box-sizing:border-box}.monaco-editor .hoverHighlight{background-color:var(--vscode-editor-hoverHighlightBackground)}.monaco-editor .monaco-hover{color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);border-radius:3px}.monaco-editor .monaco-hover a{color:var(--vscode-textLink-foreground)}.monaco-editor .monaco-hover a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor .monaco-hover .hover-row .actions{background-color:var(--vscode-editorHoverWidget-statusBarBackground)}.monaco-editor .monaco-hover code{background-color:var(--vscode-textCodeBlock-background)}.monaco-editor.vs .valueSetReplacement{outline:solid 2px var(--vscode-editorBracketMatch-border)}.monaco-editor .suggest-preview-additional-widget{white-space:nowrap}.monaco-editor .suggest-preview-additional-widget .content-spacer{color:transparent;white-space:pre}.monaco-editor .suggest-preview-additional-widget .button{display:inline-block;cursor:pointer;text-decoration:underline;text-underline-position:under}.monaco-editor .ghost-text-hidden{opacity:0;font-size:0}.monaco-editor .ghost-text-decoration,.monaco-editor .suggest-preview-text .ghost-text{font-style:italic}.monaco-editor .inline-completion-text-to-replace{text-decoration:underline;text-underline-position:under}.monaco-editor .ghost-text-decoration,.monaco-editor .ghost-text-decoration-preview,.monaco-editor .suggest-preview-text .ghost-text{color:var(--vscode-editorGhostText-foreground) !important;background-color:var(--vscode-editorGhostText-background);border:1px solid var(--vscode-editorGhostText-border)}.monaco-editor .inlineSuggestionsHints.withBorder{z-index:39;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor .inlineSuggestionsHints a,.monaco-editor .inlineSuggestionsHints a:hover{color:var(--vscode-foreground)}.monaco-editor .inlineSuggestionsHints .keybinding{display:flex;margin-left:4px;opacity:0.6}.monaco-editor .inlineSuggestionsHints .keybinding .monaco-keybinding-key{font-size:8px;padding:2px 3px}.monaco-editor .inlineSuggestionsHints .availableSuggestionCount a{display:flex;min-width:19px;justify-content:center}.monaco-editor .inlineSuggestionStatusBarItemLabel{margin-right:2px}.inline-editor-progress-decoration{display:inline-block;width:1em;height:1em}.inline-progress-widget{display:flex !important;justify-content:center;align-items:center}.inline-progress-widget .icon{font-size:80% !important}.inline-progress-widget:hover .icon{font-size:90% !important;animation:none}.inline-progress-widget:hover .icon:before{content:\"\\ea76\"}.monaco-editor .linked-editing-decoration{background-color:var(--vscode-editor-linkedEditingBackground);min-width:1px}.monaco-editor .detected-link,.monaco-editor .detected-link-active{text-decoration:underline;text-underline-position:under}.monaco-editor .detected-link-active{cursor:pointer;color:var(--vscode-editorLink-activeForeground) !important}.monaco-editor .rendered-markdown kbd{background-color:var(--vscode-keybindingLabel-background);color:var(--vscode-keybindingLabel-foreground);border-radius:3px;border:1px solid var(--vscode-keybindingLabel-border);border-bottom-color:var(--vscode-keybindingLabel-bottomBorder);box-shadow:inset 0 -1px 0 var(--vscode-widget-shadow);vertical-align:middle;padding:1px 3px}.monaco-editor .monaco-editor-overlaymessage{padding-bottom:8px;z-index:10000}.monaco-editor .monaco-editor-overlaymessage.below{padding-bottom:0;padding-top:8px;z-index:10000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.monaco-editor .monaco-editor-overlaymessage.fadeIn{animation:fadeIn 0.15s ease-out}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.monaco-editor .monaco-editor-overlaymessage.fadeOut{animation:fadeOut 0.1s ease-out}.monaco-editor .monaco-editor-overlaymessage .message{padding:2px 4px;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-inputValidation-infoBorder);border-radius:3px}.monaco-editor .monaco-editor-overlaymessage .message p{margin-block:0}.monaco-editor .monaco-editor-overlaymessage .message a{color:var(--vscode-textLink-foreground)}.monaco-editor .monaco-editor-overlaymessage .message a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor.hc-black .monaco-editor-overlaymessage .message,.monaco-editor.hc-light .monaco-editor-overlaymessage .message{border-width:2px}.monaco-editor .monaco-editor-overlaymessage .anchor{width:0 !important;height:0 !important;z-index:1000;border:8px solid transparent;position:absolute;left:2px}.monaco-editor .monaco-editor-overlaymessage .anchor.top{border-bottom-color:var(--vscode-inputValidation-infoBorder)}.monaco-editor .monaco-editor-overlaymessage .anchor.below{border-top-color:var(--vscode-inputValidation-infoBorder)}.monaco-editor .monaco-editor-overlaymessage.below .anchor.below,.monaco-editor .monaco-editor-overlaymessage:not(.below) .anchor.top{display:none}.monaco-editor .monaco-editor-overlaymessage.below .anchor.top{display:inherit;top:-8px}.monaco-editor .parameter-hints-widget{z-index:39;display:flex;flex-direction:column;line-height:1.5em;cursor:default;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.hc-black .monaco-editor .parameter-hints-widget,.hc-light .monaco-editor .parameter-hints-widget{border-width:2px}.monaco-editor .parameter-hints-widget>.phwrapper{max-width:440px;display:flex;flex-direction:row}.monaco-editor .parameter-hints-widget.multiple{min-height:3.3em;padding:0}.monaco-editor .parameter-hints-widget.multiple .body:before{content:\"\";display:block;height:100%;position:absolute;opacity:0.5;border-left:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor .parameter-hints-widget p,.monaco-editor .parameter-hints-widget ul{margin:8px 0}.monaco-editor .parameter-hints-widget .body,.monaco-editor .parameter-hints-widget .monaco-scrollable-element{display:flex;flex:1;flex-direction:column;min-height:100%}.monaco-editor .parameter-hints-widget .signature{padding:4px 5px;position:relative}.monaco-editor .parameter-hints-widget .signature.has-docs:after{content:\"\";display:block;position:absolute;left:0;width:100%;padding-top:4px;opacity:0.5;border-bottom:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor .parameter-hints-widget .docs{padding:0 10px 0 5px;white-space:pre-wrap}.monaco-editor .parameter-hints-widget .docs.empty{display:none}.monaco-editor .parameter-hints-widget .docs a{color:var(--vscode-textLink-foreground)}.monaco-editor .parameter-hints-widget .docs a:hover{color:var(--vscode-textLink-activeForeground);cursor:pointer}.monaco-editor .parameter-hints-widget .docs .markdown-docs{white-space:normal}.monaco-editor .parameter-hints-widget .docs code{font-family:var(--monaco-monospace-font);border-radius:3px;padding:0 0.4em;background-color:var(--vscode-textCodeBlock-background)}.monaco-editor .parameter-hints-widget .docs .code,.monaco-editor .parameter-hints-widget .docs .monaco-tokenized-source{white-space:pre-wrap}.monaco-editor .parameter-hints-widget .controls{display:none;flex-direction:column;align-items:center;min-width:22px;justify-content:flex-end}.monaco-editor .parameter-hints-widget.multiple .controls{display:flex;padding:0 2px}.monaco-editor .parameter-hints-widget.multiple .button{width:16px;height:16px;background-repeat:no-repeat;cursor:pointer}.monaco-editor .parameter-hints-widget .button.previous{bottom:24px}.monaco-editor .parameter-hints-widget .overloads{text-align:center;height:12px;line-height:12px;font-family:var(--monaco-monospace-font)}.monaco-editor .parameter-hints-widget .signature .parameter.active{color:var(--vscode-editorHoverWidget-highlightForeground);font-weight:700}.monaco-editor .parameter-hints-widget .documentation-parameter>.parameter{font-weight:700;margin-right:0.5em}.monaco-editor .peekview-widget .head{box-sizing:border-box;display:flex;justify-content:space-between;flex-wrap:nowrap}.monaco-editor .peekview-widget .head .peekview-title{display:flex;align-items:baseline;font-size:13px;margin-left:20px;min-width:0;text-overflow:ellipsis;overflow:hidden}.monaco-editor .peekview-widget .head .peekview-title.clickable{cursor:pointer}.monaco-editor .peekview-widget .head .peekview-title .dirname:not(:empty){font-size:0.9em;margin-left:0.5em}.monaco-editor .peekview-widget .head .peekview-title .dirname,.monaco-editor .peekview-widget .head .peekview-title .filename,.monaco-editor .peekview-widget .head .peekview-title .meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.monaco-editor .peekview-widget .head .peekview-title .meta:not(:empty):before{content:\"-\";padding:0 0.3em}.monaco-editor .peekview-widget .head .peekview-actions{flex:1;text-align:right;padding-right:2px}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar{display:inline-block}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar,.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar>.actions-container{height:100%}.monaco-editor .peekview-widget>.body{border-top:1px solid;position:relative}.monaco-editor .peekview-widget .head .peekview-title .codicon{margin-right:4px;align-self:center}.monaco-editor .peekview-widget .monaco-list .monaco-list-row.focused .codicon{color:inherit !important}.monaco-editor .rename-box{z-index:100;color:inherit;border-radius:4px}.monaco-editor .rename-box.preview{padding:4px 4px 0}.monaco-editor .rename-box .rename-input{padding:3px;border-radius:2px}.monaco-editor .rename-box .rename-label{display:none;opacity:0.8}.monaco-editor .rename-box.preview .rename-label{display:inherit}.monaco-editor .snippet-placeholder{min-width:2px;outline-style:solid;outline-width:1px;background-color:var(--vscode-editor-snippetTabstopHighlightBackground, transparent);outline-color:var(--vscode-editor-snippetTabstopHighlightBorder, transparent)}.monaco-editor .finish-snippet-placeholder{outline-style:solid;outline-width:1px;background-color:var(--vscode-editor-snippetFinalTabstopHighlightBackground, transparent);outline-color:var(--vscode-editor-snippetFinalTabstopHighlightBorder, transparent)}.monaco-editor .sticky-widget{overflow:hidden}.monaco-editor .sticky-widget-line-numbers{float:left;background-color:inherit}.monaco-editor .sticky-widget-lines-scrollable{display:inline-block;position:absolute;overflow:hidden;width:var(--vscode-editorStickyScroll-scrollableWidth);background-color:inherit}.monaco-editor .sticky-widget-lines{position:absolute;background-color:inherit}.monaco-editor .sticky-line-content,.monaco-editor .sticky-line-number{color:var(--vscode-editorLineNumber-foreground);white-space:nowrap;display:inline-block;position:absolute;background-color:inherit}.monaco-editor .sticky-line-number .codicon-folding-collapsed,.monaco-editor .sticky-line-number .codicon-folding-expanded{float:right;transition:var(--vscode-editorStickyScroll-foldingOpacityTransition)}.monaco-editor .sticky-line-content{width:var(--vscode-editorStickyScroll-scrollableWidth);background-color:inherit;white-space:nowrap}.monaco-editor .sticky-line-number-inner{display:inline-block;text-align:right}.monaco-editor.hc-black .sticky-widget,.monaco-editor.hc-light .sticky-widget{border-bottom:1px solid var(--vscode-contrastBorder)}.monaco-editor .sticky-line-content:hover{background-color:var(--vscode-editorStickyScrollHover-background);cursor:pointer}.monaco-editor .sticky-widget{width:100%;box-shadow:var(--vscode-scrollbar-shadow) 0 3px 2px -2px;z-index:4;background-color:var(--vscode-editorStickyScroll-background)}.monaco-editor .sticky-widget.peek{background-color:var(--vscode-peekViewEditorStickyScroll-background)}.monaco-editor .suggest-widget{width:430px;z-index:40;display:flex;flex-direction:column;border-radius:3px}.monaco-editor .suggest-widget.message{flex-direction:row;align-items:center}.monaco-editor .suggest-details,.monaco-editor .suggest-widget{flex:0 1 auto;width:100%;border:1px solid var(--vscode-editorSuggestWidget-border);background-color:var(--vscode-editorSuggestWidget-background)}.monaco-editor.hc-black .suggest-details,.monaco-editor.hc-black .suggest-widget,.monaco-editor.hc-light .suggest-details,.monaco-editor.hc-light .suggest-widget{border-width:2px}.monaco-editor .suggest-widget .suggest-status-bar{box-sizing:border-box;display:none;flex-flow:row nowrap;justify-content:space-between;width:100%;font-size:80%;padding:0 4px;border-top:1px solid var(--vscode-editorSuggestWidget-border);overflow:hidden}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar{display:flex}.monaco-editor .suggest-widget .suggest-status-bar .left{padding-right:8px}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-label{color:var(--vscode-editorSuggestWidgetStatus-foreground)}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label{margin-right:0}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label:after{content:\", \";margin-right:0.3em}.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore,.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:none}.monaco-editor .suggest-widget.with-status-bar:not(.docs-side) .monaco-list .monaco-list-row:hover>.contents>.main>.right.can-expand-details>.details-label{width:100%}.monaco-editor .suggest-widget>.message{padding-left:22px}.monaco-editor .suggest-widget>.tree{height:100%;width:100%}.monaco-editor .suggest-widget .monaco-list{user-select:none;-webkit-user-select:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row{display:flex;-mox-box-sizing:border-box;box-sizing:border-box;padding-right:10px;background-repeat:no-repeat;background-position:2px 2px;white-space:nowrap;cursor:pointer;touch-action:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused{color:var(--vscode-editorSuggestWidget-selectedForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused .codicon{color:var(--vscode-editorSuggestWidget-selectedIconForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents{flex:1;height:100%;overflow:hidden;padding-left:2px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main{display:flex;overflow:hidden;text-overflow:ellipsis;white-space:pre;justify-content:space-between}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right{display:flex}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.focused)>.contents>.main .monaco-icon-label{color:var(--vscode-editorSuggestWidget-foreground)}.monaco-editor .suggest-widget:not(.frozen) .monaco-highlighted-label .highlight{font-weight:700}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main .monaco-highlighted-label .highlight{color:var(--vscode-editorSuggestWidget-highlightForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused>.contents>.main .monaco-highlighted-label .highlight{color:var(--vscode-editorSuggestWidget-focusHighlightForeground)}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:before{color:inherit;opacity:1;font-size:14px;cursor:pointer}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close{position:absolute;top:6px;right:2px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close:hover,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:hover{opacity:1}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{opacity:0.7}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.signature-label{overflow:hidden;text-overflow:ellipsis;opacity:0.6}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.qualifier-label{margin-left:12px;opacity:0.4;font-size:85%;line-height:normal;text-overflow:ellipsis;overflow:hidden;align-self:center}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{font-size:85%;margin-left:1.1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label>.monaco-tokenized-source{display:inline}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{display:none}.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row.focused:not(.string-label)>.contents>.main>.right>.details-label,.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.right>.details-label,.monaco-editor .suggest-widget:not(.shows-details) .monaco-list .monaco-list-row.focused>.contents>.main>.right>.details-label{display:inline}.monaco-editor .suggest-widget:not(.docs-side) .monaco-list .monaco-list-row.focused:hover>.contents>.main>.right.can-expand-details>.details-label{width:calc(100% - 26px)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left{flex-shrink:1;flex-grow:1;overflow:hidden}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.monaco-icon-label{flex-shrink:0}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.left>.monaco-icon-label{max-width:100%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.left>.monaco-icon-label{flex-shrink:1}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right{overflow:hidden;flex-shrink:4;max-width:70%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:inline-block;position:absolute;right:10px;width:18px;height:18px;visibility:hidden}.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:none !important}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.right>.readMore{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore{display:inline-block}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused:hover>.contents>.main>.right>.readMore{visibility:visible}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated{opacity:0.66;text-decoration:unset}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated>.monaco-icon-label-container>.monaco-icon-name-container{text-decoration:line-through}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label:before{height:100%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon{display:block;height:16px;width:16px;margin-left:2px;background-repeat:no-repeat;background-size:80%;background-position:50%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.hide{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .suggest-icon{display:flex;align-items:center;margin-right:4px}.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .icon,.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .suggest-icon:before{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.customcolor .colorspan{margin:0 0 0 0.3em;border:0.1em solid #000;width:0.7em;height:0.7em;display:inline-block}.monaco-editor .suggest-details-container{z-index:41}.monaco-editor .suggest-details{display:flex;flex-direction:column;cursor:default;color:var(--vscode-editorSuggestWidget-foreground)}.monaco-editor .suggest-details.focused{border-color:var(--vscode-focusBorder)}.monaco-editor .suggest-details a{color:var(--vscode-textLink-foreground)}.monaco-editor .suggest-details a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor .suggest-details code{background-color:var(--vscode-textCodeBlock-background)}.monaco-editor .suggest-details.no-docs{display:none}.monaco-editor .suggest-details>.monaco-scrollable-element{flex:1}.monaco-editor .suggest-details>.monaco-scrollable-element>.body{box-sizing:border-box;height:100%;width:100%}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type{flex:2;overflow:hidden;text-overflow:ellipsis;opacity:0.7;white-space:pre;margin:0 24px 0 0;padding:4px 0 12px 5px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type.auto-wrap{white-space:normal;word-break:break-all}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs{margin:0;padding:4px 5px;white-space:pre-wrap}.monaco-editor .suggest-details.no-type>.monaco-scrollable-element>.body>.docs{margin-right:24px;overflow:hidden}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs{padding:0;white-space:normal;min-height:calc(1rem + 8px)}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div,.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>span:not(:empty){padding:4px 5px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:first-child{margin-top:0}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:last-child{margin-bottom:0}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs .monaco-tokenized-source{white-space:pre}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs .code{white-space:pre-wrap;word-wrap:break-word}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs .codicon{vertical-align:sub}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>p:empty{display:none}.monaco-editor .suggest-details code{border-radius:3px;padding:0 0.4em}.monaco-editor .suggest-details ol,.monaco-editor .suggest-details ul{padding-left:20px}.monaco-editor .suggest-details p code{font-family:var(--monaco-monospace-font)}.monaco-editor .codicon.codicon-symbol-array,.monaco-workbench .codicon.codicon-symbol-array{color:var(--vscode-symbolIcon-arrayForeground)}.monaco-editor .codicon.codicon-symbol-boolean,.monaco-workbench .codicon.codicon-symbol-boolean{color:var(--vscode-symbolIcon-booleanForeground)}.monaco-editor .codicon.codicon-symbol-class,.monaco-workbench .codicon.codicon-symbol-class{color:var(--vscode-symbolIcon-classForeground)}.monaco-editor .codicon.codicon-symbol-method,.monaco-workbench .codicon.codicon-symbol-method{color:var(--vscode-symbolIcon-methodForeground)}.monaco-editor .codicon.codicon-symbol-color,.monaco-workbench .codicon.codicon-symbol-color{color:var(--vscode-symbolIcon-colorForeground)}.monaco-editor .codicon.codicon-symbol-constant,.monaco-workbench .codicon.codicon-symbol-constant{color:var(--vscode-symbolIcon-constantForeground)}.monaco-editor .codicon.codicon-symbol-constructor,.monaco-workbench .codicon.codicon-symbol-constructor{color:var(--vscode-symbolIcon-constructorForeground)}.monaco-editor .codicon.codicon-symbol-enum,.monaco-editor .codicon.codicon-symbol-value,.monaco-workbench .codicon.codicon-symbol-enum,.monaco-workbench .codicon.codicon-symbol-value{color:var(--vscode-symbolIcon-enumeratorForeground)}.monaco-editor .codicon.codicon-symbol-enum-member,.monaco-workbench .codicon.codicon-symbol-enum-member{color:var(--vscode-symbolIcon-enumeratorMemberForeground)}.monaco-editor .codicon.codicon-symbol-event,.monaco-workbench .codicon.codicon-symbol-event{color:var(--vscode-symbolIcon-eventForeground)}.monaco-editor .codicon.codicon-symbol-field,.monaco-workbench .codicon.codicon-symbol-field{color:var(--vscode-symbolIcon-fieldForeground)}.monaco-editor .codicon.codicon-symbol-file,.monaco-workbench .codicon.codicon-symbol-file{color:var(--vscode-symbolIcon-fileForeground)}.monaco-editor .codicon.codicon-symbol-folder,.monaco-workbench .codicon.codicon-symbol-folder{color:var(--vscode-symbolIcon-folderForeground)}.monaco-editor .codicon.codicon-symbol-function,.monaco-workbench .codicon.codicon-symbol-function{color:var(--vscode-symbolIcon-functionForeground)}.monaco-editor .codicon.codicon-symbol-interface,.monaco-workbench .codicon.codicon-symbol-interface{color:var(--vscode-symbolIcon-interfaceForeground)}.monaco-editor .codicon.codicon-symbol-key,.monaco-workbench .codicon.codicon-symbol-key{color:var(--vscode-symbolIcon-keyForeground)}.monaco-editor .codicon.codicon-symbol-keyword,.monaco-workbench .codicon.codicon-symbol-keyword{color:var(--vscode-symbolIcon-keywordForeground)}.monaco-editor .codicon.codicon-symbol-module,.monaco-workbench .codicon.codicon-symbol-module{color:var(--vscode-symbolIcon-moduleForeground)}.monaco-editor .codicon.codicon-symbol-namespace,.monaco-workbench .codicon.codicon-symbol-namespace{color:var(--vscode-symbolIcon-namespaceForeground)}.monaco-editor .codicon.codicon-symbol-null,.monaco-workbench .codicon.codicon-symbol-null{color:var(--vscode-symbolIcon-nullForeground)}.monaco-editor .codicon.codicon-symbol-number,.monaco-workbench .codicon.codicon-symbol-number{color:var(--vscode-symbolIcon-numberForeground)}.monaco-editor .codicon.codicon-symbol-object,.monaco-workbench .codicon.codicon-symbol-object{color:var(--vscode-symbolIcon-objectForeground)}.monaco-editor .codicon.codicon-symbol-operator,.monaco-workbench .codicon.codicon-symbol-operator{color:var(--vscode-symbolIcon-operatorForeground)}.monaco-editor .codicon.codicon-symbol-package,.monaco-workbench .codicon.codicon-symbol-package{color:var(--vscode-symbolIcon-packageForeground)}.monaco-editor .codicon.codicon-symbol-property,.monaco-workbench .codicon.codicon-symbol-property{color:var(--vscode-symbolIcon-propertyForeground)}.monaco-editor .codicon.codicon-symbol-reference,.monaco-workbench .codicon.codicon-symbol-reference{color:var(--vscode-symbolIcon-referenceForeground)}.monaco-editor .codicon.codicon-symbol-snippet,.monaco-workbench .codicon.codicon-symbol-snippet{color:var(--vscode-symbolIcon-snippetForeground)}.monaco-editor .codicon.codicon-symbol-string,.monaco-workbench .codicon.codicon-symbol-string{color:var(--vscode-symbolIcon-stringForeground)}.monaco-editor .codicon.codicon-symbol-struct,.monaco-workbench .codicon.codicon-symbol-struct{color:var(--vscode-symbolIcon-structForeground)}.monaco-editor .codicon.codicon-symbol-text,.monaco-workbench .codicon.codicon-symbol-text{color:var(--vscode-symbolIcon-textForeground)}.monaco-editor .codicon.codicon-symbol-type-parameter,.monaco-workbench .codicon.codicon-symbol-type-parameter{color:var(--vscode-symbolIcon-typeParameterForeground)}.monaco-editor .codicon.codicon-symbol-unit,.monaco-workbench .codicon.codicon-symbol-unit{color:var(--vscode-symbolIcon-unitForeground)}.monaco-editor .codicon.codicon-symbol-variable,.monaco-workbench .codicon.codicon-symbol-variable{color:var(--vscode-symbolIcon-variableForeground)}.editor-banner{box-sizing:border-box;cursor:default;width:100%;font-size:12px;display:flex;overflow:visible;height:26px;background:var(--vscode-banner-background)}.editor-banner .icon-container{display:flex;flex-shrink:0;align-items:center;padding:0 6px 0 10px}.editor-banner .icon-container.custom-icon{background-repeat:no-repeat;background-position:50%;background-size:16px;width:16px;padding:0;margin:0 6px 0 10px}.editor-banner .message-container{display:flex;align-items:center;line-height:26px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.editor-banner .message-container p{margin-block-start:0;margin-block-end:0}.editor-banner .message-actions-container{flex-grow:1;flex-shrink:0;line-height:26px;margin:0 4px}.editor-banner .message-actions-container a.monaco-button{width:inherit;margin:2px 8px;padding:0 12px}.editor-banner .message-actions-container a{padding:3px;margin-left:12px;text-decoration:underline}.editor-banner .action-container{padding:0 10px 0 6px}.editor-banner{background-color:var(--vscode-banner-background)}.editor-banner,.editor-banner .action-container .codicon,.editor-banner .message-actions-container .monaco-link{color:var(--vscode-banner-foreground)}.editor-banner .icon-container .codicon{color:var(--vscode-banner-iconForeground)}.monaco-editor .unicode-highlight{border:1px solid var(--vscode-editorUnicodeHighlight-border);background-color:var(--vscode-editorUnicodeHighlight-background);box-sizing:border-box}.monaco-editor .focused .selectionHighlight{background-color:var(--vscode-editor-selectionHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-selectionHighlightBorder)}.monaco-editor.hc-black .focused .selectionHighlight,.monaco-editor.hc-light .focused .selectionHighlight{border-style:dotted}.monaco-editor .wordHighlight{background-color:var(--vscode-editor-wordHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-wordHighlightBorder)}.monaco-editor.hc-black .wordHighlight,.monaco-editor.hc-light .wordHighlight{border-style:dotted}.monaco-editor .wordHighlightStrong{background-color:var(--vscode-editor-wordHighlightStrongBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-wordHighlightStrongBorder)}.monaco-editor.hc-black .wordHighlightStrong,.monaco-editor.hc-light .wordHighlightStrong{border-style:dotted}.monaco-editor .wordHighlightText{background-color:var(--vscode-editor-wordHighlightTextBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-wordHighlightTextBorder)}.monaco-editor.hc-black .wordHighlightText,.monaco-editor.hc-light .wordHighlightText{border-style:dotted}.monaco-editor .zone-widget{position:absolute;z-index:10}.monaco-editor .zone-widget .zone-widget-container{border-top-style:solid;border-bottom-style:solid;border-top-width:0;border-bottom-width:0;position:relative}.monaco-editor .iPadShowKeyboard{width:58px;min-width:0;height:36px;min-height:0;margin:0;padding:0;position:absolute;resize:none;overflow:hidden;background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00OC4wMzYgNC4wMUg0LjAwOFYzMi4wM2g0NC4wMjhWNC4wMXpNNC4wMDguMDA4QTQuMDAzIDQuMDAzIDAgMDAuMDA1IDQuMDFWMzIuMDNhNC4wMDMgNC4wMDMgMCAwMDQuMDAzIDQuMDAyaDQ0LjAyOGE0LjAwMyA0LjAwMyAwIDAwNC4wMDMtNC4wMDJWNC4wMUE0LjAwMyA0LjAwMyAwIDAwNDguMDM2LjAwOEg0LjAwOHpNOC4wMSA4LjAxM2g0LjAwM3Y0LjAwM0g4LjAxVjguMDEzem0xMi4wMDggMGgtNC4wMDJ2NC4wMDNoNC4wMDJWOC4wMTN6bTQuMDAzIDBoNC4wMDJ2NC4wMDNoLTQuMDAyVjguMDEzem0xMi4wMDggMGgtNC4wMDN2NC4wMDNoNC4wMDNWOC4wMTN6bTQuMDAyIDBoNC4wMDN2NC4wMDNINDAuMDNWOC4wMTN6bS0yNC4wMTUgOC4wMDVIOC4wMXY0LjAwM2g4LjAwNnYtNC4wMDN6bTQuMDAyIDBoNC4wMDN2NC4wMDNoLTQuMDAzdi00LjAwM3ptMTIuMDA4IDBoLTQuMDAzdjQuMDAzaDQuMDAzdi00LjAwM3ptMTIuMDA4IDB2NC4wMDNoLTguMDA1di00LjAwM2g4LjAwNXptLTMyLjAyMSA4LjAwNUg4LjAxdjQuMDAzaDQuMDAzdi00LjAwM3ptNC4wMDMgMGgyMC4wMTN2NC4wMDNIMTYuMDE2di00LjAwM3ptMjguMDE4IDBINDAuMDN2NC4wMDNoNC4wMDN2LTQuMDAzeiIgZmlsbD0iIzQyNDI0MiIvPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImNsaXAwIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDUzdjM2SDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+) 50% no-repeat;border:4px solid #f6f6f6;border-radius:4px}.monaco-editor.vs-dark .iPadShowKeyboard{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00OC4wMzYgNC4wMUg0LjAwOFYzMi4wM2g0NC4wMjhWNC4wMXpNNC4wMDguMDA4QTQuMDAzIDQuMDAzIDAgMDAuMDA1IDQuMDFWMzIuMDNhNC4wMDMgNC4wMDMgMCAwMDQuMDAzIDQuMDAyaDQ0LjAyOGE0LjAwMyA0LjAwMyAwIDAwNC4wMDMtNC4wMDJWNC4wMUE0LjAwMyA0LjAwMyAwIDAwNDguMDM2LjAwOEg0LjAwOHpNOC4wMSA4LjAxM2g0LjAwM3Y0LjAwM0g4LjAxVjguMDEzem0xMi4wMDggMGgtNC4wMDJ2NC4wMDNoNC4wMDJWOC4wMTN6bTQuMDAzIDBoNC4wMDJ2NC4wMDNoLTQuMDAyVjguMDEzem0xMi4wMDggMGgtNC4wMDN2NC4wMDNoNC4wMDNWOC4wMTN6bTQuMDAyIDBoNC4wMDN2NC4wMDNINDAuMDNWOC4wMTN6bS0yNC4wMTUgOC4wMDVIOC4wMXY0LjAwM2g4LjAwNnYtNC4wMDN6bTQuMDAyIDBoNC4wMDN2NC4wMDNoLTQuMDAzdi00LjAwM3ptMTIuMDA4IDBoLTQuMDAzdjQuMDAzaDQuMDAzdi00LjAwM3ptMTIuMDA4IDB2NC4wMDNoLTguMDA1di00LjAwM2g4LjAwNXptLTMyLjAyMSA4LjAwNUg4LjAxdjQuMDAzaDQuMDAzdi00LjAwM3ptNC4wMDMgMGgyMC4wMTN2NC4wMDNIMTYuMDE2di00LjAwM3ptMjguMDE4IDBINDAuMDN2NC4wMDNoNC4wMDN2LTQuMDAzeiIgZmlsbD0iI0M1QzVDNSIvPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImNsaXAwIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDUzdjM2SDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+) 50% no-repeat;border:4px solid #252526}.monaco-editor .tokens-inspect-widget{z-index:50;user-select:text;-webkit-user-select:text;padding:10px;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor.hc-black .tokens-inspect-widget,.monaco-editor.hc-light .tokens-inspect-widget{border-width:2px}.monaco-editor .tokens-inspect-widget .tokens-inspect-separator{height:1px;border:0;background-color:var(--vscode-editorHoverWidget-border)}.monaco-editor .tokens-inspect-widget .tm-token{font-family:var(--monaco-monospace-font)}.monaco-editor .tokens-inspect-widget .tm-token-length{font-weight:400;font-size:60%;float:right}.monaco-editor .tokens-inspect-widget .tm-metadata-table{width:100%}.monaco-editor .tokens-inspect-widget .tm-metadata-value{font-family:var(--monaco-monospace-font);text-align:right}.monaco-editor .tokens-inspect-widget .tm-token-type{font-family:var(--monaco-monospace-font)}.quick-input-widget{font-size:13px}.quick-input-widget .monaco-highlighted-label .highlight{color:#0066bf}.vs .quick-input-widget .monaco-list-row.focused .monaco-highlighted-label .highlight{color:#9dddff}.vs-dark .quick-input-widget .monaco-highlighted-label .highlight{color:#0097fb}.hc-black .quick-input-widget .monaco-highlighted-label .highlight{color:#f38518}.hc-light .quick-input-widget .monaco-highlighted-label .highlight{color:#0f4a85}.monaco-keybinding>.monaco-keybinding-key{background-color:hsla(0, 0%, 86.7%, 0.4);border:1px solid hsla(0, 0%, 80%, 0.4);border-bottom-color:hsla(0, 0%, 73.3%, 0.4);box-shadow:inset 0 -1px 0 hsla(0, 0%, 73.3%, 0.4);color:#555}.hc-black .monaco-keybinding>.monaco-keybinding-key{background-color:transparent;border:1px solid #6fc3df;box-shadow:none;color:#fff}.hc-light .monaco-keybinding>.monaco-keybinding-key{background-color:transparent;border:1px solid #0f4a85;box-shadow:none;color:#292929}.vs-dark .monaco-keybinding>.monaco-keybinding-key{background-color:hsla(0, 0%, 50.2%, 0.17);border:1px solid rgba(51, 51, 51, 0.6);border-bottom-color:rgba(68, 68, 68, 0.6);box-shadow:inset 0 -1px 0 rgba(68, 68, 68, 0.6);color:#ccc}.monaco-editor{font-family:-apple-system, BlinkMacSystemFont, Segoe WPC, Segoe UI, HelveticaNeue-Light, system-ui, Ubuntu, Droid Sans, sans-serif;--monaco-monospace-font:\"SF Mono\",Monaco,Menlo,Consolas,\"Ubuntu Mono\",\"Liberation Mono\",\"DejaVu Sans Mono\",\"Courier New\",monospace}.monaco-editor.hc-black .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.hc-light .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-menu .monaco-action-bar.vertical .action-item .action-menu-item:focus .action-label{stroke-width:1.2px}.monaco-hover p{margin:0}.monaco-aria-container{position:absolute !important;top:0;height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;clip:rect(1px, 1px, 1px, 1px);clip-path:inset(50%)}.action-widget{font-size:13px;border-radius:0;min-width:160px;max-width:80vw;z-index:40;display:block;width:100%;border:1px solid var(--vscode-editorWidget-border) !important;border-radius:2px;background-color:var(--vscode-editorWidget-background);color:var(--vscode-editorWidget-foreground)}.context-view-block{z-index:-1}.context-view-block,.context-view-pointerBlock{position:fixed;cursor:auto;left:0;top:0;width:100%;height:100%}.context-view-pointerBlock{z-index:2}.action-widget .monaco-list{user-select:none;-webkit-user-select:none;border:0 !important}.action-widget .monaco-list:focus:before{outline:0 !important}.action-widget .monaco-list .monaco-scrollable-element{overflow:visible}.action-widget .monaco-list .monaco-list-row{padding:0 10px;white-space:nowrap;cursor:pointer;touch-action:none;width:100%}.action-widget .monaco-list .monaco-list-row.action.focused:not(.option-disabled){background-color:var(--vscode-quickInputList-focusBackground) !important;color:var(--vscode-quickInputList-focusForeground);outline:1px solid var(--vscode-menu-selectionBorder, transparent);outline-offset:-1px}.action-widget .monaco-list-row.group-header{color:var(--vscode-descriptionForeground) !important;font-weight:600}.action-widget .monaco-list .group-header,.action-widget .monaco-list .option-disabled,.action-widget .monaco-list .option-disabled .focused,.action-widget .monaco-list .option-disabled .focused:before,.action-widget .monaco-list .option-disabled:before{cursor:default !important;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;background-color:transparent !important;outline:0 solid !important}.action-widget .monaco-list-row.action{display:flex;gap:6px;align-items:center}.action-widget .monaco-list-row.action.option-disabled,.action-widget .monaco-list-row.action.option-disabled .codicon,.action-widget .monaco-list:focus .monaco-list-row.focused.action.option-disabled,.action-widget .monaco-list:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused).option-disabled{color:var(--vscode-disabledForeground)}.action-widget .monaco-list-row.action:not(.option-disabled) .codicon{color:inherit}.action-widget .monaco-list-row.action .title{flex:1;overflow:hidden;text-overflow:ellipsis}.action-widget .action-widget-action-bar{background-color:var(--vscode-editorHoverWidget-statusBarBackground);border-top:1px solid var(--vscode-editorHoverWidget-border)}.action-widget .action-widget-action-bar:before{display:block;content:\"\";width:100%}.action-widget .action-widget-action-bar .actions-container{padding:0 8px}.action-widget-action-bar .action-label{color:var(--vscode-textLink-activeForeground);font-size:12px;line-height:22px;padding:0;pointer-events:all}.action-widget-action-bar .action-item{margin-right:16px;pointer-events:none}.action-widget-action-bar .action-label:hover{background-color:transparent !important}.monaco-action-bar .actions-container.highlight-toggled .action-label.checked{background:var(--vscode-actionBar-toggledBackground) !important}.monaco-action-bar .action-item.menu-entry .action-label.icon{width:16px;height:16px;background-repeat:no-repeat;background-position:50%;background-size:16px}.monaco-dropdown-with-default{display:flex !important;flex-direction:row;border-radius:5px}.monaco-dropdown-with-default>.action-container>.action-label{margin-right:0}.monaco-dropdown-with-default>.action-container.menu-entry>.action-label.icon{width:16px;height:16px;background-repeat:no-repeat;background-position:50%;background-size:16px}.monaco-dropdown-with-default>.dropdown-action-container>.monaco-dropdown>.dropdown-label .codicon[class*=codicon-]{font-size:12px;padding-left:0;padding-right:0;line-height:16px;margin-left:-3px}.monaco-dropdown-with-default>.dropdown-action-container>.monaco-dropdown>.dropdown-label>.action-label{display:block;background-size:16px;background-position:50%;background-repeat:no-repeat}.monaco-link{color:var(--vscode-textLink-foreground)}.monaco-link:hover{color:var(--vscode-textLink-activeForeground)}.quick-input-widget{position:absolute;width:600px;z-index:2550;left:50%;margin-left:-300px;-webkit-app-region:no-drag;border-radius:6px}.quick-input-titlebar{display:flex;align-items:center;border-top-left-radius:5px;border-top-right-radius:5px}.quick-input-left-action-bar{display:flex;margin-left:4px;flex:1}.quick-input-title{padding:3px 0;text-align:center;text-overflow:ellipsis;overflow:hidden}.quick-input-right-action-bar{display:flex;margin-right:4px;flex:1}.quick-input-right-action-bar>.actions-container{justify-content:flex-end}.quick-input-titlebar .monaco-action-bar .action-label.codicon{background-position:50%;background-repeat:no-repeat;padding:2px}.quick-input-description{margin:6px 6px 6px 11px}.quick-input-header .quick-input-description{margin:4px 2px;flex:1}.quick-input-header{display:flex;padding:8px 6px 6px}.quick-input-widget.hidden-input .quick-input-header{padding:0;margin-bottom:0}.quick-input-and-message{display:flex;flex-direction:column;flex-grow:1;min-width:0;position:relative}.quick-input-check-all{align-self:center;margin:0}.quick-input-filter{flex-grow:1;display:flex;position:relative}.quick-input-box{flex-grow:1}.quick-input-widget.show-checkboxes .quick-input-box,.quick-input-widget.show-checkboxes .quick-input-message{margin-left:5px}.quick-input-visible-count{position:absolute;left:-10000px}.quick-input-count{align-self:center;position:absolute;right:4px;display:flex;align-items:center}.quick-input-count .monaco-count-badge{vertical-align:middle;padding:2px 4px;border-radius:2px;min-height:auto;line-height:normal}.quick-input-action{margin-left:6px}.quick-input-action .monaco-text-button{font-size:11px;padding:0 6px;display:flex;height:25px;align-items:center}.quick-input-message{margin-top:-1px;padding:5px;overflow-wrap:break-word}.quick-input-message>.codicon{margin:0 0.2em;vertical-align:text-bottom}.quick-input-message a{color:inherit}.quick-input-progress.monaco-progress-container{position:relative}.quick-input-list{line-height:22px}.quick-input-widget.hidden-input .quick-input-list{margin-top:4px;padding-bottom:4px}.quick-input-list .monaco-list{overflow:hidden;max-height:440px;padding-bottom:5px}.quick-input-list .monaco-scrollable-element{padding:0 5px}.quick-input-list .quick-input-list-entry{box-sizing:border-box;overflow:hidden;display:flex;height:100%;padding:0 6px}.quick-input-list .quick-input-list-entry.quick-input-list-separator-border{border-top-width:1px;border-top-style:solid}.quick-input-list .monaco-list-row{border-radius:3px}.quick-input-list .monaco-list-row[data-index=\"0\"] .quick-input-list-entry.quick-input-list-separator-border{border-top-style:none}.quick-input-list .quick-input-list-label{overflow:hidden;display:flex;height:100%;flex:1}.quick-input-list .quick-input-list-checkbox{align-self:center;margin:0}.quick-input-list .quick-input-list-icon{background-size:16px;background-position:0;background-repeat:no-repeat;padding-right:6px;width:16px;height:22px;display:flex;align-items:center;justify-content:center}.quick-input-list .quick-input-list-rows{overflow:hidden;text-overflow:ellipsis;display:flex;flex-direction:column;height:100%;flex:1;margin-left:5px}.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-rows{margin-left:10px}.quick-input-widget .quick-input-list .quick-input-list-checkbox{display:none}.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-checkbox{display:inline}.quick-input-list .quick-input-list-rows>.quick-input-list-row{display:flex;align-items:center}.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label,.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label .monaco-icon-label-container>.monaco-icon-name-container{flex:1}.quick-input-list .quick-input-list-rows>.quick-input-list-row .codicon[class*=codicon-]{vertical-align:text-bottom}.quick-input-list .quick-input-list-rows .monaco-highlighted-label>span{opacity:1}.quick-input-list .quick-input-list-entry .quick-input-list-entry-keybinding{margin-right:8px}.quick-input-list .quick-input-list-label-meta{opacity:0.7;line-height:normal;text-overflow:ellipsis;overflow:hidden}.quick-input-list .monaco-highlighted-label .highlight{font-weight:700}.quick-input-list .quick-input-list-entry .quick-input-list-separator{margin-right:4px}.quick-input-list .quick-input-list-entry-action-bar{display:flex;flex:0;overflow:visible}.quick-input-list .quick-input-list-entry-action-bar .action-label{display:none}.quick-input-list .quick-input-list-entry-action-bar .action-label.codicon{margin-right:4px;padding:0 2px 2px}.quick-input-list .quick-input-list-entry-action-bar{margin-top:1px;margin-right:4px}.quick-input-list .monaco-list-row.focused .quick-input-list-entry-action-bar .action-label,.quick-input-list .quick-input-list-entry .quick-input-list-entry-action-bar .action-label.always-visible,.quick-input-list .quick-input-list-entry:hover .quick-input-list-entry-action-bar .action-label{display:flex}.quick-input-list .monaco-list-row.focused .monaco-keybinding-key,.quick-input-list .monaco-list-row.focused .quick-input-list-entry .quick-input-list-separator{color:inherit}.quick-input-list .monaco-list-row.focused .monaco-keybinding-key{background:none}.quick-input-list .quick-input-list-separator-as-item{font-weight:600;font-size:12px}.extension-editor .codicon.codicon-error,.extensions-viewlet>.extensions .codicon.codicon-error,.markers-panel .marker-icon .codicon.codicon-error,.markers-panel .marker-icon.error,.monaco-editor .zone-widget .codicon.codicon-error,.preferences-editor .codicon.codicon-error,.text-search-provider-messages .providerMessage .codicon.codicon-error{color:var(--vscode-problemsErrorIcon-foreground)}.extension-editor .codicon.codicon-warning,.extensions-viewlet>.extensions .codicon.codicon-warning,.markers-panel .marker-icon .codicon.codicon-warning,.markers-panel .marker-icon.warning,.monaco-editor .zone-widget .codicon.codicon-warning,.preferences-editor .codicon.codicon-warning,.text-search-provider-messages .providerMessage .codicon.codicon-warning{color:var(--vscode-problemsWarningIcon-foreground)}.extension-editor .codicon.codicon-info,.extensions-viewlet>.extensions .codicon.codicon-info,.markers-panel .marker-icon .codicon.codicon-info,.markers-panel .marker-icon.info,.monaco-editor .zone-widget .codicon.codicon-info,.preferences-editor .codicon.codicon-info,.text-search-provider-messages .providerMessage .codicon.codicon-info{color:var(--vscode-problemsInfoIcon-foreground)}arcgis-code-editor{display:flex;width:100%;height:100%;flex-direction:column;direction:ltr}arcgis-code-editor .monaco-editor{flex:1 1 auto}arcgis-code-editor .monaco-editor .monaco-hover,arcgis-code-editor .monaco-editor .editor-widget,arcgis-code-editor .monaco-editor .suggest-details-container{z-index:9999}";
5687
+ const ArcgisCodeEditorStyle0 = codeEditorCss;
4321
5688
 
4322
5689
  // Our default options for the Editor
4323
5690
  const EditorOptionsDefaults = {
@@ -4328,74 +5695,74 @@ const EditorOptionsDefaults = {
4328
5695
  renderLineHighlight: "none",
4329
5696
  suggest: {
4330
5697
  snippetsPreventQuickSuggestions: false,
4331
- showWords: false
5698
+ showWords: false,
4332
5699
  },
4333
5700
  tabSize: 2,
4334
- useShadowDOM: true
5701
+ useShadowDOM: true,
4335
5702
  };
4336
5703
  const ArcgisCodeEditor = class {
4337
5704
  constructor(hostRef) {
4338
5705
  registerInstance(this, hostRef);
4339
- this.valueChange = createEvent(this, "valueChange", 3);
4340
- this._componentReadyDefer = new h$1();
5706
+ this.arcgisValueChange = createEvent(this, "arcgisValueChange", 3);
5707
+ this.arcgisSelectionChange = createEvent(this, "arcgisSelectionChange", 3);
5708
+ this.manager = useControllerManager(this);
5709
+ this._componentReadyDefer = new Deferred();
4341
5710
  this._disposables = [];
4342
- this.value = undefined;
5711
+ this.value = this.manager.getSet("", {
5712
+ set: (newValue) => {
5713
+ newValue ?? (newValue = "");
5714
+ if (!this._editorInstance) {
5715
+ return newValue;
5716
+ }
5717
+ const model = this._editorInstance.getModel();
5718
+ if (!model) {
5719
+ return newValue;
5720
+ }
5721
+ if (model.getValue() === newValue) {
5722
+ return newValue;
5723
+ }
5724
+ // Set the value and preserve the undo stack
5725
+ const range = model.getFullModelRange();
5726
+ this._editorInstance.executeEdits("", [{ range, text: newValue, forceMoveMarkers: true }]);
5727
+ this._editorInstance.pushUndoStop();
5728
+ return newValue;
5729
+ },
5730
+ });
4343
5731
  this.language = undefined;
4344
- this.modelId = U();
5732
+ this.modelId = generateGuid();
4345
5733
  this.options = undefined;
4346
- }
4347
- valuePropChange(newValue) {
4348
- if (!this._editorInstance) {
4349
- return;
4350
- }
4351
- this._editorInstance.setValue(newValue ?? "");
5734
+ this.editorInstance = this.manager.getSet(undefined, {
5735
+ get: () => this._editorInstance,
5736
+ set: (_value, prevValue) => prevValue,
5737
+ });
4352
5738
  }
4353
5739
  languagePropChange() {
4354
- if (!this._editorInstance) {
4355
- return;
4356
- }
4357
5740
  this.updateModel();
4358
5741
  }
4359
5742
  modelIdPropChange() {
4360
- if (!this._editorInstance) {
4361
- return;
4362
- }
4363
5743
  this.updateModel();
4364
5744
  }
4365
5745
  optionsPropChange(newValue) {
4366
- if (!this._editorInstance || !newValue) {
5746
+ if (!newValue) {
4367
5747
  return;
4368
5748
  }
4369
- this._editorInstance.updateOptions(newValue);
5749
+ this._editorInstance?.updateOptions(newValue);
4370
5750
  }
4371
5751
  //#endregion
4372
5752
  // #region Public methods API
4373
5753
  /**
4374
- * Gets the current value in the editor.
4375
- * @returns {Promise<string>}
5754
+ * @deprecated Use `value` property instead.
4376
5755
  */
4377
5756
  async getValue() {
4378
5757
  await this._componentReadyDefer.promise;
4379
- return this._editorInstance?.getValue() ?? "";
5758
+ return this.value;
4380
5759
  }
4381
5760
  /**
4382
- * Sets the new value in the editor. Use this method instead of setting the value
4383
- * on the model to preserve undo/redo stack.
4384
- * @param text
4385
- * @returns {Promise<void>}
5761
+ * @deprecated Use `value` property instead.
4386
5762
  */
4387
5763
  async setValue(text) {
4388
5764
  await this._componentReadyDefer.promise;
4389
- if (!this._editorInstance) {
4390
- return;
4391
- }
4392
- const model = this._editorInstance.getModel();
4393
- if (!model) {
4394
- return;
4395
- }
4396
- const range = model.getFullModelRange();
4397
- this._editorInstance.executeEdits("", [{ range, text: text ?? "", forceMoveMarkers: true }]);
4398
- this._editorInstance.pushUndoStop();
5765
+ this.value = text ?? "";
4399
5766
  }
4400
5767
  /**
4401
5768
  * Inserts a text at the current position in the editor.
@@ -4430,8 +5797,7 @@ const ArcgisCodeEditor = class {
4430
5797
  }
4431
5798
  /**
4432
5799
  * @internal
4433
- * Returns the editor instance.
4434
- * @returns {Promise<IStandaloneCodeEditor>} - The monaco editor instance
5800
+ * @deprecated Use `editorInstance` property instead.
4435
5801
  */
4436
5802
  async getEditorInstance() {
4437
5803
  await this._componentReadyDefer.promise;
@@ -4462,33 +5828,33 @@ const ArcgisCodeEditor = class {
4462
5828
  // Create the model without the value.
4463
5829
  // Since it's not yet attached to the editor the diagnostic service will not process it.
4464
5830
  // We will set the value after the editor has been created to trigger the diagnostic again.
4465
- const model = editor.createModel("", this.language, this.getUri());
5831
+ const model = editor.createModel(this.value, this.language, this.getUri());
4466
5832
  // Create the editor for the host element.
4467
5833
  // This will not trigger a diagnostic.
4468
- this._editorInstance = editor.create(this._hostElt, {
5834
+ this._editorInstance = editor.create(this.el, {
4469
5835
  ...(this.options ?? {}),
4470
5836
  model,
4471
5837
  fixedOverflowWidgets: true,
4472
- scrollBeyondLastLine: false
5838
+ scrollBeyondLastLine: false,
4473
5839
  });
4474
5840
  this._disposables.push(this._editorInstance);
4475
- // Set the value now to trigger a diagnostic again
4476
- model.setValue(this.value ?? "");
4477
- // Now we can set are component as ready
5841
+ // Now we indicate that the component is ready
4478
5842
  this._componentReadyDefer.resolve();
4479
5843
  this._editorInstance.updateOptions(EditorOptionsDefaults);
4480
- // Listen to the Monaco Editor content change event and propagate
4481
5844
  this._editorInstance.onDidChangeModelContent(() => {
4482
- const script = this._editorInstance?.getValue() ?? "";
4483
- this.valueChange.emit(script);
5845
+ this.value = this._editorInstance?.getValue() ?? "";
5846
+ this.arcgisValueChange.emit(this.value);
5847
+ });
5848
+ this._editorInstance.onDidChangeCursorSelection((e) => {
5849
+ this.arcgisSelectionChange.emit({ selection: e.selection, model: this._editorInstance?.getModel() });
4484
5850
  });
4485
5851
  // Detect if the host element or its ancestors got a theme attribute mutation
4486
- this._themeObserver = x(this._hostElt, ["class"], () => this.updateTheme());
5852
+ this._themeObserver = observeAncestorsMutation(this.el, ["class"], () => this.updateTheme());
4487
5853
  // Update the theme of the Monaco Editor
4488
5854
  this.updateTheme();
4489
5855
  // Creates a resize observer to re-layout the editor on size changing
4490
5856
  const resizeObserver = new ResizeObserver(() => this._editorInstance?.layout());
4491
- resizeObserver.observe(this._hostElt);
5857
+ resizeObserver.observe(this.el);
4492
5858
  // Add common actions to the Monaco Editor's context menu and command palette
4493
5859
  this.addCommonEditorActions();
4494
5860
  }
@@ -4496,7 +5862,14 @@ const ArcgisCodeEditor = class {
4496
5862
  while (this._disposables.length) {
4497
5863
  this._disposables.pop()?.dispose();
4498
5864
  }
4499
- this._themeObserver?.disconnect();
5865
+ this._themeObserver?.remove();
5866
+ }
5867
+ componentShouldUpdate(_newVal, _oldVal, propName) {
5868
+ if (propName === "value" || propName === "language" || propName === "modelId" || propName === "options") {
5869
+ // These are properties that we directly pass to the editor
5870
+ return false;
5871
+ }
5872
+ return true;
4500
5873
  }
4501
5874
  //#endregion
4502
5875
  // #region Private methods API
@@ -4505,7 +5878,7 @@ const ArcgisCodeEditor = class {
4505
5878
  return;
4506
5879
  }
4507
5880
  this._editorInstance.getModel()?.dispose();
4508
- this._editorInstance.setModel(editor.createModel(this.value ?? "", this.language, this.getUri()));
5881
+ this._editorInstance.setModel(editor.createModel(this.value, this.language, this.getUri()));
4509
5882
  }
4510
5883
  getUri() {
4511
5884
  return this.modelId ? Uri.parse(this.modelId) : Uri.parse("");
@@ -4514,7 +5887,7 @@ const ArcgisCodeEditor = class {
4514
5887
  // This is called the first time and subsequently by the Mutation Observer
4515
5888
  // Figure out the theme by walking the ancestor path.
4516
5889
  // If no theme is found then default to light.
4517
- const theme = k(this._hostElt) === "light" ? "vs" : "vs-dark";
5890
+ const theme = getElementTheme(this.el) === "light" ? "vs" : "vs-dark";
4518
5891
  if (theme === this._currentTheme) {
4519
5892
  return;
4520
5893
  }
@@ -4539,7 +5912,7 @@ const ArcgisCodeEditor = class {
4539
5912
  contextMenuOrder: 1,
4540
5913
  // Method that will be executed when the action is triggered.
4541
5914
  // @param editor The editor instance is passed in as a convenience
4542
- run: async () => await zoomInFn?.run()
5915
+ run: async () => await zoomInFn?.run(),
4543
5916
  });
4544
5917
  this._editorInstance?.addAction({
4545
5918
  id: "editor.action.fontZoomOut",
@@ -4547,23 +5920,22 @@ const ArcgisCodeEditor = class {
4547
5920
  keybindings: [KeyMod.CtrlCmd | KeyCode.Minus],
4548
5921
  contextMenuGroupId: "zooming",
4549
5922
  contextMenuOrder: 2,
4550
- run: async () => await zoomOutFn?.run()
5923
+ run: async () => await zoomOutFn?.run(),
4551
5924
  });
4552
5925
  }
4553
5926
  //#endregion
4554
5927
  // #region Rendering
4555
5928
  render() {
4556
- return h(Host, null);
5929
+ return h(Host, { key: 'c7d7321e356b9c4d4d11f179cf0b2b90fe2e8a16' });
4557
5930
  }
4558
5931
  static get assetsDirs() { return ["assets"]; }
4559
- get _hostElt() { return getElement(this); }
5932
+ get el() { return getElement(this); }
4560
5933
  static get watchers() { return {
4561
- "value": ["valuePropChange"],
4562
5934
  "language": ["languagePropChange"],
4563
5935
  "modelId": ["modelIdPropChange"],
4564
5936
  "options": ["optionsPropChange"]
4565
5937
  }; }
4566
5938
  };
4567
- ArcgisCodeEditor.style = codeEditorCss;
5939
+ ArcgisCodeEditor.style = ArcgisCodeEditorStyle0;
4568
5940
 
4569
5941
  export { ArcgisArcadeApi as arcgis_arcade_api, ArcgisArcadeEditor as arcgis_arcade_editor, ArcgisArcadeResults as arcgis_arcade_results, ArcgisArcadeSuggestions as arcgis_arcade_suggestions, ArcgisArcadeVariables as arcgis_arcade_variables, ArcgisCodeEditor as arcgis_code_editor };