windmill-components 1.444.2 → 1.447.5
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/autosize.js +1 -1
- package/package/components/AppConnectInner.svelte +2 -1
- package/package/components/ArgInput.svelte +37 -24
- package/package/components/CapturesInputs.svelte +16 -0
- package/package/components/CapturesInputs.svelte.d.ts +21 -0
- package/package/components/Dev.svelte +7 -1
- package/package/components/EditableSchemaForm.svelte +369 -290
- package/package/components/EditableSchemaForm.svelte.d.ts +12 -2
- package/package/components/Editor.svelte +5 -7
- package/package/components/FirstStepInputs.svelte +111 -0
- package/package/components/FirstStepInputs.svelte.d.ts +17 -0
- package/package/components/FlowBuilder.svelte +28 -7
- package/package/components/FlowPreviewContent.svelte +72 -1
- package/package/components/FlowPreviewContent.svelte.d.ts +1 -0
- package/package/components/GfmMarkdown.svelte +93 -2
- package/package/components/HighlightCode.svelte +2 -0
- package/package/components/HistoricInputs.svelte +193 -0
- package/package/components/HistoricInputs.svelte.d.ts +20 -0
- package/package/components/InfiniteList.svelte +161 -0
- package/package/components/InfiniteList.svelte.d.ts +40 -0
- package/package/components/LightweightArgInput.svelte +19 -15
- package/package/components/MoveDrawer.svelte +2 -1
- package/package/components/Path.svelte +7 -1
- package/package/components/Path.svelte.d.ts +1 -1
- package/package/components/ResourcePicker.svelte +2 -1
- package/package/components/ResourcePicker.svelte.d.ts +1 -0
- package/package/components/ResultJobLoader.svelte.d.ts +1 -1
- package/package/components/SaveInputsButton.svelte +53 -0
- package/package/components/SaveInputsButton.svelte.d.ts +24 -0
- package/package/components/SavedInputs.svelte +33 -61
- package/package/components/SavedInputsPicker.svelte +264 -0
- package/package/components/SavedInputsPicker.svelte.d.ts +20 -0
- package/package/components/ScheduleEditorInner.svelte +0 -1
- package/package/components/SchemaForm.svelte +22 -3
- package/package/components/ScriptBuilder.svelte +595 -562
- package/package/components/ScriptEditor.svelte +10 -3
- package/package/components/ScriptEditor.svelte.d.ts +5 -2
- package/package/components/ScriptSchema.svelte +1 -2
- package/package/components/Section.svelte +6 -4
- package/package/components/ShareModal.svelte.d.ts +2 -2
- package/package/components/SimpleEditor.svelte +39 -7
- package/package/components/SimpleEditor.svelte.d.ts +1 -4
- package/package/components/StringTypeNarrowing.svelte +3 -1
- package/package/components/TestConnection.svelte +5 -0
- package/package/components/TestJobLoader.svelte.d.ts +1 -1
- package/package/components/WorkerGroup.svelte +2 -1
- package/package/components/apps/components/inputs/AppS3FileInput.svelte +1 -0
- package/package/components/apps/editor/component/components.d.ts +79 -79
- package/package/components/apps/editor/component/default-codes.d.ts +1 -1
- package/package/components/apps/editor/component/default-codes.js +10 -10
- package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +2 -1
- package/package/components/apps/inputType.d.ts +2 -2
- package/package/components/common/button/Button.svelte +10 -52
- package/package/components/common/button/PulseButton.svelte +81 -0
- package/package/components/common/button/PulseButton.svelte.d.ts +34 -0
- package/package/components/common/button/RoundIconButton.svelte +11 -0
- package/package/components/common/button/RoundIconButton.svelte.d.ts +19 -0
- package/package/components/common/button/model.d.ts +1 -0
- package/package/components/common/button/model.js +47 -0
- package/package/components/common/fileUpload/FileUpload.svelte +3 -1
- package/package/components/common/fileUpload/FileUpload.svelte.d.ts +1 -0
- package/package/components/common/languageIcons/LanguageIcon.svelte +3 -0
- package/package/components/common/layout/List.svelte +10 -4
- package/package/components/common/layout/List.svelte.d.ts +1 -0
- package/package/components/common/tabs/Tab.svelte +14 -1
- package/package/components/common/tabs/Tab.svelte.d.ts +1 -0
- package/package/components/copilot/ScriptGen.svelte +1 -1
- package/package/components/copilot/lib.js +1 -1
- package/package/components/copilot/prompts/edit.yaml +1 -1
- package/package/components/copilot/prompts/editPrompt.js +1 -1
- package/package/components/copilot/prompts/fix.yaml +1 -1
- package/package/components/copilot/prompts/fixPrompt.js +1 -1
- package/package/components/copilot/prompts/gen.yaml +1 -1
- package/package/components/copilot/prompts/genPrompt.js +1 -1
- package/package/components/custom_ui.d.ts +1 -0
- package/package/components/details/DetailPageDetailPanel.svelte +20 -19
- package/package/components/details/DetailPageDetailPanel.svelte.d.ts +4 -1
- package/package/components/details/DetailPageLayout.svelte +4 -1
- package/package/components/details/DetailPageLayout.svelte.d.ts +3 -0
- package/package/components/details/DetailPageTriggerPanel.svelte +84 -63
- package/package/components/details/DetailPageTriggerPanel.svelte.d.ts +3 -1
- package/package/components/details/EmailTriggerConfigSection.svelte +1 -1
- package/package/components/details/EmailTriggerConfigSection.svelte.d.ts +2 -1
- package/package/components/details/EmailTriggerPanel.svelte +2 -0
- package/package/components/details/EmailTriggerPanel.svelte.d.ts +2 -0
- package/package/components/flows/FlowEditor.svelte +8 -2
- package/package/components/flows/FlowEditor.svelte.d.ts +1 -0
- package/package/components/flows/common/FlowCard.svelte +12 -6
- package/package/components/flows/content/DynamicInputHelpBox.svelte +1 -0
- package/package/components/flows/content/FlowEditorPanel.svelte +15 -9
- package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowInput.svelte +449 -98
- package/package/components/flows/content/FlowInput.svelte.d.ts +2 -0
- package/package/components/flows/content/FlowInputEditor.svelte +46 -0
- package/package/components/flows/content/FlowInputEditor.svelte.d.ts +25 -0
- package/package/components/flows/content/FlowInputsQuick.svelte +1 -1
- package/package/components/flows/content/FlowLoop.svelte +192 -194
- package/package/components/flows/content/FlowModuleComponent.svelte +372 -382
- package/package/components/flows/content/FlowModuleMock.svelte +6 -7
- package/package/components/flows/content/FlowPathViewer.svelte +2 -1
- package/package/components/flows/content/FlowSettings.svelte +25 -3
- package/package/components/flows/content/FlowWhileLoop.svelte +97 -99
- package/package/components/flows/flowStore.d.ts +13 -0
- package/package/components/flows/flowStore.js +41 -0
- package/package/components/flows/header/FlowPreviewButtons.svelte +10 -4
- package/package/components/flows/header/FlowPreviewButtons.svelte.d.ts +4 -2
- package/package/components/flows/header/FlowYamlEditor.svelte +3 -0
- package/package/components/flows/map/FlowModuleSchemaItem.svelte +8 -58
- package/package/components/flows/map/FlowModuleSchemaItemViewer.svelte +67 -0
- package/package/components/flows/map/FlowModuleSchemaItemViewer.svelte.d.ts +24 -0
- package/package/components/flows/map/FlowModuleSchemaMap.svelte +2 -2
- package/package/components/flows/pickers/FlowScriptPicker.svelte +1 -1
- package/package/components/flows/previousResults.d.ts +1 -1
- package/package/components/flows/previousResults.js +7 -2
- package/package/components/flows/types.d.ts +7 -0
- package/package/components/flows/utils.d.ts +1 -0
- package/package/components/flows/utils.js +3 -0
- package/package/components/graph/graphBuilder.js +1 -1
- package/package/components/graph/renderers/triggers/TriggersBadge.svelte +22 -8
- package/package/components/graph/renderers/triggers/TriggersBadge.svelte.d.ts +1 -1
- package/package/components/icons/NatsIcon.svelte +19 -0
- package/package/components/icons/NatsIcon.svelte.d.ts +18 -0
- package/package/components/icons/OracleDBIcon.svelte +15 -0
- package/package/components/icons/OracleDBIcon.svelte.d.ts +25 -0
- package/package/components/icons/index.d.ts +7 -1
- package/package/components/icons/index.js +8 -2
- package/package/components/meltComponents/ButtonDropDown.svelte +32 -0
- package/package/components/meltComponents/ButtonDropDown.svelte.d.ts +27 -0
- package/package/components/meltComponents/Popover.svelte +7 -4
- package/package/components/meltComponents/Popover.svelte.d.ts +1 -0
- package/package/components/runs/RunsFilter.svelte +2 -2
- package/package/components/schema/AddPropertyFormV2.svelte +46 -0
- package/package/components/schema/AddPropertyFormV2.svelte.d.ts +18 -0
- package/package/components/schema/AddPropertyV2.svelte +151 -0
- package/package/components/schema/AddPropertyV2.svelte.d.ts +25 -0
- package/package/components/schema/EditableSchemaDrawer.svelte +17 -8
- package/package/components/schema/EditableSchemaWrapper.svelte +58 -14
- package/package/components/schema/EditableSchemaWrapper.svelte.d.ts +0 -1
- package/package/components/schema/FlowPropertyEditor.svelte +8 -3
- package/package/components/schema/JobSchemaPicker.svelte +32 -0
- package/package/components/schema/JobSchemaPicker.svelte.d.ts +19 -0
- package/package/components/schema/PropertyEditor.svelte +9 -1
- package/package/components/schema/RunningJobSchemaPicker.svelte +67 -0
- package/package/components/schema/RunningJobSchemaPicker.svelte.d.ts +21 -0
- package/package/components/schema/SchemaFormDND.svelte +1 -1
- package/package/components/schema/SchemaPicker.svelte +92 -0
- package/package/components/schema/SchemaPicker.svelte.d.ts +23 -0
- package/package/components/schema/SchemaPickerRow.svelte +95 -0
- package/package/components/schema/SchemaPickerRow.svelte.d.ts +22 -0
- package/package/components/scriptEditor/LogPanel.svelte +1 -1
- package/package/components/settings/ChangeWorkspaceColor.svelte +103 -0
- package/package/components/settings/ChangeWorkspaceColor.svelte.d.ts +16 -0
- package/package/components/settings/ChangeWorkspaceId.svelte +1 -0
- package/package/components/settings/ChangeWorkspaceName.svelte +4 -0
- package/package/components/sidebar/MenuButton.svelte +5 -2
- package/package/components/sidebar/MenuButton.svelte.d.ts +1 -0
- package/package/components/sidebar/SidebarContent.svelte +8 -0
- package/package/components/sidebar/WorkspaceMenu.svelte +40 -21
- package/package/components/table/DataTable.svelte +43 -3
- package/package/components/table/DataTable.svelte.d.ts +2 -0
- package/package/components/table/Head.svelte +1 -1
- package/package/components/table/Row.svelte +11 -1
- package/package/components/table/Row.svelte.d.ts +3 -0
- package/package/components/table/index.d.ts +3 -0
- package/package/components/table/index.js +3 -0
- package/package/components/triggers/CaptureButton.svelte +38 -4
- package/package/components/triggers/CaptureButton.svelte.d.ts +3 -1
- package/package/components/triggers/CaptureIcon.svelte +7 -4
- package/package/components/triggers/CaptureIcon.svelte.d.ts +7 -13
- package/package/components/triggers/CaptureSection.svelte +50 -17
- package/package/components/triggers/CaptureSection.svelte.d.ts +5 -3
- package/package/components/triggers/CaptureTable.svelte +239 -186
- package/package/components/triggers/CaptureTable.svelte.d.ts +9 -11
- package/package/components/triggers/CaptureWrapper.svelte +126 -109
- package/package/components/triggers/CaptureWrapper.svelte.d.ts +3 -1
- package/package/components/triggers/KafkaTriggerEditorInner.svelte +1 -0
- package/package/components/triggers/KafkaTriggersConfigSection.svelte +16 -4
- package/package/components/triggers/KafkaTriggersConfigSection.svelte.d.ts +3 -1
- package/package/components/triggers/KafkaTriggersPanel.svelte +2 -0
- package/package/components/triggers/KafkaTriggersPanel.svelte.d.ts +2 -0
- package/package/components/triggers/NatsTriggerEditor.svelte +19 -0
- package/package/components/triggers/NatsTriggerEditor.svelte.d.ts +21 -0
- package/package/components/triggers/NatsTriggerEditorInner.svelte +239 -0
- package/package/components/triggers/NatsTriggerEditorInner.svelte.d.ts +21 -0
- package/package/components/triggers/NatsTriggersConfigSection.svelte +276 -0
- package/package/components/triggers/NatsTriggersConfigSection.svelte.d.ts +37 -0
- package/package/components/triggers/NatsTriggersPanel.svelte +126 -0
- package/package/components/triggers/NatsTriggersPanel.svelte.d.ts +26 -0
- package/package/components/triggers/RouteEditorConfigSection.svelte +12 -2
- package/package/components/triggers/RouteEditorConfigSection.svelte.d.ts +5 -1
- package/package/components/triggers/RouteEditorInner.svelte +5 -0
- package/package/components/triggers/RoutesPanel.svelte +4 -0
- package/package/components/triggers/RoutesPanel.svelte.d.ts +3 -0
- package/package/components/triggers/TriggersEditor.svelte +146 -97
- package/package/components/triggers/TriggersEditor.svelte.d.ts +2 -0
- package/package/components/triggers/TriggersEditorSection.svelte +19 -13
- package/package/components/triggers/TriggersEditorSection.svelte.d.ts +3 -0
- package/package/components/triggers/TriggersWrapper.svelte +7 -3
- package/package/components/triggers/TriggersWrapper.svelte.d.ts +2 -1
- package/package/components/triggers/WebhooksConfigSection.svelte +1 -0
- package/package/components/triggers/WebhooksConfigSection.svelte.d.ts +2 -1
- package/package/components/triggers/WebhooksPanel.svelte +2 -0
- package/package/components/triggers/WebhooksPanel.svelte.d.ts +2 -0
- package/package/components/triggers/WebsocketEditorConfigSection.svelte +3 -1
- package/package/components/triggers/WebsocketEditorConfigSection.svelte.d.ts +2 -1
- package/package/components/triggers/WebsocketTriggersPanel.svelte +2 -0
- package/package/components/triggers/WebsocketTriggersPanel.svelte.d.ts +2 -0
- package/package/components/triggers.d.ts +2 -1
- package/package/components/triggers.js +2 -0
- package/package/components/vscode.js +12 -8
- package/package/consts.d.ts +1 -0
- package/package/consts.js +18 -0
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +207 -13
- package/package/gen/schemas.gen.js +207 -13
- package/package/gen/services.gen.d.ts +118 -10
- package/package/gen/services.gen.js +237 -17
- package/package/gen/types.gen.d.ts +400 -40
- package/package/hubPaths.json +2 -1
- package/package/infer.js +11 -2
- package/package/monaco_workers/build_workers.js +39 -37
- package/package/monaco_workers/graphql.worker.bundle.js +18371 -36513
- package/package/script_helpers.d.ts +5 -2
- package/package/script_helpers.js +46 -8
- package/package/scripts.js +4 -0
- package/package/stores.d.ts +2 -1
- package/package/stores.js +2 -1
- package/package.json +14 -16
- package/package/monaco_workers/graphql.worker.bundle.d.ts +0 -0
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
<script>import { InputService } from '../gen/index.js';
|
|
2
|
+
import { workspaceStore } from '../stores.js';
|
|
3
|
+
import { sendUserToast } from '../utils.js';
|
|
4
|
+
import JobSchemaPicker from './schema/JobSchemaPicker.svelte';
|
|
5
|
+
import RunningJobSchemaPicker from './schema/RunningJobSchemaPicker.svelte';
|
|
6
|
+
import { createEventDispatcher, onDestroy } from 'svelte';
|
|
7
|
+
import JobLoader from './runs/JobLoader.svelte';
|
|
8
|
+
import { DataTable } from './table';
|
|
9
|
+
import { clickOutside } from '../utils';
|
|
10
|
+
import InfiniteList from './InfiniteList.svelte';
|
|
11
|
+
export let scriptHash = null;
|
|
12
|
+
export let scriptPath = null;
|
|
13
|
+
export let flowPath = null;
|
|
14
|
+
const dispatch = createEventDispatcher();
|
|
15
|
+
let jobs = [];
|
|
16
|
+
let loading = false;
|
|
17
|
+
let hasMoreCurrentRuns = false;
|
|
18
|
+
let page = 1;
|
|
19
|
+
let infiniteList = undefined;
|
|
20
|
+
let loadInputsPageFn = undefined;
|
|
21
|
+
let runnableType = undefined;
|
|
22
|
+
$: runnableType = scriptHash
|
|
23
|
+
? 'ScriptHash'
|
|
24
|
+
: scriptPath
|
|
25
|
+
? 'ScriptPath'
|
|
26
|
+
: flowPath
|
|
27
|
+
? 'FlowPath'
|
|
28
|
+
: undefined;
|
|
29
|
+
let runnableId = undefined;
|
|
30
|
+
function initLoadInputs() {
|
|
31
|
+
runnableId = scriptHash || scriptPath || flowPath || undefined;
|
|
32
|
+
loadInputsPageFn = async (page, perPage) => {
|
|
33
|
+
const inputs = await InputService.getInputHistory({
|
|
34
|
+
workspace: $workspaceStore,
|
|
35
|
+
runnableId,
|
|
36
|
+
runnableType,
|
|
37
|
+
page,
|
|
38
|
+
perPage,
|
|
39
|
+
includePreview: true
|
|
40
|
+
});
|
|
41
|
+
const inputsWithPayload = await Promise.all(inputs.map(async (input) => {
|
|
42
|
+
const payloadData = await loadArgsFromHistory(input.id, undefined, false);
|
|
43
|
+
return {
|
|
44
|
+
...input,
|
|
45
|
+
payloadData
|
|
46
|
+
};
|
|
47
|
+
}));
|
|
48
|
+
return inputsWithPayload;
|
|
49
|
+
};
|
|
50
|
+
infiniteList?.setLoader(loadInputsPageFn);
|
|
51
|
+
}
|
|
52
|
+
function handleSelected(data) {
|
|
53
|
+
if (selected === data.id) {
|
|
54
|
+
selected = undefined;
|
|
55
|
+
dispatch('select', undefined);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
selected = data.id;
|
|
59
|
+
dispatch('select', data.payloadData);
|
|
60
|
+
}
|
|
61
|
+
let selected = undefined;
|
|
62
|
+
onDestroy(() => {
|
|
63
|
+
selected = undefined;
|
|
64
|
+
dispatch('select', undefined);
|
|
65
|
+
});
|
|
66
|
+
async function getPropPickerElements() {
|
|
67
|
+
return Array.from(document.querySelectorAll('[data-schema-picker], [data-schema-picker] *'));
|
|
68
|
+
}
|
|
69
|
+
async function loadArgsFromHistory(id, input, allowLarge) {
|
|
70
|
+
if (!id)
|
|
71
|
+
return;
|
|
72
|
+
const payloadData = await InputService.getArgsFromHistoryOrSavedInput({
|
|
73
|
+
jobOrInputId: id,
|
|
74
|
+
workspace: $workspaceStore,
|
|
75
|
+
input,
|
|
76
|
+
allowLarge
|
|
77
|
+
});
|
|
78
|
+
return payloadData;
|
|
79
|
+
}
|
|
80
|
+
function handleKeydown(event) {
|
|
81
|
+
if (event.key === 'Escape' && selected) {
|
|
82
|
+
selected = undefined;
|
|
83
|
+
dispatch('select', undefined);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
function handleError(e) {
|
|
87
|
+
if (e.type === 'load') {
|
|
88
|
+
sendUserToast(`Failed to load input history: ${e.error}`, true);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
let jobHovered = undefined;
|
|
92
|
+
function refresh() {
|
|
93
|
+
if (infiniteList) {
|
|
94
|
+
infiniteList.loadData('refresh');
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
$: !loading && refresh();
|
|
98
|
+
$: $workspaceStore && (scriptHash || scriptPath || flowPath) && infiniteList && initLoadInputs();
|
|
99
|
+
</script>
|
|
100
|
+
|
|
101
|
+
<svelte:window on:keydown={handleKeydown} />
|
|
102
|
+
|
|
103
|
+
{#if runnableId}
|
|
104
|
+
<JobLoader
|
|
105
|
+
bind:jobs
|
|
106
|
+
path={runnableId}
|
|
107
|
+
isSkipped={false}
|
|
108
|
+
jobKindsCat="all"
|
|
109
|
+
user={null}
|
|
110
|
+
label={null}
|
|
111
|
+
folder={null}
|
|
112
|
+
concurrencyKey={null}
|
|
113
|
+
tag={null}
|
|
114
|
+
success="running"
|
|
115
|
+
argFilter={undefined}
|
|
116
|
+
bind:loading
|
|
117
|
+
syncQueuedRunsCount={false}
|
|
118
|
+
refreshRate={10000}
|
|
119
|
+
computeMinAndMax={undefined}
|
|
120
|
+
perPage={5}
|
|
121
|
+
/>
|
|
122
|
+
{/if}
|
|
123
|
+
|
|
124
|
+
<div
|
|
125
|
+
class="h-full w-full flex flex-col gap-4"
|
|
126
|
+
use:clickOutside={{ capture: false, exclude: getPropPickerElements }}
|
|
127
|
+
on:click_outside={() => {
|
|
128
|
+
if (selected) {
|
|
129
|
+
selected = undefined
|
|
130
|
+
dispatch('select', undefined)
|
|
131
|
+
}
|
|
132
|
+
}}
|
|
133
|
+
>
|
|
134
|
+
<div class="grow-0">
|
|
135
|
+
<DataTable size="xs" bind:currentPage={page} hasMore={hasMoreCurrentRuns} tableFixed={true}>
|
|
136
|
+
{#if loading && (jobs == undefined || jobs?.length == 0)}
|
|
137
|
+
<div class="text-center text-tertiary text-xs py-2">Loading current runs...</div>
|
|
138
|
+
{:else if jobs?.length > 0}
|
|
139
|
+
<colgroup>
|
|
140
|
+
<col class="w-8" />
|
|
141
|
+
<col class="w-20" />
|
|
142
|
+
<col />
|
|
143
|
+
</colgroup>
|
|
144
|
+
|
|
145
|
+
<tbody class="w-full overflow-y-auto">
|
|
146
|
+
{#each jobs as job (job.id)}
|
|
147
|
+
<RunningJobSchemaPicker
|
|
148
|
+
{job}
|
|
149
|
+
selected={selected === job.id}
|
|
150
|
+
hovering={jobHovered === job.id}
|
|
151
|
+
on:select={(e) => handleSelected(e.detail)}
|
|
152
|
+
/>
|
|
153
|
+
{/each}
|
|
154
|
+
{#if jobs?.length == 5}
|
|
155
|
+
<div class="text-left text-tertiary text-xs"
|
|
156
|
+
>... there may be more runs not displayed here as the limit is 5</div
|
|
157
|
+
>
|
|
158
|
+
{/if}
|
|
159
|
+
</tbody>
|
|
160
|
+
{:else}
|
|
161
|
+
<div class="text-center text-tertiary text-xs py-2">No job currently running</div>
|
|
162
|
+
{/if}
|
|
163
|
+
</DataTable>
|
|
164
|
+
</div>
|
|
165
|
+
|
|
166
|
+
<div class="min-h-0 grow">
|
|
167
|
+
<InfiniteList
|
|
168
|
+
bind:this={infiniteList}
|
|
169
|
+
selectedItemId={selected}
|
|
170
|
+
on:error={(e) => handleError(e.detail)}
|
|
171
|
+
on:select={(e) => handleSelected(e.detail)}
|
|
172
|
+
>
|
|
173
|
+
<svelte:fragment slot="columns">
|
|
174
|
+
<colgroup>
|
|
175
|
+
<col class="w-8" />
|
|
176
|
+
<col class="w-20" />
|
|
177
|
+
<col />
|
|
178
|
+
</colgroup>
|
|
179
|
+
</svelte:fragment>
|
|
180
|
+
<svelte:fragment let:item let:hover>
|
|
181
|
+
<JobSchemaPicker
|
|
182
|
+
job={item}
|
|
183
|
+
selected={selected === item.id}
|
|
184
|
+
hovering={hover}
|
|
185
|
+
payloadData={item.payloadData}
|
|
186
|
+
/>
|
|
187
|
+
</svelte:fragment>
|
|
188
|
+
<svelte:fragment slot="empty">
|
|
189
|
+
<div class="text-center text-tertiary text-xs py-2">No previous Runs</div>
|
|
190
|
+
</svelte:fragment>
|
|
191
|
+
</InfiniteList>
|
|
192
|
+
</div>
|
|
193
|
+
</div>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
declare const __propDef: {
|
|
3
|
+
props: {
|
|
4
|
+
scriptHash?: string | null | undefined;
|
|
5
|
+
scriptPath?: string | null | undefined;
|
|
6
|
+
flowPath?: string | null | undefined;
|
|
7
|
+
};
|
|
8
|
+
events: {
|
|
9
|
+
select: CustomEvent<any>;
|
|
10
|
+
} & {
|
|
11
|
+
[evt: string]: CustomEvent<any>;
|
|
12
|
+
};
|
|
13
|
+
slots: {};
|
|
14
|
+
};
|
|
15
|
+
export type HistoricInputsProps = typeof __propDef.props;
|
|
16
|
+
export type HistoricInputsEvents = typeof __propDef.events;
|
|
17
|
+
export type HistoricInputsSlots = typeof __propDef.slots;
|
|
18
|
+
export default class HistoricInputs extends SvelteComponent<HistoricInputsProps, HistoricInputsEvents, HistoricInputsSlots> {
|
|
19
|
+
}
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
<script>import DataTable from './table/DataTable.svelte';
|
|
2
|
+
import Skeleton from './common/skeleton/Skeleton.svelte';
|
|
3
|
+
import { createEventDispatcher } from 'svelte';
|
|
4
|
+
import { Row } from './table/index';
|
|
5
|
+
import { twMerge } from 'tailwind-merge';
|
|
6
|
+
const dispatch = createEventDispatcher();
|
|
7
|
+
export let loading = false;
|
|
8
|
+
export let items = undefined;
|
|
9
|
+
export let selectedItemId = undefined;
|
|
10
|
+
export let isEmpty = true;
|
|
11
|
+
export let length = 0;
|
|
12
|
+
let hasMore = false;
|
|
13
|
+
let page = 1;
|
|
14
|
+
let perPage = 10;
|
|
15
|
+
let hasAlreadyFailed = false;
|
|
16
|
+
let hovered = undefined;
|
|
17
|
+
let initLoad = false;
|
|
18
|
+
let loadInputs = undefined;
|
|
19
|
+
let deleteItemFn = undefined;
|
|
20
|
+
export async function loadData(loadOption = 'loadMore') {
|
|
21
|
+
if (!loadInputs)
|
|
22
|
+
return;
|
|
23
|
+
loading = true;
|
|
24
|
+
hasMore = hasMore;
|
|
25
|
+
if (hasMore && loadOption === 'loadMore') {
|
|
26
|
+
page++;
|
|
27
|
+
}
|
|
28
|
+
try {
|
|
29
|
+
const newItems = await loadInputs(1, page * perPage);
|
|
30
|
+
if (loadOption === 'refresh' &&
|
|
31
|
+
items &&
|
|
32
|
+
items?.length > 0 &&
|
|
33
|
+
newItems.length === items?.length &&
|
|
34
|
+
newItems.every((i, index) => i.id === items?.[index]?.id)) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const existingIds = new Set(items?.map((i) => i.id) || []);
|
|
38
|
+
items = newItems.map((item) => ({
|
|
39
|
+
...item,
|
|
40
|
+
isNew: initLoad && !existingIds.has(item.id)
|
|
41
|
+
}));
|
|
42
|
+
setTimeout(() => {
|
|
43
|
+
if (items) {
|
|
44
|
+
items = items.map((item) => ({
|
|
45
|
+
...item,
|
|
46
|
+
isNew: false
|
|
47
|
+
}));
|
|
48
|
+
}
|
|
49
|
+
}, 1000);
|
|
50
|
+
page = Math.floor(items.length / perPage) + 1;
|
|
51
|
+
hasMore = items.length === perPage * (page - 1);
|
|
52
|
+
initLoad = true;
|
|
53
|
+
isEmpty = items.length === 0;
|
|
54
|
+
length = items.length;
|
|
55
|
+
}
|
|
56
|
+
catch (err) {
|
|
57
|
+
console.error(err);
|
|
58
|
+
if (hasAlreadyFailed)
|
|
59
|
+
return;
|
|
60
|
+
hasAlreadyFailed = true;
|
|
61
|
+
dispatch('error', { type: 'load', error: err });
|
|
62
|
+
}
|
|
63
|
+
finally {
|
|
64
|
+
loading = false;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
export async function deleteItem(id) {
|
|
68
|
+
if (!deleteItemFn)
|
|
69
|
+
return;
|
|
70
|
+
try {
|
|
71
|
+
items = items?.map((i) => (i.id === id ? { ...i, isDeleting: true } : i)) ?? [];
|
|
72
|
+
setTimeout(async () => {
|
|
73
|
+
deleteItemFn ? await deleteItemFn(id) : null;
|
|
74
|
+
if (selectedItemId === id) {
|
|
75
|
+
selectedItemId = null;
|
|
76
|
+
}
|
|
77
|
+
loadData('refresh');
|
|
78
|
+
}, 100);
|
|
79
|
+
}
|
|
80
|
+
catch (err) {
|
|
81
|
+
dispatch('error', { type: 'delete', error: err });
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
export async function setLoader(loader) {
|
|
85
|
+
loadInputs = loader;
|
|
86
|
+
loadData('forceRefresh');
|
|
87
|
+
}
|
|
88
|
+
export async function setDeleteItemFn(fn) {
|
|
89
|
+
deleteItemFn = fn;
|
|
90
|
+
}
|
|
91
|
+
</script>
|
|
92
|
+
|
|
93
|
+
<div class="h-full">
|
|
94
|
+
{#if items === undefined && loading}
|
|
95
|
+
<Skeleton layout={[[8]]} />
|
|
96
|
+
{:else if items && items.length > 0}
|
|
97
|
+
<DataTable
|
|
98
|
+
size="xs"
|
|
99
|
+
infiniteScroll
|
|
100
|
+
{hasMore}
|
|
101
|
+
tableFixed={true}
|
|
102
|
+
on:loadMore={() => {
|
|
103
|
+
loadData()
|
|
104
|
+
}}
|
|
105
|
+
>
|
|
106
|
+
<slot name="columns" />
|
|
107
|
+
|
|
108
|
+
<tbody class="h-full w-full">
|
|
109
|
+
{#each items ?? [] as item, index}
|
|
110
|
+
{@const hover = item.id === hovered}
|
|
111
|
+
<Row
|
|
112
|
+
on:click={() => dispatch('select', item)}
|
|
113
|
+
class={twMerge(
|
|
114
|
+
selectedItemId === item.id ? 'bg-surface-selected' : 'hover:bg-surface-hover',
|
|
115
|
+
'cursor-pointer rounded-md',
|
|
116
|
+
item.isNew && index === 0 ? 'animate-slideIn' : 'group'
|
|
117
|
+
)}
|
|
118
|
+
on:hover={(e) => (hovered = e.detail ? item.id : undefined)}
|
|
119
|
+
>
|
|
120
|
+
<slot {item} {hover} />
|
|
121
|
+
</Row>
|
|
122
|
+
{/each}
|
|
123
|
+
</tbody>
|
|
124
|
+
</DataTable>
|
|
125
|
+
{:else}
|
|
126
|
+
<slot name="empty" {items} />
|
|
127
|
+
{/if}
|
|
128
|
+
</div>
|
|
129
|
+
|
|
130
|
+
<style>
|
|
131
|
+
@keyframes slideOut {
|
|
132
|
+
from {
|
|
133
|
+
opacity: 1;
|
|
134
|
+
transform: translateX(0);
|
|
135
|
+
max-height: 100px;
|
|
136
|
+
}
|
|
137
|
+
to {
|
|
138
|
+
opacity: 0;
|
|
139
|
+
transform: translateX(-100%);
|
|
140
|
+
max-height: 0;
|
|
141
|
+
margin: 0;
|
|
142
|
+
padding: 0;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
@keyframes greenHighlight {
|
|
147
|
+
0% {
|
|
148
|
+
background-color: rgba(70, 255, 138, 0.5);
|
|
149
|
+
box-shadow: 0 0 15px rgb(34 197 94 / 0.3);
|
|
150
|
+
}
|
|
151
|
+
100% {
|
|
152
|
+
background-color: transparent;
|
|
153
|
+
box-shadow: none;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
:global(.animate-slideIn) {
|
|
158
|
+
animation: greenHighlight 2s ease-out forwards;
|
|
159
|
+
will-change: transform, opacity, background-color, box-shadow;
|
|
160
|
+
position: relative;
|
|
161
|
+
}</style>
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
declare const __propDef: {
|
|
3
|
+
props: {
|
|
4
|
+
loading?: boolean | undefined;
|
|
5
|
+
items?: any[] | undefined;
|
|
6
|
+
selectedItemId?: any | undefined;
|
|
7
|
+
isEmpty?: boolean | undefined;
|
|
8
|
+
length?: number | undefined;
|
|
9
|
+
loadData?: ((loadOption?: 'refresh' | 'forceRefresh' | 'loadMore') => Promise<void>) | undefined;
|
|
10
|
+
deleteItem?: ((id: string) => Promise<void>) | undefined;
|
|
11
|
+
setLoader?: ((loader: (page: number, perPage: number) => Promise<any[]>) => Promise<void>) | undefined;
|
|
12
|
+
setDeleteItemFn?: ((fn: (id: any) => Promise<any>) => Promise<void>) | undefined;
|
|
13
|
+
};
|
|
14
|
+
events: {
|
|
15
|
+
select: CustomEvent<any>;
|
|
16
|
+
error: CustomEvent<any>;
|
|
17
|
+
} & {
|
|
18
|
+
[evt: string]: CustomEvent<any>;
|
|
19
|
+
};
|
|
20
|
+
slots: {
|
|
21
|
+
columns: {};
|
|
22
|
+
default: {
|
|
23
|
+
item: any;
|
|
24
|
+
hover: any;
|
|
25
|
+
};
|
|
26
|
+
empty: {
|
|
27
|
+
items: any[] | undefined;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
export type InfiniteListProps = typeof __propDef.props;
|
|
32
|
+
export type InfiniteListEvents = typeof __propDef.events;
|
|
33
|
+
export type InfiniteListSlots = typeof __propDef.slots;
|
|
34
|
+
export default class InfiniteList extends SvelteComponent<InfiniteListProps, InfiniteListEvents, InfiniteListSlots> {
|
|
35
|
+
get loadData(): (loadOption?: "refresh" | "loadMore" | "forceRefresh") => Promise<void>;
|
|
36
|
+
get deleteItem(): (id: string) => Promise<void>;
|
|
37
|
+
get setLoader(): (loader: (page: number, perPage: number) => Promise<any[]>) => Promise<void>;
|
|
38
|
+
get setDeleteItemFn(): (fn: (id: any) => Promise<any>) => Promise<void>;
|
|
39
|
+
}
|
|
40
|
+
export {};
|
|
@@ -272,19 +272,21 @@ function addItemByItemsType() {
|
|
|
272
272
|
/>
|
|
273
273
|
{/if}
|
|
274
274
|
{:else if inputCat == 'boolean'}
|
|
275
|
-
<
|
|
276
|
-
|
|
277
|
-
e
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
275
|
+
<div class="w-full">
|
|
276
|
+
<Toggle
|
|
277
|
+
on:pointerdown={(e) => {
|
|
278
|
+
e?.stopPropagation()
|
|
279
|
+
}}
|
|
280
|
+
class={valid && error == ''
|
|
281
|
+
? ''
|
|
282
|
+
: 'border !border-red-700 !border-opacity-70 focus:!border-red-700 focus:!border-opacity-30'}
|
|
283
|
+
bind:checked={value}
|
|
284
|
+
{disabled}
|
|
285
|
+
/>
|
|
286
|
+
{#if type == 'boolean' && value == undefined}
|
|
287
|
+
<span> Not set</span>
|
|
288
|
+
{/if}
|
|
289
|
+
</div>
|
|
288
290
|
{:else if inputCat == 'list'}
|
|
289
291
|
<div class="w-full">
|
|
290
292
|
{#if Array.isArray(itemsType?.multiselect) && Array.isArray(value)}
|
|
@@ -448,12 +450,14 @@ function addItemByItemsType() {
|
|
|
448
450
|
<div class="p-4 pl-8 border rounded w-full">
|
|
449
451
|
<LightweightSchemaForm
|
|
450
452
|
schema={{
|
|
453
|
+
...obj,
|
|
451
454
|
properties: Object.fromEntries(
|
|
452
455
|
Object.entries(obj.properties).filter(([k, v]) => k !== 'label')
|
|
453
456
|
),
|
|
454
457
|
$schema: '',
|
|
455
458
|
required: obj.required ?? [],
|
|
456
|
-
type: 'object'
|
|
459
|
+
type: 'object',
|
|
460
|
+
order: obj.order ?? []
|
|
457
461
|
}}
|
|
458
462
|
bind:args={value}
|
|
459
463
|
{disabled}
|
|
@@ -485,7 +489,7 @@ function addItemByItemsType() {
|
|
|
485
489
|
}}
|
|
486
490
|
use:autosize
|
|
487
491
|
style="min-height: 5px;"
|
|
488
|
-
class="col-span-10 {valid && error == ''
|
|
492
|
+
class="col-span-10 !leading-tight !text-2xs {valid && error == ''
|
|
489
493
|
? ''
|
|
490
494
|
: 'border !border-red-700 !border-opacity-70 focus:!border-red-700 focus:!border-opacity-30'}"
|
|
491
495
|
placeholder={defaultValue ? JSON.stringify(defaultValue, null, 4) : ''}
|
|
@@ -41,7 +41,8 @@ async function updatePath() {
|
|
|
41
41
|
tag: flow.tag,
|
|
42
42
|
dedicated_worker: flow.dedicated_worker,
|
|
43
43
|
ws_error_handler_muted: flow.ws_error_handler_muted,
|
|
44
|
-
visible_to_runner_only: flow.visible_to_runner_only
|
|
44
|
+
visible_to_runner_only: flow.visible_to_runner_only,
|
|
45
|
+
on_behalf_of_email: flow.on_behalf_of_email
|
|
45
46
|
}
|
|
46
47
|
});
|
|
47
48
|
}
|
|
@@ -3,7 +3,7 @@ const lastMetaUsed = writable(undefined);
|
|
|
3
3
|
</script>
|
|
4
4
|
|
|
5
5
|
<script>import { pathToMeta } from '../common';
|
|
6
|
-
import { AppService, FlowService, FolderService, ResourceService, ScheduleService, ScriptService, HttpTriggerService, VariableService, WebsocketTriggerService, KafkaTriggerService } from '../gen';
|
|
6
|
+
import { AppService, FlowService, FolderService, ResourceService, ScheduleService, ScriptService, HttpTriggerService, VariableService, WebsocketTriggerService, KafkaTriggerService, NatsTriggerService } from '../gen';
|
|
7
7
|
import { superadmin, userStore, workspaceStore } from '../stores';
|
|
8
8
|
import { createEventDispatcher, getContext } from 'svelte';
|
|
9
9
|
import { writable } from 'svelte/store';
|
|
@@ -195,6 +195,12 @@ async function pathExists(path, kind) {
|
|
|
195
195
|
path: path
|
|
196
196
|
});
|
|
197
197
|
}
|
|
198
|
+
else if (kind == 'nats_trigger') {
|
|
199
|
+
return await NatsTriggerService.existsNatsTrigger({
|
|
200
|
+
workspace: $workspaceStore,
|
|
201
|
+
path: path
|
|
202
|
+
});
|
|
203
|
+
}
|
|
198
204
|
else {
|
|
199
205
|
return false;
|
|
200
206
|
}
|
|
@@ -10,7 +10,7 @@ declare const __propDef: {
|
|
|
10
10
|
checkInitialPathExistence?: boolean | undefined;
|
|
11
11
|
autofocus?: boolean | undefined;
|
|
12
12
|
dirty?: boolean | undefined;
|
|
13
|
-
kind: "script" | "flow" | "resource" | "schedule" | "app" | "variable" | "raw_app" | "http_trigger" | "websocket_trigger" | "kafka_trigger";
|
|
13
|
+
kind: "script" | "flow" | "resource" | "schedule" | "app" | "variable" | "raw_app" | "http_trigger" | "websocket_trigger" | "kafka_trigger" | "nats_trigger";
|
|
14
14
|
hideUser?: boolean | undefined;
|
|
15
15
|
focus?: (() => void) | undefined;
|
|
16
16
|
setName?: ((x: string) => void) | undefined;
|
|
@@ -21,6 +21,7 @@ export let showSchemaExplorer = false;
|
|
|
21
21
|
export let selectFirst = false;
|
|
22
22
|
export let expressOAuthSetup = false;
|
|
23
23
|
export let defaultValues = undefined;
|
|
24
|
+
export let placeholder = undefined;
|
|
24
25
|
onMount(() => {
|
|
25
26
|
setTimeout(() => {
|
|
26
27
|
if (Object.keys(defaultValues ?? {}).length > 0 && resourceType) {
|
|
@@ -133,7 +134,7 @@ let darkMode = false;
|
|
|
133
134
|
}}
|
|
134
135
|
items={collection}
|
|
135
136
|
class="text-clip grow min-w-0"
|
|
136
|
-
placeholder=
|
|
137
|
+
placeholder={placeholder ?? `${resourceType ?? 'any'} resource`}
|
|
137
138
|
inputStyles={SELECT_INPUT_DEFAULT_STYLE.inputStyles}
|
|
138
139
|
containerStyles={darkMode
|
|
139
140
|
? SELECT_INPUT_DEFAULT_STYLE.containerStylesDark
|
|
@@ -11,6 +11,7 @@ declare const __propDef: {
|
|
|
11
11
|
selectFirst?: boolean | undefined;
|
|
12
12
|
expressOAuthSetup?: boolean | undefined;
|
|
13
13
|
defaultValues?: Record<string, any> | undefined;
|
|
14
|
+
placeholder?: string | undefined;
|
|
14
15
|
askNewResource?: (() => Promise<void>) | undefined;
|
|
15
16
|
};
|
|
16
17
|
events: {
|
|
@@ -81,7 +81,7 @@ export default class ResultJobLoader extends SvelteComponent<ResultJobLoaderProp
|
|
|
81
81
|
cancel: () => void;
|
|
82
82
|
error: (err: Error) => void;
|
|
83
83
|
} | undefined) => Promise<string>;
|
|
84
|
-
get runPreview(): (path: string | undefined, code: string, lang: "python3" | "deno" | "go" | "bash" | "powershell" | "postgresql" | "mysql" | "bigquery" | "snowflake" | "mssql" | "graphql" | "nativets" | "bun" | "php" | "rust" | "ansible" | "csharp", args: Record<string, any>, tag: string | undefined, callbacks?: {
|
|
84
|
+
get runPreview(): (path: string | undefined, code: string, lang: "python3" | "deno" | "go" | "bash" | "powershell" | "postgresql" | "mysql" | "bigquery" | "snowflake" | "mssql" | "oracledb" | "graphql" | "nativets" | "bun" | "php" | "rust" | "ansible" | "csharp", args: Record<string, any>, tag: string | undefined, callbacks?: {
|
|
85
85
|
done: (x: any) => void;
|
|
86
86
|
cancel: () => void;
|
|
87
87
|
error: (err: Error) => void;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
<script>import { displayDate } from '../utils.js';
|
|
2
|
+
import { InputService } from '../gen/index.js';
|
|
3
|
+
import { workspaceStore } from '../stores.js';
|
|
4
|
+
import { Button } from './common';
|
|
5
|
+
import { Save } from 'lucide-svelte';
|
|
6
|
+
import { sendUserToast } from '../utils.js';
|
|
7
|
+
import { createEventDispatcher } from 'svelte';
|
|
8
|
+
import Tooltip from './Tooltip.svelte';
|
|
9
|
+
const dispatch = createEventDispatcher();
|
|
10
|
+
export let runnableId;
|
|
11
|
+
export let runnableType;
|
|
12
|
+
export let args;
|
|
13
|
+
export let disabled = false;
|
|
14
|
+
export let small = undefined;
|
|
15
|
+
export let showTooltip = undefined;
|
|
16
|
+
let savingInputs = false;
|
|
17
|
+
async function saveInput(args) {
|
|
18
|
+
savingInputs = true;
|
|
19
|
+
const requestBody = {
|
|
20
|
+
name: 'Saved ' + displayDate(new Date()),
|
|
21
|
+
args: args
|
|
22
|
+
};
|
|
23
|
+
try {
|
|
24
|
+
await InputService.createInput({
|
|
25
|
+
workspace: $workspaceStore,
|
|
26
|
+
runnableId,
|
|
27
|
+
runnableType,
|
|
28
|
+
requestBody
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
catch (err) {
|
|
32
|
+
console.error(err);
|
|
33
|
+
sendUserToast(`Failed to save Input: ${err}`, true);
|
|
34
|
+
}
|
|
35
|
+
savingInputs = false;
|
|
36
|
+
dispatch('update');
|
|
37
|
+
}
|
|
38
|
+
</script>
|
|
39
|
+
|
|
40
|
+
<Button
|
|
41
|
+
on:click={() => saveInput(args)}
|
|
42
|
+
{disabled}
|
|
43
|
+
loading={savingInputs}
|
|
44
|
+
startIcon={{ icon: Save }}
|
|
45
|
+
variant={small ? 'border' : 'contained'}
|
|
46
|
+
color="light"
|
|
47
|
+
size="xs"
|
|
48
|
+
>
|
|
49
|
+
<span>{small ? 'Save inputs' : 'Save current input'}</span>
|
|
50
|
+
{#if showTooltip}
|
|
51
|
+
<Tooltip>Shared inputs are available to anyone with access to the script</Tooltip>
|
|
52
|
+
{/if}
|
|
53
|
+
</Button>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
import { type RunnableType } from '../gen/index.js';
|
|
3
|
+
declare const __propDef: {
|
|
4
|
+
props: {
|
|
5
|
+
runnableId: string | undefined;
|
|
6
|
+
runnableType: RunnableType | undefined;
|
|
7
|
+
args: object;
|
|
8
|
+
disabled?: boolean | undefined;
|
|
9
|
+
small?: boolean | undefined;
|
|
10
|
+
showTooltip?: boolean | undefined;
|
|
11
|
+
};
|
|
12
|
+
events: {
|
|
13
|
+
update: CustomEvent<any>;
|
|
14
|
+
} & {
|
|
15
|
+
[evt: string]: CustomEvent<any>;
|
|
16
|
+
};
|
|
17
|
+
slots: {};
|
|
18
|
+
};
|
|
19
|
+
export type SaveInputsButtonProps = typeof __propDef.props;
|
|
20
|
+
export type SaveInputsButtonEvents = typeof __propDef.events;
|
|
21
|
+
export type SaveInputsButtonSlots = typeof __propDef.slots;
|
|
22
|
+
export default class SaveInputsButton extends SvelteComponent<SaveInputsButtonProps, SaveInputsButtonEvents, SaveInputsButtonSlots> {
|
|
23
|
+
}
|
|
24
|
+
export {};
|