windmill-components 1.665.0 → 1.677.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/dist/sharedUtils/assets/tokens/colorTokensConfig.d.ts +2 -0
- package/dist/sharedUtils/base.d.ts +1 -0
- package/dist/sharedUtils/cloud.d.ts +1 -0
- package/dist/sharedUtils/common.d.ts +111 -0
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/count.d.ts +5 -0
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/delete.d.ts +5 -0
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/insert.d.ts +5 -0
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/select.d.ts +13 -0
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/update.d.ts +11 -0
- package/dist/sharedUtils/components/apps/components/display/dbtable/utils.d.ts +95 -0
- package/dist/sharedUtils/components/apps/editor/appPolicy.d.ts +6 -0
- package/dist/sharedUtils/components/apps/editor/appUtilsCore.d.ts +7 -0
- package/dist/sharedUtils/components/apps/editor/appUtilsS3.d.ts +33 -0
- package/dist/sharedUtils/components/apps/editor/commonAppUtils.d.ts +10 -0
- package/dist/sharedUtils/components/apps/editor/component/components.d.ts +5371 -0
- package/dist/sharedUtils/components/apps/editor/component/default-codes.d.ts +3 -0
- package/dist/sharedUtils/components/apps/editor/component/index.d.ts +3 -0
- package/dist/sharedUtils/components/apps/editor/component/sets.d.ts +7 -0
- package/dist/sharedUtils/components/apps/editor/componentsPanel/componentDefaultProps.d.ts +3 -0
- package/dist/sharedUtils/components/apps/gridUtils.d.ts +14 -0
- package/dist/sharedUtils/components/apps/inputType.d.ts +178 -0
- package/dist/sharedUtils/components/apps/rx.d.ts +29 -0
- package/dist/sharedUtils/components/apps/sharedTypes.d.ts +21 -0
- package/dist/sharedUtils/components/apps/types.d.ts +274 -0
- package/dist/sharedUtils/components/assets/lib.d.ts +25 -0
- package/dist/sharedUtils/components/common/alert/model.d.ts +2 -0
- package/dist/sharedUtils/components/common/badge/model.d.ts +8 -0
- package/dist/sharedUtils/components/common/button/model.d.ts +45 -0
- package/dist/sharedUtils/components/common/fileInput/model.d.ts +1 -0
- package/dist/sharedUtils/components/common/index.d.ts +24 -0
- package/dist/sharedUtils/components/common/skeleton/model.d.ts +21 -0
- package/dist/sharedUtils/components/dbTypes.d.ts +14 -0
- package/dist/sharedUtils/components/diff_drawer.d.ts +26 -0
- package/dist/sharedUtils/components/ducklake.d.ts +1 -0
- package/dist/sharedUtils/components/flows/scheduleUtils.d.ts +7 -0
- package/dist/sharedUtils/components/icons/index.d.ts +101 -0
- package/dist/sharedUtils/components/random_positive_adjetive.d.ts +1 -0
- package/dist/sharedUtils/components/raw_apps/rawAppPolicy.d.ts +10 -0
- package/dist/sharedUtils/components/raw_apps/utils.d.ts +15 -0
- package/dist/sharedUtils/components/triggers/email/utils.d.ts +4 -0
- package/dist/sharedUtils/components/triggers/gcp/utils.d.ts +2 -0
- package/dist/sharedUtils/components/triggers/http/utils.d.ts +11 -0
- package/dist/sharedUtils/components/triggers/kafka/utils.d.ts +2 -0
- package/dist/sharedUtils/components/triggers/mqtt/utils.d.ts +2 -0
- package/dist/sharedUtils/components/triggers/nats/utils.d.ts +2 -0
- package/dist/sharedUtils/components/triggers/postgres/utils.d.ts +8 -0
- package/dist/sharedUtils/components/triggers/sqs/utils.d.ts +2 -0
- package/dist/sharedUtils/components/triggers/triggers.svelte.d.ts +32 -0
- package/dist/sharedUtils/components/triggers/utils.d.ts +80 -0
- package/dist/sharedUtils/components/triggers/websocket/utils.d.ts +2 -0
- package/dist/sharedUtils/components/triggers.d.ts +20 -0
- package/dist/sharedUtils/gen/core/ApiError.d.ts +10 -0
- package/dist/sharedUtils/gen/core/ApiRequestOptions.d.ts +13 -0
- package/dist/sharedUtils/gen/core/ApiResult.d.ts +7 -0
- package/dist/sharedUtils/gen/core/CancelablePromise.d.ts +26 -0
- package/dist/sharedUtils/gen/core/OpenAPI.d.ts +27 -0
- package/dist/sharedUtils/gen/core/request.d.ts +29 -0
- package/dist/sharedUtils/gen/index.d.ts +6 -0
- package/dist/sharedUtils/gen/schemas.gen.d.ts +7036 -0
- package/dist/sharedUtils/gen/services.gen.d.ts +6047 -0
- package/dist/sharedUtils/gen/types.gen.d.ts +21881 -0
- package/dist/sharedUtils/history.svelte.d.ts +9 -0
- package/dist/sharedUtils/hub.d.ts +49 -0
- package/dist/sharedUtils/jsr.json +6 -0
- package/dist/sharedUtils/lib.d.ts +5 -0
- package/dist/sharedUtils/lib.es.js +1588 -0
- package/dist/sharedUtils/package.json +12 -0
- package/dist/sharedUtils/schema.d.ts +3 -0
- package/dist/sharedUtils/stores.d.ts +97 -0
- package/dist/sharedUtils/svelte5Utils.svelte.d.ts +80 -0
- package/dist/sharedUtils/toast.d.ts +8 -0
- package/dist/sharedUtils/utils.d.ts +265 -0
- package/package/components/AddUser.svelte +67 -34
- package/package/components/AppConnectInner.svelte +9 -1
- package/package/components/ArgInfo.svelte +9 -1
- package/package/components/ArgInput.svelte +21 -1
- package/package/components/CompareWorkspaces.svelte +11 -2
- package/package/components/DedicatedWorkersSelector.svelte +262 -247
- package/package/components/DefaultTagsInner.svelte +40 -2
- package/package/components/DeployWorkspace.svelte +13 -0
- package/package/components/DiffEditor.svelte +44 -1
- package/package/components/EditableSchemaForm.svelte +5 -2
- package/package/components/EditableSchemaForm.svelte.d.ts +1 -0
- package/package/components/Editor.svelte +5 -1
- package/package/components/EditorBar.svelte +12 -3
- package/package/components/FilterSearchbar.svelte +26 -2
- package/package/components/FlowBuilder.svelte +6 -3
- package/package/components/FlowGraphDiffViewer.svelte +16 -17
- package/package/components/FlowGraphViewer.svelte +20 -6
- package/package/components/FlowGraphViewer.svelte.d.ts +2 -0
- package/package/components/FlowGraphViewerStep.svelte +14 -32
- package/package/components/FlowMetadata.svelte +4 -1
- package/package/components/FlowPreviewContent.svelte +2 -0
- package/package/components/FlowStatusWaitingForEvents.svelte +25 -4
- package/package/components/HighlightCode.svelte +3 -0
- package/package/components/InstanceSetting.svelte +9 -25
- package/package/components/InstanceSettings.svelte +16 -0
- package/package/components/LabelsInput.svelte +149 -0
- package/package/components/LabelsInput.svelte.d.ts +8 -0
- package/package/components/Login.svelte +6 -1
- package/package/components/ObjectStoreConfigSettings.svelte +273 -1
- package/package/components/OktaSetting.svelte +6 -5
- package/package/components/Password.svelte +74 -20
- package/package/components/Password.svelte.d.ts +1 -0
- package/package/components/PasswordArgInput.svelte +2 -2
- package/package/components/PasswordArgInput.svelte.d.ts +1 -0
- package/package/components/Path.svelte +8 -10
- package/package/components/PathNameAutocomplete.svelte +308 -0
- package/package/components/PathNameAutocomplete.svelte.d.ts +27 -0
- package/package/components/PowerShellCommonParams.svelte +84 -0
- package/package/components/PowerShellCommonParams.svelte.d.ts +6 -0
- package/package/components/Range.svelte +8 -3
- package/package/components/ResourceEditor.svelte +6 -2
- package/package/components/RunForm.svelte +71 -7
- package/package/components/RunForm.svelte.d.ts +2 -1
- package/package/components/ScriptBuilder.svelte +7 -3
- package/package/components/ScriptEditor.svelte +221 -187
- package/package/components/ScriptEditor.svelte.d.ts +1 -1
- package/package/components/ScriptSchema.svelte +1 -1
- package/package/components/StringTypeNarrowing.svelte +1 -1
- package/package/components/StringTypeNarrowing.svelte.d.ts +1 -1
- package/package/components/SummaryPathDisplay.svelte +32 -10
- package/package/components/SummaryPathDisplay.svelte.d.ts +2 -1
- package/package/components/VariableEditor.svelte +9 -2
- package/package/components/WorkerGroup.svelte +47 -2
- package/package/components/apps/editor/DeploymentHistory.svelte +112 -13
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +135 -35
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +3 -1
- package/package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +11 -35
- package/package/components/apps/editor/settingsPanel/mainInput/runnableSelectorUtils.d.ts +10 -0
- package/package/components/apps/editor/settingsPanel/mainInput/runnableSelectorUtils.js +14 -0
- package/package/components/apps/editor/settingsPanel/mainInput/runnableSelectorUtils.test.d.ts +1 -0
- package/package/components/apps/editor/settingsPanel/mainInput/runnableSelectorUtils.test.js +34 -0
- package/package/components/assets/AssetButtons.svelte +21 -25
- package/package/components/assets/AssetsUsageDrawer.svelte +7 -9
- package/package/components/common/fileUpload/FileUpload.svelte +6 -2
- package/package/components/common/languageIcons/LanguageIcon.svelte +3 -0
- package/package/components/common/table/AppRow.svelte +18 -0
- package/package/components/common/table/FlowRow.svelte +18 -0
- package/package/components/common/table/ScriptRow.svelte +18 -0
- package/package/components/copilot/chat/AIChatManager.svelte.js +3 -3
- package/package/components/copilot/chat/flow/openFlow.json +1 -1
- package/package/components/copilot/chat/flow/openFlowZod.js +3 -3
- package/package/components/custom_ui.d.ts +2 -0
- package/package/components/details/DetailPageHeader.svelte +2 -2
- package/package/components/details/DetailPageHeader.svelte.d.ts +2 -1
- package/package/components/flows/agentToolUtils.d.ts +5 -0
- package/package/components/flows/agentToolUtils.js +49 -0
- package/package/components/flows/agentToolUtils.test.d.ts +1 -0
- package/package/components/flows/agentToolUtils.test.js +55 -0
- package/package/components/flows/content/FlowInput.svelte +2 -0
- package/package/components/flows/content/FlowInputsQuick.svelte +1 -1
- package/package/components/flows/content/FlowLoop.svelte +5 -12
- package/package/components/flows/content/FlowModuleScript.svelte +5 -3
- package/package/components/flows/content/FlowPathViewer.svelte +2 -2
- package/package/components/flows/content/FlowPathViewer.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowSettings.svelte +2 -0
- package/package/components/flows/content/FlowWhileLoop.svelte +5 -12
- package/package/components/flows/flowInfers.js +8 -3
- package/package/components/flows/map/FlowModuleSchemaMap.svelte +49 -9
- package/package/components/flows/pickers/PickHubScriptQuick.svelte +5 -3
- package/package/components/flows/pickers/PickHubScriptQuick.svelte.d.ts +1 -1
- package/package/components/flows/scheduleUtils.js +2 -1
- package/package/components/graph/FlowGraphV2.svelte +13 -1
- package/package/components/graph/WacDiagram.svelte +96 -0
- package/package/components/graph/WacDiagram.svelte.d.ts +7 -0
- package/package/components/graph/noteEditor.svelte.d.ts +1 -1
- package/package/components/graph/noteEditor.svelte.js +12 -1
- package/package/components/graph/noteUtils.svelte.d.ts +1 -1
- package/package/components/graph/noteUtils.svelte.js +9 -2
- package/package/components/graph/renderers/edges/WacEdge.svelte +41 -0
- package/package/components/graph/renderers/edges/WacEdge.svelte.d.ts +4 -0
- package/package/components/graph/renderers/nodes/WacControlNode.svelte +51 -0
- package/package/components/graph/renderers/nodes/WacControlNode.svelte.d.ts +9 -0
- package/package/components/graph/renderers/nodes/WacStepNode.svelte +35 -0
- package/package/components/graph/renderers/nodes/WacStepNode.svelte.d.ts +9 -0
- package/package/components/graph/wacDagLayout.d.ts +10 -0
- package/package/components/graph/wacDagLayout.js +120 -0
- package/package/components/graph/wacToFlow.js +1 -1
- package/package/components/home/ItemsList.svelte +28 -4
- package/package/components/icons/RIcon.svelte +32 -0
- package/package/components/icons/RIcon.svelte.d.ts +7 -0
- package/package/components/instanceSettings/DbHealth.svelte +723 -0
- package/package/components/instanceSettings/DbHealth.svelte.d.ts +3 -0
- package/package/components/instanceSettings/SecretBackendConfig.svelte +343 -304
- package/package/components/instanceSettings/SmtpSettings.svelte +8 -0
- package/package/components/instanceSettings.js +14 -5
- package/package/components/mcp/McpScopeSelector.svelte +82 -16
- package/package/components/moveRenameManager.d.ts +1 -0
- package/package/components/moveRenameManager.js +7 -4
- package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +14 -1
- package/package/components/raw_apps/rawAppPolicy.js +3 -2
- package/package/components/raw_apps/utils.test.d.ts +1 -0
- package/package/components/raw_apps/utils.test.js +38 -0
- package/package/components/recording/ScriptRecordingReplay.svelte +0 -1
- package/package/components/resources/resourcesFilter.d.ts +15 -2
- package/package/components/resources/resourcesFilter.js +11 -2
- package/package/components/runs/JobDetailFieldConfig.js +5 -3
- package/package/components/runs/JobDetailHeader.svelte +5 -2
- package/package/components/runs/JobRunsPreview.svelte +1 -0
- package/package/components/runs/RunBadges.svelte +7 -4
- package/package/components/runs/RunRow.svelte +7 -7
- package/package/components/schedules/schedulesFilter.d.ts +15 -2
- package/package/components/schedules/schedulesFilter.js +11 -2
- package/package/components/schema/EditableSchemaWrapper.svelte +6 -8
- package/package/components/schema/PropertyEditor.svelte +22 -1
- package/package/components/schema/PropertyEditor.svelte.d.ts +1 -0
- package/package/components/schema/editable_schema_wrapper.d.ts +1 -0
- package/package/components/secretArgUtils.d.ts +7 -0
- package/package/components/secretArgUtils.js +45 -0
- package/package/components/settings/WorkspaceUserSettings.svelte +359 -286
- package/package/components/sidebar/OperatorMenu.svelte +215 -197
- package/package/components/triggers/CaptureWrapper.svelte +1 -1
- package/package/components/triggers/TriggerFilters.svelte +17 -5
- package/package/components/triggers/TriggerFilters.svelte.d.ts +2 -1
- package/package/components/triggers/kafka/KafkaCapture.svelte +6 -2
- package/package/components/triggers/kafka/KafkaCapture.svelte.d.ts +1 -1
- package/package/components/triggers/kafka/KafkaTriggerEditorInner.svelte +5 -1
- package/package/components/triggers/kafka/utils.js +1 -0
- package/package/components/triggers/schedules/ScheduleEditorInner.svelte +6 -0
- package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +87 -1
- package/package/components/triggers/websocket/utils.js +2 -0
- package/package/components/variables/variablesFilter.d.ts +15 -2
- package/package/components/variables/variablesFilter.js +11 -2
- package/package/components/worker_group.js +1 -0
- package/package/components/workspaceSettings/DucklakeSettings.svelte +33 -41
- package/package/consts.d.ts +1 -0
- package/package/consts.js +1 -0
- package/package/editorLangUtils.d.ts +1 -1
- package/package/editorLangUtils.js +2 -0
- package/package/forLater.js +4 -0
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +94 -294
- package/package/gen/schemas.gen.js +94 -294
- package/package/gen/services.gen.d.ts +5 -121
- package/package/gen/services.gen.js +5 -237
- package/package/gen/types.gen.d.ts +91 -715
- package/package/hubPaths.json +6 -3
- package/package/infer.d.ts +55 -0
- package/package/infer.js +131 -0
- package/package/infer.svelte.js +2 -0
- package/package/mcpEndpointTools.js +213 -22
- package/package/script_helpers.d.ts +3 -0
- package/package/script_helpers.js +26 -0
- package/package/scripts.d.ts +2 -1
- package/package/scripts.js +15 -3
- package/package/stores.d.ts +2 -0
- package/package/system_prompts/prompts.d.ts +6 -5
- package/package/system_prompts/prompts.js +188 -29
- package/package/user.js +5 -1
- package/package/utils.js +21 -0
- package/package/utils_deployable.d.ts +7 -0
- package/package/utils_workspace_deploy.js +36 -8
- package/package.json +6 -5
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
<script lang="ts">import { buildWsUrl } from '../wsUrl';
|
|
2
|
+
import { processSecretArgs } from './secretArgUtils';
|
|
2
3
|
import { JobService } from '../gen';
|
|
3
4
|
import { enterpriseLicense, userStore, workspaceStore } from '../stores';
|
|
4
5
|
import { copyToClipboard, emptySchema, getLocalSetting, sendUserToast, storeLocalSetting } from '../utils';
|
|
5
6
|
import Editor from './Editor.svelte';
|
|
6
7
|
import { inferArgs, inferAssets, inferAnsibleExecutionMode } from '../infer';
|
|
8
|
+
import { isWorkflowAsCode } from './graph/wacToFlow';
|
|
9
|
+
import WacDiagram from './graph/WacDiagram.svelte';
|
|
7
10
|
import { Pane, Splitpanes } from 'svelte-splitpanes';
|
|
8
11
|
import SchemaForm from './SchemaForm.svelte';
|
|
12
|
+
import PowerShellCommonParams from './PowerShellCommonParams.svelte';
|
|
9
13
|
import LogPanel from './scriptEditor/LogPanel.svelte';
|
|
10
14
|
import EditorBar, { EDITOR_BAR_WIDTH_THRESHOLD } from './EditorBar.svelte';
|
|
11
15
|
import JobLoader from './JobLoader.svelte';
|
|
@@ -57,6 +61,8 @@ let { schema = $bindable(), code = $bindable(), path, lang, kind = undefined, te
|
|
|
57
61
|
let initialArgs = structuredClone($state.snapshot(args));
|
|
58
62
|
let jsonView = $state(false);
|
|
59
63
|
let schemaHeight = $state(0);
|
|
64
|
+
let psCommonParams = $state({});
|
|
65
|
+
let showPsCommonParams = $derived(lang === 'powershell' && /^\s*\[CmdletBinding/im.test(code));
|
|
60
66
|
// Module tab state
|
|
61
67
|
let activeModuleTab = $state(null);
|
|
62
68
|
// Per-module test panel state (args + schema), persisted across tab switches
|
|
@@ -477,11 +483,20 @@ export async function runTest() {
|
|
|
477
483
|
flushModuleContent();
|
|
478
484
|
const testCode = activeModuleTab !== null ? editorCode : code;
|
|
479
485
|
const testLang = activeModuleTab !== null ? effectiveLang : lang;
|
|
480
|
-
const
|
|
486
|
+
const rawTestArgs = activeModuleTab !== null
|
|
481
487
|
? testPanelArgs
|
|
482
488
|
: selectedTab === 'preprocessor' || kind === 'preprocessor'
|
|
483
489
|
? { _ENTRYPOINT_OVERRIDE: 'preprocessor', ...(args ?? {}) }
|
|
484
490
|
: (args ?? {});
|
|
491
|
+
const testSchema = activeModuleTab !== null ? testPanelSchema : schema;
|
|
492
|
+
const testArgs = await processSecretArgs(rawTestArgs, testSchema);
|
|
493
|
+
if (showPsCommonParams) {
|
|
494
|
+
for (const [k, v] of Object.entries(psCommonParams)) {
|
|
495
|
+
if (v !== undefined && v !== false && v !== '') {
|
|
496
|
+
testArgs[k] = v;
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
}
|
|
485
500
|
//@ts-ignore
|
|
486
501
|
let job = await jobLoader.runPreview(path, testCode, testLang, testArgs, tag, undefined, undefined, {
|
|
487
502
|
done(_x) {
|
|
@@ -958,7 +973,8 @@ function collabUrl() {
|
|
|
958
973
|
return (`${url}?collab=1&workspace=${encodeURIComponent($workspaceStore ?? '')}&lang=${encodeURIComponent(lang ?? '')}` +
|
|
959
974
|
(edit ? '' : `&path=${path}`));
|
|
960
975
|
}
|
|
961
|
-
let
|
|
976
|
+
let isWac = $derived(code && lang ? isWorkflowAsCode(code, lang) : false);
|
|
977
|
+
let showTabs = $derived(hasPreprocessor || isWac);
|
|
962
978
|
$effect(() => {
|
|
963
979
|
!hasPreprocessor && (selectedTab = 'main');
|
|
964
980
|
});
|
|
@@ -1190,6 +1206,11 @@ $effect(() => {
|
|
|
1190
1206
|
<Tab value="preprocessor" label="Preprocessor" />
|
|
1191
1207
|
</div>
|
|
1192
1208
|
{/if}
|
|
1209
|
+
{#if isWac}
|
|
1210
|
+
<div transition:slide={{ duration: 200, axis: 'x' }}>
|
|
1211
|
+
<Tab value="diagram" label="Diagram" />
|
|
1212
|
+
</div>
|
|
1213
|
+
{/if}
|
|
1193
1214
|
</Tabs>
|
|
1194
1215
|
</div>
|
|
1195
1216
|
{/if}
|
|
@@ -1212,203 +1233,216 @@ $effect(() => {
|
|
|
1212
1233
|
</div>
|
|
1213
1234
|
{/if}
|
|
1214
1235
|
|
|
1215
|
-
|
|
1216
|
-
<div class="
|
|
1217
|
-
<
|
|
1218
|
-
hidden={false}
|
|
1219
|
-
direction="right"
|
|
1220
|
-
panelName="Test"
|
|
1221
|
-
shortcut="U"
|
|
1222
|
-
size="md"
|
|
1223
|
-
on:click={() => {
|
|
1224
|
-
toggleTestPanel()
|
|
1225
|
-
}}
|
|
1226
|
-
/>
|
|
1236
|
+
{#if selectedTab === 'diagram'}
|
|
1237
|
+
<div class="flex-1 min-h-0">
|
|
1238
|
+
<WacDiagram {code} language={lang ?? ''} />
|
|
1227
1239
|
</div>
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1240
|
+
{:else}
|
|
1241
|
+
<div class="flex justify-center pt-1 relative">
|
|
1242
|
+
<div class="absolute top-2 left-2">
|
|
1243
|
+
<HideButton
|
|
1244
|
+
hidden={false}
|
|
1245
|
+
direction="right"
|
|
1246
|
+
panelName="Test"
|
|
1247
|
+
shortcut="U"
|
|
1248
|
+
size="md"
|
|
1249
|
+
on:click={() => {
|
|
1250
|
+
toggleTestPanel()
|
|
1251
|
+
}}
|
|
1252
|
+
/>
|
|
1253
|
+
</div>
|
|
1254
|
+
{#if !(debugMode && isDebuggableScript)}
|
|
1255
|
+
<div class="flex flex-row gap-2">
|
|
1256
|
+
<div
|
|
1257
|
+
class="flex flex-row divide-x divide-gray-800 dark:divide-gray-300 items-stretch"
|
|
1258
|
+
>
|
|
1259
|
+
{#if testIsLoading}
|
|
1260
|
+
<Button on:click={jobLoader?.cancelJob} btnClasses="w-full" unifiedSize="md">
|
|
1261
|
+
<WindmillIcon
|
|
1262
|
+
white={true}
|
|
1263
|
+
class="mr-2 text-white"
|
|
1264
|
+
height="16px"
|
|
1265
|
+
width="20px"
|
|
1266
|
+
spin="fast"
|
|
1267
|
+
/>
|
|
1268
|
+
Cancel
|
|
1269
|
+
</Button>
|
|
1270
|
+
{:else}
|
|
1271
|
+
{@const disableTriggerButton =
|
|
1272
|
+
customUi?.previewPanel?.disableTriggerButton === true}
|
|
1273
|
+
<Button
|
|
1274
|
+
on:click={() => runTest()}
|
|
1275
|
+
unifiedSize="md"
|
|
1276
|
+
btnClasses="w-full {!disableTriggerButton ? 'rounded-r-none' : ''}"
|
|
1277
|
+
variant="accent-secondary"
|
|
1278
|
+
startIcon={{ icon: Play, classes: 'animate-none' }}
|
|
1279
|
+
shortCut={{ Icon: CornerDownLeft }}
|
|
1280
|
+
>
|
|
1281
|
+
Test
|
|
1282
|
+
</Button>
|
|
1283
|
+
{#if !disableTriggerButton}
|
|
1284
|
+
<CaptureButton on:openTriggers />
|
|
1285
|
+
{/if}
|
|
1286
|
+
{/if}
|
|
1287
|
+
</div>
|
|
1288
|
+
{#if lastRecording}
|
|
1247
1289
|
<Button
|
|
1248
|
-
on:click={
|
|
1290
|
+
on:click={downloadRecording}
|
|
1249
1291
|
unifiedSize="md"
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
>
|
|
1255
|
-
Test
|
|
1256
|
-
</Button>
|
|
1257
|
-
{#if !disableTriggerButton}
|
|
1258
|
-
<CaptureButton on:openTriggers />
|
|
1259
|
-
{/if}
|
|
1292
|
+
startIcon={{ icon: Download }}
|
|
1293
|
+
iconOnly
|
|
1294
|
+
title="Download recording"
|
|
1295
|
+
/>
|
|
1260
1296
|
{/if}
|
|
1261
1297
|
</div>
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1298
|
+
{/if}
|
|
1299
|
+
<div class="absolute top-2 right-2 flex items-center gap-2">
|
|
1300
|
+
<Toggle size="2xs" bind:checked={jsonView} options={{ right: 'JSON' }} />
|
|
1301
|
+
<DropdownV2
|
|
1302
|
+
size="xs"
|
|
1303
|
+
items={[
|
|
1304
|
+
{
|
|
1305
|
+
displayName: 'Test & record',
|
|
1306
|
+
icon: Disc,
|
|
1307
|
+
action: () => recordAndTest()
|
|
1308
|
+
}
|
|
1309
|
+
]}
|
|
1310
|
+
/>
|
|
1271
1311
|
</div>
|
|
1272
|
-
{/if}
|
|
1273
|
-
<div class="absolute top-2 right-2 flex items-center gap-2">
|
|
1274
|
-
<Toggle size="2xs" bind:checked={jsonView} options={{ right: 'JSON' }} />
|
|
1275
|
-
<DropdownV2
|
|
1276
|
-
size="xs"
|
|
1277
|
-
items={[
|
|
1278
|
-
{
|
|
1279
|
-
displayName: 'Test & record',
|
|
1280
|
-
icon: Disc,
|
|
1281
|
-
action: () => recordAndTest()
|
|
1282
|
-
}
|
|
1283
|
-
]}
|
|
1284
|
-
/>
|
|
1285
1312
|
</div>
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1313
|
+
<Splitpanes
|
|
1314
|
+
horizontal
|
|
1315
|
+
class="!max-h-[calc(100%-{debugMode && isDebuggableScript ? '83' : '43'}px)]"
|
|
1316
|
+
>
|
|
1317
|
+
<Pane size={33}>
|
|
1318
|
+
{#if jsonView}
|
|
1319
|
+
<div
|
|
1320
|
+
class="py-2"
|
|
1321
|
+
style="height: {!schemaHeight || schemaHeight < 600 ? 600 : schemaHeight}px"
|
|
1322
|
+
data-schema-picker
|
|
1323
|
+
>
|
|
1324
|
+
<JsonInputs
|
|
1325
|
+
on:select={(e) => {
|
|
1326
|
+
if (e.detail) {
|
|
1327
|
+
if (activeModuleTab !== null) {
|
|
1328
|
+
testPanelArgs = e.detail
|
|
1329
|
+
} else {
|
|
1330
|
+
args = e.detail
|
|
1331
|
+
}
|
|
1305
1332
|
}
|
|
1306
|
-
}
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1333
|
+
}}
|
|
1334
|
+
updateOnBlur={false}
|
|
1335
|
+
placeholder={`Write args as JSON.<br/><br/>Example:<br/><br/>{<br/> "foo": "12"<br/>}`}
|
|
1336
|
+
/>
|
|
1337
|
+
</div>
|
|
1338
|
+
{:else}
|
|
1339
|
+
<div class="px-4">
|
|
1340
|
+
<div class="break-words relative font-sans" bind:clientHeight={schemaHeight}>
|
|
1341
|
+
{#key argsRender}
|
|
1342
|
+
{#if activeModuleTab !== null}
|
|
1343
|
+
<SchemaForm
|
|
1344
|
+
helperScript={{
|
|
1345
|
+
source: 'inline',
|
|
1346
|
+
code: editorCode,
|
|
1347
|
+
//@ts-ignore
|
|
1348
|
+
lang: effectiveLang
|
|
1349
|
+
}}
|
|
1350
|
+
compact
|
|
1351
|
+
schema={testPanelSchema}
|
|
1352
|
+
bind:args={testPanelArgs}
|
|
1353
|
+
bind:isValid
|
|
1354
|
+
noVariablePicker={customUi?.previewPanel?.disableVariablePicker === true}
|
|
1355
|
+
showSchemaExplorer
|
|
1356
|
+
/>
|
|
1357
|
+
{:else}
|
|
1358
|
+
<SchemaForm
|
|
1359
|
+
helperScript={{
|
|
1360
|
+
source: 'inline',
|
|
1361
|
+
code,
|
|
1362
|
+
//@ts-ignore
|
|
1363
|
+
lang
|
|
1364
|
+
}}
|
|
1365
|
+
compact
|
|
1366
|
+
{schema}
|
|
1367
|
+
bind:args
|
|
1368
|
+
bind:isValid
|
|
1369
|
+
noVariablePicker={customUi?.previewPanel?.disableVariablePicker === true}
|
|
1370
|
+
showSchemaExplorer
|
|
1371
|
+
/>
|
|
1372
|
+
{/if}
|
|
1373
|
+
{/key}
|
|
1374
|
+
{#if showPsCommonParams}
|
|
1375
|
+
<div class="mt-2">
|
|
1376
|
+
<PowerShellCommonParams
|
|
1377
|
+
bind:args={psCommonParams}
|
|
1378
|
+
/>
|
|
1379
|
+
</div>
|
|
1346
1380
|
{/if}
|
|
1347
|
-
|
|
1381
|
+
</div>
|
|
1348
1382
|
</div>
|
|
1349
|
-
</div>
|
|
1350
|
-
{/if}
|
|
1351
|
-
</Pane>
|
|
1352
|
-
<Pane size={67} class="relative">
|
|
1353
|
-
<LogPanel
|
|
1354
|
-
bind:this={logPanel}
|
|
1355
|
-
{lang}
|
|
1356
|
-
previewJob={debugMode
|
|
1357
|
-
? ({
|
|
1358
|
-
id: 'debug',
|
|
1359
|
-
logs: $debugState.logs,
|
|
1360
|
-
result: $debugState.result,
|
|
1361
|
-
success: !$debugState.error,
|
|
1362
|
-
type: hasDebugResult ? 'CompletedJob' : 'QueuedJob'
|
|
1363
|
-
} as any)
|
|
1364
|
-
: testJob}
|
|
1365
|
-
{pastPreviews}
|
|
1366
|
-
previewIsLoading={debugMode
|
|
1367
|
-
? $debugState.running && !$debugState.stopped
|
|
1368
|
-
: testIsLoading}
|
|
1369
|
-
{editor}
|
|
1370
|
-
{diffEditor}
|
|
1371
|
-
args={activeModuleTab !== null ? testPanelArgs : args}
|
|
1372
|
-
{showCaptures}
|
|
1373
|
-
customUi={customUi?.previewPanel}
|
|
1374
|
-
showCustomResultPanel={showDebugPanel}
|
|
1375
|
-
>
|
|
1376
|
-
{#if scriptProgress && !debugMode}
|
|
1377
|
-
<!-- Put to the slot in logpanel -->
|
|
1378
|
-
<JobProgressBar
|
|
1379
|
-
job={testJob}
|
|
1380
|
-
{scriptProgress}
|
|
1381
|
-
bind:this={jobProgressBar}
|
|
1382
|
-
compact={true}
|
|
1383
|
-
/>
|
|
1384
1383
|
{/if}
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1384
|
+
</Pane>
|
|
1385
|
+
<Pane size={67} class="relative">
|
|
1386
|
+
<LogPanel
|
|
1387
|
+
bind:this={logPanel}
|
|
1388
|
+
{lang}
|
|
1389
|
+
previewJob={debugMode
|
|
1390
|
+
? ({
|
|
1391
|
+
id: 'debug',
|
|
1392
|
+
logs: $debugState.logs,
|
|
1393
|
+
result: $debugState.result,
|
|
1394
|
+
success: !$debugState.error,
|
|
1395
|
+
type: hasDebugResult ? 'CompletedJob' : 'QueuedJob'
|
|
1396
|
+
} as any)
|
|
1397
|
+
: testJob}
|
|
1398
|
+
{pastPreviews}
|
|
1399
|
+
previewIsLoading={debugMode
|
|
1400
|
+
? $debugState.running && !$debugState.stopped
|
|
1401
|
+
: testIsLoading}
|
|
1402
|
+
{editor}
|
|
1403
|
+
{diffEditor}
|
|
1404
|
+
args={activeModuleTab !== null ? testPanelArgs : args}
|
|
1405
|
+
{showCaptures}
|
|
1406
|
+
customUi={customUi?.previewPanel}
|
|
1407
|
+
showCustomResultPanel={showDebugPanel}
|
|
1408
|
+
>
|
|
1409
|
+
{#if scriptProgress && !debugMode}
|
|
1410
|
+
<!-- Put to the slot in logpanel -->
|
|
1411
|
+
<JobProgressBar
|
|
1412
|
+
job={testJob}
|
|
1413
|
+
{scriptProgress}
|
|
1414
|
+
bind:this={jobProgressBar}
|
|
1415
|
+
compact={true}
|
|
1397
1416
|
/>
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1417
|
+
{/if}
|
|
1418
|
+
{#snippet capturesTab()}
|
|
1419
|
+
<div class="h-full p-2">
|
|
1420
|
+
<CaptureTable
|
|
1421
|
+
bind:this={captureTable}
|
|
1422
|
+
{hasPreprocessor}
|
|
1423
|
+
canHavePreprocessor={canHavePreprocessor(lang)}
|
|
1424
|
+
isFlow={false}
|
|
1425
|
+
path={stablePathForCaptures}
|
|
1426
|
+
canEdit={true}
|
|
1427
|
+
on:applyArgs
|
|
1428
|
+
on:updateSchema
|
|
1429
|
+
on:addPreprocessor
|
|
1430
|
+
/>
|
|
1431
|
+
</div>
|
|
1432
|
+
{/snippet}
|
|
1433
|
+
{#snippet customResultPanel()}
|
|
1434
|
+
<DebugPanel
|
|
1435
|
+
stackFrames={$debugState.stackFrames}
|
|
1436
|
+
scopes={$debugState.scopes}
|
|
1437
|
+
variables={$debugState.variables}
|
|
1438
|
+
client={dapClient}
|
|
1439
|
+
bind:selectedFrameId={selectedDebugFrameId}
|
|
1440
|
+
/>
|
|
1441
|
+
{/snippet}
|
|
1442
|
+
</LogPanel>
|
|
1443
|
+
</Pane>
|
|
1444
|
+
</Splitpanes>
|
|
1445
|
+
{/if}
|
|
1412
1446
|
</div>
|
|
1413
1447
|
</Pane>
|
|
1414
1448
|
</Splitpanes>
|
|
@@ -25,7 +25,7 @@ interface Props {
|
|
|
25
25
|
watchChanges?: boolean;
|
|
26
26
|
customUi?: ScriptEditorWhitelabelCustomUi | undefined;
|
|
27
27
|
args: Record<string, any>;
|
|
28
|
-
selectedTab?: 'main' | 'preprocessor';
|
|
28
|
+
selectedTab?: 'main' | 'preprocessor' | 'diagram';
|
|
29
29
|
hasPreprocessor?: boolean;
|
|
30
30
|
captureTable?: CaptureTable | undefined;
|
|
31
31
|
showCaptures?: boolean;
|
|
@@ -334,7 +334,7 @@ function onEnumKeyChange(oldKey, newKey) {
|
|
|
334
334
|
options={{
|
|
335
335
|
right: 'Is Password/Sensitive',
|
|
336
336
|
rightTooltip:
|
|
337
|
-
'The value will be stored as an ephemeral secret variable in the user space of the caller of the job, only viewable by
|
|
337
|
+
'The value will be stored as an ephemeral secret variable in the user space of the caller of the job, only viewable by that user.'
|
|
338
338
|
}}
|
|
339
339
|
checked={password}
|
|
340
340
|
on:change={(e) => {
|
|
@@ -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" | "pattern" | "format" | "disableCreate" | "contentEncoding" | "enum_" | "enumLabels" | "dateFormat" | "
|
|
18
|
+
declare const StringTypeNarrowing: import("svelte").Component<Props, {}, "password" | "pattern" | "format" | "disableCreate" | "contentEncoding" | "enum_" | "enumLabels" | "dateFormat" | "minRows" | "customErrorMessage" | "disableVariablePicker">;
|
|
19
19
|
type StringTypeNarrowing = ReturnType<typeof StringTypeNarrowing>;
|
|
20
20
|
export default StringTypeNarrowing;
|
|
@@ -7,7 +7,9 @@ import { userStore, workspaceStore } from '../stores';
|
|
|
7
7
|
import { sendUserToast } from '../toast';
|
|
8
8
|
import { updateItemPathAndSummary, checkFlowOnBehalfOf } from './moveRenameManager';
|
|
9
9
|
import Label from './Label.svelte';
|
|
10
|
-
|
|
10
|
+
import LabelsInput from './LabelsInput.svelte';
|
|
11
|
+
import Badge from './common/badge/Badge.svelte';
|
|
12
|
+
let { summary = $bindable(''), path = $bindable(''), labels = $bindable(), editable = false, onSaved, kind = 'flow' } = $props();
|
|
11
13
|
let editSummary = $state('');
|
|
12
14
|
let editPath = $state('');
|
|
13
15
|
let dirtyPath = $state(false);
|
|
@@ -15,11 +17,13 @@ let popoverOpen = $state(false);
|
|
|
15
17
|
let own = $state(false);
|
|
16
18
|
let onBehalfOfEmail = $state(undefined);
|
|
17
19
|
let summaryInput = $state();
|
|
18
|
-
let
|
|
20
|
+
let labelsDirty = $state(false);
|
|
21
|
+
let hasChanges = $derived(editSummary !== (summary ?? '') || (own && dirtyPath) || labelsDirty);
|
|
19
22
|
$effect(() => {
|
|
20
23
|
if (popoverOpen && onSaved) {
|
|
21
24
|
editSummary = summary ?? '';
|
|
22
25
|
editPath = path ?? '';
|
|
26
|
+
labelsDirty = false;
|
|
23
27
|
own = isOwner(path ?? '', $userStore, $workspaceStore);
|
|
24
28
|
onBehalfOfEmail = undefined;
|
|
25
29
|
if (kind === 'flow' && $workspaceStore && path) {
|
|
@@ -38,9 +42,11 @@ async function save(close) {
|
|
|
38
42
|
kind,
|
|
39
43
|
initialPath,
|
|
40
44
|
newPath,
|
|
41
|
-
newSummary: editSummary
|
|
45
|
+
newSummary: editSummary,
|
|
46
|
+
labels
|
|
42
47
|
});
|
|
43
48
|
sendUserToast(`${kind === 'flow' ? 'Flow' : 'Script'} updated`);
|
|
49
|
+
labelsDirty = false;
|
|
44
50
|
close();
|
|
45
51
|
onSaved?.(newPath);
|
|
46
52
|
}
|
|
@@ -71,13 +77,22 @@ async function save(close) {
|
|
|
71
77
|
<span class="text-2xs leading-tight text-tertiary font-mono font-normal truncate max-w-full"
|
|
72
78
|
>{path}</span
|
|
73
79
|
>
|
|
74
|
-
<
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
80
|
+
<div class="flex items-center gap-3 max-w-full">
|
|
81
|
+
<span
|
|
82
|
+
class="text-sm font-semibold truncate {emptyString(summary)
|
|
83
|
+
? 'text-tertiary italic font-normal'
|
|
84
|
+
: 'text-emphasis'}"
|
|
85
|
+
>
|
|
86
|
+
{emptyString(summary) ? 'Add a summary...' : summary}
|
|
87
|
+
</span>
|
|
88
|
+
{#if labels?.length}
|
|
89
|
+
<div class="flex items-center gap-0.5">
|
|
90
|
+
{#each labels as label}
|
|
91
|
+
<Badge color="blue" verySmall class="px-1" title="Label: {label}">{label}</Badge>
|
|
92
|
+
{/each}
|
|
93
|
+
</div>
|
|
94
|
+
{/if}
|
|
95
|
+
</div>
|
|
81
96
|
</div>
|
|
82
97
|
{/snippet}
|
|
83
98
|
{#snippet content({ close })}
|
|
@@ -98,6 +113,13 @@ async function save(close) {
|
|
|
98
113
|
bind:value={editSummary}
|
|
99
114
|
/>
|
|
100
115
|
</Label>
|
|
116
|
+
<LabelsInput
|
|
117
|
+
bind:labels
|
|
118
|
+
class="-mt-4"
|
|
119
|
+
onchange={() => {
|
|
120
|
+
labelsDirty = true
|
|
121
|
+
}}
|
|
122
|
+
/>
|
|
101
123
|
<Label label="Path">
|
|
102
124
|
{#if own}
|
|
103
125
|
<Path
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
interface Props {
|
|
2
2
|
summary?: string;
|
|
3
3
|
path?: string;
|
|
4
|
+
labels?: string[] | undefined;
|
|
4
5
|
editable?: boolean;
|
|
5
6
|
onSaved?: (newPath: string) => void;
|
|
6
7
|
kind?: 'flow' | 'script';
|
|
7
8
|
}
|
|
8
|
-
declare const SummaryPathDisplay: import("svelte").Component<Props, {}, "summary" | "path">;
|
|
9
|
+
declare const SummaryPathDisplay: import("svelte").Component<Props, {}, "summary" | "path" | "labels">;
|
|
9
10
|
type SummaryPathDisplay = ReturnType<typeof SummaryPathDisplay>;
|
|
10
11
|
export default SummaryPathDisplay;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
<script lang="ts">import { VariableService } from '../gen';
|
|
2
2
|
import Path from './Path.svelte';
|
|
3
|
+
import LabelsInput from './LabelsInput.svelte';
|
|
3
4
|
import { createEventDispatcher } from 'svelte';
|
|
4
5
|
import { userStore, workspaceStore } from '../stores';
|
|
5
6
|
import Tooltip from './Tooltip.svelte';
|
|
@@ -22,6 +23,7 @@ let variable = $state({
|
|
|
22
23
|
description: ''
|
|
23
24
|
});
|
|
24
25
|
let valid = $state(true);
|
|
26
|
+
let labels = $state(undefined);
|
|
25
27
|
let drawer = $state();
|
|
26
28
|
let edit = $state(false);
|
|
27
29
|
let initialPath = $state('');
|
|
@@ -36,6 +38,7 @@ export function initNew() {
|
|
|
36
38
|
edit = false;
|
|
37
39
|
initialPath = '';
|
|
38
40
|
path = '';
|
|
41
|
+
labels = undefined;
|
|
39
42
|
can_write = true;
|
|
40
43
|
drawer?.openDrawer();
|
|
41
44
|
}
|
|
@@ -54,6 +57,7 @@ export async function editVariable(edit_path) {
|
|
|
54
57
|
is_secret: getV.is_secret,
|
|
55
58
|
description: getV.description ?? ''
|
|
56
59
|
};
|
|
60
|
+
labels = getV.labels ?? undefined;
|
|
57
61
|
initialPath = edit_path;
|
|
58
62
|
path = edit_path;
|
|
59
63
|
drawer?.openDrawer();
|
|
@@ -78,7 +82,8 @@ async function createVariable() {
|
|
|
78
82
|
path,
|
|
79
83
|
value: variable.value,
|
|
80
84
|
is_secret: variable.is_secret,
|
|
81
|
-
description: variable.description
|
|
85
|
+
description: variable.description,
|
|
86
|
+
labels
|
|
82
87
|
}
|
|
83
88
|
});
|
|
84
89
|
sendUserToast(`Created variable ${path}`);
|
|
@@ -99,7 +104,8 @@ async function updateVariable() {
|
|
|
99
104
|
path: getV.path != path ? path : undefined,
|
|
100
105
|
value: variable.value == '' ? undefined : variable.value,
|
|
101
106
|
is_secret: getV.is_secret != variable.is_secret ? variable.is_secret : undefined,
|
|
102
|
-
description: getV.description != variable.description ? variable.description : undefined
|
|
107
|
+
description: getV.description != variable.description ? variable.description : undefined,
|
|
108
|
+
labels
|
|
103
109
|
}
|
|
104
110
|
});
|
|
105
111
|
sendUserToast(`Updated variable ${initialPath}`);
|
|
@@ -136,6 +142,7 @@ let editor = $state(undefined);
|
|
|
136
142
|
namePlaceholder="variable"
|
|
137
143
|
kind="variable"
|
|
138
144
|
/>
|
|
145
|
+
<LabelsInput bind:labels />
|
|
139
146
|
</div>
|
|
140
147
|
<label class="flex flex-col gap-1">
|
|
141
148
|
<span class="text-xs font-semibold text-emphasis">Secret</span>
|