windmill-components 1.383.8 → 1.389.1

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 (195) hide show
  1. package/package/assets/app.css +25 -1
  2. package/package/components/ArgInput.svelte +2 -1
  3. package/package/components/ChangeInstanceUsername.svelte +9 -108
  4. package/package/components/ChangeInstanceUsernameInner.svelte +112 -0
  5. package/package/components/ChangeInstanceUsernameInner.svelte.d.ts +21 -0
  6. package/package/components/DiffDrawer.svelte +27 -20
  7. package/package/components/DiffEditor.svelte +13 -1
  8. package/package/components/DisplayResult.svelte +39 -9
  9. package/package/components/DropdownV2.svelte +4 -26
  10. package/package/components/DropdownV2.svelte.d.ts +9 -1
  11. package/package/components/DropdownV2Inner.svelte +42 -0
  12. package/package/components/DropdownV2Inner.svelte.d.ts +40 -0
  13. package/package/components/Editor.svelte +142 -128
  14. package/package/components/Editor.svelte.d.ts +5 -4
  15. package/package/components/EditorBar.svelte +9 -11
  16. package/package/components/EditorSettings.svelte +44 -0
  17. package/package/components/EditorSettings.svelte.d.ts +17 -0
  18. package/package/components/EditorTheme.svelte +1 -1
  19. package/package/components/ErrorOrRecoveryHandler.svelte +27 -20
  20. package/package/components/FlowBuilder.svelte +17 -3
  21. package/package/components/FlowBuilder.svelte.d.ts +3 -0
  22. package/package/components/FlowGraphViewerStep.svelte +1 -1
  23. package/package/components/FlowStatusViewer.svelte +3 -1
  24. package/package/components/FlowStatusViewer.svelte.d.ts +1 -0
  25. package/package/components/FlowStatusViewerInner.svelte +5 -2
  26. package/package/components/FlowViewerInner.svelte +3 -7
  27. package/package/components/FormatOnSave.svelte +12 -29
  28. package/package/components/GraphqlSchemaViewer.svelte +1 -1
  29. package/package/components/GraphqlSchemaViewer.svelte.d.ts +1 -1
  30. package/package/components/HighlightCode.svelte +3 -0
  31. package/package/components/InstanceNameEditor.svelte +64 -0
  32. package/package/components/InstanceNameEditor.svelte.d.ts +23 -0
  33. package/package/components/LightweightArgInput.svelte +6 -11
  34. package/package/components/LogViewer.svelte +37 -29
  35. package/package/components/LogViewer.svelte.d.ts +2 -0
  36. package/package/components/ObjectResourceInput.svelte +1 -1
  37. package/package/components/ObjectResourceInput.svelte.d.ts +1 -0
  38. package/package/components/Path.svelte +3 -3
  39. package/package/components/QueueMetricsDrawer.svelte +6 -218
  40. package/package/components/QueueMetricsDrawer.svelte.d.ts +2 -3
  41. package/package/components/QueueMetricsDrawerInner.svelte +211 -0
  42. package/package/components/QueueMetricsDrawerInner.svelte.d.ts +15 -0
  43. package/package/components/ResourceEditorDrawer.svelte +14 -11
  44. package/package/components/ResourceEditorDrawer.svelte.d.ts +1 -1
  45. package/package/components/ResultJobLoader.svelte.d.ts +1 -1
  46. package/package/components/S3FilePicker.svelte +20 -8
  47. package/package/components/ScheduleEditorInner.svelte +497 -469
  48. package/package/components/ScriptBuilder.svelte +12 -1
  49. package/package/components/ScriptBuilder.svelte.d.ts +3 -0
  50. package/package/components/ScriptEditor.svelte +2 -0
  51. package/package/components/ScriptEditor.svelte.d.ts +2 -1
  52. package/package/components/ServiceLogsInner.svelte +511 -0
  53. package/package/components/ServiceLogsInner.svelte.d.ts +20 -0
  54. package/package/components/SimpleEditor.svelte +75 -37
  55. package/package/components/SimpleEditor.svelte.d.ts +9 -3
  56. package/package/components/Summary.svelte +33 -31
  57. package/package/components/Summary.svelte.d.ts +1 -0
  58. package/package/components/SuperadminSettings.svelte +28 -10
  59. package/package/components/TemplateEditor.svelte +1 -1
  60. package/package/components/TestJobLoader.svelte.d.ts +1 -1
  61. package/package/components/VimMode.svelte +16 -0
  62. package/package/components/VimMode.svelte.d.ts +14 -0
  63. package/package/components/WorkerTagPicker.svelte +4 -1
  64. package/package/components/WorkspaceGroup.svelte +139 -68
  65. package/package/components/WorkspaceGroup.svelte.d.ts +3 -0
  66. package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte +19 -2
  67. package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +1 -0
  68. package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte.d.ts +2 -1
  69. package/package/components/apps/components/display/table/AppAggridInfiniteTableEe.svelte +2 -0
  70. package/package/components/apps/components/display/table/AppAggridInfiniteTableEe.svelte.d.ts +2 -1
  71. package/package/components/apps/components/display/table/AppAggridTable.svelte +45 -3
  72. package/package/components/apps/components/display/table/AppAggridTable.svelte.d.ts +2 -1
  73. package/package/components/apps/components/display/table/AppAggridTableEe.svelte +2 -0
  74. package/package/components/apps/components/display/table/AppAggridTableEe.svelte.d.ts +2 -1
  75. package/package/components/apps/editor/AppEditor.svelte +239 -92
  76. package/package/components/apps/editor/AppEditorBottomPanel.svelte +22 -0
  77. package/package/components/apps/editor/AppEditorBottomPanel.svelte.d.ts +24 -0
  78. package/package/components/apps/editor/AppEditorHeader.svelte +44 -2
  79. package/package/components/apps/editor/AppEditorHeader.svelte.d.ts +9 -0
  80. package/package/components/apps/editor/AppExportButton.svelte +1 -1
  81. package/package/components/apps/editor/AppPreview.svelte +4 -0
  82. package/package/components/apps/editor/DeploymentHistory.svelte +7 -3
  83. package/package/components/apps/editor/GridEditor.svelte +4 -13
  84. package/package/components/apps/editor/RunnableJobPanel.svelte +25 -58
  85. package/package/components/apps/editor/RunnableJobPanel.svelte.d.ts +10 -1
  86. package/package/components/apps/editor/RunnalbeJobPanelInner.svelte +56 -0
  87. package/package/components/apps/editor/RunnalbeJobPanelInner.svelte.d.ts +18 -0
  88. package/package/components/apps/editor/SubGridEditor.svelte +3 -1
  89. package/package/components/apps/editor/component/Component.svelte +26 -4
  90. package/package/components/apps/editor/component/Component.svelte.d.ts +1 -0
  91. package/package/components/apps/editor/component/components.d.ts +5 -0
  92. package/package/components/apps/editor/componentsPanel/CssProperty.svelte +2 -0
  93. package/package/components/apps/editor/componentsPanel/tailwindUtils.js +267 -1
  94. package/package/components/apps/editor/contextPanel/ContextPanel.svelte +9 -1
  95. package/package/components/apps/editor/contextPanel/ContextPanel.svelte.d.ts +2 -0
  96. package/package/components/apps/editor/inlineScriptsPanel/CacheTtlPopup.svelte +1 -0
  97. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +4 -0
  98. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +7 -2
  99. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte.d.ts +5 -1
  100. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte +14 -2
  101. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte.d.ts +1 -0
  102. package/package/components/apps/editor/settingsPanel/ComponentPanel.svelte +25 -5
  103. package/package/components/apps/editor/settingsPanel/HideButton.svelte +47 -0
  104. package/package/components/apps/editor/settingsPanel/HideButton.svelte.d.ts +22 -0
  105. package/package/components/apps/editor/settingsPanel/TableActions.svelte +43 -4
  106. package/package/components/apps/editor/settingsPanel/TableActions.svelte.d.ts +2 -1
  107. package/package/components/apps/editor/settingsPanel/inputEditor/JsonEditor.svelte +2 -1
  108. package/package/components/apps/editor/settingsPanel/inputEditor/JsonEditor.svelte.d.ts +1 -0
  109. package/package/components/apps/svelte-grid/Grid.svelte +6 -2
  110. package/package/components/apps/svelte-grid/Grid.svelte.d.ts +1 -0
  111. package/package/components/apps/svelte-grid/MoveResize.svelte +11 -3
  112. package/package/components/apps/svelte-grid/MoveResize.svelte.d.ts +1 -0
  113. package/package/components/apps/svelte-grid/utils/item.d.ts +4 -1
  114. package/package/components/apps/svelte-grid/utils/item.js +11 -4
  115. package/package/components/build_workers.d.ts +1 -1
  116. package/package/components/build_workers.js +16 -122
  117. package/package/components/common/button/Button.svelte.d.ts +2 -2
  118. package/package/components/common/calendarPicker/CalendarPicker.svelte +6 -2
  119. package/package/components/common/calendarPicker/CalendarPicker.svelte.d.ts +2 -0
  120. package/package/components/common/drawer/ConditionalPortal.svelte +2 -1
  121. package/package/components/common/drawer/ConditionalPortal.svelte.d.ts +1 -0
  122. package/package/components/common/languageIcons/LanguageIcon.svelte +5 -2
  123. package/package/components/common/popup/Popup.svelte +2 -1
  124. package/package/components/common/popup/Popup.svelte.d.ts +1 -0
  125. package/package/components/common/table/AppRow.svelte +11 -8
  126. package/package/components/common/table/AppRow.svelte.d.ts +1 -2
  127. package/package/components/common/table/FlowRow.svelte +3 -3
  128. package/package/components/common/table/FlowRow.svelte.d.ts +1 -2
  129. package/package/components/common/table/RawAppRow.svelte +3 -3
  130. package/package/components/common/table/RawAppRow.svelte.d.ts +1 -2
  131. package/package/components/common/table/ScriptRow.svelte +3 -3
  132. package/package/components/common/table/ScriptRow.svelte.d.ts +1 -2
  133. package/package/components/copilot/CodeCompletionStatus.svelte +21 -46
  134. package/package/components/copilot/StepGen.svelte +2 -1
  135. package/package/components/custom_ui.d.ts +4 -1
  136. package/package/components/flows/CreateActionsApp.svelte +11 -8
  137. package/package/components/flows/CreateActionsFlow.svelte +11 -8
  138. package/package/components/flows/FlowEditor.svelte +1 -2
  139. package/package/components/flows/FlowEditor.svelte.d.ts +0 -1
  140. package/package/components/flows/FlowHistory.svelte +6 -3
  141. package/package/components/flows/content/FlowModuleComponent.svelte +1 -0
  142. package/package/components/flows/content/FlowModuleScript.svelte +15 -11
  143. package/package/components/flows/content/FlowSettings.svelte +1 -4
  144. package/package/components/flows/content/ScriptEditorDrawer.svelte +3 -0
  145. package/package/components/flows/header/FlowYamlEditor.svelte +55 -0
  146. package/package/components/flows/header/FlowYamlEditor.svelte.d.ts +17 -0
  147. package/package/components/flows/map/InsertTriggerButton.svelte +1 -1
  148. package/package/components/flows/map/InsertTriggerButton.svelte.d.ts +1 -0
  149. package/package/components/flows/map/VirtualItem.svelte +1 -1
  150. package/package/components/flows/pickers/PickHubScript.svelte +1 -0
  151. package/package/components/flows/types.d.ts +7 -6
  152. package/package/components/flows/utils.d.ts +9 -0
  153. package/package/components/flows/utils.js +21 -0
  154. package/package/components/graph/graphBuilder.js +1 -0
  155. package/package/components/graph/model.d.ts +1 -0
  156. package/package/components/graph/renderers/edges/BaseEdge.svelte +16 -0
  157. package/package/components/graph/renderers/nodes/BranchOneStart.svelte +1 -1
  158. package/package/components/graph/renderers/nodes/NoBranchNode.svelte +5 -1
  159. package/package/components/graph/renderers/nodes/NoBranchNode.svelte.d.ts +1 -0
  160. package/package/components/home/Item.svelte +0 -17
  161. package/package/components/home/deploy_ui.d.ts +2 -0
  162. package/package/components/home/deploy_ui.js +21 -0
  163. package/package/components/icons/RustIcon.svelte +70 -0
  164. package/package/components/icons/RustIcon.svelte.d.ts +25 -0
  165. package/package/components/icons/rust-logo.svg +1 -0
  166. package/package/components/instanceSettings.js +2 -2
  167. package/package/components/monaco_keybindings.d.ts +3 -0
  168. package/package/components/monaco_keybindings.js +9 -0
  169. package/package/components/preview/FlowPreviewStatus.svelte +6 -2
  170. package/package/components/runs/JobLoader.svelte +12 -3
  171. package/package/components/runs/JobLoader.svelte.d.ts +1 -1
  172. package/package/components/runs/ManuelDatePicker.svelte +31 -44
  173. package/package/components/runs/ManuelDatePicker.svelte.d.ts +6 -2
  174. package/package/components/runs/RunsFilter.svelte +4 -1
  175. package/package/components/runs/RunsFilter.svelte.d.ts +1 -0
  176. package/package/components/search/GlobalSearchModal.svelte +36 -25
  177. package/package/components/vscode.js +1 -1
  178. package/package/components/wizards/TableActionsWizard.svelte +84 -0
  179. package/package/components/wizards/TableActionsWizard.svelte.d.ts +22 -0
  180. package/package/editorUtils.js +2 -0
  181. package/package/gen/core/OpenAPI.js +1 -1
  182. package/package/gen/schemas.gen.d.ts +8 -8
  183. package/package/gen/schemas.gen.js +8 -8
  184. package/package/gen/services.gen.d.ts +4 -0
  185. package/package/gen/services.gen.js +16 -0
  186. package/package/gen/types.gen.d.ts +20 -8
  187. package/package/infer.d.ts +1 -1
  188. package/package/infer.js +48 -7
  189. package/package/script_helpers.d.ts +1 -0
  190. package/package/script_helpers.js +39 -1
  191. package/package/scripts.d.ts +1 -1
  192. package/package/scripts.js +12 -4
  193. package/package/stores.d.ts +5 -1
  194. package/package/stores.js +7 -2
  195. package/package.json +18 -9
