windmill-components 1.84.6 → 1.86.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/components/AppConnect.svelte +2 -2
- package/components/ArgInfo.svelte +4 -6
- package/components/ArgInput.svelte +12 -12
- package/components/ArgInput.svelte.d.ts +1 -2
- package/components/CenteredModal.svelte +9 -7
- package/components/CronInput.svelte +301 -64
- package/components/CronInput.svelte.d.ts +3 -3
- package/components/DisplayResult.svelte +5 -7
- package/components/Dropdown.svelte +5 -4
- package/components/Editor.svelte +138 -83
- package/components/Editor.svelte.d.ts +10 -4
- package/components/EditorBar.svelte +72 -36
- package/components/EditorBar.svelte.d.ts +1 -1
- package/components/FlowBuilder.svelte +136 -110
- package/components/FlowGraphViewer.svelte +5 -8
- package/components/FlowGraphViewer.svelte.d.ts +1 -0
- package/components/FlowPreviewContent.svelte +14 -11
- package/components/FlowStatusViewer.svelte +54 -44
- package/components/FlowViewer.svelte +1 -1
- package/components/FolderEditor.svelte +2 -10
- package/components/FolderUsageInfo.svelte +1 -1
- package/components/GroupEditor.svelte +6 -15
- package/components/HighlightCode.svelte +1 -1
- package/components/InlineCodeCopy.svelte +2 -1
- package/components/InputTransformForm.svelte +75 -73
- package/components/InputTransformSchemaForm.svelte +1 -1
- package/components/InputTransformsViewer.svelte +1 -1
- package/components/LightweightArgInput.svelte +12 -0
- package/components/LightweightArgInput.svelte.d.ts +1 -0
- package/components/LightweightSchemaForm.svelte +2 -1
- package/components/LightweightSchemaForm.svelte.d.ts +2 -0
- package/components/Modal.svelte +2 -2
- package/components/ModulePreview.svelte +11 -11
- package/components/ModuleStatus.svelte +0 -1
- package/components/Multiselect.svelte +1 -0
- package/components/ObjectResourceInput.svelte +1 -23
- package/components/Path.svelte +56 -94
- package/components/Popover.svelte +7 -19
- package/components/Range.svelte +1 -4
- package/components/ResourceEditor.svelte +6 -6
- package/components/ResourcePicker.svelte +2 -2
- package/components/RunForm.svelte +5 -6
- package/components/ScheduleEditor.svelte +23 -13
- package/components/SchemaModal.svelte +1 -0
- package/components/SchemaModal.svelte.d.ts +1 -1
- package/components/ScriptBuilder.svelte +201 -206
- package/components/ScriptBuilder.svelte.d.ts +2 -0
- package/components/ScriptEditor.svelte +38 -38
- package/components/ScriptEditor.svelte.d.ts +5 -1
- package/components/ScriptSchema.svelte +1 -20
- package/components/ScriptSchema.svelte.d.ts +0 -1
- package/components/SearchItems.svelte +1 -1
- package/components/SharedBadge.svelte +0 -1
- package/components/SimpleEditor.svelte +17 -37
- package/components/SimpleEditor.svelte.d.ts +6 -0
- package/components/Star.svelte +2 -1
- package/components/TemplateEditor.svelte +21 -29
- package/components/TemplateEditor.svelte.d.ts +3 -0
- package/components/Toast.svelte +50 -0
- package/components/Toast.svelte.d.ts +18 -0
- package/components/apps/components/buttons/AppButton.svelte +2 -1
- package/components/apps/components/display/AppBarChart.svelte +5 -5
- package/components/apps/components/display/AppHtml.svelte +9 -6
- package/components/apps/components/display/AppIcon.svelte +3 -0
- package/components/apps/components/display/AppImage.svelte +4 -1
- package/components/apps/components/display/AppMap.svelte +3 -0
- package/components/apps/components/display/AppPdf.svelte +14 -11
- package/components/apps/components/display/AppText.svelte +152 -60
- package/components/apps/components/display/AppText.svelte.d.ts +4 -0
- package/components/apps/components/display/table/AppAggridTable.svelte +25 -12
- package/components/apps/components/display/table/AppAggridTable.svelte.d.ts +1 -1
- package/components/apps/components/display/table/AppTable.svelte +1 -2
- package/components/apps/components/display/table/AppTableFooter.svelte +0 -1
- package/components/apps/components/helpers/AlignWrapper.svelte +1 -20
- package/components/apps/components/helpers/HiddenComponent.svelte +12 -6
- package/components/apps/components/helpers/HiddenComponent.svelte.d.ts +2 -1
- package/components/apps/components/helpers/InitializeComponent.svelte +12 -0
- package/components/apps/components/helpers/InitializeComponent.svelte.d.ts +16 -0
- package/components/apps/components/helpers/InputValue.svelte +6 -0
- package/components/apps/components/helpers/NonRunnableComponent.svelte +4 -3
- package/components/apps/components/helpers/RunnableComponent.svelte +24 -6
- package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +2 -1
- package/components/apps/components/helpers/RunnableWrapper.svelte +8 -2
- package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +1 -0
- package/components/apps/components/helpers/eval.d.ts +4 -0
- package/components/apps/components/helpers/eval.js +3 -1
- package/components/apps/components/inputs/AppCheckbox.svelte +3 -0
- package/components/apps/components/inputs/AppDateInput.svelte +3 -0
- package/components/apps/components/inputs/AppFileInput.svelte +4 -0
- package/components/apps/components/inputs/AppMultiSelect.svelte +5 -2
- package/components/apps/components/inputs/AppNumberInput.svelte +3 -0
- package/components/apps/components/inputs/AppRangeInput.svelte +8 -5
- package/components/apps/components/inputs/AppSelect.svelte +3 -9
- package/components/apps/components/inputs/AppSliderInputs.svelte +2 -0
- package/components/apps/components/inputs/AppTextInput.svelte +12 -5
- package/components/apps/components/inputs/currency/AppCurrencyInput.svelte +3 -0
- package/components/apps/components/layout/AppContainer.svelte +3 -0
- package/components/apps/components/layout/AppDivider.svelte +3 -0
- package/components/apps/components/layout/AppDrawer.svelte +3 -0
- package/components/apps/components/layout/AppSplitpanes.svelte +3 -0
- package/components/apps/components/layout/AppTabs.svelte +4 -1
- package/components/apps/editor/AppEditor.svelte +42 -35
- package/components/apps/editor/AppEditorHeader.svelte +23 -15
- package/components/apps/editor/AppPreview.svelte +5 -3
- package/components/apps/editor/ComponentHeader.svelte +20 -1
- package/components/apps/editor/ComponentHeader.svelte.d.ts +3 -0
- package/components/apps/editor/GridEditor.svelte +2 -2
- package/components/apps/editor/RecomputeAllComponents.svelte +7 -4
- package/components/apps/editor/SettingsPanel.svelte +1 -0
- package/components/apps/editor/SubGridEditor.svelte +5 -5
- package/components/apps/editor/appUtils.js +13 -3
- package/components/apps/editor/component/Component.svelte +24 -2
- package/components/apps/editor/component/ComponentWrapper.svelte +5 -0
- package/components/apps/editor/component/components.d.ts +39 -39
- package/components/apps/editor/componentsPanel/ComponentList.svelte +12 -26
- package/components/apps/editor/componentsPanel/CssSettings.svelte +1 -3
- package/components/apps/editor/componentsPanel/ListItem.svelte +2 -2
- package/components/apps/editor/componentsPanel/QuickStyleMenu.svelte +2 -2
- package/components/apps/editor/contextPanel/ContextPanel.svelte +1 -2
- package/components/apps/editor/contextPanel/components/IdEditor.svelte +90 -0
- package/components/apps/editor/contextPanel/components/IdEditor.svelte.d.ts +18 -0
- package/components/apps/editor/contextPanel/components/OutputHeader.svelte +92 -21
- package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +4 -3
- package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte +3 -3
- package/components/apps/editor/settingsPanel/ComponentInputTypeEditor.svelte +50 -37
- package/components/apps/editor/settingsPanel/ComponentPanel.svelte +3 -3
- package/components/apps/editor/settingsPanel/SelectedRunnable.svelte +14 -6
- package/components/apps/editor/settingsPanel/TableActions.svelte +1 -1
- package/components/apps/editor/settingsPanel/inputEditor/ConnectedInputEditor.svelte +2 -2
- package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte +8 -3
- package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte.d.ts +0 -2
- package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +2 -2
- package/components/apps/editor/settingsPanel/mainInput/WorkspaceFlowList.svelte +2 -5
- package/components/apps/editor/settingsPanel/mainInput/WorkspaceScriptList.svelte +2 -5
- package/components/apps/editor/settingsPanel/triggerLists/BackgroundScriptTriggerList.svelte +15 -7
- package/components/apps/editor/settingsPanel/triggerLists/BackgroundScriptTriggerList.svelte.d.ts +2 -1
- package/components/apps/editor/settingsPanel/triggerLists/ComponentTriggerList.svelte +2 -2
- package/components/apps/editor/settingsPanel/triggerLists/ComponentTriggerList.svelte.d.ts +1 -1
- package/components/apps/editor/settingsPanel/triggerLists/TriggerBadgesList.svelte +6 -5
- package/components/apps/editor/settingsPanel/triggerLists/TriggerBadgesList.svelte.d.ts +1 -1
- package/components/apps/inputType.d.ts +1 -0
- package/components/apps/rx.d.ts +0 -2
- package/components/apps/rx.js +1 -3
- package/components/apps/svelte-grid/utils/helper.js +1 -1
- package/components/apps/types.d.ts +12 -0
- package/components/apps/utils.d.ts +3 -1
- package/components/apps/utils.js +26 -2
- package/components/build_workers.d.ts +14 -0
- package/components/build_workers.js +45 -0
- package/components/common/badge/Badge.svelte +0 -1
- package/components/common/button/Button.svelte +46 -24
- package/components/common/button/Button.svelte.d.ts +7 -1
- package/components/common/button/ButtonDropdown.svelte +25 -0
- package/components/common/button/ButtonDropdown.svelte.d.ts +27 -0
- package/components/common/button/model.d.ts +2 -3
- package/components/common/button/model.js +7 -3
- package/components/common/drawer/Drawer.svelte +2 -3
- package/components/common/drawer/DrawerContent.svelte +2 -6
- package/components/common/fileInput/FileInput.svelte +5 -1
- package/components/common/fileInput/FileInput.svelte.d.ts +1 -0
- package/components/common/index.d.ts +0 -2
- package/components/common/index.js +0 -2
- package/components/common/menu/Menu.svelte.d.ts +1 -1
- package/components/common/popup/Popup.svelte +16 -8
- package/components/common/popup/Popup.svelte.d.ts +6 -0
- package/components/common/table/AppRow.svelte +0 -1
- package/components/common/table/FlowRow.svelte +0 -1
- package/components/common/table/ScriptRow.svelte +2 -3
- package/components/common/tabs/Tab.svelte +10 -5
- package/components/common/tabs/Tabs.svelte +20 -1
- package/components/common/tabs/Tabs.svelte.d.ts +3 -0
- package/components/flows/CreateActionsApp.svelte +14 -9
- package/components/flows/CreateActionsFlow.svelte +11 -10
- package/components/flows/FlowEditor.svelte +2 -2
- package/components/flows/content/CapturePayload.svelte +2 -4
- package/components/flows/content/DynamicInputHelpBox.svelte +1 -0
- package/components/flows/content/FlowBranchesAllWrapper.svelte +2 -2
- package/components/flows/content/FlowBranchesOneWrapper.svelte +2 -2
- package/components/flows/content/FlowInputsFlow.svelte +1 -1
- package/components/flows/content/FlowInputsFlow.svelte.d.ts +1 -3
- package/components/flows/content/FlowModuleComponent.svelte +27 -28
- package/components/flows/content/FlowModuleWrapper.svelte +0 -1
- package/components/flows/content/FlowRetries.svelte +1 -2
- package/components/flows/content/FlowSchedules.svelte +3 -1
- package/components/flows/content/ScriptEditorDrawer.svelte +1 -1
- package/components/flows/flowStateUtils.d.ts +0 -3
- package/components/flows/flowStateUtils.js +3 -23
- package/components/flows/header/FlowImportExportMenu.svelte +10 -12
- package/components/flows/header/FlowPreviewButtons.svelte +21 -24
- package/components/flows/idUtils.d.ts +4 -0
- package/components/flows/idUtils.js +47 -0
- package/components/flows/map/FlowModuleSchemaItem.svelte +6 -6
- package/components/flows/map/MapItem.svelte +9 -9
- package/components/flows/map/MapItem.svelte.d.ts +0 -1
- package/components/flows/scheduleUtils.d.ts +1 -0
- package/components/flows/scheduleUtils.js +2 -1
- package/components/flows/utils.d.ts +0 -2
- package/components/flows/utils.js +3 -35
- package/components/graph/FlowGraph.svelte +22 -8
- package/components/graph/FlowGraph.svelte.d.ts +2 -0
- package/components/graph/svelvet/collapsible/controllers/util.js +3 -14
- package/components/graph/svelvet/container/views/GraphView.svelte +25 -42
- package/components/graph/svelvet/container/views/GraphView.svelte.d.ts +2 -0
- package/components/graph/svelvet/container/views/Svelvet.svelte +5 -3
- package/components/graph/svelvet/container/views/Svelvet.svelte.d.ts +3 -0
- package/components/graph/svelvet/edges/controllers/anchorCbDev.js +5 -5
- package/components/graph/svelvet/edges/controllers/util.js +1 -1
- package/components/graph/svelvet/edges/models/Edge.js +2 -2
- package/components/graph/svelvet/edges/views/Edges/SimpleBezierEdge.svelte +1 -1
- package/components/graph/svelvet/nodes/models/Node.js +0 -1
- package/components/graph/svelvet/nodes/views/Node.svelte +0 -1
- package/components/graph/svelvet/nodes/views/Node.svelte.d.ts +0 -1
- package/components/graph/svelvet/store/controllers/util.d.ts +1 -1
- package/components/graph/svelvet/store/controllers/util.js +3 -3
- package/components/home/ItemsList.svelte +11 -11
- package/components/icons/WindmillIcon.svelte +4 -0
- package/components/icons/WindmillIcon.svelte.d.ts +1 -0
- package/components/propertyPicker/ObjectViewer.svelte +0 -5
- package/components/propertyPicker/ObjectViewer.svelte.d.ts +0 -1
- package/components/propertyPicker/PropPicker.svelte +2 -2
- package/components/scripts/CreateActionsScript.svelte +4 -22
- package/components/sidebar/WorkspaceMenu.svelte +8 -4
- package/editorUtils.d.ts +3 -0
- package/editorUtils.js +7 -2
- package/gen/core/OpenAPI.js +1 -1
- package/gen/index.d.ts +7 -1
- package/gen/index.js +3 -0
- package/gen/models/CreateInput.d.ts +5 -0
- package/gen/models/CreateInput.js +4 -0
- package/gen/models/EditSchedule.d.ts +1 -0
- package/gen/models/Input.d.ts +6 -0
- package/gen/models/Input.js +4 -0
- package/gen/models/MainArgSignature.d.ts +8 -0
- package/gen/models/MainArgSignature.js +8 -1
- package/gen/models/NewSchedule.d.ts +1 -1
- package/gen/models/NewTokenImpersonate.d.ts +5 -0
- package/gen/models/NewTokenImpersonate.js +4 -0
- package/gen/models/RunnableType.d.ts +5 -0
- package/gen/models/RunnableType.js +9 -0
- package/gen/models/Schedule.d.ts +1 -1
- package/gen/models/UpdateInput.d.ts +4 -0
- package/gen/models/UpdateInput.js +4 -0
- package/gen/services/FlowService.d.ts +18 -0
- package/gen/services/FlowService.js +19 -0
- package/gen/services/InputService.d.ts +78 -0
- package/gen/services/InputService.js +95 -0
- package/gen/services/JobService.d.ts +35 -15
- package/gen/services/JobService.js +25 -7
- package/gen/services/ScheduleService.d.ts +2 -2
- package/gen/services/ScheduleService.js +1 -1
- package/gen/services/ScriptService.d.ts +10 -0
- package/gen/services/ScriptService.js +16 -0
- package/gen/services/UserService.d.ts +12 -0
- package/gen/services/UserService.js +13 -0
- package/infer.js +3 -0
- package/init_scripts/python_init_code.d.ts +1 -1
- package/init_scripts/python_init_code.js +2 -2
- package/package.json +684 -673
- package/script_helpers.d.ts +1 -1
- package/script_helpers.js +7 -5
- package/stores.js +14 -1
- package/user.d.ts +1 -1
- package/user.js +6 -6
- package/utils.d.ts +2 -2
- package/utils.js +21 -11
- package/components/common/button/ButtonPopup.svelte +0 -75
- package/components/common/button/ButtonPopup.svelte.d.ts +0 -39
- package/components/common/button/ButtonPopupItem.svelte +0 -48
- package/components/common/button/ButtonPopupItem.svelte.d.ts +0 -28
- package/components/graph/svelvet/editEdges/views/EditEdge.svelte +0 -151
- package/components/graph/svelvet/editEdges/views/EditEdge.svelte.d.ts +0 -20
package/components/apps/editor/settingsPanel/triggerLists/BackgroundScriptTriggerList.svelte
CHANGED
|
@@ -1,12 +1,22 @@
|
|
|
1
1
|
<script>import Toggle from '../../../../Toggle.svelte';
|
|
2
|
-
import Tooltip from '../../../../Tooltip.svelte';
|
|
3
2
|
import TriggerBadgesList from './TriggerBadgesList.svelte';
|
|
4
3
|
import { getDependencies } from './triggerListUtils';
|
|
5
4
|
export let fields;
|
|
6
5
|
export let autoRefresh = false;
|
|
7
6
|
export let id;
|
|
8
7
|
export let inlineScript;
|
|
9
|
-
export let
|
|
8
|
+
export let recomputeOnInputChanged = true;
|
|
9
|
+
export let doNotRecomputeOnInputChanged = undefined;
|
|
10
|
+
//TODO: remove after migration is done
|
|
11
|
+
$: {
|
|
12
|
+
if (doNotRecomputeOnInputChanged != undefined) {
|
|
13
|
+
recomputeOnInputChanged = !doNotRecomputeOnInputChanged;
|
|
14
|
+
doNotRecomputeOnInputChanged = undefined;
|
|
15
|
+
}
|
|
16
|
+
if (recomputeOnInputChanged == undefined) {
|
|
17
|
+
recomputeOnInputChanged = true;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
10
20
|
$: dependencies = getDependencies(fields);
|
|
11
21
|
</script>
|
|
12
22
|
|
|
@@ -14,11 +24,9 @@ $: dependencies = getDependencies(fields);
|
|
|
14
24
|
<div class="flex items-center px-1">
|
|
15
25
|
<Toggle
|
|
16
26
|
size="xs"
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
options={{ right: 'do NOT recompute on input changes' }}
|
|
27
|
+
bind:checked={recomputeOnInputChanged}
|
|
28
|
+
options={{ right: 'recompute on any input changes' }}
|
|
20
29
|
/>
|
|
21
|
-
<Tooltip>If not toggled, whenever an input is changed, the script will be re-run.</Tooltip>
|
|
22
30
|
</div>
|
|
23
31
|
{/if}
|
|
24
32
|
|
|
@@ -27,5 +35,5 @@ $: dependencies = getDependencies(fields);
|
|
|
27
35
|
{id}
|
|
28
36
|
inputDependencies={dependencies}
|
|
29
37
|
onLoad={autoRefresh}
|
|
30
|
-
{
|
|
38
|
+
{recomputeOnInputChanged}
|
|
31
39
|
/>
|
package/components/apps/editor/settingsPanel/triggerLists/BackgroundScriptTriggerList.svelte.d.ts
CHANGED
|
@@ -7,7 +7,8 @@ declare const __propDef: {
|
|
|
7
7
|
autoRefresh?: boolean | undefined;
|
|
8
8
|
id: string;
|
|
9
9
|
inlineScript: InlineScript;
|
|
10
|
-
|
|
10
|
+
recomputeOnInputChanged?: boolean | undefined;
|
|
11
|
+
doNotRecomputeOnInputChanged?: undefined | boolean;
|
|
11
12
|
};
|
|
12
13
|
events: {
|
|
13
14
|
[evt: string]: CustomEvent<any>;
|
|
@@ -5,7 +5,7 @@ const { selectedComponent } = getContext('AppViewerContext');
|
|
|
5
5
|
export let fields;
|
|
6
6
|
export let appComponent;
|
|
7
7
|
export let runnable;
|
|
8
|
-
export let
|
|
8
|
+
export let recomputeOnInputChanged = false;
|
|
9
9
|
const onClick = ['buttoncomponent', 'formbuttoncomponent', 'formcomponent'].includes(appComponent.type);
|
|
10
10
|
$: onLoad =
|
|
11
11
|
!onClick ||
|
|
@@ -18,7 +18,7 @@ $: onLoad =
|
|
|
18
18
|
inputDependencies={onClick ? [] : getDependencies(fields)}
|
|
19
19
|
bind:inlineScript={runnable.inlineScript}
|
|
20
20
|
{onLoad}
|
|
21
|
-
{
|
|
21
|
+
{recomputeOnInputChanged}
|
|
22
22
|
id={$selectedComponent?.[0]}
|
|
23
23
|
{onClick}
|
|
24
24
|
/>
|
|
@@ -6,7 +6,7 @@ declare const __propDef: {
|
|
|
6
6
|
fields: Record<string, StaticAppInput | ConnectedAppInput | RowAppInput | UserAppInput>;
|
|
7
7
|
appComponent: AppComponent;
|
|
8
8
|
runnable: RunnableByName;
|
|
9
|
-
|
|
9
|
+
recomputeOnInputChanged?: boolean | undefined;
|
|
10
10
|
};
|
|
11
11
|
events: {
|
|
12
12
|
[evt: string]: CustomEvent<any>;
|
|
@@ -8,7 +8,7 @@ export let inlineScript;
|
|
|
8
8
|
export let onClick = false;
|
|
9
9
|
export let onLoad = false;
|
|
10
10
|
export let id = undefined;
|
|
11
|
-
export let
|
|
11
|
+
export let recomputeOnInputChanged = false;
|
|
12
12
|
const colors = {
|
|
13
13
|
red: 'text-red-800 border-red-600 bg-red-100',
|
|
14
14
|
green: 'text-green-800 border-green-600 bg-green-100',
|
|
@@ -66,11 +66,11 @@ function deleteDep(index) {
|
|
|
66
66
|
|
|
67
67
|
<div class="flex w-full flex-col items-start gap-2 mt-2 mb-1">
|
|
68
68
|
{#if recomputedBadges.length === 0 && !onLoad && !onClick && inputDependencies?.length === 0 && !frontendDependencies}
|
|
69
|
-
<p class="text-xs font-semibold text-slate-800
|
|
69
|
+
<p class="text-xs font-semibold text-slate-800">
|
|
70
70
|
This script has no triggers. It will never run.
|
|
71
71
|
</p>
|
|
72
72
|
{:else}
|
|
73
|
-
<div class="text-sm font-semibold text-gray-800
|
|
73
|
+
<div class="text-sm font-semibold text-gray-800">Triggered by</div>
|
|
74
74
|
|
|
75
75
|
{#if onLoad || onClick}
|
|
76
76
|
<div class="w-full">
|
|
@@ -86,7 +86,7 @@ function deleteDep(index) {
|
|
|
86
86
|
</div>
|
|
87
87
|
</div>
|
|
88
88
|
{/if}
|
|
89
|
-
{#if inputDependencies.length > 0 &&
|
|
89
|
+
{#if inputDependencies.length > 0 && (recomputeOnInputChanged ?? true)}
|
|
90
90
|
<div class="w-full">
|
|
91
91
|
<div class="flex justify-between items-center mb-1">
|
|
92
92
|
<div class="text-xs font-semibold text-slate-800">Change on values</div>
|
|
@@ -112,7 +112,8 @@ function deleteDep(index) {
|
|
|
112
112
|
</div>
|
|
113
113
|
{/if}
|
|
114
114
|
{/if}
|
|
115
|
-
|
|
115
|
+
|
|
116
|
+
{#if frontendDependencies && recomputeOnInputChanged}
|
|
116
117
|
<div class="w-full">
|
|
117
118
|
<div class="flex justify-between items-center">
|
|
118
119
|
<div class="text-xs font-semibold text-slate-800 mb-1">Change on values</div>
|
|
@@ -7,7 +7,7 @@ declare const __propDef: {
|
|
|
7
7
|
onClick?: boolean | undefined;
|
|
8
8
|
onLoad?: boolean | undefined;
|
|
9
9
|
id?: string | undefined;
|
|
10
|
-
|
|
10
|
+
recomputeOnInputChanged?: boolean | undefined;
|
|
11
11
|
};
|
|
12
12
|
events: {
|
|
13
13
|
[evt: string]: CustomEvent<any>;
|
|
@@ -54,6 +54,7 @@ export type ResultInput = {
|
|
|
54
54
|
type: 'runnable';
|
|
55
55
|
value?: any;
|
|
56
56
|
doNotRecomputeOnInputChanged?: boolean;
|
|
57
|
+
recomputeOnInputChanged?: boolean;
|
|
57
58
|
};
|
|
58
59
|
type AppInputSpec<T extends InputType, U, V extends InputType = never> = (StaticInput<U> | ConnectedInput | UserInput<U> | RowInput | EvalInput | UploadInput | ResultInput | TemplateInput) & InputConfiguration<T, V>;
|
|
59
60
|
type InputConfiguration<T extends InputType, V extends InputType> = {
|
package/components/apps/rx.d.ts
CHANGED
|
@@ -19,8 +19,6 @@ export type World = {
|
|
|
19
19
|
connect: <T>(inputSpec: AppInput, next: (x: T) => void, id?: string) => Input<T>;
|
|
20
20
|
stateId: Writable<number>;
|
|
21
21
|
newOutput: <T>(id: string, name: string, previousValue: T) => Output<T>;
|
|
22
|
-
initializedOutputs: number;
|
|
23
|
-
initialized: boolean;
|
|
24
22
|
};
|
|
25
23
|
export declare function buildWorld(context: Record<string, any>): Writable<World>;
|
|
26
24
|
export declare function buildObservableWorld(): {
|
package/components/apps/rx.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { adjust, findFreeSpaceForItem } from './item';
|
|
1
2
|
import { makeMatrixFromItems } from './matrix';
|
|
2
|
-
import { findFreeSpaceForItem, normalize, adjust } from './item';
|
|
3
3
|
import { getRowsCount } from './other';
|
|
4
4
|
function makeItem(item) {
|
|
5
5
|
const { min = { w: 1, h: 1 }, max } = item;
|
|
@@ -78,6 +78,8 @@ export type App = {
|
|
|
78
78
|
fields: Record<string, StaticAppInput | ConnectedAppInput | RowAppInput | UserAppInput>;
|
|
79
79
|
autoRefresh?: boolean;
|
|
80
80
|
doNotRecomputeOnInputChanged?: boolean;
|
|
81
|
+
recomputeOnInputChanged?: boolean;
|
|
82
|
+
noBackendValue?: any;
|
|
81
83
|
}>;
|
|
82
84
|
css?: Partial<Record<AppCssItemName, Record<string, ComponentCssProperty>>>;
|
|
83
85
|
subgrids?: Record<string, GridItem[]>;
|
|
@@ -92,12 +94,17 @@ export type AppViewerContext = {
|
|
|
92
94
|
worldStore: Writable<World>;
|
|
93
95
|
app: Writable<App>;
|
|
94
96
|
summary: Writable<string>;
|
|
97
|
+
initialized: Writable<{
|
|
98
|
+
initializedComponents: string[];
|
|
99
|
+
initialized: boolean;
|
|
100
|
+
}>;
|
|
95
101
|
selectedComponent: Writable<string[] | undefined>;
|
|
96
102
|
mode: Writable<EditorMode>;
|
|
97
103
|
connectingInput: Writable<ConnectingInput>;
|
|
98
104
|
breakpoint: Writable<EditorBreakpoint>;
|
|
99
105
|
runnableComponents: Writable<Record<string, {
|
|
100
106
|
autoRefresh: boolean;
|
|
107
|
+
refreshOnStart?: boolean;
|
|
101
108
|
cb: (inlineScript?: InlineScript) => Promise<void>;
|
|
102
109
|
}>>;
|
|
103
110
|
staticExporter: Writable<Record<string, () => any>>;
|
|
@@ -125,6 +132,11 @@ export type AppViewerContext = {
|
|
|
125
132
|
left?: () => boolean;
|
|
126
133
|
right?: (skipTableActions?: boolean | undefined) => string | boolean;
|
|
127
134
|
setTab?: (index: number) => void;
|
|
135
|
+
agGrid?: {
|
|
136
|
+
api: any;
|
|
137
|
+
columnApi: any;
|
|
138
|
+
};
|
|
139
|
+
setCode?: (value: string) => void;
|
|
128
140
|
}>>;
|
|
129
141
|
hoverStore: Writable<string | undefined>;
|
|
130
142
|
allIdsInPath: Writable<string[]>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Schema } from '../../common';
|
|
2
|
-
import type { App, ComponentCssProperty, GridItem } from './types';
|
|
3
2
|
import type { AppInput, InputType, ResultAppInput, StaticAppInput } from './inputType';
|
|
4
3
|
import type { Output } from './rx';
|
|
4
|
+
import type { App, ComponentCssProperty, GridItem, HorizontalAlignment, VerticalAlignment } from './types';
|
|
5
5
|
export declare function allItems(grid: GridItem[], subgrids: Record<string, GridItem[]> | undefined): GridItem[];
|
|
6
6
|
export declare function loadSchema(workspace: string, path: string, runType: 'script' | 'flow' | 'hubscript'): Promise<Schema>;
|
|
7
7
|
export declare function schemaToInputsSpec(schema: Schema, defaultUserInput: boolean): Record<string, StaticAppInput>;
|
|
@@ -19,3 +19,5 @@ export declare function getAllScriptNames(app: App): string[];
|
|
|
19
19
|
export declare function toPascalCase(text: string): string;
|
|
20
20
|
export declare function toKebabCase(text: string): string;
|
|
21
21
|
export declare function concatCustomCss<T extends Record<string, ComponentCssProperty>>(appCss?: Record<string, ComponentCssProperty>, componentCss?: T): T | undefined;
|
|
22
|
+
export declare function tailwindHorizontalAlignment(alignment?: HorizontalAlignment): string;
|
|
23
|
+
export declare function tailwindVerticalAlignment(alignment?: VerticalAlignment): string;
|
package/components/apps/utils.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { FlowService, ScriptService } from '../../gen';
|
|
2
2
|
import { inferArgs } from '../../infer';
|
|
3
|
-
import { emptySchema
|
|
3
|
+
import { emptySchema } from '../../utils';
|
|
4
4
|
import { twMerge } from 'tailwind-merge';
|
|
5
5
|
export function allItems(grid, subgrids) {
|
|
6
6
|
if (subgrids == undefined) {
|
|
@@ -116,12 +116,15 @@ export function clearResultAppInput(appInput) {
|
|
|
116
116
|
}
|
|
117
117
|
export function toStatic(app, staticExporter, summary) {
|
|
118
118
|
const newApp = JSON.parse(JSON.stringify(app));
|
|
119
|
-
newApp.grid.forEach((x) => {
|
|
119
|
+
allItems(newApp.grid, newApp.subgrids).forEach((x) => {
|
|
120
120
|
let c = x.data;
|
|
121
121
|
if (c.componentInput?.type == 'runnable') {
|
|
122
122
|
c.componentInput.value = staticExporter[x.id]();
|
|
123
123
|
}
|
|
124
124
|
});
|
|
125
|
+
newApp.hiddenInlineScripts?.forEach((x, i) => {
|
|
126
|
+
x.noBackendValue = staticExporter[`bg_` + i]();
|
|
127
|
+
});
|
|
125
128
|
return { app: newApp, summary };
|
|
126
129
|
}
|
|
127
130
|
export function buildExtraLib(components, idToExclude, hasRows, state, goto) {
|
|
@@ -137,6 +140,7 @@ ${goto
|
|
|
137
140
|
? `declare async function goto(path: string, newTab?: boolean): Promise<void>;
|
|
138
141
|
declare function setTab(id: string, index: string): void;
|
|
139
142
|
declare function recompute(id: string): void;
|
|
143
|
+
declare function getAgGrid(id: string): {api: any, columnApi: any} | undefined;
|
|
140
144
|
`
|
|
141
145
|
: ''}
|
|
142
146
|
declare const state: ${JSON.stringify(state)};
|
|
@@ -192,3 +196,23 @@ export function concatCustomCss(appCss, componentCss) {
|
|
|
192
196
|
];
|
|
193
197
|
}));
|
|
194
198
|
}
|
|
199
|
+
export function tailwindHorizontalAlignment(alignment) {
|
|
200
|
+
if (!alignment)
|
|
201
|
+
return '';
|
|
202
|
+
const classes = {
|
|
203
|
+
left: 'justify-start',
|
|
204
|
+
center: 'justify-center',
|
|
205
|
+
right: 'justify-end'
|
|
206
|
+
};
|
|
207
|
+
return classes[alignment];
|
|
208
|
+
}
|
|
209
|
+
export function tailwindVerticalAlignment(alignment) {
|
|
210
|
+
if (!alignment)
|
|
211
|
+
return '';
|
|
212
|
+
const classes = {
|
|
213
|
+
top: 'items-start',
|
|
214
|
+
center: 'items-center',
|
|
215
|
+
bottom: 'items-end'
|
|
216
|
+
};
|
|
217
|
+
return classes[alignment];
|
|
218
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface Environment {
|
|
2
|
+
globalAPI?: boolean;
|
|
3
|
+
baseUrl?: string;
|
|
4
|
+
getWorker?(workerId: string, label: string): Promise<Worker> | Worker;
|
|
5
|
+
getWorkerUrl?(workerId: string, label: string): string;
|
|
6
|
+
workerOverrideGlobals: WorkerOverrideGlobals;
|
|
7
|
+
}
|
|
8
|
+
type WorkerOverrideGlobals = {
|
|
9
|
+
basePath: string;
|
|
10
|
+
workerPath: string;
|
|
11
|
+
workerOptions: WorkerOptions;
|
|
12
|
+
};
|
|
13
|
+
export declare function buildWorkerDefinition(workerPath: string, basePath: string, useModuleWorker: boolean): void;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export function buildWorkerDefinition(workerPath, basePath, useModuleWorker) {
|
|
2
|
+
const monWin = self;
|
|
3
|
+
const workerOverrideGlobals = {
|
|
4
|
+
basePath: basePath,
|
|
5
|
+
workerPath: workerPath,
|
|
6
|
+
workerOptions: {
|
|
7
|
+
type: useModuleWorker ? 'module' : 'classic'
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
if (!monWin.MonacoEnvironment) {
|
|
11
|
+
monWin.MonacoEnvironment = {
|
|
12
|
+
workerOverrideGlobals: workerOverrideGlobals
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
const getWorker = (_, label) => {
|
|
16
|
+
console.log('getWorker: workerId: ' + _ + ' label: ' + label);
|
|
17
|
+
const buildWorker = (globals, label, workerName, editorType) => {
|
|
18
|
+
globals.workerOptions.name = label;
|
|
19
|
+
const workerFilename = globals.workerOptions.type === 'module' ? `${workerName}-es.js` : `${workerName}-iife.js`;
|
|
20
|
+
const workerPathLocal = `${globals.workerPath}/${workerFilename}`;
|
|
21
|
+
const workerUrl = new URL(workerPathLocal, globals.basePath);
|
|
22
|
+
console.log(`${editorType}: url: ${workerUrl.href} created from basePath: ${globals.basePath} and file: ${workerPathLocal}`);
|
|
23
|
+
return new Worker(workerUrl.href, globals.workerOptions);
|
|
24
|
+
};
|
|
25
|
+
switch (label) {
|
|
26
|
+
case 'template':
|
|
27
|
+
case 'typescript':
|
|
28
|
+
case 'javascript':
|
|
29
|
+
return buildWorker(workerOverrideGlobals, label, 'tsWorker', 'TS Worker');
|
|
30
|
+
case 'html':
|
|
31
|
+
case 'handlebars':
|
|
32
|
+
case 'razor':
|
|
33
|
+
return buildWorker(workerOverrideGlobals, label, 'htmlWorker', 'HTML Worker');
|
|
34
|
+
case 'css':
|
|
35
|
+
case 'scss':
|
|
36
|
+
case 'less':
|
|
37
|
+
return buildWorker(workerOverrideGlobals, label, 'cssWorker', 'CSS Worker');
|
|
38
|
+
case 'json':
|
|
39
|
+
return buildWorker(workerOverrideGlobals, label, 'jsonWorker', 'JSON Worker');
|
|
40
|
+
default:
|
|
41
|
+
return buildWorker(workerOverrideGlobals, label, 'editorWorker', 'Editor Worker');
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
monWin.MonacoEnvironment.getWorker = getWorker;
|
|
45
|
+
}
|
|
@@ -4,11 +4,14 @@ import { ButtonType } from './model';
|
|
|
4
4
|
import { goto } from '$app/navigation';
|
|
5
5
|
import { Loader2 } from 'lucide-svelte';
|
|
6
6
|
import { twMerge } from 'tailwind-merge';
|
|
7
|
+
import ButtonDropdown from './ButtonDropdown.svelte';
|
|
8
|
+
import { MenuItem } from '@rgossiaux/svelte-headlessui';
|
|
7
9
|
export let size = 'md';
|
|
8
10
|
export let spacingSize = size;
|
|
9
11
|
export let color = 'blue';
|
|
10
12
|
export let variant = 'contained';
|
|
11
13
|
export let btnClasses = '';
|
|
14
|
+
export let wrapperClasses = '';
|
|
12
15
|
export let disabled = false;
|
|
13
16
|
export let href = undefined;
|
|
14
17
|
export let target = '_self';
|
|
@@ -22,6 +25,7 @@ export let buttonType = 'button';
|
|
|
22
25
|
export let loading = false;
|
|
23
26
|
export let title = undefined;
|
|
24
27
|
export let style = '';
|
|
28
|
+
export let dropdownItems = undefined;
|
|
25
29
|
const dispatch = createEventDispatcher();
|
|
26
30
|
// Order of classes: border, border modifier, bg, bg modifier, text, text modifier, everything else
|
|
27
31
|
const colorVariants = {
|
|
@@ -56,7 +60,7 @@ const colorVariants = {
|
|
|
56
60
|
};
|
|
57
61
|
$: buttonProps = {
|
|
58
62
|
id,
|
|
59
|
-
class: twMerge(colorVariants?.[color]?.[variant], variant === 'border' ? 'border' : '', ButtonType.FontSizeClasses[size], ButtonType.SpacingClasses[spacingSize][variant], 'focus:ring-2 font-semibold', 'rounded-md', 'justify-center items-center text-center whitespace-nowrap inline-flex', btnClasses, disabled ? '!bg-gray-300 !text-gray-600 !cursor-not-allowed' : ''),
|
|
63
|
+
class: twMerge(colorVariants?.[color]?.[variant], variant === 'border' ? 'border' : '', ButtonType.FontSizeClasses[size], ButtonType.SpacingClasses[spacingSize][variant], 'focus:ring-2 font-semibold', dropdownItems ? 'rounded-l-md h-full' : 'rounded-md', 'justify-center items-center text-center whitespace-nowrap inline-flex', btnClasses, disabled ? '!bg-gray-300 !text-gray-600 !cursor-not-allowed' : '', 'transition-all'),
|
|
60
64
|
href,
|
|
61
65
|
target,
|
|
62
66
|
tabindex: disabled ? -1 : 0,
|
|
@@ -86,28 +90,46 @@ $: startIconClass = twMerge(iconOnly ? undefined : isSmall ? 'mr-1' : 'mr-2', st
|
|
|
86
90
|
$: endIconClass = twMerge(iconOnly ? undefined : isSmall ? 'ml-1' : 'ml-2', endIcon?.classes);
|
|
87
91
|
</script>
|
|
88
92
|
|
|
89
|
-
<
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
93
|
+
<div class="{dropdownItems ? 'flex flex-row divide-x divide-frost-600' : ''} {wrapperClasses}">
|
|
94
|
+
<svelte:element
|
|
95
|
+
this={href ? 'a' : 'button'}
|
|
96
|
+
bind:this={element}
|
|
97
|
+
on:pointerdown
|
|
98
|
+
on:click={onClick}
|
|
99
|
+
on:focus
|
|
100
|
+
on:blur
|
|
101
|
+
{...buttonProps}
|
|
102
|
+
disabled={disabled || loading}
|
|
103
|
+
type="submit"
|
|
104
|
+
{style}
|
|
105
|
+
>
|
|
106
|
+
{#if loading}
|
|
107
|
+
<Loader2 class="animate-spin mr-1" size={14} />
|
|
108
|
+
{:else if startIcon}
|
|
109
|
+
<Icon data={startIcon.icon} class={startIconClass} scale={ButtonType.IconScale[size]} />
|
|
110
|
+
{/if}
|
|
106
111
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
+
{#if !iconOnly}
|
|
113
|
+
<slot />
|
|
114
|
+
{/if}
|
|
115
|
+
{#if endIcon}
|
|
116
|
+
<Icon data={endIcon.icon} class={endIconClass} scale={ButtonType.IconScale[size]} />
|
|
117
|
+
{/if}
|
|
118
|
+
</svelte:element>
|
|
119
|
+
|
|
120
|
+
{#if dropdownItems}
|
|
121
|
+
<div class={twMerge(buttonProps.class, 'rounded-r-md rounded-l-none m-0 p-0 h-auto')}>
|
|
122
|
+
<ButtonDropdown>
|
|
123
|
+
<svelte:fragment slot="items">
|
|
124
|
+
{#each dropdownItems as item}
|
|
125
|
+
<MenuItem on:click={item.onClick} href={item.href}>
|
|
126
|
+
<div class="!text-gray-700 px-4 py-2 my-1 cursor-pointer hover:bg-gray-100 !text-sm">
|
|
127
|
+
{item.label}
|
|
128
|
+
</div>
|
|
129
|
+
</MenuItem>
|
|
130
|
+
{/each}
|
|
131
|
+
</svelte:fragment>
|
|
132
|
+
</ButtonDropdown>
|
|
133
|
+
</div>
|
|
112
134
|
{/if}
|
|
113
|
-
</
|
|
135
|
+
</div>
|
|
@@ -9,6 +9,7 @@ declare const __propDef: {
|
|
|
9
9
|
color?: "none" | "blue" | "gray" | "red" | "green" | "dark" | "light" | undefined;
|
|
10
10
|
variant?: ButtonType.Variant | undefined;
|
|
11
11
|
btnClasses?: string | undefined;
|
|
12
|
+
wrapperClasses?: string | undefined;
|
|
12
13
|
disabled?: boolean | undefined;
|
|
13
14
|
href?: string | undefined;
|
|
14
15
|
target?: ButtonType.Target | undefined;
|
|
@@ -18,10 +19,15 @@ declare const __propDef: {
|
|
|
18
19
|
element?: ButtonType.Element | undefined;
|
|
19
20
|
id?: string | undefined;
|
|
20
21
|
nonCaptureEvent?: boolean | undefined;
|
|
21
|
-
buttonType?: "
|
|
22
|
+
buttonType?: "button" | "submit" | "reset" | undefined;
|
|
22
23
|
loading?: boolean | undefined;
|
|
23
24
|
title?: string | undefined;
|
|
24
25
|
style?: string | undefined;
|
|
26
|
+
dropdownItems?: {
|
|
27
|
+
label: string;
|
|
28
|
+
onClick?: (() => void) | undefined;
|
|
29
|
+
href?: string | undefined;
|
|
30
|
+
}[] | undefined;
|
|
25
31
|
};
|
|
26
32
|
events: {
|
|
27
33
|
pointerdown: PointerEvent;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import { Menu, Transition, MenuButton, MenuItems } from '@rgossiaux/svelte-headlessui'
|
|
3
|
+
import { ChevronDown } from 'lucide-svelte'
|
|
4
|
+
</script>
|
|
5
|
+
|
|
6
|
+
<Menu let:open as="div" class="relative z-50 flex w-full h-full">
|
|
7
|
+
<MenuButton class="h-full w-full px-2">
|
|
8
|
+
<ChevronDown class="w-5 h-5" />
|
|
9
|
+
</MenuButton>
|
|
10
|
+
<Transition
|
|
11
|
+
show={open}
|
|
12
|
+
enter="transition ease-out duration-25"
|
|
13
|
+
enterFrom="transform opacity-0 scale-95"
|
|
14
|
+
enterTo="transform opacity-100 scale-100"
|
|
15
|
+
leave="transition ease-in duration-25"
|
|
16
|
+
leaveFrom="transform opacity-100 scale-100"
|
|
17
|
+
leaveTo="transform opacity-0 scale-95"
|
|
18
|
+
>
|
|
19
|
+
<MenuItems
|
|
20
|
+
class="absolute right-0 z-50 mt-2 w-56 origin-top-right top-8 divide-y divide-gray-100 rounded-md bg-white shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none"
|
|
21
|
+
>
|
|
22
|
+
<slot name="items" />
|
|
23
|
+
</MenuItems>
|
|
24
|
+
</Transition>
|
|
25
|
+
</Menu>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/** @typedef {typeof __propDef.props} ButtonDropdownProps */
|
|
2
|
+
/** @typedef {typeof __propDef.events} ButtonDropdownEvents */
|
|
3
|
+
/** @typedef {typeof __propDef.slots} ButtonDropdownSlots */
|
|
4
|
+
export default class ButtonDropdown extends SvelteComponentTyped<{
|
|
5
|
+
[x: string]: never;
|
|
6
|
+
}, {
|
|
7
|
+
[evt: string]: CustomEvent<any>;
|
|
8
|
+
}, {
|
|
9
|
+
items: {};
|
|
10
|
+
}> {
|
|
11
|
+
}
|
|
12
|
+
export type ButtonDropdownProps = typeof __propDef.props;
|
|
13
|
+
export type ButtonDropdownEvents = typeof __propDef.events;
|
|
14
|
+
export type ButtonDropdownSlots = typeof __propDef.slots;
|
|
15
|
+
import { SvelteComponentTyped } from "svelte";
|
|
16
|
+
declare const __propDef: {
|
|
17
|
+
props: {
|
|
18
|
+
[x: string]: never;
|
|
19
|
+
};
|
|
20
|
+
events: {
|
|
21
|
+
[evt: string]: CustomEvent<any>;
|
|
22
|
+
};
|
|
23
|
+
slots: {
|
|
24
|
+
items: {};
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export declare const BUTTON_COLORS: readonly ["blue", "red", "dark", "light", "green", "gray", "none"];
|
|
2
2
|
export declare namespace ButtonType {
|
|
3
|
-
type Size = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
4
|
-
type Color = typeof BUTTON_COLORS[number];
|
|
3
|
+
type Size = 'xs2' | 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
4
|
+
type Color = (typeof BUTTON_COLORS)[number];
|
|
5
5
|
type Variant = 'contained' | 'border';
|
|
6
6
|
type Target = '_self' | '_blank';
|
|
7
7
|
type Element = HTMLButtonElement | HTMLAnchorElement;
|
|
@@ -12,7 +12,6 @@ export declare namespace ButtonType {
|
|
|
12
12
|
const FontSizeClasses: Record<ButtonType.Size, string>;
|
|
13
13
|
const SpacingClasses: Record<ButtonType.Size, Record<ButtonType.Variant, string>>;
|
|
14
14
|
const IconScale: Record<ButtonType.Size, number>;
|
|
15
|
-
const ItemContextKey: "popupItemProps";
|
|
16
15
|
interface ItemProps {
|
|
17
16
|
size: Size;
|
|
18
17
|
color: Color;
|
|
@@ -2,6 +2,7 @@ export const BUTTON_COLORS = ['blue', 'red', 'dark', 'light', 'green', 'gray', '
|
|
|
2
2
|
export var ButtonType;
|
|
3
3
|
(function (ButtonType) {
|
|
4
4
|
ButtonType.FontSizeClasses = {
|
|
5
|
+
xs2: 'text-xs',
|
|
5
6
|
xs: 'text-xs',
|
|
6
7
|
sm: 'text-sm',
|
|
7
8
|
md: 'text-md',
|
|
@@ -9,6 +10,10 @@ export var ButtonType;
|
|
|
9
10
|
xl: 'text-xl'
|
|
10
11
|
};
|
|
11
12
|
ButtonType.SpacingClasses = {
|
|
13
|
+
xs2: {
|
|
14
|
+
border: 'px-2 py-[4px]',
|
|
15
|
+
contained: 'px-2 py-[4px]'
|
|
16
|
+
},
|
|
12
17
|
xs: {
|
|
13
18
|
border: 'px-3 py-[6px]',
|
|
14
19
|
contained: 'px-3 py-[7px]'
|
|
@@ -28,15 +33,14 @@ export var ButtonType;
|
|
|
28
33
|
xl: {
|
|
29
34
|
border: 'px-4 py-[8px]',
|
|
30
35
|
contained: 'px-4 py-[9px]'
|
|
31
|
-
}
|
|
36
|
+
}
|
|
32
37
|
};
|
|
33
38
|
ButtonType.IconScale = {
|
|
39
|
+
xs2: 0.6,
|
|
34
40
|
xs: 0.7,
|
|
35
41
|
sm: 0.8,
|
|
36
42
|
md: 1,
|
|
37
43
|
lg: 1.1,
|
|
38
44
|
xl: 1.2
|
|
39
45
|
};
|
|
40
|
-
// ButtonPopup types
|
|
41
|
-
ButtonType.ItemContextKey = 'popupItemProps';
|
|
42
46
|
})(ButtonType || (ButtonType = {}));
|
|
@@ -55,20 +55,19 @@ let timeout = true;
|
|
|
55
55
|
$: !open ? setTimeout(() => (timeout = true), durationMs) : (timeout = false);
|
|
56
56
|
onMount(() => {
|
|
57
57
|
mounted = true;
|
|
58
|
-
scrollLock(open);
|
|
59
58
|
});
|
|
60
59
|
</script>
|
|
61
60
|
|
|
62
61
|
<svelte:window on:keydown={onKeyDown} />
|
|
63
62
|
|
|
64
63
|
<aside
|
|
65
|
-
class="drawer {$$props.class} {$$props.positionClass}"
|
|
64
|
+
class="drawer {$$props.class ?? ''} {$$props.positionClass ?? ''}"
|
|
66
65
|
class:open
|
|
67
66
|
class:close={!open && timeout}
|
|
68
67
|
{style}
|
|
69
68
|
>
|
|
70
69
|
<!-- svelte-ignore a11y-click-events-have-key-events -->
|
|
71
|
-
<div class="overlay {$$props.positionClass}" on:click={handleClickAway} />
|
|
70
|
+
<div class="overlay {$$props.positionClass ?? ''}" on:click={handleClickAway} />
|
|
72
71
|
<div class="panel {placement} {$$props.positionClass}" class:size>
|
|
73
72
|
{#if open || !timeout || alwaysOpen}
|
|
74
73
|
<slot {open} />
|
|
@@ -1,21 +1,17 @@
|
|
|
1
1
|
<script>import { classNames } from '../../../utils';
|
|
2
|
-
import { faClose } from '@fortawesome/free-solid-svg-icons';
|
|
3
|
-
import { createEventDispatcher } from 'svelte';
|
|
4
|
-
import { Icon } from 'svelte-awesome';
|
|
5
2
|
import CloseButton from '../CloseButton.svelte';
|
|
6
3
|
export let title = undefined;
|
|
7
4
|
export let overflow_y = true;
|
|
8
5
|
export let noPadding = false;
|
|
9
6
|
export let forceOverflowVisible = false;
|
|
10
|
-
const dispatch = createEventDispatcher();
|
|
11
7
|
</script>
|
|
12
8
|
|
|
13
9
|
<div class="flex flex-col divide-y h-screen max-h-screen">
|
|
14
|
-
<div class="flex justify-between w-wull items-center px-2 py-2
|
|
10
|
+
<div class="flex justify-between w-wull items-center px-2 py-2">
|
|
15
11
|
<div class="flex items-center gap-2">
|
|
16
12
|
<CloseButton on:close />
|
|
17
13
|
|
|
18
|
-
<span class="font-semibold truncate text-gray-800">{title}</span>
|
|
14
|
+
<span class="font-semibold truncate text-gray-800">{title ?? ''}</span>
|
|
19
15
|
</div>
|
|
20
16
|
{#if $$slots.actions}
|
|
21
17
|
<div class="flex gap-1 items-center justify-end">
|