windmill-components 1.433.0 → 1.444.0
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 +12 -16
- package/package/components/ArgInput.svelte.d.ts +1 -0
- package/package/components/AssignableTags.svelte +3 -1
- package/package/components/AssignableTags.svelte.d.ts +1 -0
- package/package/components/AuthSettings.svelte +248 -0
- package/package/components/AuthSettings.svelte.d.ts +19 -0
- package/package/components/AutoscalingConfigEditor.svelte +2 -2
- package/package/components/CronInput.svelte +2 -2
- package/package/components/DeployWorkspace.svelte +1 -1
- package/package/components/Description.svelte +9 -0
- package/package/components/Description.svelte.d.ts +18 -0
- package/package/components/Dev.svelte +18 -3
- package/package/components/DisplayResult.svelte +7 -4
- package/package/components/DisplayResult.svelte.d.ts +1 -0
- package/package/components/DropdownV2.svelte +2 -1
- package/package/components/DropdownV2.svelte.d.ts +1 -0
- package/package/components/EditableSchemaForm.svelte +2 -2
- package/package/components/Editor.svelte +9 -6
- package/package/components/Editor.svelte.d.ts +4 -2
- package/package/components/EditorBar.svelte +51 -6
- package/package/components/ErrorOrRecoveryHandler.svelte +4 -3
- package/package/components/ExecutionDuration.svelte +2 -1
- package/package/components/FieldHeader.svelte +9 -1
- package/package/components/FieldHeader.svelte.d.ts +1 -0
- package/package/components/FlowBuilder.svelte +16 -3
- package/package/components/FlowGraphViewer.svelte +2 -0
- package/package/components/FlowPreviewContent.svelte +6 -15
- package/package/components/FlowStatusViewerInner.svelte +80 -55
- package/package/components/FlowStatusViewerInner.svelte.d.ts +1 -0
- package/package/components/HighlightCode.svelte +3 -0
- package/package/components/InputTransformSchemaForm.svelte +1 -1
- package/package/components/InstanceSetting.svelte +774 -0
- package/package/components/InstanceSetting.svelte.d.ts +27 -0
- package/package/components/InstanceSettings.svelte +68 -1005
- package/package/components/InstanceSettings.svelte.d.ts +0 -4
- package/package/components/Label.svelte +16 -6
- package/package/components/Label.svelte.d.ts +3 -0
- package/package/components/Login.svelte +17 -9
- package/package/components/OAuthSetting.svelte +4 -3
- package/package/components/OauthExtraParams.svelte +1 -1
- package/package/components/OauthScopes.svelte +2 -2
- package/package/components/ObjectStoreConfigSettings.svelte +141 -128
- package/package/components/QueueMetricsDrawer.svelte +5 -5
- package/package/components/ResourceEditor.svelte +4 -0
- package/package/components/ResourceEditor.svelte.d.ts +1 -0
- package/package/components/ResourceEditorDrawer.svelte +15 -3
- package/package/components/ResourceEditorDrawer.svelte.d.ts +2 -2
- package/package/components/ResourcePicker.svelte +16 -5
- package/package/components/ResourcePicker.svelte.d.ts +1 -0
- package/package/components/ResultJobLoader.svelte.d.ts +1 -1
- package/package/components/RunPageSchedules.svelte +15 -10
- package/package/components/SavedInputs.svelte +1 -1
- package/package/components/ScheduleEditorInner.svelte +58 -27
- package/package/components/SchemaForm.svelte +7 -5
- package/package/components/SchemaForm.svelte.d.ts +1 -0
- package/package/components/ScriptBuilder.svelte +58 -5
- package/package/components/ScriptEditor.svelte +78 -40
- package/package/components/ScriptEditor.svelte.d.ts +17 -2
- package/package/components/ScriptPicker.svelte +41 -34
- package/package/components/ScriptPicker.svelte.d.ts +1 -0
- package/package/components/ScriptVersionHistory.svelte +1 -1
- package/package/components/Section.svelte +38 -35
- package/package/components/Section.svelte.d.ts +2 -0
- package/package/components/ServiceLogsInner.svelte +1 -1
- package/package/components/SimpleEditor.svelte +2 -0
- package/package/components/Subsection.svelte +52 -0
- package/package/components/Subsection.svelte.d.ts +27 -0
- package/package/components/SuperadminSettings.svelte +23 -13
- package/package/components/TemplateEditor.svelte +4 -3
- package/package/components/TestConnection.svelte +5 -0
- package/package/components/TestJobLoader.svelte +2 -1
- package/package/components/TestJobLoader.svelte.d.ts +1 -1
- package/package/components/Toggle.svelte +2 -4
- package/package/components/UserSettings.svelte +1 -1
- package/package/components/WorkerGroup.svelte +4 -4
- package/package/components/WorkerTagPicker.svelte +4 -2
- package/package/components/WorkerTagPicker.svelte.d.ts +1 -0
- package/package/components/WorkerTagSelect.svelte +2 -0
- package/package/components/WorkerTagSelect.svelte.d.ts +1 -0
- package/package/components/apps/components/display/AppDisplayComponent.svelte +2 -1
- package/package/components/apps/components/display/dbtable/utils.js +26 -1
- package/package/components/apps/components/helpers/RunnableComponent.svelte +8 -2
- package/package/components/apps/components/inputs/AppDateInput.svelte +7 -1
- package/package/components/apps/components/inputs/AppS3FileInput.svelte +1 -1
- package/package/components/apps/editor/AppEditor.svelte +5 -34
- package/package/components/apps/editor/AppEditor.svelte.d.ts +1 -0
- package/package/components/apps/editor/AppEditorBottomPanel.svelte +4 -7
- package/package/components/apps/editor/AppEditorBottomPanel.svelte.d.ts +1 -3
- package/package/components/apps/editor/AppEditorHeader.svelte +148 -58
- package/package/components/apps/editor/AppEditorHeader.svelte.d.ts +1 -0
- package/package/components/apps/editor/DeploymentHistory.svelte +1 -1
- package/package/components/apps/editor/RunnableJobPanel.svelte +6 -2
- package/package/components/apps/editor/RunnableJobPanel.svelte.d.ts +1 -0
- package/package/components/apps/editor/appUtils.d.ts +1 -0
- package/package/components/apps/editor/appUtils.js +17 -0
- package/package/components/apps/editor/component/components.d.ts +82 -81
- package/package/components/apps/editor/component/components.js +4 -3
- package/package/components/apps/editor/componentsPanel/ComponentList.svelte +1 -1
- package/package/components/apps/editor/componentsPanel/GroupList.svelte +12 -2
- package/package/components/apps/editor/contextPanel/ContextPanel.svelte +1 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte +1 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +53 -56
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte +1 -1
- package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte +3 -2
- package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +1 -1
- package/package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +16 -9
- package/package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte.d.ts +1 -0
- package/package/components/apps/inputType.d.ts +2 -2
- package/package/components/apps/types.d.ts +2 -0
- package/package/components/common/alert/ConnectionIndicator.svelte +30 -0
- package/package/components/common/alert/ConnectionIndicator.svelte.d.ts +20 -0
- package/package/components/common/alert/Notification.svelte +15 -0
- package/package/components/common/alert/Notification.svelte.d.ts +17 -0
- package/package/components/common/button/AnimatedButton.svelte +1 -1
- package/package/components/common/button/RefreshButton.svelte +30 -0
- package/package/components/common/button/RefreshButton.svelte.d.ts +18 -0
- package/package/components/common/fileDownload/FileDownload.svelte +4 -3
- package/package/components/common/fileDownload/FileDownload.svelte.d.ts +1 -0
- package/package/components/common/fileUpload/FileUpload.svelte +3 -3
- package/package/components/common/languageIcons/LanguageIcon.svelte +5 -2
- package/package/components/common/layout/List.svelte +35 -0
- package/package/components/common/layout/List.svelte.d.ts +21 -0
- package/package/components/common/layout/ListElement.svelte +3 -0
- package/package/components/common/layout/ListElement.svelte.d.ts +27 -0
- package/package/components/common/menu/MenuV2.svelte +3 -2
- package/package/components/common/menu/MenuV2.svelte.d.ts +1 -0
- package/package/components/common/modal/Modal.svelte +6 -4
- package/package/components/common/modal/Modal.svelte.d.ts +1 -0
- package/package/components/common/modal/Modal2.svelte +101 -0
- package/package/components/common/modal/Modal2.svelte.d.ts +28 -0
- package/package/components/common/popup/Popup.svelte +5 -1
- package/package/components/common/popup/Popup.svelte.d.ts +2 -0
- package/package/components/common/toggleButton-v2/ToggleButton.svelte +1 -1
- package/package/components/copilot/FlowCopilotStatus.svelte +1 -1
- package/package/components/details/ClipboardPanel.svelte +12 -2
- package/package/components/details/ClipboardPanel.svelte.d.ts +2 -0
- package/package/components/details/CopyableCodeBlock.svelte +24 -0
- package/package/components/details/CopyableCodeBlock.svelte.d.ts +19 -0
- package/package/components/details/DetailPageLayout.svelte +3 -1
- package/package/components/details/EmailTriggerConfigSection.svelte +119 -0
- package/package/components/details/EmailTriggerConfigSection.svelte.d.ts +38 -0
- package/package/components/details/EmailTriggerPanel.svelte +27 -74
- package/package/components/details/EmailTriggerPanel.svelte.d.ts +7 -1
- package/package/components/flows/FlowEditor.svelte +1 -1
- package/package/components/flows/FlowEditor.svelte.d.ts +1 -0
- package/package/components/flows/FlowHistoryInner.svelte +1 -1
- package/package/components/flows/content/BranchPredicateEditor.svelte +1 -1
- package/package/components/flows/content/FlowEditorPanel.svelte +30 -1
- package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +2 -0
- package/package/components/flows/content/FlowInput.svelte +2 -15
- package/package/components/flows/content/FlowInputs.svelte +1 -1
- package/package/components/flows/content/FlowInputsQuick.svelte +2 -2
- package/package/components/flows/content/FlowModuleComponent.svelte +9 -5
- package/package/components/flows/content/FlowModuleEarlyStop.svelte +2 -2
- package/package/components/flows/content/FlowModuleHeader.svelte +4 -1
- package/package/components/flows/content/FlowModuleSuspend.svelte +1 -1
- package/package/components/flows/content/FlowPathViewer.svelte +3 -1
- package/package/components/flows/content/FlowRetries.svelte +32 -5
- package/package/components/flows/content/FlowSettings.svelte +56 -48
- package/package/components/flows/flowStateUtils.d.ts +10 -1
- package/package/components/flows/flowStateUtils.js +23 -0
- package/package/components/flows/map/FlowModuleSchemaMap.svelte +9 -19
- package/package/components/flows/map/InsertModuleButton.svelte +3 -3
- package/package/components/flows/map/VirtualItem.svelte +29 -1
- package/package/components/flows/map/VirtualItem.svelte.d.ts +2 -0
- package/package/components/flows/pickers/TopLevelNode.svelte +2 -2
- package/package/components/flows/previousResults.js +8 -2
- package/package/components/flows/types.d.ts +1 -0
- package/package/components/graph/FlowGraphV2.svelte +16 -2
- package/package/components/graph/FlowGraphV2.svelte.d.ts +2 -0
- package/package/components/graph/graphBuilder.js +1 -0
- package/package/components/graph/renderers/nodes/InputNode.svelte +2 -0
- package/package/components/graph/renderers/nodes/InputNode.svelte.d.ts +2 -0
- package/package/components/graph/renderers/triggers/TriggersWrapper.svelte +1 -1
- package/package/components/icons/CSharpIcon.svelte +14 -0
- package/package/components/icons/CSharpIcon.svelte.d.ts +25 -0
- package/package/components/icons/GitIcon.svelte +5 -2
- package/package/components/icons/XeroIcon.svelte +24 -0
- package/package/components/icons/XeroIcon.svelte.d.ts +17 -0
- package/package/components/icons/index.d.ts +3 -1
- package/package/components/icons/index.js +4 -2
- package/package/components/instanceSettings.d.ts +3 -1
- package/package/components/instanceSettings.js +77 -69
- package/package/components/meltComponents/Popover.svelte +82 -0
- package/package/components/meltComponents/Popover.svelte.d.ts +21 -0
- package/package/components/propertyPicker/PropPicker.svelte +5 -3
- package/package/components/runs/JobLoader.svelte +5 -2
- package/package/components/runs/JobPreview.svelte +5 -5
- package/package/components/runs/RunRow.svelte +3 -4
- package/package/components/runs/RunsFilter.svelte +4 -4
- package/package/components/schema/EditableSchemaDrawer.svelte +4 -4
- package/package/components/schema/PropertyEditor.svelte +1 -1
- package/package/components/schema/SchemaFormDND.svelte +2 -0
- package/package/components/schema/SchemaFormDND.svelte.d.ts +1 -0
- package/package/components/scriptEditor/LogPanel.svelte +176 -164
- package/package/components/scriptEditor/LogPanel.svelte.d.ts +2 -0
- package/package/components/search/GlobalSearchModal.svelte +3 -3
- package/package/components/sidebar/CriticalAlertModal.svelte +155 -9
- package/package/components/sidebar/CriticalAlertModalInner.svelte +65 -212
- package/package/components/sidebar/CriticalAlertModalInner.svelte.d.ts +2 -4
- package/package/components/sidebar/CriticalAlertTable.svelte +142 -0
- package/package/components/sidebar/CriticalAlertTable.svelte.d.ts +25 -0
- package/package/components/sidebar/OperatorMenu.svelte +30 -8
- package/package/components/sidebar/SideBarNotification.svelte +3 -6
- package/package/components/sidebar/SidebarContent.svelte +5 -5
- package/package/components/sidebar/WorkspaceMenu.svelte +9 -5
- package/package/components/sidebar/WorkspaceMenu.svelte.d.ts +1 -0
- package/package/components/sidebar/changelogs.js +82 -17
- package/package/components/splitPanes/SplitPanesOrColumnOnMobile.svelte +21 -21
- package/package/components/table/AutoDataTable.svelte +1 -1
- package/package/components/table/Cell.svelte +5 -3
- package/package/components/table/Cell.svelte.d.ts +1 -0
- package/package/components/table/DataTable.svelte +65 -58
- package/package/components/table/DataTable.svelte.d.ts +2 -0
- package/package/components/table/Head.svelte +1 -1
- package/package/components/table/Row.svelte +3 -1
- package/package/components/table/Row.svelte.d.ts +1 -0
- package/package/components/toast.js +3 -1
- package/package/components/triggers/CaptureButton.svelte +77 -0
- package/package/components/triggers/CaptureButton.svelte.d.ts +16 -0
- package/package/components/triggers/CaptureIcon.svelte +17 -0
- package/package/components/triggers/CaptureIcon.svelte.d.ts +23 -0
- package/package/components/triggers/CaptureSection.svelte +76 -0
- package/package/components/triggers/CaptureSection.svelte.d.ts +42 -0
- package/package/components/triggers/CaptureTable.svelte +224 -0
- package/package/components/triggers/CaptureTable.svelte.d.ts +43 -0
- package/package/components/triggers/CaptureWrapper.svelte +237 -0
- package/package/components/triggers/CaptureWrapper.svelte.d.ts +35 -0
- package/package/components/triggers/KafkaTriggerEditor.svelte +2 -2
- package/package/components/triggers/KafkaTriggerEditor.svelte.d.ts +2 -2
- package/package/components/triggers/KafkaTriggerEditorInner.svelte +47 -119
- package/package/components/triggers/KafkaTriggerEditorInner.svelte.d.ts +2 -2
- package/package/components/triggers/KafkaTriggersConfigSection.svelte +215 -0
- package/package/components/triggers/KafkaTriggersConfigSection.svelte.d.ts +36 -0
- package/package/components/triggers/KafkaTriggersPanel.svelte +73 -45
- package/package/components/triggers/KafkaTriggersPanel.svelte.d.ts +6 -0
- package/package/components/triggers/RouteEditor.svelte +2 -2
- package/package/components/triggers/RouteEditor.svelte.d.ts +2 -2
- package/package/components/triggers/RouteEditorConfigSection.svelte +162 -0
- package/package/components/triggers/RouteEditorConfigSection.svelte.d.ts +43 -0
- package/package/components/triggers/RouteEditorInner.svelte +98 -163
- package/package/components/triggers/RouteEditorInner.svelte.d.ts +2 -2
- package/package/components/triggers/RoutesPanel.svelte +69 -54
- package/package/components/triggers/RoutesPanel.svelte.d.ts +5 -0
- package/package/components/triggers/ScheduledPollPanel.svelte +5 -9
- package/package/components/triggers/TriggersEditor.svelte +119 -89
- package/package/components/triggers/TriggersEditor.svelte.d.ts +7 -0
- package/package/components/triggers/TriggersEditorSection.svelte +109 -0
- package/package/components/triggers/TriggersEditorSection.svelte.d.ts +29 -0
- package/package/components/triggers/TriggersWrapper.svelte +60 -0
- package/package/components/triggers/TriggersWrapper.svelte.d.ts +21 -0
- package/package/components/triggers/WebhooksConfigSection.svelte +382 -0
- package/package/components/triggers/WebhooksConfigSection.svelte.d.ts +39 -0
- package/package/components/triggers/WebhooksPanel.svelte +32 -331
- package/package/components/triggers/WebhooksPanel.svelte.d.ts +7 -1
- package/package/components/triggers/WebsocketEditorConfigSection.svelte +176 -0
- package/package/components/triggers/WebsocketEditorConfigSection.svelte.d.ts +37 -0
- package/package/components/triggers/WebsocketTriggerEditor.svelte +2 -2
- package/package/components/triggers/WebsocketTriggerEditor.svelte.d.ts +2 -2
- package/package/components/triggers/WebsocketTriggerEditorInner.svelte +29 -150
- package/package/components/triggers/WebsocketTriggerEditorInner.svelte.d.ts +2 -2
- package/package/components/triggers/WebsocketTriggersPanel.svelte +70 -45
- package/package/components/triggers/WebsocketTriggersPanel.svelte.d.ts +6 -0
- package/package/components/triggers.d.ts +6 -2
- package/package/components/triggers.js +16 -0
- package/package/components/wizards/AgGridWizard.svelte +4 -4
- package/package/editorUtils.d.ts +2 -0
- package/package/editorUtils.js +6 -3
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +17 -8
- package/package/gen/schemas.gen.js +17 -8
- package/package/gen/services.gen.d.ts +55 -5
- package/package/gen/services.gen.js +108 -5
- package/package/gen/types.gen.d.ts +180 -13
- package/package/hubPaths.json +6 -3
- package/package/infer.js +9 -0
- package/package/script_helpers.d.ts +5 -0
- package/package/script_helpers.js +68 -8
- package/package/scripts.d.ts +1 -1
- package/package/scripts.js +5 -1
- package/package/stores.d.ts +1 -0
- package/package/utils.d.ts +3 -1
- package/package/utils.js +20 -4
- package/package.json +11 -8
- package/package/components/flows/content/CapturePayload.svelte +0 -114
- package/package/components/flows/content/CapturePayload.svelte.d.ts +0 -17
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/** @typedef {typeof __propDef.props} ListElementProps */
|
|
2
|
+
/** @typedef {typeof __propDef.events} ListElementEvents */
|
|
3
|
+
/** @typedef {typeof __propDef.slots} ListElementSlots */
|
|
4
|
+
export default class ListElement extends SvelteComponent<{
|
|
5
|
+
[x: string]: never;
|
|
6
|
+
}, {
|
|
7
|
+
[evt: string]: CustomEvent<any>;
|
|
8
|
+
}, {
|
|
9
|
+
default: {};
|
|
10
|
+
}> {
|
|
11
|
+
}
|
|
12
|
+
export type ListElementProps = typeof __propDef.props;
|
|
13
|
+
export type ListElementEvents = typeof __propDef.events;
|
|
14
|
+
export type ListElementSlots = typeof __propDef.slots;
|
|
15
|
+
import { SvelteComponent } from "svelte";
|
|
16
|
+
declare const __propDef: {
|
|
17
|
+
props: {
|
|
18
|
+
[x: string]: never;
|
|
19
|
+
};
|
|
20
|
+
events: {
|
|
21
|
+
[evt: string]: CustomEvent<any>;
|
|
22
|
+
};
|
|
23
|
+
slots: {
|
|
24
|
+
default: {};
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
export {};
|
|
@@ -8,6 +8,7 @@ export let placement = 'bottom-start';
|
|
|
8
8
|
export let justifyEnd = false;
|
|
9
9
|
export let lightMode = false;
|
|
10
10
|
export let maxHeight = 900;
|
|
11
|
+
export let disabled = false;
|
|
11
12
|
const [floatingRef, floatingContent] = createFloatingActions({
|
|
12
13
|
strategy: 'fixed',
|
|
13
14
|
middleware: [offset(), flip(), shift()],
|
|
@@ -15,10 +16,10 @@ const [floatingRef, floatingContent] = createFloatingActions({
|
|
|
15
16
|
});
|
|
16
17
|
</script>
|
|
17
18
|
|
|
18
|
-
<Menu
|
|
19
|
+
<Menu let:open as="div" class="relative hover:z-50 flex w-full h-8">
|
|
19
20
|
<ResolveOpen {open} on:open on:close />
|
|
20
21
|
<div use:floatingRef class="w-full">
|
|
21
|
-
<MenuButton class={twMerge('w-full', justifyEnd ? 'flex justify-end' : '')}>
|
|
22
|
+
<MenuButton class={twMerge('w-full', justifyEnd ? 'flex justify-end' : '')} disabled={disabled}>
|
|
22
23
|
<slot name="trigger" />
|
|
23
24
|
</MenuButton>
|
|
24
25
|
</div>
|
|
@@ -66,10 +66,12 @@ function fadeFast(node) {
|
|
|
66
66
|
>
|
|
67
67
|
<div class="flex">
|
|
68
68
|
<div class="ml-4 text-left flex-1">
|
|
69
|
-
<
|
|
70
|
-
{title}
|
|
71
|
-
|
|
72
|
-
|
|
69
|
+
<div class="flex flex-row items-center justify-between">
|
|
70
|
+
<h3>{title}</h3>
|
|
71
|
+
<slot name="settings" />
|
|
72
|
+
</div>
|
|
73
|
+
|
|
74
|
+
<div class="mt-4 text-sm text-tertiary">
|
|
73
75
|
<slot />
|
|
74
76
|
</div>
|
|
75
77
|
</div>
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
<script>import Portal from '../../Portal.svelte';
|
|
2
|
+
import { twMerge } from 'tailwind-merge';
|
|
3
|
+
import { clickOutside } from '../../../utils';
|
|
4
|
+
import { X } from 'lucide-svelte';
|
|
5
|
+
import List from '../layout/List.svelte';
|
|
6
|
+
import { fade } from 'svelte/transition';
|
|
7
|
+
export let title;
|
|
8
|
+
export let css = {};
|
|
9
|
+
export let target = '';
|
|
10
|
+
export let isOpen = false;
|
|
11
|
+
export let fixedSize = 'md';
|
|
12
|
+
// Add size mapping with custom pixel values
|
|
13
|
+
const sizeStyles = {
|
|
14
|
+
xs: { width: '400px', height: '250px' },
|
|
15
|
+
sm: { width: '600px', height: '400px' },
|
|
16
|
+
md: { width: '800px', height: '500px' },
|
|
17
|
+
lg: { width: '1400px', height: '720px' },
|
|
18
|
+
xl: { width: '1600px', height: '800px' },
|
|
19
|
+
xxl: { width: '1600px', height: '1000px' }
|
|
20
|
+
};
|
|
21
|
+
export function close() {
|
|
22
|
+
isOpen = false;
|
|
23
|
+
}
|
|
24
|
+
export function open() {
|
|
25
|
+
isOpen = true;
|
|
26
|
+
}
|
|
27
|
+
function handleKeyDown(event) {
|
|
28
|
+
if (event.key === 'Escape') {
|
|
29
|
+
event.preventDefault();
|
|
30
|
+
event.stopPropagation();
|
|
31
|
+
close();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
function fadeFast(node) {
|
|
35
|
+
return fade(node, { duration: 200 });
|
|
36
|
+
}
|
|
37
|
+
</script>
|
|
38
|
+
|
|
39
|
+
<svelte:window on:keydown={handleKeyDown} />
|
|
40
|
+
|
|
41
|
+
{#if isOpen}
|
|
42
|
+
<Portal name="always-mounted" {target}>
|
|
43
|
+
<div
|
|
44
|
+
class={'fixed top-0 bottom-0 left-0 right-0 transition-all overflow-auto z-[1100] bg-black bg-opacity-60 w-full h-full'}
|
|
45
|
+
transition:fadeFast|local
|
|
46
|
+
>
|
|
47
|
+
<div class="flex min-h-full items-center justify-center p-8">
|
|
48
|
+
<div
|
|
49
|
+
style={`width: ${sizeStyles[fixedSize].width}; height: ${sizeStyles[fixedSize].height}; ${
|
|
50
|
+
css?.popup?.style || ''
|
|
51
|
+
}`}
|
|
52
|
+
class={twMerge(
|
|
53
|
+
'max-h-screen-80 max-w-screen-80 rounded-lg relative bg-surface pt-2 px-4 pb-4',
|
|
54
|
+
css?.popup?.class,
|
|
55
|
+
'wm-modal-form-popup'
|
|
56
|
+
)}
|
|
57
|
+
use:clickOutside
|
|
58
|
+
on:click_outside={() => {
|
|
59
|
+
close()
|
|
60
|
+
}}
|
|
61
|
+
>
|
|
62
|
+
<List gap="md">
|
|
63
|
+
<div class="flex w-full">
|
|
64
|
+
<List horizontal justify="between">
|
|
65
|
+
<h3>{title}</h3>
|
|
66
|
+
<div class="grow w-min-0">
|
|
67
|
+
<List horizontal justify="between">
|
|
68
|
+
<div class="min-w-0 grow">
|
|
69
|
+
<slot name="header-left" />
|
|
70
|
+
</div>
|
|
71
|
+
<div class="min-w-0 grow-0 justify-end">
|
|
72
|
+
<List horizontal justify="end">
|
|
73
|
+
<slot name="header-right" />
|
|
74
|
+
<div class="w-8">
|
|
75
|
+
<button
|
|
76
|
+
on:click={() => {
|
|
77
|
+
isOpen = false
|
|
78
|
+
}}
|
|
79
|
+
class="hover:bg-surface-hover rounded-full w-8 h-8 flex items-center justify-center transition-all"
|
|
80
|
+
>
|
|
81
|
+
<X class="text-tertiary " />
|
|
82
|
+
</button>
|
|
83
|
+
</div>
|
|
84
|
+
</List>
|
|
85
|
+
</div>
|
|
86
|
+
</List>
|
|
87
|
+
</div>
|
|
88
|
+
</List>
|
|
89
|
+
</div>
|
|
90
|
+
|
|
91
|
+
<!-- svelte-ignore a11y-click-events-have-key-events -->
|
|
92
|
+
<!-- svelte-ignore a11y-no-static-element-interactions -->
|
|
93
|
+
<div class="w-full flex grow min-h-0" on:click|stopPropagation={() => {}}>
|
|
94
|
+
<slot />
|
|
95
|
+
</div>
|
|
96
|
+
</List>
|
|
97
|
+
</div>
|
|
98
|
+
</div>
|
|
99
|
+
</div>
|
|
100
|
+
</Portal>
|
|
101
|
+
{/if}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
declare const __propDef: {
|
|
3
|
+
props: {
|
|
4
|
+
title: string;
|
|
5
|
+
css?: any;
|
|
6
|
+
target?: string | undefined;
|
|
7
|
+
isOpen?: boolean | undefined;
|
|
8
|
+
fixedSize?: "xs" | "sm" | "md" | "lg" | "xl" | "xxl" | undefined;
|
|
9
|
+
close?: (() => void) | undefined;
|
|
10
|
+
open?: (() => void) | undefined;
|
|
11
|
+
};
|
|
12
|
+
events: {
|
|
13
|
+
[evt: string]: CustomEvent<any>;
|
|
14
|
+
};
|
|
15
|
+
slots: {
|
|
16
|
+
'header-left': {};
|
|
17
|
+
'header-right': {};
|
|
18
|
+
default: {};
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
export type Modal2Props = typeof __propDef.props;
|
|
22
|
+
export type Modal2Events = typeof __propDef.events;
|
|
23
|
+
export type Modal2Slots = typeof __propDef.slots;
|
|
24
|
+
export default class Modal2 extends SvelteComponent<Modal2Props, Modal2Events, Modal2Slots> {
|
|
25
|
+
get close(): () => void;
|
|
26
|
+
get open(): () => void;
|
|
27
|
+
}
|
|
28
|
+
export {};
|
|
@@ -13,10 +13,12 @@ export let shouldUsePortal = true;
|
|
|
13
13
|
export let target = undefined;
|
|
14
14
|
export let noTransition = false;
|
|
15
15
|
export let popupHover = false;
|
|
16
|
+
export let preventPopupClosingOnClickInside = false;
|
|
17
|
+
export let disabled = false;
|
|
16
18
|
</script>
|
|
17
19
|
|
|
18
20
|
<Popover on:close class="leading-none">
|
|
19
|
-
<PopoverButton let:open>
|
|
21
|
+
<PopoverButton let:open {disabled}>
|
|
20
22
|
<div use:floatingRef>
|
|
21
23
|
<slot name="button" {open} />
|
|
22
24
|
</div>
|
|
@@ -24,6 +26,7 @@ export let popupHover = false;
|
|
|
24
26
|
<ConditionalPortal condition={shouldUsePortal} {target}>
|
|
25
27
|
<!-- svelte-ignore a11y-no-static-element-interactions -->
|
|
26
28
|
<!-- svelte-ignore a11y-mouse-events-have-key-events -->
|
|
29
|
+
<!-- svelte-ignore a11y-click-events-have-key-events -->
|
|
27
30
|
<div
|
|
28
31
|
use:floatingContent
|
|
29
32
|
class={`z5000 ${floatingClasses}`}
|
|
@@ -33,6 +36,7 @@ export let popupHover = false;
|
|
|
33
36
|
on:mouseleave={() => {
|
|
34
37
|
popupHover = false
|
|
35
38
|
}}
|
|
39
|
+
on:click={(e) => preventPopupClosingOnClickInside && e.stopPropagation()}
|
|
36
40
|
>
|
|
37
41
|
{#if !noTransition}
|
|
38
42
|
<Transition
|
|
@@ -10,6 +10,8 @@ declare const __propDef: {
|
|
|
10
10
|
target?: string | HTMLElement | undefined;
|
|
11
11
|
noTransition?: boolean | undefined;
|
|
12
12
|
popupHover?: boolean | undefined;
|
|
13
|
+
preventPopupClosingOnClickInside?: boolean | undefined;
|
|
14
|
+
disabled?: boolean | undefined;
|
|
13
15
|
};
|
|
14
16
|
events: {
|
|
15
17
|
close: CustomEvent<any>;
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
<script>import { copyToClipboard } from '../../utils';
|
|
2
2
|
import { Clipboard } from 'lucide-svelte';
|
|
3
|
+
import { twMerge } from 'tailwind-merge';
|
|
3
4
|
export let content;
|
|
4
5
|
export let title = undefined;
|
|
6
|
+
export let size = 'sm';
|
|
7
|
+
export let disabled = false;
|
|
5
8
|
</script>
|
|
6
9
|
|
|
7
10
|
{#if title !== undefined}
|
|
@@ -11,12 +14,19 @@ export let title = undefined;
|
|
|
11
14
|
<!-- svelte-ignore a11y-click-events-have-key-events -->
|
|
12
15
|
<!-- svelte-ignore a11y-no-static-element-interactions -->
|
|
13
16
|
<div
|
|
14
|
-
class="grow min-w-0 w-full px-2 py-1 border flex items-center
|
|
17
|
+
class="grow min-w-0 w-full px-2 py-1 border flex items-center bg-surface-secondary text-primary justify-between rounded-md"
|
|
18
|
+
class:cursor-not-allowed={disabled}
|
|
19
|
+
class:cursor-pointer={!disabled}
|
|
15
20
|
on:click={(e) => {
|
|
21
|
+
if (disabled) {
|
|
22
|
+
return
|
|
23
|
+
}
|
|
16
24
|
e.preventDefault()
|
|
17
25
|
copyToClipboard(content)
|
|
18
26
|
}}
|
|
19
27
|
>
|
|
20
|
-
<div class=
|
|
28
|
+
<div class={twMerge('truncate whitespace-no-wrap grow', size === 'sm' ? 'text-xs' : 'text-sm')}
|
|
29
|
+
>{content}</div
|
|
30
|
+
>
|
|
21
31
|
<Clipboard size={12} class="flex-shrink-0" />
|
|
22
32
|
</div>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<script>import { copyToClipboard } from '../../utils';
|
|
2
|
+
import { Clipboard } from 'lucide-svelte';
|
|
3
|
+
import Highlight from 'svelte-highlight';
|
|
4
|
+
export let code;
|
|
5
|
+
export let language;
|
|
6
|
+
export let disabled = false;
|
|
7
|
+
</script>
|
|
8
|
+
|
|
9
|
+
<!-- svelte-ignore a11y-click-events-have-key-events -->
|
|
10
|
+
<!-- svelte-ignore a11y-no-static-element-interactions -->
|
|
11
|
+
<div
|
|
12
|
+
class="flex flex-row flex-1 border p-2 rounded-md overflow-auto relative"
|
|
13
|
+
class:cursor-not-allowed={disabled}
|
|
14
|
+
on:click={(e) => {
|
|
15
|
+
if (disabled) {
|
|
16
|
+
return
|
|
17
|
+
}
|
|
18
|
+
e.preventDefault()
|
|
19
|
+
copyToClipboard(code)
|
|
20
|
+
}}
|
|
21
|
+
>
|
|
22
|
+
<Highlight {language} {code} class="pointer-events-none" />
|
|
23
|
+
<Clipboard size={14} class="w-8 top-2 right-2 absolute" />
|
|
24
|
+
</div>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
import type { LanguageType } from 'svelte-highlight/languages';
|
|
3
|
+
declare const __propDef: {
|
|
4
|
+
props: {
|
|
5
|
+
code: string;
|
|
6
|
+
language: LanguageType<string>;
|
|
7
|
+
disabled?: boolean | undefined;
|
|
8
|
+
};
|
|
9
|
+
events: {
|
|
10
|
+
[evt: string]: CustomEvent<any>;
|
|
11
|
+
};
|
|
12
|
+
slots: {};
|
|
13
|
+
};
|
|
14
|
+
export type CopyableCodeBlockProps = typeof __propDef.props;
|
|
15
|
+
export type CopyableCodeBlockEvents = typeof __propDef.events;
|
|
16
|
+
export type CopyableCodeBlockSlots = typeof __propDef.slots;
|
|
17
|
+
export default class CopyableCodeBlock extends SvelteComponent<CopyableCodeBlockProps, CopyableCodeBlockEvents, CopyableCodeBlockSlots> {
|
|
18
|
+
}
|
|
19
|
+
export {};
|
|
@@ -18,7 +18,9 @@ setContext('TriggerContext', {
|
|
|
18
18
|
selectedTrigger: selectedTriggerStore,
|
|
19
19
|
primarySchedule: primaryScheduleStore,
|
|
20
20
|
triggersCount,
|
|
21
|
-
simplifiedPoll
|
|
21
|
+
simplifiedPoll,
|
|
22
|
+
defaultValues: writable(undefined),
|
|
23
|
+
captureOn: writable(undefined)
|
|
22
24
|
});
|
|
23
25
|
</script>
|
|
24
26
|
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
<script>import Button from '../common/button/Button.svelte';
|
|
2
|
+
import Label from '../Label.svelte';
|
|
3
|
+
import Tooltip from '../Tooltip.svelte';
|
|
4
|
+
import { AlertTriangle } from 'lucide-svelte';
|
|
5
|
+
import { workspaceStore } from '../../stores';
|
|
6
|
+
import { SCRIPT_VIEW_SHOW_CREATE_TOKEN_BUTTON } from '../../consts';
|
|
7
|
+
import ToggleButton from '../common/toggleButton-v2/ToggleButton.svelte';
|
|
8
|
+
import ToggleButtonGroup from '../common/toggleButton-v2/ToggleButtonGroup.svelte';
|
|
9
|
+
import ClipboardPanel from './ClipboardPanel.svelte';
|
|
10
|
+
import Alert from '../common/alert/Alert.svelte';
|
|
11
|
+
import { base32 } from 'rfc4648';
|
|
12
|
+
import CaptureSection, {} from '../triggers/CaptureSection.svelte';
|
|
13
|
+
import CaptureTable from '../triggers/CaptureTable.svelte';
|
|
14
|
+
export let token = '';
|
|
15
|
+
export let isFlow = false;
|
|
16
|
+
export let hash = undefined;
|
|
17
|
+
export let path;
|
|
18
|
+
export let userSettings;
|
|
19
|
+
export let emailDomain = null;
|
|
20
|
+
export let showCapture = false;
|
|
21
|
+
export let captureInfo = undefined;
|
|
22
|
+
export let captureTable = undefined;
|
|
23
|
+
let requestType = 'path';
|
|
24
|
+
function getCaptureEmail() {
|
|
25
|
+
const cleanedPath = path.replaceAll('/', '.');
|
|
26
|
+
const plainPrefix = `capture+${$workspaceStore}+${(isFlow ? 'flow.' : '') + cleanedPath}`;
|
|
27
|
+
const encodedPrefix = base32
|
|
28
|
+
.stringify(new TextEncoder().encode(plainPrefix), {
|
|
29
|
+
pad: false
|
|
30
|
+
})
|
|
31
|
+
.toLowerCase();
|
|
32
|
+
console.log(encodedPrefix);
|
|
33
|
+
return `${encodedPrefix}@${emailDomain}`;
|
|
34
|
+
}
|
|
35
|
+
$: captureEmail = getCaptureEmail();
|
|
36
|
+
function emailAddress(requestType, path, hash, isFlow, token) {
|
|
37
|
+
const pathOrHash = requestType === 'hash' ? hash : path.replaceAll('/', '.');
|
|
38
|
+
const plainPrefix = `${$workspaceStore}+${(requestType === 'hash' ? 'hash.' : isFlow ? 'flow.' : '') + pathOrHash}+${token}`;
|
|
39
|
+
const encodedPrefix = base32
|
|
40
|
+
.stringify(new TextEncoder().encode(plainPrefix), {
|
|
41
|
+
pad: false
|
|
42
|
+
})
|
|
43
|
+
.toLowerCase();
|
|
44
|
+
return `${pathOrHash}+${encodedPrefix}@${emailDomain}`;
|
|
45
|
+
}
|
|
46
|
+
export let email = '';
|
|
47
|
+
$: email = emailAddress(requestType, path, hash, isFlow, token);
|
|
48
|
+
</script>
|
|
49
|
+
|
|
50
|
+
<div>
|
|
51
|
+
{#if showCapture && captureInfo}
|
|
52
|
+
<CaptureSection
|
|
53
|
+
bind:captureTable
|
|
54
|
+
captureType="email"
|
|
55
|
+
disabled={false}
|
|
56
|
+
{captureInfo}
|
|
57
|
+
on:captureToggle
|
|
58
|
+
on:applyArgs
|
|
59
|
+
on:updateSchema
|
|
60
|
+
on:addPreprocessor
|
|
61
|
+
>
|
|
62
|
+
<Label label="Email address">
|
|
63
|
+
<ClipboardPanel content={captureEmail} disabled={!captureInfo.active} />
|
|
64
|
+
</Label>
|
|
65
|
+
</CaptureSection>
|
|
66
|
+
{/if}
|
|
67
|
+
<div class="flex flex-col gap-4">
|
|
68
|
+
{#if SCRIPT_VIEW_SHOW_CREATE_TOKEN_BUTTON}
|
|
69
|
+
<Label label="Token">
|
|
70
|
+
<div class="flex flex-row justify-between gap-2">
|
|
71
|
+
<input
|
|
72
|
+
bind:value={token}
|
|
73
|
+
placeholder="paste your token here once created to alter examples below"
|
|
74
|
+
class="!text-xs"
|
|
75
|
+
/>
|
|
76
|
+
<Button size="xs" color="light" variant="border" on:click={userSettings.openDrawer}>
|
|
77
|
+
Create an Email-specific Token
|
|
78
|
+
<Tooltip light>
|
|
79
|
+
The token will have a scope such that it can only be used to trigger this script. It
|
|
80
|
+
is safe to share as it cannot be used to impersonate you.
|
|
81
|
+
</Tooltip>
|
|
82
|
+
</Button>
|
|
83
|
+
</div>
|
|
84
|
+
{#if token === 'TOKEN_TO_CREATE'}
|
|
85
|
+
<div class="flex flex-row gap-1 text-xs text-red-500 items-center mt-1">
|
|
86
|
+
<AlertTriangle size="12" />
|
|
87
|
+
Create/input a valid token before copying the email address below
|
|
88
|
+
</div>
|
|
89
|
+
{/if}
|
|
90
|
+
</Label>
|
|
91
|
+
{/if}
|
|
92
|
+
|
|
93
|
+
{#if !isFlow}
|
|
94
|
+
<div class="flex flex-col gap-2">
|
|
95
|
+
<div class="flex flex-row justify-between">
|
|
96
|
+
<div class="text-xs font-semibold flex flex-row items-center">Call method</div>
|
|
97
|
+
<ToggleButtonGroup class="h-[30px] w-auto" bind:selected={requestType}>
|
|
98
|
+
<ToggleButton label="By path" value="path" />
|
|
99
|
+
<ToggleButton label="By hash" value="hash" />
|
|
100
|
+
</ToggleButtonGroup>
|
|
101
|
+
</div>
|
|
102
|
+
</div>
|
|
103
|
+
{/if}
|
|
104
|
+
|
|
105
|
+
{#key requestType}
|
|
106
|
+
{#key token}
|
|
107
|
+
<Label label="Email address">
|
|
108
|
+
<ClipboardPanel content={email} />
|
|
109
|
+
</Label>
|
|
110
|
+
{/key}
|
|
111
|
+
{/key}
|
|
112
|
+
|
|
113
|
+
<Alert title="Email trigger" size="xs">
|
|
114
|
+
To trigger the job by email, send an email to the address above. The job will receive two
|
|
115
|
+
arguments: `raw_email` containing the raw email as string, and `parsed_email` containing the
|
|
116
|
+
parsed email as an object.
|
|
117
|
+
</Alert>
|
|
118
|
+
</div>
|
|
119
|
+
</div>
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
import { type CaptureInfo } from '../triggers/CaptureSection.svelte';
|
|
3
|
+
import CaptureTable from '../triggers/CaptureTable.svelte';
|
|
4
|
+
declare const __propDef: {
|
|
5
|
+
props: {
|
|
6
|
+
token?: string | undefined;
|
|
7
|
+
isFlow?: boolean | undefined;
|
|
8
|
+
hash?: string | undefined;
|
|
9
|
+
path: string;
|
|
10
|
+
userSettings: any;
|
|
11
|
+
emailDomain?: string | null | undefined;
|
|
12
|
+
showCapture?: boolean | undefined;
|
|
13
|
+
captureInfo?: CaptureInfo | undefined;
|
|
14
|
+
captureTable?: CaptureTable | undefined;
|
|
15
|
+
email?: string | undefined;
|
|
16
|
+
};
|
|
17
|
+
events: {
|
|
18
|
+
captureToggle: CustomEvent<undefined>;
|
|
19
|
+
applyArgs: CustomEvent<{
|
|
20
|
+
kind: "main" | "preprocessor";
|
|
21
|
+
args: Record<string, any> | undefined;
|
|
22
|
+
}>;
|
|
23
|
+
updateSchema: CustomEvent<{
|
|
24
|
+
schema: any;
|
|
25
|
+
redirect: boolean;
|
|
26
|
+
}>;
|
|
27
|
+
addPreprocessor: CustomEvent<null>;
|
|
28
|
+
} & {
|
|
29
|
+
[evt: string]: CustomEvent<any>;
|
|
30
|
+
};
|
|
31
|
+
slots: {};
|
|
32
|
+
};
|
|
33
|
+
export type EmailTriggerConfigSectionProps = typeof __propDef.props;
|
|
34
|
+
export type EmailTriggerConfigSectionEvents = typeof __propDef.events;
|
|
35
|
+
export type EmailTriggerConfigSectionSlots = typeof __propDef.slots;
|
|
36
|
+
export default class EmailTriggerConfigSection extends SvelteComponent<EmailTriggerConfigSectionProps, EmailTriggerConfigSectionEvents, EmailTriggerConfigSectionSlots> {
|
|
37
|
+
}
|
|
38
|
+
export {};
|
|
@@ -1,50 +1,34 @@
|
|
|
1
|
-
<script>import
|
|
2
|
-
import { enterpriseLicense, userStore, workspaceStore } from '../../stores';
|
|
3
|
-
import { Button } from '../common';
|
|
4
|
-
import { SCRIPT_VIEW_SHOW_CREATE_TOKEN_BUTTON } from '../../consts';
|
|
1
|
+
<script>import { enterpriseLicense, userStore, workspaceStore } from '../../stores';
|
|
5
2
|
import UserSettings from '../UserSettings.svelte';
|
|
6
|
-
import ClipboardPanel from './ClipboardPanel.svelte';
|
|
7
3
|
import { generateRandomString } from '../../utils';
|
|
8
4
|
import HighlightTheme from '../HighlightTheme.svelte';
|
|
9
5
|
import Alert from '../common/alert/Alert.svelte';
|
|
10
6
|
import { SettingService } from '../../gen';
|
|
11
|
-
import { base32 } from 'rfc4648';
|
|
12
|
-
import ToggleButton from '../common/toggleButton-v2/ToggleButton.svelte';
|
|
13
|
-
import ToggleButtonGroup from '../common/toggleButton-v2/ToggleButtonGroup.svelte';
|
|
14
|
-
import { AlertTriangle } from 'lucide-svelte';
|
|
15
7
|
import Skeleton from '../common/skeleton/Skeleton.svelte';
|
|
16
|
-
import Label from '../Label.svelte';
|
|
17
8
|
import TriggerTokens from '../triggers/TriggerTokens.svelte';
|
|
9
|
+
import TriggersEditorSection from '../triggers/TriggersEditorSection.svelte';
|
|
10
|
+
import Description from '../Description.svelte';
|
|
18
11
|
let userSettings;
|
|
19
12
|
export let token;
|
|
20
13
|
export let scopes = [];
|
|
21
14
|
export let isFlow = false;
|
|
22
15
|
export let hash = undefined;
|
|
23
16
|
export let path;
|
|
17
|
+
export let isEditor = false;
|
|
18
|
+
export let canHavePreprocessor = false;
|
|
19
|
+
export let hasPreprocessor = false;
|
|
20
|
+
export let newItem = false;
|
|
24
21
|
let emailDomain = null;
|
|
22
|
+
let triggerTokens = undefined;
|
|
25
23
|
let loading = true;
|
|
26
24
|
async function getEmailDomain() {
|
|
27
25
|
emailDomain =
|
|
28
26
|
(await SettingService.getGlobal({
|
|
29
27
|
key: 'email_domain'
|
|
30
|
-
})) ??
|
|
28
|
+
})) ?? 'mail.test.com';
|
|
31
29
|
loading = false;
|
|
32
30
|
}
|
|
33
31
|
getEmailDomain();
|
|
34
|
-
let requestType = 'path';
|
|
35
|
-
function emailAddress(requestType, path, hash, isFlow, token) {
|
|
36
|
-
const pathOrHash = requestType === 'hash' ? hash : path.replaceAll('/', '.');
|
|
37
|
-
const plainPrefix = `${$workspaceStore}+${(requestType === 'hash' ? 'hash.' : isFlow ? 'flow.' : '') + pathOrHash}+${token}`;
|
|
38
|
-
const encodedPrefix = base32
|
|
39
|
-
.stringify(new TextEncoder().encode(plainPrefix), {
|
|
40
|
-
pad: false
|
|
41
|
-
})
|
|
42
|
-
.toLowerCase();
|
|
43
|
-
return `${pathOrHash}+${encodedPrefix}@${emailDomain}`;
|
|
44
|
-
}
|
|
45
|
-
export let email = '';
|
|
46
|
-
$: email = emailAddress(requestType, path, hash, isFlow, token);
|
|
47
|
-
let triggerTokens = undefined;
|
|
48
32
|
</script>
|
|
49
33
|
|
|
50
34
|
<HighlightTheme />
|
|
@@ -61,59 +45,28 @@ let triggerTokens = undefined;
|
|
|
61
45
|
/>
|
|
62
46
|
|
|
63
47
|
<div class="flex flex-col w-full gap-4">
|
|
48
|
+
<Description link="https://www.windmill.dev/docs/advanced/email_triggers">
|
|
49
|
+
Email triggers execute scripts and flows when emails are sent to specific addresses. Each
|
|
50
|
+
trigger has its own unique email address that can be used to invoke the script or flow.
|
|
51
|
+
</Description>
|
|
64
52
|
{#if loading}
|
|
65
53
|
<Skeleton layout={[[18]]} />
|
|
66
54
|
{:else}
|
|
67
55
|
{#if emailDomain}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
</Button>
|
|
83
|
-
</div>
|
|
84
|
-
{#if token === 'TOKEN_TO_CREATE'}
|
|
85
|
-
<div class="flex flex-row gap-1 text-xs text-red-500 items-center mt-1">
|
|
86
|
-
<AlertTriangle size="12" />
|
|
87
|
-
Create/input a valid token before copying the email address below
|
|
88
|
-
</div>
|
|
89
|
-
{/if}
|
|
90
|
-
</Label>
|
|
91
|
-
{/if}
|
|
92
|
-
|
|
93
|
-
{#if !isFlow}
|
|
94
|
-
<div class="flex flex-col gap-2">
|
|
95
|
-
<div class="flex flex-row justify-between">
|
|
96
|
-
<div class="text-xs font-semibold flex flex-row items-center">Call method</div>
|
|
97
|
-
<ToggleButtonGroup class="h-[30px] w-auto" bind:selected={requestType}>
|
|
98
|
-
<ToggleButton label="By path" value="path" />
|
|
99
|
-
<ToggleButton label="By hash" value="hash" />
|
|
100
|
-
</ToggleButtonGroup>
|
|
101
|
-
</div>
|
|
102
|
-
</div>
|
|
103
|
-
{/if}
|
|
104
|
-
|
|
105
|
-
{#key requestType}
|
|
106
|
-
{#key token}
|
|
107
|
-
<Label label="Email address">
|
|
108
|
-
<ClipboardPanel content={email} />
|
|
109
|
-
</Label>
|
|
110
|
-
{/key}
|
|
111
|
-
{/key}
|
|
112
|
-
<Alert title="Email trigger" size="xs">
|
|
113
|
-
To trigger the job by email, send an email to the address above. The job will receive two
|
|
114
|
-
arguments: `raw_email` containing the raw email as string, and `parsed_email` containing the
|
|
115
|
-
parsed email as an object.
|
|
116
|
-
</Alert>
|
|
56
|
+
<TriggersEditorSection
|
|
57
|
+
cloudDisabled={false}
|
|
58
|
+
triggerType="email"
|
|
59
|
+
{isFlow}
|
|
60
|
+
noSave
|
|
61
|
+
data={{ emailDomain, userSettings, token, hash, path }}
|
|
62
|
+
{isEditor}
|
|
63
|
+
{path}
|
|
64
|
+
{canHavePreprocessor}
|
|
65
|
+
{hasPreprocessor}
|
|
66
|
+
on:applyArgs
|
|
67
|
+
on:addPreprocessor
|
|
68
|
+
{newItem}
|
|
69
|
+
/>
|
|
117
70
|
{:else}
|
|
118
71
|
<div>
|
|
119
72
|
<Alert title="Email triggers are disabled" size="xs" type="warning">
|