@arcgis/coding-components 4.31.0-next.6 → 4.31.0-next.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/dist/arcgis-coding-components/arcgis-coding-components.esm.js +2 -2
  2. package/dist/arcgis-coding-components/index.esm.js +2 -2
  3. package/dist/arcgis-coding-components/{p-cd67026d.js → p-24128ac2.js} +2 -2
  4. package/dist/arcgis-coding-components/p-2ba0dc32.js +6 -0
  5. package/dist/arcgis-coding-components/{p-e11999af.js → p-51cb7124.js} +2 -2
  6. package/dist/arcgis-coding-components/{p-19b4f0e9.js → p-56ef1db2.js} +2 -2
  7. package/dist/arcgis-coding-components/{p-022df536.js → p-57b9aa11.js} +1 -1
  8. package/dist/arcgis-coding-components/{p-f1fab45e.js → p-5fbefa40.js} +1 -1
  9. package/dist/arcgis-coding-components/{p-d7e83ea1.entry.js → p-6d76b473.entry.js} +2 -2
  10. package/dist/arcgis-coding-components/{p-38534c31.js → p-7f1b7590.js} +2 -2
  11. package/dist/arcgis-coding-components/{p-933de2b5.entry.js → p-827f1fff.entry.js} +2 -2
  12. package/dist/arcgis-coding-components/p-8a789638.js +6 -0
  13. package/dist/arcgis-coding-components/{p-e055c041.js → p-a3af83b2.js} +2 -2
  14. package/dist/arcgis-coding-components/{p-8c6a6176.js → p-b7927956.js} +2 -2
  15. package/dist/arcgis-coding-components/{p-14ab3ed5.js → p-c753e2e1.js} +1 -1
  16. package/dist/arcgis-coding-components/{p-8e61744c.js → p-c9173dd7.js} +10 -10
  17. package/dist/arcgis-coding-components/{p-2a7ef2fd.js → p-d610db5e.js} +2 -2
  18. package/dist/arcgis-coding-components/{p-41c932b5.js → p-de0ced33.js} +2 -2
  19. package/dist/arcgis-coding-components/{p-1baf3624.entry.js → p-dec9545b.entry.js} +2 -2
  20. package/dist/arcgis-coding-components/{p-10cab8d9.js → p-eca45afe.js} +2 -2
  21. package/dist/arcgis-coding-components/p-fd9abbee.js +6 -0
  22. package/dist/cjs/{app-globals-8991f48d.js → app-globals-95a58c45.js} +1 -1
  23. package/dist/cjs/{arcade-defaults-2d36c400.js → arcade-defaults-adce528c.js} +4 -4
  24. package/dist/cjs/arcade-language-features-72d4b0d4.js +274 -0
  25. package/dist/cjs/{arcade-mode-ee5f5a57.js → arcade-mode-a8f7893e.js} +7 -266
  26. package/dist/cjs/arcgis-arcade-editor_6.cjs.entry.js +6 -6
  27. package/dist/cjs/arcgis-coding-components.cjs.js +3 -3
  28. package/dist/cjs/arcgis-sql-expression-editor.cjs.entry.js +4 -4
  29. package/dist/cjs/arcgis-sql-expression-fields.cjs.entry.js +4 -4
  30. package/dist/cjs/{css-c0ad88d7.js → css-10717df1.js} +1 -1
  31. package/dist/cjs/{cssMode-deeb6f90.js → cssMode-af6b6837.js} +3 -3
  32. package/dist/cjs/{html-be08d94a.js → html-e871b2ae.js} +3 -3
  33. package/dist/cjs/{htmlMode-f5b8239a.js → htmlMode-33758987.js} +3 -3
  34. package/dist/cjs/{index-358de60d.js → index-2c90e42e.js} +1 -1
  35. package/dist/cjs/index.cjs.js +4 -4
  36. package/dist/cjs/{javascript-37d3d13f.js → javascript-03d1437c.js} +4 -4
  37. package/dist/cjs/{jsonMode-12a2a091.js → jsonMode-3013c90b.js} +3 -3
  38. package/dist/cjs/{language-defaults-base-1f082ad7.js → language-defaults-base-081fe837.js} +10 -10
  39. package/dist/cjs/loader.cjs.js +3 -3
  40. package/dist/cjs/{sql-expr-defaults-dca57c68.js → sql-expr-defaults-a8b942e3.js} +3 -3
  41. package/dist/cjs/{sql-expr-mode-c644220d.js → sql-expr-mode-7f91696f.js} +11531 -14828
  42. package/dist/cjs/{tsMode-d33a7021.js → tsMode-a47d5976.js} +3 -3
  43. package/dist/cjs/{typescript-f3be2ce7.js → typescript-eebe50a0.js} +3 -3
  44. package/dist/components/arcade-defaults.js +1 -1
  45. package/dist/components/arcade-language-features.js +271 -0
  46. package/dist/components/arcade-mode.js +4 -264
  47. package/dist/components/arcade-results.js +1 -1
  48. package/dist/components/arcade-suggestions.js +1 -1
  49. package/dist/components/arcade-variables.js +1 -1
  50. package/dist/components/arcgis-arcade-editor.js +1 -1
  51. package/dist/components/arcgis-arcade-results.js +1 -1
  52. package/dist/components/arcgis-arcade-suggestions.js +1 -1
  53. package/dist/components/arcgis-arcade-variables.js +1 -1
  54. package/dist/components/arcgis-assets.d.ts +1 -1
  55. package/dist/components/arcgis-assets.js +1 -1
  56. package/dist/components/arcgis-code-editor.js +1 -1
  57. package/dist/components/arcgis-language-api-panel.js +1 -1
  58. package/dist/components/arcgis-sql-expression-editor.js +1 -1
  59. package/dist/components/arcgis-sql-expression-fields.js +1 -1
  60. package/dist/components/chunk-3IUJHIAA.js +1 -1
  61. package/dist/components/code-editor.js +1 -1
  62. package/dist/components/fields.js +1 -1
  63. package/dist/components/index.js +1 -1
  64. package/dist/components/index2.js +1 -1
  65. package/dist/components/language-api-panel.js +1 -1
  66. package/dist/components/language-defaults-base.js +1 -1
  67. package/dist/components/markdown.js +1 -1
  68. package/dist/components/sql-expr-defaults.js +1 -1
  69. package/dist/components/sql-expr-mode.js +11529 -14825
  70. package/dist/components/sql-expression-fields.js +1 -1
  71. package/dist/components/useT9n.js +1 -1
  72. package/dist/components/utilities.js +1 -1
  73. package/dist/esm/{app-globals-3e4e0353.js → app-globals-9b568679.js} +1 -1
  74. package/dist/esm/{arcade-defaults-1adb5004.js → arcade-defaults-3b370e7f.js} +4 -4
  75. package/dist/esm/arcade-language-features-09dbac1a.js +269 -0
  76. package/dist/esm/{arcade-mode-4a83348d.js → arcade-mode-dc12cdd7.js} +4 -263
  77. package/dist/esm/arcgis-arcade-editor_6.entry.js +6 -6
  78. package/dist/esm/arcgis-coding-components.js +4 -4
  79. package/dist/esm/arcgis-sql-expression-editor.entry.js +4 -4
  80. package/dist/esm/arcgis-sql-expression-fields.entry.js +4 -4
  81. package/dist/esm/{css-bad8d1c3.js → css-2ac5d369.js} +1 -1
  82. package/dist/esm/{cssMode-68a5f601.js → cssMode-ee67ef12.js} +3 -3
  83. package/dist/esm/{html-9b27df1a.js → html-db02f025.js} +3 -3
  84. package/dist/esm/{htmlMode-361ad282.js → htmlMode-d98c6313.js} +3 -3
  85. package/dist/esm/{index-8a552796.js → index-79a2905d.js} +1 -1
  86. package/dist/esm/index.js +4 -4
  87. package/dist/esm/{javascript-8004e14f.js → javascript-49434450.js} +4 -4
  88. package/dist/esm/{jsonMode-91a0be74.js → jsonMode-7eb9940c.js} +3 -3
  89. package/dist/esm/{language-defaults-base-df906b3d.js → language-defaults-base-bb09da9f.js} +11 -11
  90. package/dist/esm/loader.js +4 -4
  91. package/dist/esm/{sql-expr-defaults-ae0be602.js → sql-expr-defaults-1aedce82.js} +3 -3
  92. package/dist/esm/{sql-expr-mode-1821b2b9.js → sql-expr-mode-3c0c4ee2.js} +11531 -14828
  93. package/dist/esm/{tsMode-2756c213.js → tsMode-abf1ffe4.js} +3 -3
  94. package/dist/esm/{typescript-1aaf3ddd.js → typescript-6ebd28ac.js} +3 -3
  95. package/dist/loader/cdn.js +1 -1
  96. package/dist/loader/index.cjs.js +1 -1
  97. package/dist/loader/index.es2017.js +1 -1
  98. package/dist/loader/index.js +1 -1
  99. package/dist/types/utils/arcade-monaco/arcade-language-features.d.ts +1 -0
  100. package/dist/types/utils/sql-expr-monaco/sql-expr-completion.d.ts +3 -2
  101. package/dist/types/utils/sql-expr-monaco/sql-expr-language-features.d.ts +6 -485
  102. package/package.json +10 -10
  103. package/dist/arcgis-coding-components/p-9dfc06ea.js +0 -6
  104. package/dist/arcgis-coding-components/p-a536144e.js +0 -6
