@arcgis/coding-components 1.0.0-beta.7 → 4.28.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/dist/arcgis-coding-components/arcgis-coding-components.esm.js +1 -1
  2. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.ar.json +858 -192
  3. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.bg.json +821 -155
  4. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.bs.json +829 -163
  5. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.ca.json +829 -163
  6. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.cs.json +829 -163
  7. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.da.json +829 -163
  8. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.de.json +829 -163
  9. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.el.json +858 -192
  10. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.en.json +853 -187
  11. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.es.json +829 -163
  12. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.et.json +829 -163
  13. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.fi.json +858 -192
  14. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.fr.json +829 -163
  15. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.he.json +858 -192
  16. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.hr.json +829 -163
  17. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.hu.json +829 -163
  18. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.id.json +858 -192
  19. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.it.json +821 -155
  20. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.ja.json +859 -193
  21. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.ko.json +859 -193
  22. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.lt.json +829 -163
  23. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.lv.json +829 -163
  24. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.nb.json +829 -163
  25. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.nl.json +829 -163
  26. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.pl.json +829 -163
  27. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.pt-BR.json +829 -163
  28. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.pt-PT.json +829 -163
  29. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.ro.json +829 -163
  30. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.ru.json +858 -192
  31. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.sk.json +829 -163
  32. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.sl.json +829 -163
  33. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.sr.json +845 -179
  34. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.sv.json +829 -163
  35. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.th.json +858 -192
  36. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.tr.json +858 -192
  37. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.uk.json +858 -192
  38. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.vi.json +858 -192
  39. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.zh-CN.json +859 -193
  40. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.zh-HK.json +859 -193
  41. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.zh-TW.json +859 -193
  42. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.ar.json +1 -2
  43. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.bg.json +1 -2
  44. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.bs.json +1 -2
  45. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.ca.json +1 -2
  46. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.cs.json +1 -2
  47. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.da.json +1 -2
  48. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.de.json +1 -2
  49. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.el.json +1 -2
  50. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.en.json +1 -2
  51. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.es.json +1 -2
  52. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.et.json +1 -2
  53. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.fi.json +1 -2
  54. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.fr.json +1 -2
  55. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.he.json +1 -2
  56. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.hr.json +1 -2
  57. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.hu.json +1 -2
  58. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.id.json +1 -2
  59. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.it.json +1 -2
  60. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.ja.json +1 -2
  61. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.ko.json +1 -2
  62. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.lt.json +1 -2
  63. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.lv.json +1 -2
  64. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.nb.json +1 -2
  65. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.nl.json +1 -2
  66. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.pl.json +1 -2
  67. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.pt-BR.json +1 -2
  68. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.pt-PT.json +1 -2
  69. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.ro.json +1 -2
  70. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.ru.json +1 -2
  71. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.sk.json +1 -2
  72. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.sl.json +1 -2
  73. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.sr.json +1 -2
  74. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.sv.json +1 -2
  75. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.th.json +1 -2
  76. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.tr.json +1 -2
  77. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.uk.json +1 -2
  78. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.vi.json +1 -2
  79. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.zh-CN.json +1 -2
  80. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.zh-HK.json +1 -2
  81. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.zh-TW.json +1 -2
  82. package/dist/arcgis-coding-components/index.esm.js +1 -1
  83. package/dist/arcgis-coding-components/p-3af16d99.js +1 -0
  84. package/dist/arcgis-coding-components/{p-ee4aaf72.js → p-46aaf7d4.js} +1 -1
  85. package/dist/arcgis-coding-components/{p-ed254359.js → p-4bd9d791.js} +2 -2
  86. package/dist/arcgis-coding-components/{p-2eee5b07.js → p-73aa96ee.js} +7 -7
  87. package/dist/arcgis-coding-components/{p-63d6d128.js → p-81676e51.js} +1 -1
  88. package/dist/arcgis-coding-components/p-a8a8510a.entry.js +1 -0
  89. package/dist/arcgis-coding-components/{p-616bcc2c.js → p-a9ec2366.js} +1 -1
  90. package/dist/arcgis-coding-components/{p-41feaa6e.js → p-bf7a8d89.js} +1 -1
  91. package/dist/arcgis-coding-components/{p-c14a46af.js → p-f418c117.js} +1 -1
  92. package/dist/arcgis-coding-components/{p-b866ffa3.js → p-f6b45c23.js} +1 -1
  93. package/dist/cjs/{arcade-defaults-f77b7bae.js → arcade-defaults-3bd0c14d.js} +3271 -3169
  94. package/dist/cjs/arcade-mode-070b367b.js +600 -0
  95. package/dist/cjs/arcgis-arcade-api_6.cjs.entry.js +51 -30
  96. package/dist/cjs/{cssMode-c21a8b34.js → cssMode-bb33401a.js} +1 -1
  97. package/dist/cjs/{html-baddeebf.js → html-6a48c22b.js} +1 -1
  98. package/dist/cjs/{htmlMode-3ca73779.js → htmlMode-dd092c6e.js} +1 -1
  99. package/dist/cjs/index.cjs.js +3 -5
  100. package/dist/cjs/{javascript-4226e8d4.js → javascript-06348a03.js} +2 -2
  101. package/dist/cjs/{jsonMode-4496d6b9.js → jsonMode-d987edf0.js} +1 -1
  102. package/dist/cjs/{tsMode-6fa6f2f6.js → tsMode-4c122a19.js} +1 -1
  103. package/dist/cjs/{typescript-5b6bab68.js → typescript-a09007d1.js} +1 -1
  104. package/dist/components/arcade-api.js +3 -2
  105. package/dist/components/arcade-contribution.js +1 -1
  106. package/dist/components/arcade-defaults.js +7 -24
  107. package/dist/components/arcade-mode.js +3 -3
  108. package/dist/components/arcade-results.js +40 -10
  109. package/dist/components/arcade-suggestions.js +2 -1
  110. package/dist/components/arcade-variables.js +2 -2
  111. package/dist/components/arcgis-arcade-editor.js +2 -2
  112. package/dist/components/code-editor.js +9 -2
  113. package/dist/components/fields.js +125 -0
  114. package/dist/components/index.js +1 -7
  115. package/dist/components/index2.js +282 -32
  116. package/dist/components/markdown.js +1 -1
  117. package/dist/components/utilities.js +2 -334
  118. package/dist/esm/{arcade-defaults-24670a1d.js → arcade-defaults-e4176a6a.js} +3270 -3171
  119. package/dist/esm/arcade-mode-e62d056a.js +596 -0
  120. package/dist/esm/arcgis-arcade-api_6.entry.js +49 -28
  121. package/dist/esm/{cssMode-0ae84348.js → cssMode-3544cc9c.js} +1 -1
  122. package/dist/esm/{html-c18864a6.js → html-a801d6a9.js} +1 -1
  123. package/dist/esm/{htmlMode-426699f2.js → htmlMode-fec36926.js} +1 -1
  124. package/dist/esm/index.js +1 -7
  125. package/dist/esm/{javascript-982f2d73.js → javascript-17b4c349.js} +2 -2
  126. package/dist/esm/{jsonMode-170e0a0e.js → jsonMode-f533b728.js} +1 -1
  127. package/dist/esm/{tsMode-99d2e8e5.js → tsMode-49d8893e.js} +1 -1
  128. package/dist/esm/{typescript-de4f8a27.js → typescript-34fa1e83.js} +1 -1
  129. package/dist/types/index.d.ts +2 -4
  130. package/dist/types/utils/arcade-executor.d.ts +35 -3
  131. package/dist/types/utils/arcade-monaco/arcade-defaults.d.ts +6 -0
  132. package/dist/types/utils/fields.d.ts +10 -0
  133. package/dist/types/utils/profile/types.d.ts +2 -2
  134. package/dist/types/utils/utilities.d.ts +0 -6
  135. package/package.json +8 -8
  136. package/dist/arcgis-coding-components/p-4d7cdaf4.js +0 -1
  137. package/dist/arcgis-coding-components/p-7d6c922f.entry.js +0 -1
  138. package/dist/cjs/arcade-mode-4b1d5adc.js +0 -600
  139. package/dist/esm/arcade-mode-dc10ed9f.js +0 -596
@@ -1,5 +1,5 @@
1
1
  import { h, r as registerInstance, c as createEvent, g as getAssetPath, H as Host, a as getElement, F as Fragment } from './index-d4ec142a.js';
2
- import { g as generateTokensCSSForColorMap, e as editor, S as StandaloneServices, I as IStandaloneThemeService, l as languages, a as arcadeDefaults, s as startLocaleObserver, U as Uri, b as stopLocaleObserver, c as setFocusOnElement, f as filterCollection, d as addLTRMark, i as importArcade, h as fieldTypeToArcadeType, D as Deferred, j as generateGuid, k as getElementTheme, K as KeyCode, m as setValuesInString, q as quoteString, n as supportedFields, o as createFilterExpression, R as Range, p as observeAncestorsMutation, r as KeyMod } from './arcade-defaults-24670a1d.js';
2
+ import { g as generateTokensCSSForColorMap, e as editor, S as StandaloneServices, I as IStandaloneThemeService, c as createCommonjsModule, b as commonjsGlobal, l as languages, d as arcadeDefaults, s as startLocaleObserver, U as Uri, f as stopLocaleObserver, h as setFocusOnElement, i as filterCollection, j as addLTRMark, k as importArcade, D as Deferred, m as generateGuid, n as getElementTheme, K as KeyCode, o as setValuesInString, q as quoteString, p as supportedFields, r as createFilterExpression, R as Range, t as observeAncestorsMutation, u as KeyMod } from './arcade-defaults-e4176a6a.js';
3
3
 
