windmill-components 1.339.2 → 1.352.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. package/package/assets/app.css +0 -12
  2. package/package/ata/index.js +1 -0
  3. package/package/autosize.js +1 -1
  4. package/package/common.d.ts +6 -2
  5. package/package/common.js +2 -1
  6. package/package/components/AppConnectDrawer.svelte +1 -1
  7. package/package/components/AppConnectInner.svelte +9 -15
  8. package/package/components/ArgEnum.svelte +4 -1
  9. package/package/components/ArgEnum.svelte.d.ts +3 -1
  10. package/package/components/ArgInput.svelte +184 -141
  11. package/package/components/ArgInput.svelte.d.ts +7 -7
  12. package/package/components/ArrayTypeNarrowing.svelte +29 -27
  13. package/package/components/CenteredPage.svelte +2 -2
  14. package/package/components/DefaultTagsInner.svelte +1 -1
  15. package/package/components/Dev.svelte +2 -1
  16. package/package/components/DiffDrawer.svelte +1 -2
  17. package/package/components/DisplayResult.svelte +293 -233
  18. package/package/components/DurationMs.svelte +11 -3
  19. package/package/components/DurationMs.svelte.d.ts +2 -0
  20. package/package/components/EditableSchemaForm.svelte +447 -103
  21. package/package/components/EditableSchemaForm.svelte.d.ts +16 -6
  22. package/package/components/Editor.svelte +3 -1
  23. package/package/components/EditorBar.svelte +2 -2
  24. package/package/components/FlowBuilder.svelte +14 -6
  25. package/package/components/FlowGraphViewer.svelte +1 -1
  26. package/package/components/FlowGraphViewerStep.svelte +37 -9
  27. package/package/components/FlowGraphViewerStep.svelte.d.ts +2 -7
  28. package/package/components/FlowJobResult.svelte +1 -3
  29. package/package/components/FlowMetadata.svelte +1 -1
  30. package/package/components/FlowPreviewContent.svelte +5 -3
  31. package/package/components/FlowStatusViewer.svelte +4 -0
  32. package/package/components/FlowStatusViewer.svelte.d.ts +3 -0
  33. package/package/components/FlowStatusViewerInner.svelte +50 -17
  34. package/package/components/FlowStatusViewerInner.svelte.d.ts +3 -0
  35. package/package/components/FlowTimeline.svelte +13 -0
  36. package/package/components/FlowTimeline.svelte.d.ts +2 -0
  37. package/package/components/FlowViewer.svelte +0 -5
  38. package/package/components/FolderEditor.svelte +25 -0
  39. package/package/components/FolderEditor.svelte.d.ts +2 -0
  40. package/package/components/GroupEditor.svelte +36 -91
  41. package/package/components/GroupInfo.svelte +1 -1
  42. package/package/components/InputTransformForm.svelte +16 -1
  43. package/package/components/InputTransformForm.svelte.d.ts +2 -0
  44. package/package/components/InputTransformSchemaForm.svelte +6 -0
  45. package/package/components/InputTransformSchemaForm.svelte.d.ts +2 -0
  46. package/package/components/InstanceSettings.svelte +36 -3
  47. package/package/components/InstanceSettings.svelte.d.ts +2 -0
  48. package/package/components/JobStatus.svelte +2 -2
  49. package/package/components/LightweightArgInput.svelte +66 -14
  50. package/package/components/LightweightArgInput.svelte.d.ts +3 -2
  51. package/package/components/LightweightSchemaForm.svelte +24 -15
  52. package/package/components/ModulePreviewForm.svelte +1 -0
  53. package/package/components/NumberTypeNarrowing.svelte +71 -44
  54. package/package/components/ObjectResourceInput.svelte +2 -0
  55. package/package/components/ObjectResourceInput.svelte.d.ts +1 -0
  56. package/package/components/ObjectTypeNarrowing.svelte +0 -1
  57. package/package/components/ParqetCsvTableRenderer.svelte +181 -0
  58. package/package/components/ParqetCsvTableRenderer.svelte.d.ts +21 -0
  59. package/package/components/Path.svelte +2 -2
  60. package/package/components/PersistentScriptDrawer.svelte +6 -3
  61. package/package/components/Range.svelte +88 -286
  62. package/package/components/Range.svelte.d.ts +9 -23
  63. package/package/components/ResourceEditor.svelte +138 -141
  64. package/package/components/ResourceEditor.svelte.d.ts +9 -2
  65. package/package/components/ResourceEditorDrawer.svelte +45 -0
  66. package/package/components/ResourceEditorDrawer.svelte.d.ts +21 -0
  67. package/package/components/ResourcePicker.svelte +5 -2
  68. package/package/components/ResourceTypePicker.svelte +88 -36
  69. package/package/components/RunChart.svelte +55 -5
  70. package/package/components/RunChart.svelte.d.ts +1 -0
  71. package/package/components/RunForm.svelte +1 -1
  72. package/package/components/S3FilePicker.svelte +20 -8
  73. package/package/components/S3FilePicker.svelte.d.ts +2 -0
  74. package/package/components/ScheduleEditorInner.svelte +40 -37
  75. package/package/components/SchemaForm.svelte +192 -103
  76. package/package/components/SchemaForm.svelte.d.ts +16 -2
  77. package/package/components/ScriptBuilder.svelte +13 -8
  78. package/package/components/ScriptSchedules.svelte +11 -8
  79. package/package/components/ScriptSchema.svelte +3 -21
  80. package/package/components/ScriptVersionHistory.svelte +1 -1
  81. package/package/components/StringTypeNarrowing.svelte +217 -174
  82. package/package/components/StringTypeNarrowing.svelte.d.ts +5 -1
  83. package/package/components/Toggle.svelte +6 -3
  84. package/package/components/Toggle.svelte.d.ts +1 -0
  85. package/package/components/UserSettings.svelte +24 -1
  86. package/package/components/WorkspaceGroup.svelte +11 -13
  87. package/package/components/apps/components/buttons/AppButton.svelte +2 -0
  88. package/package/components/apps/components/buttons/AppButton.svelte.d.ts +1 -0
  89. package/package/components/apps/components/display/AppFlowStatusComponent.svelte +13 -70
  90. package/package/components/apps/components/display/AppFlowStatusComponent.svelte.d.ts +1 -9
  91. package/package/components/apps/components/display/AppJobIdFlowStatus.svelte +21 -8
  92. package/package/components/apps/components/display/AppJobIdFlowStatus.svelte.d.ts +1 -3
  93. package/package/components/apps/components/display/AppJobIdLogComponent.svelte +19 -7
  94. package/package/components/apps/components/display/AppJobIdLogComponent.svelte.d.ts +1 -3
  95. package/package/components/apps/components/display/AppLogsComponent.svelte +13 -70
  96. package/package/components/apps/components/display/AppLogsComponent.svelte.d.ts +1 -9
  97. package/package/components/apps/components/display/charts/AppAgCharts.svelte +25 -15
  98. package/package/components/apps/components/display/table/AppAggridTableActions.svelte +2 -0
  99. package/package/components/apps/components/display/table/SyncColumnDefs.svelte +1 -1
  100. package/package/components/apps/components/helpers/HiddenComponent.svelte +2 -1
  101. package/package/components/apps/components/helpers/RunnableComponent.svelte +18 -8
  102. package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +1 -0
  103. package/package/components/apps/components/helpers/RunnableWrapper.svelte +2 -0
  104. package/package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +1 -0
  105. package/package/components/apps/components/helpers/eval.js +1 -36
  106. package/package/components/apps/components/inputs/AppFileInput.svelte +3 -1
  107. package/package/components/apps/components/inputs/AppFileInput.svelte.d.ts +1 -0
  108. package/package/components/apps/components/inputs/AppS3FileInput.svelte +3 -1
  109. package/package/components/apps/components/inputs/AppS3FileInput.svelte.d.ts +1 -0
  110. package/package/components/apps/components/layout/AppConditionalWrapper.svelte +3 -1
  111. package/package/components/apps/components/layout/AppConditionalWrapper.svelte.d.ts +1 -0
  112. package/package/components/apps/components/layout/AppStepper.svelte +5 -1
  113. package/package/components/apps/components/layout/AppStepper.svelte.d.ts +2 -0
  114. package/package/components/apps/components/layout/AppTabs.svelte +3 -1
  115. package/package/components/apps/components/layout/AppTabs.svelte.d.ts +1 -0
  116. package/package/components/apps/editor/AppEditorHeader.svelte +6 -7
  117. package/package/components/apps/editor/SettingsPanel.svelte +13 -3
  118. package/package/components/apps/editor/component/Component.svelte +8 -16
  119. package/package/components/apps/editor/component/components.d.ts +11 -2
  120. package/package/components/apps/editor/component/components.js +2 -1
  121. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +1 -1
  122. package/package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +5 -34
  123. package/package/components/apps/editor/settingsPanel/ComponentPanel.svelte +3 -41
  124. package/package/components/apps/editor/settingsPanel/EventHandlerItem.svelte +33 -0
  125. package/package/components/apps/editor/settingsPanel/EventHandlerItem.svelte.d.ts +19 -0
  126. package/package/components/apps/editor/settingsPanel/EventHandlers.svelte +103 -0
  127. package/package/components/apps/editor/settingsPanel/EventHandlers.svelte.d.ts +18 -0
  128. package/package/components/apps/editor/settingsPanel/GridCondition.svelte +21 -45
  129. package/package/components/apps/editor/settingsPanel/GridTab.svelte +3 -23
  130. package/package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +5 -1
  131. package/package/components/apps/editor/settingsPanel/SubTypeEditor.svelte +0 -2
  132. package/package/components/apps/editor/settingsPanel/SubTypeEditor.svelte.d.ts +0 -1
  133. package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte +7 -1
  134. package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +7 -14
  135. package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte.d.ts +0 -1
  136. package/package/components/common/button/ButtonDropdown.svelte +1 -0
  137. package/package/components/common/drawer/Disposable.svelte +3 -2
  138. package/package/components/common/drawer/Disposable.svelte.d.ts +1 -0
  139. package/package/components/common/drawer/Drawer.svelte +12 -2
  140. package/package/components/common/drawer/Drawer.svelte.d.ts +1 -0
  141. package/package/components/common/fileDownload/FileDownload.svelte +4 -2
  142. package/package/components/common/fileUpload/FileUpload.svelte +4 -3
  143. package/package/components/common/modal/Modal.svelte +4 -1
  144. package/package/components/common/modal/Modal.svelte.d.ts +1 -0
  145. package/package/components/common/popup/Popup.svelte +1 -1
  146. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte +4 -1
  147. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte.d.ts +1 -0
  148. package/package/components/common/waitTimeWarning/WaitTimeWarning.svelte +79 -0
  149. package/package/components/common/waitTimeWarning/WaitTimeWarning.svelte.d.ts +18 -0
  150. package/package/components/flows/content/FlowEditorPanel.svelte +16 -2
  151. package/package/components/flows/content/FlowInput.svelte +63 -53
  152. package/package/components/flows/content/FlowModuleComponent.svelte +26 -3
  153. package/package/components/flows/content/FlowModuleScript.svelte +40 -1
  154. package/package/components/flows/content/FlowModuleScript.svelte.d.ts +2 -0
  155. package/package/components/flows/content/FlowModuleSuspend.svelte +99 -59
  156. package/package/components/flows/content/FlowModuleWrapper.svelte +16 -1
  157. package/package/components/flows/content/FlowSchedules.svelte +11 -8
  158. package/package/components/flows/content/ScriptEditorDrawer.svelte +3 -4
  159. package/package/components/flows/flowStateUtils.js +4 -1
  160. package/package/components/flows/map/FlowModuleSchemaItem.svelte +16 -1
  161. package/package/components/flows/map/FlowModuleSchemaMap.svelte +6 -1
  162. package/package/components/flows/types.d.ts +4 -0
  163. package/package/components/flows/utils.d.ts +5 -1
  164. package/package/components/flows/utils.js +36 -0
  165. package/package/components/graph/FlowGraph.svelte +5 -2
  166. package/package/components/graph/FlowGraph.svelte.d.ts +2 -0
  167. package/package/components/graph/svelvet/container/models/index.d.ts +0 -5
  168. package/package/components/graph/svelvet/container/models/index.js +1 -1
  169. package/package/components/graph/svelvet/container/views/Svelvet.svelte +2 -5
  170. package/package/components/graph/util.d.ts +1 -37
  171. package/package/components/graph/util.js +0 -34
  172. package/package/components/instanceSettings.js +2 -1
  173. package/package/components/jobs/JobPreview.svelte +1 -1
  174. package/package/components/multiselect/MultiSelect.svelte +4 -3
  175. package/package/components/multiselect/MultiSelect.svelte.d.ts +1 -0
  176. package/package/components/multiselect/MultiSelectWrapper.svelte +89 -0
  177. package/package/components/multiselect/MultiSelectWrapper.svelte.d.ts +20 -0
  178. package/package/components/propertyPicker/ObjectViewer.svelte +6 -2
  179. package/package/components/runs/JobPreview.svelte +5 -1
  180. package/package/components/runs/RunRow.svelte +22 -3
  181. package/package/components/runs/RunRow.svelte.d.ts +2 -1
  182. package/package/components/runs/RunsTable.svelte +22 -9
  183. package/package/components/runs/RunsTable.svelte.d.ts +2 -1
  184. package/package/components/schema/AddProperty.svelte +149 -0
  185. package/package/components/schema/AddProperty.svelte.d.ts +23 -0
  186. package/package/components/schema/AddPropertyForm.svelte +33 -0
  187. package/package/components/schema/AddPropertyForm.svelte.d.ts +16 -0
  188. package/package/components/schema/EditableSchemaDrawer.svelte +198 -0
  189. package/package/components/schema/EditableSchemaDrawer.svelte.d.ts +21 -0
  190. package/package/components/schema/EditableSchemaWrapper.svelte +31 -0
  191. package/package/components/schema/EditableSchemaWrapper.svelte.d.ts +22 -0
  192. package/package/components/schema/FlowPropertyEditor.svelte +393 -0
  193. package/package/components/schema/FlowPropertyEditor.svelte.d.ts +47 -0
  194. package/package/components/schema/PropertyEditor.svelte +185 -0
  195. package/package/components/schema/PropertyEditor.svelte.d.ts +46 -0
  196. package/package/components/schema/SchemaFormDND.svelte +75 -0
  197. package/package/components/schema/SchemaFormDND.svelte.d.ts +28 -0
  198. package/package/components/table/AutoDataTable.svelte +90 -104
  199. package/package/components/table/Cell.svelte +4 -1
  200. package/package/components/table/Cell.svelte.d.ts +1 -0
  201. package/package/components/table/DownloadCsv.svelte +30 -0
  202. package/package/components/table/DownloadCsv.svelte.d.ts +17 -0
  203. package/package/components/table/tableUtils.d.ts +8 -0
  204. package/package/components/table/tableUtils.js +37 -0
  205. package/package/consts.js +3 -1
  206. package/package/deno_fetch.d.ts.txt +6 -0
  207. package/package/gen/core/OpenAPI.js +1 -1
  208. package/package/gen/schemas.gen.d.ts +76 -0
  209. package/package/gen/schemas.gen.js +76 -0
  210. package/package/gen/services.gen.d.ts +100 -5
  211. package/package/gen/services.gen.js +216 -16
  212. package/package/gen/types.gen.d.ts +378 -5
  213. package/package/inferArgSig.d.ts +10 -0
  214. package/package/inferArgSig.js +59 -2
  215. package/package/scripts.d.ts +2 -0
  216. package/package/scripts.js +6 -3
  217. package/package/utils.d.ts +4 -3
  218. package/package/utils.js +9 -4
  219. package/package/workspace_settings.d.ts +15 -0
  220. package/package/workspace_settings.js +81 -0
  221. package/package.json +16 -7
  222. package/package/components/ParqetTableRenderer.svelte +0 -117
  223. package/package/components/ParqetTableRenderer.svelte.d.ts +0 -18
  224. package/package/components/PropertyRow.svelte +0 -88
  225. package/package/components/PropertyRow.svelte.d.ts +0 -23
  226. package/package/components/SchemaEditor.svelte +0 -346
  227. package/package/components/SchemaEditor.svelte.d.ts +0 -25
  228. package/package/components/SchemaModal.svelte +0 -443
  229. package/package/components/SchemaModal.svelte.d.ts +0 -33
  230. package/package/components/apps/editor/settingsPanel/Recompute.svelte +0 -55
  231. package/package/components/apps/editor/settingsPanel/Recompute.svelte.d.ts +0 -20
