windmill-components 1.383.8 → 1.389.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package/assets/app.css +25 -1
- package/package/components/ArgInput.svelte +2 -1
- package/package/components/ChangeInstanceUsername.svelte +9 -108
- package/package/components/ChangeInstanceUsernameInner.svelte +112 -0
- package/package/components/ChangeInstanceUsernameInner.svelte.d.ts +21 -0
- package/package/components/DiffDrawer.svelte +27 -20
- package/package/components/DiffEditor.svelte +13 -1
- package/package/components/DisplayResult.svelte +39 -9
- package/package/components/DropdownV2.svelte +4 -26
- package/package/components/DropdownV2.svelte.d.ts +9 -1
- package/package/components/DropdownV2Inner.svelte +42 -0
- package/package/components/DropdownV2Inner.svelte.d.ts +40 -0
- package/package/components/Editor.svelte +142 -128
- package/package/components/Editor.svelte.d.ts +5 -4
- package/package/components/EditorBar.svelte +9 -11
- package/package/components/EditorSettings.svelte +44 -0
- package/package/components/EditorSettings.svelte.d.ts +17 -0
- package/package/components/EditorTheme.svelte +1 -1
- package/package/components/ErrorOrRecoveryHandler.svelte +27 -20
- package/package/components/FlowBuilder.svelte +17 -3
- package/package/components/FlowBuilder.svelte.d.ts +3 -0
- package/package/components/FlowGraphViewerStep.svelte +1 -1
- package/package/components/FlowStatusViewer.svelte +3 -1
- package/package/components/FlowStatusViewer.svelte.d.ts +1 -0
- package/package/components/FlowStatusViewerInner.svelte +5 -2
- package/package/components/FlowViewerInner.svelte +3 -7
- package/package/components/FormatOnSave.svelte +12 -29
- package/package/components/GraphqlSchemaViewer.svelte +1 -1
- package/package/components/GraphqlSchemaViewer.svelte.d.ts +1 -1
- package/package/components/HighlightCode.svelte +3 -0
- package/package/components/InstanceNameEditor.svelte +64 -0
- package/package/components/InstanceNameEditor.svelte.d.ts +23 -0
- package/package/components/LightweightArgInput.svelte +6 -11
- package/package/components/LogViewer.svelte +37 -29
- package/package/components/LogViewer.svelte.d.ts +2 -0
- package/package/components/ObjectResourceInput.svelte +1 -1
- package/package/components/ObjectResourceInput.svelte.d.ts +1 -0
- package/package/components/Path.svelte +3 -3
- package/package/components/QueueMetricsDrawer.svelte +6 -218
- package/package/components/QueueMetricsDrawer.svelte.d.ts +2 -3
- package/package/components/QueueMetricsDrawerInner.svelte +211 -0
- package/package/components/QueueMetricsDrawerInner.svelte.d.ts +15 -0
- package/package/components/ResourceEditorDrawer.svelte +14 -11
- package/package/components/ResourceEditorDrawer.svelte.d.ts +1 -1
- package/package/components/ResultJobLoader.svelte.d.ts +1 -1
- package/package/components/S3FilePicker.svelte +20 -8
- package/package/components/ScheduleEditorInner.svelte +497 -469
- package/package/components/ScriptBuilder.svelte +12 -1
- package/package/components/ScriptBuilder.svelte.d.ts +3 -0
- package/package/components/ScriptEditor.svelte +2 -0
- package/package/components/ScriptEditor.svelte.d.ts +2 -1
- package/package/components/ServiceLogsInner.svelte +511 -0
- package/package/components/ServiceLogsInner.svelte.d.ts +20 -0
- package/package/components/SimpleEditor.svelte +75 -37
- package/package/components/SimpleEditor.svelte.d.ts +9 -3
- package/package/components/Summary.svelte +33 -31
- package/package/components/Summary.svelte.d.ts +1 -0
- package/package/components/SuperadminSettings.svelte +28 -10
- package/package/components/TemplateEditor.svelte +1 -1
- package/package/components/TestJobLoader.svelte.d.ts +1 -1
- package/package/components/VimMode.svelte +16 -0
- package/package/components/VimMode.svelte.d.ts +14 -0
- package/package/components/WorkerTagPicker.svelte +4 -1
- package/package/components/WorkspaceGroup.svelte +139 -68
- package/package/components/WorkspaceGroup.svelte.d.ts +3 -0
- package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte +19 -2
- package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +1 -0
- package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte.d.ts +2 -1
- package/package/components/apps/components/display/table/AppAggridInfiniteTableEe.svelte +2 -0
- package/package/components/apps/components/display/table/AppAggridInfiniteTableEe.svelte.d.ts +2 -1
- package/package/components/apps/components/display/table/AppAggridTable.svelte +45 -3
- package/package/components/apps/components/display/table/AppAggridTable.svelte.d.ts +2 -1
- package/package/components/apps/components/display/table/AppAggridTableEe.svelte +2 -0
- package/package/components/apps/components/display/table/AppAggridTableEe.svelte.d.ts +2 -1
- package/package/components/apps/editor/AppEditor.svelte +239 -92
- package/package/components/apps/editor/AppEditorBottomPanel.svelte +22 -0
- package/package/components/apps/editor/AppEditorBottomPanel.svelte.d.ts +24 -0
- package/package/components/apps/editor/AppEditorHeader.svelte +44 -2
- package/package/components/apps/editor/AppEditorHeader.svelte.d.ts +9 -0
- package/package/components/apps/editor/AppExportButton.svelte +1 -1
- package/package/components/apps/editor/AppPreview.svelte +4 -0
- package/package/components/apps/editor/DeploymentHistory.svelte +7 -3
- package/package/components/apps/editor/GridEditor.svelte +4 -13
- package/package/components/apps/editor/RunnableJobPanel.svelte +25 -58
- package/package/components/apps/editor/RunnableJobPanel.svelte.d.ts +10 -1
- package/package/components/apps/editor/RunnalbeJobPanelInner.svelte +56 -0
- package/package/components/apps/editor/RunnalbeJobPanelInner.svelte.d.ts +18 -0
- package/package/components/apps/editor/SubGridEditor.svelte +3 -1
- package/package/components/apps/editor/component/Component.svelte +26 -4
- package/package/components/apps/editor/component/Component.svelte.d.ts +1 -0
- package/package/components/apps/editor/component/components.d.ts +5 -0
- package/package/components/apps/editor/componentsPanel/CssProperty.svelte +2 -0
- package/package/components/apps/editor/componentsPanel/tailwindUtils.js +267 -1
- package/package/components/apps/editor/contextPanel/ContextPanel.svelte +9 -1
- package/package/components/apps/editor/contextPanel/ContextPanel.svelte.d.ts +2 -0
- package/package/components/apps/editor/inlineScriptsPanel/CacheTtlPopup.svelte +1 -0
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +4 -0
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +7 -2
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte.d.ts +5 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte +14 -2
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte.d.ts +1 -0
- package/package/components/apps/editor/settingsPanel/ComponentPanel.svelte +25 -5
- package/package/components/apps/editor/settingsPanel/HideButton.svelte +47 -0
- package/package/components/apps/editor/settingsPanel/HideButton.svelte.d.ts +22 -0
- package/package/components/apps/editor/settingsPanel/TableActions.svelte +43 -4
- package/package/components/apps/editor/settingsPanel/TableActions.svelte.d.ts +2 -1
- package/package/components/apps/editor/settingsPanel/inputEditor/JsonEditor.svelte +2 -1
- package/package/components/apps/editor/settingsPanel/inputEditor/JsonEditor.svelte.d.ts +1 -0
- package/package/components/apps/svelte-grid/Grid.svelte +6 -2
- package/package/components/apps/svelte-grid/Grid.svelte.d.ts +1 -0
- package/package/components/apps/svelte-grid/MoveResize.svelte +11 -3
- package/package/components/apps/svelte-grid/MoveResize.svelte.d.ts +1 -0
- package/package/components/apps/svelte-grid/utils/item.d.ts +4 -1
- package/package/components/apps/svelte-grid/utils/item.js +11 -4
- package/package/components/build_workers.d.ts +1 -1
- package/package/components/build_workers.js +16 -122
- package/package/components/common/button/Button.svelte.d.ts +2 -2
- package/package/components/common/calendarPicker/CalendarPicker.svelte +6 -2
- package/package/components/common/calendarPicker/CalendarPicker.svelte.d.ts +2 -0
- package/package/components/common/drawer/ConditionalPortal.svelte +2 -1
- package/package/components/common/drawer/ConditionalPortal.svelte.d.ts +1 -0
- package/package/components/common/languageIcons/LanguageIcon.svelte +5 -2
- package/package/components/common/popup/Popup.svelte +2 -1
- package/package/components/common/popup/Popup.svelte.d.ts +1 -0
- package/package/components/common/table/AppRow.svelte +11 -8
- package/package/components/common/table/AppRow.svelte.d.ts +1 -2
- package/package/components/common/table/FlowRow.svelte +3 -3
- package/package/components/common/table/FlowRow.svelte.d.ts +1 -2
- package/package/components/common/table/RawAppRow.svelte +3 -3
- package/package/components/common/table/RawAppRow.svelte.d.ts +1 -2
- package/package/components/common/table/ScriptRow.svelte +3 -3
- package/package/components/common/table/ScriptRow.svelte.d.ts +1 -2
- package/package/components/copilot/CodeCompletionStatus.svelte +21 -46
- package/package/components/copilot/StepGen.svelte +2 -1
- package/package/components/custom_ui.d.ts +4 -1
- package/package/components/flows/CreateActionsApp.svelte +11 -8
- package/package/components/flows/CreateActionsFlow.svelte +11 -8
- package/package/components/flows/FlowEditor.svelte +1 -2
- package/package/components/flows/FlowEditor.svelte.d.ts +0 -1
- package/package/components/flows/FlowHistory.svelte +6 -3
- package/package/components/flows/content/FlowModuleComponent.svelte +1 -0
- package/package/components/flows/content/FlowModuleScript.svelte +15 -11
- package/package/components/flows/content/FlowSettings.svelte +1 -4
- package/package/components/flows/content/ScriptEditorDrawer.svelte +3 -0
- package/package/components/flows/header/FlowYamlEditor.svelte +55 -0
- package/package/components/flows/header/FlowYamlEditor.svelte.d.ts +17 -0
- package/package/components/flows/map/InsertTriggerButton.svelte +1 -1
- package/package/components/flows/map/InsertTriggerButton.svelte.d.ts +1 -0
- package/package/components/flows/map/VirtualItem.svelte +1 -1
- package/package/components/flows/pickers/PickHubScript.svelte +1 -0
- package/package/components/flows/types.d.ts +7 -6
- package/package/components/flows/utils.d.ts +9 -0
- package/package/components/flows/utils.js +21 -0
- package/package/components/graph/graphBuilder.js +1 -0
- package/package/components/graph/model.d.ts +1 -0
- package/package/components/graph/renderers/edges/BaseEdge.svelte +16 -0
- package/package/components/graph/renderers/nodes/BranchOneStart.svelte +1 -1
- package/package/components/graph/renderers/nodes/NoBranchNode.svelte +5 -1
- package/package/components/graph/renderers/nodes/NoBranchNode.svelte.d.ts +1 -0
- package/package/components/home/Item.svelte +0 -17
- package/package/components/home/deploy_ui.d.ts +2 -0
- package/package/components/home/deploy_ui.js +21 -0
- package/package/components/icons/RustIcon.svelte +70 -0
- package/package/components/icons/RustIcon.svelte.d.ts +25 -0
- package/package/components/icons/rust-logo.svg +1 -0
- package/package/components/instanceSettings.js +2 -2
- package/package/components/monaco_keybindings.d.ts +3 -0
- package/package/components/monaco_keybindings.js +9 -0
- package/package/components/preview/FlowPreviewStatus.svelte +6 -2
- package/package/components/runs/JobLoader.svelte +12 -3
- package/package/components/runs/JobLoader.svelte.d.ts +1 -1
- package/package/components/runs/ManuelDatePicker.svelte +31 -44
- package/package/components/runs/ManuelDatePicker.svelte.d.ts +6 -2
- package/package/components/runs/RunsFilter.svelte +4 -1
- package/package/components/runs/RunsFilter.svelte.d.ts +1 -0
- package/package/components/search/GlobalSearchModal.svelte +36 -25
- package/package/components/vscode.js +1 -1
- package/package/components/wizards/TableActionsWizard.svelte +84 -0
- package/package/components/wizards/TableActionsWizard.svelte.d.ts +22 -0
- package/package/editorUtils.js +2 -0
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +8 -8
- package/package/gen/schemas.gen.js +8 -8
- package/package/gen/services.gen.d.ts +4 -0
- package/package/gen/services.gen.js +16 -0
- package/package/gen/types.gen.d.ts +20 -8
- package/package/infer.d.ts +1 -1
- package/package/infer.js +48 -7
- package/package/script_helpers.d.ts +1 -0
- package/package/script_helpers.js +39 -1
- package/package/scripts.d.ts +1 -1
- package/package/scripts.js +12 -4
- package/package/stores.d.ts +5 -1
- package/package/stores.js +7 -2
- package/package.json +18 -9
|
@@ -15,6 +15,7 @@ import ScriptGen from '../../../copilot/ScriptGen.svelte';
|
|
|
15
15
|
import DiffEditor from '../../../DiffEditor.svelte';
|
|
16
16
|
import { userStore } from '../../../../stores';
|
|
17
17
|
import CacheTtlPopup from './CacheTtlPopup.svelte';
|
|
18
|
+
import EditorSettings from '../../../EditorSettings.svelte';
|
|
18
19
|
let inlineScriptEditorDrawer;
|
|
19
20
|
export let inlineScript;
|
|
20
21
|
export let name = undefined;
|
|
@@ -210,6 +211,7 @@ async function inferSuggestions(code) {
|
|
|
210
211
|
}, {})}
|
|
211
212
|
{transformer}
|
|
212
213
|
/>
|
|
214
|
+
<EditorSettings />
|
|
213
215
|
|
|
214
216
|
<Button
|
|
215
217
|
title="Delete"
|
|
@@ -306,6 +308,7 @@ async function inferSuggestions(code) {
|
|
|
306
308
|
bind:this={simpleEditor}
|
|
307
309
|
class="h-full max-w-full"
|
|
308
310
|
small
|
|
311
|
+
allowVim
|
|
309
312
|
{extraLib}
|
|
310
313
|
bind:code={inlineScript.content}
|
|
311
314
|
lang="javascript"
|
|
@@ -332,6 +335,7 @@ async function inferSuggestions(code) {
|
|
|
332
335
|
class="h-full"
|
|
333
336
|
automaticLayout
|
|
334
337
|
fixedOverflowWidgets
|
|
338
|
+
defaultLang={scriptLangToEditorLang(inlineScript?.language)}
|
|
335
339
|
/>
|
|
336
340
|
{/if}
|
|
337
341
|
</div>
|
|
@@ -11,6 +11,7 @@ import { sendUserToast } from '../../../../toast';
|
|
|
11
11
|
import { ScriptService } from '../../../../gen';
|
|
12
12
|
import { workspaceStore } from '../../../../stores';
|
|
13
13
|
import { findNextAvailablePath } from '../../../../path';
|
|
14
|
+
import { twMerge } from 'tailwind-merge';
|
|
14
15
|
const { app, runnableComponents } = getContext('AppViewerContext');
|
|
15
16
|
const { selectedComponentInEditor } = getContext('AppEditorContext');
|
|
16
17
|
function deleteBackgroundScript(index) {
|
|
@@ -83,12 +84,16 @@ async function createScriptFromInlineScript(id, runnable) {
|
|
|
83
84
|
});
|
|
84
85
|
$app = $app;
|
|
85
86
|
}
|
|
87
|
+
export let width = undefined;
|
|
86
88
|
</script>
|
|
87
89
|
|
|
88
90
|
<SplitPanesWrapper>
|
|
89
|
-
<Splitpanes
|
|
91
|
+
<Splitpanes
|
|
92
|
+
class={twMerge('!overflow-visible')}
|
|
93
|
+
style={width !== undefined ? `width:${width}px;` : ''}
|
|
94
|
+
>
|
|
90
95
|
<Pane size={25}>
|
|
91
|
-
<InlineScriptsPanelList />
|
|
96
|
+
<InlineScriptsPanelList on:hidePanel />
|
|
92
97
|
</Pane>
|
|
93
98
|
<Pane size={75}>
|
|
94
99
|
{#if !$selectedComponentInEditor}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script>import { Badge, Button } from '../../../common';
|
|
2
2
|
import { Plus } from 'lucide-svelte';
|
|
3
|
-
import { getContext } from 'svelte';
|
|
3
|
+
import { createEventDispatcher, getContext } from 'svelte';
|
|
4
4
|
import Tooltip from '../../../Tooltip.svelte';
|
|
5
5
|
import { BG_PREFIX, getAllScriptNames } from '../../utils';
|
|
6
6
|
import PanelSection from '../settingsPanel/common/PanelSection.svelte';
|
|
@@ -10,6 +10,7 @@ import { tutorialsToDo } from '../../../../stores';
|
|
|
10
10
|
import { ignoredTutorials } from '../../../tutorials/ignoredTutorials';
|
|
11
11
|
import { tutorialInProgress } from '../../../../tutorialUtils';
|
|
12
12
|
import DocLink from '../settingsPanel/DocLink.svelte';
|
|
13
|
+
import HideButton from '../settingsPanel/HideButton.svelte';
|
|
13
14
|
const PREFIX = 'script-selector-';
|
|
14
15
|
const { app, selectedComponent } = getContext('AppViewerContext');
|
|
15
16
|
const { selectedComponentInEditor } = getContext('AppEditorContext');
|
|
@@ -62,11 +63,22 @@ function createBackgroundScript() {
|
|
|
62
63
|
selectScript(`${BG_PREFIX}${$app.hiddenInlineScripts.length - 1}`);
|
|
63
64
|
}
|
|
64
65
|
let appTutorials = undefined;
|
|
66
|
+
const dispatch = createEventDispatcher();
|
|
65
67
|
</script>
|
|
66
68
|
|
|
67
69
|
<PanelSection title="Runnables" id="app-editor-runnable-panel">
|
|
68
70
|
<svelte:fragment slot="action">
|
|
69
|
-
<
|
|
71
|
+
<div class="flex flex-row gap-1">
|
|
72
|
+
<HideButton
|
|
73
|
+
direction="bottom"
|
|
74
|
+
on:click={() => {
|
|
75
|
+
dispatch('hidePanel')
|
|
76
|
+
}}
|
|
77
|
+
/>
|
|
78
|
+
<DocLink
|
|
79
|
+
docLink="https://www.windmill.dev/docs/apps/app-runnable-panel#creating-a-runnable"
|
|
80
|
+
/>
|
|
81
|
+
</div>
|
|
70
82
|
</svelte:fragment>
|
|
71
83
|
<div class="w-full flex flex-col gap-6 py-1">
|
|
72
84
|
<div>
|
|
@@ -347,7 +347,11 @@ function transformToFrontend() {
|
|
|
347
347
|
/>
|
|
348
348
|
{:else if componentSettings.item.data.type === 'aggridcomponentee'}
|
|
349
349
|
<GridAgGridLicenseKey bind:license={componentSettings.item.data.license} />
|
|
350
|
-
<TableActions
|
|
350
|
+
<TableActions
|
|
351
|
+
id={component.id}
|
|
352
|
+
bind:components={componentSettings.item.data.actions}
|
|
353
|
+
bind:actionsOrder={componentSettings.item.data.actionsOrder}
|
|
354
|
+
/>
|
|
351
355
|
{:else if componentSettings.item.data.type === 'agchartscomponentee'}
|
|
352
356
|
<GridAgChartsLicenseKe bind:license={componentSettings.item.data.license} />
|
|
353
357
|
{:else if componentSettings.item.data.type === 'steppercomponent'}
|
|
@@ -378,14 +382,30 @@ function transformToFrontend() {
|
|
|
378
382
|
bind:component={componentSettings.item.data}
|
|
379
383
|
/>
|
|
380
384
|
{:else if componentSettings.item.data.type === 'aggridcomponent'}
|
|
381
|
-
<TableActions
|
|
385
|
+
<TableActions
|
|
386
|
+
id={component.id}
|
|
387
|
+
bind:components={componentSettings.item.data.actions}
|
|
388
|
+
bind:actionsOrder={componentSettings.item.data.actionsOrder}
|
|
389
|
+
/>
|
|
382
390
|
{:else if componentSettings.item.data.type === 'aggridinfinitecomponent'}
|
|
383
|
-
<TableActions
|
|
391
|
+
<TableActions
|
|
392
|
+
id={component.id}
|
|
393
|
+
bind:components={componentSettings.item.data.actions}
|
|
394
|
+
bind:actionsOrder={componentSettings.item.data.actionsOrder}
|
|
395
|
+
/>
|
|
384
396
|
{:else if componentSettings.item.data.type === 'aggridinfinitecomponentee'}
|
|
385
397
|
<GridAgGridLicenseKey bind:license={componentSettings.item.data.license} />
|
|
386
|
-
<TableActions
|
|
398
|
+
<TableActions
|
|
399
|
+
id={component.id}
|
|
400
|
+
bind:components={componentSettings.item.data.actions}
|
|
401
|
+
bind:actionsOrder={componentSettings.item.data.actionsOrder}
|
|
402
|
+
/>
|
|
387
403
|
{:else if componentSettings.item.data.type === 'dbexplorercomponent'}
|
|
388
|
-
<TableActions
|
|
404
|
+
<TableActions
|
|
405
|
+
id={component.id}
|
|
406
|
+
bind:components={componentSettings.item.data.actions}
|
|
407
|
+
bind:actionsOrder={componentSettings.item.data.actionsOrder}
|
|
408
|
+
/>
|
|
389
409
|
{:else if componentSettings.item.data.type === 'tablecomponent' && Array.isArray(componentSettings.item.data.actionButtons)}
|
|
390
410
|
<TableActions id={component.id} bind:components={componentSettings.item.data.actionButtons} />
|
|
391
411
|
{:else if componentSettings.item.data.type === 'menucomponent' && Array.isArray(componentSettings.item.data.menuItems)}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<script>import Popover from '../../../Popover.svelte';
|
|
2
|
+
import { ButtonType } from '../../../common';
|
|
3
|
+
import Button from '../../../common/button/Button.svelte';
|
|
4
|
+
import { getModifierKey } from '../../../../utils';
|
|
5
|
+
import { PanelBottomClose, PanelLeftClose, PanelRightClose } from 'lucide-svelte';
|
|
6
|
+
import { twMerge } from 'tailwind-merge';
|
|
7
|
+
export let btnClasses = undefined;
|
|
8
|
+
export let size = 'xs';
|
|
9
|
+
export let direction = 'right';
|
|
10
|
+
export let hidden = false;
|
|
11
|
+
const IconMap = {
|
|
12
|
+
left: PanelLeftClose,
|
|
13
|
+
right: PanelRightClose,
|
|
14
|
+
bottom: PanelBottomClose
|
|
15
|
+
};
|
|
16
|
+
const shortcuts = {
|
|
17
|
+
left: 'B',
|
|
18
|
+
right: 'U',
|
|
19
|
+
bottom: 'L'
|
|
20
|
+
};
|
|
21
|
+
</script>
|
|
22
|
+
|
|
23
|
+
<Popover>
|
|
24
|
+
<svelte:fragment slot="text">
|
|
25
|
+
<div class="flex flex-row gap-1">
|
|
26
|
+
{hidden ? 'Show' : 'Hide '} the {direction} panel.
|
|
27
|
+
|
|
28
|
+
<div class="flex flex-row items-center !text-md opacity-60 gap-0 font-normal">
|
|
29
|
+
{getModifierKey()}{shortcuts[direction]}
|
|
30
|
+
</div>
|
|
31
|
+
</div>
|
|
32
|
+
</svelte:fragment>
|
|
33
|
+
<Button
|
|
34
|
+
iconOnly
|
|
35
|
+
startIcon={{
|
|
36
|
+
icon: IconMap[direction]
|
|
37
|
+
}}
|
|
38
|
+
{size}
|
|
39
|
+
btnClasses={twMerge(
|
|
40
|
+
'p-1 text-gray-300 hover:!text-gray-600 dark:text-gray-500 dark:hover:!text-gray-200 bg-transparent',
|
|
41
|
+
hidden ? 'bg-surface-selected !text-primary' : '',
|
|
42
|
+
btnClasses
|
|
43
|
+
)}
|
|
44
|
+
on:click
|
|
45
|
+
color="light"
|
|
46
|
+
/>
|
|
47
|
+
</Popover>
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
import { ButtonType } from '../../../common';
|
|
3
|
+
declare const __propDef: {
|
|
4
|
+
props: {
|
|
5
|
+
btnClasses?: string | undefined;
|
|
6
|
+
size?: ButtonType.Size | undefined;
|
|
7
|
+
direction?: "bottom" | "right" | "left" | undefined;
|
|
8
|
+
hidden?: boolean | undefined;
|
|
9
|
+
};
|
|
10
|
+
events: {
|
|
11
|
+
click: CustomEvent<any>;
|
|
12
|
+
} & {
|
|
13
|
+
[evt: string]: CustomEvent<any>;
|
|
14
|
+
};
|
|
15
|
+
slots: {};
|
|
16
|
+
};
|
|
17
|
+
export type HideButtonProps = typeof __propDef.props;
|
|
18
|
+
export type HideButtonEvents = typeof __propDef.events;
|
|
19
|
+
export type HideButtonSlots = typeof __propDef.slots;
|
|
20
|
+
export default class HideButton extends SvelteComponent<HideButtonProps, HideButtonEvents, HideButtonSlots> {
|
|
21
|
+
}
|
|
22
|
+
export {};
|
|
@@ -5,11 +5,14 @@ import { classNames, generateRandomString } from '../../../../utils';
|
|
|
5
5
|
import { getContext, onMount } from 'svelte';
|
|
6
6
|
import { appComponentFromType } from '../appUtils';
|
|
7
7
|
import PanelSection from './common/PanelSection.svelte';
|
|
8
|
-
import { GripVertical, Inspect, List, ToggleRightIcon } from 'lucide-svelte';
|
|
8
|
+
import { GripVertical, Inspect, List, ToggleRightIcon, ListOrdered } from 'lucide-svelte';
|
|
9
9
|
import { dragHandle, dragHandleZone } from '@windmill-labs/svelte-dnd-action';
|
|
10
10
|
import CloseButton from '../../../common/CloseButton.svelte';
|
|
11
11
|
import { flip } from 'svelte/animate';
|
|
12
|
+
import TableActionsWizard from '../../../wizards/TableActionsWizard.svelte';
|
|
13
|
+
import Alert from '../../../common/alert/Alert.svelte';
|
|
12
14
|
export let components;
|
|
15
|
+
export let actionsOrder = undefined;
|
|
13
16
|
// Migration code:
|
|
14
17
|
onMount(() => {
|
|
15
18
|
if (components === undefined) {
|
|
@@ -65,6 +68,23 @@ function handleFinalize(e) {
|
|
|
65
68
|
|
|
66
69
|
{#if components}
|
|
67
70
|
<PanelSection title={`Table Actions`}>
|
|
71
|
+
<svelte:fragment slot="action">
|
|
72
|
+
<TableActionsWizard bind:actionsOrder selectedId={$selectedComponent?.[0] ?? ''} {components}>
|
|
73
|
+
<svelte:fragment slot="trigger">
|
|
74
|
+
<Button
|
|
75
|
+
color="light"
|
|
76
|
+
size="xs2"
|
|
77
|
+
nonCaptureEvent={true}
|
|
78
|
+
btnClasses={actionsOrder ? 'bg-blue-100 dark:bg-blue-900' : 'text-primary'}
|
|
79
|
+
title="Edit order programmatically"
|
|
80
|
+
>
|
|
81
|
+
<div class="flex flex-row items-center gap-2 text-xs font-normal">
|
|
82
|
+
<ListOrdered size={16} />
|
|
83
|
+
</div>
|
|
84
|
+
</Button>
|
|
85
|
+
</svelte:fragment>
|
|
86
|
+
</TableActionsWizard>
|
|
87
|
+
</svelte:fragment>
|
|
68
88
|
{#if components.length == 0}
|
|
69
89
|
<span class="text-xs text-tertiary">No action buttons</span>
|
|
70
90
|
{/if}
|
|
@@ -116,9 +136,11 @@ function handleFinalize(e) {
|
|
|
116
136
|
<CloseButton small on:close={() => deleteComponent(component.id, index)} />
|
|
117
137
|
</div>
|
|
118
138
|
</div>
|
|
119
|
-
|
|
120
|
-
<
|
|
121
|
-
|
|
139
|
+
{#if actionsOrder === undefined}
|
|
140
|
+
<div use:dragHandle class="handle w-4 h-4" aria-label="drag-handle">
|
|
141
|
+
<GripVertical size={16} />
|
|
142
|
+
</div>
|
|
143
|
+
{/if}
|
|
122
144
|
</div>
|
|
123
145
|
{/each}
|
|
124
146
|
</section>
|
|
@@ -155,5 +177,22 @@ function handleFinalize(e) {
|
|
|
155
177
|
+ <List size={14} />
|
|
156
178
|
</Button>
|
|
157
179
|
</div>
|
|
180
|
+
<div class="w-full flex flex-col">
|
|
181
|
+
{#if actionsOrder}
|
|
182
|
+
<Alert size="xs" title="Order managed programmatically" type="info">
|
|
183
|
+
Actions order is managed programmatically. Adding or removing an action will require you
|
|
184
|
+
to update the order manually.
|
|
185
|
+
<Button
|
|
186
|
+
btnClasses="mt-2"
|
|
187
|
+
size="xs2"
|
|
188
|
+
on:click={() => {
|
|
189
|
+
actionsOrder = undefined
|
|
190
|
+
}}
|
|
191
|
+
>
|
|
192
|
+
Disable order management
|
|
193
|
+
</Button>
|
|
194
|
+
</Alert>
|
|
195
|
+
{/if}
|
|
196
|
+
</div>
|
|
158
197
|
</PanelSection>
|
|
159
198
|
{/if}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { SvelteComponent } from "svelte";
|
|
2
|
-
import type { BaseAppComponent } from '../../types';
|
|
2
|
+
import type { BaseAppComponent, RichConfiguration } from '../../types';
|
|
3
3
|
import type { ButtonComponent, CheckboxComponent, SelectComponent } from '../component';
|
|
4
4
|
declare const __propDef: {
|
|
5
5
|
props: {
|
|
6
6
|
components: (BaseAppComponent & (ButtonComponent | CheckboxComponent | SelectComponent))[] | undefined;
|
|
7
|
+
actionsOrder?: RichConfiguration | undefined;
|
|
7
8
|
id: string;
|
|
8
9
|
};
|
|
9
10
|
events: {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
<script>import
|
|
1
|
+
<script>import '@codingame/monaco-vscode-standalone-json-language-features';
|
|
2
|
+
import SimpleEditor from '../../../../SimpleEditor.svelte';
|
|
2
3
|
export let code;
|
|
3
4
|
export let value = undefined;
|
|
4
5
|
export let error = '';
|
|
@@ -93,7 +93,9 @@ const updateMatrix = ({ detail }) => {
|
|
|
93
93
|
...shadows[id]
|
|
94
94
|
}
|
|
95
95
|
};
|
|
96
|
-
|
|
96
|
+
let { items, overlap } = moveItem(activeItem, sortedItems, getComputedCols);
|
|
97
|
+
sortedItems = items;
|
|
98
|
+
overlapped = overlap ? id : undefined;
|
|
97
99
|
}
|
|
98
100
|
}
|
|
99
101
|
for (let id of nselectedIds ?? []) {
|
|
@@ -140,6 +142,7 @@ export function handleInitMove({ detail }) {
|
|
|
140
142
|
}
|
|
141
143
|
});
|
|
142
144
|
}
|
|
145
|
+
let overlapped = undefined;
|
|
143
146
|
</script>
|
|
144
147
|
|
|
145
148
|
<div class="svlt-grid-container" style="height: {containerHeight}px" bind:this={container}>
|
|
@@ -169,9 +172,10 @@ export function handleInitMove({ detail }) {
|
|
|
169
172
|
{sensor}
|
|
170
173
|
container={scroller}
|
|
171
174
|
nativeContainer={container}
|
|
175
|
+
{overlapped}
|
|
172
176
|
>
|
|
173
177
|
{#if item[getComputedCols]}
|
|
174
|
-
<slot dataItem={item} hidden={false} />
|
|
178
|
+
<slot dataItem={item} hidden={false} {overlapped} />
|
|
175
179
|
{/if}
|
|
176
180
|
</MoveResize>
|
|
177
181
|
{/if}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
<script>import { createEventDispatcher, getContext, onMount } from 'svelte';
|
|
2
2
|
import { writable } from 'svelte/store';
|
|
3
|
+
import { twMerge } from 'tailwind-merge';
|
|
3
4
|
const dispatch = createEventDispatcher();
|
|
4
5
|
export let sensor;
|
|
5
6
|
export let width;
|
|
@@ -17,6 +18,7 @@ export let cols;
|
|
|
17
18
|
export let nativeContainer;
|
|
18
19
|
export let onTop;
|
|
19
20
|
export let shadow = undefined;
|
|
21
|
+
export let overlapped = undefined;
|
|
20
22
|
const ctx = getContext('AppEditorContext');
|
|
21
23
|
const { mode } = getContext('AppViewerContext');
|
|
22
24
|
const scale = ctx ? ctx.scale : writable(100);
|
|
@@ -313,7 +315,10 @@ const resizePointerUp = (e) => {
|
|
|
313
315
|
|
|
314
316
|
{#if xPerPx > 0 && (active || trans) && shadow}
|
|
315
317
|
<div
|
|
316
|
-
class=
|
|
318
|
+
class={twMerge(
|
|
319
|
+
'svlt-grid-shadow shadow-active',
|
|
320
|
+
overlapped ? 'svlte-grid-shadow-forbidden' : ''
|
|
321
|
+
)}
|
|
317
322
|
style="width: {shadow.w * xPerPx - gapX * 2}px; height: {shadow.h * yPerPx -
|
|
318
323
|
gapY * 2}px; transform: translate({shadow.x * xPerPx + gapX}px, {shadow.y * yPerPx +
|
|
319
324
|
gapY}px); "
|
|
@@ -399,9 +404,12 @@ const resizePointerUp = (e) => {
|
|
|
399
404
|
|
|
400
405
|
.svlt-grid-shadow {
|
|
401
406
|
position: absolute;
|
|
402
|
-
background: red;
|
|
403
407
|
will-change: transform;
|
|
404
|
-
background: pink;
|
|
405
408
|
backface-visibility: hidden;
|
|
406
409
|
-webkit-backface-visibility: hidden;
|
|
410
|
+
background: #93c4fdd0;
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
.svlte-grid-shadow-forbidden {
|
|
414
|
+
background: rgba(255, 99, 71, 0.2) !important;
|
|
407
415
|
}</style>
|
|
@@ -22,6 +22,7 @@ declare const __propDef: {
|
|
|
22
22
|
w: number;
|
|
23
23
|
h: number;
|
|
24
24
|
} | undefined;
|
|
25
|
+
overlapped?: string | undefined;
|
|
25
26
|
inActivate?: (() => void) | undefined;
|
|
26
27
|
initmove?: (() => void) | undefined;
|
|
27
28
|
updateMove?: ((newCoordDiff: any, clientY: any) => void) | undefined;
|
|
@@ -5,7 +5,10 @@ export declare function findFreeSpaceForItem<T>(matrix: FilledItem<T>[][], item:
|
|
|
5
5
|
x: number;
|
|
6
6
|
y: number;
|
|
7
7
|
};
|
|
8
|
-
export declare function moveItem(active: any, items: any, cols: any):
|
|
8
|
+
export declare function moveItem(active: any, items: any, cols: any): {
|
|
9
|
+
items: any;
|
|
10
|
+
overlap: boolean;
|
|
11
|
+
};
|
|
9
12
|
export declare function normalize(items: any, col: any): any;
|
|
10
13
|
export declare function adjust<T>(items: FilledItem<T>[], col: any): FilledItem<T>[];
|
|
11
14
|
export declare function getUndefinedItems(items: any, col: any, breakpoints: any): any;
|
|
@@ -105,8 +105,12 @@ export function moveItem(active, items, cols) {
|
|
|
105
105
|
// Getting whenever of these items is fixed
|
|
106
106
|
const fixed = closeObj.find((value) => value[cols].fixed);
|
|
107
107
|
// If found fixed, reset the active to its original position
|
|
108
|
-
if (fixed)
|
|
109
|
-
return
|
|
108
|
+
if (fixed) {
|
|
109
|
+
return {
|
|
110
|
+
items: items,
|
|
111
|
+
overlap: closeBlocks.length > 0
|
|
112
|
+
};
|
|
113
|
+
}
|
|
110
114
|
// Update items
|
|
111
115
|
items = updateItem(items, active, item, cols);
|
|
112
116
|
// Create matrix of items expect close elements
|
|
@@ -130,7 +134,10 @@ export function moveItem(active, items, cols) {
|
|
|
130
134
|
matrix = makeMatrixFromItemsIgnore(tempItems, getIgnoreItems, getRowsCount(tempItems, cols), cols);
|
|
131
135
|
});
|
|
132
136
|
// Return result
|
|
133
|
-
return
|
|
137
|
+
return {
|
|
138
|
+
items: tempItems,
|
|
139
|
+
overlap: false
|
|
140
|
+
};
|
|
134
141
|
}
|
|
135
142
|
// Helper function
|
|
136
143
|
export function normalize(items, col) {
|
|
@@ -138,7 +145,7 @@ export function normalize(items, col) {
|
|
|
138
145
|
result.forEach((value) => {
|
|
139
146
|
const getItem = value[col];
|
|
140
147
|
if (!getItem.static) {
|
|
141
|
-
result = moveItem(getItem, result, col);
|
|
148
|
+
result = moveItem(getItem, result, col).items;
|
|
142
149
|
}
|
|
143
150
|
});
|
|
144
151
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function buildWorkerDefinition(...args: any[]): void;
|
|
1
|
+
export declare function buildWorkerDefinition(workerPath: string, basePath: string, ...args: any[]): void;
|
|
@@ -1,125 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
// import htmlWorker from 'monaco-editor/esm/vs/language/html/html.worker?worker'
|
|
9
|
-
// import tsWorker from 'monaco-editor/esm/vs/language/typescript/ts.worker?worker'
|
|
10
|
-
// import jsonWorker from 'monaco-editor/esm/vs/language/json/json.worker?worker'
|
|
11
|
-
// import editorWorker from 'monaco-editor/esm/vs/editor/editor.worker?worker'
|
|
12
|
-
// import type { Environment } from 'monaco-editor/esm/vs/editor/editor.api.js'
|
|
13
|
-
// interface MonacoEnvironmentEnhanced extends Environment {
|
|
14
|
-
// workerOverrideGlobals: WorkerOverrideGlobals
|
|
15
|
-
// }
|
|
16
|
-
// type WorkerOverrideGlobals = {
|
|
17
|
-
// basePath: string
|
|
18
|
-
// workerPath: string
|
|
19
|
-
// workerOptions: WorkerOptions
|
|
20
|
-
// }
|
|
21
|
-
// export function buildWorkerDefinition(
|
|
22
|
-
// workerPath: string,
|
|
23
|
-
// basePath: string,
|
|
24
|
-
// useModuleWorker: boolean
|
|
25
|
-
// ) {
|
|
26
|
-
// const monWin = self as Window
|
|
27
|
-
// const workerOverrideGlobals: WorkerOverrideGlobals = {
|
|
28
|
-
// basePath: basePath,
|
|
29
|
-
// workerPath: workerPath,
|
|
30
|
-
// workerOptions: {
|
|
31
|
-
// type: useModuleWorker ? 'module' : 'classic'
|
|
32
|
-
// }
|
|
33
|
-
// }
|
|
34
|
-
// if (!monWin.MonacoEnvironment) {
|
|
35
|
-
// monWin.MonacoEnvironment = {
|
|
36
|
-
// workerOverrideGlobals: workerOverrideGlobals,
|
|
37
|
-
// createTrustedTypesPolicy: (_policyName: string) => {
|
|
38
|
-
// return undefined
|
|
39
|
-
// }
|
|
40
|
-
// } as MonacoEnvironmentEnhanced
|
|
41
|
-
// }
|
|
42
|
-
// const monEnv = monWin.MonacoEnvironment as MonacoEnvironmentEnhanced
|
|
43
|
-
// monEnv.workerOverrideGlobals = workerOverrideGlobals
|
|
44
|
-
// const getWorker = (_: string, label: string) => {
|
|
45
|
-
// console.log('getWorker: workerId: ' + _ + ' label: ' + label)
|
|
46
|
-
// switch (label) {
|
|
47
|
-
// case 'template':
|
|
48
|
-
// case 'typescript':
|
|
49
|
-
// case 'javascript':
|
|
50
|
-
// return new tsWorker()
|
|
51
|
-
// case 'html':
|
|
52
|
-
// case 'handlebars':
|
|
53
|
-
// case 'razor':
|
|
54
|
-
// return new htmlWorker()
|
|
55
|
-
// case 'css':
|
|
56
|
-
// case 'scss':
|
|
57
|
-
// case 'less':
|
|
58
|
-
// return new cssWorker()
|
|
59
|
-
// case 'json':
|
|
60
|
-
// return new jsonWorker()
|
|
61
|
-
// case 'graphql':
|
|
62
|
-
// const workerFilename = `graphql.worker.bundle.js`
|
|
63
|
-
// const workerPathLocal = `${workerOverrideGlobals.workerPath}/${workerFilename}`
|
|
64
|
-
// const workerUrl = new URL(workerPathLocal, workerOverrideGlobals.basePath)
|
|
65
|
-
// return new Worker(workerUrl.href, {
|
|
66
|
-
// name: label
|
|
67
|
-
// })
|
|
68
|
-
// default:
|
|
69
|
-
// return new editorWorker()
|
|
70
|
-
// }
|
|
71
|
-
// }
|
|
72
|
-
// monWin.MonacoEnvironment.getWorker = getWorker
|
|
73
|
-
// }
|
|
74
|
-
// //
|
|
75
|
-
// export type WorkerLoader = () => Worker
|
|
76
|
-
// const workerLoaders: Partial<Record<string, WorkerLoader>> = {
|
|
77
|
-
// editorWorkerService: () =>
|
|
78
|
-
// new Worker(new URL('monaco-editor/esm/vs/editor/editor.worker.js', import.meta.url), {
|
|
79
|
-
// type: 'module'
|
|
80
|
-
// }),
|
|
81
|
-
// textMateWorker: () =>
|
|
82
|
-
// new Worker(
|
|
83
|
-
// new URL('@codingame/monaco-vscode-textmate-service-override/worker', import.meta.url),
|
|
84
|
-
// { type: 'module' }
|
|
85
|
-
// ),
|
|
86
|
-
// languageDetectionWorkerService: () =>
|
|
87
|
-
// new Worker(
|
|
88
|
-
// new URL(
|
|
89
|
-
// '@codingame/monaco-vscode-language-detection-worker-service-override/worker',
|
|
90
|
-
// import.meta.url
|
|
91
|
-
// ),
|
|
92
|
-
// { type: 'module' }
|
|
93
|
-
// )
|
|
94
|
-
// }
|
|
95
|
-
// export function registerWorkerLoader(label: string, workerLoader: WorkerLoader): void {
|
|
96
|
-
// workerLoaders[label] = workerLoader
|
|
97
|
-
// }
|
|
98
|
-
// export function buildWorkerDefinition() {
|
|
99
|
-
// // Do not use monaco-editor-webpack-plugin because it doesn't handle properly cross origin workers
|
|
100
|
-
// window.MonacoEnvironment = {
|
|
101
|
-
// getWorker: function (moduleId, label) {
|
|
102
|
-
// console.log('LOAD')
|
|
103
|
-
// const workerFactory = workerLoaders[label]
|
|
104
|
-
// if (workerFactory != null) {
|
|
105
|
-
// return workerFactory()
|
|
106
|
-
// }
|
|
107
|
-
// throw new Error(`Unimplemented worker ${label} (${moduleId})`)
|
|
108
|
-
// }
|
|
109
|
-
// }
|
|
110
|
-
// }
|
|
111
|
-
// import { graphql } from 'graphql'
|
|
112
|
-
import { useWorkerFactory } from '@windmill-labs/monaco-editor-wrapper/workerFactory';
|
|
113
|
-
import cssWorker from '@windmill-labs/monaco-editor-wrapper/workers/module/css?worker';
|
|
114
|
-
import htmlWorker from '@windmill-labs/monaco-editor-wrapper/workers/module/html?worker';
|
|
115
|
-
import tsWorker from '@windmill-labs/monaco-editor-wrapper/workers/module/ts?worker';
|
|
116
|
-
import jsonWorker from '@windmill-labs/monaco-editor-wrapper/workers/module/json?worker';
|
|
117
|
-
import editorWorker from '@windmill-labs/monaco-editor-wrapper/workers/module/editor?worker';
|
|
118
|
-
// import htmlWorker from 'monaco-editor/esm/vs/language/html/html.worker?worker'
|
|
119
|
-
// import tsWorker from 'monaco-editor/esm/vs/language/typescript/ts.worker?worker'
|
|
120
|
-
// import jsonWorker from 'monaco-editor/esm/vs/language/json/json.worker?worker'
|
|
121
|
-
// import editorWorker from 'monaco-editor/esm/vs/editor/editor.worker?worker'
|
|
122
|
-
export function buildWorkerDefinition(...args) {
|
|
1
|
+
import { useWorkerFactory } from 'monaco-editor-wrapper/workerFactory';
|
|
2
|
+
import cssWorker from 'monaco-editor-wrapper/workers/module/css?worker';
|
|
3
|
+
import htmlWorker from 'monaco-editor-wrapper/workers/module/html?worker';
|
|
4
|
+
import tsWorker from 'monaco-editor-wrapper/workers/module/ts?worker';
|
|
5
|
+
import jsonWorker from 'monaco-editor-wrapper/workers/module/json?worker';
|
|
6
|
+
import editorWorker from 'monaco-editor-wrapper/workers/module/editor?worker';
|
|
7
|
+
export function buildWorkerDefinition(workerPath, basePath, ...args) {
|
|
123
8
|
useWorkerFactory({
|
|
124
9
|
ignoreMapping: true,
|
|
125
10
|
workerLoaders: {
|
|
@@ -146,6 +31,15 @@ export function buildWorkerDefinition(...args) {
|
|
|
146
31
|
css: () => {
|
|
147
32
|
console.log('html');
|
|
148
33
|
return new cssWorker();
|
|
34
|
+
},
|
|
35
|
+
graphql: () => {
|
|
36
|
+
console.log('graphql');
|
|
37
|
+
const workerFilename = `graphql.worker.bundle.js`;
|
|
38
|
+
const workerPathLocal = `${workerPath}/${workerFilename}`;
|
|
39
|
+
const workerUrl = new URL(workerPathLocal, basePath);
|
|
40
|
+
return new Worker(workerUrl.href, {
|
|
41
|
+
name: 'graphql'
|
|
42
|
+
});
|
|
149
43
|
}
|
|
150
44
|
}
|
|
151
45
|
});
|
|
@@ -35,12 +35,12 @@ declare const __propDef: {
|
|
|
35
35
|
} | undefined;
|
|
36
36
|
dropdownItems?: {
|
|
37
37
|
label: string;
|
|
38
|
-
onClick?: (() => void) | undefined;
|
|
38
|
+
onClick?: ((e?: Event) => void) | undefined;
|
|
39
39
|
href?: string | undefined;
|
|
40
40
|
icon?: any;
|
|
41
41
|
}[] | (() => {
|
|
42
42
|
label: string;
|
|
43
|
-
onClick?: (() => void) | undefined;
|
|
43
|
+
onClick?: ((e?: Event) => void) | undefined;
|
|
44
44
|
href?: string | undefined;
|
|
45
45
|
icon?: any;
|
|
46
46
|
}[]) | undefined;
|