windmill-components 1.531.1 → 1.537.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package/components/ArgInput.svelte +69 -19
- package/package/components/Auth0Setting.svelte +8 -3
- package/package/components/Dev.svelte +5 -4
- package/package/components/DiffDrawer.svelte +2 -2
- package/package/components/DiffEditor.svelte +34 -37
- package/package/components/DiffEditor.svelte.d.ts +23 -39
- package/package/components/EditableSchemaForm.svelte +67 -67
- package/package/components/EditableSchemaForm.svelte.d.ts +3 -3
- package/package/components/Editor.svelte +32 -11
- package/package/components/Editor.svelte.d.ts +6 -0
- package/package/components/EditorBar.svelte +2 -2
- package/package/components/EditorBar.svelte.d.ts +1 -0
- package/package/components/FieldHeader.svelte +1 -1
- package/package/components/FlowBuilder.svelte +7 -4
- package/package/components/FlowPreviewContent.svelte +3 -3
- package/package/components/FlowStatusViewer.svelte +28 -0
- package/package/components/FlowStatusViewerInner.svelte +72 -20
- package/package/components/FlowStatusViewerInner.svelte.d.ts +7 -0
- package/package/components/ModulePreview.svelte +2 -1
- package/package/components/ModulePreview.svelte.d.ts +1 -0
- package/package/components/ModulePreviewForm.svelte +72 -65
- package/package/components/ModulePreviewResultViewer.svelte +13 -18
- package/package/components/ModuleTest.svelte +10 -6
- package/package/components/ModuleTest.svelte.d.ts +1 -0
- package/package/components/OktaSetting.svelte +8 -3
- package/package/components/Portal.svelte +11 -7
- package/package/components/Portal.svelte.d.ts +19 -39
- package/package/components/ResourceEditor.svelte +4 -0
- package/package/components/RunForm.svelte +2 -2
- package/package/components/RunForm.svelte.d.ts +1 -1
- package/package/components/RunFormAdvancedPopup.svelte +13 -1
- package/package/components/SchemaForm.svelte +1 -2
- package/package/components/ScriptBuilder.svelte +1 -1
- package/package/components/ScriptEditor.svelte +22 -7
- package/package/components/SimpleEditor.svelte +0 -1
- package/package/components/StringTypeNarrowing.svelte.d.ts +1 -1
- package/package/components/apps/components/layout/AppModal.svelte +2 -2
- package/package/components/apps/editor/component/ComponentNavigation.svelte +3 -2
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +1 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +0 -1
- package/package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +3 -1
- package/package/components/apps/editor/settingsPanel/GridCondition.svelte +3 -1
- package/package/components/apps/editor/settingsPanel/GridNavbar.svelte +3 -1
- package/package/components/apps/editor/settingsPanel/GridTab.svelte +3 -1
- package/package/components/apps/editor/settingsPanel/OneOfInputSpecsEditor.svelte +55 -53
- package/package/components/apps/editor/settingsPanel/TableActions.svelte +3 -1
- package/package/components/common/button/model.d.ts +1 -1
- package/package/components/common/drawer/Disposable.svelte +51 -30
- package/package/components/common/drawer/Disposable.svelte.d.ts +12 -44
- package/package/components/common/drawer/Drawer.svelte +15 -11
- package/package/components/copilot/FlowInlineScriptAIButton.svelte +4 -2
- package/package/components/copilot/FlowInlineScriptAIButton.svelte.d.ts +4 -1
- package/package/components/copilot/MetadataGen.svelte +14 -3
- package/package/components/copilot/autocomplete/Autocompletor.js +0 -2
- package/package/components/copilot/chat/AIChat.svelte +2 -4
- package/package/components/copilot/chat/AIChatInput.svelte +3 -3
- package/package/components/copilot/chat/AIChatManager.svelte.js +24 -12
- package/package/components/copilot/chat/AvailableContextList.svelte +243 -26
- package/package/components/copilot/chat/AvailableContextList.svelte.d.ts +2 -1
- package/package/components/copilot/chat/ContextElementBadge.svelte +31 -15
- package/package/components/copilot/chat/ContextElementBadge.svelte.d.ts +5 -20
- package/package/components/copilot/chat/ContextManager.svelte.d.ts +15 -2
- package/package/components/copilot/chat/ContextManager.svelte.js +134 -24
- package/package/components/copilot/chat/ContextTextarea.svelte +22 -49
- package/package/components/copilot/chat/ToolContentDisplay.svelte +10 -1
- package/package/components/copilot/chat/ToolExecutionDisplay.svelte +3 -3
- package/package/components/copilot/chat/context.d.ts +19 -1
- package/package/components/copilot/chat/context.js +1 -0
- package/package/components/copilot/chat/flow/FlowAIChat.svelte +109 -7
- package/package/components/copilot/chat/flow/core.d.ts +13 -1
- package/package/components/copilot/chat/flow/core.js +171 -19
- package/package/components/copilot/chat/flow/uiIntents.d.ts +8 -0
- package/package/components/copilot/chat/flow/uiIntents.js +5 -0
- package/package/components/copilot/chat/flow/useUiIntent.d.ts +5 -0
- package/package/components/copilot/chat/flow/useUiIntent.js +12 -0
- package/package/components/copilot/chat/monaco-adapter.d.ts +22 -4
- package/package/components/copilot/chat/monaco-adapter.js +55 -16
- package/package/components/copilot/chat/script/core.d.ts +2 -2
- package/package/components/copilot/chat/script/core.js +54 -124
- package/package/components/copilot/chat/shared.d.ts +14 -2
- package/package/components/copilot/chat/shared.js +170 -7
- package/package/components/copilot/lib.js +12 -7
- package/package/components/copilot/shared.d.ts +1 -1
- package/package/components/copilot/shared.js +16 -10
- package/package/components/flows/FlowEditor.svelte +15 -1
- package/package/components/flows/FlowEditor.svelte.d.ts +1 -0
- package/package/components/flows/FlowModuleIcon.svelte +39 -0
- package/package/components/flows/FlowModuleIcon.svelte.d.ts +10 -0
- package/package/components/flows/common/FlowCardHeader.svelte +4 -1
- package/package/components/flows/content/FlowBranchesAllWrapper.svelte +6 -0
- package/package/components/flows/content/FlowBranchesOneWrapper.svelte +6 -0
- package/package/components/flows/content/FlowEditorPanel.svelte +2 -1
- package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowInput.svelte +31 -34
- package/package/components/flows/content/FlowInput.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowLoop.svelte +7 -0
- package/package/components/flows/content/FlowModuleComponent.svelte +39 -44
- package/package/components/flows/content/FlowModuleScript.svelte +1 -1
- package/package/components/flows/content/FlowModuleSuspend.svelte +16 -18
- package/package/components/flows/content/FlowWhileLoop.svelte +6 -0
- package/package/components/flows/content/ScriptEditorDrawer.svelte +9 -11
- package/package/components/flows/dfs.d.ts +1 -1
- package/package/components/flows/dfs.js +6 -6
- package/package/components/flows/flowInfers.js +7 -7
- package/package/components/flows/flowStateUtils.svelte.js +1 -2
- package/package/components/flows/map/FlowModuleSchemaItem.svelte +12 -26
- package/package/components/flows/map/MapItem.svelte +12 -39
- package/package/components/flows/map/VirtualItem.svelte +1 -1
- package/package/components/flows/pickers/TopLevelNode.svelte +1 -1
- package/package/components/flows/propPicker/InputPickerInner.svelte +5 -5
- package/package/components/flows/propPicker/OutputPickerInner.svelte +143 -118
- package/package/components/flows/propPicker/OutputPickerInner.svelte.d.ts +7 -16
- package/package/components/flows/{testSteps.svelte.d.ts → stepsInputArgs.svelte.d.ts} +2 -1
- package/package/components/flows/{testSteps.svelte.js → stepsInputArgs.svelte.js} +15 -3
- package/package/components/flows/types.d.ts +16 -3
- package/package/components/flows/utils.js +3 -0
- package/package/components/graph/FlowGraphV2.svelte +1 -1
- package/package/components/graph/renderers/nodes/AIToolNode.svelte +4 -4
- package/package/components/graph/renderers/nodes/NewAIToolNode.svelte +71 -54
- package/package/components/propertyPicker/ObjectViewer.svelte +11 -3
- package/package/components/raw_apps/RawAppInlineScriptEditor.svelte +1 -1
- package/package/components/schema/AddPropertyV2.svelte +2 -7
- package/package/components/schema/AddPropertyV2.svelte.d.ts +3 -20
- package/package/components/schema/EditableSchemaDrawer.svelte +109 -115
- package/package/components/schema/EditableSchemaDrawer.svelte.d.ts +2 -1
- package/package/components/schema/EditableSchemaSdkWrapper.svelte +16 -3
- package/package/components/schema/EditableSchemaSdkWrapper.svelte.d.ts +4 -1
- package/package/components/schema/EditableSchemaWrapper.svelte +3 -10
- package/package/components/schema/FlowPropertyEditor.svelte +83 -57
- package/package/components/schema/FlowPropertyEditor.svelte.d.ts +1 -1
- package/package/components/schema/PropertyEditor.svelte.d.ts +1 -1
- package/package/components/schema/SchemaFormDND.svelte +11 -10
- package/package/components/schema/SchemaFormDND.svelte.d.ts +3 -2
- package/package/components/schema/editable_schema_wrapper.d.ts +0 -3
- package/package/components/schema/jsonSchemaResource.svelte.d.ts +2 -0
- package/package/components/schema/jsonSchemaResource.svelte.js +40 -0
- package/package/components/settings/PremiumInfo.svelte +7 -2
- package/package/components/triggers/CaptureWrapper.svelte +2 -13
- package/package/components/triggers/CaptureWrapper.svelte.d.ts +1 -1
- package/package/components/triggers/TriggersWrapper.svelte +1 -0
- package/package/components/triggers/http/RouteEditorInner.svelte +1 -1
- package/package/components/triggers/nats/NatsTriggerEditorInner.svelte +23 -20
- package/package/components/triggers/nats/NatsTriggersConfigSection.svelte +15 -27
- package/package/components/triggers/nats/NatsTriggersConfigSection.svelte.d.ts +7 -5
- package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +16 -16
- package/package/hubPaths.json +3 -1
- package/package/script_helpers.d.ts +2 -2
- package/package/script_helpers.js +2 -0
- package/package/stores.d.ts +1 -0
- package/package/stores.js +8 -1
- package/package/utils.d.ts +1 -1
- package/package.json +14 -14
- package/package/components/ModulePreviewResultViewer.svelte.d.ts +0 -28
|
@@ -3,45 +3,25 @@ export function portal(el: any, options: any): {
|
|
|
3
3
|
destroy: () => void;
|
|
4
4
|
};
|
|
5
5
|
export default Portal;
|
|
6
|
-
type Portal =
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
target?: string | HTMLElement | undefined;
|
|
10
|
-
}, {
|
|
11
|
-
default: {};
|
|
12
|
-
}>, {
|
|
13
|
-
[evt: string]: CustomEvent<any>;
|
|
14
|
-
}, {
|
|
15
|
-
default: {};
|
|
16
|
-
}> & {
|
|
17
|
-
$$bindings?: string | undefined;
|
|
6
|
+
type Portal = {
|
|
7
|
+
$on?(type: string, callback: (e: any) => void): () => void;
|
|
8
|
+
$set?(props: Partial<Props>): void;
|
|
18
9
|
};
|
|
19
|
-
declare const Portal:
|
|
20
|
-
|
|
10
|
+
declare const Portal: import("svelte").Component<{
|
|
11
|
+
/**
|
|
12
|
+
* - DOM Element or CSS Selector
|
|
13
|
+
*/
|
|
14
|
+
target?: string | HTMLElement | undefined;
|
|
21
15
|
name?: any;
|
|
16
|
+
class?: string | undefined;
|
|
17
|
+
children?: import("svelte").Snippet<[]> | undefined;
|
|
18
|
+
}, {}, "">;
|
|
19
|
+
type Props = {
|
|
20
|
+
/**
|
|
21
|
+
* - DOM Element or CSS Selector
|
|
22
|
+
*/
|
|
22
23
|
target?: string | HTMLElement | undefined;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}, {
|
|
28
|
-
default: {};
|
|
29
|
-
}, {}, string>;
|
|
30
|
-
type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
|
|
31
|
-
default: any;
|
|
32
|
-
} ? Props extends Record<string, never> ? any : {
|
|
33
|
-
children?: any;
|
|
34
|
-
} : {});
|
|
35
|
-
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
36
|
-
new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
|
|
37
|
-
$$bindings?: Bindings;
|
|
38
|
-
} & Exports;
|
|
39
|
-
(internal: unknown, props: Props & {
|
|
40
|
-
$$events?: Events;
|
|
41
|
-
$$slots?: Slots;
|
|
42
|
-
}): Exports & {
|
|
43
|
-
$set?: any;
|
|
44
|
-
$on?: any;
|
|
45
|
-
};
|
|
46
|
-
z_$$bindings?: Bindings;
|
|
47
|
-
}
|
|
24
|
+
name?: any;
|
|
25
|
+
class?: string | undefined;
|
|
26
|
+
children?: import("svelte").Snippet<[]> | undefined;
|
|
27
|
+
};
|
|
@@ -18,6 +18,7 @@ import GfmMarkdown from './GfmMarkdown.svelte';
|
|
|
18
18
|
import TestTriggerConnection from './triggers/TestTriggerConnection.svelte';
|
|
19
19
|
import GitHubAppIntegration from './GitHubAppIntegration.svelte';
|
|
20
20
|
import Button from './common/button/Button.svelte';
|
|
21
|
+
import { clearJsonSchemaResourceCache } from './schema/jsonSchemaResource.svelte';
|
|
21
22
|
let { canSave = $bindable(true), resource_type = $bindable(undefined), path = $bindable(''), newResource = false, hidePath = false, onChange, defaultValues = undefined } = $props();
|
|
22
23
|
let isValid = $state(true);
|
|
23
24
|
let jsonError = $state('');
|
|
@@ -64,6 +65,9 @@ export async function editResource() {
|
|
|
64
65
|
path: resourceToEdit.path,
|
|
65
66
|
requestBody: { path, value: args, description }
|
|
66
67
|
});
|
|
68
|
+
if (resourceToEdit.resource_type === 'json_schema') {
|
|
69
|
+
clearJsonSchemaResourceCache(resourceToEdit.path, $workspaceStore);
|
|
70
|
+
}
|
|
67
71
|
sendUserToast(`Updated resource at ${path}`);
|
|
68
72
|
dispatch('refresh', path);
|
|
69
73
|
}
|
|
@@ -25,7 +25,7 @@ export async function setArgs(nargs) {
|
|
|
25
25
|
export function run() {
|
|
26
26
|
runAction(scheduledForStr, args ?? {}, invisible_to_owner, overrideTag);
|
|
27
27
|
}
|
|
28
|
-
let { runnable
|
|
28
|
+
let { runnable, runAction, buttonText = 'Run', schedulable = true, detailed = true, autofocus = false, topButton = false, loading = false, noVariablePicker = false, viewKeybinding = false, scheduledForStr = $bindable(), invisible_to_owner = $bindable(), overrideTag = $bindable(), args = $bindable(), jsonView = false, isValid = $bindable(true) } = $props();
|
|
29
29
|
$effect.pre(() => {
|
|
30
30
|
if (args == undefined) {
|
|
31
31
|
args = {};
|
|
@@ -238,7 +238,7 @@ $effect(() => {
|
|
|
238
238
|
bind:scheduledForStr
|
|
239
239
|
bind:invisible_to_owner
|
|
240
240
|
bind:overrideTag
|
|
241
|
-
|
|
241
|
+
{runnable}
|
|
242
242
|
/>
|
|
243
243
|
{/snippet}
|
|
244
244
|
</Popover>
|
|
@@ -33,6 +33,6 @@ declare const RunForm: import("svelte").Component<Props, {
|
|
|
33
33
|
setArgs: (nargs: Record<string, any>) => Promise<void>;
|
|
34
34
|
run: () => void;
|
|
35
35
|
setCode: (code: string) => void;
|
|
36
|
-
}, "args" | "invisible_to_owner" | "
|
|
36
|
+
}, "args" | "invisible_to_owner" | "isValid" | "scheduledForStr" | "overrideTag">;
|
|
37
37
|
type RunForm = ReturnType<typeof RunForm>;
|
|
38
38
|
export default RunForm;
|
|
@@ -53,7 +53,19 @@ async function loadWorkerGroups() {
|
|
|
53
53
|
{#if !$userStore?.operator}
|
|
54
54
|
{#if $workerTags && $workerTags?.length > 0}
|
|
55
55
|
<div class="w-full">
|
|
56
|
-
<select
|
|
56
|
+
<select
|
|
57
|
+
placeholder="Worker group"
|
|
58
|
+
bind:value={
|
|
59
|
+
() => overrideTag ?? '',
|
|
60
|
+
(v) => {
|
|
61
|
+
if (v == '') {
|
|
62
|
+
overrideTag = undefined
|
|
63
|
+
} else {
|
|
64
|
+
overrideTag = v
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
>
|
|
57
69
|
{#if overrideTag}
|
|
58
70
|
<option value="">reset to default</option>
|
|
59
71
|
{:else}
|
|
@@ -14,7 +14,7 @@ import ArgInput from './ArgInput.svelte';
|
|
|
14
14
|
import { createEventDispatcher, untrack } from 'svelte';
|
|
15
15
|
import { deepEqual } from 'fast-equals';
|
|
16
16
|
import { dragHandleZone } from '@windmill-labs/svelte-dnd-action';
|
|
17
|
-
let { schema = $bindable(), hiddenArgs = [], schemaFieldTooltip = {}, args = $bindable(undefined), disabledArgs = [], disabled = false, isValid = $bindable(true), autofocus = false, defaultValues = {}, shouldHideNoInputs = false, compact = false, linkedSecret = $bindable(undefined), linkedSecretCandidates = undefined, noVariablePicker = false, flexWrap = false, noDelete = false, prettifyHeader = false, disablePortal = false, showSchemaExplorer = false, showReset = false, onlyMaskPassword = false, dndConfig = undefined, items = undefined, helperScript = undefined, lightHeader = false, diff = {}, nestedParent = undefined, shouldDispatchChanges = false, nestedClasses = '', dynamicEnums = {}, largeGap = false, css = undefined, displayType = true, appPath = undefined, className = '', computeS3ForceViewerPolicies = undefined, workspace = undefined, actions } = $props();
|
|
17
|
+
let { schema = $bindable(), hiddenArgs = [], schemaFieldTooltip = {}, args = $bindable(undefined), disabledArgs = [], disabled = false, isValid = $bindable(true), autofocus = false, defaultValues = {}, shouldHideNoInputs = false, compact = false, linkedSecret = $bindable(undefined), linkedSecretCandidates = undefined, noVariablePicker = false, flexWrap = false, noDelete = false, prettifyHeader = false, disablePortal = false, showSchemaExplorer = false, showReset = false, onlyMaskPassword = false, dndConfig = undefined, items = undefined, helperScript = undefined, lightHeader = false, diff = {}, nestedParent = undefined, shouldDispatchChanges = false, nestedClasses = '', dynamicEnums = {}, largeGap = false, css = undefined, displayType = true, appPath = undefined, className = '', computeS3ForceViewerPolicies = undefined, workspace = undefined, actions: actions_render = undefined } = $props();
|
|
18
18
|
const dispatch = createEventDispatcher();
|
|
19
19
|
let inputCheck = $state({});
|
|
20
20
|
export function setDefaults() {
|
|
@@ -135,7 +135,6 @@ $effect.pre(() => {
|
|
|
135
135
|
$effect.pre(() => {
|
|
136
136
|
isValid = allTrue(inputCheck ?? {});
|
|
137
137
|
});
|
|
138
|
-
const actions_render = $derived(actions);
|
|
139
138
|
</script>
|
|
140
139
|
|
|
141
140
|
{#if showReset}
|
|
@@ -908,7 +908,7 @@ async function loadWorkerTags() {
|
|
|
908
908
|
>
|
|
909
909
|
<LanguageIcon {lang} />
|
|
910
910
|
<span class="ml-2 py-2 truncate">{label}</span>
|
|
911
|
-
{#if lang === '
|
|
911
|
+
{#if lang === 'ruby'}
|
|
912
912
|
<span class="text-tertiary !text-xs"> BETA </span>
|
|
913
913
|
{/if}
|
|
914
914
|
</Button>
|
|
@@ -35,6 +35,7 @@ import { aiChatManager, AIMode } from './copilot/chat/AIChatManager.svelte';
|
|
|
35
35
|
import { triggerableByAI } from '../actions/triggerableByAI.svelte';
|
|
36
36
|
import AssetsDropdownButton from './assets/AssetsDropdownButton.svelte';
|
|
37
37
|
import { assetEq } from './assets/lib';
|
|
38
|
+
import { editor as meditor } from 'monaco-editor';
|
|
38
39
|
let { schema = $bindable(), code = $bindable(), path, lang, kind = undefined, template = 'script', tag, fixedOverflowWidgets = true, noSyncFromGithub = false, editor = $bindable(undefined), diffEditor = $bindable(undefined), collabMode = false, edit = true, noHistory = false, saveToWorkspace = false, watchChanges = false, customUi = undefined, args = $bindable(), selectedTab = $bindable('main'), hasPreprocessor = $bindable(false), captureTable = $bindable(undefined), showCaptures = true, stablePathForCaptures = '', lastSavedCode = undefined, lastDeployedCode = undefined, disableAi = false, assets = $bindable(), editor_bar_right } = $props();
|
|
39
40
|
$effect.pre(() => {
|
|
40
41
|
if (schema == undefined) {
|
|
@@ -162,6 +163,7 @@ export async function inferSchema(code, nlang, resetArgs = false) {
|
|
|
162
163
|
onMount(() => {
|
|
163
164
|
inferSchema(code);
|
|
164
165
|
loadPastTests();
|
|
166
|
+
aiChatManager.saveAndClear();
|
|
165
167
|
aiChatManager.changeMode(AIMode.SCRIPT);
|
|
166
168
|
});
|
|
167
169
|
setLicense();
|
|
@@ -272,7 +274,7 @@ function getError(job) {
|
|
|
272
274
|
function showDiffMode() {
|
|
273
275
|
diffMode = true;
|
|
274
276
|
diffEditor?.setOriginal(lastDeployedCode ?? '');
|
|
275
|
-
diffEditor?.
|
|
277
|
+
diffEditor?.setModifiedModel(editor?.getModel());
|
|
276
278
|
diffEditor?.show();
|
|
277
279
|
editor?.hide();
|
|
278
280
|
}
|
|
@@ -492,16 +494,29 @@ $effect(() => {
|
|
|
492
494
|
{args}
|
|
493
495
|
/>
|
|
494
496
|
<DiffEditor
|
|
495
|
-
|
|
497
|
+
className="h-full"
|
|
496
498
|
bind:this={diffEditor}
|
|
499
|
+
modifiedModel={editor?.getModel() as meditor.ITextModel}
|
|
497
500
|
automaticLayout
|
|
498
501
|
defaultLang={scriptLangToEditorLang(lang)}
|
|
499
502
|
{fixedOverflowWidgets}
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
503
|
+
buttons={diffMode
|
|
504
|
+
? [
|
|
505
|
+
{
|
|
506
|
+
text: 'See changes history',
|
|
507
|
+
onClick: () => {
|
|
508
|
+
showHistoryDrawer = true
|
|
509
|
+
}
|
|
510
|
+
},
|
|
511
|
+
{
|
|
512
|
+
text: 'Quit diff mode',
|
|
513
|
+
onClick: () => {
|
|
514
|
+
hideDiffMode()
|
|
515
|
+
},
|
|
516
|
+
color: 'red'
|
|
517
|
+
}
|
|
518
|
+
]
|
|
519
|
+
: []}
|
|
505
520
|
/>
|
|
506
521
|
{/key}
|
|
507
522
|
</div>
|
|
@@ -289,7 +289,6 @@ async function loadMonaco() {
|
|
|
289
289
|
return;
|
|
290
290
|
}
|
|
291
291
|
try {
|
|
292
|
-
console.log('fixedOverflowWidgets', fixedOverflowWidgets);
|
|
293
292
|
editor = meditor.create(divEl, {
|
|
294
293
|
...editorConfig(code ?? '', lang, automaticLayout, fixedOverflowWidgets, $relativeLineNumbers),
|
|
295
294
|
model,
|
|
@@ -15,6 +15,6 @@ interface Props {
|
|
|
15
15
|
overrideAllowKindChange?: boolean;
|
|
16
16
|
originalType?: string | undefined;
|
|
17
17
|
}
|
|
18
|
-
declare const StringTypeNarrowing: import("svelte").Component<Props, {}, "password" | "disableCreate" | "pattern" | "format" | "enum_" | "enumLabels" | "contentEncoding" | "customErrorMessage" | "
|
|
18
|
+
declare const StringTypeNarrowing: import("svelte").Component<Props, {}, "password" | "disableCreate" | "pattern" | "format" | "enum_" | "enumLabels" | "contentEncoding" | "customErrorMessage" | "minRows" | "disableVariablePicker" | "dateFormat">;
|
|
19
19
|
type StringTypeNarrowing = ReturnType<typeof StringTypeNarrowing>;
|
|
20
20
|
export default StringTypeNarrowing;
|
|
@@ -121,11 +121,11 @@ async function getMenuElements() {
|
|
|
121
121
|
<Disposable
|
|
122
122
|
{id}
|
|
123
123
|
bind:this={disposable}
|
|
124
|
-
|
|
124
|
+
onOpen={() => {
|
|
125
125
|
outputs?.open.set(true)
|
|
126
126
|
onOpenRecomputeIds?.forEach((id) => $runnableComponents?.[id]?.cb?.map((cb) => cb?.()))
|
|
127
127
|
}}
|
|
128
|
-
|
|
128
|
+
onClose={() => {
|
|
129
129
|
outputs?.open.set(false)
|
|
130
130
|
onCloseRecomputeIds?.forEach((id) => $runnableComponents?.[id]?.cb?.map((cb) => cb?.()))
|
|
131
131
|
}}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script lang="ts">import { getContext } from 'svelte';
|
|
2
2
|
import { handleEscape, handlePaste, handleArrowUp, handleCut, handleCopy, down, right, left } from './componentCallbacks.svelte';
|
|
3
|
-
const { history, movingcomponents, jobsDrawerOpen } = getContext('AppEditorContext');
|
|
3
|
+
const { history, movingcomponents, jobsDrawerOpen, runnableJobEditorPanel } = getContext('AppEditorContext');
|
|
4
4
|
const { app, selectedComponent, focusedGrid, componentControl } = getContext('AppViewerContext');
|
|
5
5
|
const ctx = {
|
|
6
6
|
history,
|
|
@@ -16,7 +16,8 @@ function keydown(event) {
|
|
|
16
16
|
// Ignore keydown events if the user is typing in monaco
|
|
17
17
|
let classes = event.target?.['className'];
|
|
18
18
|
if ((typeof classes === 'string' && classes.includes('inputarea')) ||
|
|
19
|
-
['INPUT', 'TEXTAREA'].includes(document.activeElement?.tagName)
|
|
19
|
+
['INPUT', 'TEXTAREA'].includes(document.activeElement?.tagName) ||
|
|
20
|
+
$runnableJobEditorPanel.focused) {
|
|
20
21
|
return;
|
|
21
22
|
}
|
|
22
23
|
switch (event.key) {
|
|
@@ -350,7 +350,7 @@ let extraLib = $derived(isFrontend && worldStore
|
|
|
350
350
|
<DiffEditor
|
|
351
351
|
open={false}
|
|
352
352
|
bind:this={diffEditor}
|
|
353
|
-
|
|
353
|
+
className="h-full"
|
|
354
354
|
automaticLayout
|
|
355
355
|
fixedOverflowWidgets
|
|
356
356
|
defaultLang={scriptLangToEditorLang(inlineScript?.language)}
|
|
@@ -218,6 +218,7 @@ $effect(() => {
|
|
|
218
218
|
$effect(() => {
|
|
219
219
|
items != undefined && handleItemsChange();
|
|
220
220
|
});
|
|
221
|
+
const rnd = generateRandomString();
|
|
221
222
|
</script>
|
|
222
223
|
|
|
223
224
|
<div class="flex gap-2 flex-col mt-2 w-full">
|
|
@@ -267,7 +268,8 @@ $effect(() => {
|
|
|
267
268
|
use:dragHandleZone={{
|
|
268
269
|
items,
|
|
269
270
|
flipDurationMs,
|
|
270
|
-
dropTargetStyle: {}
|
|
271
|
+
dropTargetStyle: {},
|
|
272
|
+
type: rnd
|
|
271
273
|
}}
|
|
272
274
|
onconsider={handleConsider}
|
|
273
275
|
onfinalize={handleFinalize}
|
|
@@ -92,6 +92,7 @@ function addCondition() {
|
|
|
92
92
|
});
|
|
93
93
|
component.numberOfSubgrids = items.length + 1;
|
|
94
94
|
}
|
|
95
|
+
const rnd = generateRandomString();
|
|
95
96
|
</script>
|
|
96
97
|
|
|
97
98
|
<PanelSection title={'Conditions'}>
|
|
@@ -107,7 +108,8 @@ function addCondition() {
|
|
|
107
108
|
use:dragHandleZone={{
|
|
108
109
|
items: items,
|
|
109
110
|
flipDurationMs: 200,
|
|
110
|
-
dropTargetStyle: {}
|
|
111
|
+
dropTargetStyle: {},
|
|
112
|
+
type: rnd
|
|
111
113
|
}}
|
|
112
114
|
onconsider={handleConsider}
|
|
113
115
|
onfinalize={handleFinalize}
|
|
@@ -94,6 +94,7 @@ function handleFinalize(e) {
|
|
|
94
94
|
}
|
|
95
95
|
let resolvedPaths = $state([]);
|
|
96
96
|
let resolvedLabels = $state([]);
|
|
97
|
+
const rnd = generateRandomString();
|
|
97
98
|
</script>
|
|
98
99
|
|
|
99
100
|
<PanelSection
|
|
@@ -107,7 +108,8 @@ let resolvedLabels = $state([]);
|
|
|
107
108
|
use:dragHandleZone={{
|
|
108
109
|
items,
|
|
109
110
|
flipDurationMs: 200,
|
|
110
|
-
dropTargetStyle: {}
|
|
111
|
+
dropTargetStyle: {},
|
|
112
|
+
type: rnd
|
|
111
113
|
}}
|
|
112
114
|
onconsider={handleConsider}
|
|
113
115
|
onfinalize={handleFinalize}
|
|
@@ -112,6 +112,7 @@ function handleFinalize(e) {
|
|
|
112
112
|
});
|
|
113
113
|
}
|
|
114
114
|
}
|
|
115
|
+
const rnd = generateRandomString();
|
|
115
116
|
</script>
|
|
116
117
|
|
|
117
118
|
<PanelSection title={`${word}s ${tabs && tabs.length > 0 ? `(${tabs.length})` : ''}`}>
|
|
@@ -123,7 +124,8 @@ function handleFinalize(e) {
|
|
|
123
124
|
use:dragHandleZone={{
|
|
124
125
|
items,
|
|
125
126
|
flipDurationMs: 200,
|
|
126
|
-
dropTargetStyle: {}
|
|
127
|
+
dropTargetStyle: {},
|
|
128
|
+
type: rnd
|
|
127
129
|
}}
|
|
128
130
|
onconsider={handleConsider}
|
|
129
131
|
onfinalize={handleFinalize}
|
|
@@ -3,7 +3,7 @@ import { addWhitespaceBeforeCapitals, capitalize } from '../../../../utils';
|
|
|
3
3
|
import { cleanseOneOfConfiguration } from '../appUtils';
|
|
4
4
|
import InputsSpecEditor from './InputsSpecEditor.svelte';
|
|
5
5
|
let { key, oneOf = $bindable(), inputSpecsConfiguration, labels, shouldCapitalize, id, resourceOnly, tooltip, disabledOptions = [], acceptSelf = false, recomputeOnInputChanged = true, showOnDemandOnlyToggle = true } = $props();
|
|
6
|
-
$effect(() => {
|
|
6
|
+
$effect.pre(() => {
|
|
7
7
|
if (oneOf == undefined) {
|
|
8
8
|
oneOf = { configuration: {}, selected: '' };
|
|
9
9
|
}
|
|
@@ -35,59 +35,61 @@ function getValueOfDeprecated(obj) {
|
|
|
35
35
|
</script>
|
|
36
36
|
|
|
37
37
|
<div class="p-2 border">
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
</div>
|
|
44
|
-
<select
|
|
45
|
-
class="w-full border border-gray-300 rounded-md p-2"
|
|
46
|
-
value={oneOf.selected}
|
|
47
|
-
onchange={(e) => {
|
|
48
|
-
oneOf = { ...oneOf, selected: e?.target?.['value'] }
|
|
49
|
-
}}
|
|
50
|
-
>
|
|
51
|
-
{#each Object.keys(inputSpecsConfiguration ?? {}) as choice}
|
|
52
|
-
{#if (!disabledOptions.includes(choice) && !getValueOfDeprecated(inputSpecsConfiguration[choice])) || oneOf.selected === choice}
|
|
53
|
-
<option value={choice}>{labels?.[choice] ?? choice}</option>
|
|
38
|
+
{#if oneOf}
|
|
39
|
+
<div class="mb-2 text-sm font-semibold">
|
|
40
|
+
{capitalize(addWhitespaceBeforeCapitals(key))}
|
|
41
|
+
{#if tooltip}
|
|
42
|
+
<Tooltip light>{tooltip}</Tooltip>
|
|
54
43
|
{/if}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
{#each Object.keys(inputSpecsConfiguration?.[oneOf.selected] ?? {}) as nestedKey}
|
|
62
|
-
{@const config = {
|
|
63
|
-
...inputSpecsConfiguration?.[oneOf.selected]?.[nestedKey],
|
|
64
|
-
...oneOf.configuration?.[oneOf.selected]?.[nestedKey]
|
|
44
|
+
</div>
|
|
45
|
+
<select
|
|
46
|
+
class="w-full border border-gray-300 rounded-md p-2"
|
|
47
|
+
value={oneOf.selected}
|
|
48
|
+
onchange={(e) => {
|
|
49
|
+
oneOf = { ...oneOf, selected: e?.target?.['value'] }
|
|
65
50
|
}}
|
|
51
|
+
>
|
|
52
|
+
{#each Object.keys(inputSpecsConfiguration ?? {}) as choice}
|
|
53
|
+
{#if (!disabledOptions.includes(choice) && !getValueOfDeprecated(inputSpecsConfiguration[choice])) || oneOf.selected === choice}
|
|
54
|
+
<option value={choice}>{labels?.[choice] ?? choice}</option>
|
|
55
|
+
{/if}
|
|
56
|
+
{/each}
|
|
57
|
+
</select>
|
|
58
|
+
{#if oneOf.selected !== 'none' && oneOf.selected !== 'errorOverlay'}
|
|
59
|
+
<div class="mb-4"></div>
|
|
60
|
+
{/if}
|
|
61
|
+
<div class="flex flex-col gap-4">
|
|
62
|
+
{#each Object.keys(inputSpecsConfiguration?.[oneOf.selected] ?? {}) as nestedKey}
|
|
63
|
+
{@const config = {
|
|
64
|
+
...inputSpecsConfiguration?.[oneOf.selected]?.[nestedKey],
|
|
65
|
+
...oneOf.configuration?.[oneOf.selected]?.[nestedKey]
|
|
66
|
+
}}
|
|
66
67
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
68
|
+
{#if config && oneOf.configuration[oneOf.selected]}
|
|
69
|
+
<InputsSpecEditor
|
|
70
|
+
{recomputeOnInputChanged}
|
|
71
|
+
key={nestedKey}
|
|
72
|
+
bind:componentInput={oneOf.configuration[oneOf.selected][nestedKey]}
|
|
73
|
+
{id}
|
|
74
|
+
{acceptSelf}
|
|
75
|
+
userInputEnabled={false}
|
|
76
|
+
{shouldCapitalize}
|
|
77
|
+
{resourceOnly}
|
|
78
|
+
fieldType={config?.['fieldType']}
|
|
79
|
+
subFieldType={config?.['subFieldType']}
|
|
80
|
+
format={config?.['format']}
|
|
81
|
+
selectOptions={config?.['selectOptions']}
|
|
82
|
+
placeholder={config?.['placeholder']}
|
|
83
|
+
customTitle={config?.['customTitle']}
|
|
84
|
+
tooltip={config?.['tooltip']}
|
|
85
|
+
fileUpload={config?.['fileUpload']}
|
|
86
|
+
loading={config?.['loading']}
|
|
87
|
+
documentationLink={config?.['documentationLink']}
|
|
88
|
+
allowTypeChange={config?.['allowTypeChange']}
|
|
89
|
+
{showOnDemandOnlyToggle}
|
|
90
|
+
/>
|
|
91
|
+
{/if}
|
|
92
|
+
{/each}
|
|
93
|
+
</div>
|
|
94
|
+
{/if}
|
|
93
95
|
</div>
|
|
@@ -72,6 +72,7 @@ function handleFinalize(e) {
|
|
|
72
72
|
const { items: newItems } = e.detail;
|
|
73
73
|
items = newItems;
|
|
74
74
|
}
|
|
75
|
+
const rnd = generateRandomString();
|
|
75
76
|
</script>
|
|
76
77
|
|
|
77
78
|
{#if components}
|
|
@@ -101,7 +102,8 @@ function handleFinalize(e) {
|
|
|
101
102
|
use:dragHandleZone={{
|
|
102
103
|
items,
|
|
103
104
|
flipDurationMs: 200,
|
|
104
|
-
dropTargetStyle: {}
|
|
105
|
+
dropTargetStyle: {},
|
|
106
|
+
type: rnd
|
|
105
107
|
}}
|
|
106
108
|
onconsider={handleConsider}
|
|
107
109
|
onfinalize={handleFinalize}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export declare const BUTTON_COLORS: readonly ["blue", "red", "dark", "light", "green", "gray", "none"];
|
|
2
2
|
export declare namespace ButtonType {
|
|
3
3
|
type Size = 'xs3' | 'xs2' | 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
4
|
-
type Color =
|
|
4
|
+
type Color = 'blue' | 'red' | 'dark' | 'light' | 'green' | 'gray' | 'none' | 'marine' | 'nord';
|
|
5
5
|
type Variant = 'contained' | 'border' | 'divider';
|
|
6
6
|
type Target = '_self' | '_blank';
|
|
7
7
|
type Element = HTMLButtonElement | HTMLAnchorElement;
|
|
@@ -1,17 +1,11 @@
|
|
|
1
|
-
<script lang="ts"
|
|
1
|
+
<script lang="ts" module>export let openedDrawers = $state({ val: [] });
|
|
2
2
|
</script>
|
|
3
3
|
|
|
4
|
-
<script lang="ts">import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export let preventEscape = false;
|
|
10
|
-
if (open) {
|
|
11
|
-
openedDrawers.push(id);
|
|
12
|
-
}
|
|
13
|
-
export let initialOffset = 0;
|
|
14
|
-
let offset = initialOffset;
|
|
4
|
+
<script lang="ts">import { zIndexes } from '../../../zIndexes';
|
|
5
|
+
import { untrack } from 'svelte';
|
|
6
|
+
let { open = $bindable(false), id = (Math.random() + 1).toString(36).substring(10), preventEscape = false, initialOffset = 0, children, onOpen, onClose } = $props();
|
|
7
|
+
let offset = $state(initialOffset);
|
|
8
|
+
let zIndex = $derived(zIndexes.disposables + offset);
|
|
15
9
|
export function toggleDrawer() {
|
|
16
10
|
if (!open) {
|
|
17
11
|
openDrawer();
|
|
@@ -21,26 +15,28 @@ export function toggleDrawer() {
|
|
|
21
15
|
}
|
|
22
16
|
}
|
|
23
17
|
export function openDrawer() {
|
|
24
|
-
open
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
18
|
+
if (!open) {
|
|
19
|
+
open = true;
|
|
20
|
+
if (openedDrawers.val.includes(id)) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
offset = openedDrawers.val.length - 1;
|
|
24
|
+
openedDrawers.val.push(id);
|
|
28
25
|
}
|
|
29
|
-
openedDrawers.push(id);
|
|
30
26
|
}
|
|
31
27
|
export function closeDrawer() {
|
|
32
|
-
open
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
28
|
+
if (open) {
|
|
29
|
+
open = false;
|
|
30
|
+
offset = initialOffset;
|
|
31
|
+
// remove the last opened drawer
|
|
32
|
+
openedDrawers.val = openedDrawers.val.filter((drawer) => drawer !== id);
|
|
33
|
+
}
|
|
36
34
|
}
|
|
37
35
|
export function isOpen() {
|
|
38
36
|
return open;
|
|
39
37
|
}
|
|
40
|
-
const dispatch = createEventDispatcher();
|
|
41
|
-
const dispatchIfMounted = createDispatcherIfMounted(dispatch);
|
|
42
38
|
function handleClickAway(e) {
|
|
43
|
-
const last = openedDrawers[openedDrawers.length - 1];
|
|
39
|
+
const last = openedDrawers.val[openedDrawers.val.length - 1];
|
|
44
40
|
if (last === id) {
|
|
45
41
|
e.stopPropagation();
|
|
46
42
|
closeDrawer();
|
|
@@ -50,9 +46,10 @@ function onKeyDown(event) {
|
|
|
50
46
|
if (open) {
|
|
51
47
|
switch (event.key) {
|
|
52
48
|
case 'Escape':
|
|
53
|
-
if ((id == openedDrawers[openedDrawers.length - 1] ||
|
|
49
|
+
if ((id == openedDrawers.val[openedDrawers.val.length - 1] ||
|
|
50
|
+
openedDrawers.val.length == 0) &&
|
|
54
51
|
!preventEscape) {
|
|
55
|
-
openedDrawers.pop();
|
|
52
|
+
openedDrawers.val.pop();
|
|
56
53
|
event.preventDefault();
|
|
57
54
|
event.stopPropagation();
|
|
58
55
|
event.stopImmediatePropagation();
|
|
@@ -62,10 +59,34 @@ function onKeyDown(event) {
|
|
|
62
59
|
}
|
|
63
60
|
}
|
|
64
61
|
}
|
|
65
|
-
|
|
66
|
-
|
|
62
|
+
if (open) {
|
|
63
|
+
openedDrawers.val.push(id);
|
|
64
|
+
}
|
|
65
|
+
let wasEverOpen = false;
|
|
66
|
+
let lastOpen = open;
|
|
67
|
+
$effect.pre(() => {
|
|
68
|
+
if (open === untrack(() => lastOpen)) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
lastOpen = open;
|
|
72
|
+
if (open) {
|
|
73
|
+
// console.log('open', id, wasEverOpen)
|
|
74
|
+
wasEverOpen = true;
|
|
75
|
+
onOpen?.();
|
|
76
|
+
}
|
|
77
|
+
else if (untrack(() => wasEverOpen)) {
|
|
78
|
+
// console.log('close', id)
|
|
79
|
+
onClose?.();
|
|
80
|
+
}
|
|
81
|
+
});
|
|
67
82
|
</script>
|
|
68
83
|
|
|
69
|
-
<svelte:window
|
|
84
|
+
<svelte:window onkeydown={onKeyDown} />
|
|
70
85
|
|
|
71
|
-
|
|
86
|
+
{@render children?.({
|
|
87
|
+
handleClickAway,
|
|
88
|
+
zIndex,
|
|
89
|
+
closeDrawer,
|
|
90
|
+
open,
|
|
91
|
+
isTop: openedDrawers.val[openedDrawers.val.length - 1] == id
|
|
92
|
+
})}
|