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
@@ -28,7 +28,7 @@
28
28
 
29
29
  @font-face {
30
30
  font-family: 'Inter';
31
- src: url('/Inter-Variable.ttf');
31
+ src: url('/Inter-Variable.woff2') format('woff2');
32
32
  font-weight: 100 900;
33
33
  font-display: swap;
34
34
  }
@@ -120,3 +120,27 @@ svelte-virtual-list-contents > * + * {
120
120
  @apply bg-surface;
121
121
  @apply disabled:placeholder:text-gray-200 disabled:placeholder:dark:text-gray-500 disabled:text-gray-200 disabled:dark:text-gray-500 disabled:border-gray-200 disabled:dark:border-gray-600;
122
122
  }
123
+
124
+ .nonmain-editor .cursor.monaco-mouse-cursor-text {
125
+ width: 1px !important;
126
+ }
127
+
128
+ .bg-locked {
129
+ background-image: repeating-linear-gradient(
130
+ -45deg,
131
+ rgba(128, 128, 128, 0.2),
132
+ rgba(128, 128, 128, 0.2) 10px,
133
+ rgba(192, 192, 192, 0.2) 10px,
134
+ rgba(192, 192, 192, 0.2) 20px
135
+ );
136
+ }
137
+
138
+ .bg-locked-hover {
139
+ background-image: repeating-linear-gradient(
140
+ -45deg,
141
+ rgba(255, 99, 71, 0.2),
142
+ rgba(255, 99, 71, 0.2) 10px,
143
+ rgba(255, 69, 58, 0.2),
144
+ rgba(255, 69, 58, 0.2) 20px
145
+ );
146
+ }
@@ -366,7 +366,8 @@ $: shouldDispatchChanges && debounced(value);
366
366
  />
367
367
  {:else if itemsType?.type == 'resource' && itemsType?.resourceType && resourceTypes?.includes(itemsType.resourceType)}
368
368
  <ObjectResourceInput
369
- bind:value={v}
369
+ value={v ? `$res:${v}` : undefined}
370
+ bind:path={v}
370
371
  format={'resource-' + itemsType?.resourceType}
371
372
  defaultValue={undefined}
372
373
  />
@@ -1,52 +1,9 @@
1
- <script>import { SettingService, UserService } from '../gen';
2
- import { Button, Popup } from './common';
3
- import { sendUserToast } from '../toast';
4
- import Alert from './common/alert/Alert.svelte';
1
+ <script>import { Button, Popup } from './common';
5
2
  import { autoPlacement } from '@floating-ui/core';
6
- import { createEventDispatcher } from 'svelte';
3
+ import ChangeInstanceUsernameInner from './ChangeInstanceUsernameInner.svelte';
7
4
  export let email;
8
5
  export let username;
9
6
  export let isConflict = false;
10
- let loading = false;
11
- let usernameInfo = undefined;
12
- function handleKeyUp(event) {
13
- const key = event.key;
14
- if (key === 'Enter') {
15
- event.preventDefault();
16
- renameUser();
17
- }
18
- }
19
- async function getUsernameInfo() {
20
- usernameInfo = await UserService.globalUsernameInfo({
21
- email
22
- });
23
- if (isConflict) {
24
- username = usernameInfo.username;
25
- }
26
- }
27
- getUsernameInfo();
28
- const dispatch = createEventDispatcher();
29
- async function renameUser() {
30
- loading = true;
31
- try {
32
- const automateUsernameCreation = (await SettingService.getGlobal({ key: 'automate_username_creation' })) ?? false;
33
- if (!automateUsernameCreation) {
34
- sendUserToast('Modifying the username is only possible when the creation of usernames is automated and defined at instance level..');
35
- return;
36
- }
37
- await UserService.globalUserRename({
38
- email,
39
- requestBody: {
40
- new_username: username
41
- }
42
- });
43
- sendUserToast(`Renamed user ${email} to ${username}`);
44
- dispatch('renamed');
45
- }
46
- finally {
47
- loading = false;
48
- }
49
- }
50
7
  </script>
51
8
 
52
9
  <Popup
