windmill-components 1.379.4 → 1.382.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.
- package/package/components/ArgInput.svelte +33 -3
- package/package/components/DisplayResult.svelte +17 -5
- package/package/components/ErrorOrRecoveryHandler.svelte +3 -2
- package/package/components/FlowBuilder.svelte +3 -0
- package/package/components/FlowBuilder.svelte.d.ts +1 -0
- 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/FlowStatusViewerInner.svelte +17 -6
- package/package/components/FlowViewer.svelte +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/ScriptVersionHistory.svelte +63 -7
- 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/editor/AppEditorHeader.svelte +1 -0
- package/package/components/apps/editor/AppReportsDrawer.svelte +4 -3
- package/package/components/apps/editor/component/components.d.ts +1 -1
- 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/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 +7 -68
- package/package/components/flows/FlowHistory.svelte +1 -0
- package/package/components/flows/content/FlowInputs.svelte +0 -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/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 +3 -97
- 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/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 +1 -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/runs/RunsFilter.svelte +15 -17
- 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
|
@@ -7,13 +7,16 @@ import { Skeleton } from './common';
|
|
|
7
7
|
import FlowModuleScript from './flows/content/FlowModuleScript.svelte';
|
|
8
8
|
import { createEventDispatcher } from 'svelte';
|
|
9
9
|
import Button from './common/button/Button.svelte';
|
|
10
|
-
import { ExternalLink, Pencil, ArrowRight, X } from 'lucide-svelte';
|
|
10
|
+
import { ExternalLink, Pencil, ArrowRight, X, Diff, Code } from 'lucide-svelte';
|
|
11
|
+
import ToggleButtonGroup from './common/toggleButton-v2/ToggleButtonGroup.svelte';
|
|
12
|
+
import ToggleButton from './common/toggleButton-v2/ToggleButton.svelte';
|
|
11
13
|
const dispatch = createEventDispatcher();
|
|
12
14
|
export let openDetails = false;
|
|
13
15
|
export let scriptPath;
|
|
14
16
|
let deploymentMsgUpdateMode = false;
|
|
15
17
|
let deploymentMsgUpdate = undefined;
|
|
16
18
|
let selectedVersion = undefined;
|
|
19
|
+
let selectedVersionIndex = undefined;
|
|
17
20
|
let versions = undefined;
|
|
18
21
|
let loading = false;
|
|
19
22
|
async function loadVersions() {
|
|
@@ -43,6 +46,8 @@ async function updateDeploymentMsg(scriptHash) {
|
|
|
43
46
|
loadVersions();
|
|
44
47
|
}
|
|
45
48
|
loadVersions();
|
|
49
|
+
let showDiff = false;
|
|
50
|
+
let previousHash = undefined;
|
|
46
51
|
</script>
|
|
47
52
|
|
|
48
53
|
<Splitpanes class="!overflow-visible">
|
|
@@ -52,17 +57,34 @@ loadVersions();
|
|
|
52
57
|
{#if !loading}
|
|
53
58
|
{#if versions && versions.length > 0}
|
|
54
59
|
<div class="flex gap-2 flex-col">
|
|
55
|
-
{#each versions ?? [] as version}
|
|
60
|
+
{#each versions ?? [] as version, versionIndex}
|
|
56
61
|
<!-- svelte-ignore a11y-click-events-have-key-events -->
|
|
62
|
+
<!-- svelte-ignore a11y-no-static-element-interactions -->
|
|
57
63
|
<div
|
|
58
64
|
class={classNames(
|
|
59
|
-
'border flex gap-1 truncate justify-between flex-row w-full items-center p-2 rounded-md cursor-pointer
|
|
65
|
+
'border flex gap-1 truncate justify-between flex-row w-full items-center p-2 rounded-md cursor-pointer ',
|
|
60
66
|
selectedVersion?.script_hash == version.script_hash
|
|
61
|
-
? 'bg-
|
|
62
|
-
: ''
|
|
67
|
+
? 'bg-surface-selected'
|
|
68
|
+
: '',
|
|
69
|
+
'hover:bg-surface-hover'
|
|
63
70
|
)}
|
|
64
71
|
on:click={() => {
|
|
65
72
|
selectedVersion = version
|
|
73
|
+
selectedVersionIndex = versionIndex
|
|
74
|
+
|
|
75
|
+
if (showDiff && versions && selectedVersionIndex === versions.length - 1) {
|
|
76
|
+
showDiff = false
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
const availableVersions = versions?.slice(selectedVersionIndex + 1)
|
|
80
|
+
|
|
81
|
+
if (
|
|
82
|
+
previousHash &&
|
|
83
|
+
!availableVersions?.find((v) => v.script_hash === previousHash)
|
|
84
|
+
) {
|
|
85
|
+
previousHash = availableVersions?.[0]?.script_hash
|
|
86
|
+
}
|
|
87
|
+
|
|
66
88
|
deploymentMsgUpdate = undefined
|
|
67
89
|
deploymentMsgUpdateMode = false
|
|
68
90
|
}}
|
|
@@ -99,7 +121,7 @@ loadVersions();
|
|
|
99
121
|
<div class="h-full w-full overflow-auto">
|
|
100
122
|
{#if selectedVersion}
|
|
101
123
|
{#key selectedVersion}
|
|
102
|
-
<div class="flex flex-col">
|
|
124
|
+
<div class="flex flex-col min-h-full">
|
|
103
125
|
<span class="flex flex-row text-sm p-2 text-tertiary">
|
|
104
126
|
{#if deploymentMsgUpdateMode}
|
|
105
127
|
<div class="flex w-full">
|
|
@@ -158,7 +180,41 @@ loadVersions();
|
|
|
158
180
|
</button>
|
|
159
181
|
{/if}
|
|
160
182
|
</span>
|
|
161
|
-
|
|
183
|
+
|
|
184
|
+
{#if selectedVersionIndex !== undefined && versions?.slice(selectedVersionIndex + 1).length}
|
|
185
|
+
<div class="p-2 flex flex-row items-center gap-2 h-8">
|
|
186
|
+
<div class="w-min">
|
|
187
|
+
<ToggleButtonGroup bind:selected={showDiff}>
|
|
188
|
+
<ToggleButton light small value={false} label="Code" icon={Code} />
|
|
189
|
+
<ToggleButton light small value={true} label="Diff" icon={Diff} />
|
|
190
|
+
</ToggleButtonGroup>
|
|
191
|
+
</div>
|
|
192
|
+
|
|
193
|
+
{#if showDiff}
|
|
194
|
+
<div class="text-xs">Versions:</div>
|
|
195
|
+
<select bind:value={previousHash} class="!text-xs !w-40">
|
|
196
|
+
{#each versions?.slice(selectedVersionIndex + 1) ?? [] as version}
|
|
197
|
+
<option
|
|
198
|
+
value={version.script_hash}
|
|
199
|
+
selected={version.script_hash === selectedVersion.script_hash}
|
|
200
|
+
class="!text-xs"
|
|
201
|
+
>
|
|
202
|
+
{version.deployment_msg ?? version.script_hash}
|
|
203
|
+
</option>
|
|
204
|
+
{/each}
|
|
205
|
+
</select>
|
|
206
|
+
{/if}
|
|
207
|
+
</div>
|
|
208
|
+
{:else}
|
|
209
|
+
<div class="p-2 text-xs text-secondary"> No previous version found </div>
|
|
210
|
+
{/if}
|
|
211
|
+
<FlowModuleScript
|
|
212
|
+
showDate
|
|
213
|
+
path={scriptPath}
|
|
214
|
+
hash={selectedVersion.script_hash}
|
|
215
|
+
{previousHash}
|
|
216
|
+
{showDiff}
|
|
217
|
+
/>
|
|
162
218
|
</div>
|
|
163
219
|
{/key}
|
|
164
220
|
{:else}
|
|
@@ -25,10 +25,11 @@ let renderCountLast = -1;
|
|
|
25
25
|
let quicksearchLast = undefined;
|
|
26
26
|
let localColumnDefs = columnDefs;
|
|
27
27
|
let lastTable = table;
|
|
28
|
-
$:
|
|
28
|
+
$: lastTable != undefined && table && onTableChange();
|
|
29
|
+
function onTableChange() {
|
|
29
30
|
if (table !== lastTable) {
|
|
30
|
-
localColumnDefs = [];
|
|
31
31
|
lastTable = table;
|
|
32
|
+
localColumnDefs = [];
|
|
32
33
|
}
|
|
33
34
|
}
|
|
34
35
|
$: table && renderCount != undefined && quicksearch != undefined && computeCount();
|
|
@@ -95,20 +95,21 @@ const tableActionsFactory = cellRendererFactory((c, p) => {
|
|
|
95
95
|
['AppViewerContext', context],
|
|
96
96
|
['ContextPanel', contextPanel]
|
|
97
97
|
]);
|
|
98
|
-
new AppAggridTableActions({
|
|
98
|
+
const ta = new AppAggridTableActions({
|
|
99
99
|
target: c.eGui,
|
|
100
100
|
props: {
|
|
101
|
+
p,
|
|
101
102
|
id: id,
|
|
102
103
|
actions,
|
|
103
104
|
rowIndex,
|
|
104
105
|
row,
|
|
105
106
|
render: true,
|
|
106
107
|
wrapActions: resolvedConfig.wrapActions,
|
|
107
|
-
selectRow: () => {
|
|
108
|
+
selectRow: (p) => {
|
|
108
109
|
toggleRow(p);
|
|
109
110
|
p.node.setSelected(true);
|
|
110
111
|
},
|
|
111
|
-
onSet: (id, value) => {
|
|
112
|
+
onSet: (id, value, rowIndex) => {
|
|
112
113
|
if (!inputs[id]) {
|
|
113
114
|
inputs[id] = { [rowIndex]: value };
|
|
114
115
|
}
|
|
@@ -117,7 +118,7 @@ const tableActionsFactory = cellRendererFactory((c, p) => {
|
|
|
117
118
|
}
|
|
118
119
|
outputs?.inputs.set(inputs, true);
|
|
119
120
|
},
|
|
120
|
-
onRemove: (id) => {
|
|
121
|
+
onRemove: (id, rowIndex) => {
|
|
121
122
|
if (inputs?.[id] == undefined) {
|
|
122
123
|
return;
|
|
123
124
|
}
|
|
@@ -132,6 +133,14 @@ const tableActionsFactory = cellRendererFactory((c, p) => {
|
|
|
132
133
|
},
|
|
133
134
|
context: componentContext
|
|
134
135
|
});
|
|
136
|
+
return {
|
|
137
|
+
destroy: () => {
|
|
138
|
+
ta.$destroy();
|
|
139
|
+
},
|
|
140
|
+
refresh(params) {
|
|
141
|
+
ta.$set({ rowIndex: params.node.rowIndex ?? 0, row: params.data, p: params });
|
|
142
|
+
}
|
|
143
|
+
};
|
|
135
144
|
});
|
|
136
145
|
function transformColumnDefs(columnDefs) {
|
|
137
146
|
if (!columnDefs) {
|
|
@@ -148,7 +157,7 @@ function transformColumnDefs(columnDefs) {
|
|
|
148
157
|
field: 'delete',
|
|
149
158
|
headerName: 'Delete',
|
|
150
159
|
cellRenderer: cellRendererFactory((c, p) => {
|
|
151
|
-
new Button({
|
|
160
|
+
let ta = new Button({
|
|
152
161
|
target: c.eGui,
|
|
153
162
|
props: {
|
|
154
163
|
btnClasses: 'w-12',
|
|
@@ -161,6 +170,14 @@ function transformColumnDefs(columnDefs) {
|
|
|
161
170
|
nonCaptureEvent: true
|
|
162
171
|
}
|
|
163
172
|
});
|
|
173
|
+
return {
|
|
174
|
+
destroy: () => {
|
|
175
|
+
ta.$destroy();
|
|
176
|
+
},
|
|
177
|
+
refresh(params) {
|
|
178
|
+
//
|
|
179
|
+
}
|
|
180
|
+
};
|
|
164
181
|
}),
|
|
165
182
|
cellRendererParams: {
|
|
166
183
|
onClick: (e) => {
|
|
@@ -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, {
|
|
@@ -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";
|