windmill-components 1.352.9 → 1.362.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 (208) hide show
  1. package/package/assets/app.css +8 -45
  2. package/package/components/ApiConnectForm.svelte +1 -0
  3. package/package/components/ArgInput.svelte +5 -1
  4. package/package/components/ChangeInstanceUsername.svelte +20 -12
  5. package/package/components/ContentSearchInner.svelte +359 -0
  6. package/package/components/{ContentSearch.svelte.d.ts → ContentSearchInner.svelte.d.ts} +9 -5
  7. package/package/components/CustomPopover.svelte +73 -0
  8. package/package/components/CustomPopover.svelte.d.ts +29 -0
  9. package/package/components/DateTimeInput.svelte +29 -3
  10. package/package/components/DateTimeInput.svelte.d.ts +4 -0
  11. package/package/components/Dev.svelte +8 -3
  12. package/package/components/DurationMs.svelte +2 -2
  13. package/package/components/FlowBuilder.svelte +122 -24
  14. package/package/components/FlowBuilder.svelte.d.ts +1 -0
  15. package/package/components/FlowGraphViewerStep.svelte +2 -2
  16. package/package/components/FlowJobResult.svelte +5 -3
  17. package/package/components/FlowStatusViewer.svelte +4 -3
  18. package/package/components/FlowStatusViewerInner.svelte +265 -160
  19. package/package/components/FlowStatusViewerInner.svelte.d.ts +15 -2
  20. package/package/components/HighlightTheme.svelte +75 -77
  21. package/package/components/InputTransformForm.svelte +2 -0
  22. package/package/components/JobArgs.svelte +59 -44
  23. package/package/components/JobArgs.svelte.d.ts +2 -0
  24. package/package/components/LightweightArgInput.svelte +27 -2
  25. package/package/components/Path.svelte +3 -8
  26. package/package/components/Popover.svelte +1 -1
  27. package/package/components/ResourceEditor.svelte +3 -2
  28. package/package/components/ResourceEditorDrawer.svelte +4 -1
  29. package/package/components/ResourcePicker.svelte +1 -0
  30. package/package/components/RunChart.svelte +6 -3
  31. package/package/components/RunChart.svelte.d.ts +1 -0
  32. package/package/components/RunForm.svelte +24 -23
  33. package/package/components/RunForm.svelte.d.ts +0 -2
  34. package/package/components/SavedInputs.svelte +50 -39
  35. package/package/components/ScheduleEditorInner.svelte +26 -4
  36. package/package/components/ScriptBuilder.svelte +47 -22
  37. package/package/components/ScriptBuilder.svelte.d.ts +1 -0
  38. package/package/components/SearchItems.svelte +5 -4
  39. package/package/components/Summary.svelte +74 -0
  40. package/package/components/Summary.svelte.d.ts +16 -0
  41. package/package/components/apps/components/display/AppMarkdown.svelte +3 -2
  42. package/package/components/apps/components/display/AppMenu.svelte +2 -2
  43. package/package/components/apps/components/display/AppNavbar.svelte +94 -0
  44. package/package/components/apps/components/display/AppNavbar.svelte.d.ts +24 -0
  45. package/package/components/apps/components/display/AppNavbarItem.svelte +146 -0
  46. package/package/components/apps/components/display/AppNavbarItem.svelte.d.ts +27 -0
  47. package/package/components/apps/components/display/ResolveNavbarItemPath.svelte +21 -0
  48. package/package/components/apps/components/display/ResolveNavbarItemPath.svelte.d.ts +20 -0
  49. package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +16 -0
  50. package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte +12 -16
  51. package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte.d.ts +1 -0
  52. package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +5 -0
  53. package/package/components/apps/components/display/table/AppAggridTable.svelte +28 -6
  54. package/package/components/apps/components/display/table/AppAggridTableActions.svelte +68 -43
  55. package/package/components/apps/components/inputs/AppDateSelect.svelte +284 -0
  56. package/package/components/apps/components/inputs/AppDateSelect.svelte.d.ts +21 -0
  57. package/package/components/apps/components/inputs/AppDateTimeInput.svelte +2 -0
  58. package/package/components/apps/components/inputs/AppFileInput.svelte +22 -27
  59. package/package/components/apps/components/inputs/AppFileInput.svelte.d.ts +1 -0
  60. package/package/components/apps/components/inputs/AppTextInput.svelte +1 -1
  61. package/package/components/apps/components/layout/AppDecisionTree.svelte +32 -30
  62. package/package/components/apps/components/layout/AppModal.svelte +17 -6
  63. package/package/components/apps/editor/AppDeploymentHistory.svelte +2 -3
  64. package/package/components/apps/editor/AppDeploymentHistory.svelte.d.ts +3 -2
  65. package/package/components/apps/editor/AppEditor.svelte +9 -2
  66. package/package/components/apps/editor/AppEditorHeader.svelte +7 -10
  67. package/package/components/apps/editor/AppPreview.svelte +12 -3
  68. package/package/components/apps/editor/AppPreview.svelte.d.ts +2 -0
  69. package/package/components/apps/editor/DecisionTreeDebug.svelte +92 -68
  70. package/package/components/apps/editor/DeploymentHistory.svelte +0 -2
  71. package/package/components/apps/editor/appUtils.d.ts +1 -0
  72. package/package/components/apps/editor/appUtils.js +17 -0
  73. package/package/components/apps/editor/component/Component.svelte +23 -0
  74. package/package/components/apps/editor/component/components.d.ts +205 -3
  75. package/package/components/apps/editor/component/components.js +160 -1
  76. package/package/components/apps/editor/component/default-codes.js +13 -13
  77. package/package/components/apps/editor/component/sets.js +4 -2
  78. package/package/components/apps/editor/componentsPanel/ComponentList.svelte +12 -12
  79. package/package/components/apps/editor/componentsPanel/cssUtils.js +39 -3
  80. package/package/components/apps/editor/componentsPanel/quickStyleProperties.js +6 -0
  81. package/package/components/apps/editor/contextPanel/ComponentOutput.svelte +2 -2
  82. package/package/components/apps/editor/contextPanel/ContextPanel.svelte +6 -0
  83. package/package/components/apps/editor/contextPanel/components/OutputHeader.svelte +11 -0
  84. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte +4 -0
  85. package/package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +21 -8
  86. package/package/components/apps/editor/settingsPanel/ComponentPanel.svelte +64 -20
  87. package/package/components/apps/editor/settingsPanel/ContextVariables.svelte +48 -15
  88. package/package/components/apps/editor/settingsPanel/ContextVariables.svelte.d.ts +1 -0
  89. package/package/components/apps/editor/settingsPanel/DecisionTreeGraphEditor.svelte +25 -5
  90. package/package/components/apps/editor/settingsPanel/DecisionTreeGraphNode.svelte +2 -1
  91. package/package/components/apps/editor/settingsPanel/DecisionTreeGraphNode.svelte.d.ts +1 -0
  92. package/package/components/apps/editor/settingsPanel/DocLink.svelte +33 -0
  93. package/package/components/apps/editor/settingsPanel/DocLink.svelte.d.ts +19 -0
  94. package/package/components/apps/editor/settingsPanel/GridNavbar.svelte +192 -0
  95. package/package/components/apps/editor/settingsPanel/GridNavbar.svelte.d.ts +18 -0
  96. package/package/components/apps/editor/settingsPanel/GridTab.svelte +2 -2
  97. package/package/components/apps/editor/settingsPanel/RefreshDatabaseStudioTable.svelte +17 -0
  98. package/package/components/apps/editor/settingsPanel/RefreshDatabaseStudioTable.svelte.d.ts +16 -0
  99. package/package/components/apps/editor/settingsPanel/TableActions.svelte +81 -38
  100. package/package/components/apps/editor/settingsPanel/decisionTree/DecisionTreePreview.svelte +12 -5
  101. package/package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte +11 -12
  102. package/package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte.d.ts +4 -2
  103. package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +4 -1
  104. package/package/components/apps/editor/settingsPanel/secondaryMenu/SecondaryMenu.svelte +7 -1
  105. package/package/components/apps/inputType.d.ts +2 -2
  106. package/package/components/apps/svelte-select/lib/Select.svelte +2 -3
  107. package/package/components/apps/types.d.ts +3 -0
  108. package/package/components/auditLogs/AuditLogsTable.svelte +2 -2
  109. package/package/components/common/CloseButton.svelte +10 -10
  110. package/package/components/common/CloseButton.svelte.d.ts +6 -14
  111. package/package/components/common/calendarPicker/CalendarPicker.svelte +5 -0
  112. package/package/components/common/calendarPicker/CalendarPicker.svelte.d.ts +2 -0
  113. package/package/components/common/confirmationModal/UnsavedConfirmationModal.svelte +7 -1
  114. package/package/components/common/fileInput/FileInput.svelte +2 -0
  115. package/package/components/common/fileInput/FileInput.svelte.d.ts +1 -0
  116. package/package/components/common/popup/Popup.svelte +4 -3
  117. package/package/components/common/popup/Popup.svelte.d.ts +1 -0
  118. package/package/components/common/table/AppRow.svelte +3 -10
  119. package/package/components/common/table/FlowRow.svelte +12 -1
  120. package/package/components/copilot/IteratorGen.svelte +1 -1
  121. package/package/components/copilot/PredicateGen.svelte +1 -1
  122. package/package/components/copilot/StepInputGen.svelte +8 -3
  123. package/package/components/copilot/StepInputsGen.svelte +5 -2
  124. package/package/components/details/WebhooksPanel.svelte +32 -1
  125. package/package/components/details/WebhooksPanel.svelte.d.ts +2 -11
  126. package/package/components/flows/FlowHistory.svelte +208 -0
  127. package/package/components/flows/FlowHistory.svelte.d.ts +21 -0
  128. package/package/components/flows/content/FlowBranchesAllWrapper.svelte +1 -1
  129. package/package/components/flows/content/FlowBranchesOneWrapper.svelte +1 -1
  130. package/package/components/flows/content/FlowEditorPanel.svelte +1 -1
  131. package/package/components/flows/content/FlowLoop.svelte +23 -26
  132. package/package/components/flows/content/FlowModuleComponent.svelte +2 -18
  133. package/package/components/flows/content/FlowModuleEarlyStop.svelte +10 -4
  134. package/package/components/flows/content/FlowModuleHeader.svelte +3 -4
  135. package/package/components/flows/content/FlowModuleScript.svelte +1 -1
  136. package/package/components/flows/content/FlowModuleSleep.svelte +1 -0
  137. package/package/components/flows/content/FlowModuleSuspend.svelte +1 -1
  138. package/package/components/flows/content/SuspendDrawer.svelte +7 -7
  139. package/package/components/flows/flowStateUtils.js +2 -1
  140. package/package/components/flows/flowStore.js +1 -1
  141. package/package/components/flows/header/FlowImportExportMenu.svelte +3 -16
  142. package/package/components/flows/header/FlowImportExportMenu.svelte.d.ts +4 -1
  143. package/package/components/flows/map/FlowJobsMenu.svelte +69 -0
  144. package/package/components/flows/map/FlowJobsMenu.svelte.d.ts +22 -0
  145. package/package/components/flows/map/FlowModuleSchemaItem.svelte +7 -4
  146. package/package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +1 -0
  147. package/package/components/flows/map/MapItem.svelte +20 -0
  148. package/package/components/flows/map/MapItem.svelte.d.ts +9 -0
  149. package/package/components/flows/map/VirtualItem.svelte +4 -2
  150. package/package/components/flows/map/VirtualItem.svelte.d.ts +1 -0
  151. package/package/components/flows/previousResults.d.ts +9 -0
  152. package/package/components/flows/previousResults.js +42 -8
  153. package/package/components/flows/propPicker/PropPickerWrapper.svelte +2 -0
  154. package/package/components/flows/propPicker/PropPickerWrapper.svelte.d.ts +1 -0
  155. package/package/components/flows/types.d.ts +1 -1
  156. package/package/components/graph/FlowGraph.svelte +80 -42
  157. package/package/components/graph/FlowGraph.svelte.d.ts +1 -0
  158. package/package/components/graph/model.d.ts +6 -1
  159. package/package/components/graph/svelvet/container/controllers/middleware.js +4 -4
  160. package/package/components/graph/svelvet/container/views/GraphView.svelte +2 -0
  161. package/package/components/graph/svelvet/edges/views/Edges/EdgeText.svelte +24 -25
  162. package/package/components/graph/util.d.ts +1 -1
  163. package/package/components/graph/util.js +1 -2
  164. package/package/components/home/ItemsList.svelte +22 -19
  165. package/package/components/jobs/JobPreview.svelte +11 -2
  166. package/package/components/propertyPicker/PropPicker.svelte +30 -0
  167. package/package/components/propertyPicker/PropPickerResult.svelte +14 -1
  168. package/package/components/propertyPicker/PropPickerResult.svelte.d.ts +1 -0
  169. package/package/components/runs/JobLoader.svelte +21 -8
  170. package/package/components/runs/JobLoader.svelte.d.ts +2 -0
  171. package/package/components/runs/JobPreview.svelte +5 -1
  172. package/package/components/runs/RunRow.svelte +12 -8
  173. package/package/components/runs/RunsFilter.svelte +2 -4
  174. package/package/components/runs/RunsFilter.svelte.d.ts +0 -1
  175. package/package/components/runs/RunsTable.svelte +63 -29
  176. package/package/components/runs/RunsTable.svelte.d.ts +1 -0
  177. package/package/components/schema/EditableSchemaWrapper.svelte +9 -1
  178. package/package/components/schema/PropertyEditor.svelte +1 -1
  179. package/package/components/search/GlobalSearchModal.svelte +559 -0
  180. package/package/components/search/GlobalSearchModal.svelte.d.ts +17 -0
  181. package/package/components/search/QuickMenuItem.svelte +76 -0
  182. package/package/components/search/QuickMenuItem.svelte.d.ts +27 -0
  183. package/package/components/sidebar/MenuButton.svelte +11 -0
  184. package/package/components/sidebar/MenuButton.svelte.d.ts +4 -0
  185. package/package/components/sidebar/changelogs.js +35 -0
  186. package/package/components/wizards/AppPicker.svelte +68 -0
  187. package/package/components/wizards/AppPicker.svelte.d.ts +17 -0
  188. package/package/components/wizards/NavbarWizard.svelte +131 -0
  189. package/package/components/wizards/NavbarWizard.svelte.d.ts +19 -0
  190. package/package/defaults.d.ts +1 -1
  191. package/package/defaults.js +1 -1
  192. package/package/es6.d.ts.txt +370 -1
  193. package/package/gen/core/OpenAPI.js +1 -1
  194. package/package/gen/schemas.gen.d.ts +42 -3
  195. package/package/gen/schemas.gen.js +42 -3
  196. package/package/gen/services.gen.d.ts +80 -5
  197. package/package/gen/services.gen.js +149 -8
  198. package/package/gen/types.gen.d.ts +265 -11
  199. package/package/inferArgSig.js +4 -0
  200. package/package/script_helpers.d.ts +3 -3
  201. package/package/script_helpers.js +46 -22
  202. package/package/stores.d.ts +1 -1
  203. package/package/stores.js +1 -1
  204. package/package/utils.d.ts +7 -23
  205. package/package/utils.js +54 -33
  206. package/package/windmill_fetch.d.ts.txt +6 -6
  207. package/package.json +3 -11
  208. package/package/components/ContentSearch.svelte +0 -355