4
4
  async function colorizeCode(code) {
5
5
  return editor.colorize(code, "arcade", { tabSize: 2 });
@@ -33,25 +33,9 @@ const StickyFilterInput = ({ filterValue, ...rest }) => (
33
33
  h("div", { class: "sticky", scale: "m" },
34
34
  h("calcite-input", { value: filterValue, icon: "magnifying-glass", clearable: true, ...rest })));
35
35
 
36
- var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
37
-
38
- function createCommonjsModule(fn, basedir, module) {
39
- return module = {
40
- path: basedir,
41
- exports: {},
42
- require: function (path, base) {
43
- return commonjsRequire();
44
- }
45
- }, fn(module, module.exports), module.exports;
46
- }
47
-
48
- function commonjsRequire () {
49
- throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');
50
- }
51
-
52
36
  var marked_umd = createCommonjsModule(function (module, exports) {
53
37
  /**
54
- * marked v5.1.1 - a markdown parser
38
+ * marked v5.1.2 - a markdown parser
55
39
  * Copyright (c) 2011-2023, Christopher Jeffrey. (MIT Licensed)
56
40
  * https://github.com/markedjs/marked
57
41
  */
@@ -3014,7 +2998,7 @@ async function getArcadeWorker(uri) {
3014
2998
  * @returns mode for arcade
3015
2999
  */
3016
3000
  function getMode() {
3017
- return import('./arcade-mode-dc10ed9f.js');
3001
+ return import('./arcade-mode-e62d056a.js');
3018
3002
  }
3019
3003
  // Register the language in Monaco
3020
3004
  languages.register({
@@ -3211,6 +3195,14 @@ function isArcadeDate(value) {
3211
3195
  const declaredRootClass = value.declaredRootClass;
3212
3196
  return typeof declaredRootClass === "string" && declaredRootClass === "esri.arcade.arcadedate";
3213
3197
  }
3198
+ function isArcadeDateOnly(value) {
3199
+ const declaredRootClass = value.declaredRootClass;
3200
+ return typeof declaredRootClass === "string" && declaredRootClass === "esri.core.sql.dateonly";
3201
+ }
3202
+ function isArcadeTimeOnly(value) {
3203
+ const declaredRootClass = value.declaredRootClass;
3204
+ return typeof declaredRootClass === "string" && declaredRootClass === "esri.core.sql.timeonly";
3205
+ }
3214
3206
  function isArcadeImmutableArray(value) {
3215
3207
  return (typeof value.length === "function" &&
3216
3208
  typeof value.get === "function" &&
@@ -3245,6 +3237,12 @@ function valueToArcadeResult(value) {
3245
3237
  if (isArcadeDate(value)) {
3246
3238
  return { type: "date", simpleType: false, value };
3247
3239
  }
3240
+ if (isArcadeDateOnly(value)) {
3241
+ return { type: "dateOnly", simpleType: false, value };
3242
+ }
3243
+ if (isArcadeTimeOnly(value)) {
3244
+ return { type: "time", simpleType: false, value };
3245
+ }
3248
3246
  if (isArcadeAttachment(value)) {
3249
3247
  return { type: "attachment", simpleType: false, value };
3250
3248
  }
@@ -3267,15 +3265,22 @@ function valueToArcadeResult(value) {
3267
3265
  }
3268
3266
  function formatArcadeResultDate(dateObject, lang = "en") {
3269
3267
  // Default to english
3270
- return dateObject.value instanceof Date
3271
- ? new Intl.DateTimeFormat(lang, { dateStyle: "medium", timeStyle: "long" }).format(dateObject.value)
3272
- : dateObject.value.toDateTime().setLocale(lang).toLocaleString({
3273
- dateStyle: "medium",
3274
- timeStyle: "long"
3275
- });
3268
+ if (dateObject.value instanceof Date) {
3269
+ return new Intl.DateTimeFormat(lang, { dateStyle: "medium", timeStyle: "long" }).format(dateObject.value);
3270
+ }
3271
+ return dateObject.value
3272
+ .toDateTime()
3273
+ .setLocale(lang)
3274
+ .toFormat(dateObject.value.isUnknownTimeZone ? "FF" : "FF ZZZZZ");
3275
+ }
3276
+ function formatArcadeResultDateOnly(dateObject) {
3277
+ return dateObject.value.toString();
3278
+ }
3279
+ function formatArcadeResultTimeOnly(dateObject) {
3280
+ return dateObject.value.toString();
3276
3281
  }
3277
3282
  function fieldValueToArcadeResult(field, value) {
3278
- if (fieldTypeToArcadeType(field) === "date" && typeof value === "number") {
3283
+ if (field.type === "date" && typeof value === "number") {
3279
3284
  value = new Date(value);
3280
3285
  }
3281
3286
  return valueToArcadeResult(value);
@@ -3314,9 +3319,10 @@ async function executeScript(editorProfile, script, testContext, console) {
3314
3319
  // We want to measure the execution time
3315
3320
  const t1 = performance.now();
3316
3321
  // Manufacture our execution context
3317
- const { profileVariableInstances, spatialReference } = testContext;
3322
+ const { profileVariableInstances, spatialReference, timeReference } = testContext;
3318
3323
  const executeContext = {
3319
3324
  spatialReference,
3325
+ timeReference,
3320
3326
  rawOutput: true,
3321
3327
  console
3322
3328
  };
@@ -3882,6 +3888,8 @@ const ArcgisArcadeResults = class {
3882
3888
  case "text":
3883
3889
  case "number":
3884
3890
  case "date":
3891
+ case "dateOnly":
3892
+ case "time":
3885
3893
  case "boolean":
3886
3894
  return (h("div", { class: "result-value-simple ltr-container" }, h("span", { class: "value-type" }, this.result.type, ":\u00A0"), this.renderSimpleValue(this.result)));
3887
3895
  case "array": {
@@ -3919,6 +3927,10 @@ const ArcgisArcadeResults = class {
3919
3927
  return h("span", { class: "constant-value" }, arcadeResult.value.toString());
3920
3928
  case "date":
3921
3929
  return h("span", { class: "date-value" }, formatArcadeResultDate(arcadeResult));
3930
+ case "dateOnly":
3931
+ return h("span", { class: "string-value" }, quoteString(formatArcadeResultDateOnly(arcadeResult)));
3932
+ case "time":
3933
+ return h("span", { class: "string-value" }, quoteString(formatArcadeResultTimeOnly(arcadeResult)));
3922
3934
  default:
3923
3935
  return null;
3924
3936
  }
@@ -3956,6 +3968,8 @@ const ArcgisArcadeResults = class {
3956
3968
  case "text":
3957
3969
  case "number":
3958
3970
  case "date":
3971
+ case "dateOnly":
3972
+ case "time":
3959
3973
  case "boolean":
3960
3974
  return (h("calcite-tree-item", null, h("div", { class: "tree-item-label" }, this.renderDictionaryProperty(key), this.renderSimpleValue(arcadeResult))));
3961
3975
  case "array": {
@@ -4394,13 +4408,20 @@ const ArcgisCodeEditor = class {
4394
4408
  componentDidLoad() {
4395
4409
  // Create and attach and instance of Monaco Editor to the inner element
4396
4410
  editor.getModel(this.getUri())?.dispose();
4397
- const model = editor.createModel(this.value ?? "", this.language, this.getUri());
4411
+ // Create the model without the value.
4412
+ // Since it's not yet attached to the editor the diagnostic service will not process it.
4413
+ // We will set the value after the editor has been created to trigger the diagnostic again.
4414
+ const model = editor.createModel("", this.language, this.getUri());
4415
+ // Create the editor for the host element.
4416
+ // This will not trigger a diagnostic.
4398
4417
  this._editorInstance = editor.create(this._hostElt, {
4399
4418
  model,
4400
4419
  fixedOverflowWidgets: true,
4401
4420
  scrollBeyondLastLine: false
4402
4421
  });
4403
4422
  this._disposables.push(this._editorInstance);
4423
+ // Set the value now to trigger a diagnostic again
4424
+ model.setValue(this.value ?? "");
4404
4425
  // Now we can set are component as ready
4405
4426
  this._componentReadyDefer.resolve();
4406
4427
  this._editorInstance.updateOptions(EditorOptionsDefaults);
@@ -1,4 +1,4 @@
1
- import { t as monaco_editor_core_star } from './arcade-defaults-24670a1d.js';
1
+ import { v as monaco_editor_core_star } from './arcade-defaults-e4176a6a.js';
2
2
  import './index-d4ec142a.js';
3
3
 
4
4
  /*!-----------------------------------------------------------------------------
@@ -1,4 +1,4 @@
1
- import { t as monaco_editor_core_star } from './arcade-defaults-24670a1d.js';
1
+ import { v as monaco_editor_core_star } from './arcade-defaults-e4176a6a.js';
2
2
  import './index-d4ec142a.js';
3
3
 
4
4
  /*!-----------------------------------------------------------------------------
@@ -1,4 +1,4 @@
1
- import { t as monaco_editor_core_star } from './arcade-defaults-24670a1d.js';
1
+ import { v as monaco_editor_core_star } from './arcade-defaults-e4176a6a.js';
2
2
  import './index-d4ec142a.js';
3
3
 
4
4
  /*!-----------------------------------------------------------------------------
package/dist/esm/index.js CHANGED
@@ -1,8 +1,2 @@
1
- import { a as arcadeDefaults } from './arcade-defaults-24670a1d.js';
1
+ export { a as arcade } from './arcade-defaults-e4176a6a.js';
2
2
  import './index-d4ec142a.js';
3
-
4
- const arcade = {
5
- setProfileForModel: arcadeDefaults.setProfileForModel.bind(arcadeDefaults)
6
- };
7
-
8
- export { arcade };
@@ -1,5 +1,5 @@
1
- import { conf as conf$1, language as language$1 } from './typescript-de4f8a27.js';
2
- import './arcade-defaults-24670a1d.js';
1
+ import { conf as conf$1, language as language$1 } from './typescript-34fa1e83.js';
2
+ import './arcade-defaults-e4176a6a.js';
3
3
  import './index-d4ec142a.js';
4
4
 
5
5
  /*!-----------------------------------------------------------------------------
@@ -1,4 +1,4 @@
1
- import { t as monaco_editor_core_star } from './arcade-defaults-24670a1d.js';
1
+ import { v as monaco_editor_core_star } from './arcade-defaults-e4176a6a.js';
2
2
  import './index-d4ec142a.js';
3
3
 
4
4
  /*!-----------------------------------------------------------------------------
@@ -1,4 +1,4 @@
1
- import { u as typescriptDefaults, t as monaco_editor_core_star } from './arcade-defaults-24670a1d.js';
1
+ import { w as typescriptDefaults, v as monaco_editor_core_star } from './arcade-defaults-e4176a6a.js';
2
2
  import './index-d4ec142a.js';
3
3
 
4
4
  /*!-----------------------------------------------------------------------------
@@ -1,4 +1,4 @@
1
- import { t as monaco_editor_core_star } from './arcade-defaults-24670a1d.js';
1
+ import { v as monaco_editor_core_star } from './arcade-defaults-e4176a6a.js';
2
2
  import './index-d4ec142a.js';
3
3
 
4
4
  /*!-----------------------------------------------------------------------------
@@ -1,5 +1,3 @@
1
1
  export * from "./components";
2
- declare const arcade: {
3
- setProfileForModel: any;
4
- };
5
- export { arcade };
2
+ export { arcade } from "./utils/arcade-monaco/arcade-defaults";
3
+ export { Diagnostic } from "@arcgis/arcade-languageservice";
@@ -17,11 +17,18 @@ export interface IEditorTestContext {
17
17
  profileVariableInstances: ProfileVariableInstances;
18
18
  /**
19
19
  * Spatial reference object used to define the spatial reference for the arcade runtime.
20
- * If not provided, it dfaults to Web Mercator (wkid: 3857).
20
+ * By defaults, the spatial reference is set to Web Mercator (wkid: 3857).
21
21
  */
22
22
  spatialReference?: __esri.SpatialReference | {
23
23
  wkid: number;
24
24
  };
25
+ /**
26
+ * Defines the default time reference in which to create and display Arcade date types.
27
+ * By default, the time zone is set to "system".
28
+ */
29
+ timeReference?: {
30
+ timeZone: string;
31
+ };
25
32
  }
26
33
  /**
27
34
  * @deprecated Use IEditorTestContext instead.
@@ -50,8 +57,23 @@ export interface IArcadeRuntimeFeatureSetIterator {
50
57
  export interface IArcadeRuntimeDate {
51
58
  declaredRootClass: string;
52
59
  toDateTime(): any;
60
+ isUnknownTimeZone: boolean;
61
+ }
62
+ export interface IArcadeRuntimeDateOnly {
63
+ declaredRootClass: string;
64
+ /**
65
+ * To ISO Date format
66
+ */
67
+ toString(): string;
53
68
  }
54
- export type ResultType = "unknown" | "error" | "null" | "array" | "date" | "text" | "number" | "boolean" | "dictionary" | "geometry" | "attachment" | "feature" | "featureSet" | "portal";
69
+ export interface IArcadeRuntimeTimeOnly {
70
+ declaredRootClass: string;
71
+ /**
72
+ * To ISO Time format
73
+ */
74
+ toString(): string;
75
+ }
76
+ export type ResultType = "unknown" | "error" | "null" | "array" | "date" | "dateOnly" | "time" | "text" | "number" | "boolean" | "dictionary" | "geometry" | "attachment" | "feature" | "featureSet" | "portal";
55
77
  interface IArcadeResultBase {
56
78
  type: ResultType;
57
79
  simpleType: boolean;
@@ -79,6 +101,14 @@ export interface IArcadeResultDate extends IArcadeResultBase {
79
101
  type: "date";
80
102
  value: IArcadeRuntimeDate | Date;
81
103
  }
104
+ export interface IArcadeResultDateOnly extends IArcadeResultBase {
105
+ type: "dateOnly";
106
+ value: IArcadeRuntimeDateOnly;
107
+ }
108
+ export interface IArcadeResultTimeOnly extends IArcadeResultBase {
109
+ type: "time";
110
+ value: IArcadeRuntimeTimeOnly;
111
+ }
82
112
  export interface IArcadeResultString extends IArcadeResultBase {
83
113
  type: "text";
84
114
  value: string;
@@ -117,9 +147,11 @@ export interface IArcadeResultAttachment extends IArcadeResultBase {
117
147
  type: "attachment";
118
148
  value: IArcadeRuntimeDictionary;
119
149
  }
120
- export type ArcadeResult = IArcadeResultError | IArcadeResultUnknown | IArcadeResultNull | IArcadeResultNumber | IArcadeResultBoolean | IArcadeResultString | IArcadeResultDate | IArcadeResultArray | IArcadeResultDictionary | IArcadeResultGeometry | IArcadeResultAttachment | IArcadeResultFeature | IArcadeResultFeatureSet | IArcadeResultPortal;
150
+ export type ArcadeResult = IArcadeResultError | IArcadeResultUnknown | IArcadeResultNull | IArcadeResultNumber | IArcadeResultBoolean | IArcadeResultString | IArcadeResultDate | IArcadeResultDateOnly | IArcadeResultTimeOnly | IArcadeResultArray | IArcadeResultDictionary | IArcadeResultGeometry | IArcadeResultAttachment | IArcadeResultFeature | IArcadeResultFeatureSet | IArcadeResultPortal;
121
151
  export declare function valueToArcadeResult(value: unknown): ArcadeResult;
122
152
  export declare function formatArcadeResultDate(dateObject: IArcadeResultDate, lang?: string): string;
153
+ export declare function formatArcadeResultDateOnly(dateObject: IArcadeResultDateOnly): string;
154
+ export declare function formatArcadeResultTimeOnly(dateObject: IArcadeResultTimeOnly): string;
123
155
  export declare function fieldValueToArcadeResult(field: __esri.Field, value: unknown): ArcadeResult;
124
156
  export declare function executeScript(editorProfile: IEditorProfileDefinition | undefined, script: string | undefined, testContext: IEditorTestContext, console?: (log: string) => void): Promise<ArcadeResult>;
125
157
  export {};
@@ -68,4 +68,10 @@ declare class ArcadeLanguageServiceDefaults implements IArcadeLanguageServiceDef
68
68
  setLanguageOptions(languageOptions?: ArcadeLanguageServiceSettings): void;
69
69
  }
70
70
  export declare const arcadeDefaults: ArcadeLanguageServiceDefaults;
71
+ export declare const arcade: {
72
+ setProfileForModel(modelId: string | Uri, definition: IEditorProfileDefinition | IPredefinedProfile | undefined, apiContext?: {
73
+ locale: string;
74
+ snippets?: ApiSnippet[];
75
+ }): Promise<void>;
76
+ };
71
77
  export {};
@@ -0,0 +1,10 @@
1
+ import type { ApiValueVariableType } from "@arcgis/arcade-languageservice";
2
+ /**
3
+ * Returns an icon name for the field type
4
+ */
5
+ export declare function fieldTypeToIconName(field: __esri.Field): string;
6
+ /**
7
+ * Returns the Arcade type for the given field.
8
+ */
9
+ export declare function fieldTypeToArcadeType(field: __esri.Field): ApiValueVariableType;
10
+ export declare function supportedFields(fields: __esri.Field[] | null | undefined): __esri.Field[];
@@ -40,7 +40,7 @@ export type ProfileVariableType = ApiVariableType;
40
40
  /**
41
41
  * The type of value variables supported.
42
42
  */
43
- export type ProfileVariableValueType = "number" | "text" | "date" | "boolean" | "geometry";
43
+ export type ProfileVariableValueType = "number" | "text" | "date" | "boolean" | "geometry" | "dateOnly" | "time";
44
44
  /**
45
45
  * The supported profile variable types.
46
46
  */
@@ -62,7 +62,7 @@ export interface IProfileVariableBase {
62
62
  * Single value profile variable declaration.
63
63
  */
64
64
  export interface IProfileValue extends IProfileVariableBase {
65
- readonly type: "number" | "text" | "date" | "boolean" | "geometry";
65
+ readonly type: "number" | "text" | "date" | "boolean" | "geometry" | "dateOnly" | "time";
66
66
  }
67
67
  /**
68
68
  * Dictionary profile variable declaration. Properties of a dictionary are profile variables.
@@ -1,4 +1,3 @@
1
- import type { ApiValueVariableType } from "@arcgis/arcade-languageservice";
2
1
  type KeysOfType<T, U> = {
3
2
  [P in keyof T]: T[P] extends U ? P : never;
4
3
  }[keyof T];
@@ -10,9 +9,4 @@ export declare function filterCollection<T, U extends KeysOfType<T, string | und
10
9
  * Returns the url to the portal item.
11
10
  */
12
11
  export declare function portalItemPageUrl(portalItem: __esri.PortalItem | null | undefined): string;
13
- /**
14
- * Returns the Arcade type for the given field.
15
- */
16
- export declare function fieldTypeToArcadeType(field: __esri.Field): ApiValueVariableType;
17
- export declare function supportedFields(fields: __esri.Field[] | null | undefined): __esri.Field[];
18
12
  export {};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@arcgis/coding-components",
3
3
  "description": "Contains components for editing code in different languages. The currently supported languages are html, css, json, TypeScript, JavaScript, and Arcade.",
4
- "version": "1.0.0-beta.7",
4
+ "version": "4.28.0-beta.0",
5
5
  "module": "dist/components/index.js",
6
6
  "main": "dist/index.cjs.js",
7
7
  "types": "dist/types/index.d.ts",
@@ -50,17 +50,17 @@
50
50
  "prettier": "prettier . --write"
51
51
  },
52
52
  "dependencies": {
53
- "@arcgis/arcade-languageservice": "1.22.0-next.8",
54
- "@arcgis/components-utils": "1.0.0-beta.7",
55
- "@esri/calcite-components": "^1.3.0",
53
+ "@arcgis/arcade-languageservice": "4.28.0-beta.0",
54
+ "@esri/calcite-components": "^1.8.0",
56
55
  "@stencil/core": "2.22.3",
57
56
  "monaco-editor": "^0.39.0",
58
57
  "vscode-languageserver-types": "^3.17.3"
59
58
  },
60
59
  "devDependencies": {
61
- "@arcgis/components-plugins": "1.0.0-beta.7",
60
+ "@arcgis/components-plugins": "4.28.0-beta.0",
61
+ "@arcgis/components-utils": "4.28.0-beta.0",
62
62
  "@arcgis/core": ">=4.28.0-next <4.29",
63
- "@arcgis/core-adapter": "1.0.0-beta.10",
63
+ "@arcgis/core-adapter": "4.28.0-beta.0",
64
64
  "@arcgis/eslint-config": "1.0.0",
65
65
  "@arcgis/typescript-config": "1.0.0",
66
66
  "@stencil/sass": "^2.0.4",
@@ -80,7 +80,7 @@
80
80
  "@types/sass": "^1.45.0",
81
81
  "@vitejs/plugin-react": "^4.0.1",
82
82
  "esbuild": "^0.19.2",
83
- "eslint": "^8.45.0",
83
+ "eslint": "^8.49.0",
84
84
  "estraverse": "^5.3.0",
85
85
  "fs-extra": "^11.1.1",
86
86
  "jest": "^29.5.0",
@@ -112,5 +112,5 @@
112
112
  "peerDependencies": {
113
113
  "@arcgis/core": ">=4.28.0-next <4.29"
114
114
  },
115
- "gitHead": "cd1b3bf7e48b497211638bbe607ad0e10340b119"
115
+ "gitHead": "448ecffaad71712dd1561b20454b77146625faa8"
116
116
  }
@@ -1 +0,0 @@
1
- import{e as n,M as t,v as e,R as r,w as i,l as o,C as u,E as c}from"./p-2eee5b07.js";import"./p-0fa0a06d.js";var a,s,f,d,l,v,g,p,h,m,b,x,w,k,y,I,E,S,A,O,j,N,U,C,T,F,L,D,P,_=((a=_||{}).False="false",a.Null="null",a.True="true",a),R=(n=>(n.Break="break",n.Continue="continue",n.Else="else",n.For="for",n.From="from",n.Function="function",n.If="if",n.Import="import",n.Export="export",n.In="in",n.Return="return",n.Var="var",n.While="while",n))(R||{}),$=(n=>(n.AssignmentExpression="AssignmentExpression",n.ArrayExpression="ArrayExpression",n.BlockComment="BlockComment",n.BlockStatement="BlockStatement",n.BinaryExpression="BinaryExpression",n.BreakStatement="BreakStatement",n.CallExpression="CallExpression",n.ContinueStatement="ContinueStatement",n.EmptyStatement="EmptyStatement",n.ExpressionStatement="ExpressionStatement",n.ExportNamedDeclaration="ExportNamedDeclaration",n.ExportSpecifier="ExportSpecifier",n.ForStatement="ForStatement",n.ForInStatement="ForInStatement",n.FunctionDeclaration="FunctionDeclaration",n.Identifier="Identifier",n.IfStatement="IfStatement",n.ImportDeclaration="ImportDeclaration",n.ImportDefaultSpecifier="ImportDefaultSpecifier",n.LineComment="LineComment",n.Literal="Literal",n.LogicalExpression="LogicalExpression",n.MemberExpression="MemberExpression",n.ObjectExpression="ObjectExpression",n.Program="Program",n.Property="Property",n.ReturnStatement="ReturnStatement",n.TemplateElement="TemplateElement",n.TemplateLiteral="TemplateLiteral",n.UnaryExpression="UnaryExpression",n.UpdateExpression="UpdateExpression",n.VariableDeclaration="VariableDeclaration",n.VariableDeclarator="VariableDeclarator",n.WhileStatement="WhileStatement",n))($||{}),M=(n=>(n[n.Unknown=0]="Unknown",n[n.BooleanLiteral=1]="BooleanLiteral",n[n.EOF=2]="EOF",n[n.Identifier=3]="Identifier",n[n.Keyword=4]="Keyword",n[n.NullLiteral=5]="NullLiteral",n[n.NumericLiteral=6]="NumericLiteral",n[n.Punctuator=7]="Punctuator",n[n.StringLiteral=8]="StringLiteral",n[n.Template=10]="Template",n))(M||{}),B=(n=>(n.InvalidModuleUri="InvalidModuleUri",n.ForInOfLoopInitializer="ForInOfLoopInitializer",n.IdentiferExpected="IdentiferExpected",n.InvalidEscapedReservedWord="InvalidEscapedReservedWord",n.InvalidExpression="InvalidExpression",n.InvalidFunctionIdentifier="InvalidFunctionIdentifier",n.InvalidHexEscapeSequence="InvalidHexEscapeSequence",n.InvalidLeftHandSideInAssignment="InvalidLeftHandSideInAssignment",n.InvalidLeftHandSideInForIn="InvalidLeftHandSideInForIn",n.InvalidTemplateHead="InvalidTemplateHead",n.InvalidVariableAssignment="InvalidVariableAssignment",n.KeyMustBeString="KeyMustBeString",n.NoFunctionInsideBlock="NoFunctionInsideBlock",n.NoFunctionInsideFunction="NoFunctionInsideFunction",n.ModuleExportRootOnly="ModuleExportRootOnly",n.ModuleImportRootOnly="ModuleImportRootOnly",n.PunctuatorExpected="PunctuatorExpected",n.TemplateOctalLiteral="TemplateOctalLiteral",n.UnexpectedBoolean="UnexpectedBoolean",n.UnexpectedEndOfScript="UnexpectedEndOfScript",n.UnexpectedIdentifier="UnexpectedIdentifier",n.UnexpectedKeyword="UnexpectedKeyword",n.UnexpectedNull="UnexpectedNull",n.UnexpectedNumber="UnexpectedNumber",n.UnexpectedPunctuator="UnexpectedPunctuator",n.UnexpectedString="UnexpectedString",n.UnexpectedTemplate="UnexpectedTemplate",n.UnexpectedToken="UnexpectedToken",n))(B||{}),W=[[],[],[]];["++","--"].forEach((n=>W[n.length-1].push(n))),["-","+","!","~"].forEach((n=>W[n.length-1].push(n))),["||","&&"].forEach((n=>W[n.length-1].push(n))),["=","/=","*=","%=","+=","-="].forEach((n=>W[n.length-1].push(n))),["|","&",">>","<<",">>>","^","==","!=","<","<=",">",">=","+","-","*","/","%"].forEach((n=>W[n.length-1].push(n))),(s||(s={})).is=function(n){return"string"==typeof n},(f||(f={})).is=function(n){return"string"==typeof n},function(n){n.MIN_VALUE=-2147483648,n.MAX_VALUE=2147483647,n.is=function(t){return"number"==typeof t&&n.MIN_VALUE<=t&&t<=n.MAX_VALUE}}(d||(d={})),function(n){n.MIN_VALUE=0,n.MAX_VALUE=2147483647,n.is=function(t){return"number"==typeof t&&n.MIN_VALUE<=t&&t<=n.MAX_VALUE}}(l||(l={})),function(n){n.create=function(n,t){return n===Number.MAX_VALUE&&(n=l.MAX_VALUE),t===Number.MAX_VALUE&&(t=l.MAX_VALUE),{line:n,character:t}},n.is=function(n){var t=n;return _n.objectLiteral(t)&&_n.uinteger(t.line)&&_n.uinteger(t.character)}}(v||(v={})),function(n){n.create=function(n,t,e,r){if(_n.uinteger(n)&&_n.uinteger(t)&&_n.uinteger(e)&&_n.uinteger(r))return{start:v.create(n,t),end:v.create(e,r)};if(v.is(n)&&v.is(t))return{start:n,end:t};throw new Error("Range#create called with invalid arguments[".concat(n,", ").concat(t,", ").concat(e,", ").concat(r,"]"))},n.is=function(n){var t=n;return _n.objectLiteral(t)&&v.is(t.start)&&v.is(t.end)}}(g||(g={})),function(n){n.create=function(n,t){return{uri:n,range:t}},n.is=function(n){var t=n;return _n.objectLiteral(t)&&g.is(t.range)&&(_n.string(t.uri)||_n.undefined(t.uri))}}(p||(p={})),function(n){n.create=function(n,t,e,r){return{targetUri:n,targetRange:t,targetSelectionRange:e,originSelectionRange:r}},n.is=function(n){var t=n;return _n.objectLiteral(t)&&g.is(t.targetRange)&&_n.string(t.targetUri)&&g.is(t.targetSelectionRange)&&(g.is(t.originSelectionRange)||_n.undefined(t.originSelectionRange))}}(h||(h={})),function(n){n.create=function(n,t,e,r){return{red:n,green:t,blue:e,alpha:r}},n.is=function(n){var t=n;return _n.objectLiteral(t)&&_n.numberRange(t.red,0,1)&&_n.numberRange(t.green,0,1)&&_n.numberRange(t.blue,0,1)&&_n.numberRange(t.alpha,0,1)}}(m||(m={})),function(n){n.create=function(n,t){return{range:n,color:t}},n.is=function(n){var t=n;return _n.objectLiteral(t)&&g.is(t.range)&&m.is(t.color)}}(b||(b={})),function(n){n.create=function(n,t,e){return{label:n,textEdit:t,additionalTextEdits:e}},n.is=function(n){var t=n;return _n.objectLiteral(t)&&_n.string(t.label)&&(_n.undefined(t.textEdit)||j.is(t))&&(_n.undefined(t.additionalTextEdits)||_n.typedArray(t.additionalTextEdits,j.is))}}(x||(x={})),function(n){n.Comment="comment",n.Imports="imports",n.Region="region"}(w||(w={})),function(n){n.create=function(n,t,e,r,i,o){var u={startLine:n,endLine:t};return _n.defined(e)&&(u.startCharacter=e),_n.defined(r)&&(u.endCharacter=r),_n.defined(i)&&(u.kind=i),_n.defined(o)&&(u.collapsedText=o),u},n.is=function(n){var t=n;return _n.objectLiteral(t)&&_n.uinteger(t.startLine)&&_n.uinteger(t.startLine)&&(_n.undefined(t.startCharacter)||_n.uinteger(t.startCharacter))&&(_n.undefined(t.endCharacter)||_n.uinteger(t.endCharacter))&&(_n.undefined(t.kind)||_n.string(t.kind))}}(k||(k={})),function(n){n.create=function(n,t){return{location:n,message:t}},n.is=function(n){var t=n;return _n.defined(t)&&p.is(t.location)&&_n.string(t.message)}}(y||(y={})),function(n){n.Error=1,n.Warning=2,n.Information=3,n.Hint=4}(I||(I={})),function(n){n.Unnecessary=1,n.Deprecated=2}(E||(E={})),(S||(S={})).is=function(n){var t=n;return _n.objectLiteral(t)&&_n.string(t.href)},function(n){n.create=function(n,t,e,r,i,o){var u={range:n,message:t};return _n.defined(e)&&(u.severity=e),_n.defined(r)&&(u.code=r),_n.defined(i)&&(u.source=i),_n.defined(o)&&(u.relatedInformation=o),u},n.is=function(n){var t,e=n;return _n.defined(e)&&g.is(e.range)&&_n.string(e.message)&&(_n.number(e.severity)||_n.undefined(e.severity))&&(_n.integer(e.code)||_n.string(e.code)||_n.undefined(e.code))&&(_n.undefined(e.codeDescription)||_n.string(null===(t=e.codeDescription)||void 0===t?void 0:t.href))&&(_n.string(e.source)||_n.undefined(e.source))&&(_n.undefined(e.relatedInformation)||_n.typedArray(e.relatedInformation,y.is))}}(A||(A={})),function(n){n.create=function(n,t){for(var e=[],r=2;r<arguments.length;r++)e[r-2]=arguments[r];var i={title:n,command:t};return _n.defined(e)&&e.length>0&&(i.arguments=e),i},n.is=function(n){var t=n;return _n.defined(t)&&_n.string(t.title)&&_n.string(t.command)}}(O||(O={})),function(n){n.replace=function(n,t){return{range:n,newText:t}},n.insert=function(n,t){return{range:{start:n,end:n},newText:t}},n.del=function(n){return{range:n,newText:""}},n.is=function(n){var t=n;return _n.objectLiteral(t)&&_n.string(t.newText)&&g.is(t.range)}}(j||(j={})),function(n){n.create=function(n,t,e){var r={label:n};return void 0!==t&&(r.needsConfirmation=t),void 0!==e&&(r.description=e),r},n.is=function(n){var t=n;return _n.objectLiteral(t)&&_n.string(t.label)&&(_n.boolean(t.needsConfirmation)||void 0===t.needsConfirmation)&&(_n.string(t.description)||void 0===t.description)}}(N||(N={})),(U||(U={})).is=function(n){return _n.string(n)},function(n){n.replace=function(n,t,e){return{range:n,newText:t,annotationId:e}},n.insert=function(n,t,e){return{range:{start:n,end:n},newText:t,annotationId:e}},n.del=function(n,t){return{range:n,newText:"",annotationId:t}},n.is=function(n){var t=n;return j.is(t)&&(N.is(t.annotationId)||U.is(t.annotationId))}}(C||(C={})),function(n){n.create=function(n,t){return{textDocument:n,edits:t}},n.is=function(n){var t=n;return _n.defined(t)&&H.is(t.textDocument)&&Array.isArray(t.edits)}}(T||(T={})),function(n){n.create=function(n,t,e){var r={kind:"create",uri:n};return void 0!==t&&(void 0!==t.overwrite||void 0!==t.ignoreIfExists)&&(r.options=t),void 0!==e&&(r.annotationId=e),r},n.is=function(n){var t=n;return t&&"create"===t.kind&&_n.string(t.uri)&&(void 0===t.options||(void 0===t.options.overwrite||_n.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||_n.boolean(t.options.ignoreIfExists)))&&(void 0===t.annotationId||U.is(t.annotationId))}}(F||(F={})),function(n){n.create=function(n,t,e,r){var i={kind:"rename",oldUri:n,newUri:t};return void 0!==e&&(void 0!==e.overwrite||void 0!==e.ignoreIfExists)&&(i.options=e),void 0!==r&&(i.annotationId=r),i},n.is=function(n){var t=n;return t&&"rename"===t.kind&&_n.string(t.oldUri)&&_n.string(t.newUri)&&(void 0===t.options||(void 0===t.options.overwrite||_n.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||_n.boolean(t.options.ignoreIfExists)))&&(void 0===t.annotationId||U.is(t.annotationId))}}(L||(L={})),function(n){n.create=function(n,t,e){var r={kind:"delete",uri:n};return void 0!==t&&(void 0!==t.recursive||void 0!==t.ignoreIfNotExists)&&(r.options=t),void 0!==e&&(r.annotationId=e),r},n.is=function(n){var t=n;return t&&"delete"===t.kind&&_n.string(t.uri)&&(void 0===t.options||(void 0===t.options.recursive||_n.boolean(t.options.recursive))&&(void 0===t.options.ignoreIfNotExists||_n.boolean(t.options.ignoreIfNotExists)))&&(void 0===t.annotationId||U.is(t.annotationId))}}(D||(D={})),(P||(P={})).is=function(n){return n&&(void 0!==n.changes||void 0!==n.documentChanges)&&(void 0===n.documentChanges||n.documentChanges.every((function(n){return _n.string(n.kind)?F.is(n)||L.is(n)||D.is(n):T.is(n)})))};var z,V,H,K,q,X,Z,G,J,Q,Y,nn,tn,en,rn,on,un,cn,an,sn,fn,dn,ln,vn,gn,pn,hn,mn,bn,xn,wn,kn,yn,In,En,Sn,An,On,jn,Nn,Un,Cn,Tn,Fn,Ln,Dn=function(){function n(n,t){this.edits=n,this.changeAnnotations=t}return n.prototype.insert=function(n,t,e){var r,i;if(void 0===e?r=j.insert(n,t):U.is(e)?(i=e,r=C.insert(n,t,e)):(this.assertChangeAnnotations(this.changeAnnotations),i=this.changeAnnotations.manage(e),r=C.insert(n,t,i)),this.edits.push(r),void 0!==i)return i},n.prototype.replace=function(n,t,e){var r,i;if(void 0===e?r=j.replace(n,t):U.is(e)?(i=e,r=C.replace(n,t,e)):(this.assertChangeAnnotations(this.changeAnnotations),i=this.changeAnnotations.manage(e),r=C.replace(n,t,i)),this.edits.push(r),void 0!==i)return i},n.prototype.delete=function(n,t){var e,r;if(void 0===t?e=j.del(n):U.is(t)?(r=t,e=C.del(n,t)):(this.assertChangeAnnotations(this.changeAnnotations),r=this.changeAnnotations.manage(t),e=C.del(n,r)),this.edits.push(e),void 0!==r)return r},n.prototype.add=function(n){this.edits.push(n)},n.prototype.all=function(){return this.edits},n.prototype.clear=function(){this.edits.splice(0,this.edits.length)},n.prototype.assertChangeAnnotations=function(n){if(void 0===n)throw new Error("Text edit change is not configured to manage change annotations.")},n}(),Pn=function(){function n(n){this._annotations=void 0===n?Object.create(null):n,this._counter=0,this._size=0}return n.prototype.all=function(){return this._annotations},Object.defineProperty(n.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),n.prototype.manage=function(n,t){var e;if(U.is(n)?e=n:(e=this.nextId(),t=n),void 0!==this._annotations[e])throw new Error("Id ".concat(e," is already in use."));if(void 0===t)throw new Error("No annotation provided for id ".concat(e));return this._annotations[e]=t,this._size++,e},n.prototype.nextId=function(){return this._counter++,this._counter.toString()},n}();!function(){function n(n){var t=this;this._textEditChanges=Object.create(null),void 0!==n?(this._workspaceEdit=n,n.documentChanges?(this._changeAnnotations=new Pn(n.changeAnnotations),n.changeAnnotations=this._changeAnnotations.all(),n.documentChanges.forEach((function(n){if(T.is(n)){var e=new Dn(n.edits,t._changeAnnotations);t._textEditChanges[n.textDocument.uri]=e}}))):n.changes&&Object.keys(n.changes).forEach((function(e){var r=new Dn(n.changes[e]);t._textEditChanges[e]=r}))):this._workspaceEdit={}}Object.defineProperty(n.prototype,"edit",{get:function(){return this.initDocumentChanges(),void 0!==this._changeAnnotations&&(this._workspaceEdit.changeAnnotations=0===this._changeAnnotations.size?void 0:this._changeAnnotations.all()),this._workspaceEdit},enumerable:!1,configurable:!0}),n.prototype.getTextEditChange=function(n){if(H.is(n)){if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for document changes.");var t={uri:n.uri,version:n.version};return(e=this._textEditChanges[t.uri])||(this._workspaceEdit.documentChanges.push({textDocument:t,edits:r=[]}),e=new Dn(r,this._changeAnnotations),this._textEditChanges[t.uri]=e),e}if(this.initChanges(),void 0===this._workspaceEdit.changes)throw new Error("Workspace edit is not configured for normal text edit changes.");var e,r;return(e=this._textEditChanges[n])||(this._workspaceEdit.changes[n]=r=[],e=new Dn(r),this._textEditChanges[n]=e),e},n.prototype.initDocumentChanges=function(){void 0===this._workspaceEdit.documentChanges&&void 0===this._workspaceEdit.changes&&(this._changeAnnotations=new Pn,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())},n.prototype.initChanges=function(){void 0===this._workspaceEdit.documentChanges&&void 0===this._workspaceEdit.changes&&(this._workspaceEdit.changes=Object.create(null))},n.prototype.createFile=function(n,t,e){if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for document changes.");var r,i,o;if(N.is(t)||U.is(t)?r=t:e=t,void 0===r?i=F.create(n,e):(o=U.is(r)?r:this._changeAnnotations.manage(r),i=F.create(n,e,o)),this._workspaceEdit.documentChanges.push(i),void 0!==o)return o},n.prototype.renameFile=function(n,t,e,r){if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for document changes.");var i,o,u;if(N.is(e)||U.is(e)?i=e:r=e,void 0===i?o=L.create(n,t,r):(u=U.is(i)?i:this._changeAnnotations.manage(i),o=L.create(n,t,r,u)),this._workspaceEdit.documentChanges.push(o),void 0!==u)return u},n.prototype.deleteFile=function(n,t,e){if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for document changes.");var r,i,o;if(N.is(t)||U.is(t)?r=t:e=t,void 0===r?i=D.create(n,e):(o=U.is(r)?r:this._changeAnnotations.manage(r),i=D.create(n,e,o)),this._workspaceEdit.documentChanges.push(i),void 0!==o)return o}}(),function(n){n.create=function(n){return{uri:n}},n.is=function(n){var t=n;return _n.defined(t)&&_n.string(t.uri)}}(z||(z={})),function(n){n.create=function(n,t){return{uri:n,version:t}},n.is=function(n){var t=n;return _n.defined(t)&&_n.string(t.uri)&&_n.integer(t.version)}}(V||(V={})),function(n){n.create=function(n,t){return{uri:n,version:t}},n.is=function(n){var t=n;return _n.defined(t)&&_n.string(t.uri)&&(null===t.version||_n.integer(t.version))}}(H||(H={})),function(n){n.create=function(n,t,e,r){return{uri:n,languageId:t,version:e,text:r}},n.is=function(n){var t=n;return _n.defined(t)&&_n.string(t.uri)&&_n.string(t.languageId)&&_n.integer(t.version)&&_n.string(t.text)}}(K||(K={})),function(n){n.PlainText="plaintext",n.Markdown="markdown",n.is=function(t){return t===n.PlainText||t===n.Markdown}}(q||(q={})),(X||(X={})).is=function(n){var t=n;return _n.objectLiteral(n)&&q.is(t.kind)&&_n.string(t.value)},function(n){n.Text=1,n.Method=2,n.Function=3,n.Constructor=4,n.Field=5,n.Variable=6,n.Class=7,n.Interface=8,n.Module=9,n.Property=10,n.Unit=11,n.Value=12,n.Enum=13,n.Keyword=14,n.Snippet=15,n.Color=16,n.File=17,n.Reference=18,n.Folder=19,n.EnumMember=20,n.Constant=21,n.Struct=22,n.Event=23,n.Operator=24,n.TypeParameter=25}(Z||(Z={})),function(n){n.PlainText=1,n.Snippet=2}(G||(G={})),(J||(J={})).Deprecated=1,function(n){n.create=function(n,t,e){return{newText:n,insert:t,replace:e}},n.is=function(n){var t=n;return t&&_n.string(t.newText)&&g.is(t.insert)&&g.is(t.replace)}}(Q||(Q={})),function(n){n.asIs=1,n.adjustIndentation=2}(Y||(Y={})),(nn||(nn={})).is=function(n){var t=n;return t&&(_n.string(t.detail)||void 0===t.detail)&&(_n.string(t.description)||void 0===t.description)},(tn||(tn={})).create=function(n){return{label:n}},(en||(en={})).create=function(n,t){return{items:n||[],isIncomplete:!!t}},function(n){n.fromPlainText=function(n){return n.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")},n.is=function(n){var t=n;return _n.string(t)||_n.objectLiteral(t)&&_n.string(t.language)&&_n.string(t.value)}}(rn||(rn={})),(on||(on={})).is=function(n){var t=n;return!!t&&_n.objectLiteral(t)&&(X.is(t.contents)||rn.is(t.contents)||_n.typedArray(t.contents,rn.is))&&(void 0===n.range||g.is(n.range))},(un||(un={})).create=function(n,t){return t?{label:n,documentation:t}:{label:n}},(cn||(cn={})).create=function(n,t){for(var e=[],r=2;r<arguments.length;r++)e[r-2]=arguments[r];var i={label:n};return _n.defined(t)&&(i.documentation=t),i.parameters=_n.defined(e)?e:[],i},function(n){n.Text=1,n.Read=2,n.Write=3}(an||(an={})),(sn||(sn={})).create=function(n,t){var e={range:n};return _n.number(t)&&(e.kind=t),e},function(n){n.File=1,n.Module=2,n.Namespace=3,n.Package=4,n.Class=5,n.Method=6,n.Property=7,n.Field=8,n.Constructor=9,n.Enum=10,n.Interface=11,n.Function=12,n.Variable=13,n.Constant=14,n.String=15,n.Number=16,n.Boolean=17,n.Array=18,n.Object=19,n.Key=20,n.Null=21,n.EnumMember=22,n.Struct=23,n.Event=24,n.Operator=25,n.TypeParameter=26}(fn||(fn={})),(dn||(dn={})).Deprecated=1,(ln||(ln={})).create=function(n,t,e,r,i){var o={name:n,kind:t,location:{uri:r,range:e}};return i&&(o.containerName=i),o},(vn||(vn={})).create=function(n,t,e,r){return void 0!==r?{name:n,kind:t,location:{uri:e,range:r}}:{name:n,kind:t,location:{uri:e}}},function(n){n.create=function(n,t,e,r,i,o){var u={name:n,detail:t,kind:e,range:r,selectionRange:i};return void 0!==o&&(u.children=o),u},n.is=function(n){var t=n;return t&&_n.string(t.name)&&_n.number(t.kind)&&g.is(t.range)&&g.is(t.selectionRange)&&(void 0===t.detail||_n.string(t.detail))&&(void 0===t.deprecated||_n.boolean(t.deprecated))&&(void 0===t.children||Array.isArray(t.children))&&(void 0===t.tags||Array.isArray(t.tags))}}(gn||(gn={})),function(n){n.Empty="",n.QuickFix="quickfix",n.Refactor="refactor",n.RefactorExtract="refactor.extract",n.RefactorInline="refactor.inline",n.RefactorRewrite="refactor.rewrite",n.Source="source",n.SourceOrganizeImports="source.organizeImports",n.SourceFixAll="source.fixAll"}(pn||(pn={})),function(n){n.Invoked=1,n.Automatic=2}(hn||(hn={})),function(n){n.create=function(n,t,e){var r={diagnostics:n};return null!=t&&(r.only=t),null!=e&&(r.triggerKind=e),r},n.is=function(n){var t=n;return _n.defined(t)&&_n.typedArray(t.diagnostics,A.is)&&(void 0===t.only||_n.typedArray(t.only,_n.string))&&(void 0===t.triggerKind||t.triggerKind===hn.Invoked||t.triggerKind===hn.Automatic)}}(mn||(mn={})),function(n){n.create=function(n,t,e){var r={title:n},i=!0;return"string"==typeof t?(i=!1,r.kind=t):O.is(t)?r.command=t:r.edit=t,i&&void 0!==e&&(r.kind=e),r},n.is=function(n){var t=n;return t&&_n.string(t.title)&&(void 0===t.diagnostics||_n.typedArray(t.diagnostics,A.is))&&(void 0===t.kind||_n.string(t.kind))&&(void 0!==t.edit||void 0!==t.command)&&(void 0===t.command||O.is(t.command))&&(void 0===t.isPreferred||_n.boolean(t.isPreferred))&&(void 0===t.edit||P.is(t.edit))}}(bn||(bn={})),function(n){n.create=function(n,t){var e={range:n};return _n.defined(t)&&(e.data=t),e},n.is=function(n){var t=n;return _n.defined(t)&&g.is(t.range)&&(_n.undefined(t.command)||O.is(t.command))}}(xn||(xn={})),function(n){n.create=function(n,t){return{tabSize:n,insertSpaces:t}},n.is=function(n){var t=n;return _n.defined(t)&&_n.uinteger(t.tabSize)&&_n.boolean(t.insertSpaces)}}(wn||(wn={})),function(n){n.create=function(n,t,e){return{range:n,target:t,data:e}},n.is=function(n){var t=n;return _n.defined(t)&&g.is(t.range)&&(_n.undefined(t.target)||_n.string(t.target))}}(kn||(kn={})),function(n){n.create=function(n,t){return{range:n,parent:t}},n.is=function(t){var e=t;return _n.objectLiteral(e)&&g.is(e.range)&&(void 0===e.parent||n.is(e.parent))}}(yn||(yn={})),function(n){n.namespace="namespace",n.type="type",n.class="class",n.enum="enum",n.interface="interface",n.struct="struct",n.typeParameter="typeParameter",n.parameter="parameter",n.variable="variable",n.property="property",n.enumMember="enumMember",n.event="event",n.function="function",n.method="method",n.macro="macro",n.keyword="keyword",n.modifier="modifier",n.comment="comment",n.string="string",n.number="number",n.regexp="regexp",n.operator="operator",n.decorator="decorator"}(In||(In={})),function(n){n.declaration="declaration",n.definition="definition",n.readonly="readonly",n.static="static",n.deprecated="deprecated",n.abstract="abstract",n.async="async",n.modification="modification",n.documentation="documentation",n.defaultLibrary="defaultLibrary"}(En||(En={})),(Sn||(Sn={})).is=function(n){var t=n;return _n.objectLiteral(t)&&(void 0===t.resultId||"string"==typeof t.resultId)&&Array.isArray(t.data)&&(0===t.data.length||"number"==typeof t.data[0])},function(n){n.create=function(n,t){return{range:n,text:t}},n.is=function(n){var t=n;return null!=t&&g.is(t.range)&&_n.string(t.text)}}(An||(An={})),function(n){n.create=function(n,t,e){return{range:n,variableName:t,caseSensitiveLookup:e}},n.is=function(n){var t=n;return null!=t&&g.is(t.range)&&_n.boolean(t.caseSensitiveLookup)&&(_n.string(t.variableName)||void 0===t.variableName)}}(On||(On={})),function(n){n.create=function(n,t){return{range:n,expression:t}},n.is=function(n){var t=n;return null!=t&&g.is(t.range)&&(_n.string(t.expression)||void 0===t.expression)}}(jn||(jn={})),function(n){n.create=function(n,t){return{frameId:n,stoppedLocation:t}},n.is=function(n){return _n.defined(n)&&g.is(n.stoppedLocation)}}(Nn||(Nn={})),function(n){n.Type=1,n.Parameter=2,n.is=function(n){return 1===n||2===n}}(Un||(Un={})),function(n){n.create=function(n){return{value:n}},n.is=function(n){var t=n;return _n.objectLiteral(t)&&(void 0===t.tooltip||_n.string(t.tooltip)||X.is(t.tooltip))&&(void 0===t.location||p.is(t.location))&&(void 0===t.command||O.is(t.command))}}(Cn||(Cn={})),function(n){n.create=function(n,t,e){var r={position:n,label:t};return void 0!==e&&(r.kind=e),r},n.is=function(n){var t=n;return _n.objectLiteral(t)&&v.is(t.position)&&(_n.string(t.label)||_n.typedArray(t.label,Cn.is))&&(void 0===t.kind||Un.is(t.kind))&&void 0===t.textEdits||_n.typedArray(t.textEdits,j.is)&&(void 0===t.tooltip||_n.string(t.tooltip)||X.is(t.tooltip))&&(void 0===t.paddingLeft||_n.boolean(t.paddingLeft))&&(void 0===t.paddingRight||_n.boolean(t.paddingRight))}}(Tn||(Tn={})),(Fn||(Fn={})).is=function(n){var t=n;return _n.objectLiteral(t)&&f.is(t.uri)&&_n.string(t.name)},function(n){function t(n,e){if(n.length<=1)return n;var r=n.length/2|0,i=n.slice(0,r),o=n.slice(r);t(i,e),t(o,e);for(var u=0,c=0,a=0;u<i.length&&c<o.length;){var s=e(i[u],o[c]);n[a++]=s<=0?i[u++]:o[c++]}for(;u<i.length;)n[a++]=i[u++];for(;c<o.length;)n[a++]=o[c++];return n}n.create=function(n,t,e,r){return new Rn(n,t,e,r)},n.is=function(n){var t=n;return!!(_n.defined(t)&&_n.string(t.uri)&&(_n.undefined(t.languageId)||_n.string(t.languageId))&&_n.uinteger(t.lineCount)&&_n.func(t.getText)&&_n.func(t.positionAt)&&_n.func(t.offsetAt))},n.applyEdits=function(n,e){for(var r=n.getText(),i=t(e,(function(n,t){var e=n.range.start.line-t.range.start.line;return 0===e?n.range.start.character-t.range.start.character:e})),o=r.length,u=i.length-1;u>=0;u--){var c=i[u],a=n.offsetAt(c.range.start),s=n.offsetAt(c.range.end);if(!(s<=o))throw new Error("Overlapping edit");r=r.substring(0,a)+c.newText+r.substring(s,r.length),o=a}return r}}(Ln||(Ln={}));var _n,Rn=function(){function n(n,t,e,r){this._uri=n,this._languageId=t,this._version=e,this._content=r,this._lineOffsets=void 0}return Object.defineProperty(n.prototype,"uri",{get:function(){return this._uri},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"languageId",{get:function(){return this._languageId},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"version",{get:function(){return this._version},enumerable:!1,configurable:!0}),n.prototype.getText=function(n){if(n){var t=this.offsetAt(n.start),e=this.offsetAt(n.end);return this._content.substring(t,e)}return this._content},n.prototype.update=function(n,t){this._content=n.text,this._version=t,this._lineOffsets=void 0},n.prototype.getLineOffsets=function(){if(void 0===this._lineOffsets){for(var n=[],t=this._content,e=!0,r=0;r<t.length;r++){e&&(n.push(r),e=!1);var i=t.charAt(r);e="\r"===i||"\n"===i,"\r"===i&&r+1<t.length&&"\n"===t.charAt(r+1)&&r++}e&&t.length>0&&n.push(t.length),this._lineOffsets=n}return this._lineOffsets},n.prototype.positionAt=function(n){n=Math.max(Math.min(n,this._content.length),0);var t=this.getLineOffsets(),e=0,r=t.length;if(0===r)return v.create(0,n);for(;e<r;){var i=Math.floor((e+r)/2);t[i]>n?r=i:e=i+1}var o=e-1;return v.create(o,n-t[o])},n.prototype.offsetAt=function(n){var t=this.getLineOffsets();if(n.line>=t.length)return this._content.length;if(n.line<0)return 0;var e=t[n.line];return Math.max(Math.min(e+n.character,n.line+1<t.length?t[n.line+1]:this._content.length),e)},Object.defineProperty(n.prototype,"lineCount",{get:function(){return this.getLineOffsets().length},enumerable:!1,configurable:!0}),n}();!function(n){var t=Object.prototype.toString;n.defined=function(n){return typeof n<"u"},n.undefined=function(n){return typeof n>"u"},n.boolean=function(n){return!0===n||!1===n},n.string=function(n){return"[object String]"===t.call(n)},n.number=function(n){return"[object Number]"===t.call(n)},n.numberRange=function(n,e,r){return"[object Number]"===t.call(n)&&e<=n&&n<=r},n.integer=function(n){return"[object Number]"===t.call(n)&&-2147483648<=n&&n<=2147483647},n.uinteger=function(n){return"[object Number]"===t.call(n)&&0<=n&&n<=2147483647},n.func=function(n){return"[object Function]"===t.call(n)},n.objectLiteral=function(n){return null!==n&&"object"==typeof n},n.typedArray=function(n,t){return Array.isArray(n)&&n.every(t)}}(_n||(_n={}));var $n,Mn=(($n=Mn||{}).AlreadyDefined="AlreadyDefined",$n.ApiConflict="ApiConflict",$n.AssignedNeverUsed="AssignedNeverUsed",$n.DefinedNeverAssigned="DefinedNeverAssigned",$n.DefinedNeverUsed="DefinedNeverUsed",$n.EmptyBlockStatement="EmptyBlockStatement",$n.ExecutionError="ExecutionError",$n.InvalidApiFunctionUsage="InvalidApiFunctionUsage",$n.InvalidConstantIdentifier="InvalidConstantIdentifier",$n.InvalidPropertyIdentifier="InvalidPropertyIdentifier",$n.NoArgumentExpected="NoArgumentExpected",$n.NotADictionary="NotADictionary",$n.NotDefined="NotDefined",$n.NotEnoughArguments="NotEnoughArguments",$n.ProfileVariablesAreImmutable="ProfileVariablesAreImmutable",$n.ProfileVariablesConflict="ProfileVariablesConflict",$n.ReservedKeyword="ReservedKeyword",$n.TooManyArguments="TooManyArguments",$n.UnexpectedEmptyFunction="UnexpectedEmptyFunction",$n.UnexpectedPropertyIdentifier="UnexpectedPropertyIdentifier",$n.UnknownPropertyIdentifier="UnknownPropertyIdentifier",$n),Bn=Object.values(R);Object.values(_).map((n=>({label:n,kind:Z.Constant}))),Bn.map((n=>({label:n,kind:Z.Keyword})));const Wn={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]},{open:"`",close:"`",notIn:["string","comment"]}],autoCloseBefore:";:.,=}])` \n\t",folding:{markers:{start:new RegExp("^\\s*//\\s*#?region\\b"),end:new RegExp("^\\s*//\\s*#?endregion\\b")}},indentationRules:{decreaseIndentPattern:/^((?!.*?\/\*).*\*\/)?\s*[\}\]\)].*$/,increaseIndentPattern:/^((?!\/\/).)*(\{[^}"'`]*|\([^)"'`]*|\[[^\]"'`]*)$/}},zn={defaultToken:"invalid",tokenPostfix:".arc",ignoreCase:!0,keywords:Bn.filter((n=>"from"!==n)),operators:["<=",">=","==","!=","+","-","*","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","=","+=","-=","*=","**=","/=","%="],constants:["true","false","null"],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\d+(_+\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,regexpctl:/[(){}\[\]\$\^|\-*+?\.]/,regexpesc:/\\(?:[bBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/,tokenizer:{root:[[/[{}]/,"delimiter.bracket"],{include:"common"}],common:[[/import(?=\s)/,{token:"keyword",next:"@import"}],[/[a-z_$][\w$]*/,{cases:{"@constants":"constant","@keywords":"keyword","@default":"identifier"}}],{include:"@whitespace"},[/\/(?=([^\\\/]|\\.)+\/([gimsuy]*)(\s*)(\.|;|\/|,|\)|\]|\}|$))/,{token:"regexp",bracket:"@open",next:"@regexp"}],[/[()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/(@digits)[eE]([\-+]?(@digits))?/,"number"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/,"number"],[/0[xX](@hexdigits)/,"number"],[/0[oO]?(@octaldigits)/,"number"],[/0[bB](@binarydigits)/,"number"],[/(@digits)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string_double"],[/'/,"string","@string_single"],[/`/,"string","@string_backtick"]],import:[[/import(?=\s)/,{token:"keyword"}],{include:"@whitespace"},[/[a-z_$][\w$]*/,"identifier"],{include:"@whitespace"},[/from/,{token:"keyword",next:"@popall"}]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/,["regexp.escape.control","regexp.escape.control","regexp.escape.control"]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,["regexp.escape.control",{token:"regexp.escape.control",next:"@regexrange"}]],[/(\()(\?:|\?=|\?!)/,["regexp.escape.control","regexp.escape.control"]],[/[()]/,"regexp.escape.control"],[/@regexpctl/,"regexp.escape.control"],[/[^\\\/]/,"regexp"],[/@regexpesc/,"regexp.escape"],[/\\\./,"regexp.invalid"],[/(\/)([gimsuy]*)/,[{token:"regexp",bracket:"@close",next:"@pop"},"keyword.other"]]],regexrange:[[/-/,"regexp.escape.control"],[/\^/,"regexp.invalid"],[/@regexpesc/,"regexp.escape"],[/[^\]]/,"regexp"],[/\]/,{token:"regexp.escape.control",next:"@pop",bracket:"@close"}]],string_double:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],string_single:[[/[^\\']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,"string","@pop"]],string_backtick:[[/\$\{/,{token:"delimiter.bracket",next:"@bracketCounting"}],[/[^\\`$]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/`/,"string","@pop"]],bracketCounting:[[/\{/,"delimiter.bracket","@bracketCounting"],[/\}/,"delimiter.bracket","@pop"],{include:"common"}]}};class Vn{constructor(t,e,{defaults:r,diagnosticsService:i}){this._languageId=t,this._worker=e,this._disposables=[],this._listener=Object.create(null),this._diagnosticsService=i,this._defaults=r;const o=n=>{const t=n.getLanguageId();if(t!==this._languageId)return;let e;this._listener[n.uri.toString()]=n.onDidChangeContent((()=>{window.clearTimeout(e),e=window.setTimeout((()=>this._doValidate(n,t)),500)})),this._doValidate(n,t)},u=t=>{const e=t.uri.toString();n.setModelMarkers(t,this._languageId,[]);const r=this._listener[e];r&&(r.dispose(),delete this._listener[e])};this._disposables.push(n.onDidCreateModel(o)),this._disposables.push(n.onWillDisposeModel((n=>{u(n)}))),this._disposables.push(n.onDidChangeModelLanguage((n=>{u(n.model),o(n.model)}))),this._disposables.push(r.onDidChange((()=>{n.getModels().forEach((n=>{n.getLanguageId()===this._languageId&&(u(n),o(n))}))}))),this._disposables.push(r.onModelContextDidChange((t=>{n.getModels().forEach((n=>{n.getLanguageId()===this._languageId&&n.uri.toString()===t&&this._doValidate(n,this._languageId)}))}))),this._disposables.push({dispose:()=>{for(const n in this._listener)this._listener[n].dispose()}}),n.getModels().forEach(o)}dispose(){this._disposables.forEach((n=>n&&n.dispose())),this._disposables=[]}async _doValidate(t,e){if(t.isAttachedToEditor())try{const r=await this._worker(t.uri),i=this._defaults.getApiContextForModel(t.uri),o=await r.doValidation(t.uri.toString(),i),u=o.map((n=>{return{severity:Hn((t=n).severity),startLineNumber:t.range.start.line+1,startColumn:t.range.start.character+1,endLineNumber:t.range.end.line+1,endColumn:t.range.end.character+1,message:t.message};var t}));this._diagnosticsService.fireDiagnosticsChange(t.uri,o),n.setModelMarkers(t,e,u)}catch(n){console.error(n)}}}function Hn(n){switch(n){case e.Error:return t.Error;case e.Warning:return t.Warning;case e.Information:return t.Info;case e.Hint:return t.Hint;default:return t.Info}}function Kn(n){return new r(n.start.line+1,n.start.character+1,n.end.line+1,n.end.character+1)}function qn(n){return{range:Kn(n.range),text:n.newText}}function Xn(n){const t=o.CompletionItemKind;switch(n){case u.Text:return t.Text;case u.Method:return t.Method;case u.Function:return t.Function;case u.Constructor:return t.Constructor;case u.Field:return t.Field;case u.Variable:return t.Variable;case u.Class:return t.Class;case u.Interface:return t.Interface;case u.Module:return t.Module;case u.Property:return t.Property;case u.Unit:return t.Unit;case u.Value:return t.Value;case u.Enum:return t.Enum;case u.Keyword:return t.Keyword;case u.Snippet:return t.Snippet;case u.Color:return t.Color;case u.File:return t.File;case u.Reference:return t.Reference;case u.Folder:return t.Folder;case u.EnumMember:return t.EnumMember;case u.Constant:return t.Constant;case u.Struct:return t.Struct;case u.Event:return t.Event;case u.Operator:return t.Operator;case u.TypeParameter:return t.TypeParameter}return t.Property}class Zn{constructor(n,t){this._worker=n,this._defaults=t,this.triggerCharacters=[".","("]}async provideCompletionItems(n,t){const e=await this._worker(n.uri),u=this._defaults.getApiContextForModel(n.uri),c=await e.doComplete(n.uri.toString(),function(n){return{character:n.column-1,line:n.lineNumber-1}}(t),u);if(!c)return;const a=n.getWordUntilPosition(t),s=new r(t.lineNumber,a.startColumn,t.lineNumber,a.endColumn),f=c.items.map((n=>{const t={label:n.label,insertText:n.insertText||n.label,sortText:n.sortText,filterText:n.filterText,detail:n.detail,range:s,kind:Xn(n.kind)};var e;return n.textEdit&&(t.range=void 0!==(e=n.textEdit).insert&&void 0!==e.replace?{insert:Kn(n.textEdit.insert),replace:Kn(n.textEdit.replace)}:Kn(n.textEdit.range),t.insertText=n.textEdit.newText),n.additionalTextEdits&&(t.additionalTextEdits=n.additionalTextEdits.map(qn)),n.insertTextFormat===i.Snippet&&(t.insertTextRules=o.CompletionItemInsertTextRule.InsertAsSnippet),n.documentation&&(t.documentation="string"==typeof n.documentation?n.documentation:{supportThemeIcons:!1,value:n.documentation.value,supportHtml:!0}),t}));return{incomplete:c.isIncomplete,suggestions:f}}}class Gn{constructor(n,t){this._worker=n,this._defaults=t}async provideDocumentFormattingEdits(n){const t=await this._worker(n.uri),e=this._defaults.getApiContextForModel(n.uri.toString()),r=await t.doFormat(n.uri.toString(),e);return r?r.map((n=>({range:Kn(n.range),text:n.newText}))):[]}}class Jn{constructor(n){this._defaults=n,this._worker=null,this._client=null,this._configChangeListener=this._defaults.onDidChange((()=>this.stopWorker()))}dispose(){this._configChangeListener.dispose(),this.stopWorker()}stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}_getClientProxy(){if(!this._client){const{languageId:t,languageOptions:e}=this._defaults;this._worker=n.createWebWorker({moduleId:"ArcadeWorker",label:t,createData:{languageId:t,languageOptions:e}}),this._client=this._worker.getProxy()}return this._client}async getLanguageServiceWorker(...n){const t=await this._getClientProxy();return await(this._worker?.withSyncedResources(n)),t}}let Qn;async function Yn(...n){return new Promise(((t,e)=>{if(!Qn)return e("TypeScript not registered!");t(Qn(...n))}))}const nt=new class{constructor(){this._onDiagnosticsChange=new c}get onDiagnosticsChange(){return this._onDiagnosticsChange.event}fireDiagnosticsChange(n,t){this._onDiagnosticsChange.fire({uri:n,diagnostics:t})}};function tt(){return nt}function et(n){const t=new Jn(n),e=(...n)=>t.getLanguageServiceWorker(...n);Qn=e,o.setMonarchTokensProvider(n.languageId,zn),o.setLanguageConfiguration(n.languageId,Wn),o.registerCompletionItemProvider(n.languageId,new Zn(e,n)),o.registerDocumentFormattingEditProvider(n.languageId,new Gn(e,n)),new Vn(n.languageId,e,{defaults:n,diagnosticsService:nt})}export{tt as getArcadeDiagnosticService,Yn as getArcadeWorker,et as setupMode}