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
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
<script>import { allItems } from '../../../utils';
|
|
2
|
+
import { forbiddenIds } from '../../../../flows/idUtils';
|
|
3
|
+
import { ArrowRight, Pencil } from 'lucide-svelte';
|
|
4
|
+
import { createEventDispatcher, getContext } from 'svelte';
|
|
5
|
+
import { fade, slide } from 'svelte/transition';
|
|
6
|
+
import { Button, Popup } from '../../../../common';
|
|
7
|
+
const { app, selectedComponent } = getContext('AppViewerContext');
|
|
8
|
+
export let id;
|
|
9
|
+
const dispatch = createEventDispatcher();
|
|
10
|
+
const regex = /^[a-zA-Z0-9]{1,}$/;
|
|
11
|
+
let value = id;
|
|
12
|
+
let button;
|
|
13
|
+
let input;
|
|
14
|
+
let error = '';
|
|
15
|
+
$: if (!regex.test(value)) {
|
|
16
|
+
error = 'The ID must include only letters and numbers';
|
|
17
|
+
}
|
|
18
|
+
else if (forbiddenIds.includes(value)) {
|
|
19
|
+
error = 'This ID is reserved';
|
|
20
|
+
}
|
|
21
|
+
else if (allItems($app.grid, $app.subgrids).some((item) => item.id === value && item.id !== id)) {
|
|
22
|
+
error = 'This ID is already in use';
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
id = value;
|
|
26
|
+
error = '';
|
|
27
|
+
}
|
|
28
|
+
function save() {
|
|
29
|
+
if (error != '') {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
dispatch('change', id);
|
|
33
|
+
input.blur();
|
|
34
|
+
}
|
|
35
|
+
</script>
|
|
36
|
+
|
|
37
|
+
<button
|
|
38
|
+
on:click|stopPropagation={() => {
|
|
39
|
+
$selectedComponent = [id]
|
|
40
|
+
}}
|
|
41
|
+
bind:this={button}
|
|
42
|
+
title="Edit ID"
|
|
43
|
+
class="flex items-center px-1 rounded-sm bg-gray-100 hover:text-black text-gray-600"
|
|
44
|
+
aria-label="Open component ID editor"
|
|
45
|
+
>
|
|
46
|
+
<Pencil size={14} />
|
|
47
|
+
</button>
|
|
48
|
+
<Popup
|
|
49
|
+
ref={button}
|
|
50
|
+
options={{ placement: 'top-start' }}
|
|
51
|
+
transition={fade}
|
|
52
|
+
wrapperClasses="!z-[1002]"
|
|
53
|
+
outerClasses="rounded shadow-xl bg-white border p-3"
|
|
54
|
+
on:close={() => (value = id)}
|
|
55
|
+
>
|
|
56
|
+
<label class="block text-gray-900">
|
|
57
|
+
<div class="pb-1 text-sm text-gray-600">Component ID</div>
|
|
58
|
+
<div class="flex w-full">
|
|
59
|
+
<input
|
|
60
|
+
type="text"
|
|
61
|
+
bind:value
|
|
62
|
+
class="!w-auto grow"
|
|
63
|
+
bind:this={input}
|
|
64
|
+
on:click|stopPropagation={() => {}}
|
|
65
|
+
on:keypress={({ key }) => {
|
|
66
|
+
if (key === 'Enter') save()
|
|
67
|
+
}}
|
|
68
|
+
/>
|
|
69
|
+
<Button
|
|
70
|
+
size="xs"
|
|
71
|
+
color="blue"
|
|
72
|
+
buttonType="button"
|
|
73
|
+
btnClasses="!p-1 !w-[34px] !ml-1"
|
|
74
|
+
aria-label="Save ID"
|
|
75
|
+
disabled={error != ''}
|
|
76
|
+
on:click={save}
|
|
77
|
+
>
|
|
78
|
+
<ArrowRight size={18} />
|
|
79
|
+
</Button>
|
|
80
|
+
</div>
|
|
81
|
+
{#if error != ''}
|
|
82
|
+
<div
|
|
83
|
+
transition:slide|local={{ duration: 100 }}
|
|
84
|
+
class="w-full text-sm text-red-600 whitespace-pre-wrap pt-1"
|
|
85
|
+
>
|
|
86
|
+
{error}
|
|
87
|
+
</div>
|
|
88
|
+
{/if}
|
|
89
|
+
</label>
|
|
90
|
+
</Popup>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
declare const __propDef: {
|
|
3
|
+
props: {
|
|
4
|
+
id: string;
|
|
5
|
+
};
|
|
6
|
+
events: {
|
|
7
|
+
change: CustomEvent<any>;
|
|
8
|
+
} & {
|
|
9
|
+
[evt: string]: CustomEvent<any>;
|
|
10
|
+
};
|
|
11
|
+
slots: {};
|
|
12
|
+
};
|
|
13
|
+
export type IdEditorProps = typeof __propDef.props;
|
|
14
|
+
export type IdEditorEvents = typeof __propDef.events;
|
|
15
|
+
export type IdEditorSlots = typeof __propDef.slots;
|
|
16
|
+
export default class IdEditor extends SvelteComponentTyped<IdEditorProps, IdEditorEvents, IdEditorSlots> {
|
|
17
|
+
}
|
|
18
|
+
export {};
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
<script>import {
|
|
1
|
+
<script>import { allItems } from '../../../utils';
|
|
2
|
+
import { classNames } from '../../../../../utils';
|
|
2
3
|
import { ChevronDown, ChevronUp, Pointer } from 'lucide-svelte';
|
|
3
4
|
import { getContext } from 'svelte';
|
|
4
|
-
import { allsubIds } from '../../appUtils';
|
|
5
|
+
import { allsubIds, findGridItem } from '../../appUtils';
|
|
6
|
+
import IdEditor from './IdEditor.svelte';
|
|
5
7
|
export let id;
|
|
6
8
|
export let name;
|
|
7
9
|
export let first = false;
|
|
@@ -32,18 +34,78 @@ const idClass = {
|
|
|
32
34
|
blue: 'bg-blue-500 text-white',
|
|
33
35
|
indigo: 'bg-indigo-500 text-white'
|
|
34
36
|
};
|
|
37
|
+
function renameId(newId) {
|
|
38
|
+
{
|
|
39
|
+
const item = findGridItem($app, id);
|
|
40
|
+
if (item) {
|
|
41
|
+
item.data.id = newId;
|
|
42
|
+
item.id = newId;
|
|
43
|
+
}
|
|
44
|
+
const oldSubgrids = Object.keys($app.subgrids ?? {}).filter((subgrid) => subgrid.startsWith(id + '-'));
|
|
45
|
+
oldSubgrids.forEach((subgrid) => {
|
|
46
|
+
if ($app.subgrids) {
|
|
47
|
+
$app.subgrids[subgrid.replace(id, newId)] = $app.subgrids[subgrid];
|
|
48
|
+
delete $app.subgrids[subgrid];
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
allItems($app.grid, $app.subgrids).forEach((item) => {
|
|
52
|
+
if (item.data.componentInput?.type == 'connected') {
|
|
53
|
+
if (item.data.componentInput.connection?.componentId === id) {
|
|
54
|
+
item.data.componentInput.connection.componentId = newId;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
else if (item.data.componentInput?.type == 'runnable') {
|
|
58
|
+
if (item.data.componentInput?.runnable?.type === 'runnableByName' &&
|
|
59
|
+
item.data.componentInput?.runnable?.inlineScript?.refreshOn
|
|
60
|
+
?.map((x) => x.id)
|
|
61
|
+
?.includes(id)) {
|
|
62
|
+
item.data.componentInput.runnable.inlineScript.refreshOn =
|
|
63
|
+
item.data.componentInput.runnable.inlineScript.refreshOn.map((x) => {
|
|
64
|
+
if (x.id === id) {
|
|
65
|
+
return {
|
|
66
|
+
id: newId,
|
|
67
|
+
key: x.key
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
return x;
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
Object.values(item.data.configuration ?? {}).forEach((config) => {
|
|
75
|
+
if (config.type === 'connected') {
|
|
76
|
+
if (config.connection?.componentId === id) {
|
|
77
|
+
config.connection.componentId = newId;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
else if (config.type == 'oneOf') {
|
|
81
|
+
Object.values(config.configuration ?? {}).forEach((choices) => {
|
|
82
|
+
Object.values(choices).forEach((c) => {
|
|
83
|
+
if (c.type === 'connected') {
|
|
84
|
+
if (c.connection?.componentId === id) {
|
|
85
|
+
c.connection.componentId = newId;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
$app = $app;
|
|
94
|
+
$selectedComponent = [newId];
|
|
95
|
+
}
|
|
96
|
+
}
|
|
35
97
|
</script>
|
|
36
98
|
|
|
37
99
|
<!-- svelte-ignore a11y-click-events-have-key-events -->
|
|
38
100
|
<div class={$search == '' || inSearch ? '' : 'invisible h-0 overflow-hidden'}>
|
|
39
101
|
<!-- svelte-ignore a11y-mouse-events-have-key-events -->
|
|
40
102
|
<div
|
|
41
|
-
on:
|
|
103
|
+
on:mouseenter|stopPropagation={() => {
|
|
42
104
|
if (id !== $hoverStore) {
|
|
43
105
|
$hoverStore = id
|
|
44
106
|
}
|
|
45
107
|
}}
|
|
46
|
-
on:
|
|
108
|
+
on:mouseleave|stopPropagation={() => {
|
|
47
109
|
if ($hoverStore !== undefined) {
|
|
48
110
|
$hoverStore = undefined
|
|
49
111
|
}
|
|
@@ -63,26 +125,35 @@ const idClass = {
|
|
|
63
125
|
$manuallyOpened[id] = $manuallyOpened[id] != undefined ? !$manuallyOpened[id] : true
|
|
64
126
|
}}
|
|
65
127
|
>
|
|
66
|
-
<
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
<div
|
|
73
|
-
class={classNames(
|
|
74
|
-
'text-2xs font-bold px-2 py-0.5 rounded-sm',
|
|
75
|
-
$selectedComponent?.includes(id) ? idClass[color] : ''
|
|
76
|
-
)}
|
|
128
|
+
<div class="flex">
|
|
129
|
+
<button
|
|
130
|
+
disabled={!(selectable && !$selectedComponent?.includes(id)) || $connectingInput?.opened}
|
|
131
|
+
title="Select component"
|
|
132
|
+
on:click|stopPropagation={() => ($selectedComponent = [id])}
|
|
133
|
+
class="flex items-center ml-0.5 rounded-sm bg-gray-100 hover:text-black text-gray-600"
|
|
77
134
|
>
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
135
|
+
<div
|
|
136
|
+
class={classNames(
|
|
137
|
+
'text-2xs font-bold px-2 py-0.5 rounded-sm',
|
|
138
|
+
$selectedComponent?.includes(id) ? idClass[color] : ''
|
|
139
|
+
)}
|
|
140
|
+
>
|
|
141
|
+
{id}
|
|
83
142
|
</div>
|
|
143
|
+
{#if selectable && !$selectedComponent?.includes(id)}
|
|
144
|
+
<div class="px-1">
|
|
145
|
+
<Pointer size={14} />
|
|
146
|
+
</div>
|
|
147
|
+
{/if}
|
|
148
|
+
</button>
|
|
149
|
+
{#if selectable && ($selectedComponent?.includes(id) || $hoverStore === id)}
|
|
150
|
+
<IdEditor
|
|
151
|
+
{id}
|
|
152
|
+
on:selected={() => ($selectedComponent = [id])}
|
|
153
|
+
on:change={({ detail }) => renameId(detail)}
|
|
154
|
+
/>
|
|
84
155
|
{/if}
|
|
85
|
-
</
|
|
156
|
+
</div>
|
|
86
157
|
<div class="text-2xs font-bold flex flex-row gap-2 items-center truncate">
|
|
87
158
|
{name}
|
|
88
159
|
{#if !open}
|
|
@@ -5,7 +5,7 @@ import InlineScriptEditorDrawer from './InlineScriptEditorDrawer.svelte';
|
|
|
5
5
|
import { inferArgs } from '../../../../infer';
|
|
6
6
|
import Badge from '../../../common/badge/Badge.svelte';
|
|
7
7
|
import Editor from '../../../Editor.svelte';
|
|
8
|
-
import { emptySchema,
|
|
8
|
+
import { emptySchema, getModifierKey, scriptLangToEditorLang } from '../../../../utils';
|
|
9
9
|
import Popover from '../../../Popover.svelte';
|
|
10
10
|
import { computeFields } from './utils';
|
|
11
11
|
import { deepEqual } from 'fast-equals';
|
|
@@ -148,7 +148,7 @@ function handleRefreshOn(refreshOn) {
|
|
|
148
148
|
Format
|
|
149
149
|
|
|
150
150
|
<div class="flex flex-row items-center gap-1">
|
|
151
|
-
<Kbd>{
|
|
151
|
+
<Kbd>{getModifierKey()}</Kbd>
|
|
152
152
|
<Kbd>S</Kbd>
|
|
153
153
|
</div>
|
|
154
154
|
</div>
|
|
@@ -170,7 +170,7 @@ function handleRefreshOn(refreshOn) {
|
|
|
170
170
|
Run
|
|
171
171
|
|
|
172
172
|
<div class="flex flex-row items-center gap-1">
|
|
173
|
-
<Kbd>{
|
|
173
|
+
<Kbd>{getModifierKey()}</Kbd>
|
|
174
174
|
<Kbd>
|
|
175
175
|
<div class="h-4 flex items-center justify-center">
|
|
176
176
|
<CornerDownLeft size={10} />
|
|
@@ -188,6 +188,7 @@ function handleRefreshOn(refreshOn) {
|
|
|
188
188
|
<div class="border h-full">
|
|
189
189
|
{#if inlineScript.language != 'frontend'}
|
|
190
190
|
<Editor
|
|
191
|
+
path={inlineScript.path}
|
|
191
192
|
bind:this={editor}
|
|
192
193
|
class="flex flex-1 grow h-full"
|
|
193
194
|
lang={scriptLangToEditorLang(inlineScript?.language)}
|
|
@@ -48,11 +48,11 @@ function createBackgroundScript() {
|
|
|
48
48
|
<div class="text-sm font-semibold truncate mb-1"> Inline scripts </div>
|
|
49
49
|
<div class="flex flex-col gap-2 w-full">
|
|
50
50
|
{#if runnables.inline.length > 0}
|
|
51
|
-
<div class="flex gap-1 flex-col
|
|
51
|
+
<div class="flex gap-1 flex-col">
|
|
52
52
|
{#each runnables.inline as { name, id, transformer }, index (index)}
|
|
53
53
|
<button
|
|
54
54
|
id={PREFIX + id}
|
|
55
|
-
class="panel-item
|
|
55
|
+
class="panel-item
|
|
56
56
|
{$selectedComponentInEditor === id ? 'border-blue-500 bg-blue-100' : 'hover:bg-blue-50'}"
|
|
57
57
|
on:click={() => selectScript(id)}
|
|
58
58
|
>
|
|
@@ -79,7 +79,7 @@ function createBackgroundScript() {
|
|
|
79
79
|
</div>
|
|
80
80
|
{/if}
|
|
81
81
|
{#if $app.unusedInlineScripts?.length > 0}
|
|
82
|
-
<div class="flex gap-1 flex-col
|
|
82
|
+
<div class="flex gap-1 flex-col">
|
|
83
83
|
{#each $app.unusedInlineScripts as unusedInlineScript, index (index)}
|
|
84
84
|
{@const id = `unused-${index}`}
|
|
85
85
|
<button
|
|
@@ -14,49 +14,62 @@ let clientWidth;
|
|
|
14
14
|
</script>
|
|
15
15
|
|
|
16
16
|
{#if componentInput.fieldType !== 'any'}
|
|
17
|
-
<div class="w-full
|
|
18
|
-
<
|
|
19
|
-
{
|
|
20
|
-
|
|
21
|
-
|
|
17
|
+
<div class="w-full">
|
|
18
|
+
<div class="mx-auto" bind:clientWidth>
|
|
19
|
+
<ToggleButtonGroup on:selected={() => onchange?.()} bind:selected={componentInput.type}>
|
|
20
|
+
{#if componentInput.fieldType === 'template'}
|
|
21
|
+
<ToggleButton
|
|
22
|
+
title={`Templated string (use \$\{<output>.x\} )`}
|
|
23
|
+
position="left"
|
|
24
|
+
value="template"
|
|
25
|
+
size="xs"
|
|
26
|
+
disable={disableStatic}
|
|
27
|
+
>
|
|
28
|
+
<span class="font-mono text-2xs h-3 -mt-0.5">
|
|
29
|
+
{brackets}
|
|
30
|
+
</span>
|
|
31
|
+
{#if clientWidth > 250}
|
|
32
|
+
Template
|
|
33
|
+
{/if}
|
|
34
|
+
</ToggleButton>
|
|
35
|
+
{:else}
|
|
36
|
+
<ToggleButton
|
|
37
|
+
title="Static"
|
|
38
|
+
position="left"
|
|
39
|
+
value="static"
|
|
40
|
+
startIcon={{ icon: faPen }}
|
|
41
|
+
size="xs"
|
|
42
|
+
disable={disableStatic}
|
|
43
|
+
>
|
|
44
|
+
{#if clientWidth > 250}
|
|
45
|
+
Static
|
|
46
|
+
{/if}
|
|
47
|
+
</ToggleButton>
|
|
48
|
+
{/if}
|
|
49
|
+
|
|
50
|
+
<ToggleButton
|
|
51
|
+
title="Connect to an output"
|
|
52
|
+
value="connected"
|
|
53
|
+
position="center"
|
|
54
|
+
startIcon={{ icon: faArrowRight }}
|
|
55
|
+
size="xs"
|
|
56
|
+
>
|
|
57
|
+
{#if clientWidth > 250}
|
|
58
|
+
Connect
|
|
59
|
+
{/if}
|
|
22
60
|
</ToggleButton>
|
|
23
|
-
{:else}
|
|
24
61
|
<ToggleButton
|
|
25
|
-
title="
|
|
26
|
-
position="
|
|
27
|
-
value="
|
|
28
|
-
startIcon={{ icon:
|
|
62
|
+
title="Compute it with a script/flow"
|
|
63
|
+
position="right"
|
|
64
|
+
value="runnable"
|
|
65
|
+
startIcon={{ icon: faCode }}
|
|
29
66
|
size="xs"
|
|
30
|
-
disable={disableStatic}
|
|
31
67
|
>
|
|
32
68
|
{#if clientWidth > 250}
|
|
33
|
-
|
|
69
|
+
Compute
|
|
34
70
|
{/if}
|
|
35
71
|
</ToggleButton>
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
<ToggleButton
|
|
39
|
-
title="Connect"
|
|
40
|
-
value="connected"
|
|
41
|
-
position="center"
|
|
42
|
-
startIcon={{ icon: faArrowRight }}
|
|
43
|
-
size="xs"
|
|
44
|
-
>
|
|
45
|
-
{#if clientWidth > 250}
|
|
46
|
-
<span class="hidden lg:block">Connect</span>
|
|
47
|
-
{/if}
|
|
48
|
-
</ToggleButton>
|
|
49
|
-
<ToggleButton
|
|
50
|
-
title="Compute"
|
|
51
|
-
position="right"
|
|
52
|
-
value="runnable"
|
|
53
|
-
startIcon={{ icon: faCode }}
|
|
54
|
-
size="xs"
|
|
55
|
-
>
|
|
56
|
-
{#if clientWidth > 250}
|
|
57
|
-
<span class="hidden lg:block">Compute</span>
|
|
58
|
-
{/if}
|
|
59
|
-
</ToggleButton>
|
|
60
|
-
</ToggleButtonGroup>
|
|
72
|
+
</ToggleButtonGroup>
|
|
73
|
+
</div>
|
|
61
74
|
</div>
|
|
62
75
|
{/if}
|
|
@@ -121,7 +121,7 @@ $: componentSettings?.item?.data && ($app = $app);
|
|
|
121
121
|
noVariablePicker
|
|
122
122
|
/>
|
|
123
123
|
{:else if componentSettings.item.data.componentInput.type === 'template' && componentSettings.item.data.componentInput !== undefined}
|
|
124
|
-
<div class="py-1 min-h-[28px]
|
|
124
|
+
<div class="py-1 min-h-[28px] rounded border border-1 border-gray-500">
|
|
125
125
|
<TemplateEditor
|
|
126
126
|
bind:this={editor}
|
|
127
127
|
fontSize={12}
|
|
@@ -185,7 +185,7 @@ $: componentSettings?.item?.data && ($app = $app);
|
|
|
185
185
|
/>
|
|
186
186
|
</PanelSection>
|
|
187
187
|
{:else}
|
|
188
|
-
<div class="h-full w-full
|
|
188
|
+
<div class="h-full w-full text-sm text-gray-500 text-center py-8 px-2"
|
|
189
189
|
>{ccomponents[component.type].name} has no configuration</div
|
|
190
190
|
>
|
|
191
191
|
{/if}
|
|
@@ -210,7 +210,7 @@ $: componentSettings?.item?.data && ($app = $app);
|
|
|
210
210
|
|
|
211
211
|
{#if Object.keys(ccomponents[component.type].customCss ?? {}).length > 0}
|
|
212
212
|
<PanelSection title="Styling">
|
|
213
|
-
<div slot="action">
|
|
213
|
+
<div slot="action" class="flex justify-end flex-wrap gap-1">
|
|
214
214
|
<Button
|
|
215
215
|
color="light"
|
|
216
216
|
size="xs"
|
|
@@ -22,6 +22,16 @@ function detach() {
|
|
|
22
22
|
function clear() {
|
|
23
23
|
appInput = clearResultAppInput(appInput);
|
|
24
24
|
}
|
|
25
|
+
$: {
|
|
26
|
+
if (appInput.recomputeOnInputChanged === undefined) {
|
|
27
|
+
appInput.recomputeOnInputChanged = true;
|
|
28
|
+
}
|
|
29
|
+
//TODO: remove after migration is done
|
|
30
|
+
if (appInput.doNotRecomputeOnInputChanged != undefined) {
|
|
31
|
+
appInput.recomputeOnInputChanged = !appInput.doNotRecomputeOnInputChanged;
|
|
32
|
+
appInput.doNotRecomputeOnInputChanged = undefined;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
25
35
|
</script>
|
|
26
36
|
|
|
27
37
|
<div class="flex justify-between w-full items-center gap-1">
|
|
@@ -32,7 +42,7 @@ function clear() {
|
|
|
32
42
|
{appInput.runnable.path}
|
|
33
43
|
{/if}
|
|
34
44
|
</span>
|
|
35
|
-
<div class="flex gap-1
|
|
45
|
+
<div class="flex gap-1 justify-center">
|
|
36
46
|
{#if appInput.runnable?.type === 'runnableByName' && appInput.runnable.inlineScript}
|
|
37
47
|
<Button size="xs" color="light" variant="border" on:click={detach}>
|
|
38
48
|
Detach
|
|
@@ -94,11 +104,9 @@ function clear() {
|
|
|
94
104
|
<div class="flex items-center">
|
|
95
105
|
<Toggle
|
|
96
106
|
size="xs"
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
options={{ right: 'do NOT recompute on input changes' }}
|
|
107
|
+
bind:checked={appInput.recomputeOnInputChanged}
|
|
108
|
+
options={{ right: 'recompute on any input changes' }}
|
|
100
109
|
/>
|
|
101
|
-
<Tooltip>If not toggled, whenever an input is changed, the script will be re-run.</Tooltip>
|
|
102
110
|
</div>
|
|
103
111
|
{/if}
|
|
104
112
|
|
|
@@ -107,7 +115,7 @@ function clear() {
|
|
|
107
115
|
bind:runnable={appInput.runnable}
|
|
108
116
|
{appComponent}
|
|
109
117
|
fields={appInput.fields}
|
|
110
|
-
|
|
118
|
+
recomputeOnInputChanged={appInput.recomputeOnInputChanged}
|
|
111
119
|
/>
|
|
112
120
|
</div>
|
|
113
121
|
{/if}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script>import { Badge } from '../../../common';
|
|
2
2
|
import Button from '../../../common/button/Button.svelte';
|
|
3
|
-
import { getNextId } from '../../../flows/
|
|
3
|
+
import { getNextId } from '../../../flows/idUtils';
|
|
4
4
|
import { classNames } from '../../../../utils';
|
|
5
5
|
import { faPlus, faTrashAlt } from '@fortawesome/free-solid-svg-icons';
|
|
6
6
|
import { getContext } from 'svelte';
|
|
@@ -70,6 +70,7 @@ function select(label) {
|
|
|
70
70
|
{#if anchor}
|
|
71
71
|
<Popup
|
|
72
72
|
ref={anchor}
|
|
73
|
+
closeOn={[]}
|
|
73
74
|
options={{ placement: 'bottom' }}
|
|
74
75
|
bind:open={openPopup}
|
|
75
76
|
let:close
|
|
@@ -79,7 +80,11 @@ function select(label) {
|
|
|
79
80
|
<div class="max-w-xs shadow-[0_10px_40px_-5px_rgba(0,0,0,0.25)] bg-white rounded-md p-2">
|
|
80
81
|
{#if filteredItems}
|
|
81
82
|
<input
|
|
82
|
-
on:keydown
|
|
83
|
+
on:keydown={(event) => {
|
|
84
|
+
if (!['ArrowDown', 'ArrowUp'].includes(event.key)) {
|
|
85
|
+
event.stopPropagation()
|
|
86
|
+
}
|
|
87
|
+
}}
|
|
83
88
|
bind:value={search}
|
|
84
89
|
type="text"
|
|
85
90
|
placeholder="Search"
|
|
@@ -95,8 +100,8 @@ function select(label) {
|
|
|
95
100
|
select(label)
|
|
96
101
|
close()
|
|
97
102
|
}}
|
|
98
|
-
class="w-full center-center flex-col font-normal p-1
|
|
99
|
-
hover:bg-gray-100 focus:bg-gray-100 rounded duration-200
|
|
103
|
+
class="w-full center-center flex-col font-normal p-1
|
|
104
|
+
hover:bg-gray-100 focus:bg-gray-100 rounded duration-200
|
|
100
105
|
{label === componentInput.value ? 'text-blue-600 bg-blue-50 pointer-events-none' : ''}"
|
|
101
106
|
>
|
|
102
107
|
<svelte:component this={icon} size={22} />
|
|
@@ -155,7 +155,7 @@ function createScript() {
|
|
|
155
155
|
color="light"
|
|
156
156
|
variant="border"
|
|
157
157
|
startIcon={{ icon: faPlus }}
|
|
158
|
-
btnClasses="truncate"
|
|
158
|
+
btnClasses="truncate w-full"
|
|
159
159
|
>
|
|
160
160
|
Create an inline script
|
|
161
161
|
</Button>
|
|
@@ -164,7 +164,7 @@ function createScript() {
|
|
|
164
164
|
size="sm"
|
|
165
165
|
color="blue"
|
|
166
166
|
startIcon={{ icon: faMousePointer }}
|
|
167
|
-
btnClasses="truncate"
|
|
167
|
+
btnClasses="truncate w-full"
|
|
168
168
|
>
|
|
169
169
|
Select a script or flow
|
|
170
170
|
</Button>
|
|
@@ -8,7 +8,6 @@ import { emptyString } from '../../../../../utils';
|
|
|
8
8
|
import { Skeleton } from '../../../../common';
|
|
9
9
|
export let filter = '';
|
|
10
10
|
let flows = undefined;
|
|
11
|
-
let loading = false;
|
|
12
11
|
let filteredItems = [];
|
|
13
12
|
$: prefilteredItems = flows ?? [];
|
|
14
13
|
const dispatch = createEventDispatcher();
|
|
@@ -18,10 +17,8 @@ async function loadFlow() {
|
|
|
18
17
|
perPage: 300
|
|
19
18
|
});
|
|
20
19
|
flows = loadedFlows;
|
|
21
|
-
loading = false;
|
|
22
20
|
}
|
|
23
21
|
onMount(() => {
|
|
24
|
-
loading = true;
|
|
25
22
|
loadFlow();
|
|
26
23
|
});
|
|
27
24
|
</script>
|
|
@@ -56,7 +53,7 @@ onMount(() => {
|
|
|
56
53
|
<div class="flex items-center gap-4">
|
|
57
54
|
<RowIcon kind="flow" />
|
|
58
55
|
|
|
59
|
-
<div class="w-full text-left font-normal
|
|
56
|
+
<div class="w-full text-left font-normal">
|
|
60
57
|
<div class="text-gray-900 flex-wrap text-md font-semibold mb-1">
|
|
61
58
|
{#if item.marked}
|
|
62
59
|
{@html item.marked ?? ''}
|
|
@@ -64,7 +61,7 @@ onMount(() => {
|
|
|
64
61
|
{!item.summary || item.summary.length == 0 ? item.path : item.summary}
|
|
65
62
|
{/if}
|
|
66
63
|
</div>
|
|
67
|
-
<div class="text-gray-600 text-xs
|
|
64
|
+
<div class="text-gray-600 text-xs">
|
|
68
65
|
{item.path}
|
|
69
66
|
</div>
|
|
70
67
|
</div>
|
|
@@ -8,7 +8,6 @@ import { emptyString } from '../../../../../utils';
|
|
|
8
8
|
import { Skeleton } from '../../../../common';
|
|
9
9
|
export let filter = '';
|
|
10
10
|
let scripts = undefined;
|
|
11
|
-
let loading = false;
|
|
12
11
|
let filteredItems = [];
|
|
13
12
|
$: prefilteredItems = scripts ?? [];
|
|
14
13
|
const dispatch = createEventDispatcher();
|
|
@@ -18,10 +17,8 @@ async function loadScripts() {
|
|
|
18
17
|
perPage: 300
|
|
19
18
|
});
|
|
20
19
|
scripts = loadedScripts;
|
|
21
|
-
loading = false;
|
|
22
20
|
}
|
|
23
21
|
onMount(() => {
|
|
24
|
-
loading = true;
|
|
25
22
|
loadScripts();
|
|
26
23
|
});
|
|
27
24
|
</script>
|
|
@@ -56,7 +53,7 @@ onMount(() => {
|
|
|
56
53
|
<div class="flex items-center gap-4">
|
|
57
54
|
<RowIcon kind="script" />
|
|
58
55
|
|
|
59
|
-
<div class="w-full text-left font-normal
|
|
56
|
+
<div class="w-full text-left font-normal">
|
|
60
57
|
<div class="text-gray-900 flex-wrap text-md font-semibold mb-1">
|
|
61
58
|
{#if item.marked}
|
|
62
59
|
{@html item.marked ?? ''}
|
|
@@ -64,7 +61,7 @@ onMount(() => {
|
|
|
64
61
|
{!item.summary || item.summary.length == 0 ? item.path : item.summary}
|
|
65
62
|
{/if}
|
|
66
63
|
</div>
|
|
67
|
-
<div class="text-gray-600 text-xs
|
|
64
|
+
<div class="text-gray-600 text-xs">
|
|
68
65
|
{item.path}
|
|
69
66
|
</div>
|
|
70
67
|
</div>
|