windmill-components 1.82.4 → 1.82.5
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/common.d.ts +2 -2
- package/components/ArgInput.svelte +72 -52
- package/components/ArgInput.svelte.d.ts +3 -1
- package/components/DisplayResult.svelte +17 -17
- package/components/Editor.svelte +3 -0
- package/components/Editor.svelte.d.ts +1 -0
- package/components/FieldHeader.svelte +1 -0
- package/components/FieldHeader.svelte.d.ts +4 -0
- package/components/FlowBuilder.svelte +0 -6
- package/components/FlowStatusViewer.svelte +4 -7
- package/components/FlowStatusViewer.svelte.d.ts +0 -1
- package/components/FlowViewer.svelte +1 -0
- package/components/InputTransformForm.svelte +1 -0
- package/components/LightweightArgInput.svelte +14 -1
- package/components/LightweightArgInput.svelte.d.ts +3 -1
- package/components/Multiselect.svelte.d.ts +2 -2
- package/components/SimpleEditor.svelte +1 -0
- package/components/SimpleEditor.svelte.d.ts +1 -0
- package/components/TemplateEditor.svelte +1 -0
- package/components/Toggle.svelte +1 -1
- package/components/Toggle.svelte.d.ts +1 -0
- package/components/apps/components/buttons/AppButton.svelte +17 -3
- package/components/apps/components/buttons/AppForm.svelte +10 -2
- package/components/apps/components/buttons/AppFormButton.svelte +82 -58
- package/components/apps/components/display/AppDisplayComponent.svelte +17 -23
- package/components/apps/components/display/AppHtml.svelte +1 -7
- package/components/apps/components/display/AppHtml.svelte.d.ts +0 -2
- package/components/apps/components/display/AppMap.svelte +1 -1
- package/components/apps/components/display/AppPdf.svelte +1 -1
- package/components/apps/components/display/PlotlyHtml.svelte +3 -20
- package/components/apps/components/display/PlotlyHtml.svelte.d.ts +0 -2
- package/components/apps/components/display/table/AppAggridTable.svelte +1 -1
- package/components/apps/components/display/table/AppTable.svelte +49 -75
- package/components/apps/components/display/table/AppTable.svelte.d.ts +1 -1
- package/components/apps/components/display/table/AppTableFooter.svelte +1 -2
- package/components/apps/components/display/table/AppTableFooter.svelte.d.ts +0 -1
- package/components/apps/components/display/table/tableOptions.js +1 -1
- package/components/apps/components/helpers/DebouncedInput.svelte +0 -1
- package/components/apps/components/helpers/DebouncedInput.svelte.d.ts +0 -2
- package/components/apps/components/helpers/HiddenComponent.svelte +2 -3
- package/components/apps/components/helpers/HiddenComponent.svelte.d.ts +1 -2
- package/components/apps/components/helpers/InputValue.svelte +3 -3
- package/components/apps/components/helpers/RefreshButton.svelte +10 -3
- package/components/apps/components/helpers/RefreshButton.svelte.d.ts +0 -1
- package/components/apps/components/helpers/RunnableComponent.svelte +15 -19
- package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +1 -2
- package/components/apps/components/helpers/RunnableWrapper.svelte +1 -3
- package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +0 -1
- package/components/apps/components/helpers/eval.d.ts +2 -4
- package/components/apps/components/helpers/eval.js +4 -6
- package/components/apps/components/inputs/AppCheckbox.svelte +4 -0
- package/components/apps/components/inputs/AppDateInput.svelte +2 -2
- package/components/apps/components/inputs/AppMultiSelect.svelte +5 -13
- package/components/apps/components/inputs/AppMultiSelect.svelte.d.ts +2 -0
- package/components/apps/components/inputs/AppNumberInput.svelte +3 -3
- package/components/apps/components/inputs/AppSelect.svelte +4 -11
- package/components/apps/components/inputs/AppSelect.svelte.d.ts +2 -0
- package/components/apps/components/inputs/AppSliderInputs.svelte +1 -1
- package/components/apps/components/inputs/AppTextInput.svelte +43 -53
- package/components/apps/components/inputs/AppTextInput.svelte.d.ts +1 -1
- package/components/apps/components/inputs/currency/AppCurrencyInput.svelte +1 -1
- package/components/apps/components/layout/AppContainer.svelte +2 -2
- package/components/apps/components/layout/AppDrawer.svelte +2 -1
- package/components/apps/components/layout/AppSplitpanes.svelte +3 -3
- package/components/apps/components/layout/AppTabs.svelte +1 -1
- package/components/apps/editor/AppEditor.svelte +21 -49
- package/components/apps/editor/AppEditorHeader.svelte +0 -5
- package/components/apps/editor/AppPreview.svelte +7 -18
- package/components/apps/editor/ComponentHeader.svelte +0 -1
- package/components/apps/editor/ComponentHeader.svelte.d.ts +1 -1
- package/components/apps/editor/GridEditor.svelte +12 -22
- package/components/apps/editor/GridViewer.svelte +2 -2
- package/components/apps/editor/GridViewer.svelte.d.ts +1 -1
- package/components/apps/editor/RecomputeAllComponents.svelte +7 -5
- package/components/apps/editor/SettingsPanel.svelte +4 -4
- package/components/apps/editor/SubGridEditor.svelte +12 -13
- package/components/apps/editor/appUtils.d.ts +0 -1
- package/components/apps/editor/appUtils.js +0 -19
- package/components/apps/editor/component/Component.svelte +8 -19
- package/components/apps/editor/component/Component.svelte.d.ts +1 -1
- package/components/apps/editor/component/ComponentNavigation.svelte +47 -57
- package/components/apps/editor/component/README.md +0 -4
- package/components/apps/editor/component/components.d.ts +28 -45
- package/components/apps/editor/component/components.js +27 -41
- package/components/apps/editor/component/sets.js +1 -2
- package/components/apps/editor/componentsPanel/ComponentList.svelte +1 -1
- package/components/apps/editor/componentsPanel/CssProperty.svelte +48 -62
- package/components/apps/editor/componentsPanel/CssProperty.svelte.d.ts +2 -3
- package/components/apps/editor/componentsPanel/CssSettings.svelte +0 -1
- package/components/apps/editor/componentsPanel/store.js +4 -4
- package/components/apps/editor/contextPanel/ComponentOutput.svelte +26 -2
- package/components/apps/editor/contextPanel/ComponentOutput.svelte.d.ts +1 -0
- package/components/apps/editor/contextPanel/ComponentOutputViewer.svelte +6 -8
- package/components/apps/editor/contextPanel/ContextPanel.svelte +14 -7
- package/components/apps/editor/contextPanel/components/BackgroundScriptOutput.svelte +25 -2
- 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 +40 -29
- package/components/apps/editor/contextPanel/components/OutputHeader.svelte.d.ts +2 -1
- package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte +7 -2
- package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte.d.ts +1 -1
- package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +11 -10
- package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorPanel.svelte +3 -4
- package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorPanel.svelte.d.ts +0 -1
- package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +1 -0
- package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte +2 -2
- package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelWithTable.svelte +0 -2
- package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +19 -22
- package/components/apps/editor/settingsPanel/ComponentPanel.svelte +13 -42
- package/components/apps/editor/settingsPanel/GridTab.svelte +2 -1
- package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +1 -2
- package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte.d.ts +0 -4
- package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +0 -1
- package/components/apps/editor/settingsPanel/SelectedRunnable.svelte +2 -1
- package/components/apps/editor/settingsPanel/TableActions.svelte +3 -3
- package/components/apps/editor/settingsPanel/inputEditor/ColorInput.svelte +12 -12
- package/components/apps/editor/settingsPanel/inputEditor/ColorInput.svelte.d.ts +2 -3
- package/components/apps/editor/settingsPanel/inputEditor/EvalInputEditor.svelte +1 -5
- package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte +3 -3
- package/components/apps/editor/settingsPanel/inputEditor/JsonEditor.svelte +2 -3
- package/components/apps/editor/settingsPanel/inputEditor/JsonEditor.svelte.d.ts +1 -4
- package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +3 -3
- package/components/apps/editor/settingsPanel/triggerLists/ComponentTriggerList.svelte +1 -1
- package/components/apps/inputType.d.ts +2 -2
- package/components/apps/rx.d.ts +2 -2
- package/components/apps/svelte-grid/Grid.svelte +34 -50
- package/components/apps/svelte-grid/Grid.svelte.d.ts +9 -14
- package/components/apps/svelte-grid/MoveResize.svelte +55 -76
- package/components/apps/svelte-grid/MoveResize.svelte.d.ts +9 -15
- package/components/apps/svelte-grid/utils/helper.d.ts +1 -0
- package/components/apps/svelte-grid/utils/helper.js +3 -0
- package/components/apps/types.d.ts +5 -9
- package/components/apps/utils.d.ts +0 -2
- package/components/apps/utils.js +1 -33
- package/components/common/button/ButtonPopup.svelte +2 -5
- package/components/common/button/ButtonPopup.svelte.d.ts +1 -5
- package/components/common/button/ButtonPopupItem.svelte +1 -2
- package/components/common/button/ButtonPopupItem.svelte.d.ts +0 -1
- package/components/common/index.d.ts +0 -1
- package/components/common/index.js +0 -1
- package/components/common/kbd/Kbd.svelte +1 -4
- package/components/common/kbd/Kbd.svelte.d.ts +14 -6
- package/components/common/menu/Menu.svelte +2 -8
- package/components/common/menu/Menu.svelte.d.ts +1 -4
- package/components/flows/map/MapItem.svelte +3 -3
- package/components/propertyPicker/ObjectViewer.svelte +3 -0
- package/components/scriptEditor/LogPanel.svelte +3 -3
- package/infer.js +1 -6
- package/package.json +2 -11
- package/utils.d.ts +0 -1
- package/utils.js +0 -3
- package/components/apps/editor/componentsPanel/QuickStyleMenu.svelte +0 -170
- package/components/apps/editor/componentsPanel/QuickStyleMenu.svelte.d.ts +0 -18
- package/components/apps/editor/componentsPanel/QuickStyleProperty.svelte +0 -130
- package/components/apps/editor/componentsPanel/QuickStyleProperty.svelte.d.ts +0 -21
- package/components/apps/editor/componentsPanel/quickStyleProperties.d.ts +0 -535
- package/components/apps/editor/componentsPanel/quickStyleProperties.js +0 -598
- package/components/apps/editor/settingsPanel/StylePanel.svelte +0 -61
- package/components/apps/editor/settingsPanel/StylePanel.svelte.d.ts +0 -17
- package/components/apps/editor/settingsPanel/secondaryMenu/SecondaryMenu.svelte +0 -47
- package/components/apps/editor/settingsPanel/secondaryMenu/SecondaryMenu.svelte.d.ts +0 -14
- package/components/apps/editor/settingsPanel/secondaryMenu/index.d.ts +0 -2
- package/components/apps/editor/settingsPanel/secondaryMenu/index.js +0 -2
- package/components/apps/editor/settingsPanel/secondaryMenu/menuStore.d.ts +0 -12
- package/components/apps/editor/settingsPanel/secondaryMenu/menuStore.js +0 -10
- package/components/common/clearableInput/ClearableInput.svelte +0 -56
- package/components/common/clearableInput/ClearableInput.svelte.d.ts +0 -28
- package/components/common/modal/AlwaysMountedModal.svelte +0 -109
- package/components/common/modal/AlwaysMountedModal.svelte.d.ts +0 -22
|
@@ -35,22 +35,14 @@ function handleItems() {
|
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
$: value && outputs?.result.set(value.map((v) => v.value));
|
|
38
|
-
$: css = concatCustomCss($app.css?.
|
|
38
|
+
$: css = concatCustomCss($app.css?.selectcomponent, customCss);
|
|
39
39
|
</script>
|
|
40
40
|
|
|
41
41
|
<InputValue {id} input={configuration.items} bind:value={labels} />
|
|
42
42
|
<InputValue {id} input={configuration.placeholder} bind:value={placeholder} />
|
|
43
43
|
|
|
44
44
|
<AlignWrapper {render} {horizontalAlignment} {verticalAlignment}>
|
|
45
|
-
<div
|
|
46
|
-
class="app-select w-full"
|
|
47
|
-
style="height: 100%; overflow: auto;"
|
|
48
|
-
on:pointerdown={(e) => {
|
|
49
|
-
if (!e.shiftKey) {
|
|
50
|
-
e.stopPropagation()
|
|
51
|
-
}
|
|
52
|
-
}}
|
|
53
|
-
>
|
|
45
|
+
<div class="app-select w-full mx-0.5" style="height: 34px" on:pointerdown|stopPropagation>
|
|
54
46
|
{#if !value || Array.isArray(value)}
|
|
55
47
|
<Select
|
|
56
48
|
--border-radius="0"
|
|
@@ -59,18 +51,18 @@ $: css = concatCustomCss($app.css?.multiselectcomponent, customCss);
|
|
|
59
51
|
on:change={(e) => e.stopPropagation()}
|
|
60
52
|
{items}
|
|
61
53
|
inputStyles={SELECT_INPUT_DEFAULT_STYLE.inputStyles}
|
|
62
|
-
containerStyles={'border-color: #999;
|
|
54
|
+
containerStyles={'border-color: #999;' +
|
|
63
55
|
SELECT_INPUT_DEFAULT_STYLE.containerStyles +
|
|
64
56
|
css?.input?.style}
|
|
65
57
|
bind:value
|
|
66
58
|
{placeholder}
|
|
67
59
|
on:click={() => {
|
|
68
60
|
if (!$connectingInput.opened) {
|
|
69
|
-
$selectedComponent =
|
|
61
|
+
$selectedComponent = id
|
|
70
62
|
}
|
|
71
63
|
}}
|
|
72
64
|
on:focus={() => {
|
|
73
|
-
$selectedComponent =
|
|
65
|
+
$selectedComponent = id
|
|
74
66
|
}}
|
|
75
67
|
floatingConfig={{
|
|
76
68
|
strategy: 'fixed'
|
|
@@ -35,10 +35,10 @@ $: css = concatCustomCss($app.css?.numberinputcomponent, customCss);
|
|
|
35
35
|
|
|
36
36
|
<AlignWrapper {render} {verticalAlignment}>
|
|
37
37
|
<input
|
|
38
|
-
on:pointerdown|stopPropagation={() => ($selectedComponent =
|
|
39
|
-
on:focus={() => ($selectedComponent =
|
|
38
|
+
on:pointerdown|stopPropagation={() => ($selectedComponent = id)}
|
|
39
|
+
on:focus={() => ($selectedComponent = id)}
|
|
40
40
|
class={twMerge(
|
|
41
|
-
'windmillapp w-full py-1.5 text-sm focus:ring-indigo-100 px-2',
|
|
41
|
+
'windmillapp w-full py-1.5 text-sm focus:ring-indigo-100 px-2 mx-0.5',
|
|
42
42
|
css?.input?.class ?? ''
|
|
43
43
|
)}
|
|
44
44
|
style={css?.input?.style ?? ''}
|
|
@@ -43,6 +43,7 @@ function handleItems() {
|
|
|
43
43
|
}
|
|
44
44
|
function onChange(e) {
|
|
45
45
|
e?.stopPropagation();
|
|
46
|
+
window.dispatchEvent(new Event('pointerup'));
|
|
46
47
|
if (create) {
|
|
47
48
|
listItems = listItems.map((i) => {
|
|
48
49
|
delete i.created;
|
|
@@ -87,15 +88,7 @@ let filterText = '';
|
|
|
87
88
|
<InputValue {id} input={configuration.create} bind:value={create} />
|
|
88
89
|
|
|
89
90
|
<AlignWrapper {render} {horizontalAlignment} {verticalAlignment}>
|
|
90
|
-
<div
|
|
91
|
-
class="app-select w-full"
|
|
92
|
-
style="height: 34px;"
|
|
93
|
-
on:pointerdown={(e) => {
|
|
94
|
-
if (!e.shiftKey) {
|
|
95
|
-
e.stopPropagation()
|
|
96
|
-
}
|
|
97
|
-
}}
|
|
98
|
-
>
|
|
91
|
+
<div class="app-select w-full mx-0.5" style="height: 34px;" on:pointerdown|stopPropagation>
|
|
99
92
|
<Select
|
|
100
93
|
--border-radius="0"
|
|
101
94
|
--border-color="#999"
|
|
@@ -112,11 +105,11 @@ let filterText = '';
|
|
|
112
105
|
{placeholder}
|
|
113
106
|
on:click={() => {
|
|
114
107
|
if (!$connectingInput.opened) {
|
|
115
|
-
$selectedComponent =
|
|
108
|
+
$selectedComponent = id
|
|
116
109
|
}
|
|
117
110
|
}}
|
|
118
111
|
on:focus={() => {
|
|
119
|
-
$selectedComponent =
|
|
112
|
+
$selectedComponent = id
|
|
120
113
|
}}
|
|
121
114
|
floatingConfig={{
|
|
122
115
|
strategy: 'fixed'
|
|
@@ -59,7 +59,7 @@ $: if (css && slider && lastStyle !== css?.handle?.style) {
|
|
|
59
59
|
class="grow"
|
|
60
60
|
style="--range-handle-focus: {'#7e9abd'}; --range-handle: {'#7e9abd'}; {css?.bar?.style ??
|
|
61
61
|
''}"
|
|
62
|
-
on:pointerdown|stopPropagation={() => ($selectedComponent =
|
|
62
|
+
on:pointerdown|stopPropagation={() => ($selectedComponent = id)}
|
|
63
63
|
>
|
|
64
64
|
<RangeSlider bind:slider bind:values {step} min={+min} max={+max} />
|
|
65
65
|
</div>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script>import { getContext } from 'svelte';
|
|
2
2
|
import { twMerge } from 'tailwind-merge';
|
|
3
3
|
import { initOutput } from '../../editor/appUtils';
|
|
4
|
-
import { concatCustomCss
|
|
4
|
+
import { concatCustomCss } from '../../utils';
|
|
5
5
|
import AlignWrapper from '../helpers/AlignWrapper.svelte';
|
|
6
6
|
import InputValue from '../helpers/InputValue.svelte';
|
|
7
7
|
export let id;
|
|
@@ -29,55 +29,45 @@ $: css = concatCustomCss($app.css?.[appCssKey], customCss);
|
|
|
29
29
|
<InputValue {id} input={configuration.placeholder} bind:value={placeholder} />
|
|
30
30
|
<InputValue {id} input={configuration.defaultValue} bind:value={defaultValue} />
|
|
31
31
|
|
|
32
|
-
{
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
)}
|
|
75
|
-
style={css?.input?.style ?? ''}
|
|
76
|
-
on:pointerdown|stopPropagation={(e) => selectId(e, id, selectedComponent, $app)}
|
|
77
|
-
type="email"
|
|
78
|
-
bind:value
|
|
79
|
-
{placeholder}
|
|
80
|
-
/>
|
|
81
|
-
{/if}
|
|
82
|
-
</AlignWrapper>
|
|
83
|
-
{/if}
|
|
32
|
+
<AlignWrapper {render} {verticalAlignment}>
|
|
33
|
+
{#if inputType === 'password'}
|
|
34
|
+
<input
|
|
35
|
+
class={twMerge(
|
|
36
|
+
'windmillapp w-full py-1.5 text-sm focus:ring-indigo-100 px-2 mx-0.5',
|
|
37
|
+
css?.input?.class ?? ''
|
|
38
|
+
)}
|
|
39
|
+
style={css?.input?.style ?? ''}
|
|
40
|
+
on:focus|stopPropagation={() => ($selectedComponent = id)}
|
|
41
|
+
on:pointerdown|stopPropagation={() => ($selectedComponent = id)}
|
|
42
|
+
type="password"
|
|
43
|
+
bind:value
|
|
44
|
+
{placeholder}
|
|
45
|
+
/>
|
|
46
|
+
{:else if inputType === 'text'}
|
|
47
|
+
<input
|
|
48
|
+
class={twMerge(
|
|
49
|
+
'windmillapp w-full py-1.5 text-sm focus:ring-indigo-100 px-2 mx-0.5',
|
|
50
|
+
css?.input?.class ?? ''
|
|
51
|
+
)}
|
|
52
|
+
style={css?.input?.style ?? ''}
|
|
53
|
+
on:focus={() => ($selectedComponent = id)}
|
|
54
|
+
on:pointerdown|stopPropagation={() => ($selectedComponent = id)}
|
|
55
|
+
type="text"
|
|
56
|
+
bind:value
|
|
57
|
+
{placeholder}
|
|
58
|
+
/>
|
|
59
|
+
{:else if inputType === 'email'}
|
|
60
|
+
<input
|
|
61
|
+
class={twMerge(
|
|
62
|
+
'windmillapp w-full py-1.5 text-sm focus:ring-indigo-100 px-2 mx-0.5',
|
|
63
|
+
css?.input?.class ?? ''
|
|
64
|
+
)}
|
|
65
|
+
style={css?.input?.style ?? ''}
|
|
66
|
+
on:focus={() => ($selectedComponent = id)}
|
|
67
|
+
on:pointerdown|stopPropagation={() => ($selectedComponent = id)}
|
|
68
|
+
type="email"
|
|
69
|
+
bind:value
|
|
70
|
+
{placeholder}
|
|
71
|
+
/>
|
|
72
|
+
{/if}
|
|
73
|
+
</AlignWrapper>
|
|
@@ -7,7 +7,7 @@ declare const __propDef: {
|
|
|
7
7
|
inputType?: string | undefined;
|
|
8
8
|
verticalAlignment?: 'top' | 'center' | 'bottom' | undefined;
|
|
9
9
|
customCss?: ComponentCustomCSS<'textinputcomponent'> | undefined;
|
|
10
|
-
appCssKey?: "textinputcomponent" | "
|
|
10
|
+
appCssKey?: "textinputcomponent" | "passwordinputcomponent" | "emailinputcomponent" | undefined;
|
|
11
11
|
render: boolean;
|
|
12
12
|
};
|
|
13
13
|
events: {
|
|
@@ -40,7 +40,7 @@ $: css = concatCustomCss($app.css?.currencycomponent, customCss);
|
|
|
40
40
|
{#key isNegativeAllowed}
|
|
41
41
|
{#key locale}
|
|
42
42
|
{#key currency}
|
|
43
|
-
<div class="w-full" on:pointerdown|stopPropagation={() => ($selectedComponent =
|
|
43
|
+
<div class="w-full" on:pointerdown|stopPropagation={() => ($selectedComponent = id)}>
|
|
44
44
|
<CurrencyInput
|
|
45
45
|
inputClasses={{
|
|
46
46
|
formatted: twMerge('px-2 w-full py-1.5 windmillapp', css?.input?.class),
|
|
@@ -15,6 +15,7 @@ function onFocus() {
|
|
|
15
15
|
subGridIndex: 0
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
|
+
$: $selectedComponent === id && onFocus();
|
|
18
19
|
$: css = concatCustomCss($app.css?.containercomponent, customCss);
|
|
19
20
|
</script>
|
|
20
21
|
|
|
@@ -28,8 +29,7 @@ $: css = concatCustomCss($app.css?.containercomponent, customCss);
|
|
|
28
29
|
subGridId={`${id}-0`}
|
|
29
30
|
containerHeight={componentContainerHeight}
|
|
30
31
|
on:focus={() => {
|
|
31
|
-
$selectedComponent =
|
|
32
|
-
onFocus()
|
|
32
|
+
$selectedComponent = id
|
|
33
33
|
}}
|
|
34
34
|
/>
|
|
35
35
|
{/if}
|
|
@@ -38,6 +38,7 @@ $: css = concatCustomCss($app.css?.containercomponent, customCss);
|
|
|
38
38
|
{disabled}
|
|
39
39
|
on:pointerdown={(e) => {
|
|
40
40
|
e?.stopPropagation()
|
|
41
|
+
window.dispatchEvent(new Event('pointerup'))
|
|
41
42
|
}}
|
|
42
43
|
on:click={async (e) => {
|
|
43
44
|
$focusedGrid = {
|
|
@@ -79,7 +80,7 @@ $: css = concatCustomCss($app.css?.containercomponent, customCss);
|
|
|
79
80
|
subGridId={`${id}-0`}
|
|
80
81
|
containerHeight={1200}
|
|
81
82
|
on:focus={() => {
|
|
82
|
-
$selectedComponent =
|
|
83
|
+
$selectedComponent = id
|
|
83
84
|
}}
|
|
84
85
|
/>
|
|
85
86
|
{/if}
|
|
@@ -19,7 +19,7 @@ function onFocus() {
|
|
|
19
19
|
subGridIndex: 0
|
|
20
20
|
};
|
|
21
21
|
}
|
|
22
|
-
$: $selectedComponent
|
|
22
|
+
$: $selectedComponent === id && onFocus();
|
|
23
23
|
$: css = concatCustomCss($app.css?.containercomponent, customCss);
|
|
24
24
|
$componentControl[id] = {
|
|
25
25
|
left: () => {
|
|
@@ -60,7 +60,7 @@ $: {
|
|
|
60
60
|
<div
|
|
61
61
|
class="w-full h-full"
|
|
62
62
|
on:pointerdown|stopPropagation={() => {
|
|
63
|
-
$selectedComponent =
|
|
63
|
+
$selectedComponent = id
|
|
64
64
|
$focusedGrid = {
|
|
65
65
|
parentComponentId: id,
|
|
66
66
|
subGridIndex: index
|
|
@@ -77,7 +77,7 @@ $: {
|
|
|
77
77
|
subGridId={`${id}-${index}`}
|
|
78
78
|
containerHeight={horizontal ? undefined : componentContainerHeight - 8}
|
|
79
79
|
on:focus={() => {
|
|
80
|
-
$selectedComponent =
|
|
80
|
+
$selectedComponent = id
|
|
81
81
|
$focusedGrid = {
|
|
82
82
|
parentComponentId: id,
|
|
83
83
|
subGridIndex: index
|
|
@@ -10,7 +10,8 @@ import Tabs from '../../common/tabs/Tabs.svelte';
|
|
|
10
10
|
import TabContent from '../../common/tabs/TabContent.svelte';
|
|
11
11
|
import { Alert, Button, Tab } from '../../common';
|
|
12
12
|
import ComponentList from './componentsPanel/ComponentList.svelte';
|
|
13
|
-
import
|
|
13
|
+
import Icon from 'svelte-awesome';
|
|
14
|
+
import { faCode, faPlus, faSliders } from '@fortawesome/free-solid-svg-icons';
|
|
14
15
|
import ContextPanel from './contextPanel/ContextPanel.svelte';
|
|
15
16
|
import { classNames, encodeState } from '../../../utils';
|
|
16
17
|
import AppPreview from './AppPreview.svelte';
|
|
@@ -25,10 +26,6 @@ import { initHistory } from '../../../history';
|
|
|
25
26
|
import ComponentNavigation from './component/ComponentNavigation.svelte';
|
|
26
27
|
import ItemPicker from '../../ItemPicker.svelte';
|
|
27
28
|
import VariableEditor from '../../VariableEditor.svelte';
|
|
28
|
-
import { SecondaryMenu } from './settingsPanel/secondaryMenu';
|
|
29
|
-
import { Component, Paintbrush, Plus } from 'lucide-svelte';
|
|
30
|
-
import { findGridItem, findGridItemParentGrid } from './appUtils';
|
|
31
|
-
import { findItemsById } from '../svelte-grid/utils/matrix';
|
|
32
29
|
export let app;
|
|
33
30
|
export let path;
|
|
34
31
|
export let initialMode = 'dnd';
|
|
@@ -64,7 +61,7 @@ setContext('AppViewerContext', {
|
|
|
64
61
|
mode,
|
|
65
62
|
connectingInput,
|
|
66
63
|
breakpoint,
|
|
67
|
-
runnableComponents
|
|
64
|
+
runnableComponents,
|
|
68
65
|
appPath: path,
|
|
69
66
|
workspace: $workspaceStore ?? '',
|
|
70
67
|
onchange: () => saveDraft(),
|
|
@@ -79,14 +76,13 @@ setContext('AppViewerContext', {
|
|
|
79
76
|
parentWidth: writable(0),
|
|
80
77
|
state: writable({}),
|
|
81
78
|
componentControl: writable({}),
|
|
82
|
-
hoverStore: writable(undefined)
|
|
83
|
-
allIdsInPath: writable([])
|
|
79
|
+
hoverStore: writable(undefined)
|
|
84
80
|
});
|
|
85
81
|
setContext('AppEditorContext', {
|
|
86
82
|
history,
|
|
87
83
|
pickVariableCallback,
|
|
88
84
|
ontextfocus: writable(undefined),
|
|
89
|
-
|
|
85
|
+
movingcomponent: writable(undefined),
|
|
90
86
|
selectedComponentInEditor: writable(undefined)
|
|
91
87
|
});
|
|
92
88
|
let timeout = undefined;
|
|
@@ -113,36 +109,11 @@ function hashchange(e) {
|
|
|
113
109
|
$: previewing = $mode === 'preview';
|
|
114
110
|
$: width = $breakpoint === 'sm' ? 'min-w-[400px] max-w-[656px]' : 'min-w-[710px] w-full';
|
|
115
111
|
let selectedTab = 'insert';
|
|
116
|
-
|
|
117
|
-
$: if ($selectedComponent?.[0] != befSelected) {
|
|
118
|
-
befSelected = $selectedComponent?.[0];
|
|
112
|
+
$: if ($selectedComponent) {
|
|
119
113
|
selectedTab = 'settings';
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
if (item?.data.type === 'containercomponent') {
|
|
124
|
-
$focusedGrid = {
|
|
125
|
-
parentComponentId: befSelected,
|
|
126
|
-
subGridIndex: 0
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
else {
|
|
130
|
-
let subgrid = findGridItemParentGrid($appStore, befSelected);
|
|
131
|
-
if (subgrid) {
|
|
132
|
-
try {
|
|
133
|
-
$focusedGrid = {
|
|
134
|
-
parentComponentId: subgrid.split('-')[0],
|
|
135
|
-
subGridIndex: parseInt(subgrid.split('-')[1])
|
|
136
|
-
};
|
|
137
|
-
}
|
|
138
|
-
catch { }
|
|
139
|
-
}
|
|
140
|
-
else {
|
|
141
|
-
$focusedGrid = undefined;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
}
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
selectedTab = 'insert';
|
|
146
117
|
}
|
|
147
118
|
let itemPicker = undefined;
|
|
148
119
|
$: if ($pickVariableCallback) {
|
|
@@ -189,7 +160,7 @@ let variableEditor = undefined;
|
|
|
189
160
|
<Pane size={15} minSize={5} maxSize={33}>
|
|
190
161
|
<ContextPanel />
|
|
191
162
|
</Pane>
|
|
192
|
-
<Pane size={
|
|
163
|
+
<Pane size={64}>
|
|
193
164
|
<SplitPanesWrapper>
|
|
194
165
|
<Splitpanes horizontal>
|
|
195
166
|
<Pane size={70}>
|
|
@@ -213,7 +184,7 @@ let variableEditor = undefined;
|
|
|
213
184
|
{#if $appStore.grid}
|
|
214
185
|
<ComponentNavigation />
|
|
215
186
|
|
|
216
|
-
<div on:pointerdown|stopPropagation class={
|
|
187
|
+
<div on:pointerdown|stopPropagation class={width}>
|
|
217
188
|
<GridEditor {policy} />
|
|
218
189
|
</div>
|
|
219
190
|
|
|
@@ -230,30 +201,31 @@ let variableEditor = undefined;
|
|
|
230
201
|
</Splitpanes>
|
|
231
202
|
</SplitPanesWrapper>
|
|
232
203
|
</Pane>
|
|
233
|
-
<Pane size={
|
|
204
|
+
<Pane size={21} minSize={5} maxSize={33}>
|
|
234
205
|
<div class="relative flex flex-col h-full">
|
|
235
206
|
<Tabs bind:selected={selectedTab} wrapperClass="!h-[40px]" class="!h-full">
|
|
236
207
|
<Tab value="insert" size="xs">
|
|
237
|
-
<div class="m-1 center-center gap-
|
|
238
|
-
<
|
|
208
|
+
<div class="m-1 center-center gap-2">
|
|
209
|
+
<Icon data={faPlus} />
|
|
210
|
+
<span>Insert</span>
|
|
239
211
|
</div>
|
|
240
212
|
</Tab>
|
|
241
213
|
<Tab value="settings" size="xs">
|
|
242
|
-
<div class="m-1 center-center gap-
|
|
243
|
-
<
|
|
244
|
-
<span>
|
|
214
|
+
<div class="m-1 center-center gap-2">
|
|
215
|
+
<Icon data={faSliders} />
|
|
216
|
+
<span>Settings</span>
|
|
245
217
|
</div>
|
|
246
218
|
</Tab>
|
|
247
219
|
<Tab value="css" size="xs">
|
|
248
|
-
<div class="m-1 center-center gap-
|
|
249
|
-
<
|
|
220
|
+
<div class="m-1 center-center gap-2">
|
|
221
|
+
<Icon data={faCode} />
|
|
222
|
+
<span>CSS</span>
|
|
250
223
|
</div>
|
|
251
224
|
</Tab>
|
|
252
225
|
<div slot="content" class="h-full overflow-y-auto">
|
|
253
226
|
<TabContent class="overflow-auto h-full" value="settings">
|
|
254
227
|
{#if $selectedComponent !== undefined}
|
|
255
228
|
<SettingsPanel />
|
|
256
|
-
<SecondaryMenu />
|
|
257
229
|
{:else}
|
|
258
230
|
<div class="min-w-[150px] text-sm text-gray-500 text-center py-8 px-2">
|
|
259
231
|
Select a component to see the settings for it
|
|
@@ -177,11 +177,6 @@ let lock = false;
|
|
|
177
177
|
function onKeyDown(event) {
|
|
178
178
|
if (lock)
|
|
179
179
|
return;
|
|
180
|
-
let classes = event.target?.['className'];
|
|
181
|
-
if ((typeof classes === 'string' && classes.includes('inputarea')) ||
|
|
182
|
-
['INPUT', 'TEXTAREA'].includes(document.activeElement?.tagName)) {
|
|
183
|
-
return;
|
|
184
|
-
}
|
|
185
180
|
lock = true;
|
|
186
181
|
switch (event.key) {
|
|
187
182
|
case 'Z':
|
|
@@ -10,8 +10,6 @@ import { Component } from './component';
|
|
|
10
10
|
import { twMerge } from 'tailwind-merge';
|
|
11
11
|
import { columnConfiguration } from '../gridUtils';
|
|
12
12
|
import { HiddenComponent } from '../components';
|
|
13
|
-
import { deepEqual } from 'fast-equals';
|
|
14
|
-
import { dfs } from './appUtils';
|
|
15
13
|
export let app;
|
|
16
14
|
export let appPath;
|
|
17
15
|
export let breakpoint;
|
|
@@ -30,7 +28,7 @@ const connectingInput = writable({
|
|
|
30
28
|
input: undefined,
|
|
31
29
|
hoveredComponent: undefined
|
|
32
30
|
});
|
|
33
|
-
const
|
|
31
|
+
const runnableComponents = writable({});
|
|
34
32
|
const parentWidth = writable(0);
|
|
35
33
|
setContext('AppViewerContext', {
|
|
36
34
|
worldStore: buildWorld(context),
|
|
@@ -40,7 +38,7 @@ setContext('AppViewerContext', {
|
|
|
40
38
|
mode,
|
|
41
39
|
connectingInput,
|
|
42
40
|
breakpoint,
|
|
43
|
-
runnableComponents
|
|
41
|
+
runnableComponents,
|
|
44
42
|
appPath,
|
|
45
43
|
workspace,
|
|
46
44
|
onchange: undefined,
|
|
@@ -55,21 +53,13 @@ setContext('AppViewerContext', {
|
|
|
55
53
|
parentWidth,
|
|
56
54
|
state: writable({}),
|
|
57
55
|
componentControl: writable({}),
|
|
58
|
-
hoverStore: writable(undefined)
|
|
59
|
-
allIdsInPath
|
|
56
|
+
hoverStore: writable(undefined)
|
|
60
57
|
});
|
|
61
58
|
let ncontext = context;
|
|
62
59
|
function hashchange(e) {
|
|
63
60
|
ncontext.hash = e.newURL.split('#')[1];
|
|
64
61
|
ncontext = ncontext;
|
|
65
62
|
}
|
|
66
|
-
let previousSelectedIds = undefined;
|
|
67
|
-
$: if (!deepEqual(previousSelectedIds, $selectedComponent)) {
|
|
68
|
-
previousSelectedIds = $selectedComponent;
|
|
69
|
-
$allIdsInPath = ($selectedComponent ?? [])
|
|
70
|
-
.flatMap((id) => dfs(app.grid, id, app.subgrids ?? {}))
|
|
71
|
-
.filter((x) => x != undefined);
|
|
72
|
-
}
|
|
73
63
|
$: width = $breakpoint === 'sm' ? 'max-w-[640px]' : 'w-full ';
|
|
74
64
|
$: lockedClasses = isLocked ? '!max-h-[400px] overflow-hidden pointer-events-none' : '';
|
|
75
65
|
</script>
|
|
@@ -92,7 +82,8 @@ $: lockedClasses = isLocked ? '!max-h-[400px] overflow-hidden pointer-events-non
|
|
|
92
82
|
)}
|
|
93
83
|
>
|
|
94
84
|
<div
|
|
95
|
-
class="w-full sticky
|
|
85
|
+
class="w-full sticky top-0 flex justify-between border-b bg-gray-50 px-4 py-1 items-center gap-4"
|
|
86
|
+
style="z-index: 1000;"
|
|
96
87
|
>
|
|
97
88
|
<h2 class="truncate">{summary}</h2>
|
|
98
89
|
<RecomputeAllComponents />
|
|
@@ -110,7 +101,7 @@ $: lockedClasses = isLocked ? '!max-h-[400px] overflow-hidden pointer-events-non
|
|
|
110
101
|
>
|
|
111
102
|
<div>
|
|
112
103
|
<GridViewer
|
|
113
|
-
|
|
104
|
+
onTopId={$selectedComponent}
|
|
114
105
|
items={app.grid}
|
|
115
106
|
let:dataItem
|
|
116
107
|
rowHeight={36}
|
|
@@ -120,7 +111,7 @@ $: lockedClasses = isLocked ? '!max-h-[400px] overflow-hidden pointer-events-non
|
|
|
120
111
|
<!-- svelte-ignore a11y-click-events-have-key-events -->
|
|
121
112
|
<div
|
|
122
113
|
class={'h-full w-full center-center'}
|
|
123
|
-
on:pointerdown={() => ($selectedComponent =
|
|
114
|
+
on:pointerdown={() => ($selectedComponent = dataItem.id)}
|
|
124
115
|
>
|
|
125
116
|
<Component render={true} component={dataItem.data} selected={false} locked={true} />
|
|
126
117
|
</div>
|
|
@@ -151,8 +142,6 @@ $: lockedClasses = isLocked ? '!max-h-[400px] overflow-hidden pointer-events-non
|
|
|
151
142
|
inlineScript={script.inlineScript}
|
|
152
143
|
name={script.name}
|
|
153
144
|
fields={script.fields}
|
|
154
|
-
doNotRecomputeOnInputChanged={script.doNotRecomputeOnInputChanged ?? false}
|
|
155
|
-
recomputableByRefreshButton={script.autoRefresh ?? false}
|
|
156
145
|
/>
|
|
157
146
|
{/if}
|
|
158
147
|
{/each}
|