package/package/stores.js CHANGED
@@ -18,7 +18,7 @@ export const enterpriseLicense = writable(undefined);
18
18
  export const workerTags = writable(undefined);
19
19
  export const usageStore = writable(0);
20
20
  export const workspaceUsageStore = writable(0);
21
- export const runFormStore = writable();
21
+ export const initialArgsStore = writable(undefined);
22
22
  export const oauthStore = writable(undefined);
23
23
  export const userStore = writable(undefined);
24
24
  export const workspaceStore = writable(persistedWorkspace ? String(persistedWorkspace) : undefined);
@@ -2,14 +2,17 @@ import type { UserExt } from './stores';
2
2
  import { sendUserToast } from './toast';
3
3
  import type { Script } from './gen';
4
4
  import type { EnumType } from './common';
5
+ import type { Schema } from './common';
5
6
  export { sendUserToast };
6
7
  export declare function validateUsername(username: string): string;
7
8
  export declare function parseQueryParams(url: string | undefined): Record<string, string>;
8
9
  export declare function displayDateOnly(dateString: string | Date | undefined): string;
10
+ export declare function subtractDaysFromDateString(dateString: string | undefined, days: number): string | undefined;
9
11
  export declare function displayDate(dateString: string | Date | undefined, displaySecond?: boolean, displayDate?: boolean): string;