@@ -1,5 +1,6 @@
1
1
  <script>import Label from './Label.svelte';
2
2
  import Toggle from './Toggle.svelte';
3
+ import Tooltip from './Tooltip.svelte';
3
4
  import { selectOptions } from './apps/editor/component';
4
5
  export let min;
5
6
  export let max;
@@ -9,51 +10,77 @@ let minChecked = min != undefined;
9
10
  let maxChecked = max != undefined;
10
11
  </script>
11
12
 
12
- <div class="my-2" />
13
-
14
13
  <div class="flex flex-col gap-2">
15
- <div class="flex gap-2">
16
- <Toggle
17
- bind:checked={minChecked}
18
- on:change={(e) => {
19
- if (e.detail) {
20
- min = 0
21
- } else {
22
- min = undefined
23
- }
24
- }}
25
- options={{ right: 'min' }}
26
- />
27
- <input type="number" bind:value={min} disabled={!minChecked} />
14
+ <div class="grid grid-cols-2 gap-4">
15
+ <Label label="Min" class="w-full col-span-1">
16
+ <svelte:fragment slot="header">
17
+ <Tooltip light small>
18
+ Set a minimum value for the number. If both min and max are set, the input will render as
19
+ a range slider.
20
+ </Tooltip>
21
+ </svelte:fragment>
22
+ <svelte:fragment slot="action">
23
+ <Toggle
24
+ bind:checked={minChecked}
25
+ on:change={(e) => {
26
+ if (e.detail) {
27
+ min = 0
28
+ } else {
29
+ min = undefined
30
+ }
31
+ }}
32
+ options={{ right: 'Enabled' }}
33
+ size="xs"
34
+ />
35
+ </svelte:fragment> <input type="number" bind:value={min} disabled={!minChecked} />
36
+ </Label>
37
+
38
+ <Label label="Max" class="w-full col-span-1 ">
39
+ <svelte:fragment slot="header">
40
+ <Tooltip light small>
41
+ Set a maximum value for the number. If both min and max are set, the input will render as
42
+ a range slider.
43
+ </Tooltip>
44
+ </svelte:fragment>
45
+ <svelte:fragment slot="action">
46
+ <Toggle
47
+ bind:checked={maxChecked}
48
+ on:change={(e) => {
49
+ if (e.detail) {
50
+ max = 42
51
+ } else {
52
+ max = undefined
53
+ }
54
+ }}
55
+ options={{ right: 'Enabled' }}
56
+ size="xs"
57
+ />
58
+ </svelte:fragment>
59
+ <input type="number" bind:value={max} disabled={!maxChecked} />
60
+ </Label>
28
61
  </div>
