windmill-components 1.35.42 → 1.36.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/components/AppConnect.svelte +85 -59
- package/components/ArgInput.svelte +50 -33
- package/components/ArgInput.svelte.d.ts +1 -1
- package/components/Button.svelte +15 -48
- package/components/Button.svelte.d.ts +1 -1
- package/components/CronInput.svelte +1 -1
- package/components/DisplayResult.svelte +75 -67
- package/components/Dropdown.svelte +9 -7
- package/components/Editor.svelte +187 -178
- package/components/Editor.svelte.d.ts +4 -2
- package/components/EditorBar.svelte +135 -98
- package/components/EditorBar.svelte.d.ts +2 -1
- package/components/FlowBuilder.svelte +115 -134
- package/components/FlowJobResult.svelte +4 -5
- package/components/FlowModulesViewer.svelte +89 -7
- package/components/FlowModulesViewer.svelte.d.ts +1 -0
- package/components/FlowPreviewContent.svelte +88 -27
- package/components/FlowPreviewContent.svelte.d.ts +1 -1
- package/components/FlowStatusViewer.svelte +39 -24
- package/components/FlowStatusViewer.svelte.d.ts +0 -1
- package/components/FlowViewer.svelte +17 -11
- package/components/GroupModal.svelte +10 -1
- package/components/HighlightCode.svelte +22 -0
- package/components/HighlightCode.svelte.d.ts +17 -0
- package/components/IconedPath.svelte +9 -7
- package/components/InputTransformForm.svelte +97 -115
- package/components/InputTransformForm.svelte.d.ts +0 -1
- package/components/InputTransformsViewer.svelte +1 -1
- package/components/InviteGlobalUser.svelte +8 -8
- package/components/InviteUser.svelte +9 -9
- package/components/ItemPicker.svelte +37 -30
- package/components/ItemPicker.svelte.d.ts +2 -1
- package/components/JobStatus.svelte +2 -1
- package/components/LogViewer.svelte +23 -0
- package/components/LogViewer.svelte.d.ts +19 -0
- package/components/ModulePreview.svelte +107 -0
- package/components/ModulePreview.svelte.d.ts +24 -0
- package/components/Path.svelte +1 -1
- package/components/RadioButton.svelte +3 -2
- package/components/ResourceEditor.svelte +22 -34
- package/components/ResourceTypePicker.svelte +23 -34
- package/components/RunForm.svelte +34 -31
- package/components/RunForm.svelte.d.ts +6 -2
- package/components/SchemaEditor.svelte +19 -11
- package/components/SchemaForm.svelte +3 -3
- package/components/SchemaForm.svelte.d.ts +1 -1
- package/components/SchemaModal.svelte +18 -7
- package/components/ScriptBuilder.svelte +99 -83
- package/components/ScriptBuilder.svelte.d.ts +2 -4
- package/components/ScriptEditor.svelte +71 -143
- package/components/ScriptEditor.svelte.d.ts +0 -5
- package/components/ScriptPicker.svelte +24 -14
- package/components/ScriptPicker.svelte.d.ts +2 -1
- package/components/ScriptSchema.svelte +8 -11
- package/components/ScriptSchema.svelte.d.ts +0 -1
- package/components/ShareModal.svelte +6 -6
- package/components/SharedBadge.svelte +5 -13
- package/components/SimpleEditor.svelte +14 -10
- package/components/StringTypeNarrowing.svelte +24 -30
- package/components/TestJobLoader.svelte +106 -0
- package/components/TestJobLoader.svelte.d.ts +26 -0
- package/components/Tooltip.svelte +3 -2
- package/components/VariableEditor.svelte +15 -24
- package/components/common/actionRow/ActionRow.svelte +31 -0
- package/components/common/actionRow/ActionRow.svelte.d.ts +22 -0
- package/components/common/alert/Alert.svelte +53 -0
- package/components/common/alert/Alert.svelte.d.ts +20 -0
- package/components/common/alert/model.d.ts +1 -0
- package/components/common/alert/model.js +1 -0
- package/components/common/badge/Badge.svelte +76 -0
- package/components/common/badge/Badge.svelte.d.ts +28 -0
- package/components/common/badge/model.d.ts +8 -0
- package/components/common/badge/model.js +1 -0
- package/components/common/button/Button.svelte +110 -0
- package/components/common/button/Button.svelte.d.ts +39 -0
- package/components/common/button/model.d.ts +6 -0
- package/components/common/button/model.js +1 -0
- package/components/common/confirmationModal/ConfirmationModal.svelte +72 -0
- package/components/common/confirmationModal/ConfirmationModal.svelte.d.ts +23 -0
- package/components/common/confirmationModal/UnsavedConfirmationModal.svelte +41 -0
- package/components/common/confirmationModal/UnsavedConfirmationModal.svelte.d.ts +14 -0
- package/components/common/confirmationModal/dirtyStore.d.ts +1 -0
- package/components/common/confirmationModal/dirtyStore.js +2 -0
- package/components/common/drawer/Drawer.svelte +3 -0
- package/components/common/drawer/Drawer.svelte.d.ts +2 -0
- package/components/common/index.d.ts +14 -0
- package/components/common/index.js +14 -0
- package/components/common/tabs/TabContent.svelte +3 -2
- package/components/common/tabs/TabContent.svelte.d.ts +1 -0
- package/components/common/tabs/Tabs.svelte +8 -1
- package/components/common/tabs/Tabs.svelte.d.ts +2 -0
- package/components/common/toggleButton/ToggleButton.svelte +20 -0
- package/components/common/toggleButton/ToggleButton.svelte.d.ts +19 -0
- package/components/common/toggleButton/ToggleButtonGroup.svelte +33 -0
- package/components/common/toggleButton/ToggleButtonGroup.svelte.d.ts +24 -0
- package/components/flows/FlowEditor.svelte +30 -0
- package/components/{FlowEditor.svelte.d.ts → flows/FlowEditor.svelte.d.ts} +1 -6
- package/components/flows/common/FlowCard.svelte +9 -0
- package/components/flows/common/FlowCard.svelte.d.ts +21 -0
- package/components/flows/common/FlowCardHeader.svelte +39 -0
- package/components/flows/common/FlowCardHeader.svelte.d.ts +20 -0
- package/components/flows/content/CopyFirstStepSchema.svelte +13 -0
- package/components/flows/{CopyFirstStepSchema.svelte.d.ts → content/CopyFirstStepSchema.svelte.d.ts} +0 -0
- package/components/flows/{DynamicInputHelpBox.svelte → content/DynamicInputHelpBox.svelte} +0 -0
- package/components/flows/{DynamicInputHelpBox.svelte.d.ts → content/DynamicInputHelpBox.svelte.d.ts} +0 -0
- package/components/flows/content/FlowEditorPanel.svelte +25 -0
- package/components/flows/content/FlowEditorPanel.svelte.d.ts +16 -0
- package/components/flows/content/FlowFailureModule.svelte +15 -0
- package/components/flows/content/FlowFailureModule.svelte.d.ts +14 -0
- package/components/flows/content/FlowInput.svelte +26 -0
- package/components/flows/{FlowInput.svelte.d.ts → content/FlowInput.svelte.d.ts} +0 -0
- package/components/flows/content/FlowInputs.svelte +91 -0
- package/components/flows/{FlowInputs.svelte.d.ts → content/FlowInputs.svelte.d.ts} +1 -0
- package/components/flows/content/FlowLoop.svelte +168 -0
- package/components/flows/content/FlowLoop.svelte.d.ts +18 -0
- package/components/flows/content/FlowLoopWrapper.svelte +9 -0
- package/components/flows/content/FlowLoopWrapper.svelte.d.ts +14 -0
- package/components/flows/content/FlowModule.svelte +211 -0
- package/components/flows/content/FlowModule.svelte.d.ts +29 -0
- package/components/flows/content/FlowModuleEarlyStop.svelte +76 -0
- package/components/flows/content/FlowModuleEarlyStop.svelte.d.ts +17 -0
- package/components/flows/content/FlowModuleHeader.svelte +157 -0
- package/components/flows/{FlowModuleHeader.svelte.d.ts → content/FlowModuleHeader.svelte.d.ts} +5 -3
- package/components/flows/content/FlowModuleScript.svelte +21 -0
- package/components/flows/content/FlowModuleScript.svelte.d.ts +17 -0
- package/components/flows/content/FlowModuleSuspend.svelte +27 -0
- package/components/flows/content/FlowModuleSuspend.svelte.d.ts +17 -0
- package/components/flows/content/FlowModuleWrapper.svelte +45 -0
- package/components/flows/content/FlowModuleWrapper.svelte.d.ts +14 -0
- package/components/flows/content/FlowRetries.svelte +80 -0
- package/components/flows/content/FlowRetries.svelte.d.ts +17 -0
- package/components/flows/content/FlowSchedules.svelte +18 -0
- package/components/flows/content/FlowSchedules.svelte.d.ts +14 -0
- package/components/flows/content/FlowSettings.svelte +78 -0
- package/components/flows/{FlowSettings.svelte.d.ts → content/FlowSettings.svelte.d.ts} +2 -6
- package/components/flows/content/RemoveStepConfirmationModal.svelte +32 -0
- package/components/flows/content/RemoveStepConfirmationModal.svelte.d.ts +19 -0
- package/components/flows/flowState.d.ts +8 -7
- package/components/flows/flowState.js +25 -46
- package/components/flows/flowStateUtils.d.ts +16 -14
- package/components/flows/flowStateUtils.js +81 -73
- package/components/flows/flowStore.js +7 -4
- package/components/flows/header/FlowImportExportMenu.svelte +55 -0
- package/components/flows/header/FlowImportExportMenu.svelte.d.ts +14 -0
- package/components/flows/header/FlowPreviewButtons.svelte +57 -0
- package/components/flows/header/FlowPreviewButtons.svelte.d.ts +14 -0
- package/components/flows/map/FlowErrorHandlerItem.svelte +60 -0
- package/components/flows/map/FlowErrorHandlerItem.svelte.d.ts +14 -0
- package/components/flows/map/FlowModuleSchemaItem.svelte +80 -0
- package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +32 -0
- package/components/flows/map/FlowModuleSchemaMap.svelte +241 -0
- package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +20 -0
- package/components/flows/pickers/PickHubScript.svelte +5 -3
- package/components/flows/pickers/PickHubScript.svelte.d.ts +2 -1
- package/components/flows/pickers/PickScript.svelte +4 -12
- package/components/flows/pickers/PickScript.svelte.d.ts +1 -1
- package/components/flows/propPicker/PropPickerWrapper.svelte +44 -0
- package/components/flows/propPicker/PropPickerWrapper.svelte.d.ts +33 -0
- package/components/flows/scheduleUtils.d.ts +0 -1
- package/components/flows/scheduleUtils.js +0 -1
- package/components/flows/types.d.ts +8 -0
- package/components/flows/types.js +1 -0
- package/components/flows/utils.d.ts +3 -1
- package/components/flows/utils.js +26 -10
- package/components/icons/AirtableIcon.svelte +1 -1
- package/components/icons/DiscordIcon.svelte +1 -1
- package/components/icons/GCloudIcon.svelte +1 -1
- package/components/icons/GItlabIcon.svelte +1 -1
- package/components/icons/GSheetsIcon.svelte +1 -1
- package/components/icons/GcalIcon.svelte +1 -1
- package/components/icons/GdriveIcon.svelte +1 -1
- package/components/icons/GithubIcon.svelte +1 -1
- package/components/icons/GmailIcon.svelte +1 -1
- package/components/icons/HatIcon.svelte +19 -0
- package/components/icons/HatIcon.svelte.d.ts +16 -0
- package/components/icons/MastodonIcon.svelte +1 -1
- package/components/icons/MatrixIcon.svelte +1 -1
- package/components/icons/PostgresIcon.svelte +1 -1
- package/components/icons/S3Icon.svelte +1 -1
- package/components/icons/Slack.svelte +1 -1
- package/components/icons/TogglIcon.svelte +8 -46
- package/components/jobs/JobDetail.svelte +1 -1
- package/components/landing/FlowGettingStarted.svelte +22 -68
- package/components/landing/FlowLandingBox.svelte +1 -1
- package/components/landing/RessourceGettingStarted.svelte +7 -37
- package/components/landing/ScriptBox.svelte +33 -60
- package/components/landing/ScriptGettingStarted.svelte +23 -69
- package/components/propertyPicker/ObjectViewer.svelte +18 -12
- package/components/propertyPicker/ObjectViewer.svelte.d.ts +1 -0
- package/components/propertyPicker/PropPicker.svelte +108 -11
- package/components/propertyPicker/WarningMessage.svelte +2 -15
- package/components/script_editor/LogPanel.svelte +108 -119
- package/components/script_editor/LogPanel.svelte.d.ts +2 -0
- package/components/sidebar/SidebarContent.svelte +2 -2
- package/editorUtils.d.ts +3 -0
- package/editorUtils.js +1 -0
- package/gen/core/OpenAPI.js +1 -1
- package/gen/index.d.ts +1 -0
- package/gen/models/CompletedJob.d.ts +2 -1
- package/gen/models/CompletedJob.js +1 -0
- package/gen/models/FlowModule.d.ts +3 -0
- package/gen/models/FlowStatus.d.ts +3 -0
- package/gen/models/FlowStatusModule.d.ts +1 -1
- package/gen/models/Preview.d.ts +2 -1
- package/gen/models/Preview.js +1 -0
- package/gen/models/QueuedJob.d.ts +2 -1
- package/gen/models/QueuedJob.js +1 -0
- package/gen/models/RawScript.d.ts +2 -1
- package/gen/models/RawScript.js +1 -0
- package/gen/models/Retry.d.ts +11 -0
- package/gen/models/Retry.js +4 -0
- package/gen/models/Script.d.ts +9 -2
- package/gen/models/Script.js +8 -0
- package/gen/services/JobService.d.ts +40 -0
- package/gen/services/JobService.js +70 -0
- package/gen/services/ScriptService.d.ts +14 -3
- package/gen/services/ScriptService.js +13 -0
- package/infer.d.ts +1 -1
- package/infer.js +6 -1
- package/package.json +71 -38
- package/script_helpers.d.ts +8 -2
- package/script_helpers.js +88 -16
- package/stores.d.ts +1 -1
- package/utils.d.ts +8 -6
- package/utils.js +57 -21
- package/components/FlowEditor.svelte +0 -55
- package/components/FlowPreview.svelte +0 -107
- package/components/FlowPreview.svelte.d.ts +0 -23
- package/components/ModuleStep.svelte +0 -131
- package/components/ModuleStep.svelte.d.ts +0 -25
- package/components/flows/CopyFirstStepSchema.svelte +0 -13
- package/components/flows/FlowBox.svelte +0 -16
- package/components/flows/FlowBox.svelte.d.ts +0 -23
- package/components/flows/FlowBoxHeader.svelte +0 -16
- package/components/flows/FlowBoxHeader.svelte.d.ts +0 -21
- package/components/flows/FlowInput.svelte +0 -22
- package/components/flows/FlowInputs.svelte +0 -65
- package/components/flows/FlowModuleHeader.svelte +0 -109
- package/components/flows/FlowSettings.svelte +0 -165
- package/components/flows/FlowTimeline.svelte +0 -169
- package/components/flows/FlowTimeline.svelte.d.ts +0 -21
- package/components/flows/stepOpenedStore.d.ts +0 -1
- package/components/flows/stepOpenedStore.js +0 -6
- package/components/propertyPicker/OverlayPropertyPicker.svelte +0 -69
- package/components/propertyPicker/OverlayPropertyPicker.svelte.d.ts +0 -24
|
@@ -28,6 +28,7 @@ import Icon from 'svelte-awesome';
|
|
|
28
28
|
import Modal from './Modal.svelte';
|
|
29
29
|
import Password from './Password.svelte';
|
|
30
30
|
import Path from './Path.svelte';
|
|
31
|
+
import { Button } from './common';
|
|
31
32
|
let manual = false;
|
|
32
33
|
let value = '';
|
|
33
34
|
let valueToken;
|
|
@@ -156,6 +157,10 @@ $: isGoogleSignin =
|
|
|
156
157
|
resource_type == 'gcal' ||
|
|
157
158
|
resource_type == 'gdrive' ||
|
|
158
159
|
resource_type == 'gsheets');
|
|
160
|
+
$: disabled =
|
|
161
|
+
(step == 1 && resource_type == '') ||
|
|
162
|
+
(step == 2 && value == '') ||
|
|
163
|
+
(step == 3 && pathError != '');
|
|
159
164
|
</script>
|
|
160
165
|
|
|
161
166
|
<Modal
|
|
@@ -185,8 +190,10 @@ $: isGoogleSignin =
|
|
|
185
190
|
<PageHeader title="OAuth APIs" />
|
|
186
191
|
<div class="grid sm:grid-cols-2 md:grid-cols-3 gap-x-2 gap-y-1 items-center mb-2">
|
|
187
192
|
{#each Object.entries(connects).sort((a, b) => a[0].localeCompare(b[0])) as [key, values]}
|
|
188
|
-
<
|
|
189
|
-
|
|
193
|
+
<Button
|
|
194
|
+
variant="border"
|
|
195
|
+
color={key === resource_type ? 'blue' : 'dark'}
|
|
196
|
+
btnClasses={key === resource_type ? '!border-2 !bg-blue-50/75' : 'm-[1px]'}
|
|
190
197
|
on:click={() => {
|
|
191
198
|
manual = false
|
|
192
199
|
resource_type = key
|
|
@@ -197,64 +204,93 @@ $: isGoogleSignin =
|
|
|
197
204
|
}}
|
|
198
205
|
>
|
|
199
206
|
<IconedResourceType name={key} after={true} />
|
|
200
|
-
</
|
|
207
|
+
</Button>
|
|
201
208
|
{/each}
|
|
202
209
|
</div>
|
|
203
|
-
<PageHeader title="
|
|
210
|
+
<PageHeader title="Scopes" primary={false} />
|
|
204
211
|
{#if !manual && resource_type != ''}
|
|
205
212
|
{#each scopes as v}
|
|
206
|
-
<div class="flex flex-row max-w-md">
|
|
213
|
+
<div class="flex flex-row max-w-md mb-2">
|
|
207
214
|
<input type="text" bind:value={v} />
|
|
208
|
-
<
|
|
209
|
-
|
|
215
|
+
<Button
|
|
216
|
+
variant="border"
|
|
217
|
+
color="red"
|
|
218
|
+
size="xs"
|
|
219
|
+
btnClasses="mx-6"
|
|
210
220
|
on:click={() => {
|
|
211
221
|
scopes = scopes.filter((el) => el != v)
|
|
212
|
-
}}
|
|
222
|
+
}}
|
|
213
223
|
>
|
|
224
|
+
<Icon data={faMinus} />
|
|
225
|
+
</Button>
|
|
214
226
|
</div>
|
|
215
227
|
{/each}
|
|
216
|
-
<
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
228
|
+
<div class="flex items-center mt-1">
|
|
229
|
+
<Button
|
|
230
|
+
variant="border"
|
|
231
|
+
color="blue"
|
|
232
|
+
size="sm"
|
|
233
|
+
endIcon={{ icon: faPlus }}
|
|
234
|
+
on:click={() => {
|
|
235
|
+
scopes = scopes.concat('')
|
|
236
|
+
}}
|
|
237
|
+
>
|
|
238
|
+
Add item
|
|
239
|
+
</Button>
|
|
240
|
+
<span class="ml-2 text-sm text-gray-500">
|
|
241
|
+
({(scopes ?? []).length} item{(scopes ?? []).length > 1 ? 's' : ''})
|
|
242
|
+
</span>
|
|
243
|
+
</div>
|
|
223
244
|
{:else}
|
|
224
245
|
<p class="italic text-sm">Pick an OAuth API and customize the scopes here</p>
|
|
225
246
|
{/if}
|
|
226
247
|
<PageHeader title="Extra Params" primary={false} />
|
|
227
248
|
{#if !manual && resource_type != ''}
|
|
228
249
|
{#each extra_params as [k, v]}
|
|
229
|
-
<div class="flex flex-row max-w-md">
|
|
230
|
-
<input type="text" bind:value={k} />
|
|
250
|
+
<div class="flex flex-row max-w-md mb-2">
|
|
251
|
+
<input type="text" bind:value={k} class="mr-2" />
|
|
231
252
|
<input type="text" bind:value={v} />
|
|
232
253
|
|
|
233
|
-
<
|
|
234
|
-
|
|
254
|
+
<Button
|
|
255
|
+
variant="border"
|
|
256
|
+
color="red"
|
|
257
|
+
size="xs"
|
|
258
|
+
btnClasses="mx-6"
|
|
235
259
|
on:click={() => {
|
|
236
260
|
extra_params = extra_params.filter((el) => el[0] != k)
|
|
237
|
-
}}
|
|
261
|
+
}}
|
|
238
262
|
>
|
|
263
|
+
<Icon data={faMinus} />
|
|
264
|
+
</Button>
|
|
239
265
|
</div>
|
|
240
266
|
{/each}
|
|
241
|
-
<
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
267
|
+
<div class="flex items-center mt-1">
|
|
268
|
+
<Button
|
|
269
|
+
variant="border"
|
|
270
|
+
color="blue"
|
|
271
|
+
size="sm"
|
|
272
|
+
endIcon={{ icon: faPlus }}
|
|
273
|
+
on:click={() => {
|
|
274
|
+
extra_params.push(['', ''])
|
|
275
|
+
extra_params = extra_params
|
|
276
|
+
}}
|
|
277
|
+
>
|
|
278
|
+
Add item
|
|
279
|
+
</Button>
|
|
280
|
+
<span class="ml-2 text-sm text-gray-500">
|
|
281
|
+
({(extra_params ?? []).length} item{(extra_params ?? []).length > 1 ? 's' : ''})
|
|
282
|
+
</span>
|
|
283
|
+
</div>
|
|
250
284
|
{:else}
|
|
251
285
|
<p class="italic text-sm">Pick an OAuth API and customize the extra parameters here</p>
|
|
252
286
|
{/if}
|
|
253
287
|
<PageHeader title="Non OAuth APIs" />
|
|
254
288
|
<div class="grid sm:grid-cols-2 md:grid-cols-3 gap-x-2 gap-y-1 items-center mb-2">
|
|
255
289
|
{#each connectsManual as [key, instructions]}
|
|
256
|
-
<
|
|
257
|
-
|
|
290
|
+
<Button
|
|
291
|
+
variant="border"
|
|
292
|
+
color={key === resource_type ? 'blue' : 'dark'}
|
|
293
|
+
btnClasses={key === resource_type ? '!border-2 !bg-blue-50/75' : 'm-[1px]'}
|
|
258
294
|
on:click={() => {
|
|
259
295
|
manual = true
|
|
260
296
|
resource_type = key
|
|
@@ -262,7 +298,7 @@ $: isGoogleSignin =
|
|
|
262
298
|
}}
|
|
263
299
|
>
|
|
264
300
|
<IconedResourceType name={key} after={true} />
|
|
265
|
-
</
|
|
301
|
+
</Button>
|
|
266
302
|
{/each}
|
|
267
303
|
</div>
|
|
268
304
|
{:else if step == 2}
|
|
@@ -310,34 +346,24 @@ $: isGoogleSignin =
|
|
|
310
346
|
</ul>
|
|
311
347
|
{/if}
|
|
312
348
|
</div>
|
|
313
|
-
<div slot="submission">
|
|
349
|
+
<div slot="submission" class="flex items-center gap-4">
|
|
314
350
|
{#if step > 1 && !no_back}
|
|
315
|
-
<
|
|
351
|
+
<Button variant="border" on:click={back}>Back</Button>
|
|
352
|
+
{/if}
|
|
353
|
+
{#if isGoogleSignin}
|
|
354
|
+
<button {disabled} on:click={next}>
|
|
355
|
+
<img class="h-10 w-auto" src="/google_signin.png" alt="Google sign-in" />
|
|
356
|
+
</button>
|
|
357
|
+
{:else}
|
|
358
|
+
<Button {disabled} on:click={next}>
|
|
359
|
+
{#if step == 1 && !manual}
|
|
360
|
+
Connect
|
|
361
|
+
{:else if step == 3}
|
|
362
|
+
Add resource
|
|
363
|
+
{:else}
|
|
364
|
+
Next
|
|
365
|
+
{/if}
|
|
366
|
+
</Button>
|
|
316
367
|
{/if}
|
|
317
|
-
<button
|
|
318
|
-
class={isGoogleSignin ? '' : 'default-button px-4 py-2 font-semibold'}
|
|
319
|
-
class:default-button-disabled={(step == 1 && resource_type == '') ||
|
|
320
|
-
(step == 2 && value == '') ||
|
|
321
|
-
(step == 3 && pathError != '')}
|
|
322
|
-
on:click={next}
|
|
323
|
-
>
|
|
324
|
-
{#if isGoogleSignin}
|
|
325
|
-
<img src="/google_signin.png" alt="Google sign-in" />
|
|
326
|
-
{:else if step == 1 && !manual}
|
|
327
|
-
Connect
|
|
328
|
-
{:else if step == 3}
|
|
329
|
-
Add resource
|
|
330
|
-
{:else}
|
|
331
|
-
Next
|
|
332
|
-
{/if}
|
|
333
|
-
</button>
|
|
334
368
|
</div>
|
|
335
369
|
</Modal>
|
|
336
|
-
|
|
337
|
-
<style>
|
|
338
|
-
.selected:hover {
|
|
339
|
-
border-radius: 0.375rem;
|
|
340
|
-
border-width: 1px;
|
|
341
|
-
border-color: rgb(156 163 175 / var(--tw-border-opacity));
|
|
342
|
-
--tw-border-opacity: 0.5
|
|
343
|
-
}</style>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script>import { slide } from 'svelte/transition';
|
|
2
|
-
import {
|
|
2
|
+
import { faChevronDown, faChevronUp, faMinus, faPlus } from '@fortawesome/free-solid-svg-icons';
|
|
3
3
|
import { setInputCat as computeInputCat } from '../utils';
|
|
4
|
-
import { Button
|
|
4
|
+
import { Button } from './common';
|
|
5
5
|
import { createEventDispatcher } from 'svelte';
|
|
6
6
|
import Icon from 'svelte-awesome';
|
|
7
7
|
import FieldHeader from './FieldHeader.svelte';
|
|
@@ -31,10 +31,10 @@ export let displayHeader = true;
|
|
|
31
31
|
export let properties = undefined;
|
|
32
32
|
let seeEditable = enum_ != undefined || pattern != undefined;
|
|
33
33
|
const dispatch = createEventDispatcher();
|
|
34
|
-
$: minHeight = `${1 + minRows * 1.2}em`;
|
|
35
34
|
$: maxHeight = maxRows ? `${1 + maxRows * 1.2}em` : `auto`;
|
|
36
35
|
$: validateInput(pattern, value);
|
|
37
36
|
let error = '';
|
|
37
|
+
let el = undefined;
|
|
38
38
|
export let editor = undefined;
|
|
39
39
|
let rawValue = undefined;
|
|
40
40
|
$: {
|
|
@@ -83,7 +83,7 @@ function fileChanged(e, cb) {
|
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
85
|
function validateInput(pattern, v) {
|
|
86
|
-
if (required && (v == undefined || v == null)) {
|
|
86
|
+
if (required && (v == undefined || v == null || v === '')) {
|
|
87
87
|
error = 'This field is required';
|
|
88
88
|
valid = false;
|
|
89
89
|
}
|
|
@@ -108,8 +108,11 @@ function testRegex(pattern, value) {
|
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
110
|
$: {
|
|
111
|
-
if (value == undefined) {
|
|
111
|
+
if (value == undefined || value == null) {
|
|
112
112
|
value = defaultValue;
|
|
113
|
+
if ((defaultValue === undefined || defaultValue === null) && inputCat === 'string') {
|
|
114
|
+
value = '';
|
|
115
|
+
}
|
|
113
116
|
}
|
|
114
117
|
}
|
|
115
118
|
export let inputCat = 'string';
|
|
@@ -156,25 +159,19 @@ $: inputCat = computeInputCat(type, format, itemsType?.type, enum_, contentEncod
|
|
|
156
159
|
</div>
|
|
157
160
|
{/if}
|
|
158
161
|
</div>
|
|
159
|
-
<span class="text-2xs">
|
|
162
|
+
<span class="text-2xs">Input preview:</span>
|
|
160
163
|
{/if}
|
|
161
164
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
<div class="text-right text-xs {error === '' ? 'text-white' : 'font-bold text-red-600'}">
|
|
168
|
-
{error === '' ? '...' : error}
|
|
169
|
-
</div>
|
|
170
|
-
{:else}
|
|
171
|
-
<div class="mt-1" />
|
|
172
|
-
{/if}
|
|
173
|
-
</div>
|
|
165
|
+
{#if description}
|
|
166
|
+
<div class="text-sm italic pb-1">
|
|
167
|
+
{description}
|
|
168
|
+
</div>
|
|
169
|
+
{/if}
|
|
174
170
|
|
|
175
171
|
<div class="flex space-x-1">
|
|
176
172
|
{#if inputCat == 'number'}
|
|
177
173
|
<input
|
|
174
|
+
on:focus
|
|
178
175
|
{disabled}
|
|
179
176
|
type="number"
|
|
180
177
|
class={valid
|
|
@@ -199,7 +196,7 @@ $: inputCat = computeInputCat(type, format, itemsType?.type, enum_, contentEncod
|
|
|
199
196
|
{:else if inputCat == 'list'}
|
|
200
197
|
<div>
|
|
201
198
|
<div>
|
|
202
|
-
{#each value ?? [] as v}
|
|
199
|
+
{#each value ?? [] as v, i}
|
|
203
200
|
<div class="flex flex-row max-w-md mt-1">
|
|
204
201
|
{#if itemsType?.type == 'number'}
|
|
205
202
|
<input type="number" bind:value={v} />
|
|
@@ -207,14 +204,17 @@ $: inputCat = computeInputCat(type, format, itemsType?.type, enum_, contentEncod
|
|
|
207
204
|
<input
|
|
208
205
|
type="file"
|
|
209
206
|
class="my-6"
|
|
210
|
-
on:change={(x) => fileChanged(x, (val) => (
|
|
207
|
+
on:change={(x) => fileChanged(x, (val) => (value[i] = val))}
|
|
211
208
|
multiple={false}
|
|
212
209
|
/>
|
|
213
210
|
{:else}
|
|
214
211
|
<input type="text" bind:value={v} />
|
|
215
212
|
{/if}
|
|
216
|
-
<
|
|
217
|
-
|
|
213
|
+
<Button
|
|
214
|
+
variant="border"
|
|
215
|
+
color="red"
|
|
216
|
+
size="sm"
|
|
217
|
+
btnClasses="mx-6"
|
|
218
218
|
on:click={() => {
|
|
219
219
|
value = value.filter((el) => el != v)
|
|
220
220
|
if (value.length == 0) {
|
|
@@ -222,13 +222,16 @@ $: inputCat = computeInputCat(type, format, itemsType?.type, enum_, contentEncod
|
|
|
222
222
|
}
|
|
223
223
|
}}
|
|
224
224
|
>
|
|
225
|
-
<Icon data={faMinus}
|
|
226
|
-
</
|
|
225
|
+
<Icon data={faMinus} />
|
|
226
|
+
</Button>
|
|
227
227
|
</div>
|
|
228
228
|
{/each}
|
|
229
229
|
</div>
|
|
230
|
-
<
|
|
231
|
-
|
|
230
|
+
<Button
|
|
231
|
+
variant="border"
|
|
232
|
+
color="blue"
|
|
233
|
+
size="sm"
|
|
234
|
+
btnClasses="mt-1"
|
|
232
235
|
on:click={() => {
|
|
233
236
|
if (value == undefined) {
|
|
234
237
|
value = []
|
|
@@ -238,7 +241,7 @@ $: inputCat = computeInputCat(type, format, itemsType?.type, enum_, contentEncod
|
|
|
238
241
|
>
|
|
239
242
|
<Icon data={faPlus} class="mr-2" />
|
|
240
243
|
Add item
|
|
241
|
-
</
|
|
244
|
+
</Button>
|
|
242
245
|
<span class="ml-2">
|
|
243
246
|
{(value ?? []).length} item{(value ?? []).length > 1 ? 's' : ''}
|
|
244
247
|
</span>
|
|
@@ -255,9 +258,16 @@ $: inputCat = computeInputCat(type, format, itemsType?.type, enum_, contentEncod
|
|
|
255
258
|
</div>
|
|
256
259
|
{:else}
|
|
257
260
|
<textarea
|
|
261
|
+
bind:this={el}
|
|
262
|
+
on:focus
|
|
258
263
|
{disabled}
|
|
259
|
-
style="
|
|
260
|
-
on:input={
|
|
264
|
+
style="max-height: {maxHeight}"
|
|
265
|
+
on:input={(e) => {
|
|
266
|
+
if (el) {
|
|
267
|
+
el.style.height = '5px'
|
|
268
|
+
el.style.height = el.scrollHeight + 'px'
|
|
269
|
+
}
|
|
270
|
+
}}
|
|
261
271
|
class="col-span-10 {valid
|
|
262
272
|
? ''
|
|
263
273
|
: 'border border-red-700 border-opacity-30 focus:border-red-700 focus:border-opacity-30 bg-red-100'}"
|
|
@@ -303,23 +313,27 @@ $: inputCat = computeInputCat(type, format, itemsType?.type, enum_, contentEncod
|
|
|
303
313
|
/>
|
|
304
314
|
{:else if inputCat == 'string'}
|
|
305
315
|
<textarea
|
|
316
|
+
bind:this={el}
|
|
306
317
|
on:focus={() => dispatch('focus')}
|
|
307
318
|
on:blur={() => dispatch('blur')}
|
|
308
319
|
{disabled}
|
|
309
|
-
style="height:
|
|
320
|
+
style="height: 30px; max-height: {maxHeight}"
|
|
310
321
|
class="col-span-10 {valid
|
|
311
322
|
? ''
|
|
312
323
|
: 'border border-red-700 border-opacity-30 focus:border-red-700 focus:border-opacity-30 bg-red-100'}"
|
|
313
324
|
placeholder={defaultValue ?? ''}
|
|
314
325
|
bind:value
|
|
315
326
|
on:input={async () => {
|
|
316
|
-
|
|
327
|
+
if (el) {
|
|
328
|
+
el.style.height = '30px'
|
|
329
|
+
el.style.height = el.scrollHeight + 'px'
|
|
330
|
+
}
|
|
317
331
|
dispatch('input', { rawValue: value, isRaw: false })
|
|
318
332
|
}}
|
|
319
333
|
/>
|
|
320
334
|
{/if}
|
|
321
335
|
{#if !required && inputCat != 'resource-object'}
|
|
322
|
-
<Tooltip placement="bottom" content="Reset to default value">
|
|
336
|
+
<!-- <Tooltip placement="bottom" content="Reset to default value">
|
|
323
337
|
<Button
|
|
324
338
|
on:click={() => (value = undefined)}
|
|
325
339
|
{disabled}
|
|
@@ -329,9 +343,12 @@ $: inputCat = computeInputCat(type, format, itemsType?.type, enum_, contentEncod
|
|
|
329
343
|
>
|
|
330
344
|
<Icon data={faArrowRotateLeft} />
|
|
331
345
|
</Button>
|
|
332
|
-
</Tooltip>
|
|
346
|
+
</Tooltip> -->
|
|
333
347
|
{/if}
|
|
334
348
|
<slot name="actions" />
|
|
335
349
|
</div>
|
|
350
|
+
<div class="text-right text-xs {error === '' ? 'text-white' : 'font-bold text-red-600'}">
|
|
351
|
+
{error === '' ? '...' : error}
|
|
352
|
+
</div>
|
|
336
353
|
</div>
|
|
337
354
|
</div>
|
package/components/Button.svelte
CHANGED
|
@@ -1,16 +1,25 @@
|
|
|
1
1
|
<script>import { faArchive, faEdit, faList, faPlay, faShare, faTrash } from '@fortawesome/free-solid-svg-icons';
|
|
2
|
-
import { createEventDispatcher } from 'svelte';
|
|
3
2
|
import Icon from 'svelte-awesome';
|
|
4
3
|
export let category;
|
|
5
4
|
export let disabled = false;
|
|
6
|
-
const
|
|
5
|
+
const colors = {
|
|
6
|
+
red: 'bg-transparent hover:bg-red-600 text-red-600 font-normal hover:text-white border-red-600 hover:border-transparent rounded',
|
|
7
|
+
blue: 'hover:bg-blue-500 hover:text-white'
|
|
8
|
+
};
|
|
9
|
+
const getCategoryClasses = () => {
|
|
10
|
+
if (category === 'delete' || category === 'archive')
|
|
11
|
+
return colors.red;
|
|
12
|
+
else if (category === 'edit' || category === 'list' || category === 'share')
|
|
13
|
+
return colors.blue;
|
|
14
|
+
return '';
|
|
15
|
+
};
|
|
7
16
|
</script>
|
|
8
17
|
|
|
9
18
|
<button
|
|
10
|
-
class="{$$props.class} inline-flex items-center
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
19
|
+
class="{$$props.class} inline-flex items-center bg-blue-500 hover:bg-blue-700 text-white
|
|
20
|
+
font-bold py-1 px-2 border rounded border-blue-500 hover:border-blue-700 w-min min-w-max
|
|
21
|
+
text-sm {getCategoryClasses()}"
|
|
22
|
+
on:click
|
|
14
23
|
{disabled}
|
|
15
24
|
>
|
|
16
25
|
<div class="inline-flex items-center justify-center">
|
|
@@ -47,45 +56,3 @@ const dispatch = createEventDispatcher();
|
|
|
47
56
|
{/if}
|
|
48
57
|
</div>
|
|
49
58
|
</button>
|
|
50
|
-
|
|
51
|
-
<style>
|
|
52
|
-
.delete,
|
|
53
|
-
.archive {
|
|
54
|
-
background-color: transparent
|
|
55
|
-
}
|
|
56
|
-
.delete:hover,
|
|
57
|
-
.archive:hover {
|
|
58
|
-
--tw-bg-opacity: 1;
|
|
59
|
-
background-color: rgb(224 36 36 / var(--tw-bg-opacity))
|
|
60
|
-
}
|
|
61
|
-
.delete,
|
|
62
|
-
.archive {
|
|
63
|
-
font-weight: 400;
|
|
64
|
-
--tw-text-opacity: 1;
|
|
65
|
-
color: rgb(224 36 36 / var(--tw-text-opacity))
|
|
66
|
-
}
|
|
67
|
-
.delete:hover,
|
|
68
|
-
.archive:hover {
|
|
69
|
-
--tw-text-opacity: 1;
|
|
70
|
-
color: rgb(255 255 255 / var(--tw-text-opacity))
|
|
71
|
-
}
|
|
72
|
-
.delete,
|
|
73
|
-
.archive {
|
|
74
|
-
border-radius: 0.25rem;
|
|
75
|
-
--tw-border-opacity: 1;
|
|
76
|
-
border-color: rgb(224 36 36 / var(--tw-border-opacity))
|
|
77
|
-
}
|
|
78
|
-
.delete:hover,
|
|
79
|
-
.archive:hover {
|
|
80
|
-
border-color: transparent
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
.edit:hover,
|
|
84
|
-
.play:hover,
|
|
85
|
-
.list:hover,
|
|
86
|
-
.share:hover {
|
|
87
|
-
--tw-bg-opacity: 1;
|
|
88
|
-
background-color: rgb(63 131 248 / var(--tw-bg-opacity));
|
|
89
|
-
--tw-text-opacity: 1;
|
|
90
|
-
color: rgb(255 255 255 / var(--tw-text-opacity))
|
|
91
|
-
}</style>
|
|
@@ -32,7 +32,7 @@ async function handleScheduleInput(input) {
|
|
|
32
32
|
}
|
|
33
33
|
</script>
|
|
34
34
|
|
|
35
|
-
<div class="text-
|
|
35
|
+
<div class="text-red-600 text-2xs grow">{cronError}</div>
|
|
36
36
|
<div class="flex flex-row items-end max-w-5xl">
|
|
37
37
|
<label class="text-xs min-w-max mr-2 self-center" for="cron-schedule">CRON expression</label>
|
|
38
38
|
<input
|