10
12
  export declare function displayTime(dateString: string | Date | undefined): string;
11
13
  export declare function displaySize(sizeInBytes: number | undefined): string | undefined;
12
14
  export declare function msToSec(ms: number | undefined, maximumFractionDigits?: number): string;
15
+ export declare function msToReadableTime(ms: number | undefined): string;
13
16
  export declare function getToday(): Date;
14
17
  export declare function truncateHash(hash: string): string;
15
18
  export declare function sleep(ms: number): Promise<void>;
@@ -30,23 +33,8 @@ export interface DropdownItem {
30
33
  icon?: any | undefined;
31
34
  }
32
35
  export declare const DELETE: "delete";
33
- export declare function emptySchema(): {
34
- $schema: string | undefined;
35
- properties: {};
36
- required: never[];
37
- type: string;
38
- };
39
- export declare function simpleSchema(): {
40
- $schema: string;
41
- type: string;
42
- properties: {
43
- name: {
44
- description: string;
45
- type: string;
46
- };
47
- };
48
- required: never[];
49
- };
36
+ export declare function emptySchema(): Schema;
37
+ export declare function simpleSchema(): Schema;
50
38
  export declare function removeItemAll<T>(arr: T[], value: T): T[];
51
39
  export declare function emptyString(str: string | undefined | null): boolean;