29
- <div class="flex gap-2">
30
- <Toggle
31
- bind:checked={maxChecked}
32
- on:change={(e) => {
33
- if (e.detail) {
34
- max = 42
35
- } else {
36
- max = undefined
37
- }
38
- }}
39
- options={{ right: 'max' }}
40
- />
41
- <input type="number" bind:value={max} disabled={!maxChecked} />
62
+ <div class="grid grid-cols-3 gap-4">
63
+ <Label label="Currency" class="w-full col-span-2">
64
+ <svelte:fragment slot="header">
65
+ <Tooltip light small>
66
+ Select a currency to display the number in. If a currency is selected, you can also select
67
+ a locale to format the number according to that locale.
68
+ </Tooltip>
69
+ </svelte:fragment>
70
+ <select bind:value={currency}>
71
+ <option value={undefined}> No currency </option>
72
+ {#each selectOptions.currencyOptions as c}
73
+ <option value={c}>{c}</option>
74
+ {/each}
75
+ </select>
76
+ </Label>
77
+ <Label label="Currency locale" class="w-full">
78
+ <select bind:value={currencyLocale} disabled={!currency}>
79
+ <option value={undefined}> No locale </option>
80
+ {#each selectOptions.localeOptions as c}
81
+ <option value={c}>{c}</option>
82
+ {/each}
83
+ </select>
84
+ </Label>
42
85
  </div>
43
- <Label label="Currency">
44
- <select class="mt-1" bind:value={currency}>
45
- <option value={undefined}> No currency </option>
46
- {#each selectOptions.currencyOptions as c}
47
- <option value={c}>{c}</option>
48
- {/each}
49
- </select>
50
- </Label>
51
- <Label label="Currency locale">
52
- <select class="mt-1" bind:value={currencyLocale}>
53
- <option value={undefined}> No locale </option>
54
- {#each selectOptions.localeOptions as c}
55
- <option value={c}>{c}</option>
56
- {/each}
57
- </select>
58
- </Label>
59
86
  </div>
@@ -5,6 +5,7 @@ export let value;
5
5
  export let disablePortal = false;
6
6
  export let showSchemaExplorer = false;
7
7
  export let selectFirst = false;
8
+ export let defaultValue;
8
9
  function isString(value) {
9
10
  return typeof value === 'string' || value instanceof String;
10
11
  }
@@ -40,6 +41,7 @@ $: value && valueToPath();
40
41
  resourceToValue()
41
42
  }}
42
43
  bind:value={path}
44
+ initialValue={defaultValue}
43
45
  resourceType={format.split('-').length > 1 ? format.substring('resource-'.length) : undefined}
44
46
  {showSchemaExplorer}
45
47
  />
@@ -6,6 +6,7 @@ declare const __propDef: {
6
6
  disablePortal?: boolean | undefined;
7
7
  showSchemaExplorer?: boolean | undefined;
8
8
  selectFirst?: boolean | undefined;
9
+ defaultValue: any;
9
10
  };
10
11
  events: {
11
12
  [evt: string]: CustomEvent<any>;
@@ -5,7 +5,6 @@ let resource = format?.startsWith('resource-')
5
5
  : undefined;
6
6
  </script>
7
7
 
8
- <div class="mt-2" />
9
8
  <ResourceTypePicker
10
9
  on:click={(e) => {
11
10
  resource = e.detail
@@ -0,0 +1,181 @@
1
+ <script>import { GridApi, createGrid } from 'ag-grid-community';
2
+ import 'ag-grid-community/styles/ag-grid.css';
3
+ import 'ag-grid-community/styles/ag-theme-alpine.css';
4
+ import { twMerge } from 'tailwind-merge';
5
+ import DarkModeObserver from './DarkModeObserver.svelte';
6
+ import { HelpersService } from '../gen';
7
+ import { enterpriseLicense, workspaceStore } from '../stores';
8
+ import { Download } from 'lucide-svelte';
9
+ // import 'ag-grid-community/dist/styles/ag-theme-alpine-dark.css'
10
+ let selectedRowIndex = -1;
11
+ export let s3resource;
12
+ export let storage;
13
+ export let workspaceId;
14
+ export let disable_download = false;
15
+ let csvSeparatorChar = ',';
16
+ let datasource = {
17
+ rowCount: 0,
18
+ getRows: async function (params) {
19
+ try {
20
+ const searchCol = params.filterModel ? Object.keys(params.filterModel)?.[0] : undefined;
21
+ const csv = s3resource.endsWith('.csv');
22
+ const requestBody = {
23
+ workspace: workspaceId ?? $workspaceStore,
24
+ path: s3resource,
25
+ offset: params.startRow,
26
+ limit: params.endRow - params.startRow,
27
+ sortCol: params.sortModel?.[0]?.colId,
28
+ sortDesc: params.sortModel?.[0]?.sort == 'desc',
29
+ searchCol: searchCol,
30
+ searchTerm: searchCol ? params.filterModel?.[searchCol]?.filter : undefined,
31
+ storage: storage,
32
+ csvSeparator: csv ? csvSeparatorChar : undefined
33
+ };
34
+ const res = (csv
35
+ ? await HelpersService.loadCsvPreview(requestBody)
36
+ : await HelpersService.loadParquetPreview(requestBody));
37
+ for (let i = 0; i < res.rows.length; i++) {
38
+ res.rows[i]['__index'] = i + params.startRow;
39
+ if (!$enterpriseLicense) {
40
+ Object.keys(res.rows[i]).forEach((key) => {
41
+ if (key != '__index') {
42
+ res.rows[i][key] = 'Require EE';
43
+ }
44
+ });
45
+ }
46
+ }
47
+ params.successCallback(res.rows);
48
+ }
49
+ catch (e) {
50
+ console.error(e);
51
+ params.failCallback();
52
+ }
53
+ }
54
+ };
55
+ function toggleRow(row) {
56
+ if (row) {
57
+ let rowIndex = row.rowIndex;
58
+ let data = { ...row.data };
59
+ delete data['__index'];
60
+ if (selectedRowIndex !== rowIndex) {
61
+ selectedRowIndex = rowIndex;
62
+ }
63
+ }
64
+ }
65
+ function toggleRows(rows) {
66
+ toggleRow(rows[0]);
67
+ }
68
+ let eGui;
69
+ $: eGui && mountGrid();
70
+ let error = undefined;
71
+ async function mountGrid() {
72
+ if (eGui) {
73
+ try {
74
+ const csv = s3resource.endsWith('.csv');
75
+ const res = csv
76
+ ? await HelpersService.loadCsvPreview({
77
+ workspace: $workspaceStore,
78
+ path: s3resource,
79
+ limit: 0,
80
+ storage: storage,
81
+ csvSeparator: csvSeparatorChar
82
+ })
83
+ : await HelpersService.loadParquetPreview({
84
+ workspace: $workspaceStore,
85
+ path: s3resource,
86
+ limit: 0,
87
+ storage: storage
88
+ });
89
+ createGrid(eGui, {
90
+ rowModelType: 'infinite',
91
+ datasource,
92
+ // @ts-ignore
93
+ columnDefs: res.columns.map((c) => {
94
+ return {
95
+ field: c,
96
+ sortable: true,
97
+ filter: true,
98
+ filterParams: {
99
+ filterOptions: ['contains'],
100
+ maxNumConditions: 1
101
+ }
102
+ };
103
+ }),
104
+ pagination: false,
105
+ // defaultColDef: {
106
+ // flex: 1
107
+ // },
108
+ suppressColumnMoveAnimation: true,
109
+ rowSelection: 'multiple',
110
+ rowMultiSelectWithClick: true,
111
+ suppressRowDeselection: true,
112
+ onSelectionChanged: (e) => {
113
+ onSelectionChanged(e.api);
114
+ },
115
+ getRowId: (data) => {
116
+ return data.data['__index'];
117
+ }
118
+ }, {});
119
+ error = undefined;
120
+ }
121
+ catch (e) {
122
+ error = e.body;
123
+ console.error(e);
124
+ }
125
+ }
126
+ }
127
+ function onSelectionChanged(api) {
128
+ const rows = api.getSelectedNodes();
129
+ if (rows != undefined) {
130
+ toggleRows(rows);
131
+ }
132
+ }
133
+ let darkMode = false;
134
+ </script>
135
+
136
+ <DarkModeObserver bind:darkMode />
137
+
138
+ <div class={twMerge('mt-2 flex flex-col h-full min-h-[600px]')}>
139
+ {#if s3resource.endsWith('.csv')}
140
+ <div class="flex flex-row-reverse w-full">
141
+ <div class="flex items-baseline">
142
+ <label for="csvSeparatorChar" class="text-2xs text-secondary">Separator</label>
143
+
144
+ <div class="w-12 ml-2 mr-2">
145
+ <select class="h-8" bind:value={csvSeparatorChar} on:change={(e) => mountGrid()}>
146
+ <option value=",">,</option>
147
+ <option value=";">;</option>
148
+ <option value="\t">\t</option>
149
+ <option value="|">|</option>
150
+ </select>
151
+ </div>
152
+ </div>
153
+ </div>
154
+ {/if}
155
+ {#if !disable_download && !s3resource.endsWith('.csv')}
156
+ <a
157
+ target="_blank"
158
+ href="/api/w/{workspaceId}/job_helpers/download_s3_parquet_file_as_csv?file_key={s3resource}{storage
159
+ ? `&storage=${storage}`
160
+ : ''}"
161
+ class="text-secondary w-full text-right underline text-2xs whitespace-nowrap"
162
+ ><div class="flex flex-row-reverse gap-2 items-center"><Download size={12} /> CSV</div></a
163
+ >
164
+ {/if}
165
+
166
+ <div
167
+ class="ag-theme-alpine shadow-sm h-full"
168
+ class:ag-theme-alpine-dark={darkMode}
169
+ style="height: 600px;"
170
+ >
171
+ {#if error}
172
+ <div class="text-red-500">{error}</div>
173
+ <div>Try changing separator to fix it</div>
174
+ {/if}
175
+ <div bind:this={eGui} style="height:100%; " />
176
+ </div>
177
+ </div>
178
+
179
+ <!-- <div class="flex gap-1 absolute bottom-1 right-2 text-sm text-secondary"
180
+ >{firstRow}{'->'}{lastRow + 1} of {datasource?.rowCount} rows</div
181
+ > -->
@@ -0,0 +1,21 @@
1
+ import { SvelteComponent } from "svelte";
2
+ import 'ag-grid-community/styles/ag-grid.css';
3
+ import 'ag-grid-community/styles/ag-theme-alpine.css';
4
+ declare const __propDef: {
5
+ props: {
6
+ s3resource: string;
7
+ storage: string | undefined;
8
+ workspaceId: string | undefined;
9
+ disable_download?: boolean | undefined;
10
+ };
11
+ events: {
12
+ [evt: string]: CustomEvent<any>;
13
+ };
14
+ slots: {};
15
+ };
16
+ export type ParqetCsvTableRendererProps = typeof __propDef.props;
17
+ export type ParqetCsvTableRendererEvents = typeof __propDef.events;
18
+ export type ParqetCsvTableRendererSlots = typeof __propDef.slots;
19
+ export default class ParqetCsvTableRenderer extends SvelteComponent<ParqetCsvTableRendererProps, ParqetCsvTableRendererEvents, ParqetCsvTableRendererSlots> {
20
+ }
21
+ export {};
@@ -249,8 +249,8 @@ let contentSearch;
249
249
  }}
250
250
  >
251
251
  {#if !folderCreated}
252
- <div class="flex flex-row">
253
- <input class="mr-2" placeholder="New folder name" bind:value={newFolderName} />
252
+ <div class="flex flex-col gap-2">
253
+ <input placeholder="New folder name" bind:value={newFolderName} />
254
254
  <Button size="md" startIcon={{ icon: Plus }} disabled={!newFolderName} on:click={addFolder}>
255
255
  New&nbsp;folder
256
256
  </Button>
@@ -1,7 +1,7 @@
1
1
  <script>import { JobService } from '../gen';
2
2
  import { Badge, Button, Drawer } from './common';
3
3
  import DrawerContent from './common/drawer/DrawerContent.svelte';
4
- import { createEventDispatcher } from 'svelte';
4
+ import { createEventDispatcher, onDestroy } from 'svelte';
5
5
  import { workspaceStore } from '../stores';
6
6
  import { displayDate, sleep, sendUserToast } from '../utils';
7
7
  import TableCustom from './TableCustom.svelte';
@@ -44,7 +44,7 @@ async function loadQueuedJobsOnce() {
44
44
  // toggle queuedJobsLoading to false in 1 secs to let some time for the animation to play
45
45
  setTimeout(() => {
46
46
  queuedJobsLoading = false;
47
- }, 1000 - (endStart - timeStart));
47
+ }, 3000 - (endStart - timeStart));
48
48
  }
49
49
  async function scaleToZero() {
50
50
  cancellingInProgress = true;
@@ -72,6 +72,9 @@ async function exit() {
72
72
  loadQueuedJobs = false;
73
73
  drawer.closeDrawer?.();
74
74
  }
75
+ onDestroy(() => {
76
+ loadQueuedJobs = false;
77
+ });
75
78
  </script>
76
79
 
77
80
  <Drawer
@@ -99,7 +102,7 @@ async function exit() {
99
102
  variant="border"
100
103
  on:click={loadQueuedJobsOnce}
101
104
  >
102
- <RefreshCw class={queuedJobsLoading ? 'animate-spin' : ''} size="xs" />Refresh
105
+ <RefreshCw class={queuedJobsLoading ? 'animate-spin' : ''} size={14} />
103
106
  </Button>
104
107
  </div>
105
108
  <TableCustom>