@@ -1,37 +1,134 @@
1
1
  <!-- <script lang="ts"></script> -->
2
2
 
3
+ <script context="module">
4
+ import '@codingame/monaco-vscode-standalone-languages'
5
+ import '@codingame/monaco-vscode-standalone-typescript-language-features'
6
+ import processStdContent from '../process.d.ts.txt?raw'
7
+ import windmillFetchContent from '../windmill_fetch.d.ts.txt?raw'
8
+
9
+ languages.typescript.typescriptDefaults.addExtraLib(processStdContent, 'process.d.ts')
10
+
11
+ // languages.typescript.javascriptDefaults.setModeConfiguration({
12
+ // completionItems: true,
13
+ // hovers: true,
14
+ // documentSymbols: true,
15
+ // definitions: true,
16
+ // references: true,
17
+ // documentHighlights: true,
18
+ // rename: true,
19
+ // diagnostics: true,
20
+ // documentRangeFormattingEdits: true,
21
+ // signatureHelp: true,
22
+ // onTypeFormattingEdits: true,
23
+ // codeActions: true,
24
+ // inlayHints: true
25
+ // })
26
+
27
+ languages.typescript.typescriptDefaults.setModeConfiguration({
28
+ completionItems: true,
29
+ hovers: true,
30
+ documentSymbols: true,
31
+ definitions: true,
32
+ references: true,
33
+ documentHighlights: true,
34
+ rename: true,
35
+ diagnostics: true,
36
+ documentRangeFormattingEdits: true,
37
+ signatureHelp: true,
38
+ onTypeFormattingEdits: true,
39
+ codeActions: true,
40
+ inlayHints: true
41
+ })
42
+
43
+ // languages.typescript.javascriptDefaults.setEagerModelSync(true)
44
+ languages.typescript.typescriptDefaults.setEagerModelSync(true)
45
+
46
+ // languages.typescript.javascriptDefaults.setDiagnosticsOptions({
47
+ // noSemanticValidation: false,
48
+ // noSyntaxValidation: false,
49
+ // noSuggestionDiagnostics: false,
50
+ // diagnosticCodesToIgnore: [1108]
51
+ // })
52
+
53
+ languages.typescript.typescriptDefaults.setDiagnosticsOptions({
54
+ noSemanticValidation: false,
55
+ noSyntaxValidation: false,
56
+ noSuggestionDiagnostics: false,
57
+ diagnosticCodesToIgnore: [1108]
58
+ })
59
+
60
+ languages.typescript.typescriptDefaults.setCompilerOptions({
61
+ target: languages.typescript.ScriptTarget.Latest,
62
+ allowNonTsExtensions: true,
63
+ noSemanticValidation: false,
64
+ noSyntaxValidation: false,
65
+ completionItems: true,
66
+ hovers: true,
67
+ documentSymbols: true,
68
+ definitions: true,
69
+ references: true,
70
+ documentHighlights: true,
71
+ rename: true,
72
+ diagnostics: true,
73
+ documentRangeFormattingEdits: true,
74
+ signatureHelp: true,
75
+ onTypeFormattingEdits: true,
76
+ codeActions: true,
77
+ inlayHints: true,
78
+ checkJs: true,
79
+ allowJs: true,
80
+ noUnusedLocals: true,
81
+ strict: true,
82
+ noLib: false,
83
+ allowImportingTsExtensions: true,
84
+ moduleResolution: languages.typescript.ModuleResolutionKind.NodeJs
85
+ })
86
+
87
+ // languages.typescript.javascriptDefaults.setCompilerOptions({
88
+ // target: languages.typescript.ScriptTarget.Latest,
89
+ // allowNonTsExtensions: true,
90
+ // noSemanticValidation: false,
91
+ // noSyntaxValidation: false,
92
+ // allowImportingTsExtensions: true,
93
+ // checkJs: true,
94
+ // allowJs: true,
95
+ // noUnusedParameters: true,
96
+ // noUnusedLocals: true,
97
+ // strict: true,
98
+ // noLib: true,
99
+ // moduleResolution: languages.typescript.ModuleResolutionKind.NodeJs
100
+ // })
101
+ </script>
102
+
3
103
  <script>import { BROWSER } from 'esm-env';
