windmill-components 1.77.0 → 1.79.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.
Files changed (198) hide show
  1. package/components/ArgInput.svelte +4 -14
  2. package/components/LightweightArgInput.svelte +315 -0
  3. package/components/LightweightArgInput.svelte.d.ts +47 -0
  4. package/components/LightweightSchemaForm.svelte +31 -0
  5. package/components/LightweightSchemaForm.svelte.d.ts +18 -0
  6. package/components/ModulePreview.svelte +1 -0
  7. package/components/Multiselect.svelte.d.ts +2 -2
  8. package/components/Path.svelte +4 -0
  9. package/components/Range.svelte.d.ts +2 -2
  10. package/components/SimpleEditor.svelte +1 -1
  11. package/components/SimpleEditor.svelte.d.ts +2 -0
  12. package/components/TemplateEditor.svelte +3 -0
  13. package/components/TemplateEditor.svelte.d.ts +0 -204
  14. package/components/VariableEditor.svelte +2 -1
  15. package/components/apps/components/buttons/AppButton.svelte +45 -56
  16. package/components/apps/components/buttons/AppButton.svelte.d.ts +6 -4
  17. package/components/apps/components/buttons/AppForm.svelte.d.ts +2 -2
  18. package/components/apps/components/buttons/AppFormButton.svelte +1 -1
  19. package/components/apps/components/buttons/AppFormButton.svelte.d.ts +2 -2
  20. package/components/apps/components/display/AppBarChart.svelte +7 -3
  21. package/components/apps/components/display/AppBarChart.svelte.d.ts +2 -4
  22. package/components/apps/components/display/AppDisplayComponent.svelte +7 -3
  23. package/components/apps/components/display/AppDisplayComponent.svelte.d.ts +0 -2
  24. package/components/apps/components/display/AppHtml.svelte +7 -11
  25. package/components/apps/components/display/AppHtml.svelte.d.ts +0 -2
  26. package/components/apps/components/display/AppIcon.svelte +0 -1
  27. package/components/apps/components/display/AppIcon.svelte.d.ts +2 -5
  28. package/components/apps/components/display/AppImage.svelte +0 -1
  29. package/components/apps/components/display/AppImage.svelte.d.ts +2 -5
  30. package/components/apps/components/display/AppMap.svelte +13 -6
  31. package/components/apps/components/display/AppMap.svelte.d.ts +2 -5
  32. package/components/apps/components/display/AppPdf.svelte +8 -3
  33. package/components/apps/components/display/AppPdf.svelte.d.ts +2 -5
  34. package/components/apps/components/display/AppPieChart.svelte +7 -3
  35. package/components/apps/components/display/AppPieChart.svelte.d.ts +2 -4
  36. package/components/apps/components/display/AppScatterChart.svelte +7 -3
  37. package/components/apps/components/display/AppScatterChart.svelte.d.ts +2 -4
  38. package/components/apps/components/display/AppText.svelte +41 -17
  39. package/components/apps/components/display/AppText.svelte.d.ts +2 -4
  40. package/components/apps/components/display/AppTimeseries.svelte +7 -3
  41. package/components/apps/components/display/AppTimeseries.svelte.d.ts +2 -4
  42. package/components/apps/components/display/PlotlyHtml.svelte +9 -4
  43. package/components/apps/components/display/PlotlyHtml.svelte.d.ts +0 -2
  44. package/components/apps/components/display/VegaLiteHtml.svelte +8 -3
  45. package/components/apps/components/display/VegaLiteHtml.svelte.d.ts +2 -3
  46. package/components/apps/components/display/table/AppAggridTable.svelte +9 -4
  47. package/components/apps/components/display/table/AppAggridTable.svelte.d.ts +2 -3
  48. package/components/apps/components/display/table/AppTable.svelte +91 -36
  49. package/components/apps/components/display/table/AppTable.svelte.d.ts +2 -4
  50. package/components/apps/components/helpers/HiddenComponent.svelte +8 -2
  51. package/components/apps/components/helpers/HiddenComponent.svelte.d.ts +0 -2
  52. package/components/apps/components/helpers/InputValue.svelte +5 -1
  53. package/components/apps/components/helpers/InputValue.svelte.d.ts +3 -1
  54. package/components/apps/components/helpers/NonRunnableComponent.svelte +2 -2
  55. package/components/apps/components/helpers/ResizeWrapper.svelte +3 -4
  56. package/components/apps/components/helpers/RunnableComponent.svelte +17 -24
  57. package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +0 -1
  58. package/components/apps/components/helpers/RunnableWrapper.svelte +0 -2
  59. package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +0 -1
  60. package/components/apps/components/helpers/eval.js +36 -1
  61. package/components/apps/components/inputs/AppCheckbox.svelte +4 -2
  62. package/components/apps/components/inputs/AppCheckbox.svelte.d.ts +2 -5
  63. package/components/apps/components/inputs/AppDateInput.svelte +4 -2
  64. package/components/apps/components/inputs/AppDateInput.svelte.d.ts +2 -5
  65. package/components/apps/components/inputs/AppFileInput.svelte +4 -2
  66. package/components/apps/components/inputs/AppFileInput.svelte.d.ts +2 -5
  67. package/components/apps/components/inputs/AppMultiSelect.svelte +4 -2
  68. package/components/apps/components/inputs/AppMultiSelect.svelte.d.ts +2 -5
  69. package/components/apps/components/inputs/AppNumberInput.svelte +4 -2
  70. package/components/apps/components/inputs/AppNumberInput.svelte.d.ts +2 -5
  71. package/components/apps/components/inputs/AppRangeInput.svelte +5 -2
  72. package/components/apps/components/inputs/AppRangeInput.svelte.d.ts +2 -5
  73. package/components/apps/components/inputs/AppSelect.svelte +5 -2
  74. package/components/apps/components/inputs/AppSelect.svelte.d.ts +2 -5
  75. package/components/apps/components/inputs/AppSliderInputs.svelte +4 -2
  76. package/components/apps/components/inputs/AppSliderInputs.svelte.d.ts +2 -5
  77. package/components/apps/components/inputs/AppTextInput.svelte +5 -3
  78. package/components/apps/components/inputs/AppTextInput.svelte.d.ts +2 -5
  79. package/components/apps/components/inputs/currency/AppCurrencyInput.svelte +5 -2
  80. package/components/apps/components/inputs/currency/AppCurrencyInput.svelte.d.ts +2 -5
  81. package/components/apps/components/layout/AppContainer.svelte +0 -2
  82. package/components/apps/components/layout/AppContainer.svelte.d.ts +0 -4
  83. package/components/apps/components/layout/AppDivider.svelte.d.ts +2 -3
  84. package/components/apps/components/layout/AppDrawer.svelte.d.ts +2 -3
  85. package/components/apps/components/layout/AppSplitpanes.svelte +1 -5
  86. package/components/apps/components/layout/AppSplitpanes.svelte.d.ts +0 -2
  87. package/components/apps/components/layout/AppTabs.svelte +8 -9
  88. package/components/apps/components/layout/AppTabs.svelte.d.ts +2 -5
  89. package/components/apps/editor/AppComponentInput.svelte +2 -1
  90. package/components/apps/editor/AppEditor.svelte +12 -14
  91. package/components/apps/editor/AppEditorHeader.svelte +2 -2
  92. package/components/apps/editor/AppInputs.svelte +13 -14
  93. package/components/apps/editor/AppPreview.svelte +68 -15
  94. package/components/apps/editor/ComponentHeader.svelte +49 -50
  95. package/components/apps/editor/ComponentHeader.svelte.d.ts +1 -1
  96. package/components/apps/editor/GridEditor.svelte +6 -27
  97. package/components/apps/editor/GridPanel.svelte +3 -1
  98. package/components/apps/editor/GridViewer.svelte +91 -0
  99. package/components/apps/editor/GridViewer.svelte.d.ts +32 -0
  100. package/components/apps/editor/SettingsPanel.svelte +11 -0
  101. package/components/apps/editor/SubGridEditor.svelte +74 -51
  102. package/components/apps/editor/SubGridEditor.svelte.d.ts +1 -1
  103. package/components/apps/editor/appUtils.d.ts +4 -2
  104. package/components/apps/editor/appUtils.js +26 -19
  105. package/components/apps/editor/component/Component.svelte +16 -53
  106. package/components/apps/editor/component/ComponentNavigation.svelte +28 -13
  107. package/components/apps/editor/component/components.d.ts +3 -2
  108. package/components/apps/editor/component/components.js +63 -79
  109. package/components/apps/editor/componentsPanel/ComponentList.svelte +5 -4
  110. package/components/apps/editor/componentsPanel/componentStaticValues.d.ts +1 -1
  111. package/components/apps/editor/contextPanel/ComponentOutput.svelte +23 -33
  112. package/components/apps/editor/contextPanel/ComponentOutputViewer.svelte +14 -13
  113. package/components/apps/editor/contextPanel/ComponentOutputViewer.svelte.d.ts +0 -1
  114. package/components/apps/editor/contextPanel/ContextPanel.svelte +19 -27
  115. package/components/apps/editor/contextPanel/SubGridOutput.svelte +5 -10
  116. package/components/apps/editor/contextPanel/components/BackgroundScriptOutput.svelte +9 -6
  117. package/components/apps/editor/contextPanel/components/BackgroundScriptOutput.svelte.d.ts +0 -1
  118. package/components/apps/editor/contextPanel/components/BackgroundScriptsOutput.svelte +1 -3
  119. package/components/apps/editor/contextPanel/components/BackgroundScriptsOutput.svelte.d.ts +1 -3
  120. package/components/apps/editor/contextPanel/components/OutputHeader.svelte +73 -42
  121. package/components/apps/editor/contextPanel/components/OutputHeader.svelte.d.ts +0 -2
  122. package/components/apps/editor/contextPanel/components/TableActionOutput.svelte +2 -4
  123. package/components/apps/editor/contextPanel/components/TableActionOutput.svelte.d.ts +0 -1
  124. package/components/apps/editor/contextPanel/components/TableActionsOutput.svelte +1 -2
  125. package/components/apps/editor/contextPanel/components/TableActionsOutput.svelte.d.ts +0 -1
  126. package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte +3 -3
  127. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +20 -3
  128. package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +5 -7
  129. package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte +1 -1
  130. package/components/apps/editor/settingsPanel/ComponentPanel.svelte +31 -41
  131. package/components/apps/editor/settingsPanel/GridPane.svelte +1 -3
  132. package/components/apps/editor/settingsPanel/GridTab.svelte +1 -3
  133. package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +109 -13
  134. package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte.d.ts +6 -2
  135. package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +13 -116
  136. package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte.d.ts +2 -2
  137. package/components/apps/editor/settingsPanel/SelectedRunnable.svelte +4 -0
  138. package/components/apps/editor/settingsPanel/TableActionLabel.svelte.d.ts +2 -2
  139. package/components/apps/editor/settingsPanel/TableActions.svelte +2 -5
  140. package/components/apps/editor/settingsPanel/common/PanelSection.svelte +1 -2
  141. package/components/apps/editor/settingsPanel/common/PanelSection.svelte.d.ts +0 -1
  142. package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +12 -6
  143. package/components/apps/editor/settingsPanel/triggerLists/BackgroundScriptTriggerList.svelte +81 -0
  144. package/components/apps/editor/settingsPanel/triggerLists/BackgroundScriptTriggerList.svelte.d.ts +21 -0
  145. package/components/apps/editor/settingsPanel/triggerLists/ComponentTriggerList.svelte +18 -0
  146. package/components/apps/editor/settingsPanel/triggerLists/ComponentTriggerList.svelte.d.ts +17 -0
  147. package/components/apps/editor/settingsPanel/triggerLists/TriggerBadgesList.svelte +98 -0
  148. package/components/apps/editor/settingsPanel/triggerLists/TriggerBadgesList.svelte.d.ts +24 -0
  149. package/components/apps/editor/settingsPanel/triggerLists/triggerListUtils.d.ts +2 -0
  150. package/components/apps/editor/settingsPanel/triggerLists/triggerListUtils.js +11 -0
  151. package/components/apps/gridUtils.d.ts +1 -3
  152. package/components/apps/gridUtils.js +1 -15
  153. package/components/apps/inputType.d.ts +11 -2
  154. package/components/apps/rx.d.ts +1 -1
  155. package/components/apps/rx.js +9 -10
  156. package/components/apps/svelte-grid/Grid.svelte +9 -13
  157. package/components/apps/svelte-grid/Grid.svelte.d.ts +0 -2
  158. package/components/apps/svelte-grid/MoveResize.svelte +1 -1
  159. package/components/apps/svelte-grid/types.d.ts +12 -16
  160. package/components/apps/svelte-grid/utils/helper.d.ts +1 -5
  161. package/components/apps/types.d.ts +29 -9
  162. package/components/apps/utils.js +2 -2
  163. package/components/common/button/Button.svelte.d.ts +1 -1
  164. package/components/common/button/ButtonPopup.svelte.d.ts +1 -1
  165. package/components/common/menu/Menu.svelte.d.ts +1 -1
  166. package/components/flows/flowStore.js +1 -1
  167. package/components/graph/FlowGraph.svelte +0 -2
  168. package/components/graph/FlowGraph.svelte.d.ts +0 -1
  169. package/components/graph/svelvet/container/views/GraphView.svelte +3 -28
  170. package/components/graph/svelvet/container/views/GraphView.svelte.d.ts +0 -3
  171. package/components/graph/svelvet/container/views/Svelvet.svelte +1 -17
  172. package/components/graph/svelvet/container/views/Svelvet.svelte.d.ts +0 -8
  173. package/components/graph/svelvet/customCss/controllers/getCss.js +0 -11
  174. package/components/graph/svelvet/edges/controllers/util.js +1 -2
  175. package/components/graph/svelvet/edges/views/Edges/SmoothStepEdge.svelte.d.ts +2 -2
  176. package/components/graph/svelvet/nodes/controllers/util.js +1 -1
  177. package/components/graph/svelvet/nodes/models/Node.d.ts +0 -4
  178. package/components/graph/svelvet/nodes/models/Node.js +3 -41
  179. package/components/graph/svelvet/store/controllers/storeApi.js +2 -7
  180. package/components/graph/svelvet/store/controllers/util.d.ts +0 -7
  181. package/components/graph/svelvet/store/controllers/util.js +4 -36
  182. package/components/graph/svelvet/store/types/types.d.ts +0 -5
  183. package/components/home/ItemsList.svelte +1 -1
  184. package/components/propertyPicker/ObjectViewer.svelte +1 -1
  185. package/components/propertyPicker/PropPicker.svelte +4 -1
  186. package/package.json +10 -6
  187. package/utils.d.ts +2 -0
  188. package/utils.js +6 -0
  189. package/components/apps/editor/AppComponentInputs.svelte +0 -13
  190. package/components/apps/editor/AppComponentInputs.svelte.d.ts +0 -20
  191. package/components/graph/svelvet/nodes/views/EditNode.svelte +0 -147
  192. package/components/graph/svelvet/nodes/views/EditNode.svelte.d.ts +0 -33
  193. package/components/graph/svelvet/resizableNodes/controllers/util.d.ts +0 -11
  194. package/components/graph/svelvet/resizableNodes/controllers/util.js +0 -24
  195. package/components/graph/svelvet/resizableNodes/models/ResizeNode.d.ts +0 -33
  196. package/components/graph/svelvet/resizableNodes/models/ResizeNode.js +0 -71
  197. package/components/graph/svelvet/resizableNodes/views/ResizeNode.svelte +0 -81
  198. package/components/graph/svelvet/resizableNodes/views/ResizeNode.svelte.d.ts +0 -20
