windmill-components 1.444.2 → 1.447.5
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,151 @@
|
|
|
1
|
+
<script>import { modalToSchema } from '../../common';
|
|
2
|
+
import { emptySchema, sendUserToast } from '../../utils';
|
|
3
|
+
import { createEventDispatcher } from 'svelte';
|
|
4
|
+
import SimpleEditor from '../SimpleEditor.svelte';
|
|
5
|
+
import AddPropertyFormV2 from './AddPropertyFormV2.svelte';
|
|
6
|
+
export let schema = emptySchema();
|
|
7
|
+
export const DEFAULT_PROPERTY = {
|
|
8
|
+
selectedType: 'string',
|
|
9
|
+
description: '',
|
|
10
|
+
name: '',
|
|
11
|
+
required: false
|
|
12
|
+
};
|
|
13
|
+
const dispatch = createEventDispatcher();
|
|
14
|
+
if (!schema) {
|
|
15
|
+
schema = emptySchema();
|
|
16
|
+
}
|
|
17
|
+
let schemaString = '';
|
|
18
|
+
// Internal state: bound to args builder modal
|
|
19
|
+
let argError = '';
|
|
20
|
+
let editing = false;
|
|
21
|
+
let oldArgName; // when editing argument and changing name
|
|
22
|
+
let jsonEditor;
|
|
23
|
+
reorder();
|
|
24
|
+
function reorder() {
|
|
25
|
+
if (schema.order && Array.isArray(schema.order)) {
|
|
26
|
+
const n = {};
|
|
27
|
+
schema.order.forEach((x) => {
|
|
28
|
+
if (schema.properties && schema.properties[x] != undefined) {
|
|
29
|
+
n[x] = schema.properties[x];
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
Object.keys(schema.properties ?? {})
|
|
33
|
+
.filter((x) => !schema.order?.includes(x))
|
|
34
|
+
.forEach((x) => {
|
|
35
|
+
n[x] = schema.properties[x];
|
|
36
|
+
});
|
|
37
|
+
schema.properties = n;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
function syncOrders() {
|
|
41
|
+
if (schema) {
|
|
42
|
+
schema.order = Object.keys(schema.properties ?? {});
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
function handleAddOrEditArgument(modalProperty) {
|
|
46
|
+
// If editing the arg's name, oldName containing the old argument name must be provided
|
|
47
|
+
argError = '';
|
|
48
|
+
modalProperty.name = modalProperty.name.trim();
|
|
49
|
+
if (modalProperty.name.length === 0) {
|
|
50
|
+
argError = 'Arguments need to have a name';
|
|
51
|
+
}
|
|
52
|
+
else if (Object.keys(schema.properties ?? {}).includes(modalProperty.name) &&
|
|
53
|
+
(!editing || (editing && oldArgName && oldArgName !== modalProperty.name))) {
|
|
54
|
+
argError = 'There is already an argument with this name';
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
if (!schema.properties) {
|
|
58
|
+
schema.properties = {};
|
|
59
|
+
}
|
|
60
|
+
if (!schema.required) {
|
|
61
|
+
schema.required = [];
|
|
62
|
+
}
|
|
63
|
+
if (!schema.order || !Array.isArray(schema.order)) {
|
|
64
|
+
syncOrders();
|
|
65
|
+
}
|
|
66
|
+
schema.properties[modalProperty.name] = modalToSchema(modalProperty);
|
|
67
|
+
if (modalProperty.required) {
|
|
68
|
+
if (!schema.required.includes(modalProperty.name)) {
|
|
69
|
+
schema.required.push(modalProperty.name);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
else if (schema.required.includes(modalProperty.name)) {
|
|
73
|
+
const index = schema.required.indexOf(modalProperty.name, 0);
|
|
74
|
+
if (index > -1) {
|
|
75
|
+
schema.required.splice(index, 1);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
if (editing && oldArgName && oldArgName !== modalProperty.name) {
|
|
79
|
+
let oldPosition = schema.order.indexOf(oldArgName);
|
|
80
|
+
schema.order[oldPosition] = modalProperty.name;
|
|
81
|
+
reorder();
|
|
82
|
+
handleDeleteArgument([oldArgName]);
|
|
83
|
+
}
|
|
84
|
+
if (!schema.order?.includes(modalProperty.name)) {
|
|
85
|
+
schema.order.push(modalProperty.name);
|
|
86
|
+
}
|
|
87
|
+
modalProperty = Object.assign({}, DEFAULT_PROPERTY);
|
|
88
|
+
editing = false;
|
|
89
|
+
oldArgName = undefined;
|
|
90
|
+
}
|
|
91
|
+
schema = schema;
|
|
92
|
+
schemaString = JSON.stringify(schema, null, '\t');
|
|
93
|
+
jsonEditor?.setCode(schemaString);
|
|
94
|
+
if (argError !== '') {
|
|
95
|
+
sendUserToast(argError, true);
|
|
96
|
+
}
|
|
97
|
+
dispatch('change', schema);
|
|
98
|
+
}
|
|
99
|
+
export function handleDeleteArgument(argPath) {
|
|
100
|
+
try {
|
|
101
|
+
let modifiedObject = schema;
|
|
102
|
+
let modifiedProperties = modifiedObject.properties;
|
|
103
|
+
let argName = argPath.pop();
|
|
104
|
+
argPath.forEach((property) => {
|
|
105
|
+
if (Object.keys(modifiedProperties).includes(property)) {
|
|
106
|
+
modifiedObject = modifiedProperties[property];
|
|
107
|
+
modifiedProperties = modifiedObject.properties;
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
throw Error('Nested argument not found!');
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
if (Object.keys(modifiedProperties).includes(argName)) {
|
|
114
|
+
delete modifiedProperties[argName];
|
|
115
|
+
modifiedObject.required = schema.required.filter((arg) => arg !== argName);
|
|
116
|
+
if (modifiedObject.order) {
|
|
117
|
+
modifiedObject.order = modifiedObject.order.filter((arg) => arg !== argName);
|
|
118
|
+
}
|
|
119
|
+
schema = schema;
|
|
120
|
+
schemaString = JSON.stringify(schema, null, '\t');
|
|
121
|
+
dispatch('change', schema);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
throw Error('Argument not found!');
|
|
125
|
+
}
|
|
126
|
+
syncOrders();
|
|
127
|
+
dispatch('change', schema);
|
|
128
|
+
}
|
|
129
|
+
catch (err) {
|
|
130
|
+
sendUserToast(`Could not delete argument: ${err}`, true);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
</script>
|
|
134
|
+
|
|
135
|
+
<AddPropertyFormV2
|
|
136
|
+
on:add={(e) => {
|
|
137
|
+
try {
|
|
138
|
+
handleAddOrEditArgument({
|
|
139
|
+
...DEFAULT_PROPERTY,
|
|
140
|
+
selectedType: 'string',
|
|
141
|
+
name: e.detail.name
|
|
142
|
+
})
|
|
143
|
+
} catch (err) {
|
|
144
|
+
sendUserToast(`Could not add argument: ${err}`, true)
|
|
145
|
+
}
|
|
146
|
+
}}
|
|
147
|
+
>
|
|
148
|
+
<svelte:fragment slot="trigger">
|
|
149
|
+
<slot name="trigger" />
|
|
150
|
+
</svelte:fragment>
|
|
151
|
+
</AddPropertyFormV2>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
import { type Schema, type ModalSchemaProperty } from '../../common';
|
|
3
|
+
declare const __propDef: {
|
|
4
|
+
props: {
|
|
5
|
+
schema?: Schema | any;
|
|
6
|
+
DEFAULT_PROPERTY?: ModalSchemaProperty | undefined;
|
|
7
|
+
handleDeleteArgument?: ((argPath: string[]) => void) | undefined;
|
|
8
|
+
};
|
|
9
|
+
events: {
|
|
10
|
+
change: CustomEvent<any>;
|
|
11
|
+
} & {
|
|
12
|
+
[evt: string]: CustomEvent<any>;
|
|
13
|
+
};
|
|
14
|
+
slots: {
|
|
15
|
+
trigger: {};
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
export type AddPropertyV2Props = typeof __propDef.props;
|
|
19
|
+
export type AddPropertyV2Events = typeof __propDef.events;
|
|
20
|
+
export type AddPropertyV2Slots = typeof __propDef.slots;
|
|
21
|
+
export default class AddPropertyV2 extends SvelteComponent<AddPropertyV2Props, AddPropertyV2Events, AddPropertyV2Slots> {
|
|
22
|
+
get DEFAULT_PROPERTY(): ModalSchemaProperty;
|
|
23
|
+
get handleDeleteArgument(): (argPath: string[]) => void;
|
|
24
|
+
}
|
|
25
|
+
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<script>import { GripVertical, Pen, Trash } from 'lucide-svelte';
|
|
1
|
+
<script>import { GripVertical, Pen, Trash, Plus } from 'lucide-svelte';
|
|
2
2
|
import EditableSchemaForm from '../EditableSchemaForm.svelte';
|
|
3
3
|
import { Drawer, DrawerContent } from '../common';
|
|
4
4
|
import AddProperty from './AddProperty.svelte';
|
|
@@ -10,6 +10,7 @@ import { createEventDispatcher, tick } from 'svelte';
|
|
|
10
10
|
import Label from '../Label.svelte';
|
|
11
11
|
import Toggle from '../Toggle.svelte';
|
|
12
12
|
import SimpleEditor from '../SimpleEditor.svelte';
|
|
13
|
+
import AddPropertyV2 from './AddPropertyV2.svelte';
|
|
13
14
|
export let schema;
|
|
14
15
|
export let parentId = undefined;
|
|
15
16
|
const flipDurationMs = 200;
|
|
@@ -36,7 +37,6 @@ function handleFinalize(e) {
|
|
|
36
37
|
schema = { ...schema };
|
|
37
38
|
dispatch('change', schema);
|
|
38
39
|
}
|
|
39
|
-
const yOffset = 49;
|
|
40
40
|
export let jsonView = false;
|
|
41
41
|
let schemaString = JSON.stringify(schema, null, '\t');
|
|
42
42
|
let editor = undefined;
|
|
@@ -151,10 +151,7 @@ let error = undefined;
|
|
|
151
151
|
</div>
|
|
152
152
|
|
|
153
153
|
<Drawer bind:this={schemaFormDrawer} size="1200px">
|
|
154
|
-
<DrawerContent
|
|
155
|
-
<svelte:fragment slot="actions">
|
|
156
|
-
<AddProperty on:change bind:schema />
|
|
157
|
-
</svelte:fragment>
|
|
154
|
+
<DrawerContent title="UI Customisation" on:close={schemaFormDrawer.closeDrawer}>
|
|
158
155
|
<EditableSchemaForm
|
|
159
156
|
on:change
|
|
160
157
|
bind:this={editableSchemaForm}
|
|
@@ -166,10 +163,22 @@ let error = undefined;
|
|
|
166
163
|
on:delete={(e) => {
|
|
167
164
|
addProperty?.handleDeleteArgument([e.detail])
|
|
168
165
|
}}
|
|
169
|
-
offset={yOffset}
|
|
170
166
|
lightweightMode
|
|
171
167
|
dndType="drawer"
|
|
172
|
-
|
|
168
|
+
editTab="inputEditor"
|
|
169
|
+
>
|
|
170
|
+
<svelte:fragment slot="addProperty">
|
|
171
|
+
<AddPropertyV2 bind:schema on:change>
|
|
172
|
+
<svelte:fragment slot="trigger">
|
|
173
|
+
<div
|
|
174
|
+
class="w-full py-2 flex justify-center items-center border border-dashed rounded-md hover:bg-surface-hover"
|
|
175
|
+
>
|
|
176
|
+
<Plus size={14} />
|
|
177
|
+
</div>
|
|
178
|
+
</svelte:fragment>
|
|
179
|
+
</AddPropertyV2>
|
|
180
|
+
</svelte:fragment>
|
|
181
|
+
</EditableSchemaForm>
|
|
173
182
|
</DrawerContent>
|
|
174
183
|
</Drawer>
|
|
175
184
|
{:else}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
<script>import { twMerge } from 'tailwind-merge';
|
|
2
2
|
import EditableSchemaForm from '../EditableSchemaForm.svelte';
|
|
3
|
-
import AddProperty from './AddProperty.svelte';
|
|
4
3
|
import { createEventDispatcher } from 'svelte';
|
|
5
4
|
import Toggle from '../Toggle.svelte';
|
|
6
5
|
import { emptySchema, validateFileExtension } from '../../utils';
|
|
7
6
|
import AutoComplete from 'simple-svelte-autocomplete';
|
|
8
7
|
import { Alert } from '../common';
|
|
8
|
+
import AddPropertyV2 from './AddPropertyV2.svelte';
|
|
9
|
+
import { Plus } from 'lucide-svelte';
|
|
9
10
|
export let schema;
|
|
10
|
-
export let offset = 0;
|
|
11
11
|
export let uiOnly = false;
|
|
12
12
|
export let noPreview = false;
|
|
13
13
|
export let fullHeight = true;
|
|
@@ -27,7 +27,7 @@ function switchResourceIsFile() {
|
|
|
27
27
|
formatExtension = undefined;
|
|
28
28
|
}
|
|
29
29
|
else {
|
|
30
|
-
formatExtension =
|
|
30
|
+
formatExtension = '';
|
|
31
31
|
schema = emptySchema();
|
|
32
32
|
schema.order = ['content'];
|
|
33
33
|
schema.properties = {
|
|
@@ -52,19 +52,44 @@ function numberOfMatches(listItem, searchWords) {
|
|
|
52
52
|
});
|
|
53
53
|
return matches;
|
|
54
54
|
}
|
|
55
|
-
let suggestedFileExtensions = [
|
|
55
|
+
let suggestedFileExtensions = [
|
|
56
|
+
'json',
|
|
57
|
+
'yaml',
|
|
58
|
+
'jinja',
|
|
59
|
+
'j2',
|
|
60
|
+
'ini',
|
|
61
|
+
'cfg',
|
|
62
|
+
'toml',
|
|
63
|
+
'html',
|
|
64
|
+
'xml',
|
|
65
|
+
'yml'
|
|
66
|
+
];
|
|
56
67
|
let autocompleteExtension = true;
|
|
57
68
|
</script>
|
|
58
69
|
|
|
59
70
|
{#if !resourceIsTextFile}
|
|
60
|
-
<div
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
71
|
+
<div
|
|
72
|
+
class={twMerge(
|
|
73
|
+
fullHeight ? 'h-full' : 'h-80',
|
|
74
|
+
noPreview ? '' : 'border rounded-md p-2',
|
|
75
|
+
'overflow-y-auto flex flex-col gap-2'
|
|
76
|
+
)}
|
|
77
|
+
>
|
|
78
|
+
{#if noPreview}
|
|
79
|
+
<AddPropertyV2
|
|
64
80
|
bind:schema
|
|
65
81
|
bind:this={addProperty}
|
|
66
|
-
|
|
67
|
-
|
|
82
|
+
on:change={() => dispatch('change', schema)}
|
|
83
|
+
>
|
|
84
|
+
<svelte:fragment slot="trigger">
|
|
85
|
+
<div
|
|
86
|
+
class="w-full py-2 flex justify-center items-center border border-dashed rounded-md hover:bg-surface-hover"
|
|
87
|
+
>
|
|
88
|
+
<Plus size={14} />
|
|
89
|
+
</div>
|
|
90
|
+
</svelte:fragment>
|
|
91
|
+
</AddPropertyV2>
|
|
92
|
+
{/if}
|
|
68
93
|
<EditableSchemaForm
|
|
69
94
|
bind:schema
|
|
70
95
|
on:change={() => dispatch('change', schema)}
|
|
@@ -75,17 +100,35 @@ let autocompleteExtension = true;
|
|
|
75
100
|
on:delete={(e) => {
|
|
76
101
|
addProperty?.handleDeleteArgument([e.detail])
|
|
77
102
|
}}
|
|
78
|
-
{offset}
|
|
79
103
|
{uiOnly}
|
|
80
104
|
{noPreview}
|
|
81
105
|
{lightweightMode}
|
|
82
|
-
|
|
106
|
+
editTab="inputEditor"
|
|
107
|
+
>
|
|
108
|
+
<svelte:fragment slot="addProperty">
|
|
109
|
+
{#if !noPreview}
|
|
110
|
+
<AddPropertyV2
|
|
111
|
+
bind:schema
|
|
112
|
+
bind:this={addProperty}
|
|
113
|
+
on:change={() => dispatch('change', schema)}
|
|
114
|
+
>
|
|
115
|
+
<svelte:fragment slot="trigger">
|
|
116
|
+
<div
|
|
117
|
+
class="w-full py-2 flex justify-center items-center border border-dashed rounded-md hover:bg-surface-hover"
|
|
118
|
+
>
|
|
119
|
+
<Plus size={14} />
|
|
120
|
+
</div>
|
|
121
|
+
</svelte:fragment>
|
|
122
|
+
</AddPropertyV2>
|
|
123
|
+
{/if}
|
|
124
|
+
</svelte:fragment>
|
|
125
|
+
</EditableSchemaForm>
|
|
83
126
|
</div>
|
|
84
127
|
{/if}
|
|
85
128
|
{#if resourceIsTextFile}
|
|
86
129
|
<div class="flex items-center space-x-2 w-5/12">
|
|
87
130
|
<label for="format-extension" class="text-base font-medium whitespace-nowrap">
|
|
88
|
-
File extension{autocompleteExtension ?
|
|
131
|
+
File extension{autocompleteExtension ? '' : ' (free text)'}:
|
|
89
132
|
</label>
|
|
90
133
|
{#if autocompleteExtension}
|
|
91
134
|
<AutoComplete
|
|
@@ -135,7 +178,8 @@ let autocompleteExtension = true;
|
|
|
135
178
|
{#if invalidExtension}
|
|
136
179
|
<Alert title="Invalid file extension" type="error">
|
|
137
180
|
The provided extension (<span class="font-bold font-mono">.{formatExtension}</span>) contains
|
|
138
|
-
invalid characters. Note that you shouldn't add the leading dot, (i.e. enter `json` instead of
|
|
181
|
+
invalid characters. Note that you shouldn't add the leading dot, (i.e. enter `json` instead of
|
|
182
|
+
`.json`)
|
|
139
183
|
</Alert>
|
|
140
184
|
{:else if formatExtension && formatExtension !== ''}
|
|
141
185
|
<Alert title={`Example: my_file.${formatExtension}`} type="info">
|
|
@@ -263,7 +263,12 @@ let initialObjectSelected = Object.keys(schema?.properties ?? {}).length == 0 ?
|
|
|
263
263
|
</div>
|
|
264
264
|
{#if oneOfSelected && schema.oneOf}
|
|
265
265
|
{@const idx = schema.oneOf.findIndex((obj) => obj.title === oneOfSelected)}
|
|
266
|
-
<EditableSchemaDrawer
|
|
266
|
+
<EditableSchemaDrawer
|
|
267
|
+
bind:schema={schema.oneOf[idx]}
|
|
268
|
+
on:change={() => {
|
|
269
|
+
dispatch('schemaChange')
|
|
270
|
+
}}
|
|
271
|
+
/>
|
|
267
272
|
{/if}
|
|
268
273
|
{:else if type === 'object' && format !== 'resource-s3_object'}
|
|
269
274
|
<Tabs
|
|
@@ -279,7 +284,7 @@ let initialObjectSelected = Object.keys(schema?.properties ?? {}).length == 0 ?
|
|
|
279
284
|
<svelte:fragment slot="content">
|
|
280
285
|
<div class="pt-2">
|
|
281
286
|
<TabContent value="custom-object">
|
|
282
|
-
<EditableSchemaDrawer bind:schema />
|
|
287
|
+
<EditableSchemaDrawer bind:schema on:change={() => dispatch('schemaChange')} />
|
|
283
288
|
</TabContent>
|
|
284
289
|
|
|
285
290
|
<TabContent value="resource">
|
|
@@ -329,7 +334,7 @@ let initialObjectSelected = Object.keys(schema?.properties ?? {}).length == 0 ?
|
|
|
329
334
|
</Label>
|
|
330
335
|
{/if}
|
|
331
336
|
|
|
332
|
-
<div class="flex flex-row gap-2">
|
|
337
|
+
<div class="flex flex-row gap-2 flex-wrap h-auto">
|
|
333
338
|
<Toggle
|
|
334
339
|
options={{ right: 'Required' }}
|
|
335
340
|
size="xs"
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
<script>import SchemaPickerRow from './SchemaPickerRow.svelte';
|
|
2
|
+
import { workspaceStore } from '../../stores';
|
|
3
|
+
import { ExternalLink } from 'lucide-svelte';
|
|
4
|
+
import { base } from '../../base';
|
|
5
|
+
export let job;
|
|
6
|
+
export let selected = false;
|
|
7
|
+
export let payloadData = undefined;
|
|
8
|
+
export let hovering = false;
|
|
9
|
+
</script>
|
|
10
|
+
|
|
11
|
+
<SchemaPickerRow {payloadData} date={job.created_at} {selected} {hovering}>
|
|
12
|
+
<svelte:fragment slot="start">
|
|
13
|
+
<div class="center-center">
|
|
14
|
+
<div
|
|
15
|
+
class="rounded-full w-2 h-2 {job.success ? 'bg-green-400' : 'bg-red-400'}"
|
|
16
|
+
title={job.success ? 'Success' : 'Failed'}
|
|
17
|
+
/>
|
|
18
|
+
</div>
|
|
19
|
+
</svelte:fragment>
|
|
20
|
+
<svelte:fragment slot="extra">
|
|
21
|
+
<div class="center-center {hovering ? '' : '!hidden'}">
|
|
22
|
+
<a
|
|
23
|
+
target="_blank"
|
|
24
|
+
href="{base}/run/{job.id}?workspace={$workspaceStore}"
|
|
25
|
+
class="text-right float-right text-secondary"
|
|
26
|
+
title="See run detail in a new tab"
|
|
27
|
+
>
|
|
28
|
+
<ExternalLink size={16} />
|
|
29
|
+
</a>
|
|
30
|
+
</div>
|
|
31
|
+
</svelte:fragment>
|
|
32
|
+
</SchemaPickerRow>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
declare const __propDef: {
|
|
3
|
+
props: {
|
|
4
|
+
job: any;
|
|
5
|
+
selected?: boolean | undefined;
|
|
6
|
+
payloadData?: any | undefined;
|
|
7
|
+
hovering?: boolean | undefined;
|
|
8
|
+
};
|
|
9
|
+
events: {
|
|
10
|
+
[evt: string]: CustomEvent<any>;
|
|
11
|
+
};
|
|
12
|
+
slots: {};
|
|
13
|
+
};
|
|
14
|
+
export type JobSchemaPickerProps = typeof __propDef.props;
|
|
15
|
+
export type JobSchemaPickerEvents = typeof __propDef.events;
|
|
16
|
+
export type JobSchemaPickerSlots = typeof __propDef.slots;
|
|
17
|
+
export default class JobSchemaPicker extends SvelteComponent<JobSchemaPickerProps, JobSchemaPickerEvents, JobSchemaPickerSlots> {
|
|
18
|
+
}
|
|
19
|
+
export {};
|
|
@@ -178,6 +178,7 @@ function updateSchema() {
|
|
|
178
178
|
bind:schema={oneOfSchemas[idx]}
|
|
179
179
|
uiOnly
|
|
180
180
|
jsonEnabled={false}
|
|
181
|
+
editTab="inputEditor"
|
|
181
182
|
/>
|
|
182
183
|
</div>
|
|
183
184
|
{/if}
|
|
@@ -185,7 +186,14 @@ function updateSchema() {
|
|
|
185
186
|
<div class="text-tertiary text-xs">No settings available for Dynamic Select</div>
|
|
186
187
|
{:else if type == 'object' && !format?.startsWith('resource-') && !isFlowInput && !isAppInput}
|
|
187
188
|
<div class="border">
|
|
188
|
-
<EditableSchemaForm
|
|
189
|
+
<EditableSchemaForm
|
|
190
|
+
on:change
|
|
191
|
+
noPreview
|
|
192
|
+
bind:schema
|
|
193
|
+
uiOnly
|
|
194
|
+
jsonEnabled={false}
|
|
195
|
+
editTab="inputEditor"
|
|
196
|
+
/>
|
|
189
197
|
</div>
|
|
190
198
|
{:else}
|
|
191
199
|
<div class="text-tertiary text-xs">No settings available for this field type</div>
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
<script>import SchemaPickerRow from './SchemaPickerRow.svelte';
|
|
2
|
+
import Skeleton from '../common/skeleton/Skeleton.svelte';
|
|
3
|
+
import { JobService } from '../../gen/index.js';
|
|
4
|
+
import { workspaceStore } from '../../stores';
|
|
5
|
+
import { createEventDispatcher } from 'svelte';
|
|
6
|
+
import { ExternalLink } from 'lucide-svelte';
|
|
7
|
+
import { base } from '../../base';
|
|
8
|
+
import { Cell, Row } from '../table';
|
|
9
|
+
import { twMerge } from 'tailwind-merge';
|
|
10
|
+
export let job;
|
|
11
|
+
export let selected = false;
|
|
12
|
+
export let payloadData = undefined;
|
|
13
|
+
const dispatch = createEventDispatcher();
|
|
14
|
+
export let hovering = false;
|
|
15
|
+
let loadingArgs = true;
|
|
16
|
+
loadArgsFromRunningJob(job.id);
|
|
17
|
+
async function loadArgsFromRunningJob(id) {
|
|
18
|
+
if (!id)
|
|
19
|
+
return;
|
|
20
|
+
payloadData = await JobService.getJobArgs({
|
|
21
|
+
workspace: $workspaceStore,
|
|
22
|
+
id
|
|
23
|
+
});
|
|
24
|
+
loadingArgs = false;
|
|
25
|
+
}
|
|
26
|
+
</script>
|
|
27
|
+
|
|
28
|
+
{#if loadingArgs}
|
|
29
|
+
<Cell>
|
|
30
|
+
<Skeleton layout={[[1]]} />
|
|
31
|
+
</Cell>
|
|
32
|
+
<Cell>
|
|
33
|
+
<Skeleton layout={[[1]]} />
|
|
34
|
+
</Cell>
|
|
35
|
+
<Cell>
|
|
36
|
+
<Skeleton layout={[[1]]} />
|
|
37
|
+
</Cell>
|
|
38
|
+
{:else}
|
|
39
|
+
<Row
|
|
40
|
+
on:click={() => dispatch('select', { id: job.id, payloadData })}
|
|
41
|
+
class={twMerge(
|
|
42
|
+
selected === job.id ? 'bg-surface-selected' : 'hover:bg-surface-hover',
|
|
43
|
+
'cursor-pointer rounded-md'
|
|
44
|
+
)}
|
|
45
|
+
on:hover={(e) => (hovering = e.detail ? true : false)}
|
|
46
|
+
>
|
|
47
|
+
<SchemaPickerRow {payloadData} date={job.created_at} {selected} {hovering}>
|
|
48
|
+
<svelte:fragment slot="start">
|
|
49
|
+
<div class="center-center">
|
|
50
|
+
<div class="rounded-full w-2 h-2 bg-orange-400 animate-pulse" title="Running" />
|
|
51
|
+
</div>
|
|
52
|
+
</svelte:fragment>
|
|
53
|
+
<svelte:fragment slot="extra">
|
|
54
|
+
<div class="center-center {hovering ? '' : '!hidden'}">
|
|
55
|
+
<a
|
|
56
|
+
target="_blank"
|
|
57
|
+
href="{base}/run/{job.id}?workspace={$workspaceStore}"
|
|
58
|
+
class="text-right float-right text-secondary"
|
|
59
|
+
title="See run detail in a new tab"
|
|
60
|
+
>
|
|
61
|
+
<ExternalLink size={16} />
|
|
62
|
+
</a>
|
|
63
|
+
</div>
|
|
64
|
+
</svelte:fragment>
|
|
65
|
+
</SchemaPickerRow>
|
|
66
|
+
</Row>
|
|
67
|
+
{/if}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
declare const __propDef: {
|
|
3
|
+
props: {
|
|
4
|
+
job: any;
|
|
5
|
+
selected?: boolean | undefined;
|
|
6
|
+
payloadData?: any | undefined;
|
|
7
|
+
hovering?: boolean | undefined;
|
|
8
|
+
};
|
|
9
|
+
events: {
|
|
10
|
+
select: CustomEvent<any>;
|
|
11
|
+
} & {
|
|
12
|
+
[evt: string]: CustomEvent<any>;
|
|
13
|
+
};
|
|
14
|
+
slots: {};
|
|
15
|
+
};
|
|
16
|
+
export type RunningJobSchemaPickerProps = typeof __propDef.props;
|
|
17
|
+
export type RunningJobSchemaPickerEvents = typeof __propDef.events;
|
|
18
|
+
export type RunningJobSchemaPickerSlots = typeof __propDef.slots;
|
|
19
|
+
export default class RunningJobSchemaPicker extends SvelteComponent<RunningJobSchemaPickerProps, RunningJobSchemaPickerEvents, RunningJobSchemaPickerSlots> {
|
|
20
|
+
}
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
<script>import CustomPopover from '../CustomPopover.svelte';
|
|
2
|
+
import { copyToClipboard } from '../../utils';
|
|
3
|
+
import { createEventDispatcher } from 'svelte';
|
|
4
|
+
import ObjectViewer from '../propertyPicker/ObjectViewer.svelte';
|
|
5
|
+
import { twMerge } from 'tailwind-merge';
|
|
6
|
+
export let payloadData;
|
|
7
|
+
export let date;
|
|
8
|
+
export let selected = false;
|
|
9
|
+
const dispatch = createEventDispatcher();
|
|
10
|
+
let hovering = false;
|
|
11
|
+
function formatDate(dateString) {
|
|
12
|
+
if (!dateString)
|
|
13
|
+
return '';
|
|
14
|
+
const date = new Date(dateString);
|
|
15
|
+
return new Intl.DateTimeFormat('en-US', {
|
|
16
|
+
year: 'numeric',
|
|
17
|
+
month: 'short',
|
|
18
|
+
day: 'numeric',
|
|
19
|
+
hour: '2-digit',
|
|
20
|
+
minute: '2-digit'
|
|
21
|
+
}).format(date);
|
|
22
|
+
}
|
|
23
|
+
</script>
|
|
24
|
+
|
|
25
|
+
<button
|
|
26
|
+
class={twMerge(
|
|
27
|
+
'w-full rounded-sm px-2',
|
|
28
|
+
hovering ? 'bg-surface-hover' : '',
|
|
29
|
+
selected ? 'bg-surface-selected' : ''
|
|
30
|
+
)}
|
|
31
|
+
on:click={() => {
|
|
32
|
+
dispatch('select')
|
|
33
|
+
}}
|
|
34
|
+
on:mouseenter={() => {
|
|
35
|
+
hovering = true
|
|
36
|
+
}}
|
|
37
|
+
on:mouseleave={() => {
|
|
38
|
+
hovering = false
|
|
39
|
+
}}
|
|
40
|
+
>
|
|
41
|
+
<div class="flex flex-row gap-2">
|
|
42
|
+
<slot name="start" />
|
|
43
|
+
|
|
44
|
+
<div
|
|
45
|
+
class="text-2xs font-normal text-left p-2 rounded-md overflow-auto grow-0 text-ellipsis whitespace-nowrap scrollbar-none"
|
|
46
|
+
title={formatDate(date)}
|
|
47
|
+
>
|
|
48
|
+
{formatDate(date)}
|
|
49
|
+
</div>
|
|
50
|
+
|
|
51
|
+
<CustomPopover class="grow min-w-12 ">
|
|
52
|
+
<!-- svelte-ignore a11y-click-events-have-key-events -->
|
|
53
|
+
<!-- svelte-ignore a11y-no-static-element-interactions -->
|
|
54
|
+
<div
|
|
55
|
+
class={twMerge(
|
|
56
|
+
'text-xs border font-normal text-left p-1 rounded-md overflow-auto grow whitespace-nowrap scrollbar-none',
|
|
57
|
+
hovering && 'border-surface'
|
|
58
|
+
)}
|
|
59
|
+
on:click={() => {
|
|
60
|
+
if (selected) {
|
|
61
|
+
copyToClipboard(JSON.stringify(payloadData))
|
|
62
|
+
}
|
|
63
|
+
}}
|
|
64
|
+
on:mouseenter={() => {
|
|
65
|
+
hovering = true
|
|
66
|
+
}}
|
|
67
|
+
on:mouseleave={() => {
|
|
68
|
+
hovering = false
|
|
69
|
+
}}
|
|
70
|
+
>
|
|
71
|
+
{JSON.stringify(payloadData)}
|
|
72
|
+
</div>
|
|
73
|
+
<svelte:fragment slot="overlay">
|
|
74
|
+
<ObjectViewer json={payloadData} />
|
|
75
|
+
</svelte:fragment>
|
|
76
|
+
</CustomPopover>
|
|
77
|
+
|
|
78
|
+
{#if hovering}
|
|
79
|
+
<slot name="extra" />
|
|
80
|
+
{/if}
|
|
81
|
+
</div>
|
|
82
|
+
</button>
|
|
83
|
+
|
|
84
|
+
<style>
|
|
85
|
+
.scrollbar-none {
|
|
86
|
+
-ms-overflow-style: none; /* IE and Edge */
|
|
87
|
+
scrollbar-width: none; /* Firefox */
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.scrollbar-none::-webkit-scrollbar {
|
|
91
|
+
display: none; /* Chrome, Safari and Opera */
|
|
92
|
+
}</style>
|