4
104
  import { sendUserToast } from '../toast';
5
105
  import { createEventDispatcher, onDestroy, onMount } from 'svelte';
6
- import libStdContent from '../es6.d.ts.txt?raw';
7
- import domContent from '../dom.d.ts.txt?raw';
8
- import denoFetchContent from '../deno_fetch.d.ts.txt?raw';
9
- import '@codingame/monaco-vscode-standalone-languages';
10
- import '@codingame/monaco-vscode-standalone-typescript-language-features';
106
+ // import libStdContent from '../es6.d.ts.txt?raw'
107
+ // import domContent from '../dom.d.ts.txt?raw'
108
+ // import denoFetchContent from '../deno_fetch.d.ts.txt?raw'
11
109
  import * as vscode from 'vscode';
12
110
  // import '@codingame/monaco-vscode-typescript-basics-default-extension'
13
111
  // import '@codingame/monaco-vscode-typescript-language-features-default-extension'
14
112
  // import 'vscode/localExtensionHost'
15
- import processStdContent from '../process.d.ts.txt?raw';
16
- import windmillFetchContent from '../windmill_fetch.d.ts.txt?raw';
17
- import { MonacoLanguageClient } from '@windmill-labs/monaco-languageclient';
113
+ import { MonacoLanguageClient } from 'monaco-languageclient';
18
114
  import { toSocket, WebSocketMessageReader, WebSocketMessageWriter } from 'vscode-ws-jsonrpc';
