windmill-components 1.85.0 → 1.86.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/CenteredModal.svelte +9 -7
- package/components/CronInput.svelte +301 -64
- package/components/CronInput.svelte.d.ts +3 -3
- package/components/DisplayResult.svelte +2 -2
- package/components/Editor.svelte +97 -42
- package/components/Editor.svelte.d.ts +10 -4
- package/components/EditorBar.svelte +14 -9
- package/components/EditorBar.svelte.d.ts +1 -1
- package/components/FlowBuilder.svelte +73 -53
- package/components/FlowGraphViewer.svelte +2 -0
- package/components/FlowGraphViewer.svelte.d.ts +1 -0
- package/components/FlowPreviewContent.svelte +3 -2
- package/components/FlowViewer.svelte +1 -1
- package/components/InputTransformForm.svelte +75 -72
- package/components/LightweightArgInput.svelte +3 -0
- package/components/LightweightArgInput.svelte.d.ts +1 -0
- package/components/LightweightSchemaForm.svelte +1 -0
- package/components/LightweightSchemaForm.svelte.d.ts +2 -0
- package/components/ModulePreview.svelte +2 -2
- package/components/Path.svelte +15 -3
- package/components/Popover.svelte +7 -19
- package/components/ScheduleEditor.svelte +18 -8
- package/components/ScriptBuilder.svelte +201 -206
- package/components/ScriptBuilder.svelte.d.ts +2 -0
- package/components/ScriptEditor.svelte +38 -37
- package/components/ScriptEditor.svelte.d.ts +5 -1
- package/components/ScriptSchema.svelte +1 -20
- package/components/ScriptSchema.svelte.d.ts +0 -1
- package/components/SimpleEditor.svelte +8 -2
- package/components/SimpleEditor.svelte.d.ts +6 -0
- package/components/Star.svelte +2 -1
- package/components/TemplateEditor.svelte +16 -3
- package/components/TemplateEditor.svelte.d.ts +3 -0
- package/components/Toast.svelte +50 -0
- package/components/Toast.svelte.d.ts +18 -0
- package/components/apps/components/buttons/AppButton.svelte +2 -1
- package/components/apps/components/display/AppHtml.svelte +9 -6
- package/components/apps/components/display/AppIcon.svelte +3 -0
- package/components/apps/components/display/AppImage.svelte +3 -0
- package/components/apps/components/display/AppMap.svelte +3 -0
- package/components/apps/components/display/AppPdf.svelte +3 -0
- package/components/apps/components/display/AppText.svelte +143 -51
- package/components/apps/components/display/AppText.svelte.d.ts +4 -0
- package/components/apps/components/helpers/AlignWrapper.svelte +1 -20
- package/components/apps/components/helpers/HiddenComponent.svelte +12 -6
- package/components/apps/components/helpers/HiddenComponent.svelte.d.ts +2 -1
- package/components/apps/components/helpers/InitializeComponent.svelte +12 -0
- package/components/apps/components/helpers/InitializeComponent.svelte.d.ts +16 -0
- package/components/apps/components/helpers/InputValue.svelte +6 -0
- package/components/apps/components/helpers/NonRunnableComponent.svelte +3 -0
- package/components/apps/components/helpers/RunnableComponent.svelte +24 -6
- package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +2 -1
- package/components/apps/components/helpers/RunnableWrapper.svelte +8 -2
- package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +1 -0
- package/components/apps/components/inputs/AppCheckbox.svelte +3 -0
- package/components/apps/components/inputs/AppDateInput.svelte +3 -0
- package/components/apps/components/inputs/AppFileInput.svelte +4 -0
- package/components/apps/components/inputs/AppMultiSelect.svelte +3 -0
- package/components/apps/components/inputs/AppNumberInput.svelte +3 -0
- package/components/apps/components/inputs/AppRangeInput.svelte +3 -0
- package/components/apps/components/inputs/AppSelect.svelte +3 -9
- package/components/apps/components/inputs/AppSliderInputs.svelte +2 -0
- package/components/apps/components/inputs/AppTextInput.svelte +3 -0
- package/components/apps/components/inputs/currency/AppCurrencyInput.svelte +3 -0
- package/components/apps/components/layout/AppContainer.svelte +3 -0
- package/components/apps/components/layout/AppDivider.svelte +3 -0
- package/components/apps/components/layout/AppDrawer.svelte +3 -0
- package/components/apps/components/layout/AppSplitpanes.svelte +3 -0
- package/components/apps/components/layout/AppTabs.svelte +3 -0
- package/components/apps/editor/AppEditor.svelte +29 -18
- package/components/apps/editor/AppEditorHeader.svelte +23 -15
- package/components/apps/editor/AppPreview.svelte +5 -3
- package/components/apps/editor/ComponentHeader.svelte +20 -1
- package/components/apps/editor/ComponentHeader.svelte.d.ts +3 -0
- package/components/apps/editor/GridEditor.svelte +2 -2
- package/components/apps/editor/RecomputeAllComponents.svelte +7 -4
- package/components/apps/editor/SettingsPanel.svelte +1 -0
- package/components/apps/editor/appUtils.js +12 -2
- package/components/apps/editor/component/Component.svelte +24 -2
- package/components/apps/editor/component/components.d.ts +39 -39
- package/components/apps/editor/componentsPanel/ComponentList.svelte +12 -26
- package/components/apps/editor/componentsPanel/CssSettings.svelte +1 -1
- package/components/apps/editor/componentsPanel/ListItem.svelte +2 -2
- package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +4 -3
- package/components/apps/editor/settingsPanel/ComponentInputTypeEditor.svelte +50 -37
- package/components/apps/editor/settingsPanel/ComponentPanel.svelte +3 -3
- package/components/apps/editor/settingsPanel/SelectedRunnable.svelte +14 -6
- package/components/apps/editor/settingsPanel/inputEditor/ConnectedInputEditor.svelte +2 -2
- package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte +8 -3
- package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte.d.ts +0 -2
- package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +2 -2
- package/components/apps/editor/settingsPanel/triggerLists/BackgroundScriptTriggerList.svelte +15 -7
- package/components/apps/editor/settingsPanel/triggerLists/BackgroundScriptTriggerList.svelte.d.ts +2 -1
- package/components/apps/editor/settingsPanel/triggerLists/ComponentTriggerList.svelte +2 -2
- package/components/apps/editor/settingsPanel/triggerLists/ComponentTriggerList.svelte.d.ts +1 -1
- package/components/apps/editor/settingsPanel/triggerLists/TriggerBadgesList.svelte +6 -5
- package/components/apps/editor/settingsPanel/triggerLists/TriggerBadgesList.svelte.d.ts +1 -1
- package/components/apps/inputType.d.ts +1 -0
- package/components/apps/rx.d.ts +0 -2
- package/components/apps/rx.js +1 -3
- package/components/apps/types.d.ts +8 -0
- package/components/apps/utils.d.ts +3 -1
- package/components/apps/utils.js +24 -1
- package/components/build_workers.d.ts +14 -0
- package/components/build_workers.js +45 -0
- package/components/common/button/Button.svelte +46 -24
- package/components/common/button/Button.svelte.d.ts +7 -1
- package/components/common/button/ButtonDropdown.svelte +25 -0
- package/components/common/button/ButtonDropdown.svelte.d.ts +27 -0
- package/components/common/button/model.d.ts +2 -3
- package/components/common/button/model.js +7 -3
- package/components/common/drawer/Drawer.svelte +0 -1
- package/components/common/drawer/DrawerContent.svelte +1 -1
- package/components/common/fileInput/FileInput.svelte +5 -1
- package/components/common/fileInput/FileInput.svelte.d.ts +1 -0
- package/components/common/index.d.ts +0 -2
- package/components/common/index.js +0 -2
- package/components/common/menu/Menu.svelte.d.ts +1 -1
- package/components/common/popup/Popup.svelte +9 -5
- package/components/common/table/ScriptRow.svelte +2 -2
- package/components/common/tabs/Tab.svelte +10 -5
- package/components/common/tabs/Tabs.svelte +20 -1
- package/components/common/tabs/Tabs.svelte.d.ts +3 -0
- package/components/flows/CreateActionsApp.svelte +12 -7
- package/components/flows/CreateActionsFlow.svelte +11 -10
- package/components/flows/FlowEditor.svelte +2 -2
- package/components/flows/content/CapturePayload.svelte +2 -4
- package/components/flows/content/FlowModuleComponent.svelte +1 -0
- package/components/flows/content/FlowSchedules.svelte +3 -1
- package/components/flows/header/FlowImportExportMenu.svelte +10 -12
- package/components/flows/header/FlowPreviewButtons.svelte +21 -23
- package/components/flows/scheduleUtils.d.ts +1 -0
- package/components/flows/scheduleUtils.js +2 -1
- package/components/graph/FlowGraph.svelte +21 -7
- package/components/graph/FlowGraph.svelte.d.ts +2 -0
- package/components/graph/svelvet/container/views/GraphView.svelte +17 -29
- package/components/graph/svelvet/container/views/GraphView.svelte.d.ts +2 -0
- package/components/graph/svelvet/container/views/Svelvet.svelte +4 -3
- package/components/graph/svelvet/container/views/Svelvet.svelte.d.ts +3 -0
- package/components/home/ItemsList.svelte +1 -1
- package/components/icons/WindmillIcon.svelte +4 -0
- package/components/icons/WindmillIcon.svelte.d.ts +1 -0
- package/components/propertyPicker/PropPicker.svelte +2 -2
- package/components/scripts/CreateActionsScript.svelte +4 -22
- package/editorUtils.js +3 -1
- package/gen/core/OpenAPI.js +1 -1
- package/gen/index.d.ts +6 -0
- package/gen/index.js +2 -0
- package/gen/models/CreateInput.d.ts +5 -0
- package/gen/models/CreateInput.js +4 -0
- package/gen/models/EditSchedule.d.ts +1 -0
- package/gen/models/Input.d.ts +6 -0
- package/gen/models/Input.js +4 -0
- package/gen/models/NewSchedule.d.ts +1 -1
- package/gen/models/NewTokenImpersonate.d.ts +5 -0
- package/gen/models/NewTokenImpersonate.js +4 -0
- package/gen/models/RunnableType.d.ts +5 -0
- package/gen/models/RunnableType.js +9 -0
- package/gen/models/Schedule.d.ts +1 -1
- package/gen/models/UpdateInput.d.ts +4 -0
- package/gen/models/UpdateInput.js +4 -0
- package/gen/services/FlowService.d.ts +18 -0
- package/gen/services/FlowService.js +19 -0
- package/gen/services/InputService.d.ts +78 -0
- package/gen/services/InputService.js +95 -0
- package/gen/services/JobService.d.ts +35 -15
- package/gen/services/JobService.js +25 -7
- package/gen/services/ScheduleService.d.ts +2 -2
- package/gen/services/ScheduleService.js +1 -1
- package/gen/services/ScriptService.d.ts +10 -0
- package/gen/services/ScriptService.js +16 -0
- package/gen/services/UserService.d.ts +12 -0
- package/gen/services/UserService.js +13 -0
- package/package.json +24 -13
- package/script_helpers.d.ts +1 -1
- package/script_helpers.js +7 -5
- package/utils.d.ts +2 -2
- package/utils.js +21 -11
- package/components/common/button/ButtonPopup.svelte +0 -78
- package/components/common/button/ButtonPopup.svelte.d.ts +0 -39
- package/components/common/button/ButtonPopupItem.svelte +0 -48
- package/components/common/button/ButtonPopupItem.svelte.d.ts +0 -28
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script>import { goto } from '$app/navigation';
|
|
2
2
|
import { page } from '$app/stores';
|
|
3
|
-
import { Alert, Badge,
|
|
3
|
+
import { Alert, Badge, Drawer, DrawerContent, UndoRedo } from '../../common';
|
|
4
4
|
import Button from '../../common/button/Button.svelte';
|
|
5
5
|
import { dirtyStore } from '../../common/confirmationModal/dirtyStore';
|
|
6
6
|
import Skeleton from '../../common/skeleton/Skeleton.svelte';
|
|
@@ -188,19 +188,19 @@ function onKeyDown(event) {
|
|
|
188
188
|
lock = true;
|
|
189
189
|
switch (event.key) {
|
|
190
190
|
case 'Z':
|
|
191
|
-
if (event.ctrlKey) {
|
|
191
|
+
if (event.ctrlKey || event.metaKey) {
|
|
192
192
|
$app = redo(history);
|
|
193
193
|
event.preventDefault();
|
|
194
194
|
}
|
|
195
195
|
break;
|
|
196
196
|
case 'z':
|
|
197
|
-
if (event.ctrlKey) {
|
|
197
|
+
if (event.ctrlKey || event.metaKey) {
|
|
198
198
|
$app = undo(history, $app);
|
|
199
199
|
event.preventDefault();
|
|
200
200
|
}
|
|
201
201
|
break;
|
|
202
202
|
case 's':
|
|
203
|
-
if (event.ctrlKey) {
|
|
203
|
+
if (event.ctrlKey || event.metaKey) {
|
|
204
204
|
save();
|
|
205
205
|
event.preventDefault();
|
|
206
206
|
}
|
|
@@ -265,7 +265,7 @@ function onKeyDown(event) {
|
|
|
265
265
|
<PanelSection title="Past Runs">
|
|
266
266
|
<div class="flex flex-col gap-2 w-full">
|
|
267
267
|
{#if $jobs.length > 0}
|
|
268
|
-
<div class="flex gap-2 flex-col
|
|
268
|
+
<div class="flex gap-2 flex-col">
|
|
269
269
|
{#each $jobs ?? [] as { job, component } (job)}
|
|
270
270
|
<!-- svelte-ignore a11y-click-events-have-key-events -->
|
|
271
271
|
<div
|
|
@@ -441,10 +441,15 @@ function onKeyDown(event) {
|
|
|
441
441
|
</Drawer>
|
|
442
442
|
|
|
443
443
|
<div
|
|
444
|
-
class="border-b flex flex-row justify-between py-1 gap-4
|
|
444
|
+
class="border-b flex flex-row justify-between py-1 gap-4 gap-y-2 px-3 items-center overflow-y-visible"
|
|
445
445
|
>
|
|
446
446
|
<div class="min-w-64 w-64">
|
|
447
|
-
<input
|
|
447
|
+
<input
|
|
448
|
+
type="text"
|
|
449
|
+
placeholder="App summary"
|
|
450
|
+
class="text-sm w-full font-semibold"
|
|
451
|
+
bind:value={$summary}
|
|
452
|
+
/>
|
|
448
453
|
</div>
|
|
449
454
|
<UndoRedo
|
|
450
455
|
undoProps={{ disabled: $history?.index === 0 }}
|
|
@@ -589,20 +594,23 @@ function onKeyDown(event) {
|
|
|
589
594
|
<span class="hidden md:inline">Save</span>
|
|
590
595
|
</Button>
|
|
591
596
|
{:else}
|
|
592
|
-
<
|
|
597
|
+
<Button
|
|
593
598
|
loading={loading.save}
|
|
594
599
|
startIcon={{ icon: faSave }}
|
|
595
600
|
on:click={save}
|
|
596
601
|
color="dark"
|
|
597
602
|
size="xs"
|
|
603
|
+
dropdownItems={[
|
|
604
|
+
{
|
|
605
|
+
label: 'Fork',
|
|
606
|
+
onClick: () => {
|
|
607
|
+
window.open(`/apps/add?template=${appPath}`)
|
|
608
|
+
}
|
|
609
|
+
}
|
|
610
|
+
]}
|
|
598
611
|
>
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
on:click={() => {
|
|
602
|
-
window.open(`/apps/add?template=${appPath}`)
|
|
603
|
-
}}>Fork</ButtonPopupItem
|
|
604
|
-
>
|
|
605
|
-
</ButtonPopup>
|
|
612
|
+
Save
|
|
613
|
+
</Button>
|
|
606
614
|
{/if}
|
|
607
615
|
</div>
|
|
608
616
|
</div>
|
|
@@ -34,6 +34,7 @@ const allIdsInPath = writable([]);
|
|
|
34
34
|
const parentWidth = writable(0);
|
|
35
35
|
setContext('AppViewerContext', {
|
|
36
36
|
worldStore: buildWorld(context),
|
|
37
|
+
initialized: writable({ initialized: false, initializedComponents: [] }),
|
|
37
38
|
app: appStore,
|
|
38
39
|
summary: writable(summary),
|
|
39
40
|
selectedComponent,
|
|
@@ -58,7 +59,7 @@ setContext('AppViewerContext', {
|
|
|
58
59
|
hoverStore: writable(undefined),
|
|
59
60
|
allIdsInPath
|
|
60
61
|
});
|
|
61
|
-
let ncontext = context;
|
|
62
|
+
let ncontext = { ...context, workspace };
|
|
62
63
|
function hashchange(e) {
|
|
63
64
|
ncontext.hash = e.newURL.split('#')[1];
|
|
64
65
|
ncontext = ncontext;
|
|
@@ -80,7 +81,7 @@ $: lockedClasses = isLocked ? '!max-h-[400px] overflow-hidden pointer-events-non
|
|
|
80
81
|
|
|
81
82
|
<div class="relative">
|
|
82
83
|
<div
|
|
83
|
-
class="{$$props.class} {lockedClasses} h-full
|
|
84
|
+
class="{$$props.class} {lockedClasses} h-full
|
|
84
85
|
w-full {app.fullscreen ? '' : 'max-w-6xl'} mx-auto"
|
|
85
86
|
>
|
|
86
87
|
{#if $appStore.grid}
|
|
@@ -151,8 +152,9 @@ $: lockedClasses = isLocked ? '!max-h-[400px] overflow-hidden pointer-events-non
|
|
|
151
152
|
inlineScript={script.inlineScript}
|
|
152
153
|
name={script.name}
|
|
153
154
|
fields={script.fields}
|
|
154
|
-
|
|
155
|
+
recomputeOnInputChanged={script.recomputeOnInputChanged ?? true}
|
|
155
156
|
recomputableByRefreshButton={script.autoRefresh ?? false}
|
|
157
|
+
noBackendValue={script.noBackendValue}
|
|
156
158
|
/>
|
|
157
159
|
{/if}
|
|
158
160
|
{/each}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script>import { classNames } from '../../../utils';
|
|
2
|
-
import { Anchor, Bug, Expand, Move } from 'lucide-svelte';
|
|
2
|
+
import { Anchor, Bug, Expand, Move, Pen } from 'lucide-svelte';
|
|
3
3
|
import { createEventDispatcher, getContext } from 'svelte';
|
|
4
4
|
import Popover from '../../Popover.svelte';
|
|
5
5
|
import { Alert, Button } from '../../common';
|
|
@@ -10,6 +10,8 @@ export let selected;
|
|
|
10
10
|
export let locked = false;
|
|
11
11
|
export let hover = false;
|
|
12
12
|
export let shouldHideActions = false;
|
|
13
|
+
export let hasInlineEditor = false;
|
|
14
|
+
export let inlineEditorOpened = false;
|
|
13
15
|
const dispatch = createEventDispatcher();
|
|
14
16
|
const { errorByComponent, openDebugRun, jobs, connectingInput } = getContext('AppViewerContext');
|
|
15
17
|
$: error = getErrorFromLatestResult(component.id, $errorByComponent, $jobs);
|
|
@@ -40,6 +42,23 @@ function openDebugRuns() {
|
|
|
40
42
|
|
|
41
43
|
{#if selected && !shouldHideActions}
|
|
42
44
|
<div class="top-[-9px] -right-[8px] flex flex-row absolute gap-1.5 z-50">
|
|
45
|
+
{#if hasInlineEditor}
|
|
46
|
+
<button
|
|
47
|
+
title="Expand"
|
|
48
|
+
class={classNames(
|
|
49
|
+
'px-1 text-2xs py-0.5 font-bold w-fit border cursor-pointer rounded-sm',
|
|
50
|
+
'bg-indigo-100 text-indigo-600 border-indigo-500 hover:bg-indigo-200 hover:text-indigo-800'
|
|
51
|
+
)}
|
|
52
|
+
on:click={() => dispatch('triggerInlineEditor')}
|
|
53
|
+
on:pointerdown|stopPropagation
|
|
54
|
+
>
|
|
55
|
+
{#if inlineEditorOpened}
|
|
56
|
+
<Pen aria-label="Unlock position" size={14} class="text-orange-500" />
|
|
57
|
+
{:else}
|
|
58
|
+
<Pen aria-label="Lock position" size={14} />
|
|
59
|
+
{/if}
|
|
60
|
+
</button>
|
|
61
|
+
{/if}
|
|
43
62
|
<button
|
|
44
63
|
title="Expand"
|
|
45
64
|
class={classNames(
|
|
@@ -7,10 +7,13 @@ declare const __propDef: {
|
|
|
7
7
|
locked?: boolean | undefined;
|
|
8
8
|
hover?: boolean | undefined;
|
|
9
9
|
shouldHideActions?: boolean | undefined;
|
|
10
|
+
hasInlineEditor?: boolean | undefined;
|
|
11
|
+
inlineEditorOpened?: boolean | undefined;
|
|
10
12
|
};
|
|
11
13
|
events: {
|
|
12
14
|
mousedown: MouseEvent;
|
|
13
15
|
pointerdown: PointerEvent;
|
|
16
|
+
triggerInlineEditor: CustomEvent<any>;
|
|
14
17
|
expand: CustomEvent<any>;
|
|
15
18
|
lock: CustomEvent<any>;
|
|
16
19
|
} & {
|
|
@@ -59,7 +59,7 @@ function removeGridElement(component) {
|
|
|
59
59
|
<RecomputeAllComponents />
|
|
60
60
|
{/if}
|
|
61
61
|
<div class="flex text-2xs text-gray-600 gap-1 items-center">
|
|
62
|
-
<div class="py-2 pr-2
|
|
62
|
+
<div class="py-2 pr-2 text-gray-600 flex gap-2 items-center">
|
|
63
63
|
Hide bar on view
|
|
64
64
|
<input class="windmillapp" type="checkbox" bind:checked={$app.norefreshbar} />
|
|
65
65
|
</div>
|
|
@@ -136,7 +136,7 @@ function removeGridElement(component) {
|
|
|
136
136
|
inlineScript={script.inlineScript}
|
|
137
137
|
name={script.name}
|
|
138
138
|
fields={script.fields}
|
|
139
|
-
|
|
139
|
+
recomputeOnInputChanged={script.recomputeOnInputChanged ?? true}
|
|
140
140
|
recomputableByRefreshButton={script.autoRefresh ?? false}
|
|
141
141
|
/>
|
|
142
142
|
{/if}
|
|
@@ -3,14 +3,14 @@ import { ChevronDown, RefreshCw } from 'lucide-svelte';
|
|
|
3
3
|
import { getContext, onMount } from 'svelte';
|
|
4
4
|
import Button from '../../common/button/Button.svelte';
|
|
5
5
|
import { allItems } from '../utils';
|
|
6
|
-
const { runnableComponents, app,
|
|
6
|
+
const { runnableComponents, app, initialized } = getContext('AppViewerContext');
|
|
7
7
|
let loading = false;
|
|
8
8
|
let timeout = undefined;
|
|
9
9
|
let interval = undefined;
|
|
10
10
|
let shouldRefresh = false;
|
|
11
11
|
let firstLoad = false;
|
|
12
12
|
$: !firstLoad &&
|
|
13
|
-
$
|
|
13
|
+
$initialized.initializedComponents?.length ==
|
|
14
14
|
allItems($app.grid, $app.subgrids).length + $app.hiddenInlineScripts.length &&
|
|
15
15
|
refresh();
|
|
16
16
|
$: componentNumber = Object.values($runnableComponents).filter((x) => x.autoRefresh).length;
|
|
@@ -33,13 +33,16 @@ function setInter(inter) {
|
|
|
33
33
|
onClick(!inter);
|
|
34
34
|
}
|
|
35
35
|
function refresh() {
|
|
36
|
+
let isFirstLoad = false;
|
|
36
37
|
if (!firstLoad) {
|
|
37
|
-
$
|
|
38
|
+
$initialized.initialized = true;
|
|
38
39
|
firstLoad = true;
|
|
40
|
+
isFirstLoad = true;
|
|
39
41
|
}
|
|
40
42
|
loading = true;
|
|
41
43
|
Promise.all(Object.keys($runnableComponents).map((id) => {
|
|
42
|
-
if (!$runnableComponents?.[id]?.autoRefresh
|
|
44
|
+
if (!$runnableComponents?.[id]?.autoRefresh &&
|
|
45
|
+
(!isFirstLoad || !$runnableComponents?.[id]?.refreshOnStart)) {
|
|
43
46
|
return;
|
|
44
47
|
}
|
|
45
48
|
return $runnableComponents?.[id]?.cb?.();
|
|
@@ -94,6 +94,7 @@ function findComponentSettings(app, id) {
|
|
|
94
94
|
fields={hiddenInlineScript.script.fields}
|
|
95
95
|
autoRefresh={hiddenInlineScript.script.autoRefresh}
|
|
96
96
|
id={`bg_${hiddenInlineScript.index}`}
|
|
97
|
+
bind:recomputeOnInputChanged={hiddenInlineScript.script.recomputeOnInputChanged}
|
|
97
98
|
bind:doNotRecomputeOnInputChanged={hiddenInlineScript.script.doNotRecomputeOnInputChanged}
|
|
98
99
|
bind:inlineScript={hiddenInlineScript.script.inlineScript}
|
|
99
100
|
/>
|
|
@@ -25,6 +25,14 @@ export function dfs(grid, id, subgrids) {
|
|
|
25
25
|
return undefined;
|
|
26
26
|
}
|
|
27
27
|
export function selectId(e, id, selectedComponent, app) {
|
|
28
|
+
// this ensure handleClickOutside are triggered
|
|
29
|
+
let event = new MouseEvent('click', {
|
|
30
|
+
view: window,
|
|
31
|
+
bubbles: true,
|
|
32
|
+
cancelable: true,
|
|
33
|
+
relatedTarget: e.target
|
|
34
|
+
});
|
|
35
|
+
window.dispatchEvent(event);
|
|
28
36
|
if (e.shiftKey) {
|
|
29
37
|
selectedComponent.update((old) => {
|
|
30
38
|
if (old && old?.[0]) {
|
|
@@ -337,7 +345,6 @@ function isOverlapping(item1, item2) {
|
|
|
337
345
|
item1.y + item1.h > item2.y);
|
|
338
346
|
}
|
|
339
347
|
export function initOutput(world, id, init) {
|
|
340
|
-
world.initializedOutputs += 1;
|
|
341
348
|
if (!world) {
|
|
342
349
|
return {};
|
|
343
350
|
}
|
|
@@ -421,6 +428,9 @@ export function connectInput(connectingInput, componentId, path) {
|
|
|
421
428
|
return connectingInput;
|
|
422
429
|
}
|
|
423
430
|
export function recursivelyFilterKeyInJSON(json, search, extraSearch) {
|
|
431
|
+
if (json === null || json === undefined || typeof json != 'object') {
|
|
432
|
+
return json;
|
|
433
|
+
}
|
|
424
434
|
if (!search || search == '') {
|
|
425
435
|
return json;
|
|
426
436
|
}
|
|
@@ -435,7 +445,7 @@ export function recursivelyFilterKeyInJSON(json, search, extraSearch) {
|
|
|
435
445
|
}
|
|
436
446
|
else if (typeof json[key] === 'object') {
|
|
437
447
|
const res = recursivelyFilterKeyInJSON(json[key], search, extraSearch);
|
|
438
|
-
if (Object.keys(res).length !== 0) {
|
|
448
|
+
if (Object.keys(res ?? {}).length !== 0) {
|
|
439
449
|
filteredJSON[key] = res;
|
|
440
450
|
}
|
|
441
451
|
}
|
|
@@ -14,6 +14,7 @@ $: ismoving =
|
|
|
14
14
|
movingcomponents != undefined && $mode == 'dnd' && $movingcomponents?.includes(component.id);
|
|
15
15
|
let initializing = undefined;
|
|
16
16
|
let componentContainerHeight = 0;
|
|
17
|
+
let inlineEditorOpened = false;
|
|
17
18
|
</script>
|
|
18
19
|
|
|
19
20
|
<!-- svelte-ignore a11y-mouse-events-have-key-events -->
|
|
@@ -40,11 +41,18 @@ let componentContainerHeight = 0;
|
|
|
40
41
|
on:lock
|
|
41
42
|
on:expand
|
|
42
43
|
{locked}
|
|
44
|
+
{inlineEditorOpened}
|
|
45
|
+
hasInlineEditor={component.type === 'textcomponent' &&
|
|
46
|
+
component.componentInput &&
|
|
47
|
+
component.componentInput.type !== 'connected'}
|
|
48
|
+
on:triggerInlineEditor={() => {
|
|
49
|
+
inlineEditorOpened = !inlineEditorOpened
|
|
50
|
+
}}
|
|
43
51
|
/>
|
|
44
52
|
{/if}
|
|
45
53
|
|
|
46
54
|
{#if ismoving}
|
|
47
|
-
<div class="absolute -top-8 w-40
|
|
55
|
+
<div class="absolute -top-8 w-40">
|
|
48
56
|
<button
|
|
49
57
|
class="border p-0.5 text-xs"
|
|
50
58
|
on:click={() => {
|
|
@@ -166,6 +174,7 @@ let componentContainerHeight = 0;
|
|
|
166
174
|
configuration={component.configuration}
|
|
167
175
|
customCss={component.customCss}
|
|
168
176
|
bind:initializing
|
|
177
|
+
bind:editorMode={inlineEditorOpened}
|
|
169
178
|
componentInput={component.componentInput}
|
|
170
179
|
{render}
|
|
171
180
|
/>
|
|
@@ -413,5 +422,18 @@ let componentContainerHeight = 0;
|
|
|
413
422
|
</div>
|
|
414
423
|
</div>
|
|
415
424
|
{#if initializing}
|
|
416
|
-
|
|
425
|
+
<!-- svelte-ignore a11y-mouse-events-have-key-events -->
|
|
426
|
+
<div
|
|
427
|
+
on:mouseover|stopPropagation={() => {
|
|
428
|
+
if (component.id !== $hoverStore) {
|
|
429
|
+
$hoverStore = component.id
|
|
430
|
+
}
|
|
431
|
+
}}
|
|
432
|
+
on:mouseout|stopPropagation={() => {
|
|
433
|
+
if ($hoverStore !== undefined) {
|
|
434
|
+
$hoverStore = undefined
|
|
435
|
+
}
|
|
436
|
+
}}
|
|
437
|
+
class="absolute inset-0 center-center flex-col bg- border animate-skeleton"
|
|
438
|
+
/>
|
|
417
439
|
{/if}
|