windmill-components 1.379.4 → 1.382.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.
Files changed (173) hide show
  1. package/package/components/ArgInput.svelte +33 -3
  2. package/package/components/DisplayResult.svelte +17 -5
  3. package/package/components/ErrorOrRecoveryHandler.svelte +3 -2
  4. package/package/components/FlowBuilder.svelte +3 -0
  5. package/package/components/FlowBuilder.svelte.d.ts +1 -0
  6. package/package/components/FlowGraphViewer.svelte +6 -5
  7. package/package/components/FlowJobResult.svelte +4 -2
  8. package/package/components/FlowJobResult.svelte.d.ts +2 -0
  9. package/package/components/FlowStatusViewerInner.svelte +17 -6
  10. package/package/components/FlowViewer.svelte +1 -0
  11. package/package/components/HighlightCode.svelte +2 -2
  12. package/package/components/ModulePreviewForm.svelte +1 -1
  13. package/package/components/ObjectResourceInput.svelte +7 -2
  14. package/package/components/ObjectResourceInput.svelte.d.ts +2 -0
  15. package/package/components/ResourcePicker.svelte +60 -48
  16. package/package/components/ScriptVersionHistory.svelte +63 -7
  17. package/package/components/apps/components/display/dbtable/DbExplorerCount.svelte +3 -2
  18. package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte +22 -5
  19. package/package/components/apps/components/display/table/AppAggridTable.svelte +14 -5
  20. package/package/components/apps/components/display/table/AppAggridTableActions.svelte +23 -8
  21. package/package/components/apps/components/display/table/AppAggridTableActions.svelte.d.ts +5 -3
  22. package/package/components/apps/components/display/table/utils.js +8 -7
  23. package/package/components/apps/components/helpers/RunnableComponent.svelte +13 -1
  24. package/package/components/apps/components/helpers/eval.js +31 -25
  25. package/package/components/apps/editor/AppEditorHeader.svelte +1 -0
  26. package/package/components/apps/editor/AppReportsDrawer.svelte +4 -3
  27. package/package/components/apps/editor/component/components.d.ts +1 -1
  28. package/package/components/apps/editor/settingsPanel/DecisionTreeGraphEditor.svelte +0 -1
  29. package/package/components/apps/editor/settingsPanel/DecisionTreeGraphHeader.svelte +55 -45
  30. package/package/components/apps/editor/settingsPanel/DecisionTreeGraphHeader.svelte.d.ts +7 -9
  31. package/package/components/apps/editor/settingsPanel/DecisionTreeGraphNode.svelte +66 -59
  32. package/package/components/apps/editor/settingsPanel/DecisionTreeGraphNode.svelte.d.ts +9 -11
  33. package/package/components/apps/editor/settingsPanel/decisionTree/DecisionTreePreview.svelte +213 -254
  34. package/package/components/apps/editor/settingsPanel/decisionTree/DecisionTreePreview.svelte.d.ts +0 -1
  35. package/package/components/apps/editor/settingsPanel/decisionTree/nodeHelpers.d.ts +1 -1
  36. package/package/components/apps/editor/settingsPanel/decisionTree/nodeHelpers.js +2 -6
  37. package/package/components/details/DetailPageDetailPanel.svelte +9 -1
  38. package/package/components/details/DetailPageDetailPanel.svelte.d.ts +2 -1
  39. package/package/components/details/DetailPageLayout.svelte +2 -0
  40. package/package/components/details/DetailPageLayout.svelte.d.ts +3 -0
  41. package/package/components/details/EmailTriggerPanel.svelte +128 -0
  42. package/package/components/details/EmailTriggerPanel.svelte.d.ts +20 -0
  43. package/package/components/details/WebhooksPanel.svelte +7 -68
  44. package/package/components/flows/FlowHistory.svelte +1 -0
  45. package/package/components/flows/content/FlowInputs.svelte +0 -1
  46. package/package/components/flows/content/FlowModuleScript.svelte +33 -3
  47. package/package/components/flows/content/FlowModuleScript.svelte.d.ts +2 -0
  48. package/package/components/flows/content/FlowModuleSuspend.svelte +15 -0
  49. package/package/components/flows/flowInfers.js +1 -1
  50. package/package/components/flows/map/FlowJobsMenu.svelte +39 -44
  51. package/package/components/flows/map/FlowModuleSchemaItem.svelte +1 -2
  52. package/package/components/flows/map/FlowModuleSchemaMap.svelte +4 -3
  53. package/package/components/flows/map/InsertModuleButton.svelte +16 -9
  54. package/package/components/flows/map/MapItem.svelte +3 -97
  55. package/package/components/flows/map/MapItem.svelte.d.ts +0 -5
  56. package/package/components/flows/map/VirtualItem.svelte +6 -159
  57. package/package/components/flows/map/VirtualItem.svelte.d.ts +0 -15
  58. package/package/components/graph/FlowGraphV2.svelte +256 -0
  59. package/package/components/graph/{FlowGraph.svelte.d.ts → FlowGraphV2.svelte.d.ts} +8 -8
  60. package/package/components/graph/graphBuilder.d.ts +15 -0
  61. package/package/components/graph/graphBuilder.js +337 -0
  62. package/package/components/graph/index.d.ts +0 -1
  63. package/package/components/graph/index.js +0 -1
  64. package/package/components/graph/model.d.ts +1 -8
  65. package/package/components/graph/renderers/edges/BaseEdge.svelte +109 -0
  66. package/package/components/graph/renderers/edges/BaseEdge.svelte.d.ts +35 -0
  67. package/package/components/graph/renderers/edges/DataflowEdge.svelte +37 -0
  68. package/package/components/graph/renderers/edges/DataflowEdge.svelte.d.ts +29 -0
  69. package/package/components/graph/renderers/edges/EmptyEdge.svelte +22 -0
  70. package/package/components/graph/renderers/edges/EmptyEdge.svelte.d.ts +23 -0
  71. package/package/components/graph/renderers/nodes/BranchAllStart.svelte +44 -0
  72. package/package/components/graph/renderers/nodes/BranchAllStart.svelte.d.ts +29 -0
  73. package/package/components/graph/renderers/nodes/BranchOneStart.svelte +41 -0
  74. package/package/components/graph/renderers/nodes/BranchOneStart.svelte.d.ts +29 -0
  75. package/package/components/graph/renderers/nodes/ForLoopEndNode.svelte +19 -0
  76. package/package/components/graph/renderers/nodes/ForLoopEndNode.svelte.d.ts +24 -0
  77. package/package/components/graph/renderers/nodes/ForLoopStartNode.svelte +20 -0
  78. package/package/components/graph/renderers/nodes/ForLoopStartNode.svelte.d.ts +25 -0
  79. package/package/components/graph/renderers/nodes/InputNode.svelte +74 -0
  80. package/package/components/graph/renderers/nodes/InputNode.svelte.d.ts +23 -0
  81. package/package/components/graph/renderers/nodes/ModuleNode.svelte +71 -0
  82. package/package/components/graph/renderers/nodes/ModuleNode.svelte.d.ts +41 -0
  83. package/package/components/graph/renderers/nodes/NoBranchNode.svelte +20 -0
  84. package/package/components/graph/renderers/nodes/NoBranchNode.svelte.d.ts +27 -0
  85. package/package/components/graph/renderers/nodes/NodeWrapper.svelte +21 -0
  86. package/package/components/graph/renderers/nodes/NodeWrapper.svelte.d.ts +22 -0
  87. package/package/components/graph/renderers/nodes/ResultNode.svelte +24 -0
  88. package/package/components/graph/renderers/nodes/ResultNode.svelte.d.ts +22 -0
  89. package/package/components/graph/renderers/nodes/branchAllEndNode.svelte +19 -0
  90. package/package/components/graph/renderers/nodes/branchAllEndNode.svelte.d.ts +26 -0
  91. package/package/components/graph/renderers/nodes/branchOneEndNode.svelte +19 -0
  92. package/package/components/graph/renderers/nodes/branchOneEndNode.svelte.d.ts +24 -0
  93. package/package/components/graph/renderers/utils.d.ts +8 -0
  94. package/package/components/graph/renderers/utils.js +26 -0
  95. package/package/components/graph/util.d.ts +1 -2
  96. package/package/components/graph/util.js +2 -8
  97. package/package/components/runs/RunsFilter.svelte +15 -17
  98. package/package/gen/core/OpenAPI.js +1 -1
  99. package/package/gen/schemas.gen.d.ts +3 -0
  100. package/package/gen/schemas.gen.js +3 -0
  101. package/package/gen/services.gen.d.ts +22 -3
  102. package/package/gen/services.gen.js +38 -2
  103. package/package/gen/types.gen.d.ts +69 -6
  104. package/package/hub.d.ts +11 -0
  105. package/package/hub.js +2 -0
  106. package/package/hubPaths.json +9 -0
  107. package/package/init_scripts/python_failure_module.d.ts +1 -1
  108. package/package/init_scripts/python_failure_module.js +4 -3
  109. package/package/script_helpers.d.ts +2 -2
  110. package/package/script_helpers.js +11 -9
  111. package/package.json +2 -1
  112. package/package/components/graph/FlowGraph.svelte +0 -614
  113. package/package/components/graph/svelvet/LICENSE +0 -21
  114. package/package/components/graph/svelvet/container/README.md +0 -7
  115. package/package/components/graph/svelvet/container/controllers/middleware.d.ts +0 -11
  116. package/package/components/graph/svelvet/container/controllers/middleware.js +0 -87
  117. package/package/components/graph/svelvet/container/models/index.d.ts +0 -0
  118. package/package/components/graph/svelvet/container/models/index.js +0 -1
  119. package/package/components/graph/svelvet/container/views/GraphView.svelte +0 -262
  120. package/package/components/graph/svelvet/container/views/GraphView.svelte.d.ts +0 -26
  121. package/package/components/graph/svelvet/container/views/Svelvet.svelte +0 -121
  122. package/package/components/graph/svelvet/container/views/Svelvet.svelte.d.ts +0 -36
  123. package/package/components/graph/svelvet/customCss/controllers/getCss.d.ts +0 -2
  124. package/package/components/graph/svelvet/customCss/controllers/getCss.js +0 -46
  125. package/package/components/graph/svelvet/d3/controllers/d3.d.ts +0 -5
  126. package/package/components/graph/svelvet/d3/controllers/d3.js +0 -59
  127. package/package/components/graph/svelvet/edges/controllers/anchorCbDev.d.ts +0 -4
  128. package/package/components/graph/svelvet/edges/controllers/anchorCbDev.js +0 -92
  129. package/package/components/graph/svelvet/edges/controllers/anchorCbUser.d.ts +0 -57
  130. package/package/components/graph/svelvet/edges/controllers/anchorCbUser.js +0 -73
  131. package/package/components/graph/svelvet/edges/controllers/util.d.ts +0 -37
  132. package/package/components/graph/svelvet/edges/controllers/util.js +0 -71
  133. package/package/components/graph/svelvet/edges/models/Anchor.d.ts +0 -48
  134. package/package/components/graph/svelvet/edges/models/Anchor.js +0 -122
  135. package/package/components/graph/svelvet/edges/models/Edge.d.ts +0 -48
  136. package/package/components/graph/svelvet/edges/models/Edge.js +0 -109
  137. package/package/components/graph/svelvet/edges/types/types.d.ts +0 -18
  138. package/package/components/graph/svelvet/edges/types/types.js +0 -1
  139. package/package/components/graph/svelvet/edges/views/Edges/BaseEdge.svelte +0 -104
  140. package/package/components/graph/svelvet/edges/views/Edges/BaseEdge.svelte.d.ts +0 -18
  141. package/package/components/graph/svelvet/edges/views/Edges/EdgeText.svelte +0 -42
  142. package/package/components/graph/svelvet/edges/views/Edges/EdgeText.svelte.d.ts +0 -17
  143. package/package/components/graph/svelvet/edges/views/Edges/SimpleBezierEdge.svelte +0 -151
  144. package/package/components/graph/svelvet/edges/views/Edges/SimpleBezierEdge.svelte.d.ts +0 -17
  145. package/package/components/graph/svelvet/edges/views/Edges/SmoothStepEdge.svelte +0 -157
  146. package/package/components/graph/svelvet/edges/views/Edges/SmoothStepEdge.svelte.d.ts +0 -60
  147. package/package/components/graph/svelvet/edges/views/Edges/StepEdge.svelte +0 -8
  148. package/package/components/graph/svelvet/edges/views/Edges/StepEdge.svelte.d.ts +0 -25
  149. package/package/components/graph/svelvet/edges/views/Edges/types.d.ts +0 -52
  150. package/package/components/graph/svelvet/edges/views/Edges/types.js +0 -1
  151. package/package/components/graph/svelvet/edges/views/Edges/utils.d.ts +0 -33
  152. package/package/components/graph/svelvet/edges/views/Edges/utils.js +0 -31
  153. package/package/components/graph/svelvet/nodes/controllers/util.d.ts +0 -9
  154. package/package/components/graph/svelvet/nodes/controllers/util.js +0 -13
  155. package/package/components/graph/svelvet/nodes/models/Node.d.ts +0 -74
  156. package/package/components/graph/svelvet/nodes/models/Node.js +0 -156
  157. package/package/components/graph/svelvet/nodes/views/Node.svelte +0 -84
  158. package/package/components/graph/svelvet/nodes/views/Node.svelte.d.ts +0 -21
  159. package/package/components/graph/svelvet/store/controllers/storeApi.d.ts +0 -25
  160. package/package/components/graph/svelvet/store/controllers/storeApi.js +0 -91
  161. package/package/components/graph/svelvet/store/controllers/userApi.d.ts +0 -3
  162. package/package/components/graph/svelvet/store/controllers/userApi.js +0 -18
  163. package/package/components/graph/svelvet/store/controllers/util.d.ts +0 -24
  164. package/package/components/graph/svelvet/store/controllers/util.js +0 -148
  165. package/package/components/graph/svelvet/store/models/store.d.ts +0 -13
  166. package/package/components/graph/svelvet/store/models/store.js +0 -12
  167. package/package/components/graph/svelvet/store/types/types.d.ts +0 -127
  168. package/package/components/graph/svelvet/store/types/types.js +0 -1
  169. package/package/components/graph/svelvet/types/README.md +0 -3
  170. package/package/components/graph/svelvet/types/index.d.ts +0 -2
  171. package/package/components/graph/svelvet/types/index.js +0 -1
  172. package/package/components/graph/svelvet/types/types.d.ts +0 -50
  173. package/package/components/graph/svelvet/types/types.js +0 -18
