windmill-components 1.537.1 → 1.542.4
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/AIProviderPicker.svelte +181 -0
- package/package/components/AIProviderPicker.svelte.d.ts +15 -0
- package/package/components/ArgInfo.svelte +2 -2
- package/package/components/ArgInput.svelte +35 -9
- package/package/components/ArgInput.svelte.d.ts +3 -3
- package/package/components/AssignableTagsInner.svelte +89 -3
- package/package/components/ConcurrentJobsChart.svelte +36 -48
- package/package/components/ConcurrentJobsChart.svelte.d.ts +8 -20
- package/package/components/CustomPopover.svelte.d.ts +1 -1
- package/package/components/DropdownSelect.svelte +26 -0
- package/package/components/DropdownSelect.svelte.d.ts +11 -0
- package/package/components/DropdownV2Inner.svelte +1 -1
- package/package/components/{DynSelect.svelte → DynamicInput.svelte} +47 -15
- package/package/components/DynamicInput.svelte.d.ts +11 -0
- package/package/components/EditableSchemaForm.svelte +119 -95
- package/package/components/EditableSchemaForm.svelte.d.ts +4 -4
- package/package/components/Editor.svelte +86 -93
- package/package/components/Editor.svelte.d.ts +4 -3
- package/package/components/EditorBar.svelte +2 -5
- package/package/components/FlowBuilder.svelte +3 -3
- package/package/components/FlowLogRow.svelte +64 -0
- package/package/components/FlowLogRow.svelte.d.ts +15 -0
- package/package/components/FlowLogViewer.svelte +406 -373
- package/package/components/FlowLogViewer.svelte.d.ts +5 -1
- package/package/components/FlowLogViewerWrapper.svelte +44 -1
- package/package/components/FlowLoopIterationPreview.svelte.d.ts +1 -1
- package/package/components/FlowPreviewContent.svelte.d.ts +1 -1
- package/package/components/FlowStatusViewerInner.svelte +34 -3
- package/package/components/FolderPicker.svelte +1 -1
- package/package/components/InputTransformForm.svelte +20 -10
- package/package/components/JobArgs.svelte +1 -1
- package/package/components/JobLoader.svelte.d.ts +1 -1
- package/package/components/JobStatus.svelte +2 -0
- package/package/components/LogSnippetViewer.svelte +3 -3
- package/package/components/LogSnippetViewer.svelte.d.ts +1 -1
- package/package/components/LogViewer.svelte +87 -71
- package/package/components/LogViewer.svelte.d.ts +1 -0
- package/package/components/Path.svelte +7 -1
- package/package/components/Path.svelte.d.ts +1 -1
- package/package/components/PrefixedInput.svelte +120 -0
- package/package/components/PrefixedInput.svelte.d.ts +8 -0
- package/package/components/QueuePosition.svelte +81 -0
- package/package/components/QueuePosition.svelte.d.ts +8 -0
- package/package/components/ResourceNarrowing.svelte +13 -0
- package/package/components/ResourceNarrowing.svelte.d.ts +6 -0
- package/package/components/ResourceTypePicker.svelte +49 -74
- package/package/components/RunChart.svelte +74 -89
- package/package/components/RunChart.svelte.d.ts +10 -22
- package/package/components/S3FilePicker.svelte +1 -1
- package/package/components/SchemaForm.svelte.d.ts +2 -2
- package/package/components/ScriptBuilder.svelte +2 -1
- package/package/components/ScriptEditor.svelte +4 -3
- package/package/components/ScriptEditor.svelte.d.ts +2 -1
- package/package/components/ServiceLogsInner.svelte +1 -1
- package/package/components/ShareModal.svelte.d.ts +1 -1
- package/package/components/SimpleEditor.svelte +4 -67
- package/package/components/StringTypeNarrowing.svelte +5 -10
- package/package/components/TemplateEditor.svelte +2 -16
- package/package/components/TimeAgo.svelte +1 -1
- package/package/components/TimeAgo.svelte.d.ts +1 -0
- package/package/components/Toggle.svelte +2 -1
- package/package/components/Toggle.svelte.d.ts +2 -1
- package/package/components/WorkerRepl.svelte +1 -1
- package/package/components/apps/components/display/AppNavbarItem.svelte +2 -1
- package/package/components/apps/components/display/table/AppAggridTable.svelte +44 -48
- package/package/components/apps/components/display/table/SyncColumnDefs.svelte +101 -19
- package/package/components/apps/components/display/table/SyncColumnDefs.svelte.d.ts +5 -2
- package/package/components/apps/components/display/table/utils.js +36 -5
- package/package/components/apps/components/inputs/currency/CurrencyInput.svelte +10 -5
- package/package/components/apps/editor/AppEditor.svelte +4 -3
- package/package/components/apps/editor/AppEditorHeader.svelte +0 -1
- package/package/components/apps/editor/GridViewer.svelte.d.ts +11 -4
- package/package/components/apps/editor/SettingsPanel.svelte +2 -2
- package/package/components/apps/editor/componentsPanel/ListItem.svelte +2 -2
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +1 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte.d.ts +1 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +1 -1
- package/package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +26 -3
- package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +1 -1
- package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +13 -5
- package/package/components/apps/svelte-grid/Grid.svelte.d.ts +30 -11
- package/package/components/assets/JobAssetsViewer.svelte +28 -24
- package/package/components/auditLogs/AuditLogsTable.svelte +2 -6
- package/package/components/chartjs-wrappers/Chart.svelte.d.ts +14 -7
- package/package/components/common/OnChange.svelte.d.ts +11 -4
- package/package/components/common/badge/Badge.svelte +9 -2
- package/package/components/common/badge/Badge.svelte.d.ts +2 -1
- package/package/components/common/calendarPicker/CalendarPicker.svelte +5 -1
- package/package/components/common/calendarPicker/CalendarPicker.svelte.d.ts +5 -4
- package/package/components/common/drawer/Disposable.svelte +9 -11
- package/package/components/common/drawer/Drawer.svelte +3 -4
- package/package/components/common/drawer/Drawer.svelte.d.ts +1 -0
- package/package/components/common/menu/MenuItem.svelte.d.ts +2 -2
- package/package/components/common/modal/Modal.svelte.d.ts +1 -1
- package/package/components/common/tabs/TabContent.svelte +2 -7
- package/package/components/common/tabs/TabContent.svelte.d.ts +5 -27
- package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte +9 -3
- package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte.d.ts +1 -0
- package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte +8 -4
- package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte.d.ts +1 -0
- package/package/components/copilot/MetadataGen.svelte +1 -1
- package/package/components/copilot/chat/AIChatManager.svelte.js +24 -102
- package/package/components/copilot/chat/AssistantMessage.svelte +0 -4
- package/package/components/copilot/chat/anthropic.d.ts +15 -0
- package/package/components/copilot/chat/anthropic.js +208 -0
- package/package/components/copilot/chat/api/apiTools.d.ts +2 -2
- package/package/components/copilot/chat/api/apiTools.js +10 -7
- package/package/components/copilot/chat/api/core.d.ts +1 -1
- package/package/components/copilot/chat/api/core.js +7 -2
- package/package/components/copilot/chat/ask/core.d.ts +1 -1
- package/package/components/copilot/chat/ask/core.js +7 -2
- package/package/components/copilot/chat/flow/core.d.ts +1 -1
- package/package/components/copilot/chat/flow/core.js +14 -4
- package/package/components/copilot/chat/monaco-adapter.d.ts +6 -5
- package/package/components/copilot/chat/navigator/core.d.ts +1 -1
- package/package/components/copilot/chat/navigator/core.js +7 -2
- package/package/components/copilot/chat/script/CodeDisplay.svelte +10 -111
- package/package/components/copilot/chat/script/core.d.ts +5 -4
- package/package/components/copilot/chat/script/core.js +131 -19
- package/package/components/copilot/chat/shared.d.ts +7 -7
- package/package/components/copilot/lib.d.ts +29 -8
- package/package/components/copilot/lib.js +199 -24
- package/package/components/flows/content/FlowInput.svelte +5 -5
- package/package/components/flows/content/FlowModuleComponent.svelte +5 -2
- package/package/components/flows/content/FlowModuleEarlyStop.svelte +47 -17
- package/package/components/flows/content/FlowModuleSleep.svelte +4 -1
- package/package/components/flows/content/FlowModuleSuspend.svelte +0 -1
- package/package/components/flows/content/FlowModuleTimeout.svelte +50 -10
- package/package/components/flows/content/FlowModuleTimeout.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowRetries.svelte +108 -3
- package/package/components/flows/content/FlowRetries.svelte.d.ts +3 -2
- package/package/components/flows/flowInfers.js +8 -35
- package/package/components/flows/flowStore.d.ts +45 -1
- package/package/components/flows/flowStore.js +1 -1
- package/package/components/flows/map/FlowJobsMenu.svelte +3 -3
- package/package/components/flows/map/FlowModuleSchemaItem.svelte +61 -54
- package/package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +1 -1
- package/package/components/flows/map/FlowModuleSchemaItemViewer.svelte +1 -1
- package/package/components/flows/map/InsertModuleButton.svelte +1 -0
- package/package/components/flows/map/InsertModuleInner.svelte +12 -15
- package/package/components/flows/map/InsertModuleInner.svelte.d.ts +10 -9
- package/package/components/flows/propPicker/OutputPickerInner.svelte.d.ts +1 -1
- package/package/components/git_sync/DetectionFlow.svelte +15 -17
- package/package/components/git_sync/GitSyncContext.svelte.js +1 -1
- package/package/components/git_sync/GitSyncRepositoryCard.svelte +0 -1
- package/package/components/graph/graphBuilder.svelte.d.ts +5 -1
- package/package/components/graph/renderers/edges/BaseEdge.svelte +9 -1
- package/package/components/graph/renderers/edges/BaseEdge.svelte.d.ts +4 -1
- package/package/components/graph/renderers/nodes/BranchAllStart.svelte +2 -3
- package/package/components/graph/renderers/nodes/BranchOneStart.svelte +2 -3
- package/package/components/graph/renderers/triggers/TriggerButton.svelte.d.ts +1 -1
- package/package/components/graph/renderers/triggers/TriggersBadge.svelte +3 -1
- package/package/components/graph/renderers/triggers/TriggersWrapper.svelte +34 -24
- package/package/components/graph/renderers/triggers/TriggersWrapper.svelte.d.ts +1 -2
- package/package/components/home/ItemsList.svelte +17 -13
- package/package/components/home/TreeView.svelte +21 -27
- package/package/components/home/TreeView.svelte.d.ts +2 -29
- package/package/components/home/TreeViewRoot.svelte +11 -23
- package/package/components/home/TreeViewRoot.svelte.d.ts +15 -13
- package/package/components/icons/GitIcon.svelte +10 -2
- package/package/components/icons/GitIcon.svelte.d.ts +1 -0
- package/package/components/meltComponents/MeltButton.svelte.d.ts +1 -1
- package/package/components/meltComponents/Popover.svelte +23 -3
- package/package/components/meltComponents/Popover.svelte.d.ts +2 -1
- package/package/components/monacoLanguagesOptions.d.ts +3 -0
- package/package/components/monacoLanguagesOptions.js +109 -0
- package/package/components/propertyPicker/ObjectViewer.svelte +7 -2
- package/package/components/propertyPicker/PropPicker.svelte +1 -1
- package/package/components/propertyPicker/utils.js +14 -7
- package/package/components/runs/JobRunsPreview.svelte +212 -177
- package/package/components/runs/JobsLoader.svelte +2 -2
- package/package/components/runs/JobsLoader.svelte.d.ts +1 -1
- package/package/components/runs/NoWorkerWithTagWarning.svelte +18 -5
- package/package/components/runs/RunBadges.svelte +100 -0
- package/package/components/runs/RunBadges.svelte.d.ts +12 -0
- package/package/components/runs/RunLabels.svelte +86 -0
- package/package/components/runs/RunLabels.svelte.d.ts +10 -0
- package/package/components/runs/RunOption.svelte +20 -0
- package/package/components/runs/RunOption.svelte.d.ts +10 -0
- package/package/components/runs/RunRow.svelte +239 -151
- package/package/components/runs/RunRow.svelte.d.ts +12 -9
- package/package/components/runs/RunsBatchActionsDropdown.svelte +13 -17
- package/package/components/runs/RunsBatchActionsDropdown.svelte.d.ts +5 -18
- package/package/components/runs/RunsFilter.svelte +369 -243
- package/package/components/runs/RunsFilter.svelte.d.ts +2 -0
- package/package/components/runs/RunsQueue.svelte +96 -25
- package/package/components/runs/RunsQueue.svelte.d.ts +7 -21
- package/package/components/runs/RunsTable.svelte +62 -71
- package/package/components/runs/RunsTable.svelte.d.ts +2 -1
- package/package/components/runs/runs-grid.css +95 -0
- package/package/components/schema/EditableSchemaDrawer.svelte +12 -12
- package/package/components/schema/FlowPropertyEditor.svelte +197 -206
- package/package/components/schema/PropertyEditor.svelte +33 -35
- package/package/components/schema/SchemaFormDND.svelte.d.ts +2 -2
- package/package/components/search/GlobalSearchModal.svelte +8 -1
- package/package/components/select/DraggableTags.svelte.d.ts +17 -7
- package/package/components/select/MultiSelect.svelte.d.ts +21 -11
- package/package/components/select/Select.svelte +2 -1
- package/package/components/select/Select.svelte.d.ts +25 -13
- package/package/components/select/SelectDropdown.svelte.d.ts +14 -7
- package/package/components/settings/TokenDisplay.svelte +1 -1
- package/package/components/sidebar/OperatorMenu.svelte +5 -0
- package/package/components/sidebar/SidebarContent.svelte +48 -2
- package/package/components/sidebar/WorkspaceMenu.svelte +116 -17
- package/package/components/toast.js +6 -3
- package/package/components/triggers/AddTriggersButton.svelte +7 -6
- package/package/components/triggers/CaptureWrapper.svelte +19 -3
- package/package/components/triggers/TriggerLabel.svelte +8 -0
- package/package/components/triggers/TriggerTokens.svelte +1 -1
- package/package/components/triggers/TriggersEditor.svelte +9 -5
- package/package/components/triggers/TriggersTable.svelte +2 -2
- package/package/components/triggers/TriggersWrapper.svelte +16 -5
- package/package/components/triggers/TriggersWrapper.svelte.d.ts +3 -19
- package/package/components/{details/EmailTriggerCaptures.svelte → triggers/email/DefaultEmailCapture.svelte} +5 -5
- package/package/components/{details/EmailTriggerCaptures.svelte.d.ts → triggers/email/DefaultEmailCapture.svelte.d.ts} +4 -4
- package/package/components/{details/EmailTriggerConfigSection.svelte → triggers/email/DefaultEmailConfigSection.svelte} +24 -14
- package/package/components/triggers/email/DefaultEmailConfigSection.svelte.d.ts +13 -0
- package/package/components/triggers/email/DefaultEmailPanel.svelte +71 -0
- package/package/components/triggers/email/DefaultEmailPanel.svelte.d.ts +11 -0
- package/package/components/triggers/email/EmailCapture.svelte +39 -0
- package/package/components/triggers/email/EmailCapture.svelte.d.ts +43 -0
- package/package/components/triggers/email/EmailTriggerEditor.svelte +20 -0
- package/package/components/triggers/email/EmailTriggerEditor.svelte.d.ts +11 -0
- package/package/components/triggers/email/EmailTriggerEditorConfigSection.svelte +133 -0
- package/package/components/triggers/email/EmailTriggerEditorConfigSection.svelte.d.ts +14 -0
- package/package/components/triggers/email/EmailTriggerEditorInner.svelte +335 -0
- package/package/components/triggers/email/EmailTriggerEditorInner.svelte.d.ts +22 -0
- package/package/components/triggers/email/EmailTriggerPanel.svelte +61 -0
- package/package/components/triggers/email/EmailTriggerPanel.svelte.d.ts +14 -0
- package/package/components/triggers/email/utils.d.ts +4 -0
- package/package/components/triggers/email/utils.js +52 -0
- package/package/components/triggers/http/RouteEditorConfigSection.svelte +1 -1
- package/package/components/triggers/http/utils.js +1 -1
- package/package/components/triggers/triggers.svelte.d.ts +1 -0
- package/package/components/triggers/triggers.svelte.js +24 -2
- package/package/components/triggers/utils.js +19 -5
- package/package/components/triggers.d.ts +1 -1
- package/package/components/triggers.js +2 -0
- package/package/components/wizards/AgGridWizard.svelte +85 -80
- package/package/components/workspaceSettings/AISettings.svelte +74 -22
- package/package/components/workspaceSettings/AISettings.svelte.d.ts +2 -1
- package/package/components/workspaceSettings/CreateWorkspace.svelte +395 -0
- package/package/components/workspaceSettings/CreateWorkspace.svelte.d.ts +6 -0
- package/package/components/workspaceSettings/DucklakeSettings.svelte +3 -1
- package/package/components/workspaceSettings/GitSyncFilterSettings.svelte +1 -1
- package/package/components/workspaceSettings/StorageSettings.svelte +69 -48
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +142 -3
- package/package/gen/schemas.gen.js +144 -3
- package/package/gen/services.gen.d.ts +129 -1
- package/package/gen/services.gen.js +267 -1
- package/package/gen/types.gen.d.ts +434 -8
- package/package/hubPaths.json +4 -2
- package/package/infer.js +1 -1
- package/package/keyboardChain.d.ts +5 -0
- package/package/keyboardChain.js +40 -0
- package/package/services/JobManager.js +2 -2
- package/package/stores.d.ts +3 -1
- package/package/stores.js +8 -5
- package/package/utils/workspaceHierarchy.d.ts +27 -0
- package/package/utils/workspaceHierarchy.js +101 -0
- package/package/utils.d.ts +6 -3
- package/package/utils.js +30 -15
- package/package/workspace_settings.js +2 -3
- package/package.json +9 -11
- package/package/components/DynSelect.svelte.d.ts +0 -11
- package/package/components/ObjectTypeNarrowing.svelte +0 -18
- package/package/components/ObjectTypeNarrowing.svelte.d.ts +0 -22
- package/package/components/details/DetailPageTriggerPanel.svelte +0 -121
- package/package/components/details/DetailPageTriggerPanel.svelte.d.ts +0 -20
- package/package/components/details/EmailTriggerConfigSection.svelte.d.ts +0 -12
- package/package/components/details/EmailTriggerPanel.svelte +0 -76
- package/package/components/details/EmailTriggerPanel.svelte.d.ts +0 -26
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { type Snippet } from 'svelte';
|
|
2
2
|
import { type ProcessedItem } from './utils.svelte';
|
|
3
|
-
declare
|
|
3
|
+
declare function $$render<Item extends {
|
|
4
4
|
label?: string;
|
|
5
5
|
value: any;
|
|
6
6
|
subtitle?: string;
|
|
7
|
-
}> {
|
|
8
|
-
props
|
|
9
|
-
items?: Item[]
|
|
7
|
+
}>(): {
|
|
8
|
+
props: {
|
|
9
|
+
items?: Item[];
|
|
10
10
|
value: Item["value"] | undefined;
|
|
11
11
|
placeholder?: string;
|
|
12
12
|
class?: string;
|
|
@@ -23,18 +23,30 @@ declare class __sveltets_Render<Item extends {
|
|
|
23
23
|
createText?: string;
|
|
24
24
|
noItemsMsg?: string;
|
|
25
25
|
open?: boolean;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
26
|
+
id?: string;
|
|
27
|
+
groupBy?: (item: Item) => string;
|
|
28
|
+
sortBy?: (a: Item, b: Item) => number;
|
|
29
|
+
onFocus?: () => void;
|
|
30
|
+
onBlur?: () => void;
|
|
31
|
+
onClear?: () => void;
|
|
32
|
+
onCreateItem?: (value: string) => void;
|
|
32
33
|
startSnippet?: Snippet<[{
|
|
33
34
|
item: ProcessedItem<Item["value"]>;
|
|
34
|
-
}]
|
|
35
|
+
}]>;
|
|
35
36
|
};
|
|
36
|
-
|
|
37
|
-
|
|
37
|
+
exports: {};
|
|
38
|
+
bindings: "value" | "open" | "filterText";
|
|
39
|
+
slots: {};
|
|
40
|
+
events: {};
|
|
41
|
+
};
|
|
42
|
+
declare class __sveltets_Render<Item extends {
|
|
43
|
+
label?: string;
|
|
44
|
+
value: any;
|
|
45
|
+
subtitle?: string;
|
|
46
|
+
}> {
|
|
47
|
+
props(): ReturnType<typeof $$render<Item>>['props'];
|
|
48
|
+
events(): ReturnType<typeof $$render<Item>>['events'];
|
|
49
|
+
slots(): ReturnType<typeof $$render<Item>>['slots'];
|
|
38
50
|
bindings(): "value" | "open" | "filterText";
|
|
39
51
|
exports(): {};
|
|
40
52
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { type Snippet } from 'svelte';
|
|
2
2
|
import type { ProcessedItem } from './utils.svelte';
|
|
3
|
-
declare
|
|
4
|
-
props
|
|
5
|
-
processedItems?: ProcessedItem<T>[]
|
|
3
|
+
declare function $$render<T>(): {
|
|
4
|
+
props: {
|
|
5
|
+
processedItems?: ProcessedItem<T>[];
|
|
6
6
|
value: T | undefined;
|
|
7
7
|
filterText?: string;
|
|
8
8
|
listAutoWidth?: Boolean;
|
|
@@ -13,14 +13,21 @@ declare class __sveltets_Render<T> {
|
|
|
13
13
|
class?: string;
|
|
14
14
|
ulClass?: string;
|
|
15
15
|
header?: Snippet;
|
|
16
|
-
getInputRect?: (
|
|
16
|
+
getInputRect?: () => DOMRect;
|
|
17
17
|
onSelectValue: (item: ProcessedItem<T>) => void;
|
|
18
18
|
startSnippet?: Snippet<[{
|
|
19
19
|
item: ProcessedItem<T>;
|
|
20
|
-
}]
|
|
20
|
+
}]>;
|
|
21
21
|
};
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
exports: {};
|
|
23
|
+
bindings: "";
|
|
24
|
+
slots: {};
|
|
25
|
+
events: {};
|
|
26
|
+
};
|
|
27
|
+
declare class __sveltets_Render<T> {
|
|
28
|
+
props(): ReturnType<typeof $$render<T>>['props'];
|
|
29
|
+
events(): ReturnType<typeof $$render<T>>['events'];
|
|
30
|
+
slots(): ReturnType<typeof $$render<T>>['slots'];
|
|
24
31
|
bindings(): "";
|
|
25
32
|
exports(): {};
|
|
26
33
|
}
|
|
@@ -3,7 +3,7 @@ import { Clipboard } from 'lucide-svelte';
|
|
|
3
3
|
import Alert from '../common/alert/Alert.svelte';
|
|
4
4
|
let { token, mcpUrl, title, onCopy } = $props();
|
|
5
5
|
function handleCopyClick() {
|
|
6
|
-
copyToClipboard(token);
|
|
6
|
+
copyToClipboard(mcpUrl || token);
|
|
7
7
|
onCopy?.();
|
|
8
8
|
}
|
|
9
9
|
const displayTitle = $derived(title || (mcpUrl ? 'MCP URL Generated Successfully' : 'Token Created Successfully'));
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script lang="ts">import MenuLink from './MenuLink.svelte';
|
|
2
2
|
import { superadmin, usedTriggerKinds, userStore, workspaceStore, isCriticalAlertsUIOpen, enterpriseLicense, devopsRole } from '../../stores';
|
|
3
3
|
import { SIDEBAR_SHOW_SCHEDULES } from '../../consts';
|
|
4
|
-
import { BookOpen, Bot, Boxes, Calendar, DollarSign, Eye, Logs, FolderCog, FolderOpen, Github, HelpCircle, Home, LogOut, Newspaper, Play, Route, ServerCog, Settings, UserCog, Plus, Unplug, AlertCircle, Database, Pyramid } from 'lucide-svelte';
|
|
4
|
+
import { BookOpen, Bot, Boxes, Calendar, DollarSign, Eye, Logs, FolderCog, FolderOpen, Github, HelpCircle, Home, LogOut, Newspaper, Play, Route, ServerCog, Settings, UserCog, Plus, Unplug, AlertCircle, Database, Pyramid, Trash2, MailIcon } from 'lucide-svelte';
|
|
5
5
|
import UserMenu from './UserMenu.svelte';
|
|
6
6
|
import DiscordIcon from '../icons/brands/Discord.svelte';
|
|
7
7
|
import { WorkspaceService } from '../../gen';
|
|
@@ -28,6 +28,12 @@ async function leaveWorkspace() {
|
|
|
28
28
|
clearStores();
|
|
29
29
|
goto('/user/workspaces');
|
|
30
30
|
}
|
|
31
|
+
async function deleteFork() {
|
|
32
|
+
await WorkspaceService.deleteWorkspace({ workspace: $workspaceStore ?? '' });
|
|
33
|
+
sendUserToast('You deleted the workspace');
|
|
34
|
+
clearStores();
|
|
35
|
+
goto('/user/workspaces');
|
|
36
|
+
}
|
|
31
37
|
let hasNewChangelogs = $state(false);
|
|
32
38
|
let recentChangelogs = $state([]);
|
|
33
39
|
let lastOpened = localStorage.getItem('changelogsLastOpened');
|
|
@@ -85,6 +91,7 @@ const thirdMenuLinks = [
|
|
|
85
91
|
];
|
|
86
92
|
let { numUnacknowledgedCriticalAlerts = 0, isCollapsed = false } = $props();
|
|
87
93
|
let leaveWorkspaceModal = $state(false);
|
|
94
|
+
let deleteWorkspaceForkModal = $state(false);
|
|
88
95
|
function computeAllNotificationsCount(menuItems) {
|
|
89
96
|
let count = 0;
|
|
90
97
|
for (const menuItem of menuItems) {
|
|
@@ -205,6 +212,15 @@ let defaultExtraTriggerLinks = $derived([
|
|
|
205
212
|
kind: 'mqtt',
|
|
206
213
|
aiId: 'sidebar-menu-link-mqtt',
|
|
207
214
|
aiDescription: 'Button to navigate to MQTT triggers'
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
label: 'Email',
|
|
218
|
+
href: '/email_triggers',
|
|
219
|
+
icon: MailIcon,
|
|
220
|
+
disabled: $userStore?.operator,
|
|
221
|
+
kind: 'email',
|
|
222
|
+
aiId: 'sidebar-menu-link-email',
|
|
223
|
+
aiDescription: 'Button to navigate to Email triggers'
|
|
208
224
|
}
|
|
209
225
|
]);
|
|
210
226
|
let triggerMenuLinks = $derived([
|
|
@@ -278,7 +294,19 @@ let secondaryMenuLinks = $derived([
|
|
|
278
294
|
faIcon: undefined
|
|
279
295
|
}
|
|
280
296
|
]
|
|
281
|
-
: [])
|
|
297
|
+
: []),
|
|
298
|
+
...($workspaceStore?.startsWith("wm-fork")
|
|
299
|
+
? [
|
|
300
|
+
{
|
|
301
|
+
label: 'Delete Forked Workspace',
|
|
302
|
+
action: () => {
|
|
303
|
+
deleteWorkspaceForkModal = true;
|
|
304
|
+
},
|
|
305
|
+
icon: Trash2,
|
|
306
|
+
faIcon: undefined
|
|
307
|
+
}
|
|
308
|
+
]
|
|
309
|
+
: []),
|
|
282
310
|
],
|
|
283
311
|
disabled: $userStore?.operator
|
|
284
312
|
},
|
|
@@ -572,3 +600,21 @@ let secondaryMenuLinks = $derived([
|
|
|
572
600
|
<span>Are you sure you want to leave this workspace?</span>
|
|
573
601
|
</div>
|
|
574
602
|
</ConfirmationModal>
|
|
603
|
+
|
|
604
|
+
{#if $workspaceStore?.startsWith("wm-fork-")}
|
|
605
|
+
<ConfirmationModal
|
|
606
|
+
open={deleteWorkspaceForkModal}
|
|
607
|
+
title="Delete forked workspace"
|
|
608
|
+
confirmationText="Remove"
|
|
609
|
+
on:canceled={() => {
|
|
610
|
+
deleteWorkspaceForkModal = false
|
|
611
|
+
}}
|
|
612
|
+
on:confirmed={() => {
|
|
613
|
+
deleteFork()
|
|
614
|
+
}}
|
|
615
|
+
>
|
|
616
|
+
<div class="flex flex-col w-full space-y-4">
|
|
617
|
+
<span>Are you sure you want to delete this workspace fork? (deleting {$workspaceStore})</span>
|
|
618
|
+
</div>
|
|
619
|
+
</ConfirmationModal>
|
|
620
|
+
{/if}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script lang="ts">import { isPremiumStore, superadmin, userStore, userWorkspaces, workspaceStore, workspaceUsageStore, workspaceColor } from '../../stores';
|
|
2
|
-
import { Building, Plus, Settings } from 'lucide-svelte';
|
|
2
|
+
import { Building, Plus, Settings, GitFork } from 'lucide-svelte';
|
|
3
3
|
import MenuButton from './MenuButton.svelte';
|
|
4
4
|
import { Menu, MenuItem } from '../meltComponents';
|
|
5
5
|
import { goto } from '../../navigation';
|
|
@@ -11,6 +11,13 @@ import { enterpriseLicense } from '../../stores';
|
|
|
11
11
|
import { isCloudHosted } from '../../cloud';
|
|
12
12
|
import { workspaceAIClients } from '../copilot/lib';
|
|
13
13
|
import { twMerge } from 'tailwind-merge';
|
|
14
|
+
import { buildWorkspaceHierarchy } from '../../utils/workspaceHierarchy';
|
|
15
|
+
function removePrefix(str, prefix) {
|
|
16
|
+
if (str.startsWith(prefix)) {
|
|
17
|
+
return str.substring(prefix.length);
|
|
18
|
+
}
|
|
19
|
+
return str;
|
|
20
|
+
}
|
|
14
21
|
let { isCollapsed = false, createMenu, strictWorkspaceSelect = false } = $props();
|
|
15
22
|
async function toggleSwitchWorkspace(id) {
|
|
16
23
|
if ($workspaceStore === id) {
|
|
@@ -37,24 +44,79 @@ async function toggleSwitchWorkspace(id) {
|
|
|
37
44
|
await goto('/');
|
|
38
45
|
}
|
|
39
46
|
}
|
|
47
|
+
// Helper function to check if a workspace is forked
|
|
48
|
+
function isForkedWorkspace(workspaceId) {
|
|
49
|
+
if (!$userWorkspaces)
|
|
50
|
+
return false;
|
|
51
|
+
return $userWorkspaces.some((w) => w.id === workspaceId && w.parent_workspace_id != null);
|
|
52
|
+
}
|
|
53
|
+
function getForkedWorkspace(workspaceId) {
|
|
54
|
+
if (!$userWorkspaces)
|
|
55
|
+
return undefined;
|
|
56
|
+
return $userWorkspaces.find((w) => w.id === workspaceId && w.parent_workspace_id != null);
|
|
57
|
+
}
|
|
58
|
+
function getParentWorkspace(parentId) {
|
|
59
|
+
if (!$userWorkspaces)
|
|
60
|
+
return undefined;
|
|
61
|
+
return $userWorkspaces.find((w) => w.id === parentId);
|
|
62
|
+
}
|
|
63
|
+
// Group workspaces into parent-child hierarchy using Svelte 5 derived and the new utility
|
|
64
|
+
const groupedWorkspaces = $derived(() => {
|
|
65
|
+
if (!$userWorkspaces)
|
|
66
|
+
return [];
|
|
67
|
+
return buildWorkspaceHierarchy($userWorkspaces);
|
|
68
|
+
});
|
|
40
69
|
</script>
|
|
41
70
|
|
|
71
|
+
{#if isForkedWorkspace($workspaceStore ?? '') && !isCollapsed}
|
|
72
|
+
{@const forkedWorkspace = getForkedWorkspace($workspaceStore ?? '')}
|
|
73
|
+
{@const parentWorkspace = forkedWorkspace
|
|
74
|
+
? getParentWorkspace(forkedWorkspace.parent_workspace_id!)
|
|
75
|
+
: null}
|
|
76
|
+
<Menu {createMenu} usePointerDownOutside>
|
|
77
|
+
{#snippet triggr({ trigger })}
|
|
78
|
+
<div
|
|
79
|
+
class="group flex items-center px-2 py-2 font-light rounded-md h-8 gap-3 w-full text-xs"
|
|
80
|
+
>
|
|
81
|
+
<Building size={12} class="text-tertiary" />
|
|
82
|
+
<span class="text-xs text-tertiary"> {parentWorkspace?.name ?? ''} </span>
|
|
83
|
+
</div>
|
|
84
|
+
{/snippet}
|
|
85
|
+
</Menu>
|
|
86
|
+
{/if}
|
|
42
87
|
<Menu {createMenu} usePointerDownOutside>
|
|
43
88
|
{#snippet triggr({ trigger })}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
89
|
+
{@const forkedWorkspace = getForkedWorkspace($workspaceStore ?? '')}
|
|
90
|
+
{@const parentWorkspace = forkedWorkspace
|
|
91
|
+
? getParentWorkspace(forkedWorkspace.parent_workspace_id!)
|
|
92
|
+
: null}
|
|
93
|
+
{#if forkedWorkspace && parentWorkspace}
|
|
94
|
+
<div class={isCollapsed ? '' : 'pl-6'}>
|
|
95
|
+
<MenuButton
|
|
96
|
+
class="!text-xs"
|
|
97
|
+
icon={GitFork}
|
|
98
|
+
label={removePrefix($workspaceStore ?? '', 'wm-fork-')}
|
|
99
|
+
{isCollapsed}
|
|
100
|
+
color={$workspaceColor}
|
|
101
|
+
{trigger}
|
|
102
|
+
/>
|
|
103
|
+
</div>
|
|
104
|
+
{:else}
|
|
105
|
+
<MenuButton
|
|
106
|
+
class="!text-xs"
|
|
107
|
+
icon={Building}
|
|
108
|
+
label={$workspaceStore ?? ''}
|
|
109
|
+
{isCollapsed}
|
|
110
|
+
color={$workspaceColor}
|
|
111
|
+
{trigger}
|
|
112
|
+
/>
|
|
113
|
+
{/if}
|
|
52
114
|
{/snippet}
|
|
53
115
|
|
|
54
116
|
{#snippet children({ item })}
|
|
55
117
|
<div class="divide-y" role="none">
|
|
56
118
|
<div class="py-1">
|
|
57
|
-
{#each
|
|
119
|
+
{#each groupedWorkspaces() as { workspace, depth, isForked, parentName }}
|
|
58
120
|
<MenuItem
|
|
59
121
|
class={twMerge(
|
|
60
122
|
'text-xs min-w-0 w-full overflow-hidden flex flex-col py-1.5',
|
|
@@ -68,13 +130,37 @@ async function toggleSwitchWorkspace(id) {
|
|
|
68
130
|
{item}
|
|
69
131
|
>
|
|
70
132
|
<div class="flex items-center justify-between min-w-0 w-full">
|
|
71
|
-
<div
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
133
|
+
<div
|
|
134
|
+
class={twMerge('flex items-center gap-2 min-w-0', 'pl-4')}
|
|
135
|
+
style:padding-left={`${4 + depth * 12}px`}
|
|
136
|
+
>
|
|
137
|
+
{#if isForked}
|
|
138
|
+
<GitFork size={12} class="text-tertiary flex-shrink-0" />
|
|
139
|
+
{:else}
|
|
140
|
+
<Building size={12} />
|
|
141
|
+
{/if}
|
|
142
|
+
<div class="min-w-0 flex-1">
|
|
143
|
+
<div
|
|
144
|
+
class={twMerge(
|
|
145
|
+
'truncate text-left text-[1.2em]',
|
|
146
|
+
isForked ? 'text-secondary' : 'text-primary'
|
|
147
|
+
)}
|
|
148
|
+
>
|
|
149
|
+
{workspace.name}
|
|
150
|
+
</div>
|
|
151
|
+
<div
|
|
152
|
+
class={twMerge(
|
|
153
|
+
'font-mono text-2xs whitespace-nowrap truncate text-left',
|
|
154
|
+
isForked ? 'text-tertiary opacity-75' : 'text-tertiary'
|
|
155
|
+
)}
|
|
156
|
+
>
|
|
157
|
+
{workspace.id}
|
|
158
|
+
</div>
|
|
159
|
+
{#if isForked && parentName}
|
|
160
|
+
<div class="text-tertiary text-2xs truncate text-left pl-2 min-h-[1rem]">
|
|
161
|
+
Fork of {parentName}
|
|
162
|
+
</div>
|
|
163
|
+
{/if}
|
|
78
164
|
</div>
|
|
79
165
|
</div>
|
|
80
166
|
{#if workspace.color}
|
|
@@ -100,6 +186,19 @@ async function toggleSwitchWorkspace(id) {
|
|
|
100
186
|
</a>
|
|
101
187
|
</div>
|
|
102
188
|
{/if}
|
|
189
|
+
{#if !strictWorkspaceSelect}
|
|
190
|
+
<div class="py-1" role="none">
|
|
191
|
+
<a
|
|
192
|
+
href="{base}/user/fork_workspace"
|
|
193
|
+
class="text-primary px-4 py-2 text-xs hover:bg-surface-hover hover:text-primary flex flex-flow gap-2"
|
|
194
|
+
role="menuitem"
|
|
195
|
+
tabindex="-1"
|
|
196
|
+
>
|
|
197
|
+
<GitFork size={16} />
|
|
198
|
+
Fork current workspace
|
|
199
|
+
</a>
|
|
200
|
+
</div>
|
|
201
|
+
{/if}
|
|
103
202
|
{#if !strictWorkspaceSelect}
|
|
104
203
|
<div class="py-1" role="none">
|
|
105
204
|
<MenuItem
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
//regex that match path starting with u/ or f/ and with at least 2 /
|
|
2
2
|
const pathRegex = /\b(u|f)\/[^\/\s]+\/[^\/\s]+\b/g;
|
|
3
3
|
export function processMessage(message) {
|
|
4
|
-
|
|
5
|
-
?
|
|
6
|
-
:
|
|
4
|
+
let msg = !message
|
|
5
|
+
? 'Error without message'
|
|
6
|
+
: typeof message != 'string'
|
|
7
|
+
? JSON.stringify(message, null, 2)
|
|
8
|
+
: message;
|
|
9
|
+
return msg.replaceAll(pathRegex, (path) => {
|
|
7
10
|
return `<span class="bg-surface-secondary p-1 text-xs font-mono whitespace-nowrap rounded-md">${path}</span>`;
|
|
8
11
|
});
|
|
9
12
|
}
|
|
@@ -3,7 +3,7 @@ import DropdownV2 from '../DropdownV2.svelte';
|
|
|
3
3
|
import { SchedulePollIcon } from '../icons';
|
|
4
4
|
import { isCloudHosted } from '../../cloud';
|
|
5
5
|
import { CloudOff } from 'lucide-svelte';
|
|
6
|
-
let { setDropdownWidthToButtonWidth = false, children, class: className,
|
|
6
|
+
let { setDropdownWidthToButtonWidth = false, children, class: className, placement = 'bottom', isEditor = false, onAddDraftTrigger, onAddScheduledPoll, onClose } = $props();
|
|
7
7
|
let dropdown;
|
|
8
8
|
const cloudHosted = isCloudHosted();
|
|
9
9
|
// Dropdown items for adding new triggers
|
|
@@ -56,10 +56,15 @@ const addTriggerItems = [
|
|
|
56
56
|
icon: triggerIconMap.gcp,
|
|
57
57
|
extra: cloudHosted ? extra : undefined
|
|
58
58
|
},
|
|
59
|
+
{
|
|
60
|
+
displayName: 'Email',
|
|
61
|
+
action: () => onAddDraftTrigger?.('email'),
|
|
62
|
+
icon: triggerIconMap.email,
|
|
63
|
+
extra: cloudHosted ? extra : undefined
|
|
64
|
+
},
|
|
59
65
|
{
|
|
60
66
|
displayName: 'Scheduled Poll',
|
|
61
67
|
action: (e) => {
|
|
62
|
-
e.preventDefault();
|
|
63
68
|
onAddDraftTrigger?.('poll');
|
|
64
69
|
onAddScheduledPoll?.();
|
|
65
70
|
},
|
|
@@ -89,7 +94,6 @@ export function close() {
|
|
|
89
94
|
class={className}
|
|
90
95
|
customWidth={setDropdownWidthToButtonWidth ? triggersButtonWidth : undefined}
|
|
91
96
|
usePointerDownOutside
|
|
92
|
-
customMenu={!!triggerScriptPicker}
|
|
93
97
|
on:close={() => onClose?.()}
|
|
94
98
|
>
|
|
95
99
|
{#snippet buttonReplacement()}
|
|
@@ -97,7 +101,4 @@ export function close() {
|
|
|
97
101
|
{@render children?.()}
|
|
98
102
|
</div>
|
|
99
103
|
{/snippet}
|
|
100
|
-
{#snippet menu()}
|
|
101
|
-
{@render triggerScriptPicker?.()}
|
|
102
|
-
{/snippet}
|
|
103
104
|
</DropdownV2>
|
|
@@ -4,7 +4,7 @@ import { onDestroy, untrack } from 'svelte';
|
|
|
4
4
|
import { sendUserToast, sleep } from '../../utils';
|
|
5
5
|
import RouteCapture from './http/RouteCapture.svelte';
|
|
6
6
|
import WebhooksCapture from './webhook/WebhooksCapture.svelte';
|
|
7
|
-
import
|
|
7
|
+
import DefaultEmailCapture from './email/DefaultEmailCapture.svelte';
|
|
8
8
|
import WebsocketCapture from './websocket/WebsocketCapture.svelte';
|
|
9
9
|
import PostgresCapture from './postgres/PostgresCapture.svelte';
|
|
10
10
|
import KafkaCapture from './kafka/KafkaCapture.svelte';
|
|
@@ -12,6 +12,7 @@ import NatsCapture from './nats/NatsCapture.svelte';
|
|
|
12
12
|
import MqttCapture from './mqtt/MqttCapture.svelte';
|
|
13
13
|
import SqsCapture from './sqs/SqsCapture.svelte';
|
|
14
14
|
import GcpCapture from './gcp/GcpCapture.svelte';
|
|
15
|
+
import EmailCapture from './email/EmailCapture.svelte';
|
|
15
16
|
let { isFlow, path, hasPreprocessor, canHavePreprocessor, captureType = 'webhook', data = {}, connectionInfo = $bindable(undefined), args = {}, isValid = false, triggerDeployed = false } = $props();
|
|
16
17
|
let captureLoading = $state(false);
|
|
17
18
|
let captureActive = $state(false);
|
|
@@ -195,8 +196,8 @@ $effect(() => {
|
|
|
195
196
|
on:captureToggle={handleCapture}
|
|
196
197
|
on:testWithArgs
|
|
197
198
|
/>
|
|
198
|
-
{:else if captureType === '
|
|
199
|
-
<
|
|
199
|
+
{:else if captureType === 'default_email'}
|
|
200
|
+
<DefaultEmailCapture
|
|
200
201
|
{path}
|
|
201
202
|
{isFlow}
|
|
202
203
|
emailDomain={data?.emailDomain}
|
|
@@ -280,6 +281,21 @@ $effect(() => {
|
|
|
280
281
|
on:captureToggle={handleCapture}
|
|
281
282
|
on:testWithArgs
|
|
282
283
|
/>
|
|
284
|
+
{:else if captureType === 'email'}
|
|
285
|
+
<EmailCapture
|
|
286
|
+
local_part={args.local_part}
|
|
287
|
+
emailDomain={data?.emailDomain}
|
|
288
|
+
{isValid}
|
|
289
|
+
{captureInfo}
|
|
290
|
+
{hasPreprocessor}
|
|
291
|
+
{isFlow}
|
|
292
|
+
{captureLoading}
|
|
293
|
+
on:applyArgs
|
|
294
|
+
on:updateSchema
|
|
295
|
+
on:addPreprocessor
|
|
296
|
+
on:captureToggle={handleCapture}
|
|
297
|
+
on:testWithArgs
|
|
298
|
+
/>
|
|
283
299
|
{/if}
|
|
284
300
|
</div>
|
|
285
301
|
{/key}
|
|
@@ -15,6 +15,14 @@ let label = $derived.by(() => getTriggerLabel(trigger));
|
|
|
15
15
|
{label}
|
|
16
16
|
</span>
|
|
17
17
|
|
|
18
|
+
{#if trigger.type === 'default_email'}
|
|
19
|
+
<span
|
|
20
|
+
class="ml-2 bg-blue-50 dark:bg-blue-900/40 px-1.5 py-0.5 rounded text-xs text-blue-700 dark:text-blue-100 whitespace-nowrap"
|
|
21
|
+
>
|
|
22
|
+
Default
|
|
23
|
+
</span>
|
|
24
|
+
{/if}
|
|
25
|
+
|
|
18
26
|
{#if trigger.isPrimary}
|
|
19
27
|
<span
|
|
20
28
|
class="ml-2 bg-blue-50 dark:bg-blue-900/40 px-1.5 py-0.5 rounded text-xs text-blue-700 dark:text-blue-100 whitespace-nowrap"
|
|
@@ -14,7 +14,7 @@ export async function listTokens() {
|
|
|
14
14
|
? await FlowService.listTokensOfFlow({ workspace: $workspaceStore, path })
|
|
15
15
|
: await ScriptService.listTokensOfScript({ workspace: $workspaceStore, path })).filter((x) => x.label && x.label.startsWith(labelPrefix + '-'));
|
|
16
16
|
if (labelPrefix == 'email') {
|
|
17
|
-
$triggersCount = { ...($triggersCount ?? {}),
|
|
17
|
+
$triggersCount = { ...($triggersCount ?? {}), default_email_count: tokens?.length };
|
|
18
18
|
}
|
|
19
19
|
else {
|
|
20
20
|
$triggersCount = { ...($triggersCount ?? {}), webhook_count: tokens?.length };
|
|
@@ -13,7 +13,7 @@ import Button from '../common/button/Button.svelte';
|
|
|
13
13
|
import TriggersWrapperV2 from './TriggersWrapper.svelte';
|
|
14
14
|
import { triggerTypeToCaptureKind, CLOUD_DISABLED_TRIGGER_TYPES } from './utils';
|
|
15
15
|
import { isCloudHosted } from '../../cloud';
|
|
16
|
-
import { ScheduleService, WebsocketTriggerService, PostgresTriggerService, KafkaTriggerService, NatsTriggerService, MqttTriggerService, HttpTriggerService, GcpTriggerService, SqsTriggerService } from '../../gen';
|
|
16
|
+
import { ScheduleService, WebsocketTriggerService, PostgresTriggerService, KafkaTriggerService, NatsTriggerService, MqttTriggerService, HttpTriggerService, GcpTriggerService, SqsTriggerService, EmailTriggerService } from '../../gen';
|
|
17
17
|
import { sendUserToast } from '../../toast';
|
|
18
18
|
let { noEditor, newItem = false, currentPath, fakeInitialPath = '', hash = undefined, args = {}, initialPath, isFlow, canHavePreprocessor = false, hasPreprocessor = false, isDeployed = false, schema = undefined, noCapture = false, isEditor = true, onDeployTrigger } = $props();
|
|
19
19
|
let config = $state({});
|
|
@@ -47,7 +47,8 @@ async function deleteDeployedTrigger(triggerIndex) {
|
|
|
47
47
|
gcp: () => GcpTriggerService.deleteGcpTrigger,
|
|
48
48
|
sqs: () => SqsTriggerService.deleteSqsTrigger,
|
|
49
49
|
mqtt: () => MqttTriggerService.deleteMqttTrigger,
|
|
50
|
-
http: () => HttpTriggerService.deleteHttpTrigger
|
|
50
|
+
http: () => HttpTriggerService.deleteHttpTrigger,
|
|
51
|
+
email: () => EmailTriggerService.deleteEmailTrigger
|
|
51
52
|
};
|
|
52
53
|
const deleteHandler = deleteHandlers[triggerType];
|
|
53
54
|
if (deleteHandler && deletingTrigger !== triggerIndex) {
|
|
@@ -114,6 +115,9 @@ async function handleUpdate(trigger, path) {
|
|
|
114
115
|
else if (triggerType === 'http') {
|
|
115
116
|
await triggersState.fetchHttpTriggers(triggersCount, $workspaceStore, currentPath, isFlow, $userStore);
|
|
116
117
|
}
|
|
118
|
+
else if (triggerType === 'email') {
|
|
119
|
+
await triggersState.fetchEmailTriggers(triggersCount, $workspaceStore, currentPath, isFlow, $userStore);
|
|
120
|
+
}
|
|
117
121
|
triggersState.selectedTriggerIndex = triggersState.triggers.findIndex((t) => t.path === path && t.type === triggerType);
|
|
118
122
|
loading = false;
|
|
119
123
|
onDeployTrigger?.({ type: triggerType, id: triggerId, path: triggerPath });
|
|
@@ -155,7 +159,7 @@ const cloudDisabled = $derived(CLOUD_DISABLED_TRIGGER_TYPES.includes(triggersSta
|
|
|
155
159
|
onDeleteDraft={deleteTrigger}
|
|
156
160
|
onReset={handleResetDraft}
|
|
157
161
|
webhookToken={$triggersCount?.webhook_count}
|
|
158
|
-
emailToken={$triggersCount?.
|
|
162
|
+
emailToken={$triggersCount?.default_email_count}
|
|
159
163
|
/>
|
|
160
164
|
</div>
|
|
161
165
|
{:else}
|
|
@@ -229,8 +233,8 @@ const cloudDisabled = $derived(CLOUD_DISABLED_TRIGGER_TYPES.includes(triggersSta
|
|
|
229
233
|
onReset={() => {
|
|
230
234
|
handleResetDraft(triggersState.selectedTriggerIndex)
|
|
231
235
|
}}
|
|
232
|
-
|
|
233
|
-
emailDomain =
|
|
236
|
+
onEmailDomain={(domain) => {
|
|
237
|
+
emailDomain = domain
|
|
234
238
|
}}
|
|
235
239
|
/>
|
|
236
240
|
</div>
|
|
@@ -66,7 +66,7 @@ let loading = false;
|
|
|
66
66
|
>
|
|
67
67
|
{`${webhookToken} token${webhookToken > 1 ? 's' : ''}`}
|
|
68
68
|
</span>
|
|
69
|
-
{:else if trigger.type === '
|
|
69
|
+
{:else if trigger.type === 'default_email' && emailToken}
|
|
70
70
|
<span
|
|
71
71
|
class="ml-2 text-xs rounded-md bg-tertiary/50 group-hover:bg-primary text-primary-inverse px-1.5 py-0.5"
|
|
72
72
|
>
|
|
@@ -75,7 +75,7 @@ let loading = false;
|
|
|
75
75
|
{/if}
|
|
76
76
|
</div>
|
|
77
77
|
|
|
78
|
-
{#if !['
|
|
78
|
+
{#if !['default_email', 'webhook', 'cli'].includes(trigger.type)}
|
|
79
79
|
{#if trigger.isDraft}
|
|
80
80
|
<DeleteTriggerButton {trigger} onDelete={() => onDeleteDraft?.(index)} small />
|
|
81
81
|
{:else if !!trigger.draftConfig && !trigger.isDraft}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<script lang="ts">import RoutesPanel from './http/RoutesPanel.svelte';
|
|
2
2
|
import WebhooksPanel from './webhook/WebhooksPanel.svelte';
|
|
3
|
-
import EmailTriggerPanel from '
|
|
3
|
+
import EmailTriggerPanel from './email/EmailTriggerPanel.svelte';
|
|
4
|
+
import DefaultEmailPanel from './email/DefaultEmailPanel.svelte';
|
|
4
5
|
import SchedulePanel from '../SchedulePanel.svelte';
|
|
5
6
|
import PostgresTriggersPanel from './postgres/PostgresTriggersPanel.svelte';
|
|
6
7
|
import KafkaTriggerPanel from './kafka/KafkaTriggersPanel.svelte';
|
|
@@ -15,7 +16,7 @@ import ClipboardPanel from '../details/ClipboardPanel.svelte';
|
|
|
15
16
|
import CliHelpBox from '../CliHelpBox.svelte';
|
|
16
17
|
import TriggerLabel from './TriggerLabel.svelte';
|
|
17
18
|
import { twMerge } from 'tailwind-merge';
|
|
18
|
-
let { selectedTrigger, isFlow = false, initialPath, fakeInitialPath, currentPath, hash, small, args, newItem, schema, ...props } = $props();
|
|
19
|
+
let { selectedTrigger, isFlow = false, initialPath, fakeInitialPath, currentPath, hash, small, args, newItem, schema, onEmailDomain, ...props } = $props();
|
|
19
20
|
</script>
|
|
20
21
|
|
|
21
22
|
{#if selectedTrigger.type === 'http'}
|
|
@@ -37,14 +38,14 @@ let { selectedTrigger, isFlow = false, initialPath, fakeInitialPath, currentPath
|
|
|
37
38
|
scopes={isFlow ? [`jobs:run:flows:${currentPath}`] : [`jobs:run:scripts:${currentPath}`]}
|
|
38
39
|
{newItem}
|
|
39
40
|
/>
|
|
40
|
-
{:else if selectedTrigger.type === '
|
|
41
|
-
<
|
|
41
|
+
{:else if selectedTrigger.type === 'default_email'}
|
|
42
|
+
<DefaultEmailPanel
|
|
42
43
|
token=""
|
|
43
44
|
scopes={isFlow ? [`jobs:run:flows:${currentPath}`] : [`jobs:run:scripts:${currentPath}`]}
|
|
44
45
|
path={initialPath || fakeInitialPath}
|
|
45
46
|
{isFlow}
|
|
46
47
|
{hash}
|
|
47
|
-
|
|
48
|
+
{onEmailDomain}
|
|
48
49
|
/>
|
|
49
50
|
{:else if selectedTrigger.type === 'schedule'}
|
|
50
51
|
<SchedulePanel
|
|
@@ -119,6 +120,16 @@ let { selectedTrigger, isFlow = false, initialPath, fakeInitialPath, currentPath
|
|
|
119
120
|
{customLabel}
|
|
120
121
|
{...props}
|
|
121
122
|
/>
|
|
123
|
+
{:else if selectedTrigger.type === 'email'}
|
|
124
|
+
<EmailTriggerPanel
|
|
125
|
+
{isFlow}
|
|
126
|
+
path={initialPath || fakeInitialPath}
|
|
127
|
+
{selectedTrigger}
|
|
128
|
+
defaultValues={selectedTrigger.draftConfig ?? selectedTrigger.captureConfig ?? undefined}
|
|
129
|
+
{customLabel}
|
|
130
|
+
{onEmailDomain}
|
|
131
|
+
{...props}
|
|
132
|
+
/>
|
|
122
133
|
{:else if selectedTrigger.type === 'poll'}
|
|
123
134
|
<ScheduledPollPanel />
|
|
124
135
|
{:else if selectedTrigger.type === 'cli'}
|
|
@@ -17,24 +17,8 @@ interface Props {
|
|
|
17
17
|
onUpdate?: (path: string) => void;
|
|
18
18
|
onDelete?: () => void;
|
|
19
19
|
onReset?: () => void;
|
|
20
|
+
onEmailDomain: (domain: string) => void;
|
|
20
21
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
$$bindings?: Bindings;
|
|
24
|
-
} & Exports;
|
|
25
|
-
(internal: unknown, props: Props & {
|
|
26
|
-
$$events?: Events;
|
|
27
|
-
$$slots?: Slots;
|
|
28
|
-
}): Exports & {
|
|
29
|
-
$set?: any;
|
|
30
|
-
$on?: any;
|
|
31
|
-
};
|
|
32
|
-
z_$$bindings?: Bindings;
|
|
33
|
-
}
|
|
34
|
-
declare const TriggersWrapper: $$__sveltets_2_IsomorphicComponent<Props, {
|
|
35
|
-
'email-domain': CustomEvent<any>;
|
|
36
|
-
} & {
|
|
37
|
-
[evt: string]: CustomEvent<any>;
|
|
38
|
-
}, {}, {}, "">;
|
|
39
|
-
type TriggersWrapper = InstanceType<typeof TriggersWrapper>;
|
|
22
|
+
declare const TriggersWrapper: import("svelte").Component<Props, {}, "">;
|
|
23
|
+
type TriggersWrapper = ReturnType<typeof TriggersWrapper>;
|
|
40
24
|
export default TriggersWrapper;
|