windmill-components 1.75.0 → 1.78.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/ArgInput.svelte +4 -14
- package/components/DisplayResult.svelte +1 -1
- package/components/Dropdown.svelte +14 -4
- package/components/FlowGraphViewer.svelte +1 -1
- package/components/FolderUsageInfo.svelte +16 -6
- package/components/FolderUsageInfo.svelte.d.ts +2 -0
- package/components/LightweightArgInput.svelte +315 -0
- package/components/LightweightArgInput.svelte.d.ts +47 -0
- package/components/LightweightSchemaForm.svelte +31 -0
- package/components/LightweightSchemaForm.svelte.d.ts +18 -0
- package/components/ModulePreview.svelte +1 -0
- package/components/Multiselect.svelte.d.ts +2 -2
- package/components/PageHeader.svelte +1 -1
- package/components/Path.svelte +26 -3
- package/components/Range.svelte.d.ts +2 -2
- package/components/ScriptBuilder.svelte +122 -122
- package/components/SettingSection.svelte +44 -0
- package/components/SettingSection.svelte.d.ts +21 -0
- package/components/SimpleEditor.svelte +1 -1
- package/components/SimpleEditor.svelte.d.ts +2 -0
- package/components/TemplateEditor.svelte +3 -0
- package/components/TemplateEditor.svelte.d.ts +0 -204
- package/components/Tooltip.svelte +3 -1
- package/components/VariableEditor.svelte +2 -1
- package/components/WhitelistIp.svelte +1 -3
- package/components/apps/components/buttons/AppButton.svelte +16 -8
- package/components/apps/components/buttons/AppButton.svelte.d.ts +1 -2
- package/components/apps/components/buttons/AppForm.svelte +3 -7
- package/components/apps/components/buttons/AppFormButton.svelte +3 -7
- package/components/apps/components/display/AppBarChart.svelte +7 -3
- package/components/apps/components/display/AppBarChart.svelte.d.ts +0 -2
- package/components/apps/components/display/AppDisplayComponent.svelte +7 -3
- package/components/apps/components/display/AppDisplayComponent.svelte.d.ts +0 -2
- package/components/apps/components/display/AppHtml.svelte +7 -11
- package/components/apps/components/display/AppHtml.svelte.d.ts +0 -2
- package/components/apps/components/display/AppIcon.svelte +0 -1
- package/components/apps/components/display/AppIcon.svelte.d.ts +0 -2
- package/components/apps/components/display/AppImage.svelte +0 -1
- package/components/apps/components/display/AppImage.svelte.d.ts +0 -2
- package/components/apps/components/display/AppMap.svelte +10 -3
- package/components/apps/components/display/AppMap.svelte.d.ts +0 -2
- package/components/apps/components/display/AppPdf.svelte +8 -3
- package/components/apps/components/display/AppPdf.svelte.d.ts +0 -2
- package/components/apps/components/display/AppPieChart.svelte +7 -3
- package/components/apps/components/display/AppPieChart.svelte.d.ts +0 -2
- package/components/apps/components/display/AppScatterChart.svelte +7 -3
- package/components/apps/components/display/AppScatterChart.svelte.d.ts +0 -2
- package/components/apps/components/display/AppText.svelte +41 -17
- package/components/apps/components/display/AppText.svelte.d.ts +0 -2
- package/components/apps/components/display/AppTimeseries.svelte +7 -3
- package/components/apps/components/display/AppTimeseries.svelte.d.ts +0 -2
- package/components/apps/components/display/PlotlyHtml.svelte +9 -4
- package/components/apps/components/display/PlotlyHtml.svelte.d.ts +0 -2
- package/components/apps/components/display/VegaLiteHtml.svelte +8 -3
- package/components/apps/components/display/VegaLiteHtml.svelte.d.ts +0 -2
- package/components/apps/components/display/table/AppAggridTable.svelte +13 -5
- package/components/apps/components/display/table/AppAggridTable.svelte.d.ts +0 -2
- package/components/apps/components/display/table/AppTable.svelte +19 -13
- package/components/apps/components/display/table/AppTable.svelte.d.ts +0 -2
- package/components/apps/components/helpers/HiddenComponent.svelte +11 -2
- package/components/apps/components/helpers/HiddenComponent.svelte.d.ts +1 -2
- package/components/apps/components/helpers/InputValue.svelte +26 -43
- package/components/apps/components/helpers/InputValue.svelte.d.ts +4 -3
- package/components/apps/components/helpers/NonRunnableComponent.svelte +2 -2
- package/components/apps/components/helpers/RefreshButton.svelte +2 -3
- package/components/apps/components/helpers/ResizeWrapper.svelte +3 -4
- package/components/apps/components/helpers/RunnableComponent.svelte +63 -51
- package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +2 -1
- package/components/apps/components/helpers/RunnableWrapper.svelte +2 -2
- package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +1 -1
- package/components/apps/components/helpers/eval.d.ts +5 -0
- package/components/apps/components/helpers/eval.js +57 -0
- package/components/apps/components/inputs/AppCheckbox.svelte +4 -2
- package/components/apps/components/inputs/AppCheckbox.svelte.d.ts +0 -2
- package/components/apps/components/inputs/AppDateInput.svelte +4 -2
- package/components/apps/components/inputs/AppDateInput.svelte.d.ts +0 -2
- package/components/apps/components/inputs/AppFileInput.svelte +4 -2
- package/components/apps/components/inputs/AppFileInput.svelte.d.ts +0 -2
- package/components/apps/components/inputs/AppMultiSelect.svelte +4 -2
- package/components/apps/components/inputs/AppMultiSelect.svelte.d.ts +0 -2
- package/components/apps/components/inputs/AppNumberInput.svelte +4 -2
- package/components/apps/components/inputs/AppNumberInput.svelte.d.ts +0 -2
- package/components/apps/components/inputs/AppRangeInput.svelte +5 -2
- package/components/apps/components/inputs/AppRangeInput.svelte.d.ts +0 -2
- package/components/apps/components/inputs/AppSelect.svelte +4 -2
- package/components/apps/components/inputs/AppSelect.svelte.d.ts +0 -2
- package/components/apps/components/inputs/AppSliderInputs.svelte +4 -2
- package/components/apps/components/inputs/AppSliderInputs.svelte.d.ts +0 -2
- package/components/apps/components/inputs/AppTextInput.svelte +5 -3
- package/components/apps/components/inputs/AppTextInput.svelte.d.ts +0 -2
- package/components/apps/components/inputs/currency/AppCurrencyInput.svelte +5 -2
- package/components/apps/components/inputs/currency/AppCurrencyInput.svelte.d.ts +0 -2
- package/components/apps/components/layout/AppContainer.svelte +1 -7
- package/components/apps/components/layout/AppContainer.svelte.d.ts +0 -2
- package/components/apps/components/layout/AppDrawer.svelte +0 -3
- package/components/apps/components/layout/AppSplitpanes.svelte +1 -6
- package/components/apps/components/layout/AppTabs.svelte +62 -34
- package/components/apps/components/layout/AppTabs.svelte.d.ts +1 -2
- package/components/apps/editor/AppComponentInput.svelte +2 -1
- package/components/apps/editor/AppEditor.svelte +145 -143
- package/components/apps/editor/AppEditorHeader.svelte +43 -35
- package/components/apps/editor/AppPreview.svelte +68 -15
- package/components/apps/editor/ComponentHeader.svelte +3 -1
- package/components/apps/editor/ComponentHeader.svelte.d.ts +1 -0
- package/components/apps/editor/GridEditor.svelte +58 -77
- package/components/apps/editor/GridPanel.svelte +3 -1
- package/components/apps/editor/GridViewer.svelte +91 -0
- package/components/apps/editor/GridViewer.svelte.d.ts +32 -0
- package/components/apps/editor/RecomputeAllComponents.svelte +7 -1
- package/components/apps/editor/SettingsPanel.svelte +23 -10
- package/components/apps/editor/SubGridEditor.svelte +95 -68
- package/components/apps/editor/SubGridEditor.svelte.d.ts +3 -4
- package/components/apps/editor/appUtils.d.ts +13 -3
- package/components/apps/editor/appUtils.js +106 -37
- package/components/apps/editor/component/Component.svelte +6 -52
- package/components/apps/editor/component/ComponentNavigation.svelte +101 -51
- package/components/apps/editor/component/components.d.ts +3 -3
- package/components/apps/editor/component/components.js +59 -115
- package/components/apps/editor/componentsPanel/ComponentList.svelte +5 -4
- package/components/apps/editor/componentsPanel/componentStaticValues.d.ts +2 -1
- package/components/apps/editor/componentsPanel/componentStaticValues.js +1 -0
- package/components/apps/editor/contextPanel/ComponentOutput.svelte +67 -0
- package/components/apps/editor/contextPanel/ComponentOutput.svelte.d.ts +21 -0
- package/components/apps/editor/contextPanel/ComponentOutputViewer.svelte +15 -10
- package/components/apps/editor/contextPanel/ComponentOutputViewer.svelte.d.ts +0 -1
- package/components/apps/editor/contextPanel/ContextPanel.svelte +73 -136
- package/components/apps/editor/contextPanel/SubGridOutput.svelte +66 -0
- package/components/apps/editor/contextPanel/SubGridOutput.svelte.d.ts +19 -0
- package/components/apps/editor/contextPanel/components/BackgroundScriptOutput.svelte +41 -0
- package/components/apps/editor/contextPanel/components/BackgroundScriptOutput.svelte.d.ts +18 -0
- package/components/apps/editor/contextPanel/components/BackgroundScriptsOutput.svelte +9 -0
- package/components/apps/editor/contextPanel/components/BackgroundScriptsOutput.svelte.d.ts +16 -0
- package/components/apps/editor/contextPanel/components/MinMaxButton.svelte +25 -0
- package/components/apps/editor/contextPanel/components/MinMaxButton.svelte.d.ts +16 -0
- package/components/apps/editor/contextPanel/components/OutputHeader.svelte +99 -0
- package/components/apps/editor/contextPanel/components/OutputHeader.svelte.d.ts +24 -0
- package/components/apps/editor/contextPanel/components/TableActionOutput.svelte +17 -0
- package/components/apps/editor/contextPanel/components/TableActionOutput.svelte.d.ts +17 -0
- package/components/apps/editor/contextPanel/components/TableActionsOutput.svelte +13 -0
- package/components/apps/editor/contextPanel/components/TableActionsOutput.svelte.d.ts +17 -0
- package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte +55 -23
- package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +74 -44
- package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte +1 -1
- package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +5 -9
- package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte.d.ts +2 -2
- package/components/apps/editor/settingsPanel/ComponentPanel.svelte +43 -37
- package/components/apps/editor/settingsPanel/GridPane.svelte +1 -3
- package/components/apps/editor/settingsPanel/GridTab.svelte +5 -15
- package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +1 -16
- package/components/apps/editor/settingsPanel/Recompute.svelte +1 -0
- package/components/apps/editor/settingsPanel/SelectedRunnable.svelte +6 -0
- package/components/apps/editor/settingsPanel/TableActions.svelte +4 -6
- package/components/apps/editor/settingsPanel/inputEditor/ConnectedInputEditor.svelte +2 -8
- package/components/apps/editor/settingsPanel/inputEditor/EvalInputEditor.svelte +2 -2
- package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte +58 -46
- package/components/apps/editor/settingsPanel/inputEditor/JsonEditor.svelte +1 -1
- package/components/apps/editor/settingsPanel/inputEditor/JsonEditor.svelte.d.ts +2 -0
- package/components/apps/gridUtils.d.ts +1 -3
- package/components/apps/gridUtils.js +1 -15
- package/components/apps/rx.d.ts +7 -5
- package/components/apps/rx.js +37 -19
- package/components/apps/svelte-grid/Grid.svelte +167 -0
- package/components/apps/svelte-grid/Grid.svelte.d.ts +45 -0
- package/components/apps/svelte-grid/LICENSE +23 -0
- package/components/apps/svelte-grid/MoveResize.svelte +328 -0
- package/components/apps/svelte-grid/MoveResize.svelte.d.ts +46 -0
- package/components/apps/svelte-grid/types.d.ts +21 -0
- package/components/apps/svelte-grid/utils/container.d.ts +1 -0
- package/components/apps/svelte-grid/utils/container.js +4 -0
- package/components/apps/svelte-grid/utils/helper.d.ts +10 -0
- package/components/apps/svelte-grid/utils/helper.js +36 -0
- package/components/apps/svelte-grid/utils/item.d.ts +14 -0
- package/components/apps/svelte-grid/utils/item.js +192 -0
- package/components/apps/svelte-grid/utils/matrix.d.ts +6 -0
- package/components/apps/svelte-grid/utils/matrix.js +53 -0
- package/components/apps/svelte-grid/utils/other.d.ts +3 -0
- package/components/apps/svelte-grid/utils/other.js +30 -0
- package/components/apps/types.d.ts +19 -14
- package/components/apps/utils.d.ts +1 -1
- package/components/apps/utils.js +15 -9
- package/components/common/CloseButton.svelte +18 -0
- package/components/common/CloseButton.svelte.d.ts +27 -0
- package/components/common/badge/Badge.svelte +6 -1
- package/components/common/badge/Badge.svelte.d.ts +1 -0
- package/components/common/button/Button.svelte.d.ts +1 -1
- package/components/common/button/ButtonPopup.svelte.d.ts +1 -1
- package/components/common/drawer/DrawerContent.svelte +2 -6
- package/components/common/languageIcons/JavaScript.svelte +11 -0
- package/components/common/languageIcons/JavaScript.svelte.d.ts +25 -0
- package/components/common/languageIcons/LanguageIcon.svelte +3 -1
- package/components/common/languageIcons/LanguageIcon.svelte.d.ts +1 -1
- package/components/common/menu/Menu.svelte +1 -1
- package/components/common/menu/Menu.svelte.d.ts +1 -1
- package/components/common/popup/Popup.svelte +2 -1
- package/components/common/popup/Popup.svelte.d.ts +9 -0
- package/components/common/table/AppRow.svelte +1 -4
- package/components/common/table/FlowRow.svelte +1 -4
- package/components/common/table/ScriptRow.svelte +1 -4
- package/components/common/tabs/Tab.svelte +1 -0
- package/components/common/tabs/Tab.svelte.d.ts +2 -0
- package/components/flows/pickers/FlowScriptPicker.svelte.d.ts +1 -1
- package/components/graph/FlowGraph.svelte +1 -1
- package/components/propertyPicker/ObjectViewer.svelte +1 -1
- package/components/propertyPicker/PropPicker.svelte +4 -1
- package/components/sidebar/SidebarContent.svelte +2 -2
- package/consts.js +1 -1
- package/history.js +8 -1
- package/package.json +24 -28
- package/utils.js +0 -1
- package/components/apps/editor/AppComponentInputs.svelte +0 -13
- package/components/apps/editor/AppComponentInputs.svelte.d.ts +0 -20
- package/components/apps/editor/settingsPanel/MoveToOtherGrid.svelte +0 -92
- package/components/apps/editor/settingsPanel/MoveToOtherGrid.svelte.d.ts +0 -18
- package/components/graph/svelvet/d3/controllers/README.md +0 -3
- package/components/graph/svelvet/d3/controllers/d3Old.d.ts +0 -1
- package/components/graph/svelvet/d3/controllers/d3Old.js +0 -43
- package/components/graph/svelvet/docs/CHANGELOG.md +0 -145
- package/components/graph/svelvet/docs/DESIGN_PATTERNS.md +0 -44
- package/components/graph/svelvet/docs/DOCUMENTATION.md +0 -5
- package/components/graph/svelvet/docs/README.md +0 -34
- package/components/graph/svelvet/docs/TODO.md +0 -14
- package/components/graph/svelvet/docs/Tutorials.md +0 -25
- package/components/graph/svelvet/docs/images/css-background-after.png +0 -0
- package/components/graph/svelvet/docs/images/css-background-before.png +0 -0
- package/components/graph/svelvet/docs/images/custom-edges-after.png +0 -0
- package/components/graph/svelvet/docs/images/custom-edges-before.png +0 -0
- package/components/graph/svelvet/docs/images/custom-nodes-after.png +0 -0
- package/components/graph/svelvet/docs/images/custom-nodes-before.png +0 -0
- package/components/graph/svelvet/docs/images/custom-svelte-components-after.png +0 -0
- package/components/graph/svelvet/docs/images/custom-svelte-components-before.png +0 -0
- package/components/graph/svelvet/docs/images/html-docs-after.png +0 -0
- package/components/graph/svelvet/docs/images/html-docs-before.png +0 -0
- package/components/graph/svelvet/docs/images/minimap-after.png +0 -0
- package/components/graph/svelvet/docs/images/minimap-before.png +0 -0
- package/components/graph/svelvet/docs/images/node-classes-after.png +0 -0
- package/components/graph/svelvet/docs/images/node-classes-before.png +0 -0
- package/components/graph/svelvet/docs/images/node-create-after.png +0 -0
- package/components/graph/svelvet/docs/images/node-create-before.png +0 -0
|
@@ -9,6 +9,7 @@ import ToggleButtonGroup from '../../common/toggleButton/ToggleButtonGroup.svelt
|
|
|
9
9
|
import DisplayResult from '../../DisplayResult.svelte';
|
|
10
10
|
import Dropdown from '../../Dropdown.svelte';
|
|
11
11
|
import FlowProgressBar from '../../flows/FlowProgressBar.svelte';
|
|
12
|
+
import { idMutex } from '../../flows/flowStateUtils';
|
|
12
13
|
import FlowStatusViewer from '../../FlowStatusViewer.svelte';
|
|
13
14
|
import JobArgs from '../../JobArgs.svelte';
|
|
14
15
|
import LogViewer from '../../LogViewer.svelte';
|
|
@@ -173,7 +174,11 @@ let job = undefined;
|
|
|
173
174
|
let testIsLoading = false;
|
|
174
175
|
$: selectedJobId && testJobLoader?.watchJob(selectedJobId);
|
|
175
176
|
$: hasErrors = Object.keys($errorByComponent).length > 0;
|
|
177
|
+
let lock = false;
|
|
176
178
|
function onKeyDown(event) {
|
|
179
|
+
if (lock)
|
|
180
|
+
return;
|
|
181
|
+
lock = true;
|
|
177
182
|
switch (event.key) {
|
|
178
183
|
case 'Z':
|
|
179
184
|
if (event.ctrlKey) {
|
|
@@ -212,6 +217,7 @@ function onKeyDown(event) {
|
|
|
212
217
|
// break
|
|
213
218
|
// }
|
|
214
219
|
}
|
|
220
|
+
lock = false;
|
|
215
221
|
}
|
|
216
222
|
</script>
|
|
217
223
|
|
|
@@ -417,12 +423,12 @@ function onKeyDown(event) {
|
|
|
417
423
|
<ToggleButton position="left" value="dnd" size="xs">
|
|
418
424
|
<div class="inline-flex gap-1 items-center">
|
|
419
425
|
<Pencil size={14} />
|
|
420
|
-
<span class="hidden
|
|
426
|
+
<span class="hidden lg:inline">Editor</span>
|
|
421
427
|
</div>
|
|
422
428
|
</ToggleButton>
|
|
423
429
|
<ToggleButton position="right" value="preview" size="xs">
|
|
424
430
|
<div class="inline-flex gap-1 items-center">
|
|
425
|
-
<Eye size={14} /> <span class="hidden
|
|
431
|
+
<Eye size={14} /> <span class="hidden lg:inline">Preview</span>
|
|
426
432
|
</div>
|
|
427
433
|
</ToggleButton>
|
|
428
434
|
</ToggleButtonGroup>
|
|
@@ -439,42 +445,46 @@ function onKeyDown(event) {
|
|
|
439
445
|
</div>
|
|
440
446
|
|
|
441
447
|
<div class="hidden lg:block">
|
|
442
|
-
|
|
443
|
-
<
|
|
444
|
-
<
|
|
445
|
-
<
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
<
|
|
454
|
-
|
|
455
|
-
|
|
448
|
+
{#if $app}
|
|
449
|
+
<ToggleButtonGroup bind:selected={$app.fullscreen}>
|
|
450
|
+
<ToggleButton position="left" value={false} size="xs">
|
|
451
|
+
<div class="flex gap-1 justify-start items-center">
|
|
452
|
+
<AlignHorizontalSpaceAround size={14} />
|
|
453
|
+
<Tooltip light class="mb-0.5">
|
|
454
|
+
The max width is 1168px and the content stay centered instead of taking the full
|
|
455
|
+
page width
|
|
456
|
+
</Tooltip>
|
|
457
|
+
</div>
|
|
458
|
+
</ToggleButton>
|
|
459
|
+
<ToggleButton position="right" value={true} size="xs">
|
|
460
|
+
<Expand size={14} />
|
|
461
|
+
</ToggleButton>
|
|
462
|
+
</ToggleButtonGroup>
|
|
463
|
+
{/if}
|
|
456
464
|
</div>
|
|
457
465
|
</div>
|
|
458
466
|
{#if $focusedGrid !== undefined}
|
|
459
|
-
<
|
|
460
|
-
<
|
|
461
|
-
<div
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
467
|
+
<div class="hidden lg:block">
|
|
468
|
+
<Badge color="indigo">
|
|
469
|
+
<div class="flex flex-row gap-2 justify-center items-center">
|
|
470
|
+
<div>{`Sub grid: ${$focusedGrid.parentComponentId} (${$focusedGrid.subGridIndex})`}</div>
|
|
471
|
+
<button
|
|
472
|
+
on:click={() => {
|
|
473
|
+
$selectedComponent = undefined
|
|
474
|
+
$focusedGrid = undefined
|
|
475
|
+
}}
|
|
476
|
+
>
|
|
477
|
+
<X size={14} />
|
|
478
|
+
</button>
|
|
479
|
+
</div>
|
|
480
|
+
</Badge>
|
|
481
|
+
</div>
|
|
472
482
|
{/if}
|
|
473
483
|
|
|
474
484
|
<div class="flex flex-row gap-2 justify-end items-center overflow-visible">
|
|
475
485
|
<Dropdown
|
|
476
486
|
placement="bottom-end"
|
|
477
|
-
btnClasses="
|
|
487
|
+
btnClasses="hidden lg:block"
|
|
478
488
|
dropdownItems={[
|
|
479
489
|
{
|
|
480
490
|
displayName: 'JSON',
|
|
@@ -499,9 +509,7 @@ function onKeyDown(event) {
|
|
|
499
509
|
}
|
|
500
510
|
}
|
|
501
511
|
]}
|
|
502
|
-
|
|
503
|
-
<MoreVertical size={20} />
|
|
504
|
-
</Dropdown>
|
|
512
|
+
/>
|
|
505
513
|
<span class="hidden md:inline">
|
|
506
514
|
<Button on:click={() => (inputsDrawerOpen = true)} color="light" size="xs" variant="border">
|
|
507
515
|
<span class="flex gap-2">
|
|
@@ -518,7 +526,7 @@ function onKeyDown(event) {
|
|
|
518
526
|
variant="border"
|
|
519
527
|
startIcon={{ icon: faBug }}
|
|
520
528
|
>
|
|
521
|
-
<span class="hidden
|
|
529
|
+
<span class="hidden xl:inline">Debug Runs</span>
|
|
522
530
|
</Button>
|
|
523
531
|
</span>
|
|
524
532
|
<AppExportButton bind:this={appExport} />
|
|
@@ -529,7 +537,7 @@ function onKeyDown(event) {
|
|
|
529
537
|
variant="border"
|
|
530
538
|
startIcon={{ icon: faExternalLink }}
|
|
531
539
|
>
|
|
532
|
-
<span class="hidden
|
|
540
|
+
<span class="hidden xl:inline">Publish</span>
|
|
533
541
|
</Button>
|
|
534
542
|
{#if appPath == ''}
|
|
535
543
|
<Button
|
|
@@ -1,10 +1,15 @@
|
|
|
1
|
-
<script>import {
|
|
1
|
+
<script>import { setContext } from 'svelte';
|
|
2
2
|
import { writable } from 'svelte/store';
|
|
3
3
|
import { buildWorld } from '../rx';
|
|
4
|
-
import GridEditor from './GridEditor.svelte';
|
|
5
4
|
import { classNames } from '../../../utils';
|
|
6
5
|
import Button from '../../common/button/Button.svelte';
|
|
7
6
|
import { Unlock } from 'lucide-svelte';
|
|
7
|
+
import RecomputeAllComponents from './RecomputeAllComponents.svelte';
|
|
8
|
+
import GridViewer from './GridViewer.svelte';
|
|
9
|
+
import { Component } from './component';
|
|
10
|
+
import { twMerge } from 'tailwind-merge';
|
|
11
|
+
import { columnConfiguration } from '../gridUtils';
|
|
12
|
+
import { HiddenComponent } from '../components';
|
|
8
13
|
export let app;
|
|
9
14
|
export let appPath;
|
|
10
15
|
export let breakpoint;
|
|
@@ -16,8 +21,6 @@ export let context;
|
|
|
16
21
|
export let noBackend = false;
|
|
17
22
|
export let isLocked = false;
|
|
18
23
|
const appStore = writable(app);
|
|
19
|
-
const worldStore = writable(undefined);
|
|
20
|
-
const staticOutputs = writable({});
|
|
21
24
|
const selectedComponent = writable(undefined);
|
|
22
25
|
const mode = writable('preview');
|
|
23
26
|
const connectingInput = writable({
|
|
@@ -26,9 +29,9 @@ const connectingInput = writable({
|
|
|
26
29
|
hoveredComponent: undefined
|
|
27
30
|
});
|
|
28
31
|
const runnableComponents = writable({});
|
|
32
|
+
const parentWidth = writable(0);
|
|
29
33
|
setContext('AppViewerContext', {
|
|
30
|
-
worldStore,
|
|
31
|
-
staticOutputs,
|
|
34
|
+
worldStore: buildWorld(context),
|
|
32
35
|
app: appStore,
|
|
33
36
|
summary: writable(summary),
|
|
34
37
|
selectedComponent,
|
|
@@ -47,23 +50,20 @@ setContext('AppViewerContext', {
|
|
|
47
50
|
openDebugRun: writable(undefined),
|
|
48
51
|
focusedGrid: writable(undefined),
|
|
49
52
|
stateId: writable(0),
|
|
50
|
-
parentWidth
|
|
53
|
+
parentWidth,
|
|
54
|
+
state: writable({}),
|
|
55
|
+
componentControl: writable({})
|
|
51
56
|
});
|
|
52
57
|
setContext('AppEditorContext', {
|
|
53
58
|
history: undefined,
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
});
|
|
57
|
-
let mounted = false;
|
|
58
|
-
onMount(() => {
|
|
59
|
-
mounted = true;
|
|
59
|
+
pickVariableCallback: writable(undefined),
|
|
60
|
+
ontextfocus: writable(undefined)
|
|
60
61
|
});
|
|
61
62
|
let ncontext = context;
|
|
62
63
|
function hashchange(e) {
|
|
63
64
|
ncontext.hash = e.newURL.split('#')[1];
|
|
64
65
|
ncontext = ncontext;
|
|
65
66
|
}
|
|
66
|
-
$: mounted && ($worldStore = buildWorld($staticOutputs, $worldStore, ncontext));
|
|
67
67
|
$: width = $breakpoint === 'sm' ? 'max-w-[640px]' : 'w-full ';
|
|
68
68
|
$: lockedClasses = isLocked ? '!max-h-[400px] overflow-hidden pointer-events-none' : '';
|
|
69
69
|
</script>
|
|
@@ -79,9 +79,48 @@ $: lockedClasses = isLocked ? '!max-h-[400px] overflow-hidden pointer-events-non
|
|
|
79
79
|
>
|
|
80
80
|
{#if $appStore.grid}
|
|
81
81
|
<div class={classNames('mx-auto', width)}>
|
|
82
|
-
<
|
|
82
|
+
<div
|
|
83
|
+
class="w-full sticky top-0 flex justify-between border-b bg-gray-50 px-4 py-1 items-center gap-4"
|
|
84
|
+
style="z-index: 1000;"
|
|
85
|
+
>
|
|
86
|
+
<h2 class="truncate">{summary}</h2>
|
|
87
|
+
<RecomputeAllComponents />
|
|
88
|
+
<div class="text-2xs text-gray-600">
|
|
89
|
+
{policy.on_behalf_of ? `on behalf of ${policy.on_behalf_of_email}` : ''}
|
|
90
|
+
</div>
|
|
91
|
+
</div>
|
|
83
92
|
</div>
|
|
84
93
|
{/if}
|
|
94
|
+
<div
|
|
95
|
+
style={app.css?.['app']?.['grid']?.style}
|
|
96
|
+
class={twMerge('px-4 pt-4 pb-2 overflow-visible', app.css?.['app']?.['grid']?.class ?? '')}
|
|
97
|
+
bind:clientWidth={$parentWidth}
|
|
98
|
+
>
|
|
99
|
+
<div>
|
|
100
|
+
<GridViewer
|
|
101
|
+
onTopId={$selectedComponent}
|
|
102
|
+
items={app.grid}
|
|
103
|
+
let:dataItem
|
|
104
|
+
rowHeight={36}
|
|
105
|
+
cols={columnConfiguration}
|
|
106
|
+
gap={[4, 2]}
|
|
107
|
+
>
|
|
108
|
+
<!-- svelte-ignore a11y-click-events-have-key-events -->
|
|
109
|
+
<div
|
|
110
|
+
class={'h-full w-full center-center'}
|
|
111
|
+
on:pointerdown={() => ($selectedComponent = dataItem.data.id)}
|
|
112
|
+
>
|
|
113
|
+
<Component
|
|
114
|
+
render={true}
|
|
115
|
+
pointerdown={false}
|
|
116
|
+
component={dataItem.data}
|
|
117
|
+
selected={false}
|
|
118
|
+
locked={true}
|
|
119
|
+
/>
|
|
120
|
+
</div>
|
|
121
|
+
</GridViewer>
|
|
122
|
+
</div>
|
|
123
|
+
</div>
|
|
85
124
|
</div>
|
|
86
125
|
|
|
87
126
|
{#if isLocked}
|
|
@@ -97,3 +136,17 @@ $: lockedClasses = isLocked ? '!max-h-[400px] overflow-hidden pointer-events-non
|
|
|
97
136
|
</div>
|
|
98
137
|
{/if}
|
|
99
138
|
</div>
|
|
139
|
+
|
|
140
|
+
{#if app.hiddenInlineScripts}
|
|
141
|
+
{#each app.hiddenInlineScripts as script, index}
|
|
142
|
+
{#if script}
|
|
143
|
+
<HiddenComponent
|
|
144
|
+
id={`bg_${index}`}
|
|
145
|
+
inlineScript={script.inlineScript}
|
|
146
|
+
name={script.name}
|
|
147
|
+
fields={script.fields}
|
|
148
|
+
autoRefresh={script.autoRefresh ?? false}
|
|
149
|
+
/>
|
|
150
|
+
{/if}
|
|
151
|
+
{/each}
|
|
152
|
+
{/if}
|
|
@@ -33,13 +33,14 @@ function openDebugRuns() {
|
|
|
33
33
|
|
|
34
34
|
{#if pointerdown || selected || hover}
|
|
35
35
|
<button
|
|
36
|
-
title="Position
|
|
36
|
+
title="Lock Position"
|
|
37
37
|
class={classNames(
|
|
38
38
|
'text-gray-800 px-1 text-2xs py-0.5 font-bold w-fit shadow border border-gray-300 absolute -top-1 right-[2.5rem] z-50 cursor-pointer',
|
|
39
39
|
' hover:bg-gray-300',
|
|
40
40
|
selected ? 'bg-gray-200/80' : 'bg-gray-200/80'
|
|
41
41
|
)}
|
|
42
42
|
on:click={() => dispatch('lock')}
|
|
43
|
+
on:pointerdown|stopPropagation
|
|
43
44
|
>
|
|
44
45
|
{#if locked}
|
|
45
46
|
<Anchor aria-label="Unlock position" size={14} class="text-orange-500" />
|
|
@@ -55,6 +56,7 @@ function openDebugRuns() {
|
|
|
55
56
|
selected ? 'bg-gray-200/80' : 'bg-gray-200/80'
|
|
56
57
|
)}
|
|
57
58
|
on:click={() => dispatch('expand')}
|
|
59
|
+
on:pointerdown|stopPropagation
|
|
58
60
|
>
|
|
59
61
|
<Expand aria-label="Expand position" size={14} />
|
|
60
62
|
</button>
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
<script>import { getContext, afterUpdate
|
|
2
|
-
import Grid from '@windmill-labs/svelte-grid';
|
|
1
|
+
<script>import { getContext, afterUpdate } from 'svelte';
|
|
3
2
|
import { classNames } from '../../../utils';
|
|
4
|
-
import { columnConfiguration,
|
|
3
|
+
import { columnConfiguration, isFixed, toggleFixed } from '../gridUtils';
|
|
5
4
|
import { twMerge } from 'tailwind-merge';
|
|
6
5
|
import RecomputeAllComponents from './RecomputeAllComponents.svelte';
|
|
7
6
|
import HiddenComponent from '../components/helpers/HiddenComponent.svelte';
|
|
@@ -9,24 +8,10 @@ import Component from './component/Component.svelte';
|
|
|
9
8
|
import { deepEqual } from 'fast-equals';
|
|
10
9
|
import { push } from '../../../history';
|
|
11
10
|
import { expandGriditem, findGridItem } from './appUtils';
|
|
11
|
+
import Grid from '../svelte-grid/Grid.svelte';
|
|
12
12
|
export let policy;
|
|
13
|
-
const { selectedComponent, app, mode, connectingInput,
|
|
13
|
+
const { selectedComponent, app, mode, connectingInput, runnableComponents, summary, focusedGrid, parentWidth, breakpoint } = getContext('AppViewerContext');
|
|
14
14
|
const { history } = getContext('AppEditorContext');
|
|
15
|
-
// The drag is disabled when the user is connecting an input
|
|
16
|
-
// or when the user is previewing the app
|
|
17
|
-
// or when the focused grid is a subgrid
|
|
18
|
-
$: setAllDrags($mode === 'preview' || $connectingInput.opened);
|
|
19
|
-
function setAllDrags(enable) {
|
|
20
|
-
const fct = enable ? disableDrag : enableDrag;
|
|
21
|
-
$app.grid.map((gridItem) => {
|
|
22
|
-
const disabledGridItem = fct(gridItem);
|
|
23
|
-
if (disabledGridItem?.data?.subGrids) {
|
|
24
|
-
disabledGridItem.data.subGrids = disabledGridItem.data.subGrids.map((subgrid) => subgrid?.map((subgridItem) => fct(subgridItem)) ?? []);
|
|
25
|
-
}
|
|
26
|
-
return disabledGridItem;
|
|
27
|
-
});
|
|
28
|
-
Object.values($app.subgrids ?? {}).map((subgrid) => subgrid?.map((subgridItem) => fct(subgridItem)) ?? []);
|
|
29
|
-
}
|
|
30
15
|
function removeGridElement(component) {
|
|
31
16
|
if (component) {
|
|
32
17
|
$app.grid = $app.grid.filter((gridComponent) => {
|
|
@@ -47,20 +32,16 @@ function removeGridElement(component) {
|
|
|
47
32
|
}
|
|
48
33
|
return gridComponent.data.id !== component?.id;
|
|
49
34
|
});
|
|
50
|
-
// Delete static inputs
|
|
51
|
-
delete $staticOutputs[component.id];
|
|
52
|
-
$staticOutputs = $staticOutputs;
|
|
53
35
|
delete $runnableComponents[component.id];
|
|
54
36
|
$runnableComponents = $runnableComponents;
|
|
55
37
|
$selectedComponent = undefined;
|
|
56
38
|
}
|
|
57
39
|
}
|
|
58
40
|
function selectComponent(id) {
|
|
59
|
-
// Component selection is handled manually in the Map component (pointerdown
|
|
60
|
-
// event propagation is stopped to enable paning).
|
|
61
|
-
// Update the 'selectComponent()' function as well when this is updated.
|
|
62
41
|
if (!$connectingInput.opened) {
|
|
63
|
-
$selectedComponent
|
|
42
|
+
if ($selectedComponent !== id) {
|
|
43
|
+
$selectedComponent = id;
|
|
44
|
+
}
|
|
64
45
|
$focusedGrid = undefined;
|
|
65
46
|
}
|
|
66
47
|
}
|
|
@@ -128,62 +109,62 @@ afterUpdate(() => {
|
|
|
128
109
|
<div class={!$focusedGrid && $mode !== 'preview' ? 'border-gray-400 border border-dashed' : ''}>
|
|
129
110
|
<Grid
|
|
130
111
|
onTopId={$selectedComponent}
|
|
131
|
-
|
|
132
|
-
|
|
112
|
+
items={$app.grid}
|
|
113
|
+
on:redraw={(e) => {
|
|
114
|
+
push(history, $app)
|
|
115
|
+
$app.grid = e.detail
|
|
116
|
+
}}
|
|
133
117
|
let:dataItem
|
|
134
118
|
rowHeight={36}
|
|
135
119
|
cols={columnConfiguration}
|
|
136
120
|
fastStart={true}
|
|
137
121
|
gap={[4, 2]}
|
|
138
122
|
>
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
{
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
</div>
|
|
185
|
-
{/if}
|
|
186
|
-
{/each}
|
|
123
|
+
<!-- svelte-ignore a11y-click-events-have-key-events -->
|
|
124
|
+
{#if $connectingInput.opened}
|
|
125
|
+
<div
|
|
126
|
+
on:pointerenter={() => ($connectingInput.hoveredComponent = dataItem.id)}
|
|
127
|
+
on:pointerleave={() => ($connectingInput.hoveredComponent = undefined)}
|
|
128
|
+
class="absolute w-full h-full bg-black border-2 bg-opacity-25 z-20 flex justify-center items-center"
|
|
129
|
+
/>
|
|
130
|
+
<div
|
|
131
|
+
style="transform: translate(-50%, -50%);"
|
|
132
|
+
class="absolute w-fit justify-center bg-indigo-500/90 left-[50%] top-[50%] z-50 px-6 rounded border text-white py-2 text-5xl center-center"
|
|
133
|
+
>
|
|
134
|
+
{dataItem.data.id}
|
|
135
|
+
</div>
|
|
136
|
+
{/if}
|
|
137
|
+
<!-- svelte-ignore a11y-click-events-have-key-events -->
|
|
138
|
+
<div
|
|
139
|
+
on:click|stopPropagation
|
|
140
|
+
on:pointerdown={() => selectComponent(dataItem.data.id)}
|
|
141
|
+
class={classNames(
|
|
142
|
+
'h-full w-full center-center',
|
|
143
|
+
$selectedComponent === dataItem.data.id ? 'active-grid-item' : ''
|
|
144
|
+
)}
|
|
145
|
+
>
|
|
146
|
+
<Component
|
|
147
|
+
render={true}
|
|
148
|
+
{pointerdown}
|
|
149
|
+
component={dataItem.data}
|
|
150
|
+
selected={$selectedComponent === dataItem.data.id}
|
|
151
|
+
locked={isFixed(dataItem)}
|
|
152
|
+
on:delete={() => removeGridElement(dataItem.data)}
|
|
153
|
+
on:lock={() => {
|
|
154
|
+
const gridItem = findGridItem($app, dataItem.data.id)
|
|
155
|
+
if (gridItem) {
|
|
156
|
+
toggleFixed(gridItem)
|
|
157
|
+
}
|
|
158
|
+
$app = $app
|
|
159
|
+
}}
|
|
160
|
+
on:expand={() => {
|
|
161
|
+
push(history, $app)
|
|
162
|
+
$selectedComponent = dataItem.data.id
|
|
163
|
+
expandGriditem($app.grid, dataItem, $breakpoint)
|
|
164
|
+
$app = $app
|
|
165
|
+
}}
|
|
166
|
+
/>
|
|
167
|
+
</div>
|
|
187
168
|
</Grid>
|
|
188
169
|
</div>
|
|
189
170
|
</div>
|
|
@@ -197,7 +178,7 @@ afterUpdate(() => {
|
|
|
197
178
|
inlineScript={script.inlineScript}
|
|
198
179
|
name={script.name}
|
|
199
180
|
fields={script.fields}
|
|
200
|
-
|
|
181
|
+
autoRefresh={script.autoRefresh ?? false}
|
|
201
182
|
/>
|
|
202
183
|
{/if}
|
|
203
184
|
{/each}
|
|
@@ -3,9 +3,10 @@ import ComponentPanel from './settingsPanel/ComponentPanel.svelte';
|
|
|
3
3
|
const { selectedComponent } = getContext('AppViewerContext');
|
|
4
4
|
export let gridItems;
|
|
5
5
|
export let parent;
|
|
6
|
+
//$: sortedItems = gridItems.sort((a, b) => a.id.localeCompare - b.id)
|
|
6
7
|
</script>
|
|
7
8
|
|
|
8
|
-
{#each gridItems as gridItem
|
|
9
|
+
{#each gridItems as gridItem (gridItem.id)}
|
|
9
10
|
{#if gridItem?.data?.id === $selectedComponent}
|
|
10
11
|
<ComponentPanel {parent} bind:component={gridItem.data} />
|
|
11
12
|
{:else if gridItem?.data?.type === 'tablecomponent'}
|
|
@@ -18,6 +19,7 @@ export let parent;
|
|
|
18
19
|
bind:component={actionButton}
|
|
19
20
|
duplicateMoveAllowed={false}
|
|
20
21
|
onDelete={() => {
|
|
22
|
+
//@ts-ignore
|
|
21
23
|
gridItem.data.actionButtons = gridItem.data.actionButtons.filter(
|
|
22
24
|
(c) => c.id !== actionButton.id
|
|
23
25
|
)
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
<script>import { onMount, createEventDispatcher } from 'svelte';
|
|
2
|
+
import { getColumn, throttle } from '../svelte-grid/utils/other';
|
|
3
|
+
import { getContainerHeight } from '../svelte-grid/utils/container';
|
|
4
|
+
import { specifyUndefinedColumns } from '../svelte-grid/utils/item';
|
|
5
|
+
const dispatch = createEventDispatcher();
|
|
6
|
+
export let items;
|
|
7
|
+
export let rowHeight;
|
|
8
|
+
export let cols;
|
|
9
|
+
export let gap = [10, 10];
|
|
10
|
+
export let throttleUpdate = 100;
|
|
11
|
+
export let onTopId = undefined;
|
|
12
|
+
export let containerWidth = undefined;
|
|
13
|
+
export let parentWidth = undefined;
|
|
14
|
+
let getComputedCols;
|
|
15
|
+
let container;
|
|
16
|
+
$: [gapX, gapY] = gap;
|
|
17
|
+
let xPerPx = 0;
|
|
18
|
+
let yPerPx = rowHeight;
|
|
19
|
+
$: containerHeight = getContainerHeight(items, yPerPx, getComputedCols);
|
|
20
|
+
const onResize = throttle(() => {
|
|
21
|
+
items = specifyUndefinedColumns(items, getComputedCols, cols);
|
|
22
|
+
dispatch('resize', {
|
|
23
|
+
cols: getComputedCols,
|
|
24
|
+
xPerPx,
|
|
25
|
+
yPerPx,
|
|
26
|
+
width: containerWidth
|
|
27
|
+
});
|
|
28
|
+
}, throttleUpdate);
|
|
29
|
+
onMount(() => {
|
|
30
|
+
const sizeObserver = new ResizeObserver((entries) => {
|
|
31
|
+
requestAnimationFrame(() => {
|
|
32
|
+
let width = entries[0].contentRect.width;
|
|
33
|
+
if (width === containerWidth)
|
|
34
|
+
return;
|
|
35
|
+
getComputedCols = getColumn(parentWidth ?? width, cols);
|
|
36
|
+
xPerPx = width / getComputedCols;
|
|
37
|
+
if (!containerWidth) {
|
|
38
|
+
items = specifyUndefinedColumns(items, getComputedCols, cols);
|
|
39
|
+
dispatch('mount', {
|
|
40
|
+
cols: getComputedCols,
|
|
41
|
+
xPerPx,
|
|
42
|
+
yPerPx // same as rowHeight
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
onResize();
|
|
47
|
+
}
|
|
48
|
+
containerWidth = width;
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
sizeObserver.observe(container);
|
|
52
|
+
return () => sizeObserver.disconnect();
|
|
53
|
+
});
|
|
54
|
+
</script>
|
|
55
|
+
|
|
56
|
+
<div class="svlt-grid-container" style="height: {containerHeight}px" bind:this={container}>
|
|
57
|
+
{#if xPerPx}
|
|
58
|
+
{#each items as item (item.id)}
|
|
59
|
+
{@const onTop = item.id == onTopId}
|
|
60
|
+
{@const width =
|
|
61
|
+
Math.min(getComputedCols, item[getComputedCols] && item[getComputedCols].w) * xPerPx -
|
|
62
|
+
gapX * 2}
|
|
63
|
+
{@const height = (item[getComputedCols] && item[getComputedCols].h) * yPerPx - gapY * 2}
|
|
64
|
+
{@const top = (item[getComputedCols] && item[getComputedCols].y) * yPerPx + gapY}
|
|
65
|
+
{@const left = (item[getComputedCols] && item[getComputedCols].x) * xPerPx + gapX}
|
|
66
|
+
<div
|
|
67
|
+
class="svlt-grid-item"
|
|
68
|
+
style="width: {width}px; height:{height}px; {onTop
|
|
69
|
+
? 'z-index: 1000;'
|
|
70
|
+
: ''} top: {top}px; left: {left}px;"
|
|
71
|
+
>
|
|
72
|
+
{#if item[getComputedCols]}
|
|
73
|
+
<slot dataItem={item} item={item[getComputedCols]} />
|
|
74
|
+
{/if}
|
|
75
|
+
</div>
|
|
76
|
+
{/each}
|
|
77
|
+
{/if}
|
|
78
|
+
</div>
|
|
79
|
+
|
|
80
|
+
<style>
|
|
81
|
+
.svlt-grid-container {
|
|
82
|
+
position: relative;
|
|
83
|
+
width: 100%;
|
|
84
|
+
}
|
|
85
|
+
.svlt-grid-item {
|
|
86
|
+
touch-action: none;
|
|
87
|
+
position: absolute;
|
|
88
|
+
will-change: auto;
|
|
89
|
+
backface-visibility: hidden;
|
|
90
|
+
-webkit-backface-visibility: hidden;
|
|
91
|
+
}</style>
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
import type { FilledItem } from '../svelte-grid/types';
|
|
3
|
+
declare class __sveltets_Render<T> {
|
|
4
|
+
props(): {
|
|
5
|
+
items: FilledItem<T>[];
|
|
6
|
+
rowHeight: number;
|
|
7
|
+
cols: [number, number][];
|
|
8
|
+
gap?: number[] | undefined;
|
|
9
|
+
throttleUpdate?: number | undefined;
|
|
10
|
+
onTopId?: string | undefined;
|
|
11
|
+
containerWidth?: number | undefined;
|
|
12
|
+
parentWidth?: number | undefined;
|
|
13
|
+
};
|
|
14
|
+
events(): {
|
|
15
|
+
resize: CustomEvent<any>;
|
|
16
|
+
mount: CustomEvent<any>;
|
|
17
|
+
} & {
|
|
18
|
+
[evt: string]: CustomEvent<any>;
|
|
19
|
+
};
|
|
20
|
+
slots(): {
|
|
21
|
+
default: {
|
|
22
|
+
dataItem: FilledItem<T>;
|
|
23
|
+
item: Required<import("../svelte-grid/types").ItemLayout>;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export type GridViewerProps<T> = ReturnType<__sveltets_Render<T>['props']>;
|
|
28
|
+
export type GridViewerEvents<T> = ReturnType<__sveltets_Render<T>['events']>;
|
|
29
|
+
export type GridViewerSlots<T> = ReturnType<__sveltets_Render<T>['slots']>;
|
|
30
|
+
export default class GridViewer<T> extends SvelteComponentTyped<GridViewerProps<T>, GridViewerEvents<T>, GridViewerSlots<T>> {
|
|
31
|
+
}
|
|
32
|
+
export {};
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { ChevronDown, RefreshCw } from 'lucide-svelte';
|
|
3
3
|
import { getContext, onMount } from 'svelte';
|
|
4
4
|
import Button from '../../common/button/Button.svelte';
|
|
5
|
-
const { runnableComponents } = getContext('AppViewerContext');
|
|
5
|
+
const { runnableComponents, app } = getContext('AppViewerContext');
|
|
6
6
|
let loading = false;
|
|
7
7
|
let timeout = undefined;
|
|
8
8
|
let interval = undefined;
|
|
@@ -29,6 +29,12 @@ function setInter(inter) {
|
|
|
29
29
|
function refresh() {
|
|
30
30
|
loading = true;
|
|
31
31
|
Promise.all(Object.keys($runnableComponents).map((id) => {
|
|
32
|
+
if (id.startsWith('bg_')) {
|
|
33
|
+
let index = parseInt(id.split('_')[1]);
|
|
34
|
+
if (!$app.hiddenInlineScripts[index]?.autoRefresh) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
32
38
|
return $runnableComponents?.[id]?.();
|
|
33
39
|
})).finally(() => {
|
|
34
40
|
loading = false;
|