windmill-components 1.339.2 → 1.352.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package/assets/app.css +0 -12
- package/package/ata/index.js +1 -0
- package/package/autosize.js +1 -1
- package/package/common.d.ts +6 -2
- package/package/common.js +2 -1
- package/package/components/AppConnectDrawer.svelte +1 -1
- package/package/components/AppConnectInner.svelte +9 -15
- package/package/components/ArgEnum.svelte +4 -1
- package/package/components/ArgEnum.svelte.d.ts +3 -1
- package/package/components/ArgInput.svelte +184 -141
- package/package/components/ArgInput.svelte.d.ts +7 -7
- package/package/components/ArrayTypeNarrowing.svelte +29 -27
- package/package/components/CenteredPage.svelte +2 -2
- package/package/components/DefaultTagsInner.svelte +1 -1
- package/package/components/Dev.svelte +2 -1
- package/package/components/DiffDrawer.svelte +1 -2
- package/package/components/DisplayResult.svelte +293 -233
- package/package/components/DurationMs.svelte +11 -3
- package/package/components/DurationMs.svelte.d.ts +2 -0
- package/package/components/EditableSchemaForm.svelte +447 -103
- package/package/components/EditableSchemaForm.svelte.d.ts +16 -6
- package/package/components/Editor.svelte +3 -1
- package/package/components/EditorBar.svelte +2 -2
- package/package/components/FlowBuilder.svelte +14 -6
- package/package/components/FlowGraphViewer.svelte +1 -1
- package/package/components/FlowGraphViewerStep.svelte +37 -9
- package/package/components/FlowGraphViewerStep.svelte.d.ts +2 -7
- package/package/components/FlowJobResult.svelte +1 -3
- package/package/components/FlowMetadata.svelte +1 -1
- package/package/components/FlowPreviewContent.svelte +5 -3
- package/package/components/FlowStatusViewer.svelte +4 -0
- package/package/components/FlowStatusViewer.svelte.d.ts +3 -0
- package/package/components/FlowStatusViewerInner.svelte +50 -17
- package/package/components/FlowStatusViewerInner.svelte.d.ts +3 -0
- package/package/components/FlowTimeline.svelte +13 -0
- package/package/components/FlowTimeline.svelte.d.ts +2 -0
- package/package/components/FlowViewer.svelte +0 -5
- package/package/components/FolderEditor.svelte +25 -0
- package/package/components/FolderEditor.svelte.d.ts +2 -0
- package/package/components/GroupEditor.svelte +36 -91
- package/package/components/GroupInfo.svelte +1 -1
- package/package/components/InputTransformForm.svelte +16 -1
- package/package/components/InputTransformForm.svelte.d.ts +2 -0
- package/package/components/InputTransformSchemaForm.svelte +6 -0
- package/package/components/InputTransformSchemaForm.svelte.d.ts +2 -0
- package/package/components/InstanceSettings.svelte +36 -3
- package/package/components/InstanceSettings.svelte.d.ts +2 -0
- package/package/components/JobStatus.svelte +2 -2
- package/package/components/LightweightArgInput.svelte +66 -14
- package/package/components/LightweightArgInput.svelte.d.ts +3 -2
- package/package/components/LightweightSchemaForm.svelte +24 -15
- package/package/components/ModulePreviewForm.svelte +1 -0
- package/package/components/NumberTypeNarrowing.svelte +71 -44
- package/package/components/ObjectResourceInput.svelte +2 -0
- package/package/components/ObjectResourceInput.svelte.d.ts +1 -0
- package/package/components/ObjectTypeNarrowing.svelte +0 -1
- package/package/components/ParqetCsvTableRenderer.svelte +181 -0
- package/package/components/ParqetCsvTableRenderer.svelte.d.ts +21 -0
- package/package/components/Path.svelte +2 -2
- package/package/components/PersistentScriptDrawer.svelte +6 -3
- package/package/components/Range.svelte +88 -286
- package/package/components/Range.svelte.d.ts +9 -23
- package/package/components/ResourceEditor.svelte +138 -141
- package/package/components/ResourceEditor.svelte.d.ts +9 -2
- package/package/components/ResourceEditorDrawer.svelte +45 -0
- package/package/components/ResourceEditorDrawer.svelte.d.ts +21 -0
- package/package/components/ResourcePicker.svelte +5 -2
- package/package/components/ResourceTypePicker.svelte +88 -36
- package/package/components/RunChart.svelte +55 -5
- package/package/components/RunChart.svelte.d.ts +1 -0
- package/package/components/RunForm.svelte +1 -1
- package/package/components/S3FilePicker.svelte +20 -8
- package/package/components/S3FilePicker.svelte.d.ts +2 -0
- package/package/components/ScheduleEditorInner.svelte +40 -37
- package/package/components/SchemaForm.svelte +192 -103
- package/package/components/SchemaForm.svelte.d.ts +16 -2
- package/package/components/ScriptBuilder.svelte +13 -8
- package/package/components/ScriptSchedules.svelte +11 -8
- package/package/components/ScriptSchema.svelte +3 -21
- package/package/components/ScriptVersionHistory.svelte +1 -1
- package/package/components/StringTypeNarrowing.svelte +217 -174
- package/package/components/StringTypeNarrowing.svelte.d.ts +5 -1
- package/package/components/Toggle.svelte +6 -3
- package/package/components/Toggle.svelte.d.ts +1 -0
- package/package/components/UserSettings.svelte +24 -1
- package/package/components/WorkspaceGroup.svelte +11 -13
- package/package/components/apps/components/buttons/AppButton.svelte +2 -0
- package/package/components/apps/components/buttons/AppButton.svelte.d.ts +1 -0
- package/package/components/apps/components/display/AppFlowStatusComponent.svelte +13 -70
- package/package/components/apps/components/display/AppFlowStatusComponent.svelte.d.ts +1 -9
- package/package/components/apps/components/display/AppJobIdFlowStatus.svelte +21 -8
- package/package/components/apps/components/display/AppJobIdFlowStatus.svelte.d.ts +1 -3
- package/package/components/apps/components/display/AppJobIdLogComponent.svelte +19 -7
- package/package/components/apps/components/display/AppJobIdLogComponent.svelte.d.ts +1 -3
- package/package/components/apps/components/display/AppLogsComponent.svelte +13 -70
- package/package/components/apps/components/display/AppLogsComponent.svelte.d.ts +1 -9
- package/package/components/apps/components/display/charts/AppAgCharts.svelte +25 -15
- package/package/components/apps/components/display/table/AppAggridTableActions.svelte +2 -0
- package/package/components/apps/components/display/table/SyncColumnDefs.svelte +1 -1
- package/package/components/apps/components/helpers/HiddenComponent.svelte +2 -1
- package/package/components/apps/components/helpers/RunnableComponent.svelte +18 -8
- package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +1 -0
- package/package/components/apps/components/helpers/RunnableWrapper.svelte +2 -0
- package/package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +1 -0
- package/package/components/apps/components/helpers/eval.js +1 -36
- package/package/components/apps/components/inputs/AppFileInput.svelte +3 -1
- package/package/components/apps/components/inputs/AppFileInput.svelte.d.ts +1 -0
- package/package/components/apps/components/inputs/AppS3FileInput.svelte +3 -1
- package/package/components/apps/components/inputs/AppS3FileInput.svelte.d.ts +1 -0
- package/package/components/apps/components/layout/AppConditionalWrapper.svelte +3 -1
- package/package/components/apps/components/layout/AppConditionalWrapper.svelte.d.ts +1 -0
- package/package/components/apps/components/layout/AppStepper.svelte +5 -1
- package/package/components/apps/components/layout/AppStepper.svelte.d.ts +2 -0
- package/package/components/apps/components/layout/AppTabs.svelte +3 -1
- package/package/components/apps/components/layout/AppTabs.svelte.d.ts +1 -0
- package/package/components/apps/editor/AppEditorHeader.svelte +6 -7
- package/package/components/apps/editor/SettingsPanel.svelte +13 -3
- package/package/components/apps/editor/component/Component.svelte +8 -16
- package/package/components/apps/editor/component/components.d.ts +11 -2
- package/package/components/apps/editor/component/components.js +2 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +1 -1
- package/package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +5 -34
- package/package/components/apps/editor/settingsPanel/ComponentPanel.svelte +3 -41
- package/package/components/apps/editor/settingsPanel/EventHandlerItem.svelte +33 -0
- package/package/components/apps/editor/settingsPanel/EventHandlerItem.svelte.d.ts +19 -0
- package/package/components/apps/editor/settingsPanel/EventHandlers.svelte +103 -0
- package/package/components/apps/editor/settingsPanel/EventHandlers.svelte.d.ts +18 -0
- package/package/components/apps/editor/settingsPanel/GridCondition.svelte +21 -45
- package/package/components/apps/editor/settingsPanel/GridTab.svelte +3 -23
- package/package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +5 -1
- package/package/components/apps/editor/settingsPanel/SubTypeEditor.svelte +0 -2
- package/package/components/apps/editor/settingsPanel/SubTypeEditor.svelte.d.ts +0 -1
- package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte +7 -1
- package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +7 -14
- package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte.d.ts +0 -1
- package/package/components/common/button/ButtonDropdown.svelte +1 -0
- package/package/components/common/drawer/Disposable.svelte +3 -2
- package/package/components/common/drawer/Disposable.svelte.d.ts +1 -0
- package/package/components/common/drawer/Drawer.svelte +12 -2
- package/package/components/common/drawer/Drawer.svelte.d.ts +1 -0
- package/package/components/common/fileDownload/FileDownload.svelte +4 -2
- package/package/components/common/fileUpload/FileUpload.svelte +4 -3
- package/package/components/common/modal/Modal.svelte +4 -1
- package/package/components/common/modal/Modal.svelte.d.ts +1 -0
- package/package/components/common/popup/Popup.svelte +1 -1
- package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte +4 -1
- package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte.d.ts +1 -0
- package/package/components/common/waitTimeWarning/WaitTimeWarning.svelte +79 -0
- package/package/components/common/waitTimeWarning/WaitTimeWarning.svelte.d.ts +18 -0
- package/package/components/flows/content/FlowEditorPanel.svelte +16 -2
- package/package/components/flows/content/FlowInput.svelte +63 -53
- package/package/components/flows/content/FlowModuleComponent.svelte +26 -3
- package/package/components/flows/content/FlowModuleScript.svelte +40 -1
- package/package/components/flows/content/FlowModuleScript.svelte.d.ts +2 -0
- package/package/components/flows/content/FlowModuleSuspend.svelte +99 -59
- package/package/components/flows/content/FlowModuleWrapper.svelte +16 -1
- package/package/components/flows/content/FlowSchedules.svelte +11 -8
- package/package/components/flows/content/ScriptEditorDrawer.svelte +3 -4
- package/package/components/flows/flowStateUtils.js +4 -1
- package/package/components/flows/map/FlowModuleSchemaItem.svelte +16 -1
- package/package/components/flows/map/FlowModuleSchemaMap.svelte +6 -1
- package/package/components/flows/types.d.ts +4 -0
- package/package/components/flows/utils.d.ts +5 -1
- package/package/components/flows/utils.js +36 -0
- package/package/components/graph/FlowGraph.svelte +5 -2
- package/package/components/graph/FlowGraph.svelte.d.ts +2 -0
- package/package/components/graph/svelvet/container/models/index.d.ts +0 -5
- package/package/components/graph/svelvet/container/models/index.js +1 -1
- package/package/components/graph/svelvet/container/views/Svelvet.svelte +2 -5
- package/package/components/graph/util.d.ts +1 -37
- package/package/components/graph/util.js +0 -34
- package/package/components/instanceSettings.js +2 -1
- package/package/components/jobs/JobPreview.svelte +1 -1
- package/package/components/multiselect/MultiSelect.svelte +4 -3
- package/package/components/multiselect/MultiSelect.svelte.d.ts +1 -0
- package/package/components/multiselect/MultiSelectWrapper.svelte +89 -0
- package/package/components/multiselect/MultiSelectWrapper.svelte.d.ts +20 -0
- package/package/components/propertyPicker/ObjectViewer.svelte +6 -2
- package/package/components/runs/JobPreview.svelte +5 -1
- package/package/components/runs/RunRow.svelte +22 -3
- package/package/components/runs/RunRow.svelte.d.ts +2 -1
- package/package/components/runs/RunsTable.svelte +22 -9
- package/package/components/runs/RunsTable.svelte.d.ts +2 -1
- package/package/components/schema/AddProperty.svelte +149 -0
- package/package/components/schema/AddProperty.svelte.d.ts +23 -0
- package/package/components/schema/AddPropertyForm.svelte +33 -0
- package/package/components/schema/AddPropertyForm.svelte.d.ts +16 -0
- package/package/components/schema/EditableSchemaDrawer.svelte +198 -0
- package/package/components/schema/EditableSchemaDrawer.svelte.d.ts +21 -0
- package/package/components/schema/EditableSchemaWrapper.svelte +31 -0
- package/package/components/schema/EditableSchemaWrapper.svelte.d.ts +22 -0
- package/package/components/schema/FlowPropertyEditor.svelte +393 -0
- package/package/components/schema/FlowPropertyEditor.svelte.d.ts +47 -0
- package/package/components/schema/PropertyEditor.svelte +185 -0
- package/package/components/schema/PropertyEditor.svelte.d.ts +46 -0
- package/package/components/schema/SchemaFormDND.svelte +75 -0
- package/package/components/schema/SchemaFormDND.svelte.d.ts +28 -0
- package/package/components/table/AutoDataTable.svelte +90 -104
- package/package/components/table/Cell.svelte +4 -1
- package/package/components/table/Cell.svelte.d.ts +1 -0
- package/package/components/table/DownloadCsv.svelte +30 -0
- package/package/components/table/DownloadCsv.svelte.d.ts +17 -0
- package/package/components/table/tableUtils.d.ts +8 -0
- package/package/components/table/tableUtils.js +37 -0
- package/package/consts.js +3 -1
- package/package/deno_fetch.d.ts.txt +6 -0
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +76 -0
- package/package/gen/schemas.gen.js +76 -0
- package/package/gen/services.gen.d.ts +100 -5
- package/package/gen/services.gen.js +216 -16
- package/package/gen/types.gen.d.ts +378 -5
- package/package/inferArgSig.d.ts +10 -0
- package/package/inferArgSig.js +59 -2
- package/package/scripts.d.ts +2 -0
- package/package/scripts.js +6 -3
- package/package/utils.d.ts +4 -3
- package/package/utils.js +9 -4
- package/package/workspace_settings.d.ts +15 -0
- package/package/workspace_settings.js +81 -0
- package/package.json +16 -7
- package/package/components/ParqetTableRenderer.svelte +0 -117
- package/package/components/ParqetTableRenderer.svelte.d.ts +0 -18
- package/package/components/PropertyRow.svelte +0 -88
- package/package/components/PropertyRow.svelte.d.ts +0 -23
- package/package/components/SchemaEditor.svelte +0 -346
- package/package/components/SchemaEditor.svelte.d.ts +0 -25
- package/package/components/SchemaModal.svelte +0 -443
- package/package/components/SchemaModal.svelte.d.ts +0 -33
- package/package/components/apps/editor/settingsPanel/Recompute.svelte +0 -55
- package/package/components/apps/editor/settingsPanel/Recompute.svelte.d.ts +0 -20
package/package/inferArgSig.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export function argSigToJsonSchemaType(t, oldS) {
|
|
2
|
-
|
|
2
|
+
let newS = { type: '' };
|
|
3
3
|
if (t === 'int') {
|
|
4
4
|
newS.type = 'integer';
|
|
5
5
|
}
|
|
@@ -24,17 +24,47 @@ export function argSigToJsonSchemaType(t, oldS) {
|
|
|
24
24
|
else if (t === 'bytes') {
|
|
25
25
|
newS.type = 'string';
|
|
26
26
|
newS.contentEncoding = 'base64';
|
|
27
|
+
newS.originalType = 'bytes';
|
|
27
28
|
}
|
|
28
29
|
else if (t === 'datetime') {
|
|
29
30
|
newS.type = 'string';
|
|
30
31
|
newS.format = 'date-time';
|
|
31
32
|
}
|
|
33
|
+
else if (typeof t !== 'string' && 'oneof' in t) {
|
|
34
|
+
newS.type = 'object';
|
|
35
|
+
if (t.oneof) {
|
|
36
|
+
newS.oneOf = t.oneof.map((obj) => {
|
|
37
|
+
const oldObjS = oldS.oneOf?.find((o) => o?.title === obj.label) ?? undefined;
|
|
38
|
+
const properties = {};
|
|
39
|
+
for (const prop of obj.properties) {
|
|
40
|
+
if (oldObjS?.properties && prop.key in oldObjS?.properties) {
|
|
41
|
+
properties[prop.key] = oldObjS?.properties[prop.key];
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
properties[prop.key] = { description: '', type: '' };
|
|
45
|
+
}
|
|
46
|
+
argSigToJsonSchemaType(prop.typ, properties[prop.key]);
|
|
47
|
+
}
|
|
48
|
+
return {
|
|
49
|
+
type: 'object',
|
|
50
|
+
title: obj.label,
|
|
51
|
+
properties,
|
|
52
|
+
order: oldObjS?.order ?? undefined
|
|
53
|
+
};
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
}
|
|
32
57
|
else if (typeof t !== 'string' && `object` in t) {
|
|
33
58
|
newS.type = 'object';
|
|
34
59
|
if (t.object) {
|
|
35
60
|
const properties = {};
|
|
36
61
|
for (const prop of t.object) {
|
|
37
|
-
properties
|
|
62
|
+
if (oldS.properties && prop.key in oldS.properties) {
|
|
63
|
+
properties[prop.key] = oldS.properties[prop.key];
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
properties[prop.key] = { description: '', type: '' };
|
|
67
|
+
}
|
|
38
68
|
argSigToJsonSchemaType(prop.typ, properties[prop.key]);
|
|
39
69
|
}
|
|
40
70
|
newS.properties = properties;
|
|
@@ -43,8 +73,13 @@ export function argSigToJsonSchemaType(t, oldS) {
|
|
|
43
73
|
else if (typeof t !== 'string' && `str` in t) {
|
|
44
74
|
newS.type = 'string';
|
|
45
75
|
if (t.str) {
|
|
76
|
+
newS.originalType = 'enum';
|
|
46
77
|
newS.enum = t.str;
|
|
47
78
|
}
|
|
79
|
+
else {
|
|
80
|
+
newS.originalType = 'string';
|
|
81
|
+
newS.enum = undefined;
|
|
82
|
+
}
|
|
48
83
|
}
|
|
49
84
|
else if (typeof t !== 'string' && `resource` in t) {
|
|
50
85
|
newS.type = 'object';
|
|
@@ -71,6 +106,28 @@ export function argSigToJsonSchemaType(t, oldS) {
|
|
|
71
106
|
else {
|
|
72
107
|
newS.type = 'object';
|
|
73
108
|
}
|
|
109
|
+
const preservedFields = [
|
|
110
|
+
'description',
|
|
111
|
+
'pattern',
|
|
112
|
+
'min',
|
|
113
|
+
'max',
|
|
114
|
+
'currency',
|
|
115
|
+
'currencyLocale',
|
|
116
|
+
'multiselect',
|
|
117
|
+
'customErrorMessage',
|
|
118
|
+
'required',
|
|
119
|
+
'showExpr',
|
|
120
|
+
'password',
|
|
121
|
+
'order',
|
|
122
|
+
'dateFormat',
|
|
123
|
+
'title',
|
|
124
|
+
'placeholder'
|
|
125
|
+
];
|
|
126
|
+
preservedFields.forEach((field) => {
|
|
127
|
+
if (oldS[field] !== undefined) {
|
|
128
|
+
newS[field] = oldS[field];
|
|
129
|
+
}
|
|
130
|
+
});
|
|
74
131
|
if (oldS.type != newS.type) {
|
|
75
132
|
for (const prop of Object.getOwnPropertyNames(newS)) {
|
|
76
133
|
if (prop != 'description') {
|
package/package/scripts.d.ts
CHANGED
|
@@ -22,5 +22,7 @@ export declare function getScriptByPath(path: string): Promise<{
|
|
|
22
22
|
tag: string | undefined;
|
|
23
23
|
concurrent_limit: number | undefined;
|
|
24
24
|
concurrency_time_window_s: number | undefined;
|
|
25
|
+
lock?: string;
|
|
26
|
+
created_at?: string;
|
|
25
27
|
}>;
|
|
26
28
|
export declare function getLatestHashForScript(path: string): Promise<string>;
|
package/package/scripts.js
CHANGED
|
@@ -106,7 +106,7 @@ const scriptLanguagesArray = [
|
|
|
106
106
|
export const defaultScriptLanguages = Object.fromEntries(scriptLanguagesArray);
|
|
107
107
|
export async function getScriptByPath(path) {
|
|
108
108
|
if (path.startsWith('hub/')) {
|
|
109
|
-
const { content, language, schema } = await ScriptService.getHubScriptByPath({ path });
|
|
109
|
+
const { content, language, schema, lockfile } = await ScriptService.getHubScriptByPath({ path });
|
|
110
110
|
return {
|
|
111
111
|
content,
|
|
112
112
|
language: language,
|
|
@@ -114,7 +114,8 @@ export async function getScriptByPath(path) {
|
|
|
114
114
|
description: '',
|
|
115
115
|
tag: undefined,
|
|
116
116
|
concurrent_limit: undefined,
|
|
117
|
-
concurrency_time_window_s: undefined
|
|
117
|
+
concurrency_time_window_s: undefined,
|
|
118
|
+
lock: lockfile
|
|
118
119
|
};
|
|
119
120
|
}
|
|
120
121
|
else {
|
|
@@ -129,7 +130,9 @@ export async function getScriptByPath(path) {
|
|
|
129
130
|
description: script.description,
|
|
130
131
|
tag: script.tag,
|
|
131
132
|
concurrent_limit: script.concurrent_limit,
|
|
132
|
-
concurrency_time_window_s: script.concurrency_time_window_s
|
|
133
|
+
concurrency_time_window_s: script.concurrency_time_window_s,
|
|
134
|
+
lock: script.lock,
|
|
135
|
+
created_at: script.created_at
|
|
133
136
|
};
|
|
134
137
|
}
|
|
135
138
|
}
|
package/package/utils.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { UserExt } from './stores';
|
|
2
2
|
import { sendUserToast } from './toast';
|
|
3
3
|
import type { Script } from './gen';
|
|
4
|
+
import type { EnumType } from './common';
|
|
4
5
|
export { sendUserToast };
|
|
5
6
|
export declare function validateUsername(username: string): string;
|
|
6
7
|
export declare function parseQueryParams(url: string | undefined): Record<string, string>;
|
|
@@ -68,7 +69,7 @@ export declare function removeMarkdown(text: string): string;
|
|
|
68
69
|
export declare function truncate(s: string, n: number, suffix?: string): string;
|
|
69
70
|
export declare function truncateRev(s: string, n: number, prefix?: string): string;
|
|
70
71
|
export declare function isString(value: any): boolean;
|
|
71
|
-
export type InputCat = 'string' | 'email' | 'number' | 'boolean' | 'list' | 'resource-object' | 'enum' | 'date' | 'base64' | 'resource-string' | 'object' | 'sql' | 'yaml' | 'currency';
|
|
72
|
+
export type InputCat = 'string' | 'email' | 'number' | 'boolean' | 'list' | 'resource-object' | 'enum' | 'date' | 'base64' | 'resource-string' | 'object' | 'sql' | 'yaml' | 'currency' | 'oneOf';
|
|
72
73
|
export declare function setInputCat(type: string | undefined, format: string | undefined, itemsType: string | undefined, enum_: any, contentEncoding: string | undefined): InputCat;
|
|
73
74
|
export declare function formatCron(inp: string): string;
|
|
74
75
|
export declare function classNames(...classes: Array<string | undefined>): string;
|
|
@@ -115,5 +116,5 @@ export declare function computeShow(argName: string, expr: string | undefined, a
|
|
|
115
116
|
export declare function urlize(input: string, formatter: 'html' | 'md'): string;
|
|
116
117
|
export declare function storeLocalSetting(name: string, value: string | undefined): void;
|
|
117
118
|
export declare function getLocalSetting(name: string): string | null | undefined;
|
|
118
|
-
export declare function computeKind(enum_:
|
|
119
|
-
export declare function shouldDisplayPlaceholder(type: string | undefined, format: string | undefined, enum_:
|
|
119
|
+
export declare function computeKind(enum_: EnumType, contentEncoding: 'base64' | 'binary' | undefined, pattern: string | undefined, format: string | undefined): 'base64' | 'none' | 'pattern' | 'enum' | 'resource' | 'format';
|
|
120
|
+
export declare function shouldDisplayPlaceholder(type: string | undefined, format: string | undefined, enum_: EnumType, contentEncoding: 'base64' | 'binary' | undefined, pattern: string | undefined, extra: Record<string, any> | undefined): boolean;
|
package/package/utils.js
CHANGED
|
@@ -9,7 +9,6 @@
|
|
|
9
9
|
import { deepEqual } from 'fast-equals';
|
|
10
10
|
import YAML from 'yaml';
|
|
11
11
|
import { sendUserToast } from './toast';
|
|
12
|
-
import { cloneDeep } from 'lodash';
|
|
13
12
|
export { sendUserToast };
|
|
14
13
|
export function validateUsername(username) {
|
|
15
14
|
if (username != '' && !/^[a-zA-Z]\w+$/.test(username)) {
|
|
@@ -348,6 +347,9 @@ export function setInputCat(type, format, itemsType, enum_, contentEncoding) {
|
|
|
348
347
|
else if (type == 'string' && format == 'currency') {
|
|
349
348
|
return 'currency';
|
|
350
349
|
}
|
|
350
|
+
else if (type == 'oneOf') {
|
|
351
|
+
return 'oneOf';
|
|
352
|
+
}
|
|
351
353
|
else {
|
|
352
354
|
return 'string';
|
|
353
355
|
}
|
|
@@ -632,7 +634,7 @@ export function cleanValueProperties(obj) {
|
|
|
632
634
|
let newObj = {};
|
|
633
635
|
for (const key of Object.keys(obj)) {
|
|
634
636
|
if (key !== 'parent_hash' && key !== 'draft' && key !== 'draft_only') {
|
|
635
|
-
newObj[key] =
|
|
637
|
+
newObj[key] = structuredClone(obj[key]);
|
|
636
638
|
}
|
|
637
639
|
}
|
|
638
640
|
return newObj;
|
|
@@ -748,7 +750,7 @@ export function computeKind(enum_, contentEncoding, pattern, format) {
|
|
|
748
750
|
return 'none';
|
|
749
751
|
}
|
|
750
752
|
// Used to check whether a placeholder should be displayed in the input field, based on the schema
|
|
751
|
-
export function shouldDisplayPlaceholder(type, format, enum_, contentEncoding, pattern) {
|
|
753
|
+
export function shouldDisplayPlaceholder(type, format, enum_, contentEncoding, pattern, extra) {
|
|
752
754
|
if (type === 'string') {
|
|
753
755
|
const kind = computeKind(enum_, contentEncoding, pattern, format);
|
|
754
756
|
if (kind === 'format' && format) {
|
|
@@ -757,5 +759,8 @@ export function shouldDisplayPlaceholder(type, format, enum_, contentEncoding, p
|
|
|
757
759
|
}
|
|
758
760
|
return kind === 'none' || kind === 'pattern';
|
|
759
761
|
}
|
|
760
|
-
|
|
762
|
+
if (type === 'number' || type === 'integer') {
|
|
763
|
+
return extra?.['min'] === undefined || extra?.['max'] === undefined;
|
|
764
|
+
}
|
|
765
|
+
return type === undefined;
|
|
761
766
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { GetSettingsResponse, LargeFileStorage } from './gen';
|
|
2
|
+
type s3type = 's3' | 'azure_blob' | 's3_aws_oidc' | 'azure_workload_identity';
|
|
3
|
+
type s3ResourceSettingsItem = {
|
|
4
|
+
resourceType: s3type;
|
|
5
|
+
resourcePath: string | undefined;
|
|
6
|
+
publicResource: boolean | undefined;
|
|
7
|
+
};
|
|
8
|
+
export type S3ResourceSettings = s3ResourceSettingsItem & {
|
|
9
|
+
secondaryStorage: [string, s3ResourceSettingsItem][] | undefined;
|
|
10
|
+
};
|
|
11
|
+
export declare function convertBackendSettingsToFrontendSettings(large_file_storage: GetSettingsResponse['large_file_storage']): S3ResourceSettings;
|
|
12
|
+
export declare function convertBackendSettingsToFrontendSettingsItem(large_file_storage: GetSettingsResponse['large_file_storage']): s3ResourceSettingsItem;
|
|
13
|
+
export declare function convertFrontendToBackendSetting(s3ResourceSettings: S3ResourceSettings): LargeFileStorage | undefined;
|
|
14
|
+
export declare function convertFrontendToBackendettingsItem(s3ResourceSettings: s3ResourceSettingsItem): LargeFileStorage | undefined;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { emptyString } from './utils';
|
|
2
|
+
export function convertBackendSettingsToFrontendSettings(large_file_storage) {
|
|
3
|
+
let settings = convertBackendSettingsToFrontendSettingsItem(large_file_storage);
|
|
4
|
+
settings.secondaryStorage = Object.entries(large_file_storage?.secondary_storage ?? {}).map(([key, value]) => [key, convertBackendSettingsToFrontendSettingsItem(value)]);
|
|
5
|
+
return settings;
|
|
6
|
+
}
|
|
7
|
+
export function convertBackendSettingsToFrontendSettingsItem(large_file_storage) {
|
|
8
|
+
if (large_file_storage?.type === 'S3Storage') {
|
|
9
|
+
return {
|
|
10
|
+
resourceType: 's3',
|
|
11
|
+
resourcePath: large_file_storage?.s3_resource_path?.replace('$res:', ''),
|
|
12
|
+
publicResource: large_file_storage?.public_resource
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
else if (large_file_storage?.type === 'AzureBlobStorage') {
|
|
16
|
+
return {
|
|
17
|
+
resourceType: 'azure_blob',
|
|
18
|
+
resourcePath: large_file_storage?.azure_blob_resource_path?.replace('$res:', ''),
|
|
19
|
+
publicResource: large_file_storage?.public_resource
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
else if (large_file_storage?.type === 'AzureWorkloadIdentity') {
|
|
23
|
+
return {
|
|
24
|
+
resourceType: 'azure_workload_identity',
|
|
25
|
+
resourcePath: large_file_storage?.azure_blob_resource_path?.replace('$res:', ''),
|
|
26
|
+
publicResource: large_file_storage?.public_resource
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
else if (large_file_storage?.type === 'S3AwsOidc') {
|
|
30
|
+
return {
|
|
31
|
+
resourceType: 's3_aws_oidc',
|
|
32
|
+
resourcePath: large_file_storage?.s3_resource_path?.replace('$res:', ''),
|
|
33
|
+
publicResource: large_file_storage?.public_resource
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
return {
|
|
38
|
+
resourceType: 's3',
|
|
39
|
+
resourcePath: undefined,
|
|
40
|
+
publicResource: undefined
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export function convertFrontendToBackendSetting(s3ResourceSettings) {
|
|
45
|
+
let settings = convertFrontendToBackendettingsItem(s3ResourceSettings);
|
|
46
|
+
if (settings) {
|
|
47
|
+
settings.secondary_storage = Object.fromEntries((s3ResourceSettings.secondaryStorage ?? [])
|
|
48
|
+
.map(([key, value]) => [key, convertFrontendToBackendettingsItem(value)])
|
|
49
|
+
.filter(([, value]) => value !== undefined));
|
|
50
|
+
}
|
|
51
|
+
return settings;
|
|
52
|
+
}
|
|
53
|
+
export function convertFrontendToBackendettingsItem(s3ResourceSettings) {
|
|
54
|
+
if (!emptyString(s3ResourceSettings.resourcePath)) {
|
|
55
|
+
let resourcePathWithPrefix = `$res:${s3ResourceSettings.resourcePath}`;
|
|
56
|
+
let params = {
|
|
57
|
+
public_resource: s3ResourceSettings.publicResource
|
|
58
|
+
};
|
|
59
|
+
if (s3ResourceSettings.resourceType === 'azure_blob') {
|
|
60
|
+
let typ = 'AzureBlobStorage';
|
|
61
|
+
params['type'] = typ;
|
|
62
|
+
params['azure_blob_resource_path'] = resourcePathWithPrefix;
|
|
63
|
+
}
|
|
64
|
+
else if (s3ResourceSettings.resourceType === 'azure_workload_identity') {
|
|
65
|
+
let typ = 'AzureWorkloadIdentity';
|
|
66
|
+
params['type'] = typ;
|
|
67
|
+
params['azure_blob_resource_path'] = resourcePathWithPrefix;
|
|
68
|
+
}
|
|
69
|
+
else if (s3ResourceSettings.resourceType === 's3_aws_oidc') {
|
|
70
|
+
let typ = 'S3AwsOidc';
|
|
71
|
+
params['type'] = typ;
|
|
72
|
+
params['s3_resource_path'] = resourcePathWithPrefix;
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
let typ = 'S3Storage';
|
|
76
|
+
params['type'] = typ;
|
|
77
|
+
params['s3_resource_path'] = resourcePathWithPrefix;
|
|
78
|
+
}
|
|
79
|
+
return params;
|
|
80
|
+
}
|
|
81
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "windmill-components",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.352.0",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"dev": "vite dev",
|
|
6
6
|
"build": "vite build",
|
|
@@ -95,6 +95,7 @@
|
|
|
95
95
|
"@popperjs/core": "^2.11.6",
|
|
96
96
|
"@redocly/json-to-json-schema": "^0.0.1",
|
|
97
97
|
"@tanstack/svelte-table": "^8.9.9",
|
|
98
|
+
"@windmill-labs/svelte-dnd-action": "latest",
|
|
98
99
|
"ag-charts-community": "^9.0.1",
|
|
99
100
|
"ag-charts-enterprise": "^9.0.1",
|
|
100
101
|
"ag-grid-community": "^31.0.0",
|
|
@@ -112,7 +113,6 @@
|
|
|
112
113
|
"graphql": "^16.7.1",
|
|
113
114
|
"hash-sum": "^2.0.0",
|
|
114
115
|
"highlight.js": "^11.8.0",
|
|
115
|
-
"lodash": "^4.17.21",
|
|
116
116
|
"lucide-svelte": "^0.293.0",
|
|
117
117
|
"monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.5 <1.84.0",
|
|
118
118
|
"monaco-graphql": "^1.5.1",
|
|
@@ -123,7 +123,6 @@
|
|
|
123
123
|
"quill": "^1.3.7",
|
|
124
124
|
"svelte-carousel": "^1.0.25",
|
|
125
125
|
"svelte-chartjs": "^3.1.5",
|
|
126
|
-
"svelte-dnd-action": "^0.9.38",
|
|
127
126
|
"svelte-exmarkdown": "^3.0.3",
|
|
128
127
|
"svelte-infinite-loading": "^1.3.8",
|
|
129
128
|
"svelte-portal": "^2.2.1",
|
|
@@ -133,7 +132,7 @@
|
|
|
133
132
|
"vscode-languageclient": "~9.0.1",
|
|
134
133
|
"vscode-uri": "~3.0.8",
|
|
135
134
|
"vscode-ws-jsonrpc": "~3.1.0",
|
|
136
|
-
"windmill-parser-wasm": "^1.
|
|
135
|
+
"windmill-parser-wasm": "^1.347.1",
|
|
137
136
|
"windmill-sql-datatype-parser-wasm": "^1.318.0",
|
|
138
137
|
"y-monaco": "^0.1.4",
|
|
139
138
|
"y-websocket": "^1.5.0",
|
|
@@ -245,10 +244,20 @@
|
|
|
245
244
|
"svelte": "./package/components/SchemaForm.svelte",
|
|
246
245
|
"default": "./package/components/SchemaForm.svelte"
|
|
247
246
|
},
|
|
247
|
+
"./components/EditableSchemaWrapper.svelte": {
|
|
248
|
+
"types": "./package/components/EditableSchemaWrapper.svelte.d.ts",
|
|
249
|
+
"svelte": "./package/components/EditableSchemaWrapper.svelte",
|
|
250
|
+
"default": "./package/components/EditableSchemaWrapper.svelte"
|
|
251
|
+
},
|
|
252
|
+
"./components/ResourceEditor.svelte": {
|
|
253
|
+
"types": "./package/components/ResourceEditor.svelte.d.ts",
|
|
254
|
+
"svelte": "./package/components/ResourceEditor.svelte",
|
|
255
|
+
"default": "./package/components/ResourceEditor.svelte"
|
|
256
|
+
},
|
|
248
257
|
"./components/SchemaEditor.svelte": {
|
|
249
|
-
"types": "./package/components/
|
|
250
|
-
"svelte": "./package/components/
|
|
251
|
-
"default": "./package/components/
|
|
258
|
+
"types": "./package/components/EditableSchemaForm.svelte.d.ts",
|
|
259
|
+
"svelte": "./package/components/EditableSchemaForm.svelte",
|
|
260
|
+
"default": "./package/components/EditableSchemaForm.svelte"
|
|
252
261
|
},
|
|
253
262
|
"./components/scriptEditor/LogPanel.svelte": {
|
|
254
263
|
"types": "./package/components/scriptEditor/LogPanel.svelte.d.ts",
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
<script>import { GridApi, createGrid } from 'ag-grid-community';
|
|
2
|
-
import 'ag-grid-community/styles/ag-grid.css';
|
|
3
|
-
import 'ag-grid-community/styles/ag-theme-alpine.css';
|
|
4
|
-
import { twMerge } from 'tailwind-merge';
|
|
5
|
-
import DarkModeObserver from './DarkModeObserver.svelte';
|
|
6
|
-
import { HelpersService } from '../gen';
|
|
7
|
-
import { enterpriseLicense, workspaceStore } from '../stores';
|
|
8
|
-
// import 'ag-grid-community/dist/styles/ag-theme-alpine-dark.css'
|
|
9
|
-
let selectedRowIndex = -1;
|
|
10
|
-
export let s3resource;
|
|
11
|
-
let datasource = {
|
|
12
|
-
rowCount: 0,
|
|
13
|
-
getRows: async function (params) {
|
|
14
|
-
try {
|
|
15
|
-
const searchCol = params.filterModel ? Object.keys(params.filterModel)?.[0] : undefined;
|
|
16
|
-
const res = (await HelpersService.loadParquetPreview({
|
|
17
|
-
workspace: $workspaceStore,
|
|
18
|
-
path: s3resource,
|
|
19
|
-
offset: params.startRow,
|
|
20
|
-
limit: params.endRow - params.startRow,
|
|
21
|
-
sortCol: params.sortModel?.[0]?.colId,
|
|
22
|
-
sortDesc: params.sortModel?.[0]?.sort == 'desc',
|
|
23
|
-
searchCol: searchCol,
|
|
24
|
-
searchTerm: searchCol ? params.filterModel?.[searchCol]?.filter : undefined
|
|
25
|
-
}));
|
|
26
|
-
for (let i = 0; i < res.rows.length; i++) {
|
|
27
|
-
res.rows[i]['__index'] = i + params.startRow;
|
|
28
|
-
if (!$enterpriseLicense) {
|
|
29
|
-
Object.keys(res.rows[i]).forEach((key) => {
|
|
30
|
-
if (key != '__index') {
|
|
31
|
-
res.rows[i][key] = 'Require EE';
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
params.successCallback(res.rows);
|
|
37
|
-
}
|
|
38
|
-
catch (e) {
|
|
39
|
-
console.error(e);
|
|
40
|
-
params.failCallback();
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
function toggleRow(row) {
|
|
45
|
-
if (row) {
|
|
46
|
-
let rowIndex = row.rowIndex;
|
|
47
|
-
let data = { ...row.data };
|
|
48
|
-
delete data['__index'];
|
|
49
|
-
if (selectedRowIndex !== rowIndex) {
|
|
50
|
-
selectedRowIndex = rowIndex;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
function toggleRows(rows) {
|
|
55
|
-
toggleRow(rows[0]);
|
|
56
|
-
}
|
|
57
|
-
let eGui;
|
|
58
|
-
$: eGui && mountGrid();
|
|
59
|
-
async function mountGrid() {
|
|
60
|
-
if (eGui) {
|
|
61
|
-
const res = await HelpersService.loadParquetPreview({
|
|
62
|
-
workspace: $workspaceStore,
|
|
63
|
-
path: s3resource,
|
|
64
|
-
limit: 0
|
|
65
|
-
});
|
|
66
|
-
createGrid(eGui, {
|
|
67
|
-
rowModelType: 'infinite',
|
|
68
|
-
datasource,
|
|
69
|
-
// @ts-ignore
|
|
70
|
-
columnDefs: res.columns.map((c) => {
|
|
71
|
-
return {
|
|
72
|
-
field: c,
|
|
73
|
-
sortable: true,
|
|
74
|
-
filter: true,
|
|
75
|
-
filterParams: {
|
|
76
|
-
filterOptions: ['contains'],
|
|
77
|
-
maxNumConditions: 1
|
|
78
|
-
}
|
|
79
|
-
};
|
|
80
|
-
}),
|
|
81
|
-
pagination: false,
|
|
82
|
-
// defaultColDef: {
|
|
83
|
-
// flex: 1
|
|
84
|
-
// },
|
|
85
|
-
suppressColumnMoveAnimation: true,
|
|
86
|
-
rowSelection: 'multiple',
|
|
87
|
-
rowMultiSelectWithClick: true,
|
|
88
|
-
suppressRowDeselection: true,
|
|
89
|
-
onSelectionChanged: (e) => {
|
|
90
|
-
onSelectionChanged(e.api);
|
|
91
|
-
},
|
|
92
|
-
getRowId: (data) => {
|
|
93
|
-
return data.data['__index'];
|
|
94
|
-
}
|
|
95
|
-
}, {});
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
function onSelectionChanged(api) {
|
|
99
|
-
const rows = api.getSelectedNodes();
|
|
100
|
-
if (rows != undefined) {
|
|
101
|
-
toggleRows(rows);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
let darkMode = false;
|
|
105
|
-
</script>
|
|
106
|
-
|
|
107
|
-
<DarkModeObserver bind:darkMode />
|
|
108
|
-
|
|
109
|
-
<div class={twMerge('mt-4 border shadow-sm divide-y flex flex-col h-full min-h-[600px]')}>
|
|
110
|
-
<div class="ag-theme-alpine h-full" class:ag-theme-alpine-dark={darkMode} style="height: 600px;">
|
|
111
|
-
<div bind:this={eGui} style="height:100%; " />
|
|
112
|
-
</div>
|
|
113
|
-
</div>
|
|
114
|
-
|
|
115
|
-
<!-- <div class="flex gap-1 absolute bottom-1 right-2 text-sm text-secondary"
|
|
116
|
-
>{firstRow}{'->'}{lastRow + 1} of {datasource?.rowCount} rows</div
|
|
117
|
-
> -->
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { SvelteComponent } from "svelte";
|
|
2
|
-
import 'ag-grid-community/styles/ag-grid.css';
|
|
3
|
-
import 'ag-grid-community/styles/ag-theme-alpine.css';
|
|
4
|
-
declare const __propDef: {
|
|
5
|
-
props: {
|
|
6
|
-
s3resource: string;
|
|
7
|
-
};
|
|
8
|
-
events: {
|
|
9
|
-
[evt: string]: CustomEvent<any>;
|
|
10
|
-
};
|
|
11
|
-
slots: {};
|
|
12
|
-
};
|
|
13
|
-
export type ParqetTableRendererProps = typeof __propDef.props;
|
|
14
|
-
export type ParqetTableRendererEvents = typeof __propDef.events;
|
|
15
|
-
export type ParqetTableRendererSlots = typeof __propDef.slots;
|
|
16
|
-
export default class ParqetTableRenderer extends SvelteComponent<ParqetTableRendererProps, ParqetTableRendererEvents, ParqetTableRendererSlots> {
|
|
17
|
-
}
|
|
18
|
-
export {};
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
<script>import Required from './Required.svelte';
|
|
2
|
-
import { createEventDispatcher } from 'svelte';
|
|
3
|
-
import SchemaEditorProperty from './SchemaEditorProperty.svelte';
|
|
4
|
-
import { Button } from './common';
|
|
5
|
-
import { Pen, Trash } from 'lucide-svelte';
|
|
6
|
-
import { truncate } from '../utils';
|
|
7
|
-
export let displayInfo;
|
|
8
|
-
export let isAnimated;
|
|
9
|
-
export let lightMode;
|
|
10
|
-
let depth = displayInfo.path.length;
|
|
11
|
-
const required = displayInfo.isRequired;
|
|
12
|
-
const dispatch = createEventDispatcher();
|
|
13
|
-
function startEditArgument(name) {
|
|
14
|
-
dispatch('startEditArgument', name);
|
|
15
|
-
}
|
|
16
|
-
function handleDeleteArgument(argPath) {
|
|
17
|
-
dispatch('deleteArgument', argPath);
|
|
18
|
-
}
|
|
19
|
-
function changePosition(i, up) {
|
|
20
|
-
dispatch('changePosition', { i, up });
|
|
21
|
-
}
|
|
22
|
-
function getArgPath(displayInfo) {
|
|
23
|
-
return [...displayInfo.path, displayInfo.name];
|
|
24
|
-
}
|
|
25
|
-
const indentStyle = depth > 0 ? `margin-left :${depth}rem` : '';
|
|
26
|
-
</script>
|
|
27
|
-
|
|
28
|
-
<td class="font-bold">
|
|
29
|
-
<span style={indentStyle}>
|
|
30
|
-
{displayInfo.name}
|
|
31
|
-
<Required {required} class="!ml-0" />
|
|
32
|
-
</span>
|
|
33
|
-
</td>
|
|
34
|
-
<td>
|
|
35
|
-
<SchemaEditorProperty property={displayInfo.property} />
|
|
36
|
-
</td>
|
|
37
|
-
{#if !lightMode}
|
|
38
|
-
<td class="truncate max-w-xs !text-2xs"
|
|
39
|
-
>{truncate(
|
|
40
|
-
displayInfo.property.default ? JSON.stringify(displayInfo.property.default) : '',
|
|
41
|
-
100
|
|
42
|
-
)}</td
|
|
43
|
-
>
|
|
44
|
-
<td class="truncate max-w-xs !text-2xs"
|
|
45
|
-
>{truncate(displayInfo.property.description ?? '', 100)}</td
|
|
46
|
-
>
|
|
47
|
-
{/if}
|
|
48
|
-
<td />
|
|
49
|
-
<td class="justify-end flex">
|
|
50
|
-
{#if depth === 0}
|
|
51
|
-
{#if displayInfo.index > 0}
|
|
52
|
-
<button
|
|
53
|
-
on:click={() => changePosition(displayInfo.index, true)}
|
|
54
|
-
class="text-lg mr-2 {isAnimated ? 'invisible' : ''}"
|
|
55
|
-
>
|
|
56
|
-
↑</button
|
|
57
|
-
>
|
|
58
|
-
{/if}
|
|
59
|
-
{#if displayInfo.index < displayInfo.propertiesNumber - 1}
|
|
60
|
-
<button
|
|
61
|
-
on:click={() => changePosition(displayInfo.index, false)}
|
|
62
|
-
class="text-lg mr-2 {isAnimated ? 'invisible' : ''}">↓</button
|
|
63
|
-
>
|
|
64
|
-
{/if}
|
|
65
|
-
|
|
66
|
-
<Button
|
|
67
|
-
color="light"
|
|
68
|
-
variant="border"
|
|
69
|
-
size={lightMode ? 'xs' : 'sm'}
|
|
70
|
-
startIcon={{ icon: Pen }}
|
|
71
|
-
on:click={() => startEditArgument(displayInfo.name)}
|
|
72
|
-
iconOnly={lightMode}
|
|
73
|
-
>
|
|
74
|
-
Edit
|
|
75
|
-
</Button>
|
|
76
|
-
{/if}
|
|
77
|
-
<Button
|
|
78
|
-
color="red"
|
|
79
|
-
variant="border"
|
|
80
|
-
btnClasses="mx-2"
|
|
81
|
-
size={lightMode ? 'xs' : 'sm'}
|
|
82
|
-
startIcon={{ icon: Trash }}
|
|
83
|
-
on:click={() => handleDeleteArgument(getArgPath(displayInfo))}
|
|
84
|
-
iconOnly={lightMode}
|
|
85
|
-
>
|
|
86
|
-
Delete
|
|
87
|
-
</Button>
|
|
88
|
-
</td>
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { SvelteComponent } from "svelte";
|
|
2
|
-
import type { PropertyDisplayInfo } from '../common';
|
|
3
|
-
declare const __propDef: {
|
|
4
|
-
props: {
|
|
5
|
-
displayInfo: PropertyDisplayInfo;
|
|
6
|
-
isAnimated: boolean;
|
|
7
|
-
lightMode: boolean;
|
|
8
|
-
};
|
|
9
|
-
events: {
|
|
10
|
-
startEditArgument: CustomEvent<any>;
|
|
11
|
-
deleteArgument: CustomEvent<any>;
|
|
12
|
-
changePosition: CustomEvent<any>;
|
|
13
|
-
} & {
|
|
14
|
-
[evt: string]: CustomEvent<any>;
|
|
15
|
-
};
|
|
16
|
-
slots: {};
|
|
17
|
-
};
|
|
18
|
-
export type PropertyRowProps = typeof __propDef.props;
|
|
19
|
-
export type PropertyRowEvents = typeof __propDef.events;
|
|
20
|
-
export type PropertyRowSlots = typeof __propDef.slots;
|
|
21
|
-
export default class PropertyRow extends SvelteComponent<PropertyRowProps, PropertyRowEvents, PropertyRowSlots> {
|
|
22
|
-
}
|
|
23
|
-
export {};
|