@@ -0,0 +1,274 @@
1
+ /*!
2
+ * All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
+ * See https://js.arcgis.com/4.31/esri/copyright.txt for details.
4
+ * v4.31.0-next.7
5
+ */
6
+ 'use strict';
7
+
8
+ const languageDefaultsBase = require('./language-defaults-base-081fe837.js');
9
+
10
+ //#region Diagnostic
11
+ class DiagnosticsAdapter {
12
+ constructor(_languageId, _worker, { defaults, diagnosticsService, }) {
13
+ this._languageId = _languageId;
14
+ this._worker = _worker;
15
+ this._disposables = [];
16
+ this._listener = new Map();
17
+ this._diagnosticsService = diagnosticsService;
18
+ this._defaults = defaults;
19
+ const onModelAdd = (model) => {
20
+ const languageId = model.getLanguageId();
21
+ if (languageId !== this._languageId) {
22
+ return;
23
+ }
24
+ const debouncedValidate = languageDefaultsBase.debounce(() => {
25
+ this._doValidate(model, languageId).catch((err) => {
26
+ throw err;
27
+ });
28
+ });
29
+ this._listener.set(model.uri.toString(), model.onDidChangeContent(debouncedValidate));
30
+ this._doValidate(model, languageId).catch(console.error);
31
+ };
32
+ const onModelRemoved = (model) => {
33
+ const uriStr = model.uri.toString();
34
+ languageDefaultsBase.editor.setModelMarkers(model, this._languageId, []);
35
+ const listener = this._listener.get(uriStr);
36
+ if (listener) {
37
+ listener.dispose();
38
+ this._listener.delete(uriStr);
39
+ }
40
+ };
41
+ this._disposables.push(languageDefaultsBase.editor.onDidCreateModel(onModelAdd));
42
+ this._disposables.push(languageDefaultsBase.editor.onWillDisposeModel((model) => {
43
+ onModelRemoved(model);
44
+ }));
45
+ this._disposables.push(languageDefaultsBase.editor.onDidChangeModelLanguage((event) => {
46
+ onModelRemoved(event.model);
47
+ onModelAdd(event.model);
48
+ }));
49
+ this._disposables.push(defaults.onDidChange(() => {
50
+ languageDefaultsBase.editor.getModels().forEach((model) => {
51
+ if (model.getLanguageId() === this._languageId) {
52
+ onModelRemoved(model);
53
+ onModelAdd(model);
54
+ }
55
+ });
56
+ }));
57
+ this._disposables.push(defaults.onModelContextDidChange((key) => {
58
+ languageDefaultsBase.editor.getModels().forEach((model) => {
59
+ if (model.getLanguageId() === this._languageId && model.uri.toString() === key) {
60
+ this._doValidate(model, this._languageId).catch(console.error);
61
+ }
62
+ });
63
+ }));
64
+ this._disposables.push({
65
+ dispose: () => {
66
+ this._listener.forEach((value) => value.dispose());
67
+ this._listener.clear();
68
+ },
69
+ });
70
+ languageDefaultsBase.editor.getModels().forEach(onModelAdd);
71
+ }
72
+ dispose() {
73
+ this._disposables.forEach((d) => d.dispose());
74
+ this._disposables = [];
75
+ }
76
+ async _doValidate(model, languageId) {
77
+ if (!model.isAttachedToEditor()) {
78
+ return;
79
+ }
80
+ try {
81
+ const workerProxy = await this._worker(model.uri);
82
+ const context = this._defaults.getApiContextForModel(model.uri);
83
+ const diagnostics = await workerProxy.doValidation(model.uri.toString(), context);
84
+ const markers = diagnostics.map((d) => toMarker(model.uri, d));
85
+ this._diagnosticsService.fireDiagnosticsChange(model.uri, diagnostics);
86
+ languageDefaultsBase.editor.setModelMarkers(model, languageId, markers);
87
+ }
88
+ catch (err) {
89
+ console.error(err);
90
+ }
91
+ }
92
+ }
93
+ function toSeverity(languageServiceSeverity) {
94
+ switch (languageServiceSeverity) {
95
+ case languageDefaultsBase.main.exports.DiagnosticSeverity.Error:
96
+ return languageDefaultsBase.MarkerSeverity.Error;
97
+ case languageDefaultsBase.main.exports.DiagnosticSeverity.Warning:
98
+ return languageDefaultsBase.MarkerSeverity.Warning;
99
+ case languageDefaultsBase.main.exports.DiagnosticSeverity.Information:
100
+ return languageDefaultsBase.MarkerSeverity.Info;
101
+ case languageDefaultsBase.main.exports.DiagnosticSeverity.Hint:
102
+ return languageDefaultsBase.MarkerSeverity.Hint;
103
+ default:
104
+ return languageDefaultsBase.MarkerSeverity.Info;
105
+ }
106
+ }
107
+ function toMarker(_resource, diag) {
108
+ // Diagnostics positions are zero-based, MarkerData are 1-based
109
+ return {
110
+ severity: toSeverity(diag.severity),
111
+ startLineNumber: diag.range.start.line + 1,
112
+ startColumn: diag.range.start.character + 1,
113
+ endLineNumber: diag.range.end.line + 1,
114
+ endColumn: diag.range.end.character + 1,
115
+ message: diag.message,
116
+ };
117
+ }
118
+ //#endregion
119
+ //#region Completion
120
+ function fromPosition(position) {
121
+ // Language service is zero based
122
+ return { character: position.column - 1, line: position.lineNumber - 1 };
123
+ }
124
+ function toRange(range) {
125
+ return new languageDefaultsBase.Range(range.start.line + 1, range.start.character + 1, range.end.line + 1, range.end.character + 1);
126
+ }
127
+ function toTextEdit(textEdit) {
128
+ return {
129
+ range: toRange(textEdit.range),
130
+ text: textEdit.newText,
131
+ };
132
+ }
133
+ function isInsertReplaceEdit(edit) {
134
+ return (typeof edit.insert !== "undefined" &&
135
+ typeof edit.replace !== "undefined");
136
+ }
137
+ // TODO: extract this function to common util
138
+ function toCompletionItemKind(kind) {
139
+ const mItemKind = languageDefaultsBase.languages.CompletionItemKind;
140
+ switch (kind) {
141
+ case languageDefaultsBase.main.exports.CompletionItemKind.Text:
142
+ return mItemKind.Text;
143
+ case languageDefaultsBase.main.exports.CompletionItemKind.Method:
144
+ return mItemKind.Method;
145
+ case languageDefaultsBase.main.exports.CompletionItemKind.Function:
146
+ return mItemKind.Function;
147
+ case languageDefaultsBase.main.exports.CompletionItemKind.Constructor:
148
+ return mItemKind.Constructor;
149
+ case languageDefaultsBase.main.exports.CompletionItemKind.Field:
150
+ return mItemKind.Field;
151
+ case languageDefaultsBase.main.exports.CompletionItemKind.Variable:
152
+ return mItemKind.Variable;
153
+ case languageDefaultsBase.main.exports.CompletionItemKind.Class:
154
+ return mItemKind.Class;
155
+ case languageDefaultsBase.main.exports.CompletionItemKind.Interface:
156
+ return mItemKind.Interface;
157
+ case languageDefaultsBase.main.exports.CompletionItemKind.Module:
158
+ return mItemKind.Module;
159
+ case languageDefaultsBase.main.exports.CompletionItemKind.Property:
160
+ return mItemKind.Property;
161
+ case languageDefaultsBase.main.exports.CompletionItemKind.Unit:
162
+ return mItemKind.Unit;
163
+ case languageDefaultsBase.main.exports.CompletionItemKind.Value:
164
+ return mItemKind.Value;
165
+ case languageDefaultsBase.main.exports.CompletionItemKind.Enum:
166
+ return mItemKind.Enum;
167
+ case languageDefaultsBase.main.exports.CompletionItemKind.Keyword:
168
+ return mItemKind.Keyword;
169
+ case languageDefaultsBase.main.exports.CompletionItemKind.Snippet:
170
+ return mItemKind.Snippet;
171
+ case languageDefaultsBase.main.exports.CompletionItemKind.Color:
172
+ return mItemKind.Color;
173
+ case languageDefaultsBase.main.exports.CompletionItemKind.File:
174
+ return mItemKind.File;
175
+ case languageDefaultsBase.main.exports.CompletionItemKind.Reference:
176
+ return mItemKind.Reference;
177
+ case languageDefaultsBase.main.exports.CompletionItemKind.Folder:
178
+ return mItemKind.Folder;
179
+ case languageDefaultsBase.main.exports.CompletionItemKind.EnumMember:
180
+ return mItemKind.EnumMember;
181
+ case languageDefaultsBase.main.exports.CompletionItemKind.Constant:
182
+ return mItemKind.Constant;
183
+ case languageDefaultsBase.main.exports.CompletionItemKind.Struct:
184
+ return mItemKind.Struct;
185
+ case languageDefaultsBase.main.exports.CompletionItemKind.Event:
186
+ return mItemKind.Event;
187
+ case languageDefaultsBase.main.exports.CompletionItemKind.Operator:
188
+ return mItemKind.Operator;
189
+ case languageDefaultsBase.main.exports.CompletionItemKind.TypeParameter:
190
+ return mItemKind.TypeParameter;
191
+ default:
192
+ return mItemKind.Property;
193
+ }
194
+ }
195
+ class CompletionProvider {
196
+ constructor(_worker, _defaults) {
197
+ this._worker = _worker;
198
+ this._defaults = _defaults;
199
+ this.triggerCharacters = [".", "("];
200
+ }
201
+ async provideCompletionItems(model, position) {
202
+ const worker = await this._worker(model.uri);
203
+ const context = this._defaults.getApiContextForModel(model.uri);
204
+ const completionList = await worker.doComplete(model.uri.toString(), fromPosition(position), context);
205
+ const wordInfo = model.getWordUntilPosition(position);
206
+ const wordRange = new languageDefaultsBase.Range(position.lineNumber, wordInfo.startColumn, position.lineNumber, wordInfo.endColumn);
207
+ const items = completionList.items.map((entry) => {
208
+ const item = {
209
+ label: entry.label,
210
+ insertText: entry.insertText || entry.label,
211
+ sortText: entry.sortText,
212
+ filterText: entry.filterText,
213
+ detail: entry.detail,
214
+ range: wordRange,
215
+ kind: toCompletionItemKind(entry.kind),
216
+ };
217
+ if (entry.textEdit) {
218
+ if (isInsertReplaceEdit(entry.textEdit)) {
219
+ item.range = {
220
+ insert: toRange(entry.textEdit.insert),
221
+ replace: toRange(entry.textEdit.replace),
222
+ };
223
+ }
224
+ else {
225
+ item.range = toRange(entry.textEdit.range);
226
+ }
227
+ item.insertText = entry.textEdit.newText;
228
+ }
229
+ if (entry.additionalTextEdits) {
230
+ item.additionalTextEdits = entry.additionalTextEdits.map(toTextEdit);
231
+ }
232
+ if (entry.insertTextFormat === languageDefaultsBase.main.exports.InsertTextFormat.Snippet) {
233
+ item.insertTextRules = languageDefaultsBase.languages.CompletionItemInsertTextRule.InsertAsSnippet;
234
+ }
235
+ if (entry.documentation) {
236
+ if (typeof entry.documentation === "string") {
237
+ item.documentation = entry.documentation;
238
+ }
239
+ else {
240
+ item.documentation = {
241
+ supportThemeIcons: false,
242
+ value: entry.documentation.value,
243
+ supportHtml: true,
244
+ };
245
+ }
246
+ }
247
+ return item;
248
+ });
249
+ return {
250
+ incomplete: completionList.isIncomplete,
251
+ suggestions: items,
252
+ };
253
+ }
254
+ }
255
+ //#endregion
256
+ //#region Formatter
257
+ class FormattingProvider {
258
+ constructor(_worker, _defaults) {
259
+ this._worker = _worker;
260
+ this._defaults = _defaults;
261
+ }
262
+ async provideDocumentFormattingEdits(model) {
263
+ const worker = await this._worker(model.uri);
264
+ const context = this._defaults.getApiContextForModel(model.uri.toString());
265
+ const edits = await worker.doFormat(model.uri.toString(), context);
266
+ return edits.map((e) => ({ range: toRange(e.range), text: e.newText }));
267
+ }
268
+ }
269
+ //#endregion
270
+
271
+ exports.CompletionProvider = CompletionProvider;
272
+ exports.DiagnosticsAdapter = DiagnosticsAdapter;
273
+ exports.FormattingProvider = FormattingProvider;
274
+ exports.toCompletionItemKind = toCompletionItemKind;
@@ -1,12 +1,13 @@
1
1
  /*!
2
2
  * All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  * See https://js.arcgis.com/4.31/esri/copyright.txt for details.
4
- * v4.31.0-next.6
4
+ * v4.31.0-next.7
5
5
  */
