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
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
import { userStore, workspaceStore } from '../stores';
|
|
3
3
|
import AutoComplete from 'simple-svelte-autocomplete';
|
|
4
4
|
import { createEventDispatcher } from 'svelte';
|
|
5
|
-
import autosize from '../autosize';
|
|
6
5
|
import { Button } from './common';
|
|
7
6
|
import Skeleton from './common/skeleton/Skeleton.svelte';
|
|
8
7
|
import TableCustom from './TableCustom.svelte';
|
|
@@ -10,6 +9,8 @@ import { sendUserToast } from '../toast';
|
|
|
10
9
|
import { canWrite } from '../utils';
|
|
11
10
|
import ToggleButtonGroup from './common/toggleButton-v2/ToggleButtonGroup.svelte';
|
|
12
11
|
import ToggleButton from './common/toggleButton-v2/ToggleButton.svelte';
|
|
12
|
+
import Section from './Section.svelte';
|
|
13
|
+
import Label from './Label.svelte';
|
|
13
14
|
export let name;
|
|
14
15
|
let can_write = false;
|
|
15
16
|
let group;
|
|
@@ -17,6 +18,7 @@ let instance_group;
|
|
|
17
18
|
let members = undefined;
|
|
18
19
|
let usernames = [];
|
|
19
20
|
let username = '';
|
|
21
|
+
let summary = '';
|
|
20
22
|
const dispatch = createEventDispatcher();
|
|
21
23
|
async function loadUsernames() {
|
|
22
24
|
usernames = await UserService.listUsernames({ workspace: $workspaceStore });
|
|
@@ -58,10 +60,12 @@ async function loadGroup() {
|
|
|
58
60
|
role: getRole(x)
|
|
59
61
|
};
|
|
60
62
|
});
|
|
63
|
+
summary = group.summary ?? '';
|
|
61
64
|
}
|
|
62
65
|
catch (e) {
|
|
63
66
|
can_write = false;
|
|
64
67
|
members = [];
|
|
68
|
+
summary = '';
|
|
65
69
|
group = {
|
|
66
70
|
name
|
|
67
71
|
};
|
|
@@ -82,37 +86,28 @@ function getRole(x) {
|
|
|
82
86
|
}
|
|
83
87
|
</script>
|
|
84
88
|
|
|
85
|
-
<
|
|
86
|
-
<
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
<
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
workspace: $workspaceStore ?? '',
|
|
103
|
-
name,
|
|
104
|
-
requestBody: { summary: group?.summary }
|
|
105
|
-
})
|
|
106
|
-
dispatch('update')
|
|
107
|
-
sendUserToast('New summary saved')
|
|
108
|
-
}}>Save Summary</Button
|
|
109
|
-
>
|
|
110
|
-
</div>
|
|
89
|
+
<Section label="Metadata" class="mb-4">
|
|
90
|
+
<Label label="Summary">
|
|
91
|
+
<div class="flex flex-row gap-2">
|
|
92
|
+
<input placeholder="Short summary to be displayed when listed" bind:value={summary} />
|
|
93
|
+
<Button
|
|
94
|
+
size="sm"
|
|
95
|
+
on:click={async () => {
|
|
96
|
+
await GroupService.updateGroup({
|
|
97
|
+
workspace: $workspaceStore ?? '',
|
|
98
|
+
name,
|
|
99
|
+
requestBody: { summary }
|
|
100
|
+
})
|
|
101
|
+
dispatch('update')
|
|
102
|
+
sendUserToast('Group summary updated')
|
|
103
|
+
loadGroup()
|
|
104
|
+
}}>Save</Button
|
|
105
|
+
>
|
|
111
106
|
</div>
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
107
|
+
</Label>
|
|
108
|
+
</Section>
|
|
109
|
+
|
|
110
|
+
<Section label={`Members (${members?.length ?? 0})`}>
|
|
116
111
|
{#if can_write}
|
|
117
112
|
<div class="flex items-start">
|
|
118
113
|
<AutoComplete required noInputStyles items={usernames} bind:selectedItem={username} />
|
|
@@ -202,13 +197,6 @@ function getRole(x) {
|
|
|
202
197
|
label="Member"
|
|
203
198
|
tooltip="A Member of a group can see everything the group can see, write to everything the group can write, and generally act on behalf of the group"
|
|
204
199
|
/>
|
|
205
|
-
|
|
206
|
-
<!-- <ToggleButton position="center" value="manager" size="xs"
|
|
207
|
-
>Manager <Tooltip
|
|
208
|
-
>A manager of a group can manage the group, adding and removing users and
|
|
209
|
-
change their roles. Being a manager does not make you a member.</Tooltip
|
|
210
|
-
></ToggleButton
|
|
211
|
-
> -->
|
|
212
200
|
<ToggleButton
|
|
213
201
|
position="right"
|
|
214
202
|
value="admin"
|
|
@@ -216,6 +204,15 @@ function getRole(x) {
|
|
|
216
204
|
label="Admin"
|
|
217
205
|
tooltip="An admin of a group is a member of a group that can also add and remove members to the group, or make them admin."
|
|
218
206
|
/>
|
|
207
|
+
{#if role === 'manager'}
|
|
208
|
+
<ToggleButton
|
|
209
|
+
value="manager"
|
|
210
|
+
size="xs"
|
|
211
|
+
label="Manager"
|
|
212
|
+
tooltip="A manager of a group can manage the group, adding and removing users and
|
|
213
|
+
change their roles. Being a manager does not make you a member"
|
|
214
|
+
/>
|
|
215
|
+
{/if}
|
|
219
216
|
</ToggleButtonGroup>
|
|
220
217
|
</div>
|
|
221
218
|
{:else}
|
|
@@ -262,58 +259,6 @@ function getRole(x) {
|
|
|
262
259
|
</tbody>
|
|
263
260
|
</TableCustom>
|
|
264
261
|
{/if}
|
|
265
|
-
|
|
266
|
-
<!-- <h2 class="mt-10"
|
|
267
|
-
>Groups managing this group <Tooltip>Any member of those groups can manage this group</Tooltip
|
|
268
|
-
></h2
|
|
269
|
-
>
|
|
270
|
-
{#if can_write}
|
|
271
|
-
<div class="flex items-start">
|
|
272
|
-
<AutoComplete items={groups} bind:selectedItem={new_managing_group} />
|
|
273
|
-
<Button
|
|
274
|
-
variant="contained"
|
|
275
|
-
color="blue"
|
|
276
|
-
size="sm"
|
|
277
|
-
btnClasses="!ml-4"
|
|
278
|
-
on:click={addToManagingGroup}
|
|
279
|
-
>
|
|
280
|
-
Add group managing this group
|
|
281
|
-
</Button>
|
|
282
|
-
</div>
|
|
283
|
-
{/if}
|
|
284
|
-
{#if managing_groups.length == 0}
|
|
285
|
-
<p class="text-tertiary text-sm">No group is managing this group</p>
|
|
286
|
-
{:else}
|
|
287
|
-
<TableCustom>
|
|
288
|
-
<tr slot="header-row">
|
|
289
|
-
<th>group</th>
|
|
290
|
-
<th />
|
|
291
|
-
</tr>
|
|
292
|
-
<tbody slot="body">
|
|
293
|
-
{#each managing_groups as managing_group}<tr>
|
|
294
|
-
<td>{managing_group.split('/')[1]}</td>
|
|
295
|
-
<td>
|
|
296
|
-
{#if can_write}
|
|
297
|
-
<button
|
|
298
|
-
class="ml-2 text-red-500"
|
|
299
|
-
on:click={async () => {
|
|
300
|
-
await GranularAclService.removeGranularAcls({
|
|
301
|
-
workspace: $workspaceStore ?? '',
|
|
302
|
-
path: name,
|
|
303
|
-
kind: 'group_',
|
|
304
|
-
requestBody: {
|
|
305
|
-
owner: managing_group
|
|
306
|
-
}
|
|
307
|
-
})
|
|
308
|
-
loadGroup()
|
|
309
|
-
}}>remove</button
|
|
310
|
-
>
|
|
311
|
-
{/if}</td
|
|
312
|
-
>
|
|
313
|
-
</tr>{/each}
|
|
314
|
-
</tbody>
|
|
315
|
-
</TableCustom>
|
|
316
|
-
{/if} -->
|
|
317
262
|
{:else}
|
|
318
263
|
<div class="flex flex-col">
|
|
319
264
|
{#each new Array(6) as _}
|
|
@@ -321,4 +266,4 @@ function getRole(x) {
|
|
|
321
266
|
{/each}
|
|
322
267
|
</div>
|
|
323
268
|
{/if}
|
|
324
|
-
</
|
|
269
|
+
</Section>
|
|
@@ -12,7 +12,7 @@ async function loadMembers() {
|
|
|
12
12
|
{#if members}
|
|
13
13
|
<Popover
|
|
14
14
|
><div class="inline-flex gap-1 items-end"
|
|
15
|
-
><span class="text-tertiary text-xs
|
|
15
|
+
><span class="text-tertiary text-xs">({members.length})</span>
|
|
16
16
|
<div class="max-w-xs truncate"
|
|
17
17
|
><span class="text-tertiary text-xs">{members?.join(', ')}</span></div
|
|
18
18
|
></div
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<script>import { getContext } from 'svelte';
|
|
1
|
+
<script>import { createEventDispatcher, getContext } from 'svelte';
|
|
2
2
|
import ArgInput from './ArgInput.svelte';
|
|
3
3
|
import FieldHeader from './FieldHeader.svelte';
|
|
4
4
|
import DynamicInputHelpBox from './flows/content/DynamicInputHelpBox.svelte';
|
|
@@ -28,6 +28,7 @@ export let enableAi = false;
|
|
|
28
28
|
let monaco = undefined;
|
|
29
29
|
let monacoTemplate = undefined;
|
|
30
30
|
let argInput = undefined;
|
|
31
|
+
const dispatch = createEventDispatcher();
|
|
31
32
|
$: inputCat = computeInputCat(schema.properties[argName].type, schema.properties[argName].format, schema.properties[argName].items?.type, schema.properties[argName].enum, schema.properties[argName].contentEncoding);
|
|
32
33
|
let propertyType = getPropertyType(arg);
|
|
33
34
|
const { shouldUpdatePropertyType, exprsToSet } = getContext('FlowCopilotContext') || {};
|
|
@@ -325,6 +326,9 @@ loadResourceTypes();
|
|
|
325
326
|
}}
|
|
326
327
|
bind:code={arg.value}
|
|
327
328
|
fontSize={14}
|
|
329
|
+
on:change={() => {
|
|
330
|
+
dispatch('change', { argName })
|
|
331
|
+
}}
|
|
328
332
|
/>
|
|
329
333
|
{/if}
|
|
330
334
|
</div>
|
|
@@ -338,11 +342,16 @@ loadResourceTypes();
|
|
|
338
342
|
on:blur={() => {
|
|
339
343
|
focused = false
|
|
340
344
|
}}
|
|
345
|
+
shouldDispatchChanges
|
|
346
|
+
on:change={() => {
|
|
347
|
+
dispatch('change', { argName })
|
|
348
|
+
}}
|
|
341
349
|
label={argName}
|
|
342
350
|
bind:editor={monaco}
|
|
343
351
|
bind:description={schema.properties[argName].description}
|
|
344
352
|
bind:value={arg.value}
|
|
345
353
|
type={schema.properties[argName].type}
|
|
354
|
+
oneOf={schema.properties[argName].oneOf}
|
|
346
355
|
required={schema.required.includes(argName)}
|
|
347
356
|
bind:pattern={schema.properties[argName].pattern}
|
|
348
357
|
bind:valid={inputCheck}
|
|
@@ -368,6 +377,9 @@ loadResourceTypes();
|
|
|
368
377
|
<SimpleEditor
|
|
369
378
|
bind:this={monaco}
|
|
370
379
|
bind:code={arg.expr}
|
|
380
|
+
on:change={() => {
|
|
381
|
+
dispatch('change', { argName })
|
|
382
|
+
}}
|
|
371
383
|
{extraLib}
|
|
372
384
|
lang="javascript"
|
|
373
385
|
shouldBindKey={false}
|
|
@@ -378,6 +390,9 @@ loadResourceTypes();
|
|
|
378
390
|
return false
|
|
379
391
|
})
|
|
380
392
|
}}
|
|
393
|
+
on:change={() => {
|
|
394
|
+
dispatch('change', { argName })
|
|
395
|
+
}}
|
|
381
396
|
on:blur={() => {
|
|
382
397
|
focused = false
|
|
383
398
|
}}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<script>import { VariableService } from '../gen';
|
|
2
2
|
import { workspaceStore } from '../stores';
|
|
3
3
|
import { allTrue } from '../utils';
|
|
4
|
+
import { createEventDispatcher } from 'svelte';
|
|
4
5
|
import { Button } from './common';
|
|
5
6
|
import StepInputsGen from './copilot/StepInputsGen.svelte';
|
|
6
7
|
import InputTransformForm from './InputTransformForm.svelte';
|
|
@@ -19,6 +20,7 @@ export let enableAi = false;
|
|
|
19
20
|
let clazz = '';
|
|
20
21
|
export { clazz as class };
|
|
21
22
|
let inputCheck = {};
|
|
23
|
+
const dispatch = createEventDispatcher();
|
|
22
24
|
$: isValid = allTrue(inputCheck) ?? false;
|
|
23
25
|
$: if (args == undefined || typeof args !== 'object') {
|
|
24
26
|
args = {};
|
|
@@ -81,6 +83,10 @@ $: {
|
|
|
81
83
|
{noDynamicToggle}
|
|
82
84
|
{pickableProperties}
|
|
83
85
|
{enableAi}
|
|
86
|
+
on:change={(e) => {
|
|
87
|
+
const { argName } = e.detail
|
|
88
|
+
dispatch('changeArg', { argName })
|
|
89
|
+
}}
|
|
84
90
|
/>
|
|
85
91
|
</div>
|
|
86
92
|
{/if}
|
|
@@ -156,7 +156,9 @@ async function sendStats() {
|
|
|
156
156
|
}
|
|
157
157
|
let clientName = '';
|
|
158
158
|
let licenseKeyChanged = false;
|
|
159
|
+
let renewing = false;
|
|
159
160
|
export async function renewLicenseKey() {
|
|
161
|
+
renewing = true;
|
|
160
162
|
try {
|
|
161
163
|
await SettingService.renewLicenseKey();
|
|
162
164
|
sendUserToast('Key renewal successful');
|
|
@@ -166,6 +168,20 @@ export async function renewLicenseKey() {
|
|
|
166
168
|
latestKeyRenewalAttempt = await SettingService.getLatestKeyRenewalAttempt();
|
|
167
169
|
throw err;
|
|
168
170
|
}
|
|
171
|
+
finally {
|
|
172
|
+
renewing = false;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
let opening = false;
|
|
176
|
+
export async function openCustomerPortal() {
|
|
177
|
+
opening = true;
|
|
178
|
+
try {
|
|
179
|
+
const url = await SettingService.createCustomerPortalSession();
|
|
180
|
+
window.open(url, '_blank');
|
|
181
|
+
}
|
|
182
|
+
finally {
|
|
183
|
+
opening = false;
|
|
184
|
+
}
|
|
169
185
|
}
|
|
170
186
|
</script>
|
|
171
187
|
|
|
@@ -468,9 +484,6 @@ export async function renewLicenseKey() {
|
|
|
468
484
|
>
|
|
469
485
|
Test Key
|
|
470
486
|
</Button>
|
|
471
|
-
{#if $enterpriseLicense}
|
|
472
|
-
<Button on:click={renewLicenseKey} size="xs">Renew key</Button>
|
|
473
|
-
{/if}
|
|
474
487
|
</div>
|
|
475
488
|
<div class="mt-1 flex flex-col gap-1 items-start">
|
|
476
489
|
{#if values[setting.key]?.length > 0}
|
|
@@ -538,6 +551,26 @@ export async function renewLicenseKey() {
|
|
|
538
551
|
</span>
|
|
539
552
|
</div>
|
|
540
553
|
{/if}
|
|
554
|
+
|
|
555
|
+
{#if $enterpriseLicense}
|
|
556
|
+
<div class="flex flex-row gap-2 mt-1">
|
|
557
|
+
<Button
|
|
558
|
+
on:click={renewLicenseKey}
|
|
559
|
+
loading={renewing}
|
|
560
|
+
size="xs"
|
|
561
|
+
color="dark"
|
|
562
|
+
>Renew key
|
|
563
|
+
</Button>
|
|
564
|
+
<Button
|
|
565
|
+
color="dark"
|
|
566
|
+
size="xs"
|
|
567
|
+
loading={opening}
|
|
568
|
+
on:click={openCustomerPortal}
|
|
569
|
+
>
|
|
570
|
+
Open customer portal
|
|
571
|
+
</Button>
|
|
572
|
+
</div>
|
|
573
|
+
{/if}
|
|
541
574
|
</div>
|
|
542
575
|
{:else if setting.fieldType == 'email'}
|
|
543
576
|
<input
|
|
@@ -6,6 +6,7 @@ declare const __propDef: {
|
|
|
6
6
|
hideSave?: boolean | undefined;
|
|
7
7
|
saveSettings?: (() => Promise<void>) | undefined;
|
|
8
8
|
renewLicenseKey?: (() => Promise<void>) | undefined;
|
|
9
|
+
openCustomerPortal?: (() => Promise<void>) | undefined;
|
|
9
10
|
};
|
|
10
11
|
events: {
|
|
11
12
|
[evt: string]: CustomEvent<any>;
|
|
@@ -18,5 +19,6 @@ export type InstanceSettingsSlots = typeof __propDef.slots;
|
|
|
18
19
|
export default class InstanceSettings extends SvelteComponent<InstanceSettingsProps, InstanceSettingsEvents, InstanceSettingsSlots> {
|
|
19
20
|
get saveSettings(): () => Promise<void>;
|
|
20
21
|
get renewLicenseKey(): () => Promise<void>;
|
|
22
|
+
get openCustomerPortal(): () => Promise<void>;
|
|
21
23
|
}
|
|
22
24
|
export {};
|
|
@@ -13,12 +13,12 @@ export let job;
|
|
|
13
13
|
<Badge large color="green" icon={{ icon: CheckCircle2, position: 'left' }}>
|
|
14
14
|
Success {job.is_skipped ? '(Skipped)' : ''}
|
|
15
15
|
</Badge>
|
|
16
|
-
<DurationMs duration_ms={job.duration_ms} />
|
|
16
|
+
<DurationMs duration_ms={job.duration_ms} self_wait_time_ms={job?.self_wait_time_ms} aggregate_wait_time_ms={job?.aggregate_wait_time_ms} />
|
|
17
17
|
</div>
|
|
18
18
|
{:else if job && 'success' in job}
|
|
19
19
|
<div class="flex flex-row flex-wrap gap-y-1 mb-1 gap-x-2">
|
|
20
20
|
<Badge large color="red" icon={{ icon: XCircle, position: 'left' }}>Failed</Badge>
|
|
21
|
-
<DurationMs duration_ms={job.duration_ms} />
|
|
21
|
+
<DurationMs duration_ms={job.duration_ms} self_wait_time_ms={job?.self_wait_time_ms} aggregate_wait_time_ms={job?.aggregate_wait_time_ms} />
|
|
22
22
|
</div>
|
|
23
23
|
{:else if job && 'running' in job && job.running}
|
|
24
24
|
<div>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script>import { setInputCat as computeInputCat, emptyString } from '../utils';
|
|
2
|
-
import {
|
|
3
|
-
import { createEventDispatcher } from 'svelte';
|
|
2
|
+
import { Button } from './common';
|
|
3
|
+
import { createEventDispatcher, tick } from 'svelte';
|
|
4
4
|
import FieldHeader from './FieldHeader.svelte';
|
|
5
5
|
import autosize from '../autosize';
|
|
6
6
|
import Toggle from './Toggle.svelte';
|
|
@@ -16,6 +16,8 @@ import DateInput from './DateInput.svelte';
|
|
|
16
16
|
import CurrencyInput from './apps/components/inputs/currency/CurrencyInput.svelte';
|
|
17
17
|
import Multiselect from 'svelte-multiselect';
|
|
18
18
|
import Password from './Password.svelte';
|
|
19
|
+
import ToggleButton from './common/toggleButton-v2/ToggleButton.svelte';
|
|
20
|
+
import ToggleButtonGroup from './common/toggleButton-v2/ToggleButtonGroup.svelte';
|
|
19
21
|
export let css = undefined;
|
|
20
22
|
export let label = '';
|
|
21
23
|
export let value;
|
|
@@ -24,6 +26,7 @@ export let description = '';
|
|
|
24
26
|
export let format = '';
|
|
25
27
|
export let contentEncoding = undefined;
|
|
26
28
|
export let type = undefined;
|
|
29
|
+
export let oneOf = undefined;
|
|
27
30
|
export let required = false;
|
|
28
31
|
export let pattern = undefined;
|
|
29
32
|
export let valid = required ? false : true;
|
|
@@ -38,6 +41,29 @@ export let customErrorMessage = undefined;
|
|
|
38
41
|
export let render = true;
|
|
39
42
|
export let title = undefined;
|
|
40
43
|
export let placeholder = undefined;
|
|
44
|
+
let oneOfSelected = undefined;
|
|
45
|
+
async function updateOneOfSelected(oneOf) {
|
|
46
|
+
if (oneOf &&
|
|
47
|
+
oneOf.length >= 2 &&
|
|
48
|
+
(!oneOfSelected || !oneOf.some((o) => o.title === oneOfSelected))) {
|
|
49
|
+
if (value && value['label'] && oneOf.some((o) => o.title === value['label'])) {
|
|
50
|
+
const existingValue = JSON.parse(JSON.stringify(value));
|
|
51
|
+
oneOfSelected = value['label'];
|
|
52
|
+
await tick();
|
|
53
|
+
value = existingValue;
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
oneOfSelected = oneOf[0]['title'];
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
$: updateOneOfSelected(oneOf);
|
|
61
|
+
function updateOneOfSelectedValue(oneOfSelected) {
|
|
62
|
+
if (oneOfSelected) {
|
|
63
|
+
value = { label: oneOfSelected };
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
$: updateOneOfSelectedValue(oneOfSelected);
|
|
41
67
|
const dispatch = createEventDispatcher();
|
|
42
68
|
export let error = '';
|
|
43
69
|
let el = undefined;
|
|
@@ -176,14 +202,7 @@ function onRenderFalse() {
|
|
|
176
202
|
<div class="flex space-x-1">
|
|
177
203
|
{#if inputCat == 'number'}
|
|
178
204
|
{#if extra['min'] != undefined && extra['max'] != undefined}
|
|
179
|
-
<
|
|
180
|
-
<span>{extra['min']}</span>
|
|
181
|
-
<div class="grow">
|
|
182
|
-
<Range bind:value min={extra['min']} max={extra['max']} />
|
|
183
|
-
</div>
|
|
184
|
-
<span>{extra['max']}</span>
|
|
185
|
-
<span class="mx-2"><Badge large color="blue">{value}</Badge></span>
|
|
186
|
-
</div>
|
|
205
|
+
<Range bind:value min={extra['min']} max={extra['max']} {defaultValue} />
|
|
187
206
|
{:else if extra?.currency}
|
|
188
207
|
<CurrencyInput
|
|
189
208
|
inputClasses={{
|
|
@@ -218,9 +237,12 @@ function onRenderFalse() {
|
|
|
218
237
|
on:pointerdown={(e) => {
|
|
219
238
|
e?.stopPropagation()
|
|
220
239
|
}}
|
|
221
|
-
class={
|
|
222
|
-
|
|
223
|
-
|
|
240
|
+
class={twMerge(
|
|
241
|
+
valid && error == ''
|
|
242
|
+
? ''
|
|
243
|
+
: 'border !border-red-700 !border-opacity-70 focus:!border-red-700 focus:!border-opacity-30',
|
|
244
|
+
'w-full'
|
|
245
|
+
)}
|
|
224
246
|
bind:checked={value}
|
|
225
247
|
/>
|
|
226
248
|
{#if type == 'boolean' && value == undefined}
|
|
@@ -327,6 +349,36 @@ function onRenderFalse() {
|
|
|
327
349
|
</div>
|
|
328
350
|
{:else if inputCat == 'resource-object'}
|
|
329
351
|
<LightweightObjectResourceInput {format} bind:value />
|
|
352
|
+
{:else if inputCat == 'object' && oneOf && oneOf.length >= 2}
|
|
353
|
+
<div class="flex flex-col gap-2 w-full">
|
|
354
|
+
{#if oneOf && oneOf.length >= 2}
|
|
355
|
+
<ToggleButtonGroup bind:selected={oneOfSelected}>
|
|
356
|
+
{#each oneOf as obj}
|
|
357
|
+
<ToggleButton value={obj.title} label={obj.title} />
|
|
358
|
+
{/each}
|
|
359
|
+
</ToggleButtonGroup>
|
|
360
|
+
|
|
361
|
+
{#if oneOfSelected}
|
|
362
|
+
{@const objIdx = oneOf.findIndex((o) => o.title === oneOfSelected)}
|
|
363
|
+
{@const obj = oneOf[objIdx]}
|
|
364
|
+
{#if obj && obj.properties && Object.keys(obj.properties).length > 0}
|
|
365
|
+
<div class="p-4 pl-8 border rounded w-full">
|
|
366
|
+
<LightweightSchemaForm
|
|
367
|
+
schema={{
|
|
368
|
+
properties: Object.fromEntries(
|
|
369
|
+
Object.entries(obj.properties).filter(([k, v]) => k !== 'label')
|
|
370
|
+
),
|
|
371
|
+
$schema: '',
|
|
372
|
+
required: obj.required ?? [],
|
|
373
|
+
type: 'object'
|
|
374
|
+
}}
|
|
375
|
+
bind:args={value}
|
|
376
|
+
/>
|
|
377
|
+
</div>
|
|
378
|
+
{/if}
|
|
379
|
+
{/if}
|
|
380
|
+
{/if}
|
|
381
|
+
</div>
|
|
330
382
|
{:else if inputCat == 'object'}
|
|
331
383
|
{#if properties && Object.keys(properties).length > 0}
|
|
332
384
|
<div class="p-4 pl-8 border rounded w-full">
|
|
@@ -364,7 +416,7 @@ function onRenderFalse() {
|
|
|
364
416
|
bind:value
|
|
365
417
|
>
|
|
366
418
|
{#each enum_ ?? [] as e}
|
|
367
|
-
<option>{e}</option>
|
|
419
|
+
<option value={e}>{extra?.['enumLabels']?.[e] ?? e}</option>
|
|
368
420
|
{/each}
|
|
369
421
|
</select>
|
|
370
422
|
{:else if inputCat == 'date'}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SvelteComponent } from "svelte";
|
|
2
|
-
import type { SchemaProperty } from '../common';
|
|
2
|
+
import type { EnumType, SchemaProperty } from '../common';
|
|
3
3
|
import type { ComponentCustomCSS } from './apps/types';
|
|
4
4
|
declare const __propDef: {
|
|
5
5
|
props: {
|
|
@@ -11,10 +11,11 @@ declare const __propDef: {
|
|
|
11
11
|
format?: string | undefined;
|
|
12
12
|
contentEncoding?: 'base64' | 'binary' | undefined;
|
|
13
13
|
type?: string | undefined;
|
|
14
|
+
oneOf?: SchemaProperty[] | undefined;
|
|
14
15
|
required?: boolean | undefined;
|
|
15
16
|
pattern?: undefined | string;
|
|
16
17
|
valid?: boolean | undefined;
|
|
17
|
-
enum_?:
|
|
18
|
+
enum_?: EnumType;
|
|
18
19
|
itemsType?: {
|
|
19
20
|
type?: "string" | "number" | "object" | "bytes" | undefined;
|
|
20
21
|
contentEncoding?: "base64" | undefined;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<script>import { twMerge } from 'tailwind-merge';
|
|
2
2
|
import LightweightArgInput from './LightweightArgInput.svelte';
|
|
3
3
|
import { allTrue, computeShow } from '../utils';
|
|
4
|
+
import { deepEqual } from 'fast-equals';
|
|
4
5
|
export let css = undefined;
|
|
5
6
|
export let schema;
|
|
6
7
|
export let args = undefined;
|
|
@@ -15,7 +16,6 @@ $: isValid = allTrue(inputCheck) ?? false;
|
|
|
15
16
|
$: if (args === undefined) {
|
|
16
17
|
args = {};
|
|
17
18
|
}
|
|
18
|
-
reorder();
|
|
19
19
|
export function invalidate(key, error) {
|
|
20
20
|
inputCheck[key] = false;
|
|
21
21
|
errors[key] = error;
|
|
@@ -28,27 +28,35 @@ export function validateAll() {
|
|
|
28
28
|
inputCheck = Object.fromEntries(Object.entries(inputCheck).map((x) => [x[0], true]));
|
|
29
29
|
errors = Object.fromEntries(Object.entries(errors).map((x) => [x[0], '']));
|
|
30
30
|
}
|
|
31
|
+
let keys = Array.isArray(schema?.order)
|
|
32
|
+
? schema?.order
|
|
33
|
+
: Object.keys(schema?.properties ?? {});
|
|
34
|
+
$: schema && reorder();
|
|
31
35
|
function reorder() {
|
|
32
|
-
|
|
33
|
-
if (schema?.order
|
|
34
|
-
|
|
35
|
-
schema
|
|
36
|
-
|
|
36
|
+
let lkeys = Object.keys(schema?.properties ?? {});
|
|
37
|
+
if (!deepEqual(schema?.order, lkeys) || !deepEqual(keys, lkeys)) {
|
|
38
|
+
console.debug('reorder');
|
|
39
|
+
if (schema?.order && Array.isArray(schema.order)) {
|
|
40
|
+
const n = {};
|
|
41
|
+
schema.order.forEach((x) => {
|
|
42
|
+
if (schema.properties && schema.properties[x] != undefined) {
|
|
43
|
+
n[x] = schema.properties[x];
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
Object.keys(schema.properties ?? {})
|
|
47
|
+
.filter((x) => !schema.order?.includes(x))
|
|
48
|
+
.forEach((x) => {
|
|
37
49
|
n[x] = schema.properties[x];
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
.forEach((x) => {
|
|
43
|
-
n[x] = schema.properties[x];
|
|
44
|
-
});
|
|
45
|
-
schema.properties = n;
|
|
50
|
+
});
|
|
51
|
+
schema.properties = n;
|
|
52
|
+
}
|
|
53
|
+
keys = Object.keys(schema.properties ?? {});
|
|
46
54
|
}
|
|
47
55
|
}
|
|
48
56
|
</script>
|
|
49
57
|
|
|
50
58
|
<div class={twMerge('w-full flex flex-col px-0.5 pb-2', largeGap ? 'gap-8' : 'gap-2')}>
|
|
51
|
-
{#each
|
|
59
|
+
{#each keys as argName (argName)}
|
|
52
60
|
{#if typeof args == 'object' && schema?.properties[argName] && args}
|
|
53
61
|
<LightweightArgInput
|
|
54
62
|
render={computeShow(argName, schema?.properties[argName].showExpr, args)}
|
|
@@ -58,6 +66,7 @@ function reorder() {
|
|
|
58
66
|
bind:valid={inputCheck[argName]}
|
|
59
67
|
bind:error={errors[argName]}
|
|
60
68
|
type={schema.properties[argName].type}
|
|
69
|
+
oneOf={schema.properties[argName].oneOf}
|
|
61
70
|
required={schema.required?.includes(argName) ?? false}
|
|
62
71
|
pattern={schema.properties[argName].pattern}
|
|
63
72
|
defaultValue={defaultValues?.[argName] ?? schema.properties[argName].default}
|
|
@@ -65,6 +65,7 @@ loadResourceTypes();
|
|
|
65
65
|
description={schema.properties[argName].description}
|
|
66
66
|
bind:value={args[argName]}
|
|
67
67
|
type={schema.properties[argName].type}
|
|
68
|
+
oneOf={schema.properties[argName].oneOf}
|
|
68
69
|
required={schema.required.includes(argName)}
|
|
69
70
|
pattern={schema.properties[argName].pattern}
|
|
70
71
|
bind:editor={editor[argName]}
|