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
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
declare const __propDef: {
|
|
3
|
+
props: {
|
|
4
|
+
value: string;
|
|
5
|
+
};
|
|
6
|
+
events: {
|
|
7
|
+
[evt: string]: CustomEvent<any>;
|
|
8
|
+
};
|
|
9
|
+
slots: {};
|
|
10
|
+
};
|
|
11
|
+
export type SummaryProps = typeof __propDef.props;
|
|
12
|
+
export type SummaryEvents = typeof __propDef.events;
|
|
13
|
+
export type SummarySlots = typeof __propDef.slots;
|
|
14
|
+
export default class Summary extends SvelteComponent<SummaryProps, SummaryEvents, SummarySlots> {
|
|
15
|
+
}
|
|
16
|
+
export {};
|
|
@@ -7,6 +7,7 @@ import { classNames } from '../../../../utils';
|
|
|
7
7
|
import { components } from '../../editor/component';
|
|
8
8
|
import ResolveConfig from '../helpers/ResolveConfig.svelte';
|
|
9
9
|
import ResolveStyle from '../helpers/ResolveStyle.svelte';
|
|
10
|
+
import { gfmPlugin } from 'svelte-exmarkdown/gfm';
|
|
10
11
|
export let id;
|
|
11
12
|
export let componentInput;
|
|
12
13
|
export let initializing = undefined;
|
|
@@ -54,7 +55,7 @@ const proseMapping = {
|
|
|
54
55
|
e?.preventDefault()
|
|
55
56
|
}}
|
|
56
57
|
class={classNames(
|
|
57
|
-
'h-full w-full overflow-y-auto prose',
|
|
58
|
+
'h-full w-full overflow-y-auto prose max-w-full',
|
|
58
59
|
resolvedConfig?.size ? proseMapping[resolvedConfig.size] : '',
|
|
59
60
|
css?.container?.class,
|
|
60
61
|
' dark:prose-invert',
|
|
@@ -73,7 +74,7 @@ const proseMapping = {
|
|
|
73
74
|
>
|
|
74
75
|
{#if result}
|
|
75
76
|
{#key result}
|
|
76
|
-
<Markdown md={result} />
|
|
77
|
+
<Markdown md={result} plugins={[gfmPlugin()]} />
|
|
77
78
|
{/key}
|
|
78
79
|
{/if}
|
|
79
80
|
</RunnableWrapper>
|
|
@@ -72,12 +72,12 @@ async function handleAfterIcon() {
|
|
|
72
72
|
btnClasses={twMerge(
|
|
73
73
|
css?.button?.class,
|
|
74
74
|
'wm-button',
|
|
75
|
-
'wm-
|
|
75
|
+
'wm-menu-button',
|
|
76
76
|
resolvedConfig.fillContainer ? 'w-full h-full' : ''
|
|
77
77
|
)}
|
|
78
78
|
wrapperClasses={twMerge(
|
|
79
79
|
'wm-button-container',
|
|
80
|
-
'wm-
|
|
80
|
+
'wm-menu-button-container',
|
|
81
81
|
resolvedConfig.fillContainer ? 'w-full h-full' : ''
|
|
82
82
|
)}
|
|
83
83
|
style={css?.button?.style}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
<script>import { getContext } from 'svelte';
|
|
2
|
+
import { initConfig, initOutput } from '../../editor/appUtils';
|
|
3
|
+
import { initCss } from '../../utils';
|
|
4
|
+
import { components } from '../../editor/component';
|
|
5
|
+
import ResolveConfig from '../helpers/ResolveConfig.svelte';
|
|
6
|
+
import ResolveStyle from '../helpers/ResolveStyle.svelte';
|
|
7
|
+
import InitializeComponent from '../helpers/InitializeComponent.svelte';
|
|
8
|
+
import Popover from '../../../Popover.svelte';
|
|
9
|
+
import { twMerge } from 'tailwind-merge';
|
|
10
|
+
import AppNavbarItem from './AppNavbarItem.svelte';
|
|
11
|
+
export let id;
|
|
12
|
+
export let configuration;
|
|
13
|
+
export let customCss = undefined;
|
|
14
|
+
export let render;
|
|
15
|
+
export let navbarItems = [];
|
|
16
|
+
const { app, worldStore } = getContext('AppViewerContext');
|
|
17
|
+
let resolvedConfig = initConfig(components['navbarcomponent'].initialData.configuration, configuration);
|
|
18
|
+
let output = initOutput($worldStore, id, {
|
|
19
|
+
result: {
|
|
20
|
+
currentPath: undefined
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
let css = initCss($app.css?.navbarcomponent, customCss);
|
|
24
|
+
</script>
|
|
25
|
+
|
|
26
|
+
{#each Object.keys(components['navbarcomponent'].initialData.configuration) as key (key)}
|
|
27
|
+
<ResolveConfig
|
|
28
|
+
{id}
|
|
29
|
+
{key}
|
|
30
|
+
bind:resolvedConfig={resolvedConfig[key]}
|
|
31
|
+
configuration={configuration[key]}
|
|
32
|
+
/>
|
|
33
|
+
{/each}
|
|
34
|
+
|
|
35
|
+
{#each Object.keys(css ?? {}) as key (key)}
|
|
36
|
+
<ResolveStyle
|
|
37
|
+
{id}
|
|
38
|
+
{customCss}
|
|
39
|
+
{key}
|
|
40
|
+
bind:css={css[key]}
|
|
41
|
+
componentStyle={$app.css?.navbarcomponent}
|
|
42
|
+
/>
|
|
43
|
+
{/each}
|
|
44
|
+
|
|
45
|
+
<InitializeComponent {id} />
|
|
46
|
+
{#if render}
|
|
47
|
+
<div
|
|
48
|
+
class={twMerge(
|
|
49
|
+
resolvedConfig?.orientation === 'horizontal'
|
|
50
|
+
? 'flex flex-row w-full items-center border-b px-4 gap-4 h-12'
|
|
51
|
+
: 'flex flex-col h-full items-start border-r px-8 gap-2 w-56 mt-4'
|
|
52
|
+
)}
|
|
53
|
+
>
|
|
54
|
+
{#if resolvedConfig.logo?.selected === 'yes'}
|
|
55
|
+
<img
|
|
56
|
+
on:pointerdown|preventDefault
|
|
57
|
+
src={resolvedConfig.logo?.configuration?.yes?.sourceKind == 'png encoded as base64'
|
|
58
|
+
? 'data:image/png;base64,' + resolvedConfig.logo?.configuration?.yes?.source
|
|
59
|
+
: resolvedConfig.logo?.configuration?.yes?.sourceKind == 'jpeg encoded as base64'
|
|
60
|
+
? 'data:image/jpeg;base64,' + resolvedConfig.logo?.configuration?.yes?.source
|
|
61
|
+
: resolvedConfig.logo?.configuration?.yes?.sourceKind == 'svg encoded as base64'
|
|
62
|
+
? 'data:image/svg+xml;base64,' + resolvedConfig.logo?.configuration?.yes?.source
|
|
63
|
+
: resolvedConfig.logo?.configuration?.yes?.source}
|
|
64
|
+
alt={resolvedConfig.logo?.configuration?.yes?.altText}
|
|
65
|
+
style={css?.image?.style ?? ''}
|
|
66
|
+
class={twMerge(`w-auto h-8`, css?.image?.class, 'wm-image')}
|
|
67
|
+
/>
|
|
68
|
+
{/if}
|
|
69
|
+
<div class="font-semibold">
|
|
70
|
+
{resolvedConfig?.title ?? 'No Title'}
|
|
71
|
+
</div>
|
|
72
|
+
<div
|
|
73
|
+
class={twMerge(
|
|
74
|
+
resolvedConfig?.orientation === 'horizontal'
|
|
75
|
+
? 'flex flex-row gap-4 overflow-x-auto'
|
|
76
|
+
: 'flex flex-col gap-4 overflow-y-auto'
|
|
77
|
+
)}
|
|
78
|
+
>
|
|
79
|
+
{#each navbarItems ?? [] as navbarItem, index (index)}
|
|
80
|
+
<Popover notClickable disablePopup={!Boolean(navbarItem.caption)}>
|
|
81
|
+
<svelte:fragment slot="text">{navbarItem.caption}</svelte:fragment>
|
|
82
|
+
<AppNavbarItem
|
|
83
|
+
{navbarItem}
|
|
84
|
+
{id}
|
|
85
|
+
borderColor={resolvedConfig?.borderColor}
|
|
86
|
+
{index}
|
|
87
|
+
bind:output
|
|
88
|
+
orientation={resolvedConfig?.orientation}
|
|
89
|
+
/>
|
|
90
|
+
</Popover>
|
|
91
|
+
{/each}
|
|
92
|
+
</div>
|
|
93
|
+
</div>
|
|
94
|
+
{/if}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
import type { ComponentCustomCSS, RichConfigurations } from '../../types';
|
|
3
|
+
import { type NavbarItem } from '../../editor/component';
|
|
4
|
+
declare const __propDef: {
|
|
5
|
+
props: {
|
|
6
|
+
id: string;
|
|
7
|
+
configuration: RichConfigurations;
|
|
8
|
+
customCss?: ComponentCustomCSS<'navbarcomponent'> | undefined;
|
|
9
|
+
render: boolean;
|
|
10
|
+
navbarItems?: NavbarItem[] | undefined;
|
|
11
|
+
};
|
|
12
|
+
events: {
|
|
13
|
+
pointerdown: PointerEvent;
|
|
14
|
+
} & {
|
|
15
|
+
[evt: string]: CustomEvent<any>;
|
|
16
|
+
};
|
|
17
|
+
slots: {};
|
|
18
|
+
};
|
|
19
|
+
export type AppNavbarProps = typeof __propDef.props;
|
|
20
|
+
export type AppNavbarEvents = typeof __propDef.events;
|
|
21
|
+
export type AppNavbarSlots = typeof __propDef.slots;
|
|
22
|
+
export default class AppNavbar extends SvelteComponent<AppNavbarProps, AppNavbarEvents, AppNavbarSlots> {
|
|
23
|
+
}
|
|
24
|
+
export {};
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
<script context="module">import { writable } from 'svelte/store';
|
|
2
|
+
let selected = writable(undefined);
|
|
3
|
+
</script>
|
|
4
|
+
|
|
5
|
+
<script>import { getContext, onMount } from 'svelte';
|
|
6
|
+
import {} from '../../editor/component';
|
|
7
|
+
import Button from '../../../common/button/Button.svelte';
|
|
8
|
+
import { loadIcon } from '../icon';
|
|
9
|
+
import ResolveConfig from '../helpers/ResolveConfig.svelte';
|
|
10
|
+
import { twMerge } from 'tailwind-merge';
|
|
11
|
+
import ResolveNavbarItemPath from './ResolveNavbarItemPath.svelte';
|
|
12
|
+
export let navbarItem;
|
|
13
|
+
export let id;
|
|
14
|
+
export let borderColor = undefined;
|
|
15
|
+
export let index;
|
|
16
|
+
export let output;
|
|
17
|
+
export let orientation = undefined;
|
|
18
|
+
let icon;
|
|
19
|
+
$: navbarItem.icon && icon && handleIcon();
|
|
20
|
+
async function handleIcon() {
|
|
21
|
+
if (navbarItem.icon) {
|
|
22
|
+
icon = await loadIcon(navbarItem.icon, icon, 14, undefined, undefined);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
const { appPath, replaceStateFn, gotoFn, isEditor, worldStore } = getContext('AppViewerContext');
|
|
26
|
+
let resolvedPath = undefined;
|
|
27
|
+
let resolvedLabel = undefined;
|
|
28
|
+
let resolvedDisabled = undefined;
|
|
29
|
+
let resolvedHidden = undefined;
|
|
30
|
+
function extractPathDetails() {
|
|
31
|
+
const url = window.location.pathname + window.location.search + window.location.hash;
|
|
32
|
+
const processedUrl = url.replace('/apps/edit/', '').replace('/apps/get/', '');
|
|
33
|
+
return processedUrl;
|
|
34
|
+
}
|
|
35
|
+
onMount(() => {
|
|
36
|
+
$selected = resolvedPath === extractPathDetails() ? resolvedPath : undefined;
|
|
37
|
+
});
|
|
38
|
+
let initialized = false;
|
|
39
|
+
function initSelection() {
|
|
40
|
+
initialized = true;
|
|
41
|
+
if ($selected)
|
|
42
|
+
return;
|
|
43
|
+
$selected = resolvedPath === extractPathDetails() ? resolvedPath : undefined;
|
|
44
|
+
}
|
|
45
|
+
$: !initialized && resolvedPath && initSelection();
|
|
46
|
+
function getButtonProps(resolvedPath) {
|
|
47
|
+
if (appPath && resolvedPath?.includes(appPath)) {
|
|
48
|
+
return {
|
|
49
|
+
onClick: () => {
|
|
50
|
+
output.result.set({ currentPath: resolvedPath ?? '' });
|
|
51
|
+
if (!resolvedPath)
|
|
52
|
+
return;
|
|
53
|
+
const url = new URL(resolvedPath, window.location.origin);
|
|
54
|
+
const queryParams = url.search;
|
|
55
|
+
const hash = url.hash;
|
|
56
|
+
replaceStateFn?.(`${window.location.pathname}${queryParams}${hash}`);
|
|
57
|
+
$worldStore.outputsById['ctx'].query.set(Object.fromEntries(new URLSearchParams(queryParams).entries()));
|
|
58
|
+
$worldStore.outputsById['ctx'].hash.set(url.hash);
|
|
59
|
+
$selected = resolvedPath === extractPathDetails() ? resolvedPath : undefined;
|
|
60
|
+
},
|
|
61
|
+
href: undefined,
|
|
62
|
+
target: undefined
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
else if (navbarItem.path.selected === 'app') {
|
|
66
|
+
if (isEditor) {
|
|
67
|
+
return {
|
|
68
|
+
href: `/apps/get/${resolvedPath}`,
|
|
69
|
+
target: '_blank',
|
|
70
|
+
onClick: undefined
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
return {
|
|
75
|
+
onClick: () => {
|
|
76
|
+
if (resolvedPath) {
|
|
77
|
+
gotoFn?.(`/apps/get/${resolvedPath}`);
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
href: undefined,
|
|
81
|
+
target: undefined
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
return {
|
|
87
|
+
href: resolvedPath,
|
|
88
|
+
target: '_blank',
|
|
89
|
+
onClick: undefined
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
$: buttonProps = getButtonProps(resolvedPath);
|
|
94
|
+
</script>
|
|
95
|
+
|
|
96
|
+
<ResolveNavbarItemPath {navbarItem} {id} {index} bind:resolvedPath />
|
|
97
|
+
|
|
98
|
+
<ResolveConfig
|
|
99
|
+
{id}
|
|
100
|
+
key={'label'}
|
|
101
|
+
extraKey={String(index)}
|
|
102
|
+
bind:resolvedConfig={resolvedLabel}
|
|
103
|
+
configuration={navbarItem.label}
|
|
104
|
+
/>
|
|
105
|
+
|
|
106
|
+
<ResolveConfig
|
|
107
|
+
{id}
|
|
108
|
+
key={'disabled'}
|
|
109
|
+
extraKey={String(index)}
|
|
110
|
+
bind:resolvedConfig={resolvedDisabled}
|
|
111
|
+
configuration={navbarItem.disabled}
|
|
112
|
+
/>
|
|
113
|
+
|
|
114
|
+
<ResolveConfig
|
|
115
|
+
{id}
|
|
116
|
+
key={'hidden'}
|
|
117
|
+
extraKey={String(index)}
|
|
118
|
+
bind:resolvedConfig={resolvedHidden}
|
|
119
|
+
configuration={navbarItem.hidden}
|
|
120
|
+
/>
|
|
121
|
+
|
|
122
|
+
{#if !resolvedHidden}
|
|
123
|
+
<div
|
|
124
|
+
class={twMerge('py-2 border-b-2')}
|
|
125
|
+
style={`border-color: ${
|
|
126
|
+
$selected === resolvedPath ? borderColor ?? 'transparent' : 'transparent'
|
|
127
|
+
}`}
|
|
128
|
+
>
|
|
129
|
+
<Button
|
|
130
|
+
on:click={buttonProps.onClick}
|
|
131
|
+
href={buttonProps.href}
|
|
132
|
+
target={buttonProps.target ?? '_self'}
|
|
133
|
+
color="light"
|
|
134
|
+
size="xs"
|
|
135
|
+
disabled={resolvedDisabled}
|
|
136
|
+
btnClasses={orientation === 'vertical' ? '!justify-start !whitespace-normal !text-left' : ''}
|
|
137
|
+
>
|
|
138
|
+
{#if navbarItem.icon}
|
|
139
|
+
{#key navbarItem.icon}
|
|
140
|
+
<div class="min-w-4" bind:this={icon} />
|
|
141
|
+
{/key}
|
|
142
|
+
{/if}
|
|
143
|
+
{resolvedLabel ?? 'No Label'}
|
|
144
|
+
</Button>
|
|
145
|
+
</div>
|
|
146
|
+
{/if}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
import { type NavbarItem } from '../../editor/component';
|
|
3
|
+
import type { Output } from '../../rx';
|
|
4
|
+
declare const __propDef: {
|
|
5
|
+
props: {
|
|
6
|
+
navbarItem: NavbarItem;
|
|
7
|
+
id: string;
|
|
8
|
+
borderColor?: string | undefined;
|
|
9
|
+
index: number;
|
|
10
|
+
output: {
|
|
11
|
+
result: Output<{
|
|
12
|
+
currentPath: string;
|
|
13
|
+
}>;
|
|
14
|
+
};
|
|
15
|
+
orientation?: 'horizontal' | 'vertical' | undefined;
|
|
16
|
+
};
|
|
17
|
+
events: {
|
|
18
|
+
[evt: string]: CustomEvent<any>;
|
|
19
|
+
};
|
|
20
|
+
slots: {};
|
|
21
|
+
};
|
|
22
|
+
export type AppNavbarItemProps = typeof __propDef.props;
|
|
23
|
+
export type AppNavbarItemEvents = typeof __propDef.events;
|
|
24
|
+
export type AppNavbarItemSlots = typeof __propDef.slots;
|
|
25
|
+
export default class AppNavbarItem extends SvelteComponent<AppNavbarItemProps, AppNavbarItemEvents, AppNavbarItemSlots> {
|
|
26
|
+
}
|
|
27
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<script>import {} from '../../editor/component';
|
|
2
|
+
import ResolveConfig from '../helpers/ResolveConfig.svelte';
|
|
3
|
+
import { initConfig } from '../../editor/appUtils';
|
|
4
|
+
export let navbarItem;
|
|
5
|
+
export let id;
|
|
6
|
+
export let index;
|
|
7
|
+
export let resolvedPath = undefined;
|
|
8
|
+
let resolvedConfig = initConfig({ path: navbarItem.path }, { path: navbarItem.path });
|
|
9
|
+
$: resolvedPath = (resolvedConfig?.path?.selected === 'href'
|
|
10
|
+
? resolvedConfig?.path?.configuration?.href?.href
|
|
11
|
+
: resolvedConfig?.path?.configuration?.app?.path +
|
|
12
|
+
(resolvedConfig?.path?.configuration?.app?.queryParamsOrHash ?? ''));
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<ResolveConfig
|
|
16
|
+
{id}
|
|
17
|
+
key={'path'}
|
|
18
|
+
extraKey={String(index)}
|
|
19
|
+
bind:resolvedConfig={resolvedConfig.path}
|
|
20
|
+
configuration={navbarItem.path}
|
|
21
|
+
/>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
import { type NavbarItem } from '../../editor/component';
|
|
3
|
+
declare const __propDef: {
|
|
4
|
+
props: {
|
|
5
|
+
navbarItem: NavbarItem;
|
|
6
|
+
id: string;
|
|
7
|
+
index: number;
|
|
8
|
+
resolvedPath?: string | undefined;
|
|
9
|
+
};
|
|
10
|
+
events: {
|
|
11
|
+
[evt: string]: CustomEvent<any>;
|
|
12
|
+
};
|
|
13
|
+
slots: {};
|
|
14
|
+
};
|
|
15
|
+
export type ResolveNavbarItemPathProps = typeof __propDef.props;
|
|
16
|
+
export type ResolveNavbarItemPathEvents = typeof __propDef.events;
|
|
17
|
+
export type ResolveNavbarItemPathSlots = typeof __propDef.slots;
|
|
18
|
+
export default class ResolveNavbarItemPath extends SvelteComponent<ResolveNavbarItemPathProps, ResolveNavbarItemPathEvents, ResolveNavbarItemPathSlots> {
|
|
19
|
+
}
|
|
20
|
+
export {};
|
|
@@ -37,6 +37,9 @@ function clearColumns() {
|
|
|
37
37
|
if (lastTable && !table) {
|
|
38
38
|
lastTable = undefined;
|
|
39
39
|
}
|
|
40
|
+
clearColumnDefs();
|
|
41
|
+
}
|
|
42
|
+
function clearColumnDefs() {
|
|
40
43
|
const gridItem = findGridItem($app, id);
|
|
41
44
|
if (!gridItem) {
|
|
42
45
|
return;
|
|
@@ -170,6 +173,10 @@ let datasource = {
|
|
|
170
173
|
if (!render) {
|
|
171
174
|
return;
|
|
172
175
|
}
|
|
176
|
+
if (!runnableComponent) {
|
|
177
|
+
params.successCallback([], 0);
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
173
180
|
runnableComponent?.runComponent(undefined, undefined, undefined, currentParams, {
|
|
174
181
|
done: (items) => {
|
|
175
182
|
let lastRow = -1;
|
|
@@ -298,6 +305,10 @@ async function listColumnsIfAvailable() {
|
|
|
298
305
|
return o;
|
|
299
306
|
});
|
|
300
307
|
state = undefined;
|
|
308
|
+
// If in the mean time the table has changed, we don't want to update the columnDefs
|
|
309
|
+
if (lastTable !== table) {
|
|
310
|
+
return;
|
|
311
|
+
}
|
|
301
312
|
//@ts-ignore
|
|
302
313
|
gridItem.data.configuration.columnDefs = { value: ncols, type: 'static', loading: false };
|
|
303
314
|
gridItem.data = gridItem.data;
|
|
@@ -489,6 +500,11 @@ let loading = false;
|
|
|
489
500
|
on:update={onUpdate}
|
|
490
501
|
on:delete={onDelete}
|
|
491
502
|
allowColumnDefsActions={false}
|
|
503
|
+
on:recompute={() => {
|
|
504
|
+
lastTable = undefined
|
|
505
|
+
clearColumnDefs()
|
|
506
|
+
listColumnsIfAvailable()
|
|
507
|
+
}}
|
|
492
508
|
{actions}
|
|
493
509
|
/>
|
|
494
510
|
{/key}
|
|
@@ -26,6 +26,7 @@ export let result = undefined;
|
|
|
26
26
|
export let allowColumnDefsActions = true;
|
|
27
27
|
let inputs = {};
|
|
28
28
|
const context = getContext('AppViewerContext');
|
|
29
|
+
const contextPanel = getContext('ContextPanel');
|
|
29
30
|
const { app, selectedComponent, componentControl, darkMode } = context;
|
|
30
31
|
let css = initCss($app.css?.aggridcomponent, customCss);
|
|
31
32
|
let selectedRowIndex = -1;
|
|
@@ -90,6 +91,10 @@ $: actions && refreshActions(actions);
|
|
|
90
91
|
const tableActionsFactory = cellRendererFactory((c, p) => {
|
|
91
92
|
const rowIndex = p.node.rowIndex ?? 0;
|
|
92
93
|
const row = p.data;
|
|
94
|
+
const componentContext = new Map([
|
|
95
|
+
['AppViewerContext', context],
|
|
96
|
+
['ContextPanel', contextPanel]
|
|
97
|
+
]);
|
|
93
98
|
new AppAggridTableActions({
|
|
94
99
|
target: c.eGui,
|
|
95
100
|
props: {
|
|
@@ -125,7 +130,7 @@ const tableActionsFactory = cellRendererFactory((c, p) => {
|
|
|
125
130
|
outputs?.inputs.set(inputs, true);
|
|
126
131
|
}
|
|
127
132
|
},
|
|
128
|
-
context:
|
|
133
|
+
context: componentContext
|
|
129
134
|
});
|
|
130
135
|
});
|
|
131
136
|
function transformColumnDefs(columnDefs) {
|
|
@@ -170,7 +175,9 @@ function transformColumnDefs(columnDefs) {
|
|
|
170
175
|
}
|
|
171
176
|
if (actions && actions.length > 0) {
|
|
172
177
|
r.push({
|
|
173
|
-
headerName:
|
|
178
|
+
headerName: resolvedConfig?.customActionsHeader
|
|
179
|
+
? resolvedConfig?.customActionsHeader
|
|
180
|
+
: 'Actions',
|
|
174
181
|
cellRenderer: tableActionsFactory,
|
|
175
182
|
autoHeight: true,
|
|
176
183
|
cellStyle: { textAlign: 'center' },
|
|
@@ -251,6 +258,9 @@ function mountGrid() {
|
|
|
251
258
|
agGrid: { api: e.api, columnApi: e.columnApi },
|
|
252
259
|
setSelectedIndex: (index) => {
|
|
253
260
|
e.api.getRowNode(index.toString())?.setSelected(true);
|
|
261
|
+
},
|
|
262
|
+
recompute: () => {
|
|
263
|
+
dispatch('recompute');
|
|
254
264
|
}
|
|
255
265
|
};
|
|
256
266
|
api = e.api;
|
|
@@ -382,17 +392,3 @@ function updateOptions() {
|
|
|
382
392
|
{/if}
|
|
383
393
|
</div>
|
|
384
394
|
</SyncColumnDefs>
|
|
385
|
-
|
|
386
|
-
<style>
|
|
387
|
-
.ag-theme-alpine {
|
|
388
|
-
--ag-row-border-style: solid;
|
|
389
|
-
--ag-border-color: rgb(209 213 219);
|
|
390
|
-
--ag-header-border-style: solid;
|
|
391
|
-
--ag-border-radius: 0;
|
|
392
|
-
--ag-alpine-active-color: #d1d5db;
|
|
393
|
-
}
|
|
394
|
-
|
|
395
|
-
.ag-theme-alpine-dark {
|
|
396
|
-
--ag-border-color: #4b5563;
|
|
397
|
-
--ag-alpine-active-color: #64748b;
|
|
398
|
-
}</style>
|
|
@@ -66,6 +66,11 @@ const datasource = {
|
|
|
66
66
|
outputs.params.set(currentParams);
|
|
67
67
|
if (!runnableComponent && result) {
|
|
68
68
|
params.successCallback(result, result.length);
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
if (!runnableComponent && !result) {
|
|
72
|
+
params.successCallback([], 0);
|
|
73
|
+
return;
|
|
69
74
|
}
|
|
70
75
|
runnableComponent?.runComponent(undefined, undefined, undefined, currentParams, {
|
|
71
76
|
done: (items) => {
|
|
@@ -27,6 +27,7 @@ export let render;
|
|
|
27
27
|
export let customCss = undefined;
|
|
28
28
|
export let actions = undefined;
|
|
29
29
|
const context = getContext('AppViewerContext');
|
|
30
|
+
const contextPanel = getContext('ContextPanel');
|
|
30
31
|
const iterContext = getContext('ListWrapperContext');
|
|
31
32
|
const listInputs = getContext('ListInputs');
|
|
32
33
|
const { app, worldStore, selectedComponent, componentControl, darkMode } = context;
|
|
@@ -142,6 +143,10 @@ let inputs = {};
|
|
|
142
143
|
const tableActionsFactory = cellRendererFactory((c, p) => {
|
|
143
144
|
const rowIndex = p.node.rowIndex ?? 0;
|
|
144
145
|
const row = p.data;
|
|
146
|
+
const componentContext = new Map([
|
|
147
|
+
['AppViewerContext', context],
|
|
148
|
+
['ContextPanel', contextPanel]
|
|
149
|
+
]);
|
|
145
150
|
new AppAggridTableActions({
|
|
146
151
|
target: c.eGui,
|
|
147
152
|
props: {
|
|
@@ -177,7 +182,7 @@ const tableActionsFactory = cellRendererFactory((c, p) => {
|
|
|
177
182
|
outputs?.inputs.set(inputs, true);
|
|
178
183
|
}
|
|
179
184
|
},
|
|
180
|
-
context:
|
|
185
|
+
context: componentContext
|
|
181
186
|
});
|
|
182
187
|
});
|
|
183
188
|
function mountGrid() {
|
|
@@ -189,7 +194,9 @@ function mountGrid() {
|
|
|
189
194
|
// Add the action column if actions are defined
|
|
190
195
|
if (actions && actions.length > 0) {
|
|
191
196
|
columnDefs.push({
|
|
192
|
-
headerName:
|
|
197
|
+
headerName: resolvedConfig?.customActionsHeader
|
|
198
|
+
? resolvedConfig?.customActionsHeader
|
|
199
|
+
: 'Actions',
|
|
193
200
|
cellRenderer: tableActionsFactory,
|
|
194
201
|
autoHeight: true,
|
|
195
202
|
cellStyle: { textAlign: 'center' },
|
|
@@ -316,7 +323,9 @@ function updateOptions() {
|
|
|
316
323
|
// Add the action column if actions are defined
|
|
317
324
|
if (actions && actions.length > 0) {
|
|
318
325
|
columnDefs.push({
|
|
319
|
-
headerName:
|
|
326
|
+
headerName: resolvedConfig?.customActionsHeader
|
|
327
|
+
? resolvedConfig?.customActionsHeader
|
|
328
|
+
: 'Actions',
|
|
320
329
|
cellRenderer: tableActionsFactory,
|
|
321
330
|
autoHeight: true,
|
|
322
331
|
cellStyle: { textAlign: 'center' },
|
|
@@ -516,8 +525,8 @@ let footerRenderCount = 0;
|
|
|
516
525
|
</SyncColumnDefs>
|
|
517
526
|
</RunnableWrapper>
|
|
518
527
|
|
|
519
|
-
<style>
|
|
520
|
-
.ag-theme-alpine {
|
|
528
|
+
<style global>
|
|
529
|
+
:global(.ag-theme-alpine) {
|
|
521
530
|
--ag-row-border-style: solid;
|
|
522
531
|
--ag-border-color: rgb(209 213 219);
|
|
523
532
|
--ag-header-border-style: solid;
|
|
@@ -525,7 +534,20 @@ let footerRenderCount = 0;
|
|
|
525
534
|
--ag-alpine-active-color: #d1d5db;
|
|
526
535
|
}
|
|
527
536
|
|
|
528
|
-
.ag-theme-alpine-dark {
|
|
537
|
+
:global(.ag-theme-alpine-dark) {
|
|
529
538
|
--ag-border-color: #4b5563;
|
|
530
539
|
--ag-alpine-active-color: #64748b;
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
:global(.grid-cell-centered) {
|
|
543
|
+
display: flex;
|
|
544
|
+
align-items: center;
|
|
545
|
+
justify-content: center;
|
|
546
|
+
}
|
|
547
|
+
:global(.grid-cell-centered) :global(.svelte-select) {
|
|
548
|
+
height: 32px !important;
|
|
549
|
+
}
|
|
550
|
+
|
|
551
|
+
:global(.grid-cell-centered) :global(.selected-item) {
|
|
552
|
+
margin-top: -4px;
|
|
531
553
|
}</style>
|