52
40
  export declare function defaultIfEmptyString(str: string | undefined, dflt: string): string;
@@ -59,11 +47,6 @@ export declare function pathIsEmpty(path: string): boolean;
59
47
  export declare function encodeState(state: any): string;
60
48
  export declare function decodeState(query: string): any;
61
49
  export declare function itemsExists<T>(arr: T[] | undefined, item: T): boolean;
62
- export declare function decodeArgs(queryArgs: string | undefined): any;
63
- export declare function setQueryWithoutLoad(url: URL, args: {
64
- key: string;
65
- value: string | null | undefined;
66
- }[], bounceTime?: number): void;
67
50
  export declare function groupBy<K, V>(items: V[], toGroup: (t: V) => K, toSort: (t: V) => string, dflts?: K[]): [K, V[]][];
68
51
  export declare function removeMarkdown(text: string): string;
69
52
  export declare function truncate(s: string, n: number, suffix?: string): string;
@@ -90,8 +73,9 @@ export declare function canWrite(path: string, extra_perms: Record<string, boole
90
73
  export declare function isOwner(path: string, user: UserExt | undefined, workspace: string | undefined): boolean;
91
74
  export declare function isObviousOwner(path: string, user?: UserExt): boolean;
92
75
  export declare function extractCustomProperties(styleStr: string): string;
76
+ export declare function computeSharableHash(args: any): string;
93
77
  export declare function toCamel(s: string): string;
94
- export declare function cleanExpr(expr: string): string;
78
+ export declare function cleanExpr(expr: string | undefined): string;
95
79
  export declare function isCodeInjection(expr: string | undefined): boolean;
96
80
  export declare function tryEvery({ tryCode, timeoutCode, interval, timeout }: {
97
81
  tryCode: () => Promise<any>;
package/package/utils.js CHANGED
@@ -45,6 +45,14 @@ export function displayDateOnly(dateString) {
45
45
  });
46
46
  }
47
47
  }
48
+ export function subtractDaysFromDateString(dateString, days) {
49
+ if (dateString == undefined) {
50
+ return undefined;
51
+ }
52
+ let date = new Date(dateString);
53
+ date.setDate(date.getDate() - days);
54
+ return date.toISOString();
55
+ }
48
56
  export function displayDate(dateString, displaySecond = false, displayDate = true) {
49
57
  const date = new Date(dateString ?? '');
50
58
  if (date.toString() === 'Invalid Date') {
@@ -92,6 +100,26 @@ export function msToSec(ms, maximumFractionDigits) {
92
100
  minimumFractionDigits: maximumFractionDigits
93
101
  });
94
102
  }