6
6
  'use strict';
7
7
 
8
- const languageDefaultsBase = require('./language-defaults-base-1f082ad7.js');
9
- require('./index-358de60d.js');
8
+ const languageDefaultsBase = require('./language-defaults-base-081fe837.js');
9
+ const arcadeLanguageFeatures = require('./arcade-language-features-72d4b0d4.js');
10
+ require('./index-2c90e42e.js');
10
11
 
11
12
  var V={False:"false",Null:"null",True:"true"},f={Break:"break",Continue:"continue",Else:"else",For:"for",From:"from",Function:"function",If:"if",Import:"import",Export:"export",In:"in",Return:"return",Var:"var",While:"while"},Ee=["++","--"],Je=["-","+","!","~"],Qe=["=","/=","*=","%=","+=","-="],Ze=["||","&&"],Lt=["|","&",">>","<<",">>>","^","==","!=","<","<=",">",">=","+","-","*","/","%"];var U=[[],[],[]];Ee.forEach(t=>U[t.length-1]?.push(t));Je.forEach(t=>U[t.length-1]?.push(t));Ze.forEach(t=>U[t.length-1]?.push(t));Qe.forEach(t=>U[t.length-1]?.push(t));Lt.forEach(t=>U[t.length-1]?.push(t));var ft=Object.values(f),gt=Object.values(V);gt.map(t=>({label:t,kind:languageDefaultsBase.main.exports.CompletionItemKind.Constant}));ft.map(t=>({label:t,kind:languageDefaultsBase.main.exports.CompletionItemKind.Keyword}));