@@ -1,55 +1,65 @@
1
- <script>import { createEventDispatcher } from 'svelte';
2
- import { twMerge } from 'tailwind-merge';
1
+ <script>import { twMerge } from 'tailwind-merge';
3
2
  import InsertDecisionTreeNode from './decisionTree/InsertDecisionTreeNode.svelte';
4
3
  import { X } from 'lucide-svelte';
5
- export let node;
6
- export let editable = true;
7
- export let canDelete = true;
8
- export let label = '';
4
+ import NodeWrapper from '../../../graph/renderers/nodes/NodeWrapper.svelte';
5
+ export let data;
9
6
  let open = false;
10
- const dispatch = createEventDispatcher();
11
7
  </script>
12
8
 
13
- <div class="relative h-full">
14
- <div
15
- class={twMerge(
16
- 'w-full h-full border border-gray-400',
17
- 'flex flex-row gap-2 items-center justify-between rounded-sm overflow-hidden'
18
- )}
19
- style="min-width: 275px; max-height: 80px; background-color: {document.documentElement.classList.contains(
20
- 'dark'
21
- )
22
- ? '#2e3440'
23
- : '#dfe6ee'}"
24
- >
25
- <div class="ml-4 text-xs font-normal text-primary"> {label} </div>
26
- </div>
27
-
28
- {#if canDelete}
29
- <div class="w-[27px] absolute -top-[32px] left-[50%] right-[50%] -translate-x-1/2">
30
- <button
31
- title="Delete branch"
32
- on:click|preventDefault|stopPropagation={() => dispatch('removeBranch')}
33
- type="button"
34
- class="text-primary bg-surface border mx-[1px] border-gray-300 dark:border-gray-500 focus:outline-none hover:bg-surface-hover focus:ring-4 focus:ring-gray-200 font-medium rounded-full text-sm w-[25px] h-[25px] flex items-center justify-center"
35
- >
36
- <X class="m-[5px]" size={15} />
37
- </button>
38
- </div>
39
- {/if}
40
-
41
- {#if node.id !== 'end' && editable}
9
+ <NodeWrapper>
10
+ <div class="relative h-full">
42
11
  <div
43
12
  class={twMerge(
44
- 'absolute -bottom-10 left-1/2 transform -translate-x-1/2 flex items-center',
45
- open ? 'z-20' : ''
13
+ 'w-full h-full border border-gray-400',
14
+ 'flex flex-row gap-2 items-center justify-between rounded-sm overflow-hidden'
46
15
  )}
16
+ style="width: 275px; height: 34px; background-color: {document.documentElement.classList.contains(
17
+ 'dark'
18
+ )
19
+ ? '#2e3440'
20
+ : '#dfe6ee'}"
47
21
  >
