windmill-components 1.79.0 → 1.82.1
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 +3 -0
- package/components/ArgInput.svelte.d.ts +1 -0
- package/components/DisplayResult.svelte +18 -15
- package/components/Multiselect.svelte.d.ts +2 -2
- package/components/SchemaEditor.svelte +15 -10
- package/components/SettingSection.svelte +1 -1
- package/components/Toggle.svelte +5 -2
- package/components/Toggle.svelte.d.ts +1 -0
- package/components/apps/components/buttons/AppButton.svelte +35 -56
- package/components/apps/components/buttons/AppButton.svelte.d.ts +2 -1
- package/components/apps/components/buttons/AppForm.svelte +24 -24
- package/components/apps/components/buttons/AppForm.svelte.d.ts +1 -1
- package/components/apps/components/buttons/AppFormButton.svelte +79 -94
- package/components/apps/components/buttons/AppFormButton.svelte.d.ts +1 -3
- package/components/apps/components/display/AppBarChart.svelte +2 -2
- package/components/apps/components/display/AppBarChart.svelte.d.ts +1 -1
- package/components/apps/components/display/AppDisplayComponent.svelte +2 -2
- package/components/apps/components/display/AppDisplayComponent.svelte.d.ts +1 -1
- package/components/apps/components/display/AppHtml.svelte +10 -2
- package/components/apps/components/display/AppHtml.svelte.d.ts +1 -1
- package/components/apps/components/display/AppIcon.svelte +4 -1
- package/components/apps/components/display/AppIcon.svelte.d.ts +1 -1
- package/components/apps/components/display/AppImage.svelte +28 -15
- package/components/apps/components/display/AppImage.svelte.d.ts +1 -1
- package/components/apps/components/display/AppMap.svelte.d.ts +1 -1
- package/components/apps/components/display/AppPdf.svelte +3 -2
- package/components/apps/components/display/AppPdf.svelte.d.ts +1 -1
- package/components/apps/components/display/AppPieChart.svelte +2 -2
- package/components/apps/components/display/AppPieChart.svelte.d.ts +1 -1
- package/components/apps/components/display/AppScatterChart.svelte +2 -2
- package/components/apps/components/display/AppScatterChart.svelte.d.ts +1 -1
- package/components/apps/components/display/AppText.svelte +35 -22
- package/components/apps/components/display/AppText.svelte.d.ts +1 -1
- package/components/apps/components/display/AppTimeseries.svelte +2 -2
- package/components/apps/components/display/AppTimeseries.svelte.d.ts +1 -1
- package/components/apps/components/display/PlotlyHtml.svelte +3 -3
- package/components/apps/components/display/VegaLiteHtml.svelte +2 -2
- package/components/apps/components/display/table/AppAggridTable.svelte +1 -1
- package/components/apps/components/display/table/AppTable.svelte +40 -17
- package/components/apps/components/display/table/AppTable.svelte.d.ts +1 -1
- package/components/apps/components/helpers/HiddenComponent.svelte +6 -3
- package/components/apps/components/helpers/HiddenComponent.svelte.d.ts +1 -1
- package/components/apps/components/helpers/InputValue.svelte +9 -9
- package/components/apps/components/helpers/Loader.svelte +18 -0
- package/components/apps/components/helpers/Loader.svelte.d.ts +18 -0
- package/components/apps/components/helpers/NonRunnableComponent.svelte +1 -12
- package/components/apps/components/helpers/ResolveConfig.svelte +29 -0
- package/components/apps/components/helpers/ResolveConfig.svelte.d.ts +21 -0
- package/components/apps/components/helpers/RunnableComponent.svelte +117 -89
- package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +14 -3
- package/components/apps/components/helpers/RunnableWrapper.svelte +50 -9
- package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +27 -2
- package/components/apps/components/inputs/AppCheckbox.svelte +1 -1
- package/components/apps/components/inputs/AppCheckbox.svelte.d.ts +1 -1
- package/components/apps/components/inputs/AppDateInput.svelte.d.ts +1 -1
- package/components/apps/components/inputs/AppFileInput.svelte.d.ts +1 -1
- package/components/apps/components/inputs/AppMultiSelect.svelte +0 -1
- package/components/apps/components/inputs/AppMultiSelect.svelte.d.ts +1 -1
- package/components/apps/components/inputs/AppNumberInput.svelte +1 -1
- package/components/apps/components/inputs/AppNumberInput.svelte.d.ts +1 -3
- package/components/apps/components/inputs/AppRangeInput.svelte +7 -1
- package/components/apps/components/inputs/AppRangeInput.svelte.d.ts +2 -1
- package/components/apps/components/inputs/AppSelect.svelte +8 -3
- package/components/apps/components/inputs/AppSelect.svelte.d.ts +1 -1
- package/components/apps/components/inputs/AppSliderInputs.svelte +7 -1
- package/components/apps/components/inputs/AppSliderInputs.svelte.d.ts +2 -1
- package/components/apps/components/inputs/AppTextInput.svelte +4 -4
- package/components/apps/components/inputs/AppTextInput.svelte.d.ts +1 -3
- package/components/apps/components/inputs/currency/AppCurrencyInput.svelte +17 -19
- package/components/apps/components/inputs/currency/AppCurrencyInput.svelte.d.ts +1 -1
- package/components/apps/components/layout/AppContainer.svelte +7 -4
- package/components/apps/components/layout/AppContainer.svelte.d.ts +1 -1
- package/components/apps/components/layout/AppDivider.svelte +4 -1
- package/components/apps/components/layout/AppDivider.svelte.d.ts +1 -1
- package/components/apps/components/layout/AppDrawer.svelte +7 -4
- package/components/apps/components/layout/AppDrawer.svelte.d.ts +1 -1
- package/components/apps/components/layout/AppSplitpanes.svelte +34 -21
- package/components/apps/components/layout/AppSplitpanes.svelte.d.ts +1 -3
- package/components/apps/components/layout/AppTabs.svelte +17 -34
- package/components/apps/components/layout/AppTabs.svelte.d.ts +1 -2
- package/components/apps/editor/AppEditor.svelte +17 -13
- package/components/apps/editor/AppEditorHeader.svelte +2 -3
- package/components/apps/editor/AppPreview.svelte +11 -17
- package/components/apps/editor/ComponentHeader.svelte +10 -8
- package/components/apps/editor/ComponentHeader.svelte.d.ts +0 -1
- package/components/apps/editor/GridEditor.svelte +21 -50
- package/components/apps/editor/GridEditor.svelte.d.ts +0 -2
- package/components/apps/editor/RecomputeAllComponents.svelte +13 -2
- package/components/apps/editor/SettingsPanel.svelte +103 -40
- package/components/apps/editor/SubGridEditor.svelte +32 -41
- package/components/apps/editor/SubGridEditor.svelte.d.ts +1 -2
- package/components/apps/editor/appUtils.d.ts +49 -7
- package/components/apps/editor/appUtils.js +133 -37
- package/components/apps/editor/component/Component.svelte +22 -11
- package/components/apps/editor/component/Component.svelte.d.ts +1 -2
- package/components/apps/editor/component/ComponentNavigation.svelte +19 -12
- package/components/apps/editor/component/README.md +4 -0
- package/components/apps/editor/component/components.d.ts +1550 -17
- package/components/apps/editor/component/components.js +295 -325
- package/components/apps/editor/component/default-codes.d.ts +1 -1
- package/components/apps/editor/component/default-codes.js +25 -25
- package/components/apps/editor/componentsPanel/ComponentList.svelte +18 -3
- package/components/apps/editor/componentsPanel/CssProperty.svelte +92 -50
- package/components/apps/editor/componentsPanel/CssProperty.svelte.d.ts +8 -3
- package/components/apps/editor/componentsPanel/CssSettings.svelte +48 -90
- package/components/apps/editor/componentsPanel/ListItem.svelte +3 -0
- package/components/apps/editor/componentsPanel/ListItem.svelte.d.ts +2 -0
- package/components/apps/editor/componentsPanel/QuickStyleMenu.svelte +167 -0
- package/components/apps/editor/componentsPanel/QuickStyleMenu.svelte.d.ts +18 -0
- package/components/apps/editor/componentsPanel/QuickStyleProperty.svelte +130 -0
- package/components/apps/editor/componentsPanel/QuickStyleProperty.svelte.d.ts +21 -0
- package/components/apps/editor/componentsPanel/quickStyleProperties.d.ts +535 -0
- package/components/apps/editor/componentsPanel/quickStyleProperties.js +595 -0
- package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte +1 -1
- package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +146 -130
- package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +2 -1
- package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorPanel.svelte +31 -3
- package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorPanel.svelte.d.ts +1 -0
- package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +42 -76
- package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte +67 -17
- package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte.d.ts +1 -3
- package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelWithTable.svelte +27 -0
- package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelWithTable.svelte.d.ts +17 -0
- package/components/apps/editor/inlineScriptsPanel/utils.d.ts +2 -0
- package/components/apps/editor/inlineScriptsPanel/utils.js +6 -5
- package/components/apps/editor/settingsPanel/AlignmentEditor.svelte +10 -2
- package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +37 -31
- package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte.d.ts +4 -104
- package/components/apps/editor/settingsPanel/ComponentPanel.svelte +113 -67
- package/components/apps/editor/settingsPanel/ComponentPanel.svelte.d.ts +5 -3
- package/components/apps/editor/settingsPanel/GridTab.svelte +0 -1
- package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +99 -80
- package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte.d.ts +8 -0
- package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +25 -2
- package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte.d.ts +1 -0
- package/components/apps/editor/settingsPanel/OneOfInputSpecsEditor.svelte +52 -0
- package/components/apps/editor/settingsPanel/OneOfInputSpecsEditor.svelte.d.ts +28 -0
- package/components/apps/editor/settingsPanel/SelectedRunnable.svelte +70 -26
- package/components/apps/editor/settingsPanel/SelectedRunnable.svelte.d.ts +2 -0
- package/components/apps/editor/settingsPanel/StylePanel.svelte +23 -0
- package/components/apps/editor/settingsPanel/StylePanel.svelte.d.ts +17 -0
- package/components/apps/editor/settingsPanel/SubTypeEditor.svelte +7 -5
- package/components/apps/editor/settingsPanel/SubTypeEditor.svelte.d.ts +3 -2
- package/components/apps/editor/settingsPanel/TableActions.svelte +8 -63
- package/components/apps/editor/settingsPanel/inputEditor/ColorInput.svelte +12 -12
- package/components/apps/editor/settingsPanel/inputEditor/ColorInput.svelte.d.ts +3 -4
- package/components/apps/editor/settingsPanel/inputEditor/ConnectedInputEditor.svelte +3 -1
- package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte.d.ts +2 -4
- package/components/apps/editor/settingsPanel/inputEditor/RunnableInputEditor.svelte +5 -5
- package/components/apps/editor/settingsPanel/inputEditor/RunnableInputEditor.svelte.d.ts +2 -0
- package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +48 -32
- package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte.d.ts +8 -2
- package/components/apps/editor/settingsPanel/inputEditor/TabSelectInput.svelte +46 -0
- package/components/apps/editor/settingsPanel/inputEditor/TabSelectInput.svelte.d.ts +20 -0
- package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +7 -0
- package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte.d.ts +1 -0
- package/components/apps/editor/settingsPanel/secondaryMenu/SecondaryMenu.svelte +47 -0
- package/components/apps/editor/settingsPanel/secondaryMenu/SecondaryMenu.svelte.d.ts +14 -0
- package/components/apps/editor/settingsPanel/secondaryMenu/index.d.ts +2 -0
- package/components/apps/editor/settingsPanel/secondaryMenu/index.js +2 -0
- package/components/apps/editor/settingsPanel/secondaryMenu/menuStore.d.ts +12 -0
- package/components/apps/editor/settingsPanel/secondaryMenu/menuStore.js +10 -0
- package/components/apps/editor/settingsPanel/triggerLists/BackgroundScriptTriggerList.svelte +20 -70
- package/components/apps/editor/settingsPanel/triggerLists/BackgroundScriptTriggerList.svelte.d.ts +1 -0
- package/components/apps/editor/settingsPanel/triggerLists/ComponentTriggerList.svelte +14 -8
- package/components/apps/editor/settingsPanel/triggerLists/ComponentTriggerList.svelte.d.ts +5 -1
- package/components/apps/editor/settingsPanel/triggerLists/TriggerBadgesList.svelte +85 -27
- package/components/apps/editor/settingsPanel/triggerLists/TriggerBadgesList.svelte.d.ts +4 -6
- package/components/apps/gridUtils.js +1 -1
- package/components/apps/inputType.d.ts +12 -16
- package/components/apps/rx.d.ts +2 -0
- package/components/apps/rx.js +8 -2
- package/components/apps/svelte-grid/Grid.svelte +0 -4
- package/components/apps/svelte-grid/Grid.svelte.d.ts +1 -1
- package/components/apps/svelte-grid/MoveResize.svelte +24 -30
- package/components/apps/svelte-grid/MoveResize.svelte.d.ts +0 -4
- package/components/apps/svelte-grid/types.d.ts +1 -7
- package/components/apps/svelte-grid/utils/helper.js +6 -10
- package/components/apps/types.d.ts +22 -22
- package/components/apps/utils.d.ts +2 -2
- package/components/apps/utils.js +13 -11
- package/components/common/button/ButtonPopup.svelte +5 -2
- package/components/common/button/ButtonPopup.svelte.d.ts +5 -1
- package/components/common/button/ButtonPopupItem.svelte +2 -1
- package/components/common/button/ButtonPopupItem.svelte.d.ts +1 -0
- package/components/common/clearableInput/ClearableInput.svelte +56 -0
- package/components/common/clearableInput/ClearableInput.svelte.d.ts +28 -0
- package/components/common/index.d.ts +1 -0
- package/components/common/index.js +1 -0
- package/components/common/kbd/Kbd.svelte +4 -1
- package/components/common/kbd/Kbd.svelte.d.ts +6 -14
- package/components/common/menu/Menu.svelte +8 -2
- package/components/common/menu/Menu.svelte.d.ts +4 -1
- package/components/common/modal/AlwaysMountedModal.svelte +109 -0
- package/components/common/modal/AlwaysMountedModal.svelte.d.ts +22 -0
- package/components/common/skeleton/Skeleton.svelte +1 -1
- package/components/flows/flowStateUtils.js +8 -1
- package/package.json +672 -659
- package/utils.d.ts +1 -0
- package/utils.js +3 -0
- package/components/apps/editor/GridPanel.svelte +0 -31
- package/components/apps/editor/GridPanel.svelte.d.ts +0 -18
- package/components/apps/editor/componentsPanel/componentStaticValues.d.ts +0 -12
- package/components/apps/editor/componentsPanel/componentStaticValues.js +0 -25
|
@@ -6,18 +6,19 @@ import { getAllScriptNames } from '../../utils';
|
|
|
6
6
|
import PanelSection from '../settingsPanel/common/PanelSection.svelte';
|
|
7
7
|
import { getAppScripts } from './utils';
|
|
8
8
|
const PREFIX = 'script-selector-';
|
|
9
|
-
export let selectedScriptComponentId = undefined;
|
|
10
9
|
const { app, selectedComponent } = getContext('AppViewerContext');
|
|
10
|
+
const { selectedComponentInEditor } = getContext('AppEditorContext');
|
|
11
11
|
function selectScript(id) {
|
|
12
|
-
|
|
12
|
+
$selectedComponentInEditor = id;
|
|
13
13
|
if (!id.startsWith('unused-') || !id.startsWith('bg_')) {
|
|
14
|
-
$selectedComponent =
|
|
14
|
+
$selectedComponent = $selectedComponentInEditor.split('_transformer')[0];
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
$: runnables = getAppScripts($app.grid, $app.subgrids);
|
|
18
18
|
// When selected component changes, update selectedScriptComponentId
|
|
19
|
-
$: if ($selectedComponent !=
|
|
20
|
-
|
|
19
|
+
$: if ($selectedComponent != $selectedComponentInEditor &&
|
|
20
|
+
!$selectedComponentInEditor?.includes('_transformer')) {
|
|
21
|
+
$selectedComponentInEditor = $selectedComponent;
|
|
21
22
|
}
|
|
22
23
|
function createBackgroundScript() {
|
|
23
24
|
let index = 0;
|
|
@@ -33,6 +34,7 @@ function createBackgroundScript() {
|
|
|
33
34
|
$app.hiddenInlineScripts.push({
|
|
34
35
|
name: newScriptPath,
|
|
35
36
|
inlineScript: undefined,
|
|
37
|
+
autoRefresh: true,
|
|
36
38
|
fields: {}
|
|
37
39
|
});
|
|
38
40
|
$app.hiddenInlineScripts = $app.hiddenInlineScripts;
|
|
@@ -47,11 +49,11 @@ function createBackgroundScript() {
|
|
|
47
49
|
<div class="flex flex-col gap-2 w-full">
|
|
48
50
|
{#if runnables.inline.length > 0}
|
|
49
51
|
<div class="flex gap-1 flex-col ">
|
|
50
|
-
{#each runnables.inline as { name, id }, index (index)}
|
|
52
|
+
{#each runnables.inline as { name, id, transformer }, index (index)}
|
|
51
53
|
<button
|
|
52
54
|
id={PREFIX + id}
|
|
53
|
-
class="
|
|
54
|
-
|
|
55
|
+
class="panel-item
|
|
56
|
+
{$selectedComponentInEditor === id ? 'border-blue-500 bg-blue-100' : 'hover:bg-blue-50'}"
|
|
55
57
|
on:click={() => selectScript(id)}
|
|
56
58
|
>
|
|
57
59
|
<span class="text-2xs truncate">{name}</span>
|
|
@@ -59,6 +61,20 @@ function createBackgroundScript() {
|
|
|
59
61
|
<Badge color="dark-indigo">{id}</Badge>
|
|
60
62
|
</div>
|
|
61
63
|
</button>
|
|
64
|
+
{#if transformer}
|
|
65
|
+
<div class="w-full pl-4">
|
|
66
|
+
<button
|
|
67
|
+
id={PREFIX + id + '_transformer'}
|
|
68
|
+
class="border flex gap-1 truncate font-normal justify-between w-full items-center px-2 py-0.5 rounded-sm duration-200;
|
|
69
|
+
{$selectedComponentInEditor === id + '_transformer'
|
|
70
|
+
? 'border-blue-500 bg-blue-100'
|
|
71
|
+
: 'hover:bg-blue-50'}"
|
|
72
|
+
on:click={() => selectScript(id + '_transformer')}
|
|
73
|
+
>
|
|
74
|
+
<span class="text-2xs truncate">Transformer</span>
|
|
75
|
+
</button>
|
|
76
|
+
</div>
|
|
77
|
+
{/if}
|
|
62
78
|
{/each}
|
|
63
79
|
</div>
|
|
64
80
|
{/if}
|
|
@@ -68,8 +84,8 @@ function createBackgroundScript() {
|
|
|
68
84
|
{@const id = `unused-${index}`}
|
|
69
85
|
<button
|
|
70
86
|
id={PREFIX + id}
|
|
71
|
-
class="
|
|
72
|
-
{
|
|
87
|
+
class="panel-item
|
|
88
|
+
{$selectedComponentInEditor === id ? 'border-blue-500 bg-blue-100' : 'hover:bg-blue-50'}"
|
|
73
89
|
on:click={() => selectScript(id)}
|
|
74
90
|
>
|
|
75
91
|
<span class="text-2xs truncate">{unusedInlineScript.name}</span>
|
|
@@ -88,16 +104,30 @@ function createBackgroundScript() {
|
|
|
88
104
|
<div class="text-sm font-semibold truncate mb-1"> Workspace/Hub </div>
|
|
89
105
|
<div class="flex flex-col gap-1 w-full">
|
|
90
106
|
{#if runnables.imported.length > 0}
|
|
91
|
-
{#each runnables.imported as { name, id }, index (index)}
|
|
107
|
+
{#each runnables.imported as { name, id, transformer }, index (index)}
|
|
92
108
|
<button
|
|
93
109
|
id={PREFIX + id}
|
|
94
|
-
class="
|
|
95
|
-
{
|
|
110
|
+
class="panel-item
|
|
111
|
+
{$selectedComponentInEditor === id ? 'border-blue-500 bg-blue-100' : 'hover:bg-blue-50'}"
|
|
96
112
|
on:click={() => selectScript(id)}
|
|
97
113
|
>
|
|
98
114
|
<span class="text-2xs truncate">{name}</span>
|
|
99
115
|
<Badge color="dark-indigo">{id}</Badge>
|
|
100
116
|
</button>
|
|
117
|
+
{#if transformer}
|
|
118
|
+
<div class="w-full pl-4">
|
|
119
|
+
<button
|
|
120
|
+
id={PREFIX + id + '_transformer'}
|
|
121
|
+
class="border flex gap-1 truncate font-normal justify-between w-full items-center px-2 py-0.5 rounded-sm duration-200;
|
|
122
|
+
{$selectedComponentInEditor === id + '_transformer'
|
|
123
|
+
? 'border-blue-500 bg-blue-100'
|
|
124
|
+
: 'hover:bg-blue-50'}"
|
|
125
|
+
on:click={() => selectScript(id + '_transformer')}
|
|
126
|
+
>
|
|
127
|
+
<span class="text-2xs truncate">Transformer</span>
|
|
128
|
+
</button>
|
|
129
|
+
</div>
|
|
130
|
+
{/if}
|
|
101
131
|
{/each}
|
|
102
132
|
{:else}
|
|
103
133
|
<div class="text-xs text-gray-500">No imported scripts/flows</div>
|
|
@@ -106,8 +136,8 @@ function createBackgroundScript() {
|
|
|
106
136
|
</div>
|
|
107
137
|
|
|
108
138
|
<div>
|
|
109
|
-
<div class="w-full flex justify-between items-center">
|
|
110
|
-
<div class="text-sm font-semibold truncate
|
|
139
|
+
<div class="w-full flex justify-between items-center mb-1">
|
|
140
|
+
<div class="text-sm font-semibold truncate">
|
|
111
141
|
Background scripts
|
|
112
142
|
<Tooltip class="mb-0.5">
|
|
113
143
|
Background scripts are triggered upon global refresh or when their input changes. The
|
|
@@ -132,8 +162,8 @@ function createBackgroundScript() {
|
|
|
132
162
|
{@const id = `bg_${index}`}
|
|
133
163
|
<button
|
|
134
164
|
id={PREFIX + id}
|
|
135
|
-
class="
|
|
136
|
-
{
|
|
165
|
+
class="panel-item
|
|
166
|
+
{$selectedComponentInEditor === id ? 'border-blue-500 bg-blue-100' : 'hover:bg-blue-50'}"
|
|
137
167
|
on:click={() => selectScript(id)}
|
|
138
168
|
>
|
|
139
169
|
<span class="text-2xs truncate">{name}</span>
|
|
@@ -147,3 +177,23 @@ function createBackgroundScript() {
|
|
|
147
177
|
</div>
|
|
148
178
|
</div>
|
|
149
179
|
</PanelSection>
|
|
180
|
+
|
|
181
|
+
<style>
|
|
182
|
+
.panel-item {
|
|
183
|
+
display: flex;
|
|
184
|
+
width: 100%;
|
|
185
|
+
align-items: center;
|
|
186
|
+
justify-content: space-between;
|
|
187
|
+
gap: 0.25rem;
|
|
188
|
+
overflow: hidden;
|
|
189
|
+
text-overflow: ellipsis;
|
|
190
|
+
white-space: nowrap;
|
|
191
|
+
border-radius: 0.125rem;
|
|
192
|
+
border-width: 1px;
|
|
193
|
+
padding-top: 0.25rem;
|
|
194
|
+
padding-bottom: 0.25rem;
|
|
195
|
+
padding-left: 0.5rem;
|
|
196
|
+
padding-right: 0.5rem;
|
|
197
|
+
font-weight: 400;
|
|
198
|
+
transition-duration: 200ms
|
|
199
|
+
}</style>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<script>import { getContext } from 'svelte';
|
|
2
|
+
import InlineScriptEditorPanel from './InlineScriptEditorPanel.svelte';
|
|
3
|
+
const { selectedComponentInEditor } = getContext('AppEditorContext');
|
|
4
|
+
export let gridItem;
|
|
5
|
+
</script>
|
|
6
|
+
|
|
7
|
+
{#if gridItem?.data?.id === $selectedComponentInEditor || gridItem?.data?.id + '_transformer' === $selectedComponentInEditor}
|
|
8
|
+
<InlineScriptEditorPanel
|
|
9
|
+
defaultUserInput={gridItem.data?.type == 'formcomponent' ||
|
|
10
|
+
gridItem?.data?.type == 'formbuttoncomponent'}
|
|
11
|
+
id={gridItem.data.id}
|
|
12
|
+
transformer={$selectedComponentInEditor?.endsWith('_transformer')}
|
|
13
|
+
bind:componentInput={gridItem.data.componentInput}
|
|
14
|
+
/>
|
|
15
|
+
{/if}
|
|
16
|
+
|
|
17
|
+
{#if gridItem?.data?.type === 'tablecomponent'}
|
|
18
|
+
{#each gridItem.data.actionButtons as actionButton, index (index)}
|
|
19
|
+
{#if actionButton?.id === $selectedComponentInEditor || actionButton?.id + '_transformer' === $selectedComponentInEditor}
|
|
20
|
+
<InlineScriptEditorPanel
|
|
21
|
+
id={actionButton.id}
|
|
22
|
+
transformer={$selectedComponentInEditor?.endsWith('_transformer')}
|
|
23
|
+
bind:componentInput={actionButton.componentInput}
|
|
24
|
+
/>
|
|
25
|
+
{/if}
|
|
26
|
+
{/each}
|
|
27
|
+
{/if}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
import type { GridItem } from '../../types';
|
|
3
|
+
declare const __propDef: {
|
|
4
|
+
props: {
|
|
5
|
+
gridItem: GridItem;
|
|
6
|
+
};
|
|
7
|
+
events: {
|
|
8
|
+
[evt: string]: CustomEvent<any>;
|
|
9
|
+
};
|
|
10
|
+
slots: {};
|
|
11
|
+
};
|
|
12
|
+
export type InlineScriptsPanelWithTableProps = typeof __propDef.props;
|
|
13
|
+
export type InlineScriptsPanelWithTableEvents = typeof __propDef.events;
|
|
14
|
+
export type InlineScriptsPanelWithTableSlots = typeof __propDef.slots;
|
|
15
|
+
export default class InlineScriptsPanelWithTable extends SvelteComponentTyped<InlineScriptsPanelWithTableProps, InlineScriptsPanelWithTableEvents, InlineScriptsPanelWithTableSlots> {
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
@@ -5,10 +5,12 @@ export interface AppScriptsList {
|
|
|
5
5
|
inline: {
|
|
6
6
|
name: string;
|
|
7
7
|
id: string;
|
|
8
|
+
transformer: boolean;
|
|
8
9
|
}[];
|
|
9
10
|
imported: {
|
|
10
11
|
name: string;
|
|
11
12
|
id: string;
|
|
13
|
+
transformer: boolean;
|
|
12
14
|
}[];
|
|
13
15
|
}
|
|
14
16
|
export declare function computeFields(schema: Schema, defaultUserInput: boolean, fields: AppInputs): Record<string, import("../../inputType").StaticAppInput>;
|
|
@@ -37,17 +37,17 @@ function processGridItemRunnable(gridItem, list) {
|
|
|
37
37
|
if (actionButton.componentInput?.type !== 'runnable') {
|
|
38
38
|
return;
|
|
39
39
|
}
|
|
40
|
-
processRunnable(actionButton.componentInput.runnable, actionButton.id, list);
|
|
40
|
+
processRunnable(actionButton.componentInput.runnable, actionButton.componentInput.transformer, actionButton.id, list);
|
|
41
41
|
});
|
|
42
42
|
}
|
|
43
43
|
if (componentInput?.type === 'runnable') {
|
|
44
|
-
processRunnable(componentInput.runnable, gridItem.id, list);
|
|
44
|
+
processRunnable(componentInput.runnable, componentInput.transformer, gridItem.id, list);
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
return list;
|
|
48
48
|
}
|
|
49
49
|
export function getAppScripts(grid, subgrids) {
|
|
50
|
-
const scriptsList = grid.reduce((acc, gridComponent) => processGridItemRunnable(gridComponent, acc), { inline: [], imported: [] });
|
|
50
|
+
const scriptsList = grid.reduce((acc, gridComponent) => processGridItemRunnable(gridComponent, acc), { inline: [], imported: [], transformer: false });
|
|
51
51
|
if (subgrids) {
|
|
52
52
|
Object.values(subgrids).forEach((subgrid) => {
|
|
53
53
|
subgrid.forEach((subgridComponent) => {
|
|
@@ -57,13 +57,14 @@ export function getAppScripts(grid, subgrids) {
|
|
|
57
57
|
}
|
|
58
58
|
return scriptsList;
|
|
59
59
|
}
|
|
60
|
-
function processRunnable(runnable, id, list) {
|
|
60
|
+
function processRunnable(runnable, transformer, id, list) {
|
|
61
61
|
if (runnable?.type === undefined) {
|
|
62
62
|
return;
|
|
63
63
|
}
|
|
64
64
|
const type = runnable.type === 'runnableByPath' ? 'imported' : 'inline';
|
|
65
65
|
list[type].push({
|
|
66
66
|
name: runnable[runnable.type === 'runnableByPath' ? 'path' : 'name'],
|
|
67
|
-
id
|
|
67
|
+
id,
|
|
68
|
+
transformer: transformer !== undefined
|
|
68
69
|
});
|
|
69
70
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
<script>import { ToggleButton, ToggleButtonGroup } from '../../../common';
|
|
2
2
|
import { AlignCenterHorizontal, AlignCenterVertical, AlignEndHorizontal, AlignEndVertical, AlignStartHorizontal, AlignStartVertical } from 'lucide-svelte';
|
|
3
|
+
import { getContext } from 'svelte';
|
|
3
4
|
import PanelSection from './common/PanelSection.svelte';
|
|
5
|
+
const { app } = getContext('AppViewerContext');
|
|
4
6
|
export let component;
|
|
5
7
|
</script>
|
|
6
8
|
|
|
@@ -11,7 +13,10 @@ export let component;
|
|
|
11
13
|
<div class="flex flex-col gap-0.5">
|
|
12
14
|
<div class="text-xs font-semibold">Horizontal</div>
|
|
13
15
|
<div>
|
|
14
|
-
<ToggleButtonGroup
|
|
16
|
+
<ToggleButtonGroup
|
|
17
|
+
on:selected={() => (component = component)}
|
|
18
|
+
bind:selected={component.horizontalAlignment}
|
|
19
|
+
>
|
|
15
20
|
<ToggleButton position="left" value="left" size="xs">
|
|
16
21
|
<AlignStartVertical size={16} />
|
|
17
22
|
</ToggleButton>
|
|
@@ -29,7 +34,10 @@ export let component;
|
|
|
29
34
|
<div class="flex flex-col gap-0.5">
|
|
30
35
|
<div class="text-xs font-semibold">Vertical</div>
|
|
31
36
|
<div>
|
|
32
|
-
<ToggleButtonGroup
|
|
37
|
+
<ToggleButtonGroup
|
|
38
|
+
on:selected={() => ($app = $app)}
|
|
39
|
+
bind:selected={component.verticalAlignment}
|
|
40
|
+
>
|
|
33
41
|
<ToggleButton position="left" value="top" size="xs">
|
|
34
42
|
<AlignStartHorizontal size={16} />
|
|
35
43
|
</ToggleButton>
|
|
@@ -1,39 +1,49 @@
|
|
|
1
1
|
<script>import { Button } from '../../../common';
|
|
2
2
|
import { faPlus, faTrashAlt } from '@fortawesome/free-solid-svg-icons';
|
|
3
|
+
import { X } from 'lucide-svelte';
|
|
3
4
|
import { createEventDispatcher } from 'svelte';
|
|
4
|
-
import {
|
|
5
|
+
import { fade } from 'svelte/transition';
|
|
5
6
|
import SubTypeEditor from './SubTypeEditor.svelte';
|
|
6
7
|
export let componentInput;
|
|
8
|
+
export let subFieldType = undefined;
|
|
9
|
+
export let selectOptions = undefined;
|
|
7
10
|
const dispatch = createEventDispatcher();
|
|
8
11
|
function addElementByType() {
|
|
9
12
|
if (!Array.isArray(componentInput.value)) {
|
|
10
13
|
componentInput.value = [];
|
|
11
14
|
}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
+
let value = componentInput.value;
|
|
16
|
+
if (subFieldType) {
|
|
17
|
+
if (subFieldType === 'boolean') {
|
|
18
|
+
value.push(false);
|
|
15
19
|
}
|
|
16
|
-
else if (
|
|
17
|
-
|
|
20
|
+
else if (subFieldType === 'number') {
|
|
21
|
+
value.push(0);
|
|
18
22
|
}
|
|
19
|
-
else if (
|
|
20
|
-
|
|
23
|
+
else if (subFieldType === 'object') {
|
|
24
|
+
value.push({});
|
|
21
25
|
}
|
|
22
|
-
else if (
|
|
23
|
-
|
|
26
|
+
else if (subFieldType === 'labeledresource') {
|
|
27
|
+
value.push({ value: '', label: '' });
|
|
24
28
|
}
|
|
25
|
-
else if (
|
|
26
|
-
|
|
29
|
+
else if (subFieldType === 'tab-select') {
|
|
30
|
+
value.push({ id: '', index: 0 });
|
|
31
|
+
}
|
|
32
|
+
else if (subFieldType === 'text' ||
|
|
33
|
+
subFieldType === 'textarea' ||
|
|
27
34
|
// TODO: Add support for these types
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
35
|
+
subFieldType === 'date' ||
|
|
36
|
+
subFieldType === 'time' ||
|
|
37
|
+
subFieldType === 'datetime') {
|
|
38
|
+
value.push('');
|
|
32
39
|
}
|
|
33
|
-
else if (
|
|
34
|
-
|
|
40
|
+
else if (subFieldType === 'select' && selectOptions) {
|
|
41
|
+
value.push(selectOptions[0]);
|
|
35
42
|
}
|
|
36
43
|
}
|
|
44
|
+
else {
|
|
45
|
+
value.push('');
|
|
46
|
+
}
|
|
37
47
|
componentInput = componentInput;
|
|
38
48
|
}
|
|
39
49
|
function deleteElementByType(index) {
|
|
@@ -49,19 +59,15 @@ function deleteElementByType(index) {
|
|
|
49
59
|
{#if Array.isArray(componentInput.value)}
|
|
50
60
|
{#each componentInput.value as value, index (index)}
|
|
51
61
|
<div class="flex flex-row gap-2 items-center relative">
|
|
52
|
-
<SubTypeEditor bind:componentInput bind:value />
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
btnClasses="!text-red-500"
|
|
62
|
-
startIcon={{ icon: faTrashAlt }}
|
|
63
|
-
/>
|
|
64
|
-
</div>
|
|
62
|
+
<SubTypeEditor {subFieldType} bind:componentInput bind:value />
|
|
63
|
+
<button
|
|
64
|
+
transition:fade|local={{ duration: 100 }}
|
|
65
|
+
class="z-10 rounded-full p-1 duration-200 hover:bg-gray-200"
|
|
66
|
+
aria-label="Remove item"
|
|
67
|
+
on:click|preventDefault|stopPropagation={() => deleteElementByType(index)}
|
|
68
|
+
>
|
|
69
|
+
<X size={14} />
|
|
70
|
+
</button>
|
|
65
71
|
</div>
|
|
66
72
|
{/each}
|
|
67
73
|
{/if}
|
|
@@ -1,110 +1,10 @@
|
|
|
1
1
|
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
import type { InputType, StaticInput, StaticOptions } from '../../inputType';
|
|
2
3
|
declare const __propDef: {
|
|
3
4
|
props: {
|
|
4
|
-
componentInput:
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
format?: string | undefined;
|
|
8
|
-
fileUpload?: {
|
|
9
|
-
accept: string;
|
|
10
|
-
multiple?: boolean | undefined;
|
|
11
|
-
convertTo?: import("../../../common/fileInput/model").ReadFileAs | undefined;
|
|
12
|
-
} | undefined;
|
|
13
|
-
}) | (import("../../inputType").StaticInput<string[]> & {
|
|
14
|
-
fieldType: "array";
|
|
15
|
-
subFieldType?: "textarea" | undefined;
|
|
16
|
-
format?: string | undefined;
|
|
17
|
-
fileUpload?: {
|
|
18
|
-
accept: string;
|
|
19
|
-
multiple?: boolean | undefined;
|
|
20
|
-
convertTo?: import("../../../common/fileInput/model").ReadFileAs | undefined;
|
|
21
|
-
} | undefined;
|
|
22
|
-
}) | (import("../../inputType").StaticInput<number[]> & {
|
|
23
|
-
fieldType: "array";
|
|
24
|
-
subFieldType?: "number" | undefined;
|
|
25
|
-
format?: string | undefined;
|
|
26
|
-
fileUpload?: {
|
|
27
|
-
accept: string;
|
|
28
|
-
multiple?: boolean | undefined;
|
|
29
|
-
convertTo?: import("../../../common/fileInput/model").ReadFileAs | undefined;
|
|
30
|
-
} | undefined;
|
|
31
|
-
}) | (import("../../inputType").StaticInput<boolean[]> & {
|
|
32
|
-
fieldType: "array";
|
|
33
|
-
subFieldType?: "boolean" | undefined;
|
|
34
|
-
format?: string | undefined;
|
|
35
|
-
fileUpload?: {
|
|
36
|
-
accept: string;
|
|
37
|
-
multiple?: boolean | undefined;
|
|
38
|
-
convertTo?: import("../../../common/fileInput/model").ReadFileAs | undefined;
|
|
39
|
-
} | undefined;
|
|
40
|
-
}) | (import("../../inputType").StaticInput<string[]> & {
|
|
41
|
-
fieldType: "array";
|
|
42
|
-
subFieldType?: "date" | undefined;
|
|
43
|
-
format?: string | undefined;
|
|
44
|
-
fileUpload?: {
|
|
45
|
-
accept: string;
|
|
46
|
-
multiple?: boolean | undefined;
|
|
47
|
-
convertTo?: import("../../../common/fileInput/model").ReadFileAs | undefined;
|
|
48
|
-
} | undefined;
|
|
49
|
-
}) | (import("../../inputType").StaticInput<string[]> & {
|
|
50
|
-
fieldType: "array";
|
|
51
|
-
subFieldType?: "time" | undefined;
|
|
52
|
-
format?: string | undefined;
|
|
53
|
-
fileUpload?: {
|
|
54
|
-
accept: string;
|
|
55
|
-
multiple?: boolean | undefined;
|
|
56
|
-
convertTo?: import("../../../common/fileInput/model").ReadFileAs | undefined;
|
|
57
|
-
} | undefined;
|
|
58
|
-
}) | (import("../../inputType").StaticInput<string[]> & {
|
|
59
|
-
fieldType: "array";
|
|
60
|
-
subFieldType?: "datetime" | undefined;
|
|
61
|
-
format?: string | undefined;
|
|
62
|
-
fileUpload?: {
|
|
63
|
-
accept: string;
|
|
64
|
-
multiple?: boolean | undefined;
|
|
65
|
-
convertTo?: import("../../../common/fileInput/model").ReadFileAs | undefined;
|
|
66
|
-
} | undefined;
|
|
67
|
-
}) | (import("../../inputType").StaticInput<object[]> & {
|
|
68
|
-
fieldType: "array";
|
|
69
|
-
subFieldType?: "object" | undefined;
|
|
70
|
-
format?: string | undefined;
|
|
71
|
-
fileUpload?: {
|
|
72
|
-
accept: string;
|
|
73
|
-
multiple?: boolean | undefined;
|
|
74
|
-
convertTo?: import("../../../common/fileInput/model").ReadFileAs | undefined;
|
|
75
|
-
} | undefined;
|
|
76
|
-
}) | (import("../../inputType").StaticInput<string[]> & {
|
|
77
|
-
fieldType: "array";
|
|
78
|
-
subFieldType?: "select" | undefined;
|
|
79
|
-
format?: string | undefined;
|
|
80
|
-
fileUpload?: {
|
|
81
|
-
accept: string;
|
|
82
|
-
multiple?: boolean | undefined;
|
|
83
|
-
convertTo?: import("../../../common/fileInput/model").ReadFileAs | undefined;
|
|
84
|
-
} | undefined;
|
|
85
|
-
} & {
|
|
86
|
-
optionValuesKey: "buttonColorOptions" | "tabsKindOptions" | "buttonSizeOptions" | "tableSearchOptions" | "chartThemeOptions" | "textStyleOptions" | "currencyOptions" | "localeOptions" | "objectFitOptions" | "splitPanelOptions";
|
|
87
|
-
}) | (import("../../inputType").StaticInput<string[]> & {
|
|
88
|
-
fieldType: "array";
|
|
89
|
-
subFieldType?: "select" | undefined;
|
|
90
|
-
format?: string | undefined;
|
|
91
|
-
fileUpload?: {
|
|
92
|
-
accept: string;
|
|
93
|
-
multiple?: boolean | undefined;
|
|
94
|
-
convertTo?: import("../../../common/fileInput/model").ReadFileAs | undefined;
|
|
95
|
-
} | undefined;
|
|
96
|
-
} & {
|
|
97
|
-
optionValuesKey: "buttonColorOptions" | "tabsKindOptions" | "buttonSizeOptions" | "tableSearchOptions" | "chartThemeOptions" | "textStyleOptions" | "currencyOptions" | "localeOptions" | "objectFitOptions" | "splitPanelOptions";
|
|
98
|
-
}) | (import("../../inputType").StaticInput<object[]> & {
|
|
99
|
-
fieldType: "array";
|
|
100
|
-
subFieldType?: "labeledresource" | undefined;
|
|
101
|
-
format?: string | undefined;
|
|
102
|
-
fileUpload?: {
|
|
103
|
-
accept: string;
|
|
104
|
-
multiple?: boolean | undefined;
|
|
105
|
-
convertTo?: import("../../../common/fileInput/model").ReadFileAs | undefined;
|
|
106
|
-
} | undefined;
|
|
107
|
-
});
|
|
5
|
+
componentInput: StaticInput<any[]>;
|
|
6
|
+
subFieldType?: InputType | undefined;
|
|
7
|
+
selectOptions?: StaticOptions['selectOptions'] | undefined;
|
|
108
8
|
};
|
|
109
9
|
events: {
|
|
110
10
|
deleteArrayItem: CustomEvent<any>;
|