windmill-components 1.352.9 → 1.362.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/package/assets/app.css +8 -45
- package/package/components/ApiConnectForm.svelte +1 -0
- package/package/components/ArgInput.svelte +5 -1
- package/package/components/ChangeInstanceUsername.svelte +20 -12
- package/package/components/ContentSearchInner.svelte +359 -0
- package/package/components/{ContentSearch.svelte.d.ts → ContentSearchInner.svelte.d.ts} +9 -5
- package/package/components/CustomPopover.svelte +73 -0
- package/package/components/CustomPopover.svelte.d.ts +29 -0
- package/package/components/DateTimeInput.svelte +29 -3
- package/package/components/DateTimeInput.svelte.d.ts +4 -0
- package/package/components/Dev.svelte +8 -3
- package/package/components/DurationMs.svelte +2 -2
- package/package/components/FlowBuilder.svelte +122 -24
- package/package/components/FlowBuilder.svelte.d.ts +1 -0
- package/package/components/FlowGraphViewerStep.svelte +2 -2
- package/package/components/FlowJobResult.svelte +5 -3
- package/package/components/FlowStatusViewer.svelte +4 -3
- package/package/components/FlowStatusViewerInner.svelte +265 -160
- package/package/components/FlowStatusViewerInner.svelte.d.ts +15 -2
- package/package/components/HighlightTheme.svelte +75 -77
- package/package/components/InputTransformForm.svelte +2 -0
- package/package/components/JobArgs.svelte +59 -44
- package/package/components/JobArgs.svelte.d.ts +2 -0
- package/package/components/LightweightArgInput.svelte +27 -2
- package/package/components/Path.svelte +3 -8
- package/package/components/Popover.svelte +1 -1
- package/package/components/ResourceEditor.svelte +3 -2
- package/package/components/ResourceEditorDrawer.svelte +4 -1
- package/package/components/ResourcePicker.svelte +1 -0
- package/package/components/RunChart.svelte +6 -3
- package/package/components/RunChart.svelte.d.ts +1 -0
- package/package/components/RunForm.svelte +24 -23
- package/package/components/RunForm.svelte.d.ts +0 -2
- package/package/components/SavedInputs.svelte +50 -39
- package/package/components/ScheduleEditorInner.svelte +26 -4
- package/package/components/ScriptBuilder.svelte +47 -22
- package/package/components/ScriptBuilder.svelte.d.ts +1 -0
- package/package/components/SearchItems.svelte +5 -4
- package/package/components/Summary.svelte +74 -0
- package/package/components/Summary.svelte.d.ts +16 -0
- package/package/components/apps/components/display/AppMarkdown.svelte +3 -2
- package/package/components/apps/components/display/AppMenu.svelte +2 -2
- package/package/components/apps/components/display/AppNavbar.svelte +94 -0
- package/package/components/apps/components/display/AppNavbar.svelte.d.ts +24 -0
- package/package/components/apps/components/display/AppNavbarItem.svelte +146 -0
- package/package/components/apps/components/display/AppNavbarItem.svelte.d.ts +27 -0
- package/package/components/apps/components/display/ResolveNavbarItemPath.svelte +21 -0
- package/package/components/apps/components/display/ResolveNavbarItemPath.svelte.d.ts +20 -0
- package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +16 -0
- package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte +12 -16
- package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte.d.ts +1 -0
- package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +5 -0
- package/package/components/apps/components/display/table/AppAggridTable.svelte +28 -6
- package/package/components/apps/components/display/table/AppAggridTableActions.svelte +68 -43
- package/package/components/apps/components/inputs/AppDateSelect.svelte +284 -0
- package/package/components/apps/components/inputs/AppDateSelect.svelte.d.ts +21 -0
- package/package/components/apps/components/inputs/AppDateTimeInput.svelte +2 -0
- package/package/components/apps/components/inputs/AppFileInput.svelte +22 -27
- package/package/components/apps/components/inputs/AppFileInput.svelte.d.ts +1 -0
- package/package/components/apps/components/inputs/AppTextInput.svelte +1 -1
- package/package/components/apps/components/layout/AppDecisionTree.svelte +32 -30
- package/package/components/apps/components/layout/AppModal.svelte +17 -6
- package/package/components/apps/editor/AppDeploymentHistory.svelte +2 -3
- package/package/components/apps/editor/AppDeploymentHistory.svelte.d.ts +3 -2
- package/package/components/apps/editor/AppEditor.svelte +9 -2
- package/package/components/apps/editor/AppEditorHeader.svelte +7 -10
- package/package/components/apps/editor/AppPreview.svelte +12 -3
- package/package/components/apps/editor/AppPreview.svelte.d.ts +2 -0
- package/package/components/apps/editor/DecisionTreeDebug.svelte +92 -68
- package/package/components/apps/editor/DeploymentHistory.svelte +0 -2
- package/package/components/apps/editor/appUtils.d.ts +1 -0
- package/package/components/apps/editor/appUtils.js +17 -0
- package/package/components/apps/editor/component/Component.svelte +23 -0
- package/package/components/apps/editor/component/components.d.ts +205 -3
- package/package/components/apps/editor/component/components.js +160 -1
- package/package/components/apps/editor/component/default-codes.js +13 -13
- package/package/components/apps/editor/component/sets.js +4 -2
- package/package/components/apps/editor/componentsPanel/ComponentList.svelte +12 -12
- package/package/components/apps/editor/componentsPanel/cssUtils.js +39 -3
- package/package/components/apps/editor/componentsPanel/quickStyleProperties.js +6 -0
- package/package/components/apps/editor/contextPanel/ComponentOutput.svelte +2 -2
- package/package/components/apps/editor/contextPanel/ContextPanel.svelte +6 -0
- package/package/components/apps/editor/contextPanel/components/OutputHeader.svelte +11 -0
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte +4 -0
- package/package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +21 -8
- package/package/components/apps/editor/settingsPanel/ComponentPanel.svelte +64 -20
- package/package/components/apps/editor/settingsPanel/ContextVariables.svelte +48 -15
- package/package/components/apps/editor/settingsPanel/ContextVariables.svelte.d.ts +1 -0
- package/package/components/apps/editor/settingsPanel/DecisionTreeGraphEditor.svelte +25 -5
- package/package/components/apps/editor/settingsPanel/DecisionTreeGraphNode.svelte +2 -1
- package/package/components/apps/editor/settingsPanel/DecisionTreeGraphNode.svelte.d.ts +1 -0
- package/package/components/apps/editor/settingsPanel/DocLink.svelte +33 -0
- package/package/components/apps/editor/settingsPanel/DocLink.svelte.d.ts +19 -0
- package/package/components/apps/editor/settingsPanel/GridNavbar.svelte +192 -0
- package/package/components/apps/editor/settingsPanel/GridNavbar.svelte.d.ts +18 -0
- package/package/components/apps/editor/settingsPanel/GridTab.svelte +2 -2
- package/package/components/apps/editor/settingsPanel/RefreshDatabaseStudioTable.svelte +17 -0
- package/package/components/apps/editor/settingsPanel/RefreshDatabaseStudioTable.svelte.d.ts +16 -0
- package/package/components/apps/editor/settingsPanel/TableActions.svelte +81 -38
- package/package/components/apps/editor/settingsPanel/decisionTree/DecisionTreePreview.svelte +12 -5
- package/package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte +11 -12
- package/package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte.d.ts +4 -2
- package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +4 -1
- package/package/components/apps/editor/settingsPanel/secondaryMenu/SecondaryMenu.svelte +7 -1
- package/package/components/apps/inputType.d.ts +2 -2
- package/package/components/apps/svelte-select/lib/Select.svelte +2 -3
- package/package/components/apps/types.d.ts +3 -0
- package/package/components/auditLogs/AuditLogsTable.svelte +2 -2
- package/package/components/common/CloseButton.svelte +10 -10
- package/package/components/common/CloseButton.svelte.d.ts +6 -14
- package/package/components/common/calendarPicker/CalendarPicker.svelte +5 -0
- package/package/components/common/calendarPicker/CalendarPicker.svelte.d.ts +2 -0
- package/package/components/common/confirmationModal/UnsavedConfirmationModal.svelte +7 -1
- package/package/components/common/fileInput/FileInput.svelte +2 -0
- package/package/components/common/fileInput/FileInput.svelte.d.ts +1 -0
- package/package/components/common/popup/Popup.svelte +4 -3
- package/package/components/common/popup/Popup.svelte.d.ts +1 -0
- package/package/components/common/table/AppRow.svelte +3 -10
- package/package/components/common/table/FlowRow.svelte +12 -1
- package/package/components/copilot/IteratorGen.svelte +1 -1
- package/package/components/copilot/PredicateGen.svelte +1 -1
- package/package/components/copilot/StepInputGen.svelte +8 -3
- package/package/components/copilot/StepInputsGen.svelte +5 -2
- package/package/components/details/WebhooksPanel.svelte +32 -1
- package/package/components/details/WebhooksPanel.svelte.d.ts +2 -11
- package/package/components/flows/FlowHistory.svelte +208 -0
- package/package/components/flows/FlowHistory.svelte.d.ts +21 -0
- package/package/components/flows/content/FlowBranchesAllWrapper.svelte +1 -1
- package/package/components/flows/content/FlowBranchesOneWrapper.svelte +1 -1
- package/package/components/flows/content/FlowEditorPanel.svelte +1 -1
- package/package/components/flows/content/FlowLoop.svelte +23 -26
- package/package/components/flows/content/FlowModuleComponent.svelte +2 -18
- package/package/components/flows/content/FlowModuleEarlyStop.svelte +10 -4
- package/package/components/flows/content/FlowModuleHeader.svelte +3 -4
- package/package/components/flows/content/FlowModuleScript.svelte +1 -1
- package/package/components/flows/content/FlowModuleSleep.svelte +1 -0
- package/package/components/flows/content/FlowModuleSuspend.svelte +1 -1
- package/package/components/flows/content/SuspendDrawer.svelte +7 -7
- package/package/components/flows/flowStateUtils.js +2 -1
- package/package/components/flows/flowStore.js +1 -1
- package/package/components/flows/header/FlowImportExportMenu.svelte +3 -16
- package/package/components/flows/header/FlowImportExportMenu.svelte.d.ts +4 -1
- package/package/components/flows/map/FlowJobsMenu.svelte +69 -0
- package/package/components/flows/map/FlowJobsMenu.svelte.d.ts +22 -0
- package/package/components/flows/map/FlowModuleSchemaItem.svelte +7 -4
- package/package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +1 -0
- package/package/components/flows/map/MapItem.svelte +20 -0
- package/package/components/flows/map/MapItem.svelte.d.ts +9 -0
- package/package/components/flows/map/VirtualItem.svelte +4 -2
- package/package/components/flows/map/VirtualItem.svelte.d.ts +1 -0
- package/package/components/flows/previousResults.d.ts +9 -0
- package/package/components/flows/previousResults.js +42 -8
- package/package/components/flows/propPicker/PropPickerWrapper.svelte +2 -0
- package/package/components/flows/propPicker/PropPickerWrapper.svelte.d.ts +1 -0
- package/package/components/flows/types.d.ts +1 -1
- package/package/components/graph/FlowGraph.svelte +80 -42
- package/package/components/graph/FlowGraph.svelte.d.ts +1 -0
- package/package/components/graph/model.d.ts +6 -1
- package/package/components/graph/svelvet/container/controllers/middleware.js +4 -4
- package/package/components/graph/svelvet/container/views/GraphView.svelte +2 -0
- package/package/components/graph/svelvet/edges/views/Edges/EdgeText.svelte +24 -25
- package/package/components/graph/util.d.ts +1 -1
- package/package/components/graph/util.js +1 -2
- package/package/components/home/ItemsList.svelte +22 -19
- package/package/components/jobs/JobPreview.svelte +11 -2
- package/package/components/propertyPicker/PropPicker.svelte +30 -0
- package/package/components/propertyPicker/PropPickerResult.svelte +14 -1
- package/package/components/propertyPicker/PropPickerResult.svelte.d.ts +1 -0
- package/package/components/runs/JobLoader.svelte +21 -8
- package/package/components/runs/JobLoader.svelte.d.ts +2 -0
- package/package/components/runs/JobPreview.svelte +5 -1
- package/package/components/runs/RunRow.svelte +12 -8
- package/package/components/runs/RunsFilter.svelte +2 -4
- package/package/components/runs/RunsFilter.svelte.d.ts +0 -1
- package/package/components/runs/RunsTable.svelte +63 -29
- package/package/components/runs/RunsTable.svelte.d.ts +1 -0
- package/package/components/schema/EditableSchemaWrapper.svelte +9 -1
- package/package/components/schema/PropertyEditor.svelte +1 -1
- package/package/components/search/GlobalSearchModal.svelte +559 -0
- package/package/components/search/GlobalSearchModal.svelte.d.ts +17 -0
- package/package/components/search/QuickMenuItem.svelte +76 -0
- package/package/components/search/QuickMenuItem.svelte.d.ts +27 -0
- package/package/components/sidebar/MenuButton.svelte +11 -0
- package/package/components/sidebar/MenuButton.svelte.d.ts +4 -0
- package/package/components/sidebar/changelogs.js +35 -0
- package/package/components/wizards/AppPicker.svelte +68 -0
- package/package/components/wizards/AppPicker.svelte.d.ts +17 -0
- package/package/components/wizards/NavbarWizard.svelte +131 -0
- package/package/components/wizards/NavbarWizard.svelte.d.ts +19 -0
- package/package/defaults.d.ts +1 -1
- package/package/defaults.js +1 -1
- package/package/es6.d.ts.txt +370 -1
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +42 -3
- package/package/gen/schemas.gen.js +42 -3
- package/package/gen/services.gen.d.ts +80 -5
- package/package/gen/services.gen.js +149 -8
- package/package/gen/types.gen.d.ts +265 -11
- package/package/inferArgSig.js +4 -0
- package/package/script_helpers.d.ts +3 -3
- package/package/script_helpers.js +46 -22
- package/package/stores.d.ts +1 -1
- package/package/stores.js +1 -1
- package/package/utils.d.ts +7 -23
- package/package/utils.js +54 -33
- package/package/windmill_fetch.d.ts.txt +6 -6
- package/package.json +3 -11
- package/package/components/ContentSearch.svelte +0 -355
|
@@ -3,7 +3,7 @@ import SubGridEditor from '../../editor/SubGridEditor.svelte';
|
|
|
3
3
|
import { initCss } from '../../utils';
|
|
4
4
|
import { Button } from '../../../common';
|
|
5
5
|
import { twMerge } from 'tailwind-merge';
|
|
6
|
-
import { initConfig, initOutput } from '../../editor/appUtils';
|
|
6
|
+
import { initConfig, initOutput, maxHeight, ROW_GAP_Y, ROW_HEIGHT } from '../../editor/appUtils';
|
|
7
7
|
import InitializeComponent from '../helpers/InitializeComponent.svelte';
|
|
8
8
|
import Portal from 'svelte-portal';
|
|
9
9
|
import { clickOutside } from '../../../../utils';
|
|
@@ -22,7 +22,7 @@ export let noWFull = false;
|
|
|
22
22
|
export let render;
|
|
23
23
|
export let onOpenRecomputeIds = undefined;
|
|
24
24
|
export let onCloseRecomputeIds = undefined;
|
|
25
|
-
const { app, focusedGrid, selectedComponent, worldStore, connectingInput, mode, componentControl, runnableComponents } = getContext('AppViewerContext');
|
|
25
|
+
const { app, focusedGrid, selectedComponent, worldStore, connectingInput, mode, componentControl, runnableComponents, breakpoint } = getContext('AppViewerContext');
|
|
26
26
|
//used so that we can count number of outputs setup for first refresh
|
|
27
27
|
const outputs = initOutput($worldStore, id, {
|
|
28
28
|
open: false
|
|
@@ -53,6 +53,13 @@ $componentControl[id] = {
|
|
|
53
53
|
disposable?.closeDrawer();
|
|
54
54
|
}
|
|
55
55
|
};
|
|
56
|
+
let wrapperHeight = 0;
|
|
57
|
+
let headerHeight = 0;
|
|
58
|
+
$: containerHeight = Math.min(
|
|
59
|
+
// 8px * 2 of padding
|
|
60
|
+
maxHeight($app.subgrids?.[`${id}-0`] ?? [], 0, $breakpoint) * (ROW_HEIGHT + ROW_GAP_Y) + 16,
|
|
61
|
+
// 32px (2rem) of top and bottom margin
|
|
62
|
+
wrapperHeight - headerHeight - 64);
|
|
56
63
|
</script>
|
|
57
64
|
|
|
58
65
|
<InitializeComponent {id} />
|
|
@@ -111,7 +118,6 @@ $componentControl[id] = {
|
|
|
111
118
|
</AlignWrapper>
|
|
112
119
|
</div>
|
|
113
120
|
{/if}
|
|
114
|
-
|
|
115
121
|
<Portal target="#app-editor-top-level-drawer">
|
|
116
122
|
<Disposable
|
|
117
123
|
{id}
|
|
@@ -136,6 +142,7 @@ $componentControl[id] = {
|
|
|
136
142
|
open ? ' bg-black bg-opacity-60' : 'h-0 overflow-hidden invisible'
|
|
137
143
|
)}
|
|
138
144
|
style="z-index: {zIndex}"
|
|
145
|
+
bind:clientHeight={wrapperHeight}
|
|
139
146
|
>
|
|
140
147
|
<div
|
|
141
148
|
style={css?.popup?.style}
|
|
@@ -147,7 +154,10 @@ $componentControl[id] = {
|
|
|
147
154
|
}
|
|
148
155
|
}}
|
|
149
156
|
>
|
|
150
|
-
<div
|
|
157
|
+
<div
|
|
158
|
+
class="px-4 py-2 border-b flex justify-between items-center"
|
|
159
|
+
bind:clientHeight={headerHeight}
|
|
160
|
+
>
|
|
151
161
|
<div>{resolvedConfig.modalTitle}</div>
|
|
152
162
|
<div class="w-8">
|
|
153
163
|
<button
|
|
@@ -160,8 +170,9 @@ $componentControl[id] = {
|
|
|
160
170
|
</button>
|
|
161
171
|
</div>
|
|
162
172
|
</div>
|
|
173
|
+
|
|
163
174
|
<div
|
|
164
|
-
class=
|
|
175
|
+
class={twMerge('wm-modal h-full', 'overflow-y-auto')}
|
|
165
176
|
on:pointerdown={(e) => {
|
|
166
177
|
e?.stopPropagation()
|
|
167
178
|
if (!$connectingInput.opened) {
|
|
@@ -177,7 +188,7 @@ $componentControl[id] = {
|
|
|
177
188
|
<SubGridEditor
|
|
178
189
|
visible={open && render}
|
|
179
190
|
{id}
|
|
180
|
-
|
|
191
|
+
{containerHeight}
|
|
181
192
|
subGridId={`${id}-0`}
|
|
182
193
|
on:focus={() => {
|
|
183
194
|
if (!$connectingInput.opened) {
|
|
@@ -3,10 +3,9 @@ import { AppService } from '../../../gen';
|
|
|
3
3
|
import { workspaceStore } from '../../../stores';
|
|
4
4
|
import { sendUserToast } from '../../../toast';
|
|
5
5
|
import DeploymentHistory from './DeploymentHistory.svelte';
|
|
6
|
-
let appPath = undefined;
|
|
6
|
+
export let appPath = undefined;
|
|
7
7
|
let historyBrowserDrawerOpen = false;
|
|
8
|
-
export function open(
|
|
9
|
-
appPath = appPath;
|
|
8
|
+
export function open() {
|
|
10
9
|
historyBrowserDrawerOpen = true;
|
|
11
10
|
}
|
|
12
11
|
async function updateApp(app) {
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { SvelteComponent } from "svelte";
|
|
2
2
|
declare const __propDef: {
|
|
3
3
|
props: {
|
|
4
|
-
|
|
4
|
+
appPath?: string | undefined;
|
|
5
|
+
open?: (() => void) | undefined;
|
|
5
6
|
};
|
|
6
7
|
events: {
|
|
7
8
|
[evt: string]: CustomEvent<any>;
|
|
@@ -12,6 +13,6 @@ export type AppDeploymentHistoryProps = typeof __propDef.props;
|
|
|
12
13
|
export type AppDeploymentHistoryEvents = typeof __propDef.events;
|
|
13
14
|
export type AppDeploymentHistorySlots = typeof __propDef.slots;
|
|
14
15
|
export default class AppDeploymentHistory extends SvelteComponent<AppDeploymentHistoryProps, AppDeploymentHistoryEvents, AppDeploymentHistorySlots> {
|
|
15
|
-
get open(): (
|
|
16
|
+
get open(): () => void;
|
|
16
17
|
}
|
|
17
18
|
export {};
|
|
@@ -33,6 +33,7 @@ import DarkModeObserver from '../../DarkModeObserver.svelte';
|
|
|
33
33
|
import { getTheme } from './componentsPanel/themeUtils';
|
|
34
34
|
import StylePanel from './settingsPanel/StylePanel.svelte';
|
|
35
35
|
import RunnableJobPanel from './RunnableJobPanel.svelte';
|
|
36
|
+
import { goto, replaceState } from '$app/navigation';
|
|
36
37
|
export let app;
|
|
37
38
|
export let path;
|
|
38
39
|
export let policy;
|
|
@@ -103,7 +104,8 @@ setContext('AppViewerContext', {
|
|
|
103
104
|
darkMode,
|
|
104
105
|
cssEditorOpen,
|
|
105
106
|
previewTheme,
|
|
106
|
-
debuggingComponents: writable({})
|
|
107
|
+
debuggingComponents: writable({}),
|
|
108
|
+
replaceStateFn: (path) => replaceState(path, $page.state)
|
|
107
109
|
});
|
|
108
110
|
let scale = writable(100);
|
|
109
111
|
const componentActive = writable(false);
|
|
@@ -243,7 +245,10 @@ else if (!$connectingInput.opened && toggled) {
|
|
|
243
245
|
}
|
|
244
246
|
// Animation logic for cssInput
|
|
245
247
|
$: animateCssInput($cssEditorOpen);
|
|
246
|
-
$: $cssEditorOpen &&
|
|
248
|
+
$: $cssEditorOpen &&
|
|
249
|
+
secondaryMenuLeft?.open(StylePanel, {
|
|
250
|
+
type: 'style'
|
|
251
|
+
});
|
|
247
252
|
function animateCssInput(cssEditorOpen) {
|
|
248
253
|
if (cssEditorOpen && !cssToggled) {
|
|
249
254
|
cssToggled = true;
|
|
@@ -420,6 +425,8 @@ let runnableJobEnterTimeout = undefined;
|
|
|
420
425
|
isEditor
|
|
421
426
|
{context}
|
|
422
427
|
noBackend={false}
|
|
428
|
+
replaceStateFn={(path) => replaceState(path, $page.state)}
|
|
429
|
+
gotoFn={(path, opt) => goto(path, opt)}
|
|
423
430
|
/>
|
|
424
431
|
</div>
|
|
425
432
|
</SplitPanesWrapper>
|
|
@@ -45,6 +45,7 @@ import { getInsertInput } from '../components/display/dbtable/queries/insert';
|
|
|
45
45
|
import { getUpdateInput } from '../components/display/dbtable/queries/update';
|
|
46
46
|
import { getDeleteInput } from '../components/display/dbtable/queries/delete';
|
|
47
47
|
import { collectOneOfFields } from './appUtils';
|
|
48
|
+
import Summary from '../../Summary.svelte';
|
|
48
49
|
async function hash(message) {
|
|
49
50
|
try {
|
|
50
51
|
const msgUint8 = new TextEncoder().encode(message); // encode as (utf-8) Uint8Array
|
|
@@ -997,7 +998,11 @@ export function openTroubleshootPanel() {
|
|
|
997
998
|
{/if}
|
|
998
999
|
{#if job?.args}
|
|
999
1000
|
<div class="p-2">
|
|
1000
|
-
<JobArgs
|
|
1001
|
+
<JobArgs
|
|
1002
|
+
id={job.id}
|
|
1003
|
+
workspace={job.workspace_id ?? $workspaceStore ?? 'no_w'}
|
|
1004
|
+
args={job?.args}
|
|
1005
|
+
/>
|
|
1001
1006
|
</div>
|
|
1002
1007
|
{/if}
|
|
1003
1008
|
{#if job?.raw_code}
|
|
@@ -1120,15 +1125,7 @@ export function openTroubleshootPanel() {
|
|
|
1120
1125
|
class="border-b flex flex-row justify-between py-1 gap-2 gap-y-2 px-2 items-center overflow-y-visible overflow-x-auto"
|
|
1121
1126
|
>
|
|
1122
1127
|
<div class="flex flex-row gap-2 items-center">
|
|
1123
|
-
<
|
|
1124
|
-
<input
|
|
1125
|
-
type="text"
|
|
1126
|
-
placeholder="App summary"
|
|
1127
|
-
class="text-sm w-full font-semibold"
|
|
1128
|
-
bind:value={$summary}
|
|
1129
|
-
on:keydown|stopPropagation
|
|
1130
|
-
/>
|
|
1131
|
-
</div>
|
|
1128
|
+
<Summary bind:value={$summary} />
|
|
1132
1129
|
<div class="flex gap-2">
|
|
1133
1130
|
<UndoRedo
|
|
1134
1131
|
undoProps={{ disabled: $history?.index === 0 }}
|
|
@@ -27,6 +27,8 @@ export let context;
|
|
|
27
27
|
export let noBackend = false;
|
|
28
28
|
export let isLocked = false;
|
|
29
29
|
export let hideRefreshBar = false;
|
|
30
|
+
export let replaceStateFn = (path) => window.history.replaceState(null, '', path);
|
|
31
|
+
export let gotoFn = (path, opt) => window.history.pushState(null, '', path);
|
|
30
32
|
migrateApp(app);
|
|
31
33
|
const appStore = writable(app);
|
|
32
34
|
const selectedComponent = writable(undefined);
|
|
@@ -81,7 +83,9 @@ setContext('AppViewerContext', {
|
|
|
81
83
|
darkMode,
|
|
82
84
|
cssEditorOpen: writable(false),
|
|
83
85
|
previewTheme: writable(undefined),
|
|
84
|
-
debuggingComponents: writable({})
|
|
86
|
+
debuggingComponents: writable({}),
|
|
87
|
+
replaceStateFn,
|
|
88
|
+
gotoFn
|
|
85
89
|
});
|
|
86
90
|
let previousSelectedIds = undefined;
|
|
87
91
|
$: if (!deepEqual(previousSelectedIds, $selectedComponent)) {
|
|
@@ -128,8 +132,13 @@ function addOrRemoveCss(isPremium, cssString) {
|
|
|
128
132
|
link.innerHTML = cssString;
|
|
129
133
|
head.appendChild(link);
|
|
130
134
|
}
|
|
131
|
-
else if (existingElement
|
|
132
|
-
|
|
135
|
+
else if (existingElement) {
|
|
136
|
+
if (cssString) {
|
|
137
|
+
existingElement.innerHTML = cssString;
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
existingElement.innerHTML = '';
|
|
141
|
+
}
|
|
133
142
|
}
|
|
134
143
|
}
|
|
135
144
|
}
|
|
@@ -16,6 +16,8 @@ declare const __propDef: {
|
|
|
16
16
|
noBackend?: boolean | undefined;
|
|
17
17
|
isLocked?: boolean | undefined;
|
|
18
18
|
hideRefreshBar?: boolean | undefined;
|
|
19
|
+
replaceStateFn?: ((path: string) => void) | undefined;
|
|
20
|
+
gotoFn?: ((path: string, opt?: Record<string, any> | undefined) => void) | undefined;
|
|
19
21
|
};
|
|
20
22
|
events: {
|
|
21
23
|
[evt: string]: CustomEvent<any>;
|
|
@@ -9,88 +9,112 @@ export let id;
|
|
|
9
9
|
const { componentControl, debuggingComponents, worldStore } = getContext('AppViewerContext');
|
|
10
10
|
const dispatch = createEventDispatcher();
|
|
11
11
|
let currentNodeId = $worldStore.outputsById[id]?.currentNodeId?.peak() ?? 'a';
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
function subscribeToCurrentNode(id) {
|
|
13
|
+
return $worldStore.outputsById[id]?.currentNodeId?.subscribe({
|
|
14
|
+
id: `id-${id}-${currentNodeId}`,
|
|
15
|
+
next: (value) => {
|
|
16
|
+
currentNodeId = value;
|
|
17
|
+
}
|
|
18
|
+
}, currentNodeId);
|
|
19
|
+
}
|
|
20
|
+
let subscription = subscribeToCurrentNode(id);
|
|
21
|
+
function onDebugNode(debuggedNodeIndex) {
|
|
22
|
+
if (debuggedNodeIndex === undefined) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
if (debuggedNodeIndex !== undefined && nodes[debuggedNodeIndex]?.id === undefined) {
|
|
26
|
+
currentNodeId = nodes[0]?.id ?? '';
|
|
27
|
+
$componentControl?.[id]?.setTab?.(0);
|
|
28
|
+
$debuggingComponents = Object.fromEntries(Object.entries($debuggingComponents).filter(([key]) => key !== id));
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
$: onDebugNode($debuggingComponents[id]);
|
|
32
|
+
let renderCount = 0;
|
|
33
|
+
let lastNodes = nodes;
|
|
34
|
+
function onNodesChange(newNodes) {
|
|
35
|
+
if (JSON.stringify(newNodes) !== JSON.stringify(lastNodes)) {
|
|
36
|
+
lastNodes = newNodes;
|
|
37
|
+
if (subscription) {
|
|
38
|
+
subscription?.();
|
|
39
|
+
}
|
|
40
|
+
subscription = subscribeToCurrentNode(id);
|
|
41
|
+
renderCount++;
|
|
16
42
|
}
|
|
17
|
-
}, currentNodeId);
|
|
18
|
-
$: if (nodes[$debuggingComponents[id] ?? 0]?.id === undefined) {
|
|
19
|
-
currentNodeId = '';
|
|
20
|
-
$componentControl?.[id]?.setTab?.(0);
|
|
21
|
-
$debuggingComponents = Object.fromEntries(Object.entries($debuggingComponents).filter(([key]) => key !== id));
|
|
22
43
|
}
|
|
44
|
+
$: onNodesChange(nodes);
|
|
23
45
|
</script>
|
|
24
46
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
<
|
|
38
|
-
<
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
47
|
+
{#key renderCount}
|
|
48
|
+
<button
|
|
49
|
+
title={'Debug tabs'}
|
|
50
|
+
class={classNames(
|
|
51
|
+
'text-2xs py-0.5 font-bold w-fit border cursor-pointer rounded-sm',
|
|
52
|
+
isDebugging($debuggingComponents, id)
|
|
53
|
+
? 'bg-red-100 text-red-600 border-red-500 hover:bg-red-200 hover:text-red-800'
|
|
54
|
+
: 'bg-indigo-100 text-indigo-600 border-indigo-500 hover:bg-indigo-200 hover:text-indigo-800'
|
|
55
|
+
)}
|
|
56
|
+
on:click={() => dispatch('triggerInlineEditor')}
|
|
57
|
+
on:pointerdown|stopPropagation
|
|
58
|
+
>
|
|
59
|
+
<ButtonDropdown hasPadding={false}>
|
|
60
|
+
<svelte:fragment slot="buttonReplacement">
|
|
61
|
+
<div class="px-1">
|
|
62
|
+
{#if isDebugging($debuggingComponents, id)}
|
|
63
|
+
<div class="flex flex-row items-center gap-2">
|
|
64
|
+
{`Debugging node ${nodes[$debuggingComponents[id] ?? 0]?.id}`}
|
|
65
|
+
<button
|
|
66
|
+
on:click={() => {
|
|
67
|
+
$componentControl?.[id]?.setTab?.(0)
|
|
68
|
+
|
|
69
|
+
$debuggingComponents = Object.fromEntries(
|
|
70
|
+
Object.entries($debuggingComponents).filter(([key]) => key !== id)
|
|
71
|
+
)
|
|
72
|
+
}}
|
|
73
|
+
>
|
|
74
|
+
<X size={14} />
|
|
75
|
+
</button>
|
|
76
|
+
</div>
|
|
77
|
+
{:else}
|
|
78
|
+
{`Debug nodes (current node: ${currentNodeId})`}
|
|
79
|
+
{/if}
|
|
80
|
+
</div>
|
|
81
|
+
</svelte:fragment>
|
|
82
|
+
<svelte:fragment slot="items">
|
|
83
|
+
{#each nodes ?? [] as node, index}
|
|
84
|
+
<MenuItem
|
|
85
|
+
on:click={() => {
|
|
86
|
+
$componentControl?.[id]?.setTab?.(index)
|
|
45
87
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
88
|
+
$debuggingComponents[id] = index
|
|
89
|
+
}}
|
|
90
|
+
>
|
|
91
|
+
<div
|
|
92
|
+
class={classNames(
|
|
93
|
+
'!text-tertiary text-left px-4 py-2 gap-2 cursor-pointer hover:bg-gray-100 !text-xs font-semibold'
|
|
94
|
+
)}
|
|
50
95
|
>
|
|
51
|
-
|
|
52
|
-
</
|
|
53
|
-
</
|
|
54
|
-
{
|
|
55
|
-
{`Debug nodes (current node: ${currentNodeId})`}
|
|
56
|
-
{/if}
|
|
57
|
-
</div>
|
|
58
|
-
</svelte:fragment>
|
|
59
|
-
<svelte:fragment slot="items">
|
|
60
|
-
{#each nodes ?? [] as node, index}
|
|
96
|
+
{`Debug node ${node.label}`}
|
|
97
|
+
</div>
|
|
98
|
+
</MenuItem>
|
|
99
|
+
{/each}
|
|
61
100
|
<MenuItem
|
|
62
101
|
on:click={() => {
|
|
63
|
-
$componentControl?.[id]?.setTab?.(
|
|
102
|
+
$componentControl?.[id]?.setTab?.(0)
|
|
64
103
|
|
|
65
|
-
$debuggingComponents
|
|
104
|
+
$debuggingComponents = Object.fromEntries(
|
|
105
|
+
Object.entries($debuggingComponents).filter(([key]) => key !== id)
|
|
106
|
+
)
|
|
66
107
|
}}
|
|
67
108
|
>
|
|
68
109
|
<div
|
|
69
110
|
class={classNames(
|
|
70
|
-
'!text-
|
|
111
|
+
'!text-red-600 text-left px-4 py-2 gap-2 cursor-pointer hover:bg-gray-100 !text-xs font-semibold'
|
|
71
112
|
)}
|
|
72
113
|
>
|
|
73
|
-
{`
|
|
114
|
+
{`Reset debug mode`}
|
|
74
115
|
</div>
|
|
75
116
|
</MenuItem>
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
$debuggingComponents = Object.fromEntries(
|
|
82
|
-
Object.entries($debuggingComponents).filter(([key]) => key !== id)
|
|
83
|
-
)
|
|
84
|
-
}}
|
|
85
|
-
>
|
|
86
|
-
<div
|
|
87
|
-
class={classNames(
|
|
88
|
-
'!text-red-600 text-left px-4 py-2 gap-2 cursor-pointer hover:bg-gray-100 !text-xs font-semibold'
|
|
89
|
-
)}
|
|
90
|
-
>
|
|
91
|
-
{`Reset debug mode`}
|
|
92
|
-
</div>
|
|
93
|
-
</MenuItem>
|
|
94
|
-
</svelte:fragment>
|
|
95
|
-
</ButtonDropdown>
|
|
96
|
-
</button>
|
|
117
|
+
</svelte:fragment>
|
|
118
|
+
</ButtonDropdown>
|
|
119
|
+
</button>
|
|
120
|
+
{/key}
|
|
@@ -17,11 +17,9 @@ let deploymentMsgUpdateMode = false;
|
|
|
17
17
|
let deploymentMsgUpdate = undefined;
|
|
18
18
|
$: selectedVersion !== undefined && loadValue(selectedVersion.version);
|
|
19
19
|
async function loadVersions() {
|
|
20
|
-
console.log('loading versions');
|
|
21
20
|
if (appPath === undefined) {
|
|
22
21
|
return;
|
|
23
22
|
}
|
|
24
|
-
console.log('loading versions');
|
|
25
23
|
loading = true;
|
|
26
24
|
versions = await AppService.getAppHistoryByPath({
|
|
27
25
|
workspace: $workspaceStore,
|
|
@@ -77,4 +77,5 @@ export declare const ROW_HEIGHT = 36;
|
|
|
77
77
|
export declare const ROW_GAP_Y = 2;
|
|
78
78
|
export declare const ROW_GAP_X = 4;
|
|
79
79
|
export declare function maxHeight(grid: GridItem[], windowHeight: number, breakpoint?: EditorBreakpoint): number;
|
|
80
|
+
export declare function isTableAction(id: string, app: App): boolean;
|
|
80
81
|
export {};
|
|
@@ -707,3 +707,20 @@ export function maxHeight(grid, windowHeight, breakpoint = 'lg') {
|
|
|
707
707
|
}, 0);
|
|
708
708
|
return Math.max(maxRowPerGrid, maxRows);
|
|
709
709
|
}
|
|
710
|
+
export function isTableAction(id, app) {
|
|
711
|
+
const [tableId, actionId] = id.split('_');
|
|
712
|
+
if (!tableId || !actionId) {
|
|
713
|
+
return false;
|
|
714
|
+
}
|
|
715
|
+
const table = findGridItem(app, tableId);
|
|
716
|
+
if (!table ||
|
|
717
|
+
(table.data.type !== 'tablecomponent' &&
|
|
718
|
+
table.data.type !== 'aggridcomponent' &&
|
|
719
|
+
table.data.type !== 'aggridcomponentee' &&
|
|
720
|
+
table.data.type !== 'dbexplorercomponent' &&
|
|
721
|
+
table.data.type !== 'aggridinfinitecomponent' &&
|
|
722
|
+
table.data.type !== 'aggridinfinitecomponentee')) {
|
|
723
|
+
return false;
|
|
724
|
+
}
|
|
725
|
+
return true;
|
|
726
|
+
}
|
|
@@ -71,6 +71,8 @@ import AppPdf from '../../components/display/AppPdf.svelte';
|
|
|
71
71
|
import AppCurrencyInput from '../../components/inputs/currency/AppCurrencyInput.svelte';
|
|
72
72
|
import AppSliderInputs from '../../components/inputs/AppSliderInputs.svelte';
|
|
73
73
|
import AppNumberInput from '../../components/inputs/AppNumberInput.svelte';
|
|
74
|
+
import AppNavbar from '../../components/display/AppNavbar.svelte';
|
|
75
|
+
import AppDateSelect from '../../components/inputs/AppDateSelect.svelte';
|
|
74
76
|
export let component;
|
|
75
77
|
export let selected;
|
|
76
78
|
export let locked = false;
|
|
@@ -90,6 +92,11 @@ function mouseOut() {
|
|
|
90
92
|
outTimeout && clearTimeout(outTimeout);
|
|
91
93
|
outTimeout = setTimeout(() => {
|
|
92
94
|
if ($hoverStore !== undefined) {
|
|
95
|
+
// In order to avoid flickering when hovering over table actions,
|
|
96
|
+
// we leave the actions to manage the hover state
|
|
97
|
+
if ($hoverStore.startsWith(`${component.id}_`)) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
93
100
|
$hoverStore = undefined;
|
|
94
101
|
}
|
|
95
102
|
}, 50);
|
|
@@ -812,6 +819,22 @@ function mouseOut() {
|
|
|
812
819
|
verticalAlignment={component.verticalAlignment}
|
|
813
820
|
{render}
|
|
814
821
|
/>
|
|
822
|
+
{:else if component.type === 'navbarcomponent'}
|
|
823
|
+
<AppNavbar
|
|
824
|
+
id={component.id}
|
|
825
|
+
configuration={component.configuration}
|
|
826
|
+
customCss={component.customCss}
|
|
827
|
+
navbarItems={component.navbarItems}
|
|
828
|
+
{render}
|
|
829
|
+
/>
|
|
830
|
+
{:else if component.type === 'dateselectcomponent'}
|
|
831
|
+
<AppDateSelect
|
|
832
|
+
id={component.id}
|
|
833
|
+
configuration={component.configuration}
|
|
834
|
+
customCss={component.customCss}
|
|
835
|
+
verticalAlignment={component.verticalAlignment}
|
|
836
|
+
{render}
|
|
837
|
+
/>
|
|
815
838
|
{/if}
|
|
816
839
|
</div>
|
|
817
840
|
</div>
|