103
+ export function msToReadableTime(ms) {
104
+ if (ms === undefined)
105
+ return '?';
106
+ const seconds = Math.floor(ms / 1000);
107
+ const minutes = Math.floor(seconds / 60);
108
+ const hours = Math.floor(minutes / 60);
109
+ const days = Math.floor(hours / 24);
110
+ if (days > 0) {
111
+ return `${days}d ${hours % 24}h ${minutes % 60}m ${seconds % 60}s`;
112
+ }
113
+ else if (hours > 0) {
114
+ return `${hours}h ${minutes % 60}m ${seconds % 60}s`;
115
+ }
116
+ else if (minutes > 0) {
117
+ return `${minutes}m ${seconds % 60}s`;
118
+ }
119
+ else {
120
+ return `${seconds}s`;
121
+ }
122
+ }
95
123
  export function getToday() {
96
124
  var today = new Date();
97
125
  return today;
@@ -216,39 +244,6 @@ export function itemsExists(arr, item) {
216
244
  }
217
245
  return false;
218
246
  }
219
- export function decodeArgs(queryArgs) {
220
- if (queryArgs) {
221
- const parsed = decodeState(queryArgs);
222
- Object.entries(parsed).forEach(([k, v]) => {
223
- if (v == '<function call>') {
224
- parsed[k] = undefined;
225
- }
226
- });
227
- return parsed;
228
- }
229
- return {};
230
- }
231
- let debounced = undefined;
232
- export function setQueryWithoutLoad(url, args, bounceTime) {
233
- debounced && clearTimeout(debounced);
234
- debounced = setTimeout(() => {
235
- const nurl = new URL(url.toString());
236
- for (const { key, value } of args) {
237
- if (value) {
238
- nurl.searchParams.set(key, value);
239
- }
240
- else {
241
- nurl.searchParams.delete(key);
242
- }
243
- }
244
- try {
245
- history.replaceState(history.state, '', nurl.toString());
246
- }
247
- catch (e) {
248
- console.error(e);
249
- }
250
- }, bounceTime ?? 200);
251
- }
252
247
  export function groupBy(items, toGroup, toSort, dflts = []) {
253
248
  let r = new Map();
254
249
  for (const dflt of dflts) {
@@ -564,12 +559,38 @@ export function extractCustomProperties(styleStr) {
564
559
  let customStyleStr = customProperties.join(';');
565
560
  return customStyleStr;
566
561
  }
562
+ export function computeSharableHash(args) {
563
+ let nargs = {};
564
+ for (let k in args) {
565
+ let v = args[k];
566
+ if (v !== undefined) {
567
+ // if
568
+ let size = roughSizeOfObject(v) > 1000000;
569
+ if (size) {
570
+ console.error(`Value at key ${k} too big (${size}) to be shared`);
571
+ return '';
572
+ }
573
+ nargs[k] = JSON.stringify(v);
574
+ }
575
+ }
576
+ try {
577
+ let r = new URLSearchParams(nargs).toString();
578
+ return r.length > 1000000 ? '' : r;
579
+ }
580
+ catch (e) {
581
+ console.error('Error computing sharable hash', e);
582
+ return '';
583
+ }
584
+ }
567
585
  export function toCamel(s) {
568
586
  return s.replace(/([-_][a-z])/gi, ($1) => {
569
587
  return $1.toUpperCase().replace('-', '').replace('_', '');
570
588
  });
571
589
  }
572
590
  export function cleanExpr(expr) {
591
+ if (!expr) {
592
+ return '';
593
+ }
573
594
  return expr
574
595
  .split('\n')
575
596
  .filter((x) => x != '' && !x.startsWith(`import `))
@@ -6017,10 +6017,10 @@ export type ListScriptsData = {
6017
6017
  firstParentHash?: string;
6018
6018
  /**
6019
6019
  * (default false)
6020
- * hide the scripts without an exported main function
6020
+ * include scripts without an exported main function
6021
6021
  *
6022
6022
  */
6023
- hideWithoutMain?: boolean;
6023
+ includeWithoutMain?: boolean;
6024
6024
  /**
6025
6025
  * (default regardless)
6026
6026
  * if true show only the templates
@@ -10651,10 +10651,10 @@ export type $OpenApiTs = {
10651
10651
  firstParentHash?: string;
10652
10652
  /**
10653
10653
  * (default false)
10654
- * hide the scripts without an exported main function
10654
+ * include scripts without an exported main function
10655
10655
  *
10656
10656
  */
10657
- hideWithoutMain?: boolean;
10657
+ includeWithoutMain?: boolean;
10658
10658
  /**
10659
10659
  * (default regardless)
10660
10660
  * if true show only the templates
@@ -15268,8 +15268,8 @@ export declare class ScriptService {
15268
15268
  * are
15269
15269
  * ed.
15270
15270
  *
15271
- * @param data.hideWithoutMain (default false)
15272
- * hide the scripts without an exported main function
15271
+ * @param data.includeWithoutMain (default false)
15272
+ * include scripts without an exported main function
15273
15273
  *
15274
15274
  * @param data.isTemplate (default regardless)
15275
15275
  * if true show only the templates
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "windmill-components",
3
- "version": "1.352.9",
3
+ "version": "1.362.1",
4
4
  "scripts": {
5
5
  "dev": "vite dev",
6
6
  "build": "vite build",
@@ -123,7 +123,7 @@
123
123
  "quill": "^1.3.7",
124
124
  "svelte-carousel": "^1.0.25",
125
125
  "svelte-chartjs": "^3.1.5",
126
- "svelte-exmarkdown": "^3.0.3",
126
+ "svelte-exmarkdown": "^3.0.5",
127
127
  "svelte-infinite-loading": "^1.3.8",
128
128
  "svelte-portal": "^2.2.1",
129
129
  "svelte-tiny-virtual-list": "^2.0.5",
@@ -132,7 +132,7 @@
132
132
  "vscode-languageclient": "~9.0.1",
133
133
  "vscode-uri": "~3.0.8",
134
134
  "vscode-ws-jsonrpc": "~3.1.0",
135
- "windmill-parser-wasm": "^1.347.1",
135
+ "windmill-parser-wasm": "^1.355.4",
136
136
  "windmill-sql-datatype-parser-wasm": "^1.318.0",
137
137
  "y-monaco": "^0.1.4",
138
138
  "y-websocket": "^1.5.0",
@@ -204,11 +204,6 @@
204
204
  "svelte": "./package/components/common/tabs/Tab.svelte",
205
205
  "default": "./package/components/common/tabs/Tab.svelte"
206
206
  },
207
- "./components/common/tabs/AppTheme.svelte": {
208
- "types": "./package/components/AppTheme.svelte.d.ts",
209
- "svelte": "./package/components/AppTheme.svelte",
210
- "default": "./package/components/AppTheme.svelte"
211
- },
212
207
  "./components/common/alert/Alert.svelte": {
213
208
  "types": "./package/components/common/alert/Alert.svelte.d.ts",
214
209
  "svelte": "./package/components/common/alert/Alert.svelte",
@@ -399,9 +394,6 @@
399
394
  "components/SchemaEditor.svelte": [
400
395
  "./package/components/SchemaEditor.svelte.d.ts"
401
396
  ],
402
- "components/AppTheme.svelte": [
403
- "./package/components/AppTheme.svelte.d.ts"
404
- ],
405
397
  "components/EditableSchemaWrapper.svelte": [
406
398
  "./package/components/schema/EditableSchemaWrapper.svelte.d.ts"
407
399
  ],
@@ -1,355 +0,0 @@
1
- <script>import { AppService, FlowService, ResourceService, ScriptService } from '../gen';
2
- import { enterpriseLicense, workspaceStore } from '../stores';
3
- import { clickOutside } from '../utils';
4
- import { Boxes, Code2, Edit, LayoutDashboard, Loader2, X } from 'lucide-svelte';
5
- import Portal from 'svelte-portal';
6
- import { twMerge } from 'tailwind-merge';
7
- import SearchItems from './SearchItems.svelte';
8
- import ToggleButtonGroup from './common/toggleButton-v2/ToggleButtonGroup.svelte';
9
- import ToggleButton from './common/toggleButton-v2/ToggleButton.svelte';
10
- import FlowIcon from './home/FlowIcon.svelte';
11
- import { Alert, Button } from './common';
12
- import YAML from 'yaml';
13
- let search = '';
14
- export async function open(nsearch) {
15
- isOpen = true;
16
- await Promise.all([loadScripts(), loadResources(), loadApps(), loadFlows()]);
17
- if (nsearch) {
18
- search = nsearch;
19
- }
20
- }
21
- export async function loadScripts() {
22
- scripts = await ScriptService.listSearchScript({ workspace: $workspaceStore ?? '' });
23
- }
24
- export async function loadResources() {
25
- resources = await ResourceService.listSearchResource({ workspace: $workspaceStore ?? '' });
26
- }
27
- export async function loadApps() {
28
- apps = await AppService.listSearchApp({ workspace: $workspaceStore ?? '' });
29
- }
30
- export async function loadFlows() {
31
- flows = await FlowService.listSearchFlow({ workspace: $workspaceStore ?? '' });
32
- }
33
- let searchKind = 'all';
34
- let isOpen = false;
35
- let inputElement;
36
- // Reactive statement to focus the input when the modal opens
37
- $: if (isOpen && inputElement) {
38
- // Use a timeout to ensure focus after any animations or rendering
39
- setTimeout(() => inputElement.focus(), 0);
40
- }
41
- let scripts = undefined;
42
- let filteredScriptItems = [];
43
- let resources = undefined;
44
- let filteredResourceItems = [];
45
- let flows = undefined;
46
- let filteredFlowItems = [];
47
- let apps = undefined;
48
- let filteredAppItems = [];
49
- function getCounts(n) {
50
- return ` (${n})`;
51
- }
52
- $: counts =
53
- search == '' ||
54
- !scripts ||
55
- !resources ||
56
- !flows ||
57
- !apps ||
58
- !filteredAppItems ||
59
- !filteredFlowItems ||
60
- !filteredResourceItems ||
61
- !filteredScriptItems
62
- ? {
63
- all: '',
64
- apps: '',
65
- flows: '',
66
- resources: '',
67
- scripts: ''
68
- }
69
- : {
70
- all: getCounts(filteredAppItems.length +
71
- filteredFlowItems.length +
72
- filteredResourceItems.length +
73
- filteredScriptItems.length),
74
- apps: getCounts(filteredAppItems.length),
75
- resources: getCounts(filteredResourceItems.length),
76
- flows: getCounts(filteredFlowItems.length),
77
- scripts: getCounts(filteredScriptItems.length)
78
- };
79
- </script>
80
-
81
- <SearchItems
82
- filter={search}
83
- items={scripts}
84
- f={(s) => {
85
- return s.content
86
- }}
87
- bind:filteredItems={filteredScriptItems}
88
- />
89
-
90
- <SearchItems
91
- filter={search}
92
- items={resources}
93
- f={(s) => {
94
- return YAML.stringify(s.value)
95
- }}
96
- bind:filteredItems={filteredResourceItems}
97
- />
98
-
99
- <SearchItems
100
- filter={search}
101
- items={flows}
102
- f={(s) => {
103
- return YAML.stringify(s.value, null, 4)
104
- }}
105
- bind:filteredItems={filteredFlowItems}
106
- />
107
-
108
- <SearchItems
109
- filter={search}
110
- items={apps}
111
- f={(s) => {
112
- return YAML.stringify(s.value, null, 4)
113
- }}
114
- bind:filteredItems={filteredAppItems}
115
- />
116
-
117
- {#if isOpen}
118
- <Portal>
119
- <div
120
- class={twMerge(
121
- `fixed top-0 bottom-0 left-0 right-0 transition-all duration-50`,
122
- ' bg-black bg-opacity-60',
123
- 'z-[1100]'
124
- )}
125
- >
126
- <div
127
- class={'max-w-4xl lg:mx-auto mx-10 mt-8 bg-surface rounded-lg relative'}
128
- use:clickOutside={false}
129
- on:click_outside={() => {
130
- isOpen = false
131
- }}
132
- >
133
- <div class="px-4 py-2 border-b flex justify-between items-center">
134
- <div>Search by content</div>
135
- <div class="w-8">
136
- <button
137
- on:click|stopPropagation={() => {
138
- isOpen = false
139
- }}
140
- class="hover:bg-surface-hover bg-surface-secondary rounded-full w-8 h-8 flex items-center justify-center transition-all"
141
- >
142
- <X class="text-tertiary" />
143
- </button>
144
- </div>
145
- </div>
146
- <div class="px-2 py-2 overflow-auto">
147
- <div class="flex gap-2 flex-wrap">
148
- <div class="flex justify-start">
149
- <ToggleButtonGroup bind:selected={searchKind} class="h-10">
150
- <ToggleButton small light value="all" label={'All' + counts.all} />
151
- <ToggleButton
152
- small
153
- light
154
- value="scripts"
155
- icon={Code2}
156
- label={'Scripts' + counts.scripts}
157
- />
158
- <ToggleButton
159
- small
160
- light
161
- value="resources"
162
- icon={Boxes}
163
- label={'Resources' + counts.resources}
164
- />
165
- <ToggleButton
166
- small
167
- light
168
- value="flows"
169
- label={'Flows' + counts.flows}
170
- icon={FlowIcon}
171
- selectedColor="#14b8a6"
172
- />
173
- <ToggleButton
174
- small
175
- light
176
- value="apps"
177
- label={'Apps' + counts.apps}
178
- icon={LayoutDashboard}
179
- selectedColor="#fb923c"
180
- />
181
- </ToggleButtonGroup>
182
- </div>
183
- <div class="relative text-tertiary grow min-w-[100px]">
184
- <!-- svelte-ignore a11y-autofocus -->
185
- <input
186
- bind:this={inputElement}
187
- placeholder="Search in the content of resources, scripts, flows and apps"
188
- bind:value={search}
189
- class="bg-surface !h-10 !px-4 !pr-10 !rounded-lg text-sm focus:outline-none"
190
- />
191
- <button type="submit" class="absolute right-0 top-0 mt-3 mr-4">
192
- <svg
193
- class="h-4 w-4 fill-current"
194
- xmlns="http://www.w3.org/2000/svg"
195
- xmlns:xlink="http://www.w3.org/1999/xlink"
196
- version="1.1"
197
- id="Capa_1"
198
- x="0px"
199
- y="0px"
200
- viewBox="0 0 56.966 56.966"
201
- style="enable-background:new 0 0 56.966 56.966;"
202
- xml:space="preserve"
203
- width="512px"
204
- height="512px"
205
- >
206
- <path
207
- d="M55.146,51.887L41.588,37.786c3.486-4.144,5.396-9.358,5.396-14.786c0-12.682-10.318-23-23-23s-23,10.318-23,23 s10.318,23,23,23c4.761,0,9.298-1.436,13.177-4.162l13.661,14.208c0.571,0.593,1.339,0.92,2.162,0.92 c0.779,0,1.518-0.297,2.079-0.837C56.255,54.982,56.293,53.08,55.146,51.887z M23.984,6c9.374,0,17,7.626,17,17s-7.626,17-17,17 s-17-7.626-17-17S14.61,6,23.984,6z"
208
- />
209
- </svg>
210
- </button>
211
- </div>
212
- </div>
213
- <div class="mt-1">
214
- <div class="text-xs text-secondary"
215
- >Searching among <div class="inline-flex"
216
- >{#if scripts}{scripts?.length}{:else}
217
- <Loader2 size={10} class="animate-spin " />
218
- {/if}</div
219
- >
220
- scripts,
221
- <div class="inline-flex"
222
- >{#if resources}{resources?.length}{:else}
223
- <Loader2 size={10} class="animate-spin " />
224
- {/if}</div
225
- >
226
- resources,
227
- <div class="inline-flex"
228
- >{#if flows}{flows?.length}{:else}
229
- <Loader2 size={10} class="animate-spin " />
230
- {/if}</div
231
- >
232
- flows,
233
- <div class="inline-flex"
234
- >{#if apps}{apps?.length}{:else}
235
- <Loader2 size={10} class="animate-spin " />
236
- {/if}</div
237
- >
238
- apps</div
239
- >
240
- </div>
241
-
242
- <div class="mt-1 overflow-auto max-h-[80vh]">
243
- {#if !$enterpriseLicense}
244
- <div class="py-1" />
245
-
246
- <Alert title="Content Search is an EE feature" type="warning">
247
- Without EE, content search will only search among 10 scripts, 3 flows, 3 apps and 3
248
- resources.
249
- </Alert>
250
- <div class="py-1" />
251
- {/if}
252
-
253
- {#if search.length > 0}
254
- <div class="flex flex-col gap-4">
255
- {#if (searchKind == 'all' || searchKind == 'scripts') && filteredScriptItems?.length > 0}
256
- {#each filteredScriptItems ?? [] as item}
257
- <div>
258
- <div class="text-sm font-semibold"
259
- ><a href="/scripts/get/{item.path}">Script: {item.path}</a></div
260
- >
261
- <div class="flex gap-2 justify-between">
262
- <pre class="text-xs border p-2 overflow-auto max-h-40 w-full max-w-2xl"
263
- ><code>{@html item.marked}</code></pre
264
- >
265
- <div>
266
- <div class="flex gap-2">
267
- <Button
268
- on:click|once={() => {
269
- window
270
- .open(`/scripts/edit/${item.path}?no_draft=true`, '_blank')
271
- ?.focus()
272
- }}
273
- color="light"
274
- size="sm"
275
- startIcon={{ icon: Edit }}
276
- >
277
- Edit
278
- </Button>
279
- </div>
280
- </div>
281
- </div>
282
- </div>
283
- {/each}
284
- {/if}
285
- {#if (searchKind == 'all' || searchKind == 'resources') && filteredResourceItems?.length > 0}
286
- {#each filteredResourceItems ?? [] as item}
287
- <div>
288
- <div class="text-sm font-semibold">Resource: {item.path}</div>
289
- <div class="flex gap-2 justify-between">
290
- <pre class="text-xs border p-2 overflow-auto max-h-40 w-full max-w-2xl"
291
- ><code>{@html item.marked}</code></pre
292
- >
293
- </div>
294
- </div>
295
- {/each}
296
- {/if}
297
- {#if (searchKind == 'all' || searchKind == 'flows') && filteredFlowItems?.length > 0}
298
- {#each filteredFlowItems ?? [] as item}
299
- <div>
300
- <div class="text-sm font-semibold"
301
- ><a href="/flows/get/{item.path}">Flow: {item.path}</a></div
302
- >
303
- <div class="flex gap-2 justify-between">
304
- <pre class="text-xs border p-2 overflow-auto max-h-40 w-full max-w-2xl"
305
- ><code>{@html item.marked}</code></pre
306
- >
307
- <div>
308
- <div class="flex gap-2">
309
- <Button
310
- on:click|once={() => {
311
- window
312
- .open(`/flows/edit/${item.path}?no_draft=true`, '_blank')
313
- ?.focus()
314
- }}
315
- color="light"
316
- size="sm"
317
- startIcon={{ icon: Edit }}>Edit</Button
318
- >
319
- </div>
320
- </div>
321
- </div>
322
- </div>
323
- {/each}
324
- {/if}
325
- {#if (searchKind == 'all' || searchKind == 'apps') && filteredAppItems?.length > 0}
326
- {#each filteredAppItems ?? [] as item}
327
- <div>
328
- <div class="text-sm font-semibold"
329
- ><a href="/apps/get/{item.path}">App: {item.path}</a></div
330
- >
331
- <div class="flex gap-2 justify-between">
332
- <pre class="text-xs border p-2 overflow-auto max-h-40 w-full max-w-2xl"
333
- ><code>{@html item.marked}</code></pre
334
- >
335
- </div>
336
- </div>
337
- {/each}
338
- {/if}
339
- </div>
340
- {:else}
341
- <div class="flex justify-center items-center h-48">
342
- <div class="text-tertiary text-center">
343
- <div class="text-2xl font-bold">Empty Search Filter</div>
344
- <div class="text-sm"
345
- >Start writing, search everywhere a path is referenced for instance</div
346
- >
347
- </div>
348
- </div>
349
- {/if}
350
- </div>
351
- </div></div
352
- ></div
353
- ></Portal
354
- >
355
- {/if}