19
115
  import { CloseAction, ErrorAction, RequestType } from 'vscode-languageclient';
20
116
  import { MonacoBinding } from 'y-monaco';
21
- import { dbSchemas, copilotInfo, codeCompletionSessionEnabled, lspTokenStore, formatOnSave } from '../stores';
117
+ import { dbSchemas, copilotInfo, codeCompletionSessionEnabled, lspTokenStore, formatOnSave, vimMode } from '../stores';
22
118
  import { createHash as randomHash, editorConfig, langToExt, updateOptions } from '../editorUtils';
23
119
  import { buildWorkerDefinition } from './build_workers';
24
120
  import { workspaceStore } from '../stores';
25
121
  import { UserService } from '../gen';
26
122
  import { initializeVscode } from './vscode';
27
- // import { initializeMode } from 'monaco-graphql/esm/initializeMode.js'
123
+ import { initializeMode } from 'monaco-graphql/esm/initializeMode.js';
28
124
  import { sleep } from '../utils';
29
125
  import { editorCodeCompletion } from './copilot/completion';
30
126
  import { editor as meditor, languages, KeyCode, KeyMod, Uri as mUri } from 'monaco-editor';
31
127
  import EditorTheme from './EditorTheme.svelte';
32
128
  import { BIGQUERY_TYPES, MSSQL_TYPES, MYSQL_TYPES, POSTGRES_TYPES, SNOWFLAKE_TYPES } from '../consts';
33
129
  import { setupTypeAcquisition } from '../ata/index';
