windmill-components 1.444.2 → 1.447.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/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,23 @@
|
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
declare const __propDef: {
|
|
3
|
+
props: {
|
|
4
|
+
payloadData: Record<string, any>;
|
|
5
|
+
date: string | undefined;
|
|
6
|
+
selected?: boolean | undefined;
|
|
7
|
+
};
|
|
8
|
+
events: {
|
|
9
|
+
select: CustomEvent<any>;
|
|
10
|
+
} & {
|
|
11
|
+
[evt: string]: CustomEvent<any>;
|
|
12
|
+
};
|
|
13
|
+
slots: {
|
|
14
|
+
start: {};
|
|
15
|
+
extra: {};
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
export type SchemaPickerProps = typeof __propDef.props;
|
|
19
|
+
export type SchemaPickerEvents = typeof __propDef.events;
|
|
20
|
+
export type SchemaPickerSlots = typeof __propDef.slots;
|
|
21
|
+
export default class SchemaPicker extends SvelteComponent<SchemaPickerProps, SchemaPickerEvents, SchemaPickerSlots> {
|
|
22
|
+
}
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
<script>import CustomPopover from '../CustomPopover.svelte';
|
|
2
|
+
import { copyToClipboard } from '../../utils';
|
|
3
|
+
import ObjectViewer from '../propertyPicker/ObjectViewer.svelte';
|
|
4
|
+
import { twMerge } from 'tailwind-merge';
|
|
5
|
+
import Cell from '../table/Cell.svelte';
|
|
6
|
+
export let payloadData;
|
|
7
|
+
export let date;
|
|
8
|
+
export let selected = false;
|
|
9
|
+
export let hovering = false;
|
|
10
|
+
function formatDate(dateString) {
|
|
11
|
+
if (!dateString)
|
|
12
|
+
return '';
|
|
13
|
+
const date = new Date(dateString);
|
|
14
|
+
return new Intl.DateTimeFormat('en-US', {
|
|
15
|
+
year: 'numeric',
|
|
16
|
+
month: 'short',
|
|
17
|
+
day: 'numeric',
|
|
18
|
+
hour: '2-digit',
|
|
19
|
+
minute: '2-digit'
|
|
20
|
+
}).format(date);
|
|
21
|
+
}
|
|
22
|
+
function formatDateShort(dateString) {
|
|
23
|
+
if (!dateString)
|
|
24
|
+
return '';
|
|
25
|
+
const date = new Date(dateString);
|
|
26
|
+
const now = new Date();
|
|
27
|
+
// If date is today, only show time
|
|
28
|
+
if (date.toDateString() === now.toDateString()) {
|
|
29
|
+
return new Intl.DateTimeFormat('en-US', {
|
|
30
|
+
hour: '2-digit',
|
|
31
|
+
minute: '2-digit'
|
|
32
|
+
}).format(date);
|
|
33
|
+
}
|
|
34
|
+
// If date is this year, show only month and day
|
|
35
|
+
if (date.getFullYear() === now.getFullYear()) {
|
|
36
|
+
return new Intl.DateTimeFormat('en-US', {
|
|
37
|
+
month: 'short',
|
|
38
|
+
day: 'numeric'
|
|
39
|
+
}).format(date);
|
|
40
|
+
}
|
|
41
|
+
// If date is from another year, only show the date with year
|
|
42
|
+
return new Intl.DateTimeFormat('en-US', {
|
|
43
|
+
year: 'numeric',
|
|
44
|
+
month: 'short',
|
|
45
|
+
day: 'numeric'
|
|
46
|
+
}).format(date);
|
|
47
|
+
}
|
|
48
|
+
</script>
|
|
49
|
+
|
|
50
|
+
<Cell>
|
|
51
|
+
<slot name="start" />
|
|
52
|
+
</Cell>
|
|
53
|
+
|
|
54
|
+
<Cell
|
|
55
|
+
wrap
|
|
56
|
+
class="text-2xs font-normal text-left p-2 rounded-md overflow-auto text-ellipsis scrollbar-none"
|
|
57
|
+
title={formatDate(date)}
|
|
58
|
+
>
|
|
59
|
+
{formatDateShort(date)}
|
|
60
|
+
</Cell>
|
|
61
|
+
|
|
62
|
+
<Cell class="items-center flex flex-row gap-2">
|
|
63
|
+
<CustomPopover class="w-full overflow-auto flex items-center justify-center">
|
|
64
|
+
<!-- svelte-ignore a11y-click-events-have-key-events -->
|
|
65
|
+
<!-- svelte-ignore a11y-no-static-element-interactions -->
|
|
66
|
+
<div
|
|
67
|
+
class={twMerge(
|
|
68
|
+
'text-xs border w-full font-normal text-left p-1 rounded-md whitespace-nowrap overflow-hidden text-ellipsis',
|
|
69
|
+
hovering && 'border-surface'
|
|
70
|
+
)}
|
|
71
|
+
on:click={() => {
|
|
72
|
+
if (selected) {
|
|
73
|
+
copyToClipboard(JSON.stringify(payloadData))
|
|
74
|
+
}
|
|
75
|
+
}}
|
|
76
|
+
>
|
|
77
|
+
{JSON.stringify(payloadData)}
|
|
78
|
+
</div>
|
|
79
|
+
<svelte:fragment slot="overlay">
|
|
80
|
+
<ObjectViewer json={payloadData} />
|
|
81
|
+
</svelte:fragment>
|
|
82
|
+
</CustomPopover>
|
|
83
|
+
|
|
84
|
+
<slot name="extra" />
|
|
85
|
+
</Cell>
|
|
86
|
+
|
|
87
|
+
<style>
|
|
88
|
+
.scrollbar-none {
|
|
89
|
+
-ms-overflow-style: none; /* IE and Edge */
|
|
90
|
+
scrollbar-width: none; /* Firefox */
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.scrollbar-none::-webkit-scrollbar {
|
|
94
|
+
display: none; /* Chrome, Safari and Opera */
|
|
95
|
+
}</style>
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
declare const __propDef: {
|
|
3
|
+
props: {
|
|
4
|
+
payloadData: Record<string, any>;
|
|
5
|
+
date: string | undefined;
|
|
6
|
+
selected?: boolean | undefined;
|
|
7
|
+
hovering?: boolean | undefined;
|
|
8
|
+
};
|
|
9
|
+
events: {
|
|
10
|
+
[evt: string]: CustomEvent<any>;
|
|
11
|
+
};
|
|
12
|
+
slots: {
|
|
13
|
+
start: {};
|
|
14
|
+
extra: {};
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
export type SchemaPickerRowProps = typeof __propDef.props;
|
|
18
|
+
export type SchemaPickerRowEvents = typeof __propDef.events;
|
|
19
|
+
export type SchemaPickerRowSlots = typeof __propDef.slots;
|
|
20
|
+
export default class SchemaPickerRow extends SvelteComponent<SchemaPickerRowProps, SchemaPickerRowEvents, SchemaPickerRowSlots> {
|
|
21
|
+
}
|
|
22
|
+
export {};
|
|
@@ -70,7 +70,7 @@ let forceJson = false;
|
|
|
70
70
|
<Tab value="logs" size="xs">Logs & Result</Tab>
|
|
71
71
|
<Tab value="history" size="xs">History</Tab>
|
|
72
72
|
{#if showCaptures}
|
|
73
|
-
<Tab value="captures" size="xs">
|
|
73
|
+
<Tab value="captures" size="xs">Trigger captures</Tab>
|
|
74
74
|
{/if}
|
|
75
75
|
|
|
76
76
|
<svelte:fragment slot="content">
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
<script>import { workspaceStore, usersWorkspaceStore } from '../../stores';
|
|
2
|
+
import Button from '../common/button/Button.svelte';
|
|
3
|
+
import { sendUserToast } from '../../toast';
|
|
4
|
+
import { WorkspaceService } from '../../gen';
|
|
5
|
+
import Modal from '../common/modal/Modal.svelte';
|
|
6
|
+
import { Pen } from 'lucide-svelte';
|
|
7
|
+
import Toggle from '../Toggle.svelte';
|
|
8
|
+
let colorEnabled = false;
|
|
9
|
+
let workspaceColor = undefined;
|
|
10
|
+
let savedWorkspaceColor = undefined;
|
|
11
|
+
let lastWorkspace = undefined;
|
|
12
|
+
export let open = false;
|
|
13
|
+
$: $usersWorkspaceStore && $workspaceStore !== lastWorkspace && onWorkspaceChange();
|
|
14
|
+
function onWorkspaceChange() {
|
|
15
|
+
lastWorkspace = $workspaceStore;
|
|
16
|
+
savedWorkspaceColor = $usersWorkspaceStore?.workspaces.find((w) => w.id === $workspaceStore)?.color;
|
|
17
|
+
workspaceColor = savedWorkspaceColor;
|
|
18
|
+
}
|
|
19
|
+
$: colorEnabled = !!workspaceColor;
|
|
20
|
+
$: if (colorEnabled && !workspaceColor)
|
|
21
|
+
generateRandomColor();
|
|
22
|
+
function generateRandomColor() {
|
|
23
|
+
const randomColor = '#' +
|
|
24
|
+
Math.floor(Math.random() * 16777215)
|
|
25
|
+
.toString(16)
|
|
26
|
+
.padStart(6, '0');
|
|
27
|
+
workspaceColor = randomColor;
|
|
28
|
+
}
|
|
29
|
+
async function changeWorkspaceColor() {
|
|
30
|
+
const colorToSave = colorEnabled && workspaceColor ? workspaceColor : undefined;
|
|
31
|
+
open = false;
|
|
32
|
+
await WorkspaceService.changeWorkspaceColor({
|
|
33
|
+
workspace: $workspaceStore,
|
|
34
|
+
requestBody: {
|
|
35
|
+
color: colorToSave
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
usersWorkspaceStore.set(await WorkspaceService.listUserWorkspaces());
|
|
39
|
+
savedWorkspaceColor = colorToSave;
|
|
40
|
+
sendUserToast(`Workspace color updated.`);
|
|
41
|
+
}
|
|
42
|
+
</script>
|
|
43
|
+
|
|
44
|
+
<div>
|
|
45
|
+
<p class="font-semibold text-sm">Workspace color</p>
|
|
46
|
+
<div class="flex flex-row gap-0.5 items-center">
|
|
47
|
+
{#if savedWorkspaceColor}
|
|
48
|
+
<div
|
|
49
|
+
class="w-5 h-5 rounded-full border border-gray-300 dark:border-gray-600"
|
|
50
|
+
style="background-color: {savedWorkspaceColor}"
|
|
51
|
+
/>
|
|
52
|
+
{:else}
|
|
53
|
+
<span class="text-xs text-secondary">No color set</span>
|
|
54
|
+
{/if}
|
|
55
|
+
<Button
|
|
56
|
+
on:click={() => {
|
|
57
|
+
open = true
|
|
58
|
+
}}
|
|
59
|
+
size="xs"
|
|
60
|
+
spacingSize="xs2"
|
|
61
|
+
color="light"
|
|
62
|
+
iconOnly
|
|
63
|
+
startIcon={{
|
|
64
|
+
icon: Pen
|
|
65
|
+
}}
|
|
66
|
+
/>
|
|
67
|
+
</div>
|
|
68
|
+
<p class="italic text-xs">
|
|
69
|
+
Color to identify the current workspace in the list of workspaces
|
|
70
|
+
</p>
|
|
71
|
+
</div>
|
|
72
|
+
|
|
73
|
+
<Modal bind:open title="Change Workspace Color">
|
|
74
|
+
<div class="flex flex-col gap-4">
|
|
75
|
+
<label class="block">
|
|
76
|
+
<span class="text-secondary text-sm">Workspace color</span>
|
|
77
|
+
<div class="flex items-center gap-2">
|
|
78
|
+
<Toggle bind:checked={colorEnabled} options={{ right: 'Enable' }} />
|
|
79
|
+
{#if colorEnabled}
|
|
80
|
+
<input class="w-10" type="color" bind:value={workspaceColor} disabled={!colorEnabled} />
|
|
81
|
+
{/if}
|
|
82
|
+
<input
|
|
83
|
+
type="text"
|
|
84
|
+
class="w-24 text-sm"
|
|
85
|
+
bind:value={workspaceColor}
|
|
86
|
+
disabled={!colorEnabled}
|
|
87
|
+
/>
|
|
88
|
+
<Button on:click={generateRandomColor} size="xs" disabled={!colorEnabled}>Random</Button>
|
|
89
|
+
</div>
|
|
90
|
+
</label>
|
|
91
|
+
</div>
|
|
92
|
+
|
|
93
|
+
<svelte:fragment slot="actions">
|
|
94
|
+
<Button
|
|
95
|
+
size="sm"
|
|
96
|
+
on:click={() => {
|
|
97
|
+
changeWorkspaceColor()
|
|
98
|
+
}}
|
|
99
|
+
>
|
|
100
|
+
Save
|
|
101
|
+
</Button>
|
|
102
|
+
</svelte:fragment>
|
|
103
|
+
</Modal>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
declare const __propDef: {
|
|
3
|
+
props: {
|
|
4
|
+
open?: boolean | undefined;
|
|
5
|
+
};
|
|
6
|
+
events: {
|
|
7
|
+
[evt: string]: CustomEvent<any>;
|
|
8
|
+
};
|
|
9
|
+
slots: {};
|
|
10
|
+
};
|
|
11
|
+
export type ChangeWorkspaceColorProps = typeof __propDef.props;
|
|
12
|
+
export type ChangeWorkspaceColorEvents = typeof __propDef.events;
|
|
13
|
+
export type ChangeWorkspaceColorSlots = typeof __propDef.slots;
|
|
14
|
+
export default class ChangeWorkspaceColor extends SvelteComponent<ChangeWorkspaceColorProps, ChangeWorkspaceColorEvents, ChangeWorkspaceColorSlots> {
|
|
15
|
+
}
|
|
16
|
+
export {};
|
|
@@ -10,6 +10,7 @@ export let lightMode = false;
|
|
|
10
10
|
export let stopPropagationOnClick = false;
|
|
11
11
|
export let shortcut = '';
|
|
12
12
|
export let notificationsCount = 0;
|
|
13
|
+
export let color = null;
|
|
13
14
|
let dispatch = createEventDispatcher();
|
|
14
15
|
</script>
|
|
15
16
|
|
|
@@ -24,10 +25,12 @@ let dispatch = createEventDispatcher();
|
|
|
24
25
|
'group flex items-center px-2 py-2 font-light rounded-md h-8 gap-3 w-full',
|
|
25
26
|
lightMode
|
|
26
27
|
? 'text-primary hover:bg-surface-hover '
|
|
27
|
-
: '
|
|
28
|
+
: 'hover:bg-[#2A3648] text-primary-inverse dark:text-primary',
|
|
29
|
+
color ? 'border-4' : '',
|
|
28
30
|
'transition-all',
|
|
29
31
|
$$props.class
|
|
30
32
|
)}
|
|
33
|
+
style={color ? `border-color: ${color}; padding: 0 calc(0.5rem - 4px);` : ''}
|
|
31
34
|
title={label}
|
|
32
35
|
>
|
|
33
36
|
{#if icon}
|
|
@@ -48,7 +51,7 @@ let dispatch = createEventDispatcher();
|
|
|
48
51
|
<span
|
|
49
52
|
class={twMerge(
|
|
50
53
|
'whitespace-pre truncate',
|
|
51
|
-
lightMode ? 'text-primary' : 'text-primary-inverse
|
|
54
|
+
lightMode ? 'text-primary' : 'text-primary-inverse dark:text-primary',
|
|
52
55
|
'transition-all',
|
|
53
56
|
$$props.class
|
|
54
57
|
)}
|
|
@@ -19,6 +19,7 @@ import { changelogs } from './changelogs';
|
|
|
19
19
|
import { page } from '$app/stores';
|
|
20
20
|
import SideBarNotification from './SideBarNotification.svelte';
|
|
21
21
|
import KafkaIcon from '../icons/KafkaIcon.svelte';
|
|
22
|
+
import NatsIcon from '../icons/NatsIcon.svelte';
|
|
22
23
|
export let numUnacknowledgedCriticalAlerts = 0;
|
|
23
24
|
$: mainMenuLinks = [
|
|
24
25
|
{ label: 'Home', href: `${base}/`, icon: Home },
|
|
@@ -67,6 +68,13 @@ const defaultExtraTriggerLinks = [
|
|
|
67
68
|
icon: KafkaIcon,
|
|
68
69
|
disabled: $userStore?.operator || !$enterpriseLicense,
|
|
69
70
|
kind: 'kafka'
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
label: 'NATS' + ($enterpriseLicense ? '' : ' (EE)'),
|
|
74
|
+
href: '/nats_triggers',
|
|
75
|
+
icon: NatsIcon,
|
|
76
|
+
disabled: $userStore?.operator || !$enterpriseLicense,
|
|
77
|
+
kind: 'nats'
|
|
70
78
|
}
|
|
71
79
|
];
|
|
72
80
|
$: extraTriggerLinks = defaultExtraTriggerLinks.filter((link) => {
|
|
@@ -11,6 +11,7 @@ import MenuButton from './MenuButton.svelte';
|
|
|
11
11
|
import { MenuItem } from '@rgossiaux/svelte-headlessui';
|
|
12
12
|
import { isCloudHosted } from '../../cloud';
|
|
13
13
|
import { initAllAiWorkspace } from '../copilot/lib';
|
|
14
|
+
import { twMerge } from 'tailwind-merge';
|
|
14
15
|
export let isCollapsed = false;
|
|
15
16
|
// When used outside of the side bar, where links to workspace settings and such don't make as much sense.
|
|
16
17
|
export let strictWorkspaceSelect = false;
|
|
@@ -43,7 +44,13 @@ async function toggleSwitchWorkspace(id) {
|
|
|
43
44
|
|
|
44
45
|
<Menu>
|
|
45
46
|
<div slot="trigger">
|
|
46
|
-
<MenuButton
|
|
47
|
+
<MenuButton
|
|
48
|
+
class="!text-xs"
|
|
49
|
+
icon={Building}
|
|
50
|
+
label={$workspaceStore ?? ''}
|
|
51
|
+
{isCollapsed}
|
|
52
|
+
color={$userWorkspaces.find((w) => w.id === $workspaceStore)?.color}
|
|
53
|
+
/>
|
|
47
54
|
</div>
|
|
48
55
|
|
|
49
56
|
<div class="divide-y" role="none">
|
|
@@ -51,17 +58,29 @@ async function toggleSwitchWorkspace(id) {
|
|
|
51
58
|
{#each $userWorkspaces as workspace}
|
|
52
59
|
<MenuItem>
|
|
53
60
|
<button
|
|
54
|
-
class=
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
61
|
+
class={twMerge(
|
|
62
|
+
'text-xs min-w-0 w-full overflow-hidden flex flex-col py-1.5',
|
|
63
|
+
$workspaceStore === workspace.id
|
|
64
|
+
? 'cursor-default bg-surface-selected'
|
|
65
|
+
: 'cursor-pointer hover:bg-surface-hover'
|
|
66
|
+
)}
|
|
58
67
|
on:click={async () => {
|
|
59
68
|
await toggleSwitchWorkspace(workspace.id)
|
|
60
69
|
}}
|
|
61
70
|
>
|
|
62
|
-
<div class="
|
|
63
|
-
|
|
64
|
-
|
|
71
|
+
<div class="flex items-center justify-between min-w-0 w-full">
|
|
72
|
+
<div>
|
|
73
|
+
<div class="text-primary pl-4 truncate text-left text-[1.2em]">{workspace.name}</div>
|
|
74
|
+
<div class="text-tertiary font-mono pl-4 text-2xs whitespace-nowrap truncate text-left">
|
|
75
|
+
{workspace.id}
|
|
76
|
+
</div>
|
|
77
|
+
</div>
|
|
78
|
+
{#if workspace.color}
|
|
79
|
+
<div
|
|
80
|
+
class="w-5 h-5 mr-2 rounded border border-gray-300 dark:border-gray-600"
|
|
81
|
+
style="background-color: {workspace.color}"
|
|
82
|
+
></div>
|
|
83
|
+
{/if}
|
|
65
84
|
</div>
|
|
66
85
|
</button>
|
|
67
86
|
</MenuItem>
|
|
@@ -81,19 +100,19 @@ async function toggleSwitchWorkspace(id) {
|
|
|
81
100
|
</div>
|
|
82
101
|
{/if}
|
|
83
102
|
{#if !strictWorkspaceSelect}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
103
|
+
<div class="py-1" role="none">
|
|
104
|
+
<a
|
|
105
|
+
href="{base}/user/workspaces"
|
|
106
|
+
on:click={() => {
|
|
107
|
+
localStorage.removeItem('workspace')
|
|
108
|
+
}}
|
|
109
|
+
class="text-primary block px-4 py-2 text-xs hover:bg-surface-hover hover:text-primary"
|
|
110
|
+
role="menuitem"
|
|
111
|
+
tabindex="-1"
|
|
112
|
+
>
|
|
113
|
+
All workspaces
|
|
114
|
+
</a>
|
|
115
|
+
</div>
|
|
97
116
|
{/if}
|
|
98
117
|
{#if ($userStore?.is_admin || $superadmin) && !strictWorkspaceSelect}
|
|
99
118
|
<div class="py-1" role="none">
|
|
@@ -19,22 +19,62 @@ export let noBorder = false;
|
|
|
19
19
|
export let rowCount = undefined;
|
|
20
20
|
export let hasMore = true;
|
|
21
21
|
export let contentHeight = 0;
|
|
22
|
+
export let tableFixed = false;
|
|
23
|
+
export let infiniteScroll = undefined;
|
|
22
24
|
let footerHeight = 0;
|
|
23
25
|
let tableHeight = 0;
|
|
24
26
|
const dispatch = createEventDispatcher();
|
|
27
|
+
let tableContainer;
|
|
28
|
+
let isLoading = false;
|
|
25
29
|
setContext('datatable', {
|
|
26
30
|
size
|
|
27
31
|
});
|
|
28
32
|
$: contentHeight = tableHeight - footerHeight;
|
|
33
|
+
function checkScrollStatus() {
|
|
34
|
+
if (!infiniteScroll || isLoading)
|
|
35
|
+
return;
|
|
36
|
+
const hasScrollbar = tableContainer.scrollHeight > tableContainer.clientHeight;
|
|
37
|
+
if (!hasScrollbar && hasMore) {
|
|
38
|
+
isLoading = true;
|
|
39
|
+
dispatch('loadMore');
|
|
40
|
+
setTimeout(() => {
|
|
41
|
+
isLoading = false;
|
|
42
|
+
}, 200);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
function handleScroll() {
|
|
46
|
+
if (!infiniteScroll || isLoading) {
|
|
47
|
+
if (isLoading) {
|
|
48
|
+
const checkAgain = () => {
|
|
49
|
+
if (!isLoading) {
|
|
50
|
+
handleScroll();
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
setTimeout(checkAgain, 200);
|
|
54
|
+
}
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
const { scrollTop, scrollHeight, clientHeight } = tableContainer;
|
|
58
|
+
if (scrollHeight - (scrollTop + clientHeight) < 50) {
|
|
59
|
+
isLoading = true;
|
|
60
|
+
dispatch('loadMore');
|
|
61
|
+
setTimeout(() => {
|
|
62
|
+
isLoading = false;
|
|
63
|
+
}, 1000);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
$: if (tableContainer && hasMore && !isLoading) {
|
|
67
|
+
checkScrollStatus();
|
|
68
|
+
}
|
|
29
69
|
</script>
|
|
30
70
|
|
|
31
71
|
<div
|
|
32
72
|
class={twMerge('h-full', rounded ? 'rounded-md' : '', noBorder ? 'border-0' : 'border')}
|
|
33
73
|
bind:clientHeight={tableHeight}
|
|
34
74
|
>
|
|
35
|
-
<List justify="between" gap="none">
|
|
36
|
-
<div class="w-full overflow-auto
|
|
37
|
-
<table class={
|
|
75
|
+
<List justify="between" gap="none" hFull={true}>
|
|
76
|
+
<div class="w-full overflow-auto h-fit" bind:this={tableContainer} on:scroll={handleScroll}>
|
|
77
|
+
<table class={tableFixed ? 'table-fixed w-full' : 'min-w-full'}>
|
|
38
78
|
<slot />
|
|
39
79
|
</table>
|
|
40
80
|
</div>
|
|
@@ -17,6 +17,8 @@ declare const __propDef: {
|
|
|
17
17
|
rowCount?: number | undefined;
|
|
18
18
|
hasMore?: boolean | undefined;
|
|
19
19
|
contentHeight?: number | undefined;
|
|
20
|
+
tableFixed?: boolean | undefined;
|
|
21
|
+
infiniteScroll?: boolean | undefined;
|
|
20
22
|
};
|
|
21
23
|
events: {
|
|
22
24
|
previous: CustomEvent<any>;
|
|
@@ -4,6 +4,7 @@ export let hoverable = false;
|
|
|
4
4
|
export let selected = false;
|
|
5
5
|
export let dividable = false;
|
|
6
6
|
export let disabled = false;
|
|
7
|
+
export let hovering = false;
|
|
7
8
|
const dispatch = createEventDispatcher();
|
|
8
9
|
</script>
|
|
9
10
|
|
|
@@ -13,11 +14,20 @@ const dispatch = createEventDispatcher();
|
|
|
13
14
|
selected ? 'bg-blue-50 dark:bg-blue-900/50' : '',
|
|
14
15
|
'transition-all',
|
|
15
16
|
dividable ? 'divide-x' : '',
|
|
16
|
-
disabled ? 'opacity-60' : ''
|
|
17
|
+
disabled ? 'opacity-60' : '',
|
|
18
|
+
$$props.class
|
|
17
19
|
)}
|
|
18
20
|
on:click={() => {
|
|
19
21
|
dispatch('click')
|
|
20
22
|
}}
|
|
23
|
+
on:mouseenter={() => {
|
|
24
|
+
hovering = true
|
|
25
|
+
dispatch('hover', true)
|
|
26
|
+
}}
|
|
27
|
+
on:mouseleave={() => {
|
|
28
|
+
hovering = false
|
|
29
|
+
dispatch('hover', false)
|
|
30
|
+
}}
|
|
21
31
|
>
|
|
22
32
|
<slot />
|
|
23
33
|
</tr>
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import { SvelteComponent } from "svelte";
|
|
2
2
|
declare const __propDef: {
|
|
3
3
|
props: {
|
|
4
|
+
[x: string]: any;
|
|
4
5
|
hoverable?: boolean | undefined;
|
|
5
6
|
selected?: boolean | undefined;
|
|
6
7
|
dividable?: boolean | undefined;
|
|
7
8
|
disabled?: boolean | undefined;
|
|
9
|
+
hovering?: boolean | undefined;
|
|
8
10
|
};
|
|
9
11
|
events: {
|
|
10
12
|
click: CustomEvent<any>;
|
|
13
|
+
hover: CustomEvent<any>;
|
|
11
14
|
} & {
|
|
12
15
|
[evt: string]: CustomEvent<any>;
|
|
13
16
|
};
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
<script>import Popover from '../meltComponents/Popover.svelte';
|
|
2
2
|
import { Button } from '../common';
|
|
3
|
-
import { Webhook, Route, Unplug, Mail } from 'lucide-svelte';
|
|
3
|
+
import { Webhook, Route, Unplug, Mail, Plus } from 'lucide-svelte';
|
|
4
4
|
import KafkaIcon from '../icons/KafkaIcon.svelte';
|
|
5
5
|
import { enterpriseLicense } from '../../stores';
|
|
6
6
|
import {} from '../../gen';
|
|
7
7
|
import { createEventDispatcher } from 'svelte';
|
|
8
8
|
import { captureTriggerKindToTriggerKind } from '../triggers';
|
|
9
9
|
import CaptureIcon from './CaptureIcon.svelte';
|
|
10
|
+
import NatsIcon from '../icons/NatsIcon.svelte';
|
|
11
|
+
export let small = false;
|
|
10
12
|
let isOpen = false;
|
|
11
13
|
const dispatch = createEventDispatcher();
|
|
12
14
|
function handleClick(kind) {
|
|
@@ -20,9 +22,31 @@ function handleClick(kind) {
|
|
|
20
22
|
|
|
21
23
|
<Popover closeButton={false} bind:open={isOpen}>
|
|
22
24
|
<svelte:fragment slot="trigger">
|
|
23
|
-
|
|
24
|
-
<
|
|
25
|
-
|
|
25
|
+
{#if small}
|
|
26
|
+
<Button
|
|
27
|
+
color="light"
|
|
28
|
+
size="xs"
|
|
29
|
+
variant="border"
|
|
30
|
+
wrapperClasses="h-full"
|
|
31
|
+
nonCaptureEvent
|
|
32
|
+
title="Test trigger"
|
|
33
|
+
>
|
|
34
|
+
<div class="flex flex-row items-center gap-1">
|
|
35
|
+
<CaptureIcon variant="redDot" />
|
|
36
|
+
<Plus size={10} class="text-red" />
|
|
37
|
+
</div>
|
|
38
|
+
</Button>
|
|
39
|
+
{:else}
|
|
40
|
+
<Button
|
|
41
|
+
color="dark"
|
|
42
|
+
btnClasses="rounded-l-none"
|
|
43
|
+
wrapperClasses="h-full"
|
|
44
|
+
nonCaptureEvent
|
|
45
|
+
title="Test trigger"
|
|
46
|
+
>
|
|
47
|
+
<CaptureIcon variant="redDot" />
|
|
48
|
+
</Button>
|
|
49
|
+
{/if}
|
|
26
50
|
</svelte:fragment>
|
|
27
51
|
<svelte:fragment slot="content">
|
|
28
52
|
<div class="flex flex-col bg-surface">
|
|
@@ -72,6 +96,16 @@ function handleClick(kind) {
|
|
|
72
96
|
<p class="text-xs text-secondary">Kafka</p>
|
|
73
97
|
</div>
|
|
74
98
|
</button>
|
|
99
|
+
<button
|
|
100
|
+
disabled={!$enterpriseLicense}
|
|
101
|
+
class="hover:bg-surface-hover p-2 transition-colors duration-150"
|
|
102
|
+
on:click={() => handleClick('nats')}
|
|
103
|
+
>
|
|
104
|
+
<div class="flex flex-row items-center gap-2">
|
|
105
|
+
<NatsIcon size={16} />
|
|
106
|
+
<p class="text-xs text-secondary">Nats</p>
|
|
107
|
+
</div>
|
|
108
|
+
</button>
|
|
75
109
|
</div>
|
|
76
110
|
</svelte:fragment>
|
|
77
111
|
</Popover>
|