12
13
 
@@ -218,266 +219,6 @@ const arcadeMonarchLanguage = {
218
219
  },
219
220
  };
220
221
 
221
- //#region Diagnostic
222
- class DiagnosticsAdapter {
223
- constructor(_languageId, _worker, { defaults, diagnosticsService, }) {
224
- this._languageId = _languageId;
225
- this._worker = _worker;
226
- this._disposables = [];
227
- this._listener = new Map();
228
- this._diagnosticsService = diagnosticsService;
229
- this._defaults = defaults;
230
- const onModelAdd = (model) => {
231
- const languageId = model.getLanguageId();
232
- if (languageId !== this._languageId) {
233
- return;
234
- }
235
- const debouncedValidate = languageDefaultsBase.debounce(() => {
236
- this._doValidate(model, languageId).catch((err) => {
237
- throw err;
238
- });
239
- });
240
- this._listener.set(model.uri.toString(), model.onDidChangeContent(debouncedValidate));
241
- this._doValidate(model, languageId).catch(console.error);
242
- };
243
- const onModelRemoved = (model) => {
244
- const uriStr = model.uri.toString();
245
- languageDefaultsBase.editor.setModelMarkers(model, this._languageId, []);
246
- const listener = this._listener.get(uriStr);
247
- if (listener) {
248
- listener.dispose();
249
- this._listener.delete(uriStr);
250
- }
251
- };
252
- this._disposables.push(languageDefaultsBase.editor.onDidCreateModel(onModelAdd));
253
- this._disposables.push(languageDefaultsBase.editor.onWillDisposeModel((model) => {
254
- onModelRemoved(model);
255
- }));
256
- this._disposables.push(languageDefaultsBase.editor.onDidChangeModelLanguage((event) => {
257
- onModelRemoved(event.model);
258
- onModelAdd(event.model);
259
- }));
260
- this._disposables.push(defaults.onDidChange(() => {
261
- languageDefaultsBase.editor.getModels().forEach((model) => {
262
- if (model.getLanguageId() === this._languageId) {
263
- onModelRemoved(model);
264
- onModelAdd(model);
265
- }
266
- });
267
- }));
268
- this._disposables.push(defaults.onModelContextDidChange((key) => {
269
- languageDefaultsBase.editor.getModels().forEach((model) => {
270
- if (model.getLanguageId() === this._languageId && model.uri.toString() === key) {
271
- this._doValidate(model, this._languageId).catch(console.error);
272
- }
273
- });
274
- }));
275
- this._disposables.push({
276
- dispose: () => {
277
- this._listener.forEach((value) => value.dispose());
278
- this._listener.clear();
279
- },
280
- });
281
- languageDefaultsBase.editor.getModels().forEach(onModelAdd);
282
- }
283
- dispose() {
284
- this._disposables.forEach((d) => d.dispose());
285
- this._disposables = [];
286
- }
287
- async _doValidate(model, languageId) {
288
- if (!model.isAttachedToEditor()) {
289
- return;
290
- }
291
- try {
292
- const workerProxy = await this._worker(model.uri);
293
- const context = this._defaults.getApiContextForModel(model.uri);
294
- const diagnostics = await workerProxy.doValidation(model.uri.toString(), context);
295
- const markers = diagnostics.map((d) => toMarker(model.uri, d));
296
- this._diagnosticsService.fireDiagnosticsChange(model.uri, diagnostics);
297
- languageDefaultsBase.editor.setModelMarkers(model, languageId, markers);
298
- }
299
- catch (err) {
300
- console.error(err);
301
- }
302
- }
303
- }
304
- function toSeverity(languageServiceSeverity) {
305
- switch (languageServiceSeverity) {
306
- case languageDefaultsBase.main.exports.DiagnosticSeverity.Error:
307
- return languageDefaultsBase.MarkerSeverity.Error;
308
- case languageDefaultsBase.main.exports.DiagnosticSeverity.Warning:
309
- return languageDefaultsBase.MarkerSeverity.Warning;
310
- case languageDefaultsBase.main.exports.DiagnosticSeverity.Information:
311
- return languageDefaultsBase.MarkerSeverity.Info;
312
- case languageDefaultsBase.main.exports.DiagnosticSeverity.Hint:
313
- return languageDefaultsBase.MarkerSeverity.Hint;
314
- default:
315
- return languageDefaultsBase.MarkerSeverity.Info;
316
- }
317
- }
318
- function toMarker(_resource, diag) {
319
- // Diagnostics positions are zero-based, MarkerData are 1-based
320
- return {
321
- severity: toSeverity(diag.severity),
322
- startLineNumber: diag.range.start.line + 1,
323
- startColumn: diag.range.start.character + 1,
324
- endLineNumber: diag.range.end.line + 1,
325
- endColumn: diag.range.end.character + 1,
326
- message: diag.message,
327
- };
328
- }
329
- //#endregion
330
- //#region Completion
331
- function fromPosition(position) {
332
- // Language service is zero based
333
- return { character: position.column - 1, line: position.lineNumber - 1 };
334
- }
335
- function toRange(range) {
336
- return new languageDefaultsBase.Range(range.start.line + 1, range.start.character + 1, range.end.line + 1, range.end.character + 1);
337
- }
338
- function toTextEdit(textEdit) {
339
- return {
340
- range: toRange(textEdit.range),
341
- text: textEdit.newText,
342
- };
343
- }
344
- function isInsertReplaceEdit(edit) {
345
- return (typeof edit.insert !== "undefined" &&
346
- typeof edit.replace !== "undefined");
347
- }
348
- function toCompletionItemKind(kind) {
349
- const mItemKind = languageDefaultsBase.languages.CompletionItemKind;
350
- switch (kind) {
351
- case languageDefaultsBase.main.exports.CompletionItemKind.Text:
352
- return mItemKind.Text;
353
- case languageDefaultsBase.main.exports.CompletionItemKind.Method:
354
- return mItemKind.Method;
355
- case languageDefaultsBase.main.exports.CompletionItemKind.Function:
356
- return mItemKind.Function;
357
- case languageDefaultsBase.main.exports.CompletionItemKind.Constructor:
358
- return mItemKind.Constructor;
359
- case languageDefaultsBase.main.exports.CompletionItemKind.Field:
360
- return mItemKind.Field;
361
- case languageDefaultsBase.main.exports.CompletionItemKind.Variable:
362
- return mItemKind.Variable;
363
- case languageDefaultsBase.main.exports.CompletionItemKind.Class:
364
- return mItemKind.Class;
365
- case languageDefaultsBase.main.exports.CompletionItemKind.Interface:
366
- return mItemKind.Interface;
367
- case languageDefaultsBase.main.exports.CompletionItemKind.Module:
368
- return mItemKind.Module;
369
- case languageDefaultsBase.main.exports.CompletionItemKind.Property:
370
- return mItemKind.Property;
371
- case languageDefaultsBase.main.exports.CompletionItemKind.Unit:
372
- return mItemKind.Unit;
373
- case languageDefaultsBase.main.exports.CompletionItemKind.Value:
374
- return mItemKind.Value;
375
- case languageDefaultsBase.main.exports.CompletionItemKind.Enum:
376
- return mItemKind.Enum;
377
- case languageDefaultsBase.main.exports.CompletionItemKind.Keyword:
378
- return mItemKind.Keyword;
379
- case languageDefaultsBase.main.exports.CompletionItemKind.Snippet:
380
- return mItemKind.Snippet;
381
- case languageDefaultsBase.main.exports.CompletionItemKind.Color:
382
- return mItemKind.Color;
383
- case languageDefaultsBase.main.exports.CompletionItemKind.File:
384
- return mItemKind.File;
385
- case languageDefaultsBase.main.exports.CompletionItemKind.Reference:
386
- return mItemKind.Reference;
387
- case languageDefaultsBase.main.exports.CompletionItemKind.Folder:
388
- return mItemKind.Folder;
389
- case languageDefaultsBase.main.exports.CompletionItemKind.EnumMember:
390
- return mItemKind.EnumMember;
391
- case languageDefaultsBase.main.exports.CompletionItemKind.Constant:
392
- return mItemKind.Constant;
393
- case languageDefaultsBase.main.exports.CompletionItemKind.Struct:
394
- return mItemKind.Struct;
395
- case languageDefaultsBase.main.exports.CompletionItemKind.Event:
396
- return mItemKind.Event;
397
- case languageDefaultsBase.main.exports.CompletionItemKind.Operator:
398
- return mItemKind.Operator;
399
- case languageDefaultsBase.main.exports.CompletionItemKind.TypeParameter:
400
- return mItemKind.TypeParameter;
401
- default:
402
- return mItemKind.Property;
403
- }
404
- }
405
- class CompletionProvider {
406
- constructor(_worker, _defaults) {
407
- this._worker = _worker;
408
- this._defaults = _defaults;
409
- this.triggerCharacters = [".", "("];
410
- }
411
- async provideCompletionItems(model, position) {
412
- const worker = await this._worker(model.uri);
413
- const context = this._defaults.getApiContextForModel(model.uri);
414
- const completionList = await worker.doComplete(model.uri.toString(), fromPosition(position), context);
415
- const wordInfo = model.getWordUntilPosition(position);
416
- const wordRange = new languageDefaultsBase.Range(position.lineNumber, wordInfo.startColumn, position.lineNumber, wordInfo.endColumn);
417
- const items = completionList.items.map((entry) => {
418
- const item = {
419
- label: entry.label,
420
- insertText: entry.insertText || entry.label,
421
- sortText: entry.sortText,
422
- filterText: entry.filterText,
423
- detail: entry.detail,
424
- range: wordRange,
425
- kind: toCompletionItemKind(entry.kind),
426
- };
427
- if (entry.textEdit) {
428
- if (isInsertReplaceEdit(entry.textEdit)) {
429
- item.range = {
430
- insert: toRange(entry.textEdit.insert),
431
- replace: toRange(entry.textEdit.replace),
432
- };
433
- }
434
- else {
435
- item.range = toRange(entry.textEdit.range);
436
- }
437
- item.insertText = entry.textEdit.newText;
438
- }
439
- if (entry.additionalTextEdits) {
440
- item.additionalTextEdits = entry.additionalTextEdits.map(toTextEdit);
441
- }
442
- if (entry.insertTextFormat === languageDefaultsBase.main.exports.InsertTextFormat.Snippet) {
443
- item.insertTextRules = languageDefaultsBase.languages.CompletionItemInsertTextRule.InsertAsSnippet;
444
- }
445
- if (entry.documentation) {
446
- if (typeof entry.documentation === "string") {
447
- item.documentation = entry.documentation;
448
- }
449
- else {
450
- item.documentation = {
451
- supportThemeIcons: false,
452
- value: entry.documentation.value,
453
- supportHtml: true,
454
- };
455
- }
456
- }
457
- return item;
458
- });
459
- return {
460
- incomplete: completionList.isIncomplete,
461
- suggestions: items,
462
- };
463
- }
464
- }
465
- //#endregion
466
- //#region Formatter
467
- class FormattingProvider {
468
- constructor(_worker, _defaults) {
469
- this._worker = _worker;
470
- this._defaults = _defaults;
471
- }
472
- async provideDocumentFormattingEdits(model) {
473
- const worker = await this._worker(model.uri);
474
- const context = this._defaults.getApiContextForModel(model.uri.toString());
475
- const edits = await worker.doFormat(model.uri.toString(), context);
476
- return edits.map((e) => ({ range: toRange(e.range), text: e.newText }));
477
- }
478
- }
479
- //#endregion
480
-
481
222
  /**
482
223
  * Manager to create our arcade worker and client proxy
483
224
  */