34
- import { initWasm, parseDeps } from '../infer';
130
+ import { initWasmTs, parseDeps } from '../infer';
131
+ import { initVim } from './monaco_keybindings';
35
132
  // import EditorTheme from './EditorTheme.svelte'
36
133
  let divEl = null;
37
134
  let editor = null;
@@ -88,7 +185,6 @@ const uri = lang != 'go' && lang != 'typescript' && lang != 'python'
88
185
  : `file:///tmp/monaco/${randomHash()}.${langToExt(lang)}`;
89
186
  console.log('uri', uri);
90
187
  buildWorkerDefinition('../../../workers', import.meta.url, false);
91
- // buildWorkerDefinition()
92
188
  export function getCode() {
93
189
  return editor?.getValue() ?? '';
94
190
  }
@@ -281,13 +377,13 @@ function addDBSchemaCompletions() {
281
377
  return;
282
378
  }
283
379
  if (schemaLang === 'graphql') {
284
- // graphqlService ||= initializeMode()
285
- // graphqlService?.setSchemaConfig([
286
- // {
287
- // uri: 'my-schema.graphql',
288
- // introspectionJSON: schema
289
- // }
290
- // ])
380
+ graphqlService ||= initializeMode();
381
+ graphqlService?.setSchemaConfig([
382
+ {
383
+ uri: 'my-schema.graphql',
384
+ introspectionJSON: schema
385
+ }
386
+ ]);
291
387
  }