@@ -65,67 +22,11 @@ async function renameUser() {
65
22
  >{isConflict ? 'Fix username conflict' : 'Change username'}</Button
66
23
  >
67
24
  </svelte:fragment>
68
- <div class="flex flex-col max-w-2xl p-2">
69
- <span class="text-sm mb-2 leading-6 font-semibold"
70
- >{isConflict ? 'Fix username conflict' : 'Change username'}</span
71
- >
72
-
73
- <span class="text-xs mb-1 leading-6"
74
- >{isConflict ? 'Auto-generated instance username' : 'New username'}</span
75
- >
76
- <input
77
- type="text"
78
- class="mb-4"
79
- on:keyup={handleKeyUp}
80
- bind:value={username}
81
- disabled={isConflict}
82
- />
83
-
84
- {#if isConflict}
85
- <Alert title="Username conflict" class="mb-4">
86
- Users are required to have an instance-wide username that is shared across all workspaces.
87
- However, this user has different usernames in different workspaces.
88
-
89
- {#if usernameInfo?.workspace_usernames && usernameInfo.workspace_usernames.filter((w) => w.username !== username).length > 0}
90
- <br />
91
- <br />
92
- Workspaces requiring username modification: {usernameInfo.workspace_usernames
93
- .filter((w) => w.username !== username)
94
- .map((wu) => `${wu.workspace_id} (${wu.username})`)
95
- .join(', ')}
96
- {/if}
97
- </Alert>
98
- {/if}
99
-
100
- {#if !isConflict && usernameInfo?.workspace_usernames && usernameInfo.workspace_usernames.filter((w) => w.username !== username).length > 0}
101
- <Alert title="Concerned workspaces" class="mb-4">
102
- {usernameInfo.workspace_usernames
103
- .filter((w) => w.username !== username)
104
- .map((wu) => `${wu.workspace_id}`)
105
- .join(', ')}
106
- </Alert>
107
- {/if}
108
-
109
- <Alert type="warning" title="Manual action required" class="mb-4">
110
- This operation does not handle references in scripts, workflows and applications to scripts in
111
- the workspace, and references in resources to variables. You will have to handle those
112
- manually.
113
- <br />
114
- </Alert>
115
-
116
- <Button
117
- variant="contained"
118
- color="blue"
119
- size="xs"
120
- on:click={() => {
121
- renameUser().then(() => {
122
- close(null)
123
- })
124
- }}
125
- disabled={email === undefined || !username}
126
- {loading}
127
- >
128
- Confirm username change
129
- </Button>
130
- </div>
25
+ <ChangeInstanceUsernameInner
26
+ {email}
27
+ {username}
28
+ {isConflict}
29
+ on:close={() => close(null)}
30
+ on:renamed
31
+ />
131
32
  </Popup>
@@ -0,0 +1,112 @@
1
+ <script>import { SettingService, UserService } from '../gen';
2
+ import { Button } from './common';
3
+ import { sendUserToast } from '../toast';
4
+ import Alert from './common/alert/Alert.svelte';
5
+ import { createEventDispatcher } from 'svelte';
6
+ export let email;
7
+ export let username;
8
+ export let isConflict = false;
9
+ let loading = false;
10
+ let usernameInfo = undefined;
11
+ function handleKeyUp(event) {
12
+ const key = event.key;
13
+ if (key === 'Enter') {
14
+ event.preventDefault();
15
+ renameUser();
16
+ }
17
+ }
18
+ async function getUsernameInfo() {
19
+ usernameInfo = await UserService.globalUsernameInfo({
20
+ email
21
+ });
22
+ if (isConflict) {
23
+ username = usernameInfo.username;
24
+ }
25
+ }
26
+ getUsernameInfo();
27
+ const dispatch = createEventDispatcher();
28
+ async function renameUser() {
29
+ loading = true;
30
+ try {
31
+ const automateUsernameCreation = (await SettingService.getGlobal({ key: 'automate_username_creation' })) ?? false;
32
+ if (!automateUsernameCreation) {
33
+ sendUserToast('Modifying the username is only possible when the creation of usernames is automated and defined at instance level..');
34
+ return;
35
+ }
36
+ await UserService.globalUserRename({
37
+ email,
38
+ requestBody: {
39
+ new_username: username
40
+ }
41
+ });
42
+ sendUserToast(`Renamed user ${email} to ${username}`);
43
+ dispatch('renamed');
44
+ }
45
+ finally {
46
+ loading = false;
47
+ }
48
+ }
49
+ </script>
50
+
51
+ <div class="flex flex-col max-w-2xl p-2">
52
+ <span class="text-sm mb-2 leading-6 font-semibold"
53
+ >{isConflict ? 'Fix username conflict' : 'Change username'}</span
54
+ >
55
+
56
+ <span class="text-xs mb-1 leading-6"
57
+ >{isConflict ? 'Auto-generated instance username' : 'New username'}</span
58
+ >
59
+ <input
60
+ type="text"
61
+ class="mb-4"
62
+ on:keyup={handleKeyUp}
63
+ bind:value={username}
64
+ disabled={isConflict}
65
+ />
66
+
67
+ {#if isConflict}
68
+ <Alert title="Username conflict" class="mb-4">
69
+ Users are required to have an instance-wide username that is shared across all workspaces.
70
+ However, this user has different usernames in different workspaces.
71
+
72
+ {#if usernameInfo?.workspace_usernames && usernameInfo.workspace_usernames.filter((w) => w.username !== username).length > 0}
73
+ <br />
74
+ <br />
75
+ Workspaces requiring username modification: {usernameInfo.workspace_usernames
76
+ .filter((w) => w.username !== username)
77
+ .map((wu) => `${wu.workspace_id} (${wu.username})`)
78
+ .join(', ')}
79
+ {/if}
80
+ </Alert>
81
+ {/if}
82
+
83
+ {#if !isConflict && usernameInfo?.workspace_usernames && usernameInfo.workspace_usernames.filter((w) => w.username !== username).length > 0}
84
+ <Alert title="Concerned workspaces" class="mb-4">
85
+ {usernameInfo.workspace_usernames
86
+ .filter((w) => w.username !== username)
87
+ .map((wu) => `${wu.workspace_id}`)
88
+ .join(', ')}
89
+ </Alert>
90
+ {/if}
91
+
92
+ <Alert type="warning" title="Manual action required" class="mb-4">
93
+ This operation does not handle references in scripts, workflows and applications to scripts in
94
+ the workspace, and references in resources to variables. You will have to handle those manually.
95
+ <br />
96
+ </Alert>
97
+
98
+ <Button
99
+ variant="contained"
100
+ color="blue"
101
+ size="xs"
102
+ on:click={() => {
103
+ renameUser().then(() => {
104
+ dispatch('close')
105
+ })
106
+ }}
107
+ disabled={email === undefined || !username}
108
+ {loading}
109
+ >
110
+ Confirm username change
111
+ </Button>
112
+ </div>
@@ -0,0 +1,21 @@
1
+ import { SvelteComponent } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ email: string;
5
+ username: string;
6
+ isConflict?: boolean | undefined;
7
+ };
8
+ events: {
9
+ close: CustomEvent<any>;
10
+ renamed: CustomEvent<any>;
11
+ } & {
12
+ [evt: string]: CustomEvent<any>;
13
+ };
14
+ slots: {};
15
+ };
16
+ export type ChangeInstanceUsernameInnerProps = typeof __propDef.props;
17
+ export type ChangeInstanceUsernameInnerEvents = typeof __propDef.events;
18
+ export type ChangeInstanceUsernameInnerSlots = typeof __propDef.slots;
19
+ export default class ChangeInstanceUsernameInner extends SvelteComponent<ChangeInstanceUsernameInnerProps, ChangeInstanceUsernameInnerEvents, ChangeInstanceUsernameInnerSlots> {
20
+ }
21
+ export {};
@@ -1,6 +1,5 @@
1
1
  <script>import { Alert, Button, Drawer, DrawerContent } from './common';
2
2
  import { Loader2 } from 'lucide-svelte';
3
- import DiffEditor from './DiffEditor.svelte';
4
3
  import { scriptLangToEditorLang } from '../scripts';
5
4
  import Tabs from './common/tabs/Tabs.svelte';
6
5
  import Tab from './common/tabs/Tab.svelte';
@@ -157,26 +156,34 @@ $: updateContentType(data, diffType);
157
156
  <div class="flex-1">
158
157
  {#key diffType}
159
158
  {#if contentType === 'content'}
160
- <DiffEditor
161
- open={true}
162
- automaticLayout
163
- class="h-full"
164
- defaultLang={lang}
165
- defaultModifiedLang={data.current.lang}
166
- defaultOriginal={content}
167
- defaultModified={data.current.content}
168
- readOnly
169
- />
159
+ {#await import('./DiffEditor.svelte')}
160
+ <Loader2 class="animate-spin" />
161
+ {:then Module}
162
+ <Module.default
163
+ open={true}
164
+ automaticLayout
165
+ class="h-full"
166
+ defaultLang={lang}
167
+ defaultModifiedLang={data.current.lang}
168
+ defaultOriginal={content}
169
+ defaultModified={data.current.content}
170
+ readOnly
171
+ />
172
+ {/await}
170
173
  {:else if contentType === 'metadata'}
171
- <DiffEditor
172
- open={true}
173
- automaticLayout
174
- class="h-full"
175
- defaultLang="yaml"
176
- defaultOriginal={metadata}
177
- defaultModified={data.current.metadata}
178
- readOnly
179
- />
174
+ {#await import('./DiffEditor.svelte')}
175
+ <Loader2 class="animate-spin" />
176
+ {:then Module}
177
+ <Module.default
178
+ open={true}
179
+ automaticLayout
180
+ class="h-full"
181
+ defaultLang="yaml"
182
+ defaultOriginal={metadata}
183
+ defaultModified={data.current.metadata}
184
+ readOnly
185
+ />
186
+ {/await}
180
187
  {/if}
181
188
  {/key}
182
189
  </div>
@@ -42,8 +42,12 @@ async function loadDiffEditor() {
42
42
  if (defaultOriginal !== undefined &&
43
43
  defaultModified !== undefined &&
44
44
  defaultLang !== undefined) {
45
+ console.log('SETUP');
45
46
  setupModel(defaultLang, defaultOriginal, defaultModified, defaultModifiedLang);
46
47
  }
48
+ else {
49
+ console.log('NO SETUP', defaultOriginal, defaultModified, defaultLang);
50
+ }
47
51
  }
48
52
  export function setupModel(lang, original, modified, modifiedLang) {
49
53
  diffEditor?.setModel({
@@ -58,18 +62,22 @@ export function setupModel(lang, original, modified, modifiedLang) {
58
62
  }
59
63
  }
60
64
  export function setOriginal(code) {
65
+ console.log('setOriginal', code);
61
66
  diffEditor?.getModel()?.original?.setValue(code);
67
+ defaultOriginal = code;
62
68
  }
63
69
  export function getOriginal() {
64
70
  return diffEditor?.getModel()?.original.getValue() ?? '';
65
71
  }
66
72
  export function setModified(code) {
67
73
  diffEditor?.getModel()?.modified?.setValue(code);
74
+ defaultModified = code;
68
75
  }
69
76
  export function getModified() {
70
77
  return diffEditor?.getModel()?.modified.getValue() ?? '';
71
78
  }
72
79
  export function show() {
80
+ console.log('show');
73
81
  open = true;
74
82
  }
75
83
  export function hide() {
@@ -91,5 +99,9 @@ onMount(() => {
91
99
 
92
100
  {#if open}
93
101
  <EditorTheme />
94
- <div bind:this={diffDivEl} class="{$$props.class} editor" bind:clientWidth={editorWidth} />
102
+ <div
103
+ bind:this={diffDivEl}
104
+ class="{$$props.class} editor nonmain-editor"
105
+ bind:clientWidth={editorWidth}
106
+ />
95
107
  {/if}
@@ -555,15 +555,26 @@ let seeS3PreviewFileFromList = '';
555
555
  </button>
556
556
  {/if}
557
557
  </div>
558
- {#if typeof result?.s3 == 'string' && (result?.s3?.endsWith('.parquet') || result?.s3?.endsWith('.csv'))}
559
- {#key result.s3}
560
- <ParqetTableRenderer
561
- disable_download={result?.disable_download}
562
- {workspaceId}
563
- s3resource={result?.s3}
564
- storage={result?.storage}
565
- />
566
- {/key}
558
+ {#if typeof result?.s3 === 'string'}
559
+ {#if result?.s3?.endsWith('.parquet') || result?.s3?.endsWith('.csv')}
560
+ {#key result.s3}
561
+ <ParqetTableRenderer
562
+ disable_download={result?.disable_download}
563
+ {workspaceId}
564
+ s3resource={result?.s3}
565
+ storage={result?.storage}
566
+ />
567
+ {/key}
568
+ {:else if result?.s3?.endsWith('.png') || result?.s3?.endsWith('.jpeg') || result?.s3?.endsWith('.jpg') || result?.s3?.endsWith('.webp')}
569
+ <div class="h-full mt-2">
570
+ <img
571
+ alt="preview rendered"
572
+ class="w-auto h-full"
573
+ src={`/api/w/${workspaceId}/job_helpers/load_image_preview?file_key=${result.s3}` +
574
+ (result.storage ? `&storage=${result.storage}` : '')}
575
+ />
576
+ </div>
577
+ {/if}
567
578
  {/if}
568
579
  </div>
569
580
  {:else if !forceJson && resultKind == 's3object-list'}
@@ -612,6 +623,25 @@ let seeS3PreviewFileFromList = '';
612
623
  >open table preview <ArrowDownFromLine />
613
624
  </button>
614
625
  {/if}
626
+ {:else if s3object?.s3?.endsWith('.png') || s3object?.s3?.endsWith('.jpeg') || s3object?.s3?.endsWith('.jpg') || s3object?.s3?.endsWith('.webp')}
627
+ {#if seeS3PreviewFileFromList == s3object?.s3}
628
+ <div class="h-full mt-2">
629
+ <img
630
+ alt="preview rendered"
631
+ class="w-auto h-full"
632
+ src={`/api/w/${workspaceId}/job_helpers/load_image_preview?file_key=${s3object.s3}` +
633
+ (s3object.storage ? `&storage=${s3object.storage}` : '')}
634
+ />
635
+ </div>
636
+ {:else}
637
+ <button
638
+ class="text-secondary whitespace-nowrap flex gap-2 items-center"
639
+ on:click={() => {
640
+ seeS3PreviewFileFromList = s3object?.s3
641
+ }}
642
+ >open image preview <ArrowDownFromLine />
643
+ </button>
644
+ {/if}
615
645
  {/if}
616
646
  {/each}
617
647
  </div>
@@ -1,12 +1,11 @@
1
1
  <script>import { MoreVertical } from 'lucide-svelte';
2
2
  import Menu from './common/menu/MenuV2.svelte';
3
- import { MenuItem } from '@rgossiaux/svelte-headlessui';
4
- import { twMerge } from 'tailwind-merge';
3
+ import DropdownV2Inner from './DropdownV2Inner.svelte';
5
4
  export let items = [];
6
5
  export let justifyEnd = true;
7
- function computeItems() {
6
+ async function computeItems() {
8
7
  if (typeof items === 'function') {
9
- return (items() ?? []).filter((item) => !item.hide);
8
+ return ((await items()) ?? []).filter((item) => !item.hide);
10
9
  }
11
10
  else {
12
11
  return items.filter((item) => !item.hide);
@@ -26,26 +25,5 @@ function computeItems() {
26
25
  {/if}
27
26
  </div>
28
27
 
29
- <div class="flex flex-col">
30
- {#each computeItems() ?? [] as item}
31
- <MenuItem
32
- on:click={(e) => item?.action?.(e)}
33
- href={item?.href}
34
- disabled={item?.disabled}
35
- class={twMerge(
36
- 'px-4 py-2 text-primary hover:bg-surface-hover hover:text-primary cursor-pointer text-xs transition-all',
37
- 'flex flex-row gap-2 items-center',
38
- item?.disabled && 'text-gray-400 cursor-not-allowed',
39
- item?.type === 'delete' &&
40
- !item?.disabled &&
41
- 'text-red-500 hover:bg-red-100 hover:text-red-500'
42
- )}
43
- >
44
- {#if item.icon}
45
- <svelte:component this={item.icon} size={14} />
46
- {/if}
47
- {item.displayName}
48
- </MenuItem>
49
- {/each}
50
- </div>
28
+ <DropdownV2Inner items={computeItems} />
51
29
  </Menu>
@@ -17,7 +17,15 @@ declare const __propDef: {
17
17
  disabled?: boolean | undefined;
18
18
  type?: "action" | "delete" | undefined;
19
19
  hide?: boolean | undefined;
20
- }[]) | undefined;
20
+ }[]) | (() => Promise<{
21
+ displayName: string;
22
+ action?: ((e: CustomEvent<any>) => void) | undefined;
23
+ icon?: any;
24
+ href?: string | undefined;
25
+ disabled?: boolean | undefined;
26
+ type?: "action" | "delete" | undefined;
27
+ hide?: boolean | undefined;
28
+ }[]>) | undefined;
21
29
  justifyEnd?: boolean | undefined;
22
30
  };
23
31
  events: {
@@ -0,0 +1,42 @@
1
+ <script>import { MenuItem } from '@rgossiaux/svelte-headlessui';
2
+ import { Loader2 } from 'lucide-svelte';
3
+ import { twMerge } from 'tailwind-merge';
4
+ export let items = [];
5
+ let computedItems = undefined;
6
+ async function computeItems() {
7
+ if (typeof items === 'function') {
8
+ computedItems = ((await items()) ?? []).filter((item) => !item.hide);
9
+ }
10
+ else {
11
+ computedItems = items.filter((item) => !item.hide);
12
+ }
13
+ }
14
+ computeItems();
15
+ </script>
16
+
17
+ {#if computedItems}
18
+ <div class="flex flex-col">
19
+ {#each computedItems ?? [] as item}
20
+ <MenuItem
21
+ on:click={(e) => item?.action?.(e)}
22
+ href={item?.href}
23
+ disabled={item?.disabled}
24
+ class={twMerge(
25
+ 'px-4 py-2 text-primary hover:bg-surface-hover hover:text-primary cursor-pointer text-xs transition-all',
26
+ 'flex flex-row gap-2 items-center',
27
+ item?.disabled && 'text-gray-400 cursor-not-allowed',
28
+ item?.type === 'delete' &&
29
+ !item?.disabled &&
30
+ 'text-red-500 hover:bg-red-100 hover:text-red-500'
31
+ )}
32
+ >
33
+ {#if item.icon}
34
+ <svelte:component this={item.icon} size={14} />
35
+ {/if}
36
+ {item.displayName}
37
+ </MenuItem>
38
+ {/each}
39
+ </div>
40
+ {:else}
41
+ <Loader2 class="animate-spin mx-auto p-4" size={24} />
42
+ {/if}
@@ -0,0 +1,40 @@
1
+ import { SvelteComponent } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ items?: {
5
+ displayName: string;
6
+ action?: ((e: CustomEvent<any>) => void) | undefined;
7
+ icon?: any;
8
+ href?: string | undefined;
9
+ disabled?: boolean | undefined;
10
+ type?: "action" | "delete" | undefined;
11
+ hide?: boolean | undefined;
12
+ }[] | (() => {
13
+ displayName: string;
14
+ action?: ((e: CustomEvent<any>) => void) | undefined;
15
+ icon?: any;
16
+ href?: string | undefined;
17
+ disabled?: boolean | undefined;
18
+ type?: "action" | "delete" | undefined;
19
+ hide?: boolean | undefined;
20
+ }[]) | (() => Promise<{
21
+ displayName: string;
22
+ action?: ((e: CustomEvent<any>) => void) | undefined;
23
+ icon?: any;
24
+ href?: string | undefined;
25
+ disabled?: boolean | undefined;
26
+ type?: "action" | "delete" | undefined;
27
+ hide?: boolean | undefined;
28
+ }[]>) | undefined;
29
+ };
30
+ events: {
31
+ [evt: string]: CustomEvent<any>;
32
+ };
33
+ slots: {};
34
+ };
35
+ export type DropdownV2InnerProps = typeof __propDef.props;
36
+ export type DropdownV2InnerEvents = typeof __propDef.events;
37
+ export type DropdownV2InnerSlots = typeof __propDef.slots;
38
+ export default class DropdownV2Inner extends SvelteComponent<DropdownV2InnerProps, DropdownV2InnerEvents, DropdownV2InnerSlots> {
39
+ }
40
+ export {};