48
- <InsertDecisionTreeNode
49
- on:node={() => dispatch('nodeInsert')}
50
- on:addBranch={() => dispatch('addBranch')}
51
- canAddBranch={false}
52
- />
22
+ <div class="ml-4 text-xs font-normal text-primary"> {data.node.label} </div>
53
23
  </div>
54
- {/if}
55
- </div>
24
+
25
+ {#if data.canDelete}
26
+ <div class="w-[27px] absolute -top-[32px] left-[50%] right-[50%] -translate-x-1/2">
27
+ <button
28
+ title="Delete branch"
29
+ on:click|preventDefault|stopPropagation={() => {
30
+ data.nodeCallbackHandler('removeBranch', data.node.id, data.node, data.parentIds, false)
31
+ }}
32
+ type="button"
33
+ class="text-primary bg-surface border mx-[1px] border-gray-300 dark:border-gray-500 focus:outline-none hover:bg-surface-hover focus:ring-4 focus:ring-gray-200 font-medium rounded-full text-sm w-[25px] h-[25px] flex items-center justify-center"
34
+ >
35
+ <X class="m-[5px]" size={15} />
36
+ </button>
37
+ </div>
38
+ {/if}
39
+
40
+ {#if data.node.id !== 'end'}
41
+ <div
42
+ class={twMerge(
43
+ 'absolute -bottom-10 left-1/2 transform -translate-x-1/2 flex items-center',
44
+ open ? 'z-20' : ''
45
+ )}
46
+ >
47
+ <InsertDecisionTreeNode
48
+ on:node={() => {
49
+ data.nodeCallbackHandler(
50
+ 'nodeInsert',
51
+ data.node.id,
52
+ data.node,
53
+ data.parentIds ?? [],
54
+ data.branchHeader
55
+ )
56
+ }}
57
+ on:addBranch={() => {
58
+ data.nodeCallbackHandler('addBranch', data.node.id, data.node, data.parentIds, true)
59
+ }}
60
+ canAddBranch={false}
61
+ />
62
+ </div>
63
+ {/if}
64
+ </div>
65
+ </NodeWrapper>
@@ -2,17 +2,15 @@ import { SvelteComponent } from "svelte";
2
2
  import type { DecisionTreeNode } from '../component';
3
3
  declare const __propDef: {
4
4
  props: {
5
- node: DecisionTreeNode;
6
- editable?: boolean | undefined;
7
- canDelete?: boolean | undefined;
8
- label?: string | undefined;
5
+ data: {
6
+ node: DecisionTreeNode;
7
+ canDelete: boolean;
8
+ nodeCallbackHandler: (event: string, detail: string, graphNode: DecisionTreeNode | undefined, parentIds: string[], branchInsert: boolean) => void;
9
+ parentIds: string[];
10
+ branchHeader: boolean;
11
+ };
9
12
  };
10
13
  events: {
11
- nodeInsert: CustomEvent<void>;
12
- delete: CustomEvent<void>;
13
- addBranch: CustomEvent<void>;
14
- removeBranch: CustomEvent<void>;
15
- } & {
16
14
  [evt: string]: CustomEvent<any>;
17
15
  };
18
16
  slots: {};
@@ -1,4 +1,4 @@
1
- <script>import { createEventDispatcher, getContext } from 'svelte';
1
+ <script>import { getContext } from 'svelte';
2
2
  import Button from '../../../common/button/Button.svelte';
3
3
  import { twMerge } from 'tailwind-merge';
4
4
  import InsertDecisionTreeNode from './decisionTree/InsertDecisionTreeNode.svelte';
@@ -6,69 +6,76 @@ import { Badge } from '../../../common';
6
6
  import { X } from 'lucide-svelte';
7
7
  import { getStateColor } from '../../../graph';
8
8
  import Tooltip from '../../../Tooltip.svelte';
9
- export let node;
10
- export let selected = false;
11
- export let canDelete = true;
12
- export let canAddBranch = true;
13
- export let index;
14
- export let darkMode;
9
+ import NodeWrapper from '../../../graph/renderers/nodes/NodeWrapper.svelte';
10
+ export let data;
15
11
  let open = false;
16
- const dispatch = createEventDispatcher();
17
12
  const { selectedNodeId } = getContext('DecisionTreeEditor');
18
- $: selected = $selectedNodeId === node.id;
13
+ $: selected = $selectedNodeId === data.node.id;
19
14
  </script>
20
15
 
21
- <div class="relative rounded-sm group">
22
- <Button
23
- class={twMerge(
24
- 'p-2 bg-surface w-full h-8 relative rounded-sm border border-gray-400',
25
- selected ? 'outline outline-2 outline-offset-2 outline-gray-600' : '',
26
- 'flex flex-row gap-2 items-center justify-between'
27
- )}
28
- style="width: 275px; height: 34px; background-color: {getStateColor(undefined, darkMode)};"
29
- on:click={() => {
30
- selected = true
31
- dispatch('select', node.id)
32
- }}
33
- >
34
- <div class="ml-2 text-xs font-normal text-primary truncate">
35
- {node.label === '' ? `Tab: ${node.id}` : node.label}
36
- </div>
37
- <Badge color="indigo" small>
38
- Tab index: {index}
39
- <Tooltip>
40
- You can manually select a node using the <b>setTab</b> function with this index in a frontend
41
- runnable.
42
- </Tooltip>
43
- </Badge>
44
- </Button>
45
-
46
- {#if canDelete}
47
- <button
16
+ <NodeWrapper let:darkMode>
17
+ <div class="rounded-sm group">
18
+ <Button
48
19
  class={twMerge(
49
- 'absolute -top-[10px] -right-[10px] rounded-full h-[20px] w-[20px] trash center-center text-primary',
50
- 'border-[1.5px] border-gray-700 bg-surface duration-150 hover:bg-red-400 hover:text-white hover:border-red-700',
51
- 'group-hover:opacity-100 opacity-0'
20
+ 'p-2 bg-surface w-full h-8 relative rounded-sm border border-gray-400',
21
+ selected ? 'outline outline-2 outline-offset-2 outline-gray-600' : '',
22
+ 'flex flex-row gap-2 items-center justify-between'
52
23
  )}
53
- on:click|preventDefault|stopPropagation={() => dispatch('delete')}
24
+ style="width: 275px; height: 34px; background-color: {getStateColor(
25
+ undefined,
26
+ darkMode,
27
+ '#fff'
28
+ )};"
29
+ on:click={() => {
30
+ selected = true
31
+ data.nodeCallbackHandler('select', data.node.id, data.node, data.parentIds, false)
32
+ }}
54
33
  >
55
- <X class="mx-[3px]" size={14} strokeWidth={2} />
56
- </button>
57
- {/if}
34
+ <div class="ml-2 text-xs font-normal text-primary truncate">
35
+ {data.node.label === '' ? `Tab: ${data.node.id}` : data.node.label}
36
+ </div>
37
+ <Badge color="indigo" small>
38
+ Tab index: {data.index}
39
+ <Tooltip>
40
+ You can manually select a node using the <b>setTab</b> function with this index in a frontend
41
+ runnable.
42
+ </Tooltip>
43
+ </Badge>
44
+ </Button>
58
45
 
59
- {#if node.id !== 'end'}
60
- <div
61
- class={twMerge(
62
- 'absolute -bottom-10 left-1/2 transform -translate-x-1/2 flex items-center',
63
- open ? 'z-20' : ''
64
- )}
65
- >
66
- <InsertDecisionTreeNode
67
- on:node={() => dispatch('nodeInsert')}
68
- on:addBranch={() => dispatch('addBranch')}
69
- canAddBranch={canAddBranch || node.next.length > 1}
70
- canAddNode={node.next.length <= 1}
71
- />
72
- </div>
73
- {/if}
74
- </div>
46
+ {#if data.canDelete}
47
+ <button
48
+ class={twMerge(
49
+ 'absolute -top-[10px] -right-[10px] rounded-full h-[20px] w-[20px] trash center-center text-primary',
50
+ 'border-[1.5px] border-gray-700 bg-surface duration-150 hover:bg-red-400 hover:text-white hover:border-red-700',
51
+ 'group-hover:opacity-100 opacity-0'
52
+ )}
53
+ on:click|preventDefault|stopPropagation={() => {
54
+ data.nodeCallbackHandler('delete', data.node.id, data.node, data.parentIds, false)
55
+ }}
56
+ >
57
+ <X class="mx-[3px]" size={14} strokeWidth={2} />
58
+ </button>
59
+ {/if}
60
+
61
+ {#if data.node.id !== 'end'}
62
+ <div
63
+ class={twMerge(
64
+ 'absolute -bottom-10 left-1/2 transform -translate-x-1/2 flex items-center',
65
+ open ? 'z-20' : ''
66
+ )}
67
+ >
68
+ <InsertDecisionTreeNode
69
+ on:node={() => {
70
+ data.nodeCallbackHandler('nodeInsert', data.node.id, data.node, data.parentIds, false)
71
+ }}
72
+ on:addBranch={() => {
73
+ data.nodeCallbackHandler('addBranch', data.node.id, data.node, data.parentIds, true)
74
+ }}
75
+ canAddBranch={data.canAddBranch || data.node.next.length > 1}
76
+ canAddNode={data.node.next.length <= 1}
77
+ />
78
+ </div>
79
+ {/if}
80
+ </div>
81
+ </NodeWrapper>
@@ -2,19 +2,17 @@ import { SvelteComponent } from "svelte";
2
2
  import type { DecisionTreeNode } from '../component';
3
3
  declare const __propDef: {
4
4
  props: {
5
- node: DecisionTreeNode;
6
- selected?: boolean | undefined;
7
- canDelete?: boolean | undefined;
8
- canAddBranch?: boolean | undefined;
9
- index: number;
10
- darkMode: boolean;
5
+ data: {
6
+ node: DecisionTreeNode;
7
+ canDelete: boolean;
8
+ canAddBranch: boolean;
9
+ selected: boolean;
10
+ index: number;
11
+ nodeCallbackHandler: (event: string, detail: string, graphNode: DecisionTreeNode | undefined, parentIds: string[], branchInsert: boolean) => void;
12
+ parentIds: string[];
13
+ };
11
14
  };
12
15
  events: {
13
- select: CustomEvent<string>;
14
- nodeInsert: CustomEvent<void>;
15
- delete: CustomEvent<void>;
16
- addBranch: CustomEvent<void>;
17
- } & {
18
16
  [evt: string]: CustomEvent<any>;
19
17
  };
20
18
  slots: {};