@@ -579,12 +320,12 @@ function setupMode(arcadeDefaults) {
579
320
  languageDefaultsBase.languages.setMonarchTokensProvider(arcadeDefaults.languageId, arcadeMonarchLanguage);
580
321
  languageDefaultsBase.languages.setLanguageConfiguration(arcadeDefaults.languageId, arcadeLanguageConfiguration);
581
322
  // Creates and registers a Completion Adapter
582
- languageDefaultsBase.languages.registerCompletionItemProvider(arcadeDefaults.languageId, new CompletionProvider(workerAccessor, arcadeDefaults));
323
+ languageDefaultsBase.languages.registerCompletionItemProvider(arcadeDefaults.languageId, new arcadeLanguageFeatures.CompletionProvider(workerAccessor, arcadeDefaults));
583
324
  // Creates and registers a Formatter
584
- languageDefaultsBase.languages.registerDocumentFormattingEditProvider(arcadeDefaults.languageId, new FormattingProvider(workerAccessor, arcadeDefaults));
325
+ languageDefaultsBase.languages.registerDocumentFormattingEditProvider(arcadeDefaults.languageId, new arcadeLanguageFeatures.FormattingProvider(workerAccessor, arcadeDefaults));
585
326
  // Creates a Diagnostic Adapter
586
327
  // eslint-disable-next-line no-new
587
- new DiagnosticsAdapter(arcadeDefaults.languageId, workerAccessor, {
328
+ new arcadeLanguageFeatures.DiagnosticsAdapter(arcadeDefaults.languageId, workerAccessor, {
588
329
  defaults: arcadeDefaults,
589
330
  diagnosticsService: arcadeDiagnosticService,
590
331
  });
@@ -1,16 +1,16 @@
1
1
  /*!
2
2
  * All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  * See https://js.arcgis.com/4.31/esri/copyright.txt for details.
4
- * v4.31.0-next.6
4
+ * v4.31.0-next.7
5
5
  */
6
6
  'use strict';
7
7
 
8
8
  Object.defineProperty(exports, '__esModule', { value: true });
9
9
 
10
- const index = require('./index-358de60d.js');
11
- const languageDefaultsBase = require('./language-defaults-base-1f082ad7.js');
12
- const sqlExprDefaults = require('./sql-expr-defaults-dca57c68.js');
13
- const arcadeDefaults = require('./arcade-defaults-2d36c400.js');
10
+ const index = require('./index-2c90e42e.js');
11
+ const languageDefaultsBase = require('./language-defaults-base-081fe837.js');
12
+ const sqlExprDefaults = require('./sql-expr-defaults-a8b942e3.js');
13
+ const arcadeDefaults = require('./arcade-defaults-adce528c.js');
14
14
 
15
15
  const DevelopersWebSitePath = "https://developers.arcgis.com/arcade/";
16
16
  const MaxArrayItems = 100;
@@ -4192,7 +4192,7 @@ languageDefaultsBase.languages.onLanguage(arcadeDefaults.arcadeDefaults.language
4192
4192
  * @returns sql-expression mode module
4193
4193
  */
4194
4194
  async function getMode() {
4195
- return await Promise.resolve().then(function () { return require('./sql-expr-mode-c644220d.js'); });
4195
+ return await Promise.resolve().then(function () { return require('./sql-expr-mode-7f91696f.js'); });
4196
4196
  }
4197
4197
  // Register the language in Monaco
4198
4198
  languageDefaultsBase.languages.register({
@@ -1,14 +1,14 @@
1
1
  /*!
2
2
  * All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  * See https://js.arcgis.com/4.31/esri/copyright.txt for details.
4
- * v4.31.0-next.6
4
+ * v4.31.0-next.7
5
5
  */
6
6
  'use strict';
7
7
 
8
8
  Object.defineProperty(exports, '__esModule', { value: true });
9
9
 
10
- const index = require('./index-358de60d.js');
11
- const appGlobals = require('./app-globals-8991f48d.js');
10
+ const index = require('./index-2c90e42e.js');
11
+ const appGlobals = require('./app-globals-95a58c45.js');
12
12
 
13
13
  /*
14
14
  Stencil Client Patch Browser v4.17.1 | MIT Licensed | https://stenciljs.com
@@ -1,15 +1,15 @@
1
1
  /*!
2
2
  * All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  * See https://js.arcgis.com/4.31/esri/copyright.txt for details.
4
- * v4.31.0-next.6
4
+ * v4.31.0-next.7
5
5
  */
6
6
  'use strict';
7
7
 
8
8
  Object.defineProperty(exports, '__esModule', { value: true });
9
9
 
10
- const index = require('./index-358de60d.js');
11
- const sqlExprDefaults = require('./sql-expr-defaults-dca57c68.js');
12
- const languageDefaultsBase = require('./language-defaults-base-1f082ad7.js');
10
+ const index = require('./index-2c90e42e.js');
11
+ const sqlExprDefaults = require('./sql-expr-defaults-a8b942e3.js');
12
+ const languageDefaultsBase = require('./language-defaults-base-081fe837.js');
13
13
 
14
14
  const sqlExpressionEditorCss = "arcgis-sql-expression-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-sql-expression-editor .flex-adjustable{flex:1 1 auto;overflow:hidden}arcgis-sql-expression-editor .flex-panel{flex:1 0 auto}arcgis-sql-expression-editor .position-relative{position:relative}arcgis-sql-expression-editor .flex-row{display:flex;flex-direction:row;overflow:hidden}arcgis-sql-expression-editor .flex-column{display:flex;flex-direction:column;overflow:hidden}arcgis-sql-expression-editor .border-inline-start{border-inline-start:1px solid var(--calcite-color-border-3);box-sizing:border-box}arcgis-sql-expression-editor .border-inline-end{border-inline-end:1px solid var(--calcite-color-border-3);box-sizing:border-box}arcgis-sql-expression-editor .side-action-bar{max-width:25%}arcgis-sql-expression-editor .side-panel{max-width:45%;width:600px}arcgis-sql-expression-editor .side-panel calcite-flow{height:100%}";
15
15
  const ArcgisSqlExpressionEditorStyle0 = sqlExpressionEditorCss;
@@ -1,15 +1,15 @@
1
1
  /*!
2
2
  * All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  * See https://js.arcgis.com/4.31/esri/copyright.txt for details.
4
- * v4.31.0-next.6
4
+ * v4.31.0-next.7
5
5
  */
6
6
  'use strict';
7
7
 
8
8
  Object.defineProperty(exports, '__esModule', { value: true });
9
9
 
10
- const index = require('./index-358de60d.js');
11
- const sqlExprDefaults = require('./sql-expr-defaults-dca57c68.js');
12
- require('./language-defaults-base-1f082ad7.js');
10
+ const index = require('./index-2c90e42e.js');
11
+ const sqlExprDefaults = require('./sql-expr-defaults-a8b942e3.js');
12
+ require('./language-defaults-base-081fe837.js');
13
13
 
14
14
  const sqlExpressionFieldsCss = ":host calcite-flow{height:100%}:host calcite-list-item-group{background-color:var(--calcite-color-foreground-2)}";
15
15
  const ArcgisSqlExpressionFieldsStyle0 = sqlExpressionFieldsCss;
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  * See https://js.arcgis.com/4.31/esri/copyright.txt for details.
4
- * v4.31.0-next.6
4
+ * v4.31.0-next.7
5
5
  */
6
6
  'use strict';
7
7