@@ -6,7 +6,7 @@ declare const __propDef: {
6
6
  [x: string]: any;
7
7
  size?: ButtonType.Size | undefined;
8
8
  spacingSize?: ButtonType.Size | undefined;
9
- color?: "none" | "blue" | "gray" | "red" | "green" | "dark" | "light" | undefined;
9
+ color?: "blue" | "gray" | "red" | "green" | "dark" | "light" | "none" | undefined;
10
10
  variant?: ButtonType.Variant | undefined;
11
11
  btnClasses?: string | undefined;
12
12
  disabled?: boolean | undefined;
@@ -4,7 +4,7 @@ import { ButtonType } from '..';
4
4
  declare const __propDef: {
5
5
  props: {
6
6
  size?: ButtonType.Size | undefined;
7
- color?: "none" | "blue" | "gray" | "red" | "green" | "dark" | "light" | undefined;
7
+ color?: "blue" | "gray" | "red" | "green" | "dark" | "light" | "none" | undefined;
8
8
  variant?: ButtonType.Variant | undefined;
9
9
  mainClasses?: string | undefined;
10
10
  toggleClasses?: string | undefined;
@@ -3,7 +3,7 @@ declare const __propDef: {
3
3
  props: {
4
4
  noMinW?: boolean | undefined;
5
5
  show?: boolean | undefined;
6
- placement?: "top-start" | "top-end" | "bottom-start" | "bottom-end" | "top-center" | "bottom-center" | undefined;
6
+ placement?: "top-start" | "top-end" | "top-center" | "bottom-start" | "bottom-end" | "bottom-center" | undefined;
7
7
  };
8
8
  events: {
9
9
  [evt: string]: CustomEvent<any>;
@@ -1,4 +1,4 @@
1
- import { get, writable } from 'svelte/store';
1
+ import { writable } from 'svelte/store';
2
2
  import { initFlowState } from './flowState';
3
3
  import { numberToChars } from './utils';
4
4
  export const importFlowStore = writable(undefined);
@@ -16,7 +16,6 @@ export let notSelectable = false;
16
16
  export let flowModuleStates = undefined;
17
17
  export let rebuildOnChange = undefined;
18
18
  export let selectedId = writable(undefined);
19
- export let initialZoom = 1.0;
20
19
  export let insertable = false;
21
20
  export let moving = undefined;
22
21
  export let scroll = false;
@@ -436,7 +435,6 @@ function createErrorHandler(mod, parent_module) {
436
435
  <Svelvet
437
436
  highlightEdges={false}
438
437
  locked
439
- {initialZoom}
440
438
  {nodes}
441
439
  {width}
442
440
  {edges}
@@ -13,7 +13,6 @@ declare const __propDef: {
13
13
  flowModuleStates?: Record<string, GraphModuleState> | undefined;
14
14
  rebuildOnChange?: any;
15
15
  selectedId?: Writable<string | undefined> | undefined;
16
- initialZoom?: number | undefined;
17
16
  insertable?: boolean | undefined;
18
17
  moving?: string | undefined;
19
18
  scroll?: boolean | undefined;
@@ -13,37 +13,14 @@ import { onDestroy } from 'svelte';
13
13
  export let canvasId;
14
14
  export let width;
15
15
  export let height;
16
- export let initialZoom = 3;
17
- export let initialLocation;
18
16
  export let boundary = false;
19
- export let minimap = false;
20
17
  export let scroll = false;
21
18
  // here we lookup the store using the unique key
22
19
  const store = findStore(canvasId);
23
- const { edgesStore, nodesStore, anchorsStore, potentialAnchorsStore, temporaryEdgeStore, resizeNodesStore, nodeSelected, backgroundStore, movementStore, widthStore, heightStore, d3Scale, collapsibleStore } = store;
20
+ const { edgesStore, nodesStore, anchorsStore, nodeSelected, backgroundStore, movementStore, widthStore, heightStore, d3Scale, collapsibleStore } = store;
24
21
  $: nodes = Object.values($nodesStore);
25
22
  $: edges = Object.values($edgesStore);
26
23
  $: anchors = Object.values($anchorsStore);
27
- $: resizeNodes = Object.values($resizeNodesStore);
28
- $: potentialAnchors = Object.values($potentialAnchorsStore);
29
- $: tempEdges = $temporaryEdgeStore;
30
- /*
31
- This block of code is responsible for reactivity of the collapsible feature
32
- When collaspsibleStore changes, nodes/edges/resizeNodes/anchors are filtered so that
33
- only the visible ones are displayed
34
- */
35
- let filteredNodes;
36
- let filteredEdges;
37
- let filteredResizeNodes;
38
- let filteredAnchors;
39
- $: {
40
- const tmp = $collapsibleStore; // assignment is necessary for reactivity
41
- const obj = filterByCollapsible(store, nodes, resizeNodes, anchors, edges);
42
- filteredNodes = obj['filteredNodes'];
43
- filteredEdges = obj['filteredEdges'];
44
- filteredResizeNodes = obj['filteredResizeNodes'];
45
- filteredAnchors = obj['filteredAnchors'];
46
- }
47
24
  // declaring the grid and dot size for d3's transformations and zoom
48
25
  const gridSize = 15;
49
26
  const dotSize = 10;
@@ -142,7 +119,7 @@ function handleZoom(e) {
142
119
  <div class={`Nodes Nodes-${canvasId}`} on:contextmenu|preventDefault>
143
120
  <!-- This container is transformed by d3zoom -->
144
121
  <div class={`Node Node-${canvasId}`}>
145
- {#each filteredNodes as node}
122
+ {#each nodes as node}
146
123
  {#if node.data.html}
147
124
  <Node {node} {canvasId} nodeId={node.id}>{@html node.data.html}</Node>
148
125
  {:else if node.data.custom}
@@ -193,7 +170,7 @@ function handleZoom(e) {
193
170
 
194
171
  <!-- <g> tag defines which edge type to render depending on properties of edge object -->
195
172
  <g>
196
- {#each filteredEdges as edge}
173
+ {#each edges as edge}
197
174
  {#if edge.type === 'smoothstep'}
198
175
  <SmoothStepEdge {edge} {canvasId} />
199
176
  {:else if edge.type === 'step'}
@@ -232,8 +209,6 @@ function handleZoom(e) {
232
209
  width: 24px;
233
210
  }
234
211
 
235
- svg {
236
- }
237
212
  .Nodes {
238
213
  position: absolute;
239
214
  width: 100%;
@@ -4,10 +4,7 @@ declare const __propDef: {
4
4
  canvasId: string;
5
5
  width: number;
6
6
  height: number;
7
- initialZoom?: number | undefined;
8
- initialLocation: any;
9
7
  boundary?: boolean | undefined;
10
- minimap?: boolean | undefined;
11
8
  scroll?: boolean | undefined;
12
9
  };
13
10
  events: {
@@ -6,7 +6,6 @@ import { sanitizeCanvasOptions, sanitizeUserNodesAndEdges } from '../controllers
6
6
  export let nodes; // TODO: update type to make possible user id being a number
7
7
  export let edges; // TODO: update type to make possible user id being a number
8
8
  export let bgColor = '#ffffff'; // this is used to set the background color of the the Svelvet canvas
9
- export let minimap = false;
10
9
  export let width = 600;
11
10
  export let height = 600;
12
11
  export let background = true;
@@ -15,14 +14,10 @@ export let canvasId = pkStringGenerator();
15
14
  export let snap = false;
16
15
  export let snapTo = 30;
17
16
  export let nodeCreate = false;
18
- export let initialZoom = 3;
19
- export let initialLocation = { x: 0, y: 0 };
20
17
  export let boundary = false;
21
18
  export let collapsible = false;
22
- export let shareable = false; // used for "importExport" feature
23
19
  export let locked = false; // if true, node movement is disabled
24
20
  export let editable = false;
25
- export let resizable = true;
26
21
  export let highlightEdges = true;
27
22
  export let scroll = false;
28
23
  // generates a unique string for each svelvet component's unique store instance
@@ -52,7 +47,6 @@ onMount(() => {
52
47
  store.collapsibleOption.set(collapsible);
53
48
  store.lockedOption.set(locked);
54
49
  store.editableOption.set(editable);
55
- store.resizableOption.set(resizable);
56
50
  store.highlightEdgesOption.set(highlightEdges);
57
51
  // make sure that all canvas options are compatible
58
52
  sanitizeCanvasOptions(store);
@@ -86,7 +80,6 @@ afterUpdate(() => {
86
80
  store.collapsibleOption.set(collapsible);
87
81
  store.lockedOption.set(locked);
88
82
  store.editableOption.set(editable);
89
- store.resizableOption.set(resizable);
90
83
  store.highlightEdgesOption.set(highlightEdges);
91
84
  // make sure that all canvas options are compatible
92
85
  sanitizeCanvasOptions(store);
@@ -109,16 +102,7 @@ afterUpdate(() => {
109
102
  {#if error != ''}
110
103
  <div class="error text-red-600 center-center p-4">{error}</div>
111
104
  {:else}
112
- <GraphView
113
- {scroll}
114
- {canvasId}
115
- {width}
116
- {height}
117
- {initialLocation}
118
- {initialZoom}
119
- {boundary}
120
- {minimap}
121
- />
105
+ <GraphView {scroll} {canvasId} {width} {height} {boundary} />
122
106
  {/if}
123
107
  </div>
124
108
 
@@ -5,7 +5,6 @@ declare const __propDef: {
5
5
  nodes: UserNodeType[];
6
6
  edges: UserEdgeType[];
7
7
  bgColor?: string | undefined;
8
- minimap?: boolean | undefined;
9
8
  width?: number | undefined;
10
9
  height?: number | undefined;
11
10
  background?: boolean | undefined;
@@ -14,17 +13,10 @@ declare const __propDef: {
14
13
  snap?: boolean | undefined;
15
14
  snapTo?: number | undefined;
16
15
  nodeCreate?: boolean | undefined;
17
- initialZoom?: number | undefined;
18
- initialLocation?: {
19
- x: number;
20
- y: number;
21
- } | undefined;
22
16
  boundary?: boolean | undefined;
23
17
  collapsible?: boolean | undefined;
24
- shareable?: boolean | undefined;
25
18
  locked?: boolean | undefined;
26
19
  editable?: boolean | undefined;
27
- resizable?: boolean | undefined;
28
20
  highlightEdges?: boolean | undefined;
29
21
  scroll?: boolean | undefined;
30
22
  };
@@ -43,15 +43,4 @@ export const forceCssHeightAndWidth = (store, node) => {
43
43
  });
44
44
  // move the node a bit to force update to anchors, potential anchors
45
45
  node.setPositionFromMovement(0, 0);
46
- // update the position of the resize node. TODO: this should be refactored so that it cascades from movement
47
- store.resizeNodesStore.update((resizeNodes) => {
48
- for (let resizeNode of Object.values(resizeNodes)) {
49
- if (resizeNode.nodeId === node.id) {
50
- // set resizeNode position to bottom left corner of Node
51
- resizeNode.positionX = node.positionX + node.width;
52
- resizeNode.positionY = node.positionY + node.height;
53
- }
54
- }
55
- return { ...resizeNodes };
56
- });
57
46
  };
@@ -1,5 +1,4 @@
1
- import { writable, derived, get, readable } from 'svelte/store';
2
- import { getNodeById } from '../../nodes/controllers/util';
1
+ import { get } from 'svelte/store';
3
2
  /**
4
3
  * Finds all Anchors that matches the conditions specified in the filter parameter from a Svelvet store and returns these Anchors in an array.
5
4
  *
@@ -2,8 +2,8 @@
2
2
  /** @typedef {typeof __propDef.events} SmoothStepEdgeEvents */
3
3
  /** @typedef {typeof __propDef.slots} SmoothStepEdgeSlots */
4
4
  export default class SmoothStepEdge extends SvelteComponentTyped<{
5
- canvasId: any;
6
5
  edge: any;
6
+ canvasId: any;
7
7
  borderRadius?: number | undefined;
8
8
  getSmoothStepPath?: (({ sourceX, sourceY, sourcePosition, targetX, targetY, targetPosition, borderRadius, centerX, centerY, }: {
9
9
  sourceX: any;
@@ -37,8 +37,8 @@ export type SmoothStepEdgeSlots = typeof __propDef.slots;
37
37
  import { SvelteComponentTyped } from "svelte";
38
38
  declare const __propDef: {
39
39
  props: {
40
- canvasId: any;
41
40
  edge: any;
41
+ canvasId: any;
42
42
  borderRadius?: number | undefined;
43
43
  getSmoothStepPath?: (({ sourceX, sourceY, sourcePosition, targetX, targetY, targetPosition, borderRadius, centerX, centerY, }: {
44
44
  sourceX: any;
@@ -1,4 +1,4 @@
1
- import { writable, derived, get, readable } from 'svelte/store';
1
+ import { get } from 'svelte/store';
2
2
  /**
3
3
  * getNodeById will look for the targeted Node that has the same id provided in the Svelvet component store.
4
4
  *
@@ -48,10 +48,6 @@ export declare class Node implements NodeType {
48
48
  * @param movementY The mouse movement value on the Y-axis
49
49
  */
50
50
  setSizeFromMovement(movementX: number, movementY: number): void;
51
- /**
52
- * delete will handle the deletion of a Node (also waterfall down to delete anchors and edges)
53
- */
54
- delete(): void;
55
51
  /**
56
52
  * setExportableData is going to construct an object that holds all the node data that can be exported. This method is used for Exporting Diagrams feature.
57
53
  *
@@ -1,7 +1,6 @@
1
- import { writable, derived, get, readable } from 'svelte/store';
1
+ import { get } from 'svelte/store';
2
2
  import { stores } from '../../store/models/store';
3
3
  import { getAnchors, getEdgeById } from '../../edges/controllers/util';
4
- import { getResizeNodes } from '../../resizableNodes/controllers/util';
5
4
  /** A Node class that implements NodeType interface
6
5
  * @param {string} id The id of the Node
7
6
  * @param {number} positionX The X-axis position of the Node (left top corner of the Node)
@@ -60,7 +59,7 @@ export class Node {
60
59
  * @param {number} movementY The mouse movement value on the Y-axis
61
60
  */
62
61
  setPositionFromMovement(movementX, movementY) {
63
- const { nodesStore, anchorsStore, resizeNodesStore, potentialAnchorsStore, boundary, lockedOption, } = stores[this.canvasId];
62
+ const { nodesStore, anchorsStore, potentialAnchorsStore, boundary, lockedOption } = stores[this.canvasId];
64
63
  if (get(lockedOption))
65
64
  return; // don't do anything if locked is enabled
66
65
  // boundary sets the boundary of the canvas, or else it is false if their is no boundary
@@ -100,15 +99,6 @@ export class Node {
100
99
  }
101
100
  return { ...anchors };
102
101
  });
103
- resizeNodesStore.update((resAnchors) => {
104
- for (const anchorId in resAnchors) {
105
- if (resAnchors[anchorId].nodeId === this.id) {
106
- resAnchors[anchorId].setPosition(movementX, movementY);
107
- //resAnchors[anchorId].setPosition(movementX, movementY);
108
- }
109
- }
110
- return { ...resAnchors };
111
- });
112
102
  }
113
103
  /**
114
104
  * setSizeFromMovement will update the width and height of the Node when user resizes the Node by dragging at the right bottom corner (where the ResizedNode attached), reflect the changes in real time in the nodesStore, and also cascade the changes to all relative elements like Anchors and potential Anchors.
@@ -140,34 +130,6 @@ export class Node {
140
130
  return { ...anchors };
141
131
  });
142
132
  }
143
- /**
144
- * delete will handle the deletion of a Node (also waterfall down to delete anchors and edges)
145
- */
146
- delete() {
147
- const store = stores[this.canvasId];
148
- const { nodesStore, anchorsStore, edgesStore } = stores[this.canvasId];
149
- nodesStore.update((nodes) => {
150
- for (const nodeId in nodes) {
151
- if (nodes[nodeId].id === this.id) {
152
- delete nodes[nodeId];
153
- }
154
- }
155
- return { ...nodes };
156
- });
157
- // variable `anchors` is an array of Anchor objects on the node
158
- const anchors = getAnchors(store, { nodeId: this.id });
159
- for (let anchorSelf of anchors) {
160
- const edgeId = anchorSelf.edgeId;
161
- const edge = getEdgeById(store, edgeId);
162
- edge.delete(); // this also deletes anchors. TODO: maybe this should be renamed to explicitly say
163
- }
164
- // delete the resize nodes
165
- const resizeNodesArr = getResizeNodes(store, { nodeId: this.id });
166
- // there should be only 1 resize node if option is enabled, 0 if not enabled
167
- for (const resizeNode of resizeNodesArr) {
168
- resizeNode.delete();
169
- }
170
- }
171
133
  /**
172
134
  * setExportableData is going to construct an object that holds all the node data that can be exported. This method is used for Exporting Diagrams feature.
173
135
  *
@@ -188,7 +150,7 @@ export class Node {
188
150
  image: this.image,
189
151
  src: this.src,
190
152
  childNodes: this.childNodes,
191
- customClassName: this.className,
153
+ customClassName: this.className
192
154
  };
193
155
  return exportableData;
194
156
  }
@@ -32,7 +32,7 @@ populateSvelvetStoreFromUserInput(canvasId, nodes, edges)
32
32
  */
33
33
  import { stores } from '../models/store';
34
34
  import { writable, get } from 'svelte/store';
35
- import { populateAnchorsStore, populateNodesStore, populateEdgesStore, populateResizeNodeStore, } from './util';
35
+ import { populateAnchorsStore, populateNodesStore, populateEdgesStore } from './util';
36
36
  import { populateCollapsibleStore } from '../../collapsible/controllers/util';
37
37
  /**
38
38
  * findStore is going to return the target Svelvet store with the canvasId provided as argument.
@@ -62,7 +62,6 @@ export function createStoreEmpty(canvasId) {
62
62
  nodesStore: writable({}),
63
63
  edgesStore: writable({}),
64
64
  anchorsStore: writable({}),
65
- resizeNodesStore: writable({}),
66
65
  potentialAnchorsStore: writable({}),
67
66
  widthStore: writable(600),
68
67
  heightStore: writable(600),
@@ -81,8 +80,7 @@ export function createStoreEmpty(canvasId) {
81
80
  lockedOption: writable(false),
82
81
  editableOption: writable(false),
83
82
  d3ZoomParameters: writable({}),
84
- resizableOption: writable(true),
85
- highlightEdgesOption: writable(true), // option to turn on/off highlightable edges
83
+ highlightEdgesOption: writable(true) // option to turn on/off highlightable edges
86
84
  };
87
85
  return stores[canvasId];
88
86
  }
@@ -102,9 +100,6 @@ export function populateSvelvetStoreFromUserInput(canvasId, nodes, edges) {
102
100
  populateAnchorsStore(store, nodes, edges, canvasId);
103
101
  // populate edges
104
102
  populateEdgesStore(store, edges, canvasId);
105
- //populate resize Store
106
- if (get(store.resizableOption))
107
- populateResizeNodeStore(store, nodes, canvasId);
108
103
  // populatate collapsible objects if "collapsible" feature is turned on
109
104
  if (get(store.collapsibleOption))
110
105
  populateCollapsibleStore(store, nodes, edges, canvasId);
@@ -22,10 +22,3 @@ export declare function populateAnchorsStore(store: StoreType, nodes: UserNodeTy
22
22
  * @param canvasId The canvasId of the Svelvet component that holds the nodes
23
23
  */
24
24
  export declare function populateNodesStore(store: StoreType, nodes: UserNodeType[], canvasId: string): void;
25
- /**
26
- * Populates the resizeNodeStore. If a Node is resizable, a small ResizeNode object is going to be attached to the Node's right bottom corner to react to the mouse drag.
27
- * @param store The Svelvet store containing the state of the Svelvet component
28
- * @param nodes An array of user specifed nodes (NOT the same as Node)
29
- * @param canvasId The canvasId of the Svelvet component that holds the resizeNodes
30
- */
31
- export declare function populateResizeNodeStore(store: StoreType, nodes: UserNodeType[], canvasId: string): void;
@@ -1,25 +1,9 @@
1
- const pkStringGenerator = () => (Math.random() + 1).toString(36).substring(7);
2
- import { rightCb, leftCb, topCb, bottomCb, } from '../../edges/controllers/anchorCbUser'; // these are callbacks used to calculate anchor position relative to node
3
- import { dynamicCbCreator, fixedCbCreator, } from '../../edges/controllers/anchorCbDev';
4
- import { ResizeNode } from '../../resizableNodes/models/ResizeNode';
1
+ const pkStringGenerator = () => (Math.random() + 1).toString(36).substring(7); // these are callbacks used to calculate anchor position relative to node
2
+ import { dynamicCbCreator, fixedCbCreator } from '../../edges/controllers/anchorCbDev';
5
3
  import { Anchor } from '../../edges/models/Anchor';
6
4
  import { Node } from '../../nodes/models/Node';
7
5
  import { Edge } from '../../edges/models/Edge';
8
- import { writable, derived, get, readable } from 'svelte/store';
9
- import { getEdgeById, getAnchors } from '../../edges/controllers/util';
10
- /**
11
- * Creates resize node on the bottom right corner of the targeted Node
12
- * @param canvasId The canvasId of the Svelvet component that holds the targeted Node
13
- * @param nodeId The id of the Node that the resize node attached to
14
- * @param posX The number of pixels on the x-axis relative to the left top corner of the targeted Node
15
- * @param posY The number of pixels on the y-axis relative to the left top corner of the targeted Node
16
- * @returns A ReziseNode object with randomized id, canvasId, nodeId, posX, and posY
17
- */
18
- function createResizeNode(canvasId, nodeId, posX, posY) {
19
- const id = pkStringGenerator();
20
- const resizeNode = new ResizeNode(id, canvasId, nodeId, posX, posY);
21
- return resizeNode;
22
- }
6
+ import { getAnchors } from '../../edges/controllers/util';
23
7
  /**
24
8
  * Creates an Anchor on the targeted Node with infomation the userNode holds
25
9
  * @param store An object containing the state of the Svelvet component. You can access the following through `store`: nodesStore, edgesStore, anchorsStore, etc.
@@ -70,7 +54,7 @@ export function populateEdgesStore(store, edges, canvasId) {
70
54
  // source is node.id for the source node
71
55
  // target is node.id for the target node
72
56
  // We need to get the anchors
73
- const { source: sourceNodeId, target: targetNodeId, id: edgeId, type, label, labelBgColor, labelTextColor, edgeColor, animate, noHandle, arrow, clickCallback, className, } = userEdge;
57
+ const { source: sourceNodeId, target: targetNodeId, id: edgeId, type, label, labelBgColor, labelTextColor, edgeColor, animate, noHandle, arrow, clickCallback, className } = userEdge;
74
58
  const anchors = getAnchors(store, { edgeId: edgeId });
75
59
  // check that we have two anchors for every edge
76
60
  if (anchors.length !== 2)
@@ -162,19 +146,3 @@ export function populateNodesStore(store, nodes, canvasId) {
162
146
  // This is actually what sets the store
163
147
  store.nodesStore.set(nodesStore);
164
148
  }
165
- /**
166
- * Populates the resizeNodeStore. If a Node is resizable, a small ResizeNode object is going to be attached to the Node's right bottom corner to react to the mouse drag.
167
- * @param store The Svelvet store containing the state of the Svelvet component
168
- * @param nodes An array of user specifed nodes (NOT the same as Node)
169
- * @param canvasId The canvasId of the Svelvet component that holds the resizeNodes
170
- */
171
- export function populateResizeNodeStore(store, nodes, canvasId) {
172
- const resizeNodeStore = {};
173
- for (let i = 0; i < nodes.length; i++) {
174
- const userNode = nodes[i];
175
- const { id, width, height, position } = userNode;
176
- const resizeNode = createResizeNode(canvasId, id, position.x + width, position.y + height);
177
- resizeNodeStore[resizeNode.id] = resizeNode;
178
- }
179
- store.resizeNodesStore.set(resizeNodeStore);
180
- }
@@ -23,9 +23,6 @@ export interface StoreType {
23
23
  anchorsStore: Writable<{
24
24
  [key: string]: AnchorType;
25
25
  }>;
26
- resizeNodesStore: Writable<{
27
- [key: string]: ResizeNodeType;
28
- }>;
29
26
  potentialAnchorsStore: Writable<{
30
27
  [key: string]: PotentialAnchorType;
31
28
  }>;
@@ -50,7 +47,6 @@ export interface StoreType {
50
47
  d3ZoomParameters: Writable<{
51
48
  [key: string]: number;
52
49
  }>;
53
- resizableOption: Writable<boolean>;
54
50
  highlightEdgesOption: Writable<boolean>;
55
51
  }
56
52
  export interface PositionType {
@@ -76,7 +72,6 @@ export interface NodeType {
76
72
  };
77
73
  canvasId: string;
78
74
  setPositionFromMovement: Function;
79
- delete: Function;
80
75
  setSizeFromMovement: Function;
81
76
  setExportableData: Function;
82
77
  borderColor: string;
@@ -238,7 +238,7 @@ let archived = false;
238
238
  </div>
239
239
  <div class="relative">
240
240
  <ListFilters bind:selectedFilter={ownerFilter} filters={owners} />
241
- {#if !loading}
241
+ {#if !loading && filteredItems?.length}
242
242
  <div class="absolute -bottom-2 right-0 bg-white/90">
243
243
  <Toggle size="xs" bind:checked={archived} options={{ right: 'Show archived' }} /></div
244
244
  >
@@ -124,7 +124,7 @@ function selectProp(key, value) {
124
124
  {:else if topBrackets}
125
125
  <span class="text-black">{openBracket}{closeBracket}</span>
126
126
  {:else}
127
- <span class="text-gray-600 text-xs">No items</span>
127
+ <span class="text-gray-600 text-xs ml-2">No items</span>
128
128
  {/if}
129
129
 
130
130
  <style>
@@ -72,7 +72,10 @@ async function loadResources() {
72
72
  pureViewer={!$propPickerConfig}
73
73
  json={flowInputsFiltered}
74
74
  on:select={(e) => {
75
- dispatch('select', `flow_input.${e.detail}`)
75
+ dispatch(
76
+ 'select',
77
+ e.detail?.startsWith('[') ? `flow_input${e.detail}` : `flow_input.${e.detail}`
78
+ )
76
79
  }}
77
80
  />
78
81
  </div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "windmill-components",
3
- "version": "1.77.0",
3
+ "version": "1.79.0",
4
4
  "devDependencies": {
5
5
  "@playwright/test": "^1.31.1",
6
6
  "@sveltejs/adapter-static": "^1.0.0",
@@ -10,6 +10,7 @@
10
10
  "@tailwindcss/typography": "^0.5.8",
11
11
  "@types/d3": "^7.4.0",
12
12
  "@types/d3-zoom": "^3.0.2",
13
+ "@types/lodash": "^4.14.191",
13
14
  "@types/node": "^18.11.18",
14
15
  "@types/vscode": "~1.74.0",
15
16
  "@typescript-eslint/eslint-plugin": "^5.49.0",
@@ -65,6 +66,7 @@
65
66
  "date-fns": "^2.29.3",
66
67
  "fast-equals": "^4.0.3",
67
68
  "highlight.js": "^11.7.0",
69
+ "lodash": "^4.17.21",
68
70
  "lucide-svelte": "^0.115.0",
69
71
  "monaco-editor": "0.33.0",
70
72
  "monaco-editor-workers": "0.33.0",
@@ -126,6 +128,8 @@
126
128
  "./components/ItemPicker.svelte": "./components/ItemPicker.svelte",
127
129
  "./components/JobArgs.svelte": "./components/JobArgs.svelte",
128
130
  "./components/JobStatus.svelte": "./components/JobStatus.svelte",
131
+ "./components/LightweightArgInput.svelte": "./components/LightweightArgInput.svelte",
132
+ "./components/LightweightSchemaForm.svelte": "./components/LightweightSchemaForm.svelte",
129
133
  "./components/LogViewer.svelte": "./components/LogViewer.svelte",
130
134
  "./components/Modal.svelte": "./components/Modal.svelte",
131
135
  "./components/ModulePreview.svelte": "./components/ModulePreview.svelte",
@@ -233,7 +237,6 @@
233
237
  "./components/apps/components/layout/AppTabs.svelte": "./components/apps/components/layout/AppTabs.svelte",
234
238
  "./components/apps/components/layout": "./components/apps/components/layout/index.js",
235
239
  "./components/apps/editor/AppComponentInput.svelte": "./components/apps/editor/AppComponentInput.svelte",
236
- "./components/apps/editor/AppComponentInputs.svelte": "./components/apps/editor/AppComponentInputs.svelte",
237
240
  "./components/apps/editor/AppEditor.svelte": "./components/apps/editor/AppEditor.svelte",
238
241
  "./components/apps/editor/AppEditorHeader.svelte": "./components/apps/editor/AppEditorHeader.svelte",
239
242
  "./components/apps/editor/AppExportButton.svelte": "./components/apps/editor/AppExportButton.svelte",
@@ -242,6 +245,7 @@
242
245
  "./components/apps/editor/ComponentHeader.svelte": "./components/apps/editor/ComponentHeader.svelte",
243
246
  "./components/apps/editor/GridEditor.svelte": "./components/apps/editor/GridEditor.svelte",
244
247
  "./components/apps/editor/GridPanel.svelte": "./components/apps/editor/GridPanel.svelte",
248
+ "./components/apps/editor/GridViewer.svelte": "./components/apps/editor/GridViewer.svelte",
245
249
  "./components/apps/editor/RecomputeAllComponents.svelte": "./components/apps/editor/RecomputeAllComponents.svelte",
246
250
  "./components/apps/editor/SettingsPanel.svelte": "./components/apps/editor/SettingsPanel.svelte",
247
251
  "./components/apps/editor/SubGridEditor.svelte": "./components/apps/editor/SubGridEditor.svelte",
@@ -306,6 +310,10 @@
306
310
  "./components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte": "./components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte",
307
311
  "./components/apps/editor/settingsPanel/mainInput/WorkspaceFlowList.svelte": "./components/apps/editor/settingsPanel/mainInput/WorkspaceFlowList.svelte",
308
312
  "./components/apps/editor/settingsPanel/mainInput/WorkspaceScriptList.svelte": "./components/apps/editor/settingsPanel/mainInput/WorkspaceScriptList.svelte",
313
+ "./components/apps/editor/settingsPanel/triggerLists/BackgroundScriptTriggerList.svelte": "./components/apps/editor/settingsPanel/triggerLists/BackgroundScriptTriggerList.svelte",
314
+ "./components/apps/editor/settingsPanel/triggerLists/ComponentTriggerList.svelte": "./components/apps/editor/settingsPanel/triggerLists/ComponentTriggerList.svelte",
315
+ "./components/apps/editor/settingsPanel/triggerLists/TriggerBadgesList.svelte": "./components/apps/editor/settingsPanel/triggerLists/TriggerBadgesList.svelte",
316
+ "./components/apps/editor/settingsPanel/triggerLists/triggerListUtils": "./components/apps/editor/settingsPanel/triggerLists/triggerListUtils.js",
309
317
  "./components/apps/gridUtils": "./components/apps/gridUtils.js",
310
318
  "./components/apps/inputType": "./components/apps/inputType.js",
311
319
  "./components/apps/rx": "./components/apps/rx.js",
@@ -456,11 +464,7 @@
456
464
  "./components/graph/svelvet/editEdges/views/EditEdge.svelte": "./components/graph/svelvet/editEdges/views/EditEdge.svelte",
457
465
  "./components/graph/svelvet/nodes/controllers/util": "./components/graph/svelvet/nodes/controllers/util.js",
458
466
  "./components/graph/svelvet/nodes/models/Node": "./components/graph/svelvet/nodes/models/Node.js",
459
- "./components/graph/svelvet/nodes/views/EditNode.svelte": "./components/graph/svelvet/nodes/views/EditNode.svelte",
460
467
  "./components/graph/svelvet/nodes/views/Node.svelte": "./components/graph/svelvet/nodes/views/Node.svelte",
461
- "./components/graph/svelvet/resizableNodes/controllers/util": "./components/graph/svelvet/resizableNodes/controllers/util.js",
462
- "./components/graph/svelvet/resizableNodes/models/ResizeNode": "./components/graph/svelvet/resizableNodes/models/ResizeNode.js",
463
- "./components/graph/svelvet/resizableNodes/views/ResizeNode.svelte": "./components/graph/svelvet/resizableNodes/views/ResizeNode.svelte",
464
468
  "./components/graph/svelvet/store/controllers/storeApi": "./components/graph/svelvet/store/controllers/storeApi.js",
465
469
  "./components/graph/svelvet/store/controllers/userApi": "./components/graph/svelvet/store/controllers/userApi.js",
466
470
  "./components/graph/svelvet/store/controllers/util": "./components/graph/svelvet/store/controllers/util.js",
package/utils.d.ts CHANGED
@@ -114,3 +114,5 @@ export declare function isCloudHosted(): boolean;
114
114
  export declare function isObject(obj: any): boolean;
115
115
  export declare function debounce(func: (...args: any[]) => any, wait: number): (...args: any[]) => void;
116
116
  export declare function throttle<T>(func: (...args: any[]) => T, wait: number): (...args: any[]) => void;
117
+ export declare function isMac(): boolean;
118
+ export declare function getModifierKey(): string;
package/utils.js CHANGED
@@ -601,3 +601,9 @@ export function throttle(func, wait) {
601
601
  }
602
602
  };
603
603
  }
604
+ export function isMac() {
605
+ return navigator.userAgent.indexOf('Mac OS X') !== -1;
606
+ }
607
+ export function getModifierKey() {
608
+ return isMac() ? '⌘' : 'CTRL';
609
+ }
@@ -1,13 +0,0 @@
1
- <script>import InputsSpecsEditor from './settingsPanel/InputsSpecsEditor.svelte';
2
- export let fields;
3
- export let component;
4
- export let resourceOnly = false;
5
- $: fields = resourceOnly ? fields : fields;
6
- </script>
7
-
8
- <InputsSpecsEditor
9
- id={component.id}
10
- shouldCapitalize={false}
11
- bind:inputSpecs={fields}
12
- userInputEnabled={component.type !== 'buttoncomponent'}
13
- />