292
388
  else {
293
389
  if (sqlSchemaCompletor) {
@@ -760,6 +856,21 @@ $: if (yContent && awareness && model && editor) {
760
856
  }
761
857
  let initialized = false;
762
858
  let ata = undefined;
859
+ let statusDiv = null;
860
+ function saveDraft() {
861
+ dispatch('saveDraft', code);
862
+ }
863
+ let vimDisposable = undefined;
864
+ $: editor && $vimMode && statusDiv && onVimMode();
865
+ $: !$vimMode && vimDisposable && onVimDisable();
866
+ function onVimDisable() {
867
+ vimDisposable?.dispose();
868
+ }
869
+ function onVimMode() {
870
+ if (editor && statusDiv) {
871
+ vimDisposable = initVim(editor, statusDiv, saveDraft);
872
+ }
873
+ }
763
874
  async function loadMonaco() {
764
875
  try {
765
876
  console.log("Loading Monaco's language client");
@@ -772,93 +883,6 @@ async function loadMonaco() {
772
883
  // console.log('bef ready')
773
884
  // console.log('af ready')
774
885
  initialized = true;
775
- await import('@codingame/monaco-vscode-standalone-languages');
776
- await import('@codingame/monaco-vscode-standalone-typescript-language-features');
777
- languages.typescript.typescriptDefaults.addExtraLib(processStdContent, 'process.d.ts');
778
- languages.typescript.javascriptDefaults.setModeConfiguration({
779
- completionItems: true,
780
- hovers: true,
781
- documentSymbols: true,
782
- definitions: true,
783
- references: true,
784
- documentHighlights: true,
785
- rename: true,
786
- diagnostics: true,
787
- documentRangeFormattingEdits: true,
788
- signatureHelp: true,
789
- onTypeFormattingEdits: true,
790
- codeActions: true,
791
- inlayHints: true
792
- });
793
- languages.typescript.typescriptDefaults.setModeConfiguration({
794
- completionItems: true,
795
- hovers: true,
796
- documentSymbols: true,
797
- definitions: true,
798
- references: true,
799
- documentHighlights: true,
800
- rename: true,
801
- diagnostics: true,
802
- documentRangeFormattingEdits: true,
803
- signatureHelp: true,
804
- onTypeFormattingEdits: true,
805
- codeActions: true,
806
- inlayHints: true
807
- });
808
- languages.typescript.javascriptDefaults.setEagerModelSync(true);
809
- languages.typescript.typescriptDefaults.setEagerModelSync(true);
810
- languages.typescript.javascriptDefaults.setDiagnosticsOptions({
811
- noSemanticValidation: false,
812
- noSyntaxValidation: false,
813
- noSuggestionDiagnostics: false,
814
- diagnosticCodesToIgnore: [1108]
815
- });
816
- languages.typescript.typescriptDefaults.setDiagnosticsOptions({
817
- noSemanticValidation: false,
818
- noSyntaxValidation: false,
819
- noSuggestionDiagnostics: false,
820
- diagnosticCodesToIgnore: [1108]
821
- });
822
- languages.typescript.typescriptDefaults.setCompilerOptions({
823
- target: languages.typescript.ScriptTarget.Latest,
824
- allowNonTsExtensions: true,
825
- noSemanticValidation: false,
826
- noSyntaxValidation: false,
827
- completionItems: true,
828
- hovers: true,
829
- documentSymbols: true,
830
- definitions: true,
831
- references: true,
832
- documentHighlights: true,
833
- rename: true,
834
- diagnostics: true,
835
- documentRangeFormattingEdits: true,
836
- signatureHelp: true,
837
- onTypeFormattingEdits: true,
838
- codeActions: true,
839
- inlayHints: true,
840
- checkJs: true,
841
- allowJs: true,
842
- noUnusedLocals: true,
843
- strict: true,
844
- noLib: false,
845
- allowImportingTsExtensions: true,
846
- moduleResolution: languages.typescript.ModuleResolutionKind.NodeJs
847
- });
848
- languages.typescript.javascriptDefaults.setCompilerOptions({
849
- target: languages.typescript.ScriptTarget.Latest,
850
- allowNonTsExtensions: true,
851
- noSemanticValidation: false,
852
- noSyntaxValidation: false,
853
- allowImportingTsExtensions: true,
854
- checkJs: true,
855
- allowJs: true,
856
- noUnusedParameters: true,
857
- noUnusedLocals: true,
858
- strict: true,
859
- noLib: true,
860
- moduleResolution: languages.typescript.ModuleResolutionKind.NodeJs
861
- });
862
886
  try {
863
887
  model = meditor.createModel(code, lang, mUri.parse(uri));
864
888
  }
@@ -879,21 +903,7 @@ async function loadMonaco() {
879
903
  tabSize: lang == 'python' ? 4 : 2,
880
904
  folding
881
905
  });
882
- // const wrapper = new MonacoEditorLanguageClientWrapper()
883
- // const userConfig: UserConfig = {
884
- // wrapperConfig: {
885
- // editorAppConfig: {
886
- // $type: 'classic',
887
- // codeResources: {
888
- // main: {
889
- // text: 'console.log("FOO")")',
890
- // uri: '/workspace/hello.ts'
891
- // }
892
- // }
893
- // }
894
- // }
895
- // }
896
- // await wrapper.initAndStart(userConfig, divEl)
906
+ // updateEditorKeybindingsMode(editor, 'vim', undefined)
897
907
  let timeoutModel = undefined;
898
908
  let ataModel = undefined;
899
909
  editor?.onDidChangeModelContent((event) => {
@@ -945,6 +955,7 @@ async function loadMonaco() {
945
955
  ata = undefined;
946
956
  try {
947
957
  closeWebsockets();
958
+ vimDisposable?.dispose();
948
959
  model?.dispose();
949
960
  editor && editor.dispose();
950
961
  console.log('disposed editor');
@@ -957,15 +968,15 @@ async function loadMonaco() {
957
968
  async function setTypescriptExtraLibs() {
958
969
  if (lang === 'typescript' && scriptLang != 'deno') {
959
970
  const hostname = getHostname();
960
- const stdLib = { content: libStdContent, filePath: 'es6.d.ts' };
971
+ // const stdLib = { content: libStdContent, filePath: 'es6.d.ts' }
961
972
  if (scriptLang == 'bun' || scriptLang == 'bunnative') {
962
- const processLib = { content: processStdContent, filePath: 'process.d.ts' };
963
- const domLib = { content: domContent, filePath: 'dom.d.ts' };
964
- languages.typescript.typescriptDefaults.setExtraLibs([stdLib, domLib, processLib]);
973
+ // const processLib = { content: processStdContent, filePath: 'process.d.ts' }
974
+ // const domLib = { content: domContent, filePath: 'dom.d.ts' }
975
+ // languages.typescript.typescriptDefaults.setExtraLibs([stdLib, domLib, processLib])
965
976
  }
966
977
  else {
967
- const denoFetch = { content: denoFetchContent, filePath: 'deno_fetch.d.ts' };
968
- languages.typescript.typescriptDefaults.setExtraLibs([stdLib, denoFetch]);
978
+ // const denoFetch = { content: denoFetchContent, filePath: 'deno_fetch.d.ts' }
979
+ // languages.typescript.typescriptDefaults.setExtraLibs([stdLib, denoFetch])
969
980
  let localContent = windmillFetchContent;
970
981
  let p = '/tmp/monaco/windmill.d.ts';
971
982
  let nuri = mUri.parse(p);
@@ -1015,7 +1026,7 @@ async function setTypescriptExtraLibs() {
1015
1026
  }
1016
1027
  }
1017
1028
  };
1018
- await initWasm();
1029
+ await initWasmTs();
1019
1030
  const root = await genRoot(hostname);
1020
1031
  console.log('SETUP TYPE ACQUISITION', { root, path });
1021
1032
  ata = setupTypeAcquisition({
@@ -1088,6 +1099,9 @@ async function genRoot(hostname) {
1088
1099
 
1089
1100
  <EditorTheme />
1090
1101
  <div bind:this={divEl} class="{$$props.class} editor {disabled ? 'disabled' : ''}" />
1102
+ {#if $vimMode}
1103
+ <div class="fixed bottom-0 z-30" bind:this={statusDiv} />
1104
+ {/if}
1091
1105
 
1092
1106
  <style global>
1093
1107
  :global(.editor) {
@@ -3,11 +3,11 @@ import '@codingame/monaco-vscode-standalone-languages';
3
3
  import '@codingame/monaco-vscode-standalone-typescript-language-features';
4
4
  import { type Preview } from '../gen';
5
5
  import type { Text } from 'yjs';
6
- import { editor as meditor } from 'monaco-editor';
6
+ import { editor as meditor, type IDisposable } from 'monaco-editor';
7
7
  declare const __propDef: {
8
8
  props: {
9
9
  [x: string]: any;
10
- lang: 'typescript' | 'python' | 'go' | 'shell' | 'sql' | 'graphql' | 'powershell' | 'php' | 'css' | 'javascript';
10
+ lang: 'typescript' | 'python' | 'go' | 'shell' | 'sql' | 'graphql' | 'powershell' | 'php' | 'css' | 'javascript' | 'rust';
11
11
  code?: string | undefined;
12
12
  cmdEnterAction?: (() => void) | undefined;
13
13
  formatAction?: (() => void) | undefined;
@@ -38,7 +38,7 @@ declare const __propDef: {
38
38
  insertAtBeginning?: ((code: string) => void) | undefined;
39
39
  insertAtLine?: ((code: string, line: number) => void) | undefined;
40
40
  getSelectedLines?: (() => string | undefined) | undefined;
41
- onDidChangeCursorSelection?: ((f: (e: meditor.ICursorSelectionChangedEvent) => void) => import("monaco-editor").IDisposable | undefined) | undefined;
41
+ onDidChangeCursorSelection?: ((f: (e: meditor.ICursorSelectionChangedEvent) => void) => IDisposable | undefined) | undefined;
42
42
  show?: (() => void) | undefined;
43
43
  hide?: (() => void) | undefined;
44
44
  setCode?: ((ncode: string, noHistory?: boolean) => void) | undefined;
@@ -48,6 +48,7 @@ declare const __propDef: {
48
48
  addAction?: ((id: string, label: string, callback: (editor: meditor.IStandaloneCodeEditor) => void, keybindings?: number[]) => void) | undefined;
49
49
  };
50
50
  events: {
51
+ saveDraft: CustomEvent<any>;
51
52
  change: CustomEvent<any>;
52
53
  blur: CustomEvent<any>;
53
54
  focus: CustomEvent<any>;
@@ -67,7 +68,7 @@ export default class Editor extends SvelteComponent<EditorProps, EditorEvents, E
67
68
  get insertAtBeginning(): (code: string) => void;
68
69
  get insertAtLine(): (code: string, line: number) => void;
69
70
  get getSelectedLines(): () => string | undefined;
70
- get onDidChangeCursorSelection(): (f: (e: meditor.ICursorSelectionChangedEvent) => void) => import("monaco-editor").IDisposable | undefined;
71
+ get onDidChangeCursorSelection(): (f: (e: meditor.ICursorSelectionChangedEvent) => void) => IDisposable | undefined;
71
72
  get show(): () => void;
72
73
  get hide(): () => void;
73
74
  get setCode(): (ncode: string, noHistory?: boolean) => void;
@@ -19,15 +19,14 @@ import { createEventDispatcher } from 'svelte';
19
19
  import { sendUserToast } from '../toast';
20
20
  import { getScriptByPath, scriptLangToEditorLang } from '../scripts';
21
21
  import Toggle from './Toggle.svelte';
22
- import FormatOnSave from './FormatOnSave.svelte';
23
22
  import { DollarSign, History, Library, Link, Package, Plus, RotateCw, Save, Users } from 'lucide-svelte';
24
23
  import { capitalize, toCamel } from '../utils';
25
24
  import ScriptVersionHistory from './ScriptVersionHistory.svelte';
26
25
  import ScriptGen from './copilot/ScriptGen.svelte';
27
26
  import { getResetCode } from '../script_helpers';
28
- import CodeCompletionStatus from './copilot/CodeCompletionStatus.svelte';
29
27
  import Popover from './Popover.svelte';
30
28
  import ResourceEditorDrawer from './ResourceEditorDrawer.svelte';
29
+ import EditorSettings from './EditorSettings.svelte';
31
30
  export let lang;
32
31
  export let editor;
33
32
  export let websocketAlive;
@@ -63,7 +62,8 @@ $: showContextVarPicker = [
63
62
  'bun',
64
63
  'bunnative',
65
64
  'nativets',
66
- 'php'
65
+ 'php',
66
+ 'rust'
67
67
  ].includes(lang ?? '');
68
68
  $: showVarPicker = [
69
69
  'python3',
@@ -74,7 +74,8 @@ $: showVarPicker = [
74
74
  'bun',
75
75
  'bunnative',
76
76
  'nativets',
77
- 'php'
77
+ 'php',
78
+ 'rust'
78
79
  ].includes(lang ?? '');
79
80
  $: showResourcePicker = [
80
81
  'python3',
@@ -85,7 +86,8 @@ $: showResourcePicker = [
85
86
  'bun',
86
87
  'bunnative',
87
88
  'nativets',
88
- 'php'
89
+ 'php',
90
+ 'rust'
89
91
  ].includes(lang ?? '');
90
92
  $: showResourceTypePicker =
91
93
  ['typescript', 'javascript'].includes(scriptLangToEditorLang(lang)) ||
@@ -625,15 +627,11 @@ $res = json_decode(curl_exec($ch));`)
625
627
  </div>
626
628
  {/if}
627
629
 
628
- {#if customUi?.autoformatting != false}
629
- <FormatOnSave />
630
- {/if}
631
630
  {#if customUi?.aiGen != false}
632
631
  <ScriptGen {editor} {diffEditor} {lang} {iconOnly} {args} />
633
632
  {/if}
634
- {#if customUi?.aiFix != false}
635
- <CodeCompletionStatus />
636
- {/if}
633
+
634
+ <EditorSettings {customUi} />
637
635
  </div>
638
636
  </div>
639
637
 
@@ -0,0 +1,44 @@
1
+ <script>import { Settings } from 'lucide-svelte';
2
+ import FormatOnSave from './FormatOnSave.svelte';
3
+ import VimMode from './VimMode.svelte';
4
+ import { Button, Popup } from './common';
5
+ import CodeCompletionStatus from './copilot/CodeCompletionStatus.svelte';
6
+ export let customUi = {};
7
+ </script>
8
+
9
+ {#if customUi?.autoformatting != false || customUi?.vimMode != false || customUi?.aiCompletion != false}
10
+ <Popup
11
+ floatingConfig={{ strategy: 'absolute', placement: 'bottom-end' }}
12
+ containerClasses="border rounded-lg shadow-lg p-4 bg-surface"
13
+ >
14
+ <svelte:fragment slot="button">
15
+ <Button
16
+ btnClasses="text-tertiary"
17
+ color="light"
18
+ size="xs"
19
+ nonCaptureEvent={true}
20
+ startIcon={{ icon: Settings }}
21
+ iconOnly
22
+ title="Editor settings"
23
+ />
24
+ </svelte:fragment>
25
+
26
+ <div class="flex flex-col gap-y-2">
27
+ {#if customUi?.autoformatting != false}
28
+ <div>
29
+ <FormatOnSave />
30
+ </div>
31
+ {/if}
32
+ {#if customUi?.vimMode != false}
33
+ <div>
34
+ <VimMode />
35
+ </div>
36
+ {/if}
37
+ {#if customUi?.aiCompletion != false}
38
+ <div>
39
+ <CodeCompletionStatus />
40
+ </div>
41
+ {/if}
42
+ </div>
43
+ </Popup>
44
+ {/if}
@@ -0,0 +1,17 @@
1
+ import { SvelteComponent } from "svelte";
2
+ import type { EditorBarUi } from './custom_ui';
3
+ declare const __propDef: {
4
+ props: {
5
+ customUi?: EditorBarUi | undefined;
6
+ };
7
+ events: {
8
+ [evt: string]: CustomEvent<any>;
9
+ };
10
+ slots: {};
11
+ };
12
+ export type EditorSettingsProps = typeof __propDef.props;
13
+ export type EditorSettingsEvents = typeof __propDef.events;
14
+ export type EditorSettingsSlots = typeof __propDef.slots;
15
+ export default class EditorSettings extends SvelteComponent<EditorSettingsProps, EditorSettingsEvents, EditorSettingsSlots> {
16
+ }
17
+ export {};
@@ -1,5 +1,5 @@
1
1
  <script>import { isInitialized } from './vscode';
2
- import { editor as meditor } from 'monaco-editor/esm/vs/editor/editor.api';
2
+ import { editor as meditor } from 'monaco-editor';
3
3
  import { onMount } from 'svelte';
4
4
  import DarkModeObserver from './DarkModeObserver.svelte';
5
5
  function onThemeChange() {
@@ -1,5 +1,4 @@
1
1
  <script>import { Alert, Button, Tab, Tabs } from './common';
2
- import SchemaForm from './SchemaForm.svelte';
3
2
  import ScriptPicker from './ScriptPicker.svelte';
4
3
  import Toggle from './Toggle.svelte';
5
4
  import { base } from '../base';
@@ -207,13 +206,17 @@ $: handlerPath &&
207
206
  {/if}
208
207
  {#if handlerPath}
209
208
  <p class="font-semibold text-sm mt-4 mb-2">Extra arguments</p>
210
- <SchemaForm
211
- disabled={!isEditable}
212
- schema={customHandlerSchema}
213
- bind:args={handlerExtraArgs}
214
- shouldHideNoInputs
215
- class="text-xs"
216
- />
209
+ {#await import('./SchemaForm.svelte')}
210
+ <Loader2 class="animate-spin" />
211
+ {:then Module}
212
+ <Module.default
213
+ disabled={!isEditable}
214
+ schema={customHandlerSchema}
215
+ bind:args={handlerExtraArgs}
216
+ shouldHideNoInputs
217
+ class="text-xs"
218
+ />
219
+ {/await}
217
220
  {#if customHandlerSchema && customHandlerSchema.properties && Object.keys(customHandlerSchema.properties).length === 0}
218
221
  <div class="text-xs texg-gray-700">This error handler takes no extra arguments</div>
219
222
  {/if}
@@ -236,19 +239,23 @@ $: handlerPath &&
236
239
  />
237
240
  </span>
238
241
  {#if workspaceConnectedToSlack}
239
- <SchemaForm
240
- disabled={!$enterpriseLicense || !isSlackHandler(handlerPath)}
241
- schema={slackHandlerSchema}
242
- schemaSkippedValues={['slack']}
243
- schemaFieldTooltip={{
244
- channel: 'Slack channel name without the "#" - example: "windmill-alerts"'
245
- }}
246
- bind:args={handlerExtraArgs}
247
- shouldHideNoInputs
248
- class="text-xs"
249
- />
242
+ {#await import('./SchemaForm.svelte')}
243
+ <Loader2 class="animate-spin" />
244
+ {:then Module}
245
+ <Module.default
246
+ disabled={!$enterpriseLicense || !isSlackHandler(handlerPath)}
247
+ schema={slackHandlerSchema}
248
+ schemaSkippedValues={['slack']}
249
+ schemaFieldTooltip={{
250
+ channel: 'Slack channel name without the "#" - example: "windmill-alerts"'
251
+ }}
252
+ bind:args={handlerExtraArgs}
253
+ shouldHideNoInputs
254
+ class="text-xs"
255
+ />
256
+ {/await}
250
257
  {:else if workspaceConnectedToSlack == undefined}
251
- <Loader2 class="animate-spin" />
258
+ <Loader2 class="animate-spin" size={10} />
252
259
  {/if}
253
260
  {#if $enterpriseLicense && isSlackHandler(handlerPath)}
254
261
  {#if workspaceConnectedToSlack == false}