windmill-components 1.379.4 → 1.382.3
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.
- package/package/base.d.ts +1 -1
- package/package/base.js +1 -1
- package/package/components/ArgInput.svelte +33 -3
- package/package/components/DisplayResult.svelte +17 -5
- package/package/components/EditorBar.svelte +48 -38
- package/package/components/EditorBar.svelte.d.ts +2 -0
- package/package/components/ErrorOrRecoveryHandler.svelte +3 -2
- package/package/components/FlowBuilder.svelte +18 -12
- package/package/components/FlowBuilder.svelte.d.ts +3 -2
- package/package/components/FlowGraphViewer.svelte +6 -5
- package/package/components/FlowJobResult.svelte +4 -2
- package/package/components/FlowJobResult.svelte.d.ts +2 -0
- package/package/components/FlowStatusViewer.svelte +7 -1
- package/package/components/FlowStatusViewer.svelte.d.ts +3 -0
- package/package/components/FlowStatusViewerInner.svelte +29 -11
- package/package/components/FlowViewer.svelte +3 -1
- package/package/components/FlowViewer.svelte.d.ts +1 -0
- package/package/components/HighlightCode.svelte +2 -2
- package/package/components/ModulePreviewForm.svelte +1 -1
- package/package/components/ObjectResourceInput.svelte +7 -2
- package/package/components/ObjectResourceInput.svelte.d.ts +2 -0
- package/package/components/ResourcePicker.svelte +60 -48
- package/package/components/ScriptBuilder.svelte +42 -36
- package/package/components/ScriptBuilder.svelte.d.ts +2 -0
- package/package/components/ScriptEditor.svelte +3 -1
- package/package/components/ScriptEditor.svelte.d.ts +2 -0
- package/package/components/ScriptVersionHistory.svelte +63 -7
- package/package/components/apps/components/display/AppText.svelte +8 -3
- package/package/components/apps/components/display/dbtable/DbExplorerCount.svelte +3 -2
- package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte +22 -5
- package/package/components/apps/components/display/table/AppAggridTable.svelte +14 -5
- package/package/components/apps/components/display/table/AppAggridTableActions.svelte +23 -8
- package/package/components/apps/components/display/table/AppAggridTableActions.svelte.d.ts +5 -3
- package/package/components/apps/components/display/table/utils.js +8 -7
- package/package/components/apps/components/helpers/RunnableComponent.svelte +13 -1
- package/package/components/apps/components/helpers/eval.js +31 -25
- package/package/components/apps/components/inputs/AppSelect.svelte +45 -29
- package/package/components/apps/editor/AppEditorHeader.svelte +1 -0
- package/package/components/apps/editor/AppReportsDrawer.svelte +4 -3
- package/package/components/apps/editor/component/components.d.ts +7 -1
- package/package/components/apps/editor/component/components.js +6 -0
- package/package/components/apps/editor/settingsPanel/DecisionTreeGraphEditor.svelte +0 -1
- package/package/components/apps/editor/settingsPanel/DecisionTreeGraphHeader.svelte +55 -45
- package/package/components/apps/editor/settingsPanel/DecisionTreeGraphHeader.svelte.d.ts +7 -9
- package/package/components/apps/editor/settingsPanel/DecisionTreeGraphNode.svelte +66 -59
- package/package/components/apps/editor/settingsPanel/DecisionTreeGraphNode.svelte.d.ts +9 -11
- package/package/components/apps/editor/settingsPanel/decisionTree/DecisionTreePreview.svelte +213 -254
- package/package/components/apps/editor/settingsPanel/decisionTree/DecisionTreePreview.svelte.d.ts +0 -1
- package/package/components/apps/editor/settingsPanel/decisionTree/nodeHelpers.d.ts +1 -1
- package/package/components/apps/editor/settingsPanel/decisionTree/nodeHelpers.js +2 -6
- package/package/components/custom_ui.d.ts +35 -1
- package/package/components/details/DetailPageDetailPanel.svelte +9 -1
- package/package/components/details/DetailPageDetailPanel.svelte.d.ts +2 -1
- package/package/components/details/DetailPageLayout.svelte +2 -0
- package/package/components/details/DetailPageLayout.svelte.d.ts +3 -0
- package/package/components/details/EmailTriggerPanel.svelte +128 -0
- package/package/components/details/EmailTriggerPanel.svelte.d.ts +20 -0
- package/package/components/details/WebhooksPanel.svelte +10 -71
- package/package/components/flows/FlowHistory.svelte +1 -0
- package/package/components/flows/content/FlowInputs.svelte +0 -1
- package/package/components/flows/content/FlowModuleComponent.svelte +8 -2
- package/package/components/flows/content/FlowModuleEarlyStop.svelte +193 -66
- package/package/components/flows/content/FlowModuleHeader.svelte +1 -1
- package/package/components/flows/content/FlowModuleScript.svelte +33 -3
- package/package/components/flows/content/FlowModuleScript.svelte.d.ts +2 -0
- package/package/components/flows/content/FlowModuleSuspend.svelte +15 -0
- package/package/components/flows/content/FlowSettings.svelte +26 -15
- package/package/components/flows/flowExplorer.js +3 -0
- package/package/components/flows/flowInfers.js +1 -1
- package/package/components/flows/map/FlowJobsMenu.svelte +39 -44
- package/package/components/flows/map/FlowModuleSchemaItem.svelte +1 -2
- package/package/components/flows/map/FlowModuleSchemaMap.svelte +4 -3
- package/package/components/flows/map/InsertModuleButton.svelte +16 -9
- package/package/components/flows/map/MapItem.svelte +4 -98
- package/package/components/flows/map/MapItem.svelte.d.ts +0 -5
- package/package/components/flows/map/VirtualItem.svelte +6 -159
- package/package/components/flows/map/VirtualItem.svelte.d.ts +0 -15
- package/package/components/flows/propPicker/PropPickerWrapper.svelte +2 -0
- package/package/components/flows/propPicker/PropPickerWrapper.svelte.d.ts +1 -0
- package/package/components/flows/types.d.ts +2 -0
- package/package/components/graph/FlowGraphV2.svelte +256 -0
- package/package/components/graph/{FlowGraph.svelte.d.ts → FlowGraphV2.svelte.d.ts} +8 -8
- package/package/components/graph/graphBuilder.d.ts +15 -0
- package/package/components/graph/graphBuilder.js +337 -0
- package/package/components/graph/index.d.ts +0 -1
- package/package/components/graph/index.js +0 -1
- package/package/components/graph/model.d.ts +4 -8
- package/package/components/graph/renderers/edges/BaseEdge.svelte +109 -0
- package/package/components/graph/renderers/edges/BaseEdge.svelte.d.ts +35 -0
- package/package/components/graph/renderers/edges/DataflowEdge.svelte +37 -0
- package/package/components/graph/renderers/edges/DataflowEdge.svelte.d.ts +29 -0
- package/package/components/graph/renderers/edges/EmptyEdge.svelte +22 -0
- package/package/components/graph/renderers/edges/EmptyEdge.svelte.d.ts +23 -0
- package/package/components/graph/renderers/nodes/BranchAllStart.svelte +44 -0
- package/package/components/graph/renderers/nodes/BranchAllStart.svelte.d.ts +29 -0
- package/package/components/graph/renderers/nodes/BranchOneStart.svelte +41 -0
- package/package/components/graph/renderers/nodes/BranchOneStart.svelte.d.ts +29 -0
- package/package/components/graph/renderers/nodes/ForLoopEndNode.svelte +19 -0
- package/package/components/graph/renderers/nodes/ForLoopEndNode.svelte.d.ts +24 -0
- package/package/components/graph/renderers/nodes/ForLoopStartNode.svelte +20 -0
- package/package/components/graph/renderers/nodes/ForLoopStartNode.svelte.d.ts +25 -0
- package/package/components/graph/renderers/nodes/InputNode.svelte +74 -0
- package/package/components/graph/renderers/nodes/InputNode.svelte.d.ts +23 -0
- package/package/components/graph/renderers/nodes/ModuleNode.svelte +71 -0
- package/package/components/graph/renderers/nodes/ModuleNode.svelte.d.ts +41 -0
- package/package/components/graph/renderers/nodes/NoBranchNode.svelte +20 -0
- package/package/components/graph/renderers/nodes/NoBranchNode.svelte.d.ts +27 -0
- package/package/components/graph/renderers/nodes/NodeWrapper.svelte +21 -0
- package/package/components/graph/renderers/nodes/NodeWrapper.svelte.d.ts +22 -0
- package/package/components/graph/renderers/nodes/ResultNode.svelte +24 -0
- package/package/components/graph/renderers/nodes/ResultNode.svelte.d.ts +22 -0
- package/package/components/graph/renderers/nodes/branchAllEndNode.svelte +19 -0
- package/package/components/graph/renderers/nodes/branchAllEndNode.svelte.d.ts +26 -0
- package/package/components/graph/renderers/nodes/branchOneEndNode.svelte +19 -0
- package/package/components/graph/renderers/nodes/branchOneEndNode.svelte.d.ts +24 -0
- package/package/components/graph/renderers/utils.d.ts +8 -0
- package/package/components/graph/renderers/utils.js +26 -0
- package/package/components/graph/util.d.ts +1 -2
- package/package/components/graph/util.js +2 -8
- package/package/components/propertyPicker/PropPickerResult.svelte +6 -1
- package/package/components/propertyPicker/PropPickerResult.svelte.d.ts +1 -0
- package/package/components/runs/RunsFilter.svelte +15 -17
- package/package/components/sidebar/changelogs.js +5 -0
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +3 -0
- package/package/gen/schemas.gen.js +3 -0
- package/package/gen/services.gen.d.ts +22 -3
- package/package/gen/services.gen.js +38 -2
- package/package/gen/types.gen.d.ts +69 -6
- package/package/hub.d.ts +11 -0
- package/package/hub.js +2 -0
- package/package/hubPaths.json +9 -0
- package/package/init_scripts/python_failure_module.d.ts +1 -1
- package/package/init_scripts/python_failure_module.js +4 -3
- package/package/script_helpers.d.ts +2 -2
- package/package/script_helpers.js +11 -9
- package/package.json +2 -1
- package/package/components/graph/FlowGraph.svelte +0 -614
- package/package/components/graph/svelvet/LICENSE +0 -21
- package/package/components/graph/svelvet/container/README.md +0 -7
- package/package/components/graph/svelvet/container/controllers/middleware.d.ts +0 -11
- package/package/components/graph/svelvet/container/controllers/middleware.js +0 -87
- package/package/components/graph/svelvet/container/models/index.d.ts +0 -0
- package/package/components/graph/svelvet/container/models/index.js +0 -1
- package/package/components/graph/svelvet/container/views/GraphView.svelte +0 -262
- package/package/components/graph/svelvet/container/views/GraphView.svelte.d.ts +0 -26
- package/package/components/graph/svelvet/container/views/Svelvet.svelte +0 -121
- package/package/components/graph/svelvet/container/views/Svelvet.svelte.d.ts +0 -36
- package/package/components/graph/svelvet/customCss/controllers/getCss.d.ts +0 -2
- package/package/components/graph/svelvet/customCss/controllers/getCss.js +0 -46
- package/package/components/graph/svelvet/d3/controllers/d3.d.ts +0 -5
- package/package/components/graph/svelvet/d3/controllers/d3.js +0 -59
- package/package/components/graph/svelvet/edges/controllers/anchorCbDev.d.ts +0 -4
- package/package/components/graph/svelvet/edges/controllers/anchorCbDev.js +0 -92
- package/package/components/graph/svelvet/edges/controllers/anchorCbUser.d.ts +0 -57
- package/package/components/graph/svelvet/edges/controllers/anchorCbUser.js +0 -73
- package/package/components/graph/svelvet/edges/controllers/util.d.ts +0 -37
- package/package/components/graph/svelvet/edges/controllers/util.js +0 -71
- package/package/components/graph/svelvet/edges/models/Anchor.d.ts +0 -48
- package/package/components/graph/svelvet/edges/models/Anchor.js +0 -122
- package/package/components/graph/svelvet/edges/models/Edge.d.ts +0 -48
- package/package/components/graph/svelvet/edges/models/Edge.js +0 -109
- package/package/components/graph/svelvet/edges/types/types.d.ts +0 -18
- package/package/components/graph/svelvet/edges/types/types.js +0 -1
- package/package/components/graph/svelvet/edges/views/Edges/BaseEdge.svelte +0 -104
- package/package/components/graph/svelvet/edges/views/Edges/BaseEdge.svelte.d.ts +0 -18
- package/package/components/graph/svelvet/edges/views/Edges/EdgeText.svelte +0 -42
- package/package/components/graph/svelvet/edges/views/Edges/EdgeText.svelte.d.ts +0 -17
- package/package/components/graph/svelvet/edges/views/Edges/SimpleBezierEdge.svelte +0 -151
- package/package/components/graph/svelvet/edges/views/Edges/SimpleBezierEdge.svelte.d.ts +0 -17
- package/package/components/graph/svelvet/edges/views/Edges/SmoothStepEdge.svelte +0 -157
- package/package/components/graph/svelvet/edges/views/Edges/SmoothStepEdge.svelte.d.ts +0 -60
- package/package/components/graph/svelvet/edges/views/Edges/StepEdge.svelte +0 -8
- package/package/components/graph/svelvet/edges/views/Edges/StepEdge.svelte.d.ts +0 -25
- package/package/components/graph/svelvet/edges/views/Edges/types.d.ts +0 -52
- package/package/components/graph/svelvet/edges/views/Edges/types.js +0 -1
- package/package/components/graph/svelvet/edges/views/Edges/utils.d.ts +0 -33
- package/package/components/graph/svelvet/edges/views/Edges/utils.js +0 -31
- package/package/components/graph/svelvet/nodes/controllers/util.d.ts +0 -9
- package/package/components/graph/svelvet/nodes/controllers/util.js +0 -13
- package/package/components/graph/svelvet/nodes/models/Node.d.ts +0 -74
- package/package/components/graph/svelvet/nodes/models/Node.js +0 -156
- package/package/components/graph/svelvet/nodes/views/Node.svelte +0 -84
- package/package/components/graph/svelvet/nodes/views/Node.svelte.d.ts +0 -21
- package/package/components/graph/svelvet/store/controllers/storeApi.d.ts +0 -25
- package/package/components/graph/svelvet/store/controllers/storeApi.js +0 -91
- package/package/components/graph/svelvet/store/controllers/userApi.d.ts +0 -3
- package/package/components/graph/svelvet/store/controllers/userApi.js +0 -18
- package/package/components/graph/svelvet/store/controllers/util.d.ts +0 -24
- package/package/components/graph/svelvet/store/controllers/util.js +0 -148
- package/package/components/graph/svelvet/store/models/store.d.ts +0 -13
- package/package/components/graph/svelvet/store/models/store.js +0 -12
- package/package/components/graph/svelvet/store/types/types.d.ts +0 -127
- package/package/components/graph/svelvet/store/types/types.js +0 -1
- package/package/components/graph/svelvet/types/README.md +0 -3
- package/package/components/graph/svelvet/types/index.d.ts +0 -2
- package/package/components/graph/svelvet/types/index.js +0 -1
- package/package/components/graph/svelvet/types/types.d.ts +0 -50
- package/package/components/graph/svelvet/types/types.js +0 -18
|
@@ -84,7 +84,7 @@ function toggleRow(row) {
|
|
|
84
84
|
outputs?.selectedRowIndex.set(rowIndex);
|
|
85
85
|
}
|
|
86
86
|
if (!deepEqual(outputs?.selectedRow?.peak(), data)) {
|
|
87
|
-
outputs?.selectedRow
|
|
87
|
+
outputs?.selectedRow?.set(data);
|
|
88
88
|
}
|
|
89
89
|
if (iterContext && listInputs) {
|
|
90
90
|
listInputs.set(id, { selectedRow: data, selectedRowIndex: selectedRowIndex });
|
|
@@ -147,20 +147,21 @@ const tableActionsFactory = cellRendererFactory((c, p) => {
|
|
|
147
147
|
['AppViewerContext', context],
|
|
148
148
|
['ContextPanel', contextPanel]
|
|
149
149
|
]);
|
|
150
|
-
new AppAggridTableActions({
|
|
150
|
+
let ta = new AppAggridTableActions({
|
|
151
151
|
target: c.eGui,
|
|
152
152
|
props: {
|
|
153
|
+
p,
|
|
153
154
|
id: id,
|
|
154
155
|
actions,
|
|
155
156
|
rowIndex,
|
|
156
157
|
row,
|
|
157
158
|
render,
|
|
158
159
|
wrapActions: resolvedConfig.wrapActions,
|
|
159
|
-
selectRow: () => {
|
|
160
|
+
selectRow: (p) => {
|
|
160
161
|
toggleRow(p);
|
|
161
162
|
p.node.setSelected(true);
|
|
162
163
|
},
|
|
163
|
-
onSet: (id, value) => {
|
|
164
|
+
onSet: (id, value, rowIndex) => {
|
|
164
165
|
if (!inputs[id]) {
|
|
165
166
|
inputs[id] = { [rowIndex]: value };
|
|
166
167
|
}
|
|
@@ -169,7 +170,7 @@ const tableActionsFactory = cellRendererFactory((c, p) => {
|
|
|
169
170
|
}
|
|
170
171
|
outputs?.inputs.set(inputs, true);
|
|
171
172
|
},
|
|
172
|
-
onRemove: (id) => {
|
|
173
|
+
onRemove: (id, rowIndex) => {
|
|
173
174
|
if (inputs?.[id] == undefined) {
|
|
174
175
|
return;
|
|
175
176
|
}
|
|
@@ -184,6 +185,14 @@ const tableActionsFactory = cellRendererFactory((c, p) => {
|
|
|
184
185
|
},
|
|
185
186
|
context: componentContext
|
|
186
187
|
});
|
|
188
|
+
return {
|
|
189
|
+
destroy: () => {
|
|
190
|
+
ta.$destroy();
|
|
191
|
+
},
|
|
192
|
+
refresh(params) {
|
|
193
|
+
ta.$set({ rowIndex: params.node.rowIndex ?? 0, row: params.data, p: params });
|
|
194
|
+
}
|
|
195
|
+
};
|
|
187
196
|
});
|
|
188
197
|
function mountGrid() {
|
|
189
198
|
if (eGui) {
|
|
@@ -10,6 +10,7 @@ import { Plug2 } from 'lucide-svelte';
|
|
|
10
10
|
import ComponentOutputViewer from '../../../editor/contextPanel/ComponentOutputViewer.svelte';
|
|
11
11
|
import { connectOutput } from '../../../editor/appUtils';
|
|
12
12
|
import RowWrapper from '../../layout/RowWrapper.svelte';
|
|
13
|
+
export let p;
|
|
13
14
|
export let id;
|
|
14
15
|
export let render;
|
|
15
16
|
export let actions = [];
|
|
@@ -29,11 +30,25 @@ onMount(() => {
|
|
|
29
30
|
if (parent) {
|
|
30
31
|
parent.classList.add('w-full');
|
|
31
32
|
}
|
|
33
|
+
else {
|
|
34
|
+
//sometimes the parent is not available immediately
|
|
35
|
+
setTimeout(() => {
|
|
36
|
+
const parent = rowDiv?.parentElement?.parentElement?.parentElement;
|
|
37
|
+
if (parent) {
|
|
38
|
+
parent.classList.add('w-full');
|
|
39
|
+
}
|
|
40
|
+
}, 10);
|
|
41
|
+
}
|
|
32
42
|
}
|
|
33
43
|
});
|
|
34
44
|
</script>
|
|
35
45
|
|
|
36
|
-
<RowWrapper
|
|
46
|
+
<RowWrapper
|
|
47
|
+
value={row}
|
|
48
|
+
index={rowIndex}
|
|
49
|
+
onSet={(id, value) => onSet(id, value, rowIndex)}
|
|
50
|
+
onRemove={(id) => onRemove(id, rowIndex)}
|
|
51
|
+
>
|
|
37
52
|
<div
|
|
38
53
|
class={twMerge(
|
|
39
54
|
'flex flex-row justify-center items-center gap-4 h-full px-4 py-1 w-full',
|
|
@@ -57,7 +72,7 @@ onMount(() => {
|
|
|
57
72
|
}
|
|
58
73
|
}}
|
|
59
74
|
on:pointerdown|stopPropagation={(e) => {
|
|
60
|
-
selectRow()
|
|
75
|
+
selectRow(p)
|
|
61
76
|
|
|
62
77
|
if (!$connectingInput.opened) {
|
|
63
78
|
$selectedComponent = [action.id]
|
|
@@ -159,7 +174,7 @@ onMount(() => {
|
|
|
159
174
|
noWFull
|
|
160
175
|
preclickAction={async () => {
|
|
161
176
|
dispatch('toggleRow')
|
|
162
|
-
selectRow()
|
|
177
|
+
selectRow(p)
|
|
163
178
|
}}
|
|
164
179
|
id={action.id}
|
|
165
180
|
customCss={action.customCss}
|
|
@@ -185,7 +200,7 @@ onMount(() => {
|
|
|
185
200
|
onToggle={action.onToggle}
|
|
186
201
|
preclickAction={async () => {
|
|
187
202
|
dispatch('toggleRow')
|
|
188
|
-
selectRow()
|
|
203
|
+
selectRow(p)
|
|
189
204
|
}}
|
|
190
205
|
verticalAlignment="center"
|
|
191
206
|
{controls}
|
|
@@ -204,7 +219,7 @@ onMount(() => {
|
|
|
204
219
|
onSelect={action.onSelect}
|
|
205
220
|
preclickAction={async () => {
|
|
206
221
|
dispatch('toggleRow')
|
|
207
|
-
selectRow()
|
|
222
|
+
selectRow(p)
|
|
208
223
|
}}
|
|
209
224
|
{controls}
|
|
210
225
|
/>
|
|
@@ -216,7 +231,7 @@ onMount(() => {
|
|
|
216
231
|
{render}
|
|
217
232
|
preclickAction={async () => {
|
|
218
233
|
dispatch('toggleRow')
|
|
219
|
-
selectRow()
|
|
234
|
+
selectRow(p)
|
|
220
235
|
}}
|
|
221
236
|
noWFull
|
|
222
237
|
id={action.id}
|
|
@@ -241,7 +256,7 @@ onMount(() => {
|
|
|
241
256
|
onToggle={action.onToggle}
|
|
242
257
|
preclickAction={async () => {
|
|
243
258
|
dispatch('toggleRow')
|
|
244
|
-
selectRow()
|
|
259
|
+
selectRow(p)
|
|
245
260
|
}}
|
|
246
261
|
/>
|
|
247
262
|
{:else if action.type == 'selectcomponent'}
|
|
@@ -258,7 +273,7 @@ onMount(() => {
|
|
|
258
273
|
onSelect={action.onSelect}
|
|
259
274
|
preclickAction={async () => {
|
|
260
275
|
dispatch('toggleRow')
|
|
261
|
-
selectRow()
|
|
276
|
+
selectRow(p)
|
|
262
277
|
}}
|
|
263
278
|
/>
|
|
264
279
|
{/if}
|
|
@@ -2,8 +2,10 @@ import { SvelteComponent } from "svelte";
|
|
|
2
2
|
import type { TableAction } from '../../../editor/component';
|
|
3
3
|
import 'ag-grid-community/styles/ag-grid.css';
|
|
4
4
|
import 'ag-grid-community/styles/ag-theme-alpine.css';
|
|
5
|
+
import type { ICellRendererParams } from 'ag-grid-community';
|
|
5
6
|
declare const __propDef: {
|
|
6
7
|
props: {
|
|
8
|
+
p: ICellRendererParams<any>;
|
|
7
9
|
id: string;
|
|
8
10
|
render: boolean;
|
|
9
11
|
actions?: TableAction[] | undefined;
|
|
@@ -11,10 +13,10 @@ declare const __propDef: {
|
|
|
11
13
|
row: {
|
|
12
14
|
original: Record<string, any>;
|
|
13
15
|
};
|
|
14
|
-
onSet: (id: string, value: any) => void;
|
|
15
|
-
onRemove: (id: string) => void;
|
|
16
|
+
onSet: (id: string, value: any, rowIndex: number) => void;
|
|
17
|
+
onRemove: (id: string, rowIndex: number) => void;
|
|
16
18
|
wrapActions?: boolean | undefined;
|
|
17
|
-
selectRow: () => void;
|
|
19
|
+
selectRow: (params: ICellRendererParams<any>) => void;
|
|
18
20
|
};
|
|
19
21
|
events: {
|
|
20
22
|
toggleRow: CustomEvent<any>;
|
|
@@ -5,25 +5,26 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export class AbstractCellRenderer {
|
|
7
7
|
eGui;
|
|
8
|
-
|
|
9
|
-
params;
|
|
8
|
+
component;
|
|
10
9
|
constructor(parentElement = 'span') {
|
|
11
10
|
// create empty span (or other element) to place svelte component in
|
|
11
|
+
this.component = undefined;
|
|
12
12
|
this.eGui = document.createElement(parentElement);
|
|
13
13
|
}
|
|
14
14
|
init(params) {
|
|
15
|
-
this.
|
|
16
|
-
this.createComponent(params);
|
|
15
|
+
this.component = this.createComponent(params);
|
|
17
16
|
this.eGui.addEventListener('click', () => params.onClick?.(params.data));
|
|
18
|
-
this.params = params;
|
|
19
17
|
}
|
|
20
18
|
getGui() {
|
|
21
19
|
return this.eGui;
|
|
22
20
|
}
|
|
23
21
|
refresh(params) {
|
|
24
|
-
this.
|
|
22
|
+
this.component?.refresh?.(params);
|
|
25
23
|
return true;
|
|
26
24
|
}
|
|
25
|
+
destroy() {
|
|
26
|
+
this.component?.destroy?.();
|
|
27
|
+
}
|
|
27
28
|
}
|
|
28
29
|
/**
|
|
29
30
|
* Creates a cell renderer using the given callback for how to initialise a svelte component.
|
|
@@ -34,7 +35,7 @@ export class AbstractCellRenderer {
|
|
|
34
35
|
export function cellRendererFactory(svelteComponent) {
|
|
35
36
|
class Renderer extends AbstractCellRenderer {
|
|
36
37
|
createComponent(params) {
|
|
37
|
-
svelteComponent(this, params);
|
|
38
|
+
return svelteComponent(this, params);
|
|
38
39
|
}
|
|
39
40
|
}
|
|
40
41
|
return Renderer;
|
|
@@ -514,6 +514,18 @@ function updateBgRuns(loading) {
|
|
|
514
514
|
bgRuns.update((runs) => runs.filter((r) => r !== id));
|
|
515
515
|
}
|
|
516
516
|
}
|
|
517
|
+
function getError(obj) {
|
|
518
|
+
try {
|
|
519
|
+
if (obj?.error) {
|
|
520
|
+
return obj.error;
|
|
521
|
+
}
|
|
522
|
+
return undefined;
|
|
523
|
+
}
|
|
524
|
+
catch (e) {
|
|
525
|
+
console.error('Error accessing error from result', e);
|
|
526
|
+
return undefined;
|
|
527
|
+
}
|
|
528
|
+
}
|
|
517
529
|
</script>
|
|
518
530
|
|
|
519
531
|
{#each Object.entries(fields ?? {}) as [key, v] (key)}
|
|
@@ -608,7 +620,7 @@ function updateBgRuns(loading) {
|
|
|
608
620
|
<Alert type="warning" size="xs" class="mt-2 px-1" title="Missing runnable">
|
|
609
621
|
Please select a runnable
|
|
610
622
|
</Alert>
|
|
611
|
-
{:else if result
|
|
623
|
+
{:else if getError(result) && $mode === 'preview' && !errorHandledByComponent}
|
|
612
624
|
<div
|
|
613
625
|
title="Error"
|
|
614
626
|
class={classNames(
|
|
@@ -19,7 +19,7 @@ function create_context_function_template(eval_string, contextKeys, noReturn) {
|
|
|
19
19
|
return async function (context, state, createProxy, goto, setTab, recompute, getAgGrid, setValue, setSelectedIndex, openModal, closeModal, open, close, validate, invalidate, validateAll, clearFiles, showToast, waitJob, askNewResource) {
|
|
20
20
|
"use strict";
|
|
21
21
|
${contextKeys && contextKeys.length > 0
|
|
22
|
-
? `let ${contextKeys.map((key) => ` ${key} = createProxy('${key}', context['${key}']
|
|
22
|
+
? `let ${contextKeys.map((key) => ` ${key} = createProxy('${key}', context['${key}'])`)};`
|
|
23
23
|
: ``}
|
|
24
24
|
${hasReturnAsLastLine
|
|
25
25
|
? eval_string
|
|
@@ -54,31 +54,37 @@ function hashCode(s) {
|
|
|
54
54
|
}
|
|
55
55
|
export async function eval_like(text, context = {}, state, editor, controlComponents, worldStore, runnableComponents, noReturn, groupContextId) {
|
|
56
56
|
const createProxy = (name, obj) => {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
set(target, key, value) {
|
|
62
|
-
if (name != 'state') {
|
|
63
|
-
throw new Error('Cannot set value on objects that are neither the global state or a container group field');
|
|
64
|
-
}
|
|
65
|
-
if (typeof key !== 'string') {
|
|
66
|
-
throw new Error('Invalid key');
|
|
67
|
-
}
|
|
68
|
-
target[key] = value;
|
|
69
|
-
let o = worldStore?.newOutput(name, key, value);
|
|
70
|
-
o?.set(value, true);
|
|
71
|
-
return true;
|
|
72
|
-
},
|
|
73
|
-
get(obj, prop) {
|
|
74
|
-
if (name != 'state' && prop == 'group') {
|
|
75
|
-
return createGroupProxy(name, obj[prop]);
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
return obj[prop];
|
|
79
|
-
}
|
|
57
|
+
// console.log('Creating proxy', name, obj)
|
|
58
|
+
if (obj != null && obj != undefined && typeof obj == 'object') {
|
|
59
|
+
if (name == 'group' && groupContextId) {
|
|
60
|
+
return createGroupProxy(groupContextId, obj);
|
|
80
61
|
}
|
|
81
|
-
|
|
62
|
+
return new Proxy(obj, {
|
|
63
|
+
set(target, key, value) {
|
|
64
|
+
if (name != 'state') {
|
|
65
|
+
throw new Error('Cannot set value on objects that are neither the global state or a container group field');
|
|
66
|
+
}
|
|
67
|
+
if (typeof key !== 'string') {
|
|
68
|
+
throw new Error('Invalid key');
|
|
69
|
+
}
|
|
70
|
+
target[key] = value;
|
|
71
|
+
let o = worldStore?.newOutput(name, key, value);
|
|
72
|
+
o?.set(value, true);
|
|
73
|
+
return true;
|
|
74
|
+
},
|
|
75
|
+
get(obj, prop) {
|
|
76
|
+
if (name != 'state' && prop == 'group') {
|
|
77
|
+
return createGroupProxy(name, obj[prop]);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
return obj[prop];
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
return obj;
|
|
87
|
+
}
|
|
82
88
|
};
|
|
83
89
|
const createGroupProxy = (name, obj) => {
|
|
84
90
|
return new Proxy(obj, {
|
|
@@ -101,6 +101,11 @@ function onChange(e) {
|
|
|
101
101
|
onSelect.forEach((id) => $runnableComponents?.[id]?.cb?.forEach((f) => f()));
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
|
+
function onNativeChange(e) {
|
|
105
|
+
const target = e.target;
|
|
106
|
+
const value = target.value;
|
|
107
|
+
setValue(value);
|
|
108
|
+
}
|
|
104
109
|
function setValue(nvalue) {
|
|
105
110
|
let result = undefined;
|
|
106
111
|
try {
|
|
@@ -188,35 +193,46 @@ let filterText = '';
|
|
|
188
193
|
}}
|
|
189
194
|
>
|
|
190
195
|
{#if Array.isArray(listItems) && listItems.every((x) => x && typeof x == 'object' && typeof x['label'] == 'string' && `value` in x)}
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
:
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
196
|
+
{#if resolvedConfig.nativeHtmlSelect}
|
|
197
|
+
<select class={css?.input?.class} style={css?.input?.style} on:change={onNativeChange}>
|
|
198
|
+
{#if resolvedConfig.placeholder}
|
|
199
|
+
<option value="" disabled selected>{resolvedConfig.placeholder}</option>
|
|
200
|
+
{/if}
|
|
201
|
+
{#each listItems as item (item.value)}
|
|
202
|
+
<option value={item.value} selected={item.value === value}>{item.label}</option>
|
|
203
|
+
{/each}
|
|
204
|
+
</select>
|
|
205
|
+
{:else}
|
|
206
|
+
<Select
|
|
207
|
+
inAppEditor={true}
|
|
208
|
+
--border-radius="0.250rem"
|
|
209
|
+
--clear-icon-color="#6b7280"
|
|
210
|
+
--border={$darkMode ? '1px solid #6b7280' : '1px solid #d1d5db'}
|
|
211
|
+
bind:filterText
|
|
212
|
+
on:filter={handleFilter}
|
|
213
|
+
on:clear={onClear}
|
|
214
|
+
on:change={onChange}
|
|
215
|
+
items={listItems}
|
|
216
|
+
listAutoWidth={resolvedConfig.fullWidth}
|
|
217
|
+
inputStyles={SELECT_INPUT_DEFAULT_STYLE.inputStyles}
|
|
218
|
+
containerStyles={($darkMode
|
|
219
|
+
? SELECT_INPUT_DEFAULT_STYLE.containerStylesDark
|
|
220
|
+
: SELECT_INPUT_DEFAULT_STYLE.containerStyles) + css?.input?.style}
|
|
221
|
+
{value}
|
|
222
|
+
class={css?.input?.class}
|
|
223
|
+
placeholder={resolvedConfig.placeholder}
|
|
224
|
+
disabled={resolvedConfig.disabled}
|
|
225
|
+
on:focus={() => {
|
|
226
|
+
if (!$connectingInput.opened) {
|
|
227
|
+
$selectedComponent = [id]
|
|
228
|
+
}
|
|
229
|
+
}}
|
|
230
|
+
>
|
|
231
|
+
<svelte:fragment slot="item" let:item
|
|
232
|
+
>{#if resolvedConfig.create}{item.created ? 'Add new: ' : ''}{/if}{item.label}
|
|
233
|
+
</svelte:fragment>
|
|
234
|
+
</Select>
|
|
235
|
+
{/if}
|
|
220
236
|
{:else}
|
|
221
237
|
<Popover notClickable placement="bottom" popupClass="!bg-surface border w-96">
|
|
222
238
|
<div
|
|
@@ -144,6 +144,7 @@ async function computeTriggerables() {
|
|
|
144
144
|
input: getCountInput(resourceValue, tableValue, dbType, columnDefs, whereClause),
|
|
145
145
|
id: x.id + '_count'
|
|
146
146
|
});
|
|
147
|
+
console.log(x.id, getCountInput(resourceValue, tableValue, dbType, columnDefs, whereClause), columnDefs);
|
|
147
148
|
r.push({
|
|
148
149
|
input: getInsertInput(tableValue, columnDefs, resourceValue, dbType),
|
|
149
150
|
id: x.id + '_insert'
|
|
@@ -17,6 +17,7 @@ import Toggle from '../../Toggle.svelte';
|
|
|
17
17
|
import { RotateCw, Save } from 'lucide-svelte';
|
|
18
18
|
import { CUSTOM_TAGS_SETTING, WORKSPACE_SLACK_BOT_TOKEN_PATH } from '../../../consts';
|
|
19
19
|
import { loadSchemaFromPath } from '../../../infer';
|
|
20
|
+
import { hubPaths } from '../../../hub';
|
|
20
21
|
export let appPath;
|
|
21
22
|
export let open = false;
|
|
22
23
|
let appReportingEnabled = false;
|
|
@@ -155,7 +156,7 @@ export async function main(app_path: string, startup_duration = 5, kind: 'pdf' |
|
|
|
155
156
|
}`;
|
|
156
157
|
const notificationScripts = {
|
|
157
158
|
discord: {
|
|
158
|
-
path:
|
|
159
|
+
path: hubPaths.discordReport,
|
|
159
160
|
schema: {
|
|
160
161
|
type: 'object',
|
|
161
162
|
properties: {
|
|
@@ -171,7 +172,7 @@ const notificationScripts = {
|
|
|
171
172
|
}
|
|
172
173
|
},
|
|
173
174
|
slack: {
|
|
174
|
-
path:
|
|
175
|
+
path: hubPaths.slackReport,
|
|
175
176
|
schema: {
|
|
176
177
|
type: 'object',
|
|
177
178
|
properties: {
|
|
@@ -184,7 +185,7 @@ const notificationScripts = {
|
|
|
184
185
|
}
|
|
185
186
|
},
|
|
186
187
|
email: {
|
|
187
|
-
path:
|
|
188
|
+
path: hubPaths.smtpReport,
|
|
188
189
|
schema: {
|
|
189
190
|
type: 'object',
|
|
190
191
|
properties: {
|
|
@@ -519,7 +519,7 @@ export declare const components: {
|
|
|
519
519
|
readonly fieldType: "select";
|
|
520
520
|
readonly type: "static";
|
|
521
521
|
readonly selectOptions: string[];
|
|
522
|
-
readonly value: "
|
|
522
|
+
readonly value: "Title" | "Subtitle" | "Body" | "Label" | "Caption";
|
|
523
523
|
};
|
|
524
524
|
readonly copyButton: {
|
|
525
525
|
readonly type: "static";
|
|
@@ -2388,6 +2388,12 @@ export declare const components: {
|
|
|
2388
2388
|
readonly fieldType: "boolean";
|
|
2389
2389
|
readonly tooltip: "Preselect first item in the options if no default value is set";
|
|
2390
2390
|
};
|
|
2391
|
+
readonly nativeHtmlSelect: {
|
|
2392
|
+
readonly type: "static";
|
|
2393
|
+
readonly fieldType: "boolean";
|
|
2394
|
+
readonly value: false;
|
|
2395
|
+
readonly tooltip: "Use a native html select instead of the Windmill select component";
|
|
2396
|
+
};
|
|
2391
2397
|
readonly fullWidth: {
|
|
2392
2398
|
readonly type: "static";
|
|
2393
2399
|
readonly fieldType: "boolean";
|
|
@@ -1625,6 +1625,12 @@ This is a paragraph.
|
|
|
1625
1625
|
fieldType: 'boolean',
|
|
1626
1626
|
tooltip: 'Preselect first item in the options if no default value is set'
|
|
1627
1627
|
},
|
|
1628
|
+
nativeHtmlSelect: {
|
|
1629
|
+
type: 'static',
|
|
1630
|
+
fieldType: 'boolean',
|
|
1631
|
+
value: false,
|
|
1632
|
+
tooltip: 'Use a native html select instead of the Windmill select component'
|
|
1633
|
+
},
|
|
1628
1634
|
fullWidth: {
|
|
1629
1635
|
type: 'static',
|
|
1630
1636
|
fieldType: 'boolean',
|
|
@@ -1,55 +1,65 @@
|
|
|
1
|
-
<script>import {
|
|
2
|
-
import { twMerge } from 'tailwind-merge';
|
|
1
|
+
<script>import { twMerge } from 'tailwind-merge';
|
|
3
2
|
import InsertDecisionTreeNode from './decisionTree/InsertDecisionTreeNode.svelte';
|
|
4
3
|
import { X } from 'lucide-svelte';
|
|
5
|
-
|
|
6
|
-
export let
|
|
7
|
-
export let canDelete = true;
|
|
8
|
-
export let label = '';
|
|
4
|
+
import NodeWrapper from '../../../graph/renderers/nodes/NodeWrapper.svelte';
|
|
5
|
+
export let data;
|
|
9
6
|
let open = false;
|
|
10
|
-
const dispatch = createEventDispatcher();
|
|
11
7
|
</script>
|
|
12
8
|
|
|
13
|
-
<
|
|
14
|
-
<div
|
|
15
|
-
class={twMerge(
|
|
16
|
-
'w-full h-full border border-gray-400',
|
|
17
|
-
'flex flex-row gap-2 items-center justify-between rounded-sm overflow-hidden'
|
|
18
|
-
)}
|
|
19
|
-
style="min-width: 275px; max-height: 80px; background-color: {document.documentElement.classList.contains(
|
|
20
|
-
'dark'
|
|
21
|
-
)
|
|
22
|
-
? '#2e3440'
|
|
23
|
-
: '#dfe6ee'}"
|
|
24
|
-
>
|
|
25
|
-
<div class="ml-4 text-xs font-normal text-primary"> {label} </div>
|
|
26
|
-
</div>
|
|
27
|
-
|
|
28
|
-
{#if canDelete}
|
|
29
|
-
<div class="w-[27px] absolute -top-[32px] left-[50%] right-[50%] -translate-x-1/2">
|
|
30
|
-
<button
|
|
31
|
-
title="Delete branch"
|
|
32
|
-
on:click|preventDefault|stopPropagation={() => dispatch('removeBranch')}
|
|
33
|
-
type="button"
|
|
34
|
-
class="text-primary bg-surface border mx-[1px] border-gray-300 dark:border-gray-500 focus:outline-none hover:bg-surface-hover focus:ring-4 focus:ring-gray-200 font-medium rounded-full text-sm w-[25px] h-[25px] flex items-center justify-center"
|
|
35
|
-
>
|
|
36
|
-
<X class="m-[5px]" size={15} />
|
|
37
|
-
</button>
|
|
38
|
-
</div>
|
|
39
|
-
{/if}
|
|
40
|
-
|
|
41
|
-
{#if node.id !== 'end' && editable}
|
|
9
|
+
<NodeWrapper>
|
|
10
|
+
<div class="relative h-full">
|
|
42
11
|
<div
|
|
43
12
|
class={twMerge(
|
|
44
|
-
'
|
|
45
|
-
|
|
13
|
+
'w-full h-full border border-gray-400',
|
|
14
|
+
'flex flex-row gap-2 items-center justify-between rounded-sm overflow-hidden'
|
|
46
15
|
)}
|
|
16
|
+
style="width: 275px; height: 34px; background-color: {document.documentElement.classList.contains(
|
|
17
|
+
'dark'
|
|
18
|
+
)
|
|
19
|
+
? '#2e3440'
|
|
20
|
+
: '#dfe6ee'}"
|
|
47
21
|
>
|
|
48
|
-
<
|
|
49
|
-
on:node={() => dispatch('nodeInsert')}
|
|
50
|
-
on:addBranch={() => dispatch('addBranch')}
|
|
51
|
-
canAddBranch={false}
|
|
52
|
-
/>
|
|
22
|
+
<div class="ml-4 text-xs font-normal text-primary"> {data.node.label} </div>
|
|
53
23
|
</div>
|
|
54
|
-
|
|
55
|
-
|
|
24
|
+
|
|
25
|
+
{#if data.canDelete}
|
|
26
|
+
<div class="w-[27px] absolute -top-[32px] left-[50%] right-[50%] -translate-x-1/2">
|
|
27
|
+
<button
|
|
28
|
+
title="Delete branch"
|
|
29
|
+
on:click|preventDefault|stopPropagation={() => {
|
|
30
|
+
data.nodeCallbackHandler('removeBranch', data.node.id, data.node, data.parentIds, false)
|
|
31
|
+
}}
|
|
32
|
+
type="button"
|
|
33
|
+
class="text-primary bg-surface border mx-[1px] border-gray-300 dark:border-gray-500 focus:outline-none hover:bg-surface-hover focus:ring-4 focus:ring-gray-200 font-medium rounded-full text-sm w-[25px] h-[25px] flex items-center justify-center"
|
|
34
|
+
>
|
|
35
|
+
<X class="m-[5px]" size={15} />
|
|
36
|
+
</button>
|
|
37
|
+
</div>
|
|
38
|
+
{/if}
|
|
39
|
+
|
|
40
|
+
{#if data.node.id !== 'end'}
|
|
41
|
+
<div
|
|
42
|
+
class={twMerge(
|
|
43
|
+
'absolute -bottom-10 left-1/2 transform -translate-x-1/2 flex items-center',
|
|
44
|
+
open ? 'z-20' : ''
|
|
45
|
+
)}
|
|
46
|
+
>
|
|
47
|
+
<InsertDecisionTreeNode
|
|
48
|
+
on:node={() => {
|
|
49
|
+
data.nodeCallbackHandler(
|
|
50
|
+
'nodeInsert',
|
|
51
|
+
data.node.id,
|
|
52
|
+
data.node,
|
|
53
|
+
data.parentIds ?? [],
|
|
54
|
+
data.branchHeader
|
|
55
|
+
)
|
|
56
|
+
}}
|
|
57
|
+
on:addBranch={() => {
|
|
58
|
+
data.nodeCallbackHandler('addBranch', data.node.id, data.node, data.parentIds, true)
|
|
59
|
+
}}
|
|
60
|
+
canAddBranch={false}
|
|
61
|
+
/>
|
|
62
|
+
</div>
|
|
63
|
+
{/if}
|
|
64
|
+
</div>
|
|
65
|
+
</NodeWrapper>
|
|
@@ -2,17 +2,15 @@ import { SvelteComponent } from "svelte";
|
|
|
2
2
|
import type { DecisionTreeNode } from '../component';
|
|
3
3
|
declare const __propDef: {
|
|
4
4
|
props: {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
data: {
|
|
6
|
+
node: DecisionTreeNode;
|
|
7
|
+
canDelete: boolean;
|
|
8
|
+
nodeCallbackHandler: (event: string, detail: string, graphNode: DecisionTreeNode | undefined, parentIds: string[], branchInsert: boolean) => void;
|
|
9
|
+
parentIds: string[];
|
|
10
|
+
branchHeader: boolean;
|
|
11
|
+
};
|
|
9
12
|
};
|
|
10
13
|
events: {
|
|
11
|
-
nodeInsert: CustomEvent<void>;
|
|
12
|
-
delete: CustomEvent<void>;
|
|
13
|
-
addBranch: CustomEvent<void>;
|
|
14
|
-
removeBranch: CustomEvent<void>;
|
|
15
|
-
} & {
|
|
16
14
|
[evt: string]: CustomEvent<any>;
|
|
17
15
|
};
|
|
18
16
|
slots: {};
|