@knime/product-features 1.2.2 → 1.2.4

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 (93) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/_plugin-vue_export-helper-BOaGB7Aw.js +8 -0
  3. package/dist/ai.js +180 -191
  4. package/dist/ai.js.map +1 -1
  5. package/dist/dataTransfer.js +1158 -1104
  6. package/dist/dataTransfer.js.map +1 -1
  7. package/dist/dist-BrNh9vG-.js +2560 -0
  8. package/dist/dist-BrNh9vG-.js.map +1 -0
  9. package/dist/nodes.css +35 -26
  10. package/dist/nodes.js +656 -613
  11. package/dist/nodes.js.map +1 -1
  12. package/dist/rfcErrors-Dw7NLSDp.js +172 -0
  13. package/dist/rfcErrors-Dw7NLSDp.js.map +1 -0
  14. package/dist/rfcErrors.js +1 -222
  15. package/dist/src/ai/KdsPromptInput/InlineStatusBanner.vue.d.ts +3 -2
  16. package/dist/src/ai/KdsPromptInput/InlineStatusBanner.vue.d.ts.map +1 -1
  17. package/dist/src/ai/KdsPromptInput/KdsPromptInput.vue.d.ts +6 -6
  18. package/dist/src/ai/KdsPromptInput/KdsPromptInput.vue.d.ts.map +1 -1
  19. package/dist/src/dataTransfer/download/ui/DownloadProgressPanel.vue.d.ts +6 -4
  20. package/dist/src/dataTransfer/download/ui/DownloadProgressPanel.vue.d.ts.map +1 -1
  21. package/dist/src/dataTransfer/download/ui/DownloadProgressPanelItem.vue.d.ts +3 -2
  22. package/dist/src/dataTransfer/download/ui/DownloadProgressPanelItem.vue.d.ts.map +1 -1
  23. package/dist/src/dataTransfer/shared/ui/CollapsiblePanel/CollapsiblePanel.vue.d.ts +11 -14
  24. package/dist/src/dataTransfer/shared/ui/CollapsiblePanel/CollapsiblePanel.vue.d.ts.map +1 -1
  25. package/dist/src/dataTransfer/shared/ui/ProgressItem/ProgressItem.vue.d.ts +2 -1
  26. package/dist/src/dataTransfer/shared/ui/ProgressItem/ProgressItem.vue.d.ts.map +1 -1
  27. package/dist/src/dataTransfer/shared/ui/ProgressList/ProgressList.vue.d.ts +7 -11
  28. package/dist/src/dataTransfer/shared/ui/ProgressList/ProgressList.vue.d.ts.map +1 -1
  29. package/dist/src/dataTransfer/upload/ui/UploadProgressPanel.vue.d.ts +6 -4
  30. package/dist/src/dataTransfer/upload/ui/UploadProgressPanel.vue.d.ts.map +1 -1
  31. package/dist/src/dataTransfer/upload/ui/UploadProgressPanelItem.vue.d.ts +3 -2
  32. package/dist/src/dataTransfer/upload/ui/UploadProgressPanelItem.vue.d.ts.map +1 -1
  33. package/dist/src/nodes/NodeDescriptionTabs/NodeDescriptionTabs.vue.d.ts +2 -1
  34. package/dist/src/nodes/NodeDescriptionTabs/NodeDescriptionTabs.vue.d.ts.map +1 -1
  35. package/dist/src/nodes/NodeDescriptionTabs/OptionsTab.vue.d.ts +2 -1
  36. package/dist/src/nodes/NodeDescriptionTabs/OptionsTab.vue.d.ts.map +1 -1
  37. package/dist/src/nodes/NodeDescriptionTabs/PortGroup.vue.d.ts +2 -1
  38. package/dist/src/nodes/NodeDescriptionTabs/PortGroup.vue.d.ts.map +1 -1
  39. package/dist/src/nodes/NodeDescriptionTabs/PortTemplateInfo.vue.d.ts +2 -1
  40. package/dist/src/nodes/NodeDescriptionTabs/PortTemplateInfo.vue.d.ts.map +1 -1
  41. package/dist/src/nodes/NodeDescriptionTabs/PortsTab.vue.d.ts +2 -1
  42. package/dist/src/nodes/NodeDescriptionTabs/PortsTab.vue.d.ts.map +1 -1
  43. package/dist/src/nodes/NodeDescriptionTabs/ViewsTab.vue.d.ts +2 -1
  44. package/dist/src/nodes/NodeDescriptionTabs/ViewsTab.vue.d.ts.map +1 -1
  45. package/dist/src/nodes/NodePreview/NodePreview.vue.d.ts +2 -1
  46. package/dist/src/nodes/NodePreview/NodePreview.vue.d.ts.map +1 -1
  47. package/dist/src/nodes/NodePreview/SVGNodeTorso.vue.d.ts +2 -1
  48. package/dist/src/nodes/NodePreview/SVGNodeTorso.vue.d.ts.map +1 -1
  49. package/dist/src/nodes/NodePreview/enums.d.ts +2 -1
  50. package/dist/src/nodes/NodePreview/enums.d.ts.map +1 -1
  51. package/dist/src/nodes/NodePreview/types.d.ts +1 -1
  52. package/dist/src/nodes/NodePreview/types.d.ts.map +1 -1
  53. package/dist/src/nodes/PortIcon/PortIcon.vue.d.ts +2 -1
  54. package/dist/src/nodes/PortIcon/PortIcon.vue.d.ts.map +1 -1
  55. package/dist/src/nodes/PortIcon/SVGPortIcon.vue.d.ts +2 -1
  56. package/dist/src/nodes/PortIcon/SVGPortIcon.vue.d.ts.map +1 -1
  57. package/dist/src/rfcErrors/RFCErrorToastTemplate.vue.d.ts +3 -2
  58. package/dist/src/rfcErrors/RFCErrorToastTemplate.vue.d.ts.map +1 -1
  59. package/dist/src/toasts/Toast/Toast.vue.d.ts +3 -4
  60. package/dist/src/toasts/Toast/Toast.vue.d.ts.map +1 -1
  61. package/dist/src/toasts/Toast/ToastButton.vue.d.ts +2 -1
  62. package/dist/src/toasts/Toast/ToastButton.vue.d.ts.map +1 -1
  63. package/dist/src/toasts/ToastStack/ToastStack.vue.d.ts +2 -1
  64. package/dist/src/toasts/ToastStack/ToastStack.vue.d.ts.map +1 -1
  65. package/dist/src/versions/CreateVersionForm/CreateVersionForm.vue.d.ts +3 -2
  66. package/dist/src/versions/CreateVersionForm/CreateVersionForm.vue.d.ts.map +1 -1
  67. package/dist/src/versions/VersionHistory/CurrentState.vue.d.ts +3 -2
  68. package/dist/src/versions/VersionHistory/CurrentState.vue.d.ts.map +1 -1
  69. package/dist/src/versions/VersionHistory/HistoryEvent.vue.d.ts +7 -11
  70. package/dist/src/versions/VersionHistory/HistoryEvent.vue.d.ts.map +1 -1
  71. package/dist/src/versions/VersionHistory/HistoryEventAuthor.vue.d.ts +2 -1
  72. package/dist/src/versions/VersionHistory/HistoryEventAuthor.vue.d.ts.map +1 -1
  73. package/dist/src/versions/VersionHistory/HistoryEventFooter.vue.d.ts +2 -1
  74. package/dist/src/versions/VersionHistory/HistoryEventFooter.vue.d.ts.map +1 -1
  75. package/dist/src/versions/VersionHistory/VersionHistory.vue.d.ts +3 -2
  76. package/dist/src/versions/VersionHistory/VersionHistory.vue.d.ts.map +1 -1
  77. package/dist/src/versions/VersionHistory/VersionItem.vue.d.ts +3 -2
  78. package/dist/src/versions/VersionHistory/VersionItem.vue.d.ts.map +1 -1
  79. package/dist/src/versions/VersionHistory/VersionLabel.vue.d.ts +6 -141
  80. package/dist/src/versions/VersionHistory/VersionLabel.vue.d.ts.map +1 -1
  81. package/dist/src/versions/VersionHistory/VersionLimitInfo.vue.d.ts +2 -1
  82. package/dist/src/versions/VersionHistory/VersionLimitInfo.vue.d.ts.map +1 -1
  83. package/dist/toasts.css +13 -13
  84. package/dist/toasts.js +4700 -475
  85. package/dist/toasts.js.map +1 -1
  86. package/dist/versions.js +583 -597
  87. package/dist/versions.js.map +1 -1
  88. package/package.json +5 -5
  89. package/dist/_plugin-vue_export-helper-pcqpp-6-.js +0 -10
  90. package/dist/_plugin-vue_export-helper-pcqpp-6-.js.map +0 -1
  91. package/dist/index-B3ql6hun.js +0 -2695
  92. package/dist/index-B3ql6hun.js.map +0 -1
  93. package/dist/rfcErrors.js.map +0 -1
package/dist/nodes.js CHANGED
@@ -1,617 +1,660 @@
1
- import { defineComponent, computed, ref, openBlock, createElementBlock, createBlock, unref, createSlots, renderList, withCtx, createCommentVNode, Fragment, createElementVNode, toDisplayString, createVNode, useCssVars, mergeProps, normalizeClass } from 'vue';
2
- import { KdsAccordion, KdsDescription, KdsTabBar, KdsEmptyState, KdsIcon } from '@knime/kds-components';
3
- import { _ as _export_sfc } from './_plugin-vue_export-helper-pcqpp-6-.js';
4
-
5
- import './nodes.css';const _hoisted_1$9 = { class: "name" };
6
- const _hoisted_2$5 = {
7
- key: 1,
8
- class: "single-option-wrapper"
1
+ import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.js";
2
+ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createVNode, defineComponent, mergeProps, normalizeClass, openBlock, ref, renderList, toDisplayString, unref, useCssVars, withCtx } from "vue";
3
+ import { KdsAccordion, KdsDescription, KdsEmptyState, KdsIcon, KdsTabBar } from "@knime/kds-components";
4
+ import './nodes.css';//#region src/nodes/NodeDescriptionTabs/OptionsTab.vue?vue&type=script&setup=true&lang.ts
5
+ var _hoisted_1$9 = { class: "name" };
6
+ var _hoisted_2$5 = {
7
+ key: 1,
8
+ class: "single-option-wrapper"
9
9
  };
10
- const _hoisted_3$4 = { class: "name" };
11
- const _sfc_main$9 = /* @__PURE__ */ defineComponent({
12
- __name: "OptionsTab",
13
- props: {
14
- options: {},
15
- renderAsHtml: { type: Boolean }
16
- },
17
- setup(__props) {
18
- const accordionItems = computed(() => {
19
- return __props.options.map(
20
- (option, index) => ({
21
- id: `section-${index}`,
22
- headline: option.sectionName,
23
- description: option.sectionDescription,
24
- content: option.fields
25
- })
26
- );
27
- });
28
- const modelValue = ref([]);
29
- return (_ctx, _cache) => {
30
- return openBlock(), createElementBlock("div", null, [
31
- __props.options.length > 1 ? (openBlock(), createBlock(unref(KdsAccordion), {
32
- key: 0,
33
- modelValue: modelValue.value,
34
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),
35
- items: accordionItems.value
36
- }, createSlots({ _: 2 }, [
37
- renderList(accordionItems.value, (item) => {
38
- return {
39
- name: item.id,
40
- fn: withCtx(() => [
41
- item.description ? (openBlock(), createBlock(unref(KdsDescription), {
42
- key: 0,
43
- text: item.description,
44
- "render-as-html": __props.renderAsHtml,
45
- class: "section-description"
46
- }, null, 8, ["text", "render-as-html"])) : createCommentVNode("", true),
47
- (openBlock(true), createElementBlock(Fragment, null, renderList(item.content, (field) => {
48
- return openBlock(), createElementBlock("div", {
49
- key: field.name,
50
- class: "option-content"
51
- }, [
52
- createElementVNode("span", _hoisted_1$9, toDisplayString(field.name) + " " + toDisplayString(field.optional ? "(optional)" : ""), 1),
53
- createVNode(unref(KdsDescription), {
54
- text: field.description,
55
- "render-as-html": __props.renderAsHtml
56
- }, null, 8, ["text", "render-as-html"])
57
- ]);
58
- }), 128))
59
- ])
60
- };
61
- })
62
- ]), 1032, ["modelValue", "items"])) : createCommentVNode("", true),
63
- __props.options.length === 1 ? (openBlock(), createElementBlock("div", _hoisted_2$5, [
64
- __props.options[0].sectionDescription ? (openBlock(), createBlock(unref(KdsDescription), {
65
- key: 0,
66
- text: __props.options[0].sectionDescription,
67
- "render-as-html": __props.renderAsHtml,
68
- class: "section-description"
69
- }, null, 8, ["text", "render-as-html"])) : createCommentVNode("", true),
70
- (openBlock(true), createElementBlock(Fragment, null, renderList(__props.options[0].fields, (field) => {
71
- return openBlock(), createElementBlock("div", {
72
- key: field.name,
73
- class: "option-content"
74
- }, [
75
- createElementVNode("span", _hoisted_3$4, toDisplayString(field.name) + " " + toDisplayString(field.optional ? "(optional)" : ""), 1),
76
- createVNode(unref(KdsDescription), {
77
- text: field.description,
78
- "render-as-html": __props.renderAsHtml
79
- }, null, 8, ["text", "render-as-html"])
80
- ]);
81
- }), 128))
82
- ])) : createCommentVNode("", true)
83
- ]);
84
- };
85
- }
86
- });
87
-
88
- const OptionsTab = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-4fcd17b8"]]);
89
-
90
- const PORT_SIZE = 8;
91
- const PORT_STROKE_WIDTH = 1.4;
92
-
93
- const _hoisted_1$8 = ["points", "data-type", "stroke-width"];
94
- const _hoisted_2$4 = ["r", "data-type", "stroke-width"];
95
- const _hoisted_3$3 = ["width", "height", "x", "y", "data-type", "stroke-width"];
96
- const _sfc_main$8 = /* @__PURE__ */ defineComponent({
97
- __name: "SVGPortIcon",
98
- props: {
99
- type: {},
100
- color: {},
101
- filled: { type: Boolean, default: true }
102
- },
103
- setup(__props) {
104
- useCssVars((_ctx) => ({
105
- "v45d93a60": _ctx.color
106
- }));
107
- const trianglePath = computed(() => {
108
- let [x1, y1, x2, y3] = [
109
- -PORT_SIZE / 2,
110
- -PORT_SIZE / 2,
111
- PORT_SIZE / 2,
112
- PORT_SIZE / 2
113
- ];
114
- const d = Math.sqrt(5) / 2;
115
- const y = d / 2 + 1 / 4;
116
- x1 += PORT_STROKE_WIDTH / 2;
117
- x2 -= PORT_STROKE_WIDTH * d;
118
- y1 += PORT_STROKE_WIDTH * y;
119
- y3 -= PORT_STROKE_WIDTH * y;
120
- return `${x1},${y1} ${x2},${0} ${x1},${y3}`;
121
- });
122
- return (_ctx, _cache) => {
123
- return __props.type === "table" ? (openBlock(), createElementBlock("polygon", mergeProps({
124
- key: 0,
125
- points: trianglePath.value,
126
- class: { filled: __props.filled },
127
- "data-type": __props.type,
128
- "stroke-width": unref(PORT_STROKE_WIDTH)
129
- }, _ctx.$attrs), null, 16, _hoisted_1$8)) : __props.type === "flowVariable" ? (openBlock(), createElementBlock("circle", mergeProps({
130
- key: 1,
131
- r: unref(PORT_SIZE) / 2 - unref(PORT_STROKE_WIDTH) / 2,
132
- class: { filled: __props.filled },
133
- "data-type": __props.type,
134
- "stroke-width": unref(PORT_STROKE_WIDTH)
135
- }, _ctx.$attrs), null, 16, _hoisted_2$4)) : (openBlock(), createElementBlock("rect", mergeProps({
136
- key: 2,
137
- width: unref(PORT_SIZE) - unref(PORT_STROKE_WIDTH),
138
- height: unref(PORT_SIZE) - unref(PORT_STROKE_WIDTH),
139
- x: -unref(PORT_SIZE) / 2 + unref(PORT_STROKE_WIDTH) / 2,
140
- y: -unref(PORT_SIZE) / 2 + unref(PORT_STROKE_WIDTH) / 2,
141
- class: { filled: __props.filled },
142
- "data-type": __props.type,
143
- "stroke-width": unref(PORT_STROKE_WIDTH)
144
- }, _ctx.$attrs), null, 16, _hoisted_3$3));
145
- };
146
- }
147
- });
148
-
149
- const SVGPortIcon = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-3150264d"]]);
150
-
151
- const _hoisted_1$7 = ["viewBox", "width", "height"];
152
- const _sfc_main$7 = /* @__PURE__ */ defineComponent({
153
- __name: "PortIcon",
154
- props: {
155
- type: {},
156
- color: {},
157
- filled: { type: Boolean, default: true }
158
- },
159
- setup(__props) {
160
- const viewBox = computed(
161
- () => [-PORT_SIZE / 2, -PORT_SIZE / 2, PORT_SIZE, PORT_SIZE].join(" ")
162
- );
163
- return (_ctx, _cache) => {
164
- return openBlock(), createElementBlock("svg", {
165
- viewBox: viewBox.value,
166
- width: unref(PORT_SIZE),
167
- height: unref(PORT_SIZE)
168
- }, [
169
- createVNode(SVGPortIcon, {
170
- filled: __props.filled,
171
- type: __props.type,
172
- color: __props.color
173
- }, null, 8, ["filled", "type", "color"])
174
- ], 8, _hoisted_1$7);
175
- };
176
- }
177
- });
178
-
179
- const _hoisted_1$6 = { class: "wrapper" };
180
- const _hoisted_2$3 = { class: "icon" };
181
- const _hoisted_3$2 = { class: "title" };
182
- const _hoisted_4 = { class: "name title" };
183
- const _sfc_main$6 = /* @__PURE__ */ defineComponent({
184
- __name: "PortTemplateInfo",
185
- props: {
186
- port: {},
187
- showDescription: { type: Boolean }
188
- },
189
- setup(__props) {
190
- return (_ctx, _cache) => {
191
- return openBlock(), createElementBlock("div", _hoisted_1$6, [
192
- createElementVNode("div", _hoisted_2$3, [
193
- createVNode(_sfc_main$7, {
194
- type: __props.port.type,
195
- color: __props.port.color,
196
- filled: !__props.port.optional
197
- }, null, 8, ["type", "color", "filled"])
198
- ]),
199
- createElementVNode("span", _hoisted_3$2, "Type: " + toDisplayString(__props.port.typeDisplayName), 1),
200
- createElementVNode("span", _hoisted_4, "Name: " + toDisplayString(__props.port.name), 1),
201
- __props.showDescription ? (openBlock(), createBlock(unref(KdsDescription), {
202
- key: 0,
203
- class: "description",
204
- text: __props.port.description,
205
- "render-as-html": ""
206
- }, null, 8, ["text"])) : createCommentVNode("", true)
207
- ]);
208
- };
209
- }
210
- });
211
-
212
- const PortTemplateInfo = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-4920a7fa"]]);
213
-
214
- const _hoisted_1$5 = { class: "port-group-card" };
215
- const _hoisted_2$2 = { class: "group-name" };
216
- const _sfc_main$5 = /* @__PURE__ */ defineComponent({
217
- __name: "PortGroup",
218
- props: {
219
- name: {},
220
- description: {},
221
- ports: {},
222
- isDynamicGroup: { type: Boolean }
223
- },
224
- setup(__props) {
225
- return (_ctx, _cache) => {
226
- return openBlock(), createElementBlock("div", _hoisted_1$5, [
227
- createElementVNode("span", _hoisted_2$2, toDisplayString(__props.name), 1),
228
- __props.description ? (openBlock(), createBlock(unref(KdsDescription), {
229
- key: 0,
230
- text: __props.description,
231
- "render-as-html": ""
232
- }, null, 8, ["text"])) : createCommentVNode("", true),
233
- (openBlock(true), createElementBlock(Fragment, null, renderList(__props.ports, (port) => {
234
- return openBlock(), createBlock(PortTemplateInfo, {
235
- key: port.id,
236
- port,
237
- "show-description": !__props.isDynamicGroup
238
- }, null, 8, ["port", "show-description"]);
239
- }), 128))
240
- ]);
241
- };
242
- }
243
- });
244
-
245
- const PortGroup = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-ed993ae3"]]);
246
-
247
- const _hoisted_1$4 = { class: "port-list" };
248
- const _sfc_main$4 = /* @__PURE__ */ defineComponent({
249
- __name: "PortsTab",
250
- props: {
251
- inputPorts: {},
252
- outputPorts: {},
253
- dynamicInputGroups: { default: () => [] },
254
- dynamicOutputGroups: { default: () => [] }
255
- },
256
- setup(__props) {
257
- return (_ctx, _cache) => {
258
- return openBlock(), createElementBlock("div", _hoisted_1$4, [
259
- __props.inputPorts.length > 0 ? (openBlock(), createBlock(PortGroup, {
260
- key: 0,
261
- name: "Input ports",
262
- ports: __props.inputPorts
263
- }, null, 8, ["ports"])) : createCommentVNode("", true),
264
- __props.outputPorts.length > 0 ? (openBlock(), createBlock(PortGroup, {
265
- key: 1,
266
- name: "Output ports",
267
- ports: __props.outputPorts
268
- }, null, 8, ["ports"])) : createCommentVNode("", true),
269
- (openBlock(true), createElementBlock(Fragment, null, renderList(__props.dynamicInputGroups, (group) => {
270
- return openBlock(), createElementBlock(Fragment, {
271
- key: group.name
272
- }, [
273
- group.types.length > 0 ? (openBlock(), createBlock(PortGroup, {
274
- key: 0,
275
- name: group.name + " (Dynamic Inport)",
276
- description: group.description,
277
- ports: group.types,
278
- "is-dynamic-group": ""
279
- }, null, 8, ["name", "description", "ports"])) : createCommentVNode("", true)
280
- ], 64);
281
- }), 128)),
282
- (openBlock(true), createElementBlock(Fragment, null, renderList(__props.dynamicOutputGroups, (group) => {
283
- return openBlock(), createElementBlock(Fragment, {
284
- key: group.name
285
- }, [
286
- group.types.length > 0 ? (openBlock(), createBlock(PortGroup, {
287
- key: 0,
288
- name: group.name + " (Dynamic Outport)",
289
- description: group.description,
290
- ports: group.types,
291
- "is-dynamic-group": ""
292
- }, null, 8, ["name", "description", "ports"])) : createCommentVNode("", true)
293
- ], 64);
294
- }), 128))
295
- ]);
296
- };
297
- }
298
- });
299
-
300
- const PortsTab = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-bf308a64"]]);
301
-
302
- const _hoisted_1$3 = { class: "name" };
303
- const _sfc_main$3 = /* @__PURE__ */ defineComponent({
304
- __name: "ViewsTab",
305
- props: {
306
- views: {}
307
- },
308
- setup(__props) {
309
- const props = __props;
310
- const viewsWithId = computed(
311
- () => props.views.map((view, index) => {
312
- const id = `view-${index}`;
313
- return { id, ...view };
314
- })
315
- );
316
- return (_ctx, _cache) => {
317
- return openBlock(true), createElementBlock(Fragment, null, renderList(viewsWithId.value, (view) => {
318
- return openBlock(), createElementBlock("div", {
319
- key: view.id,
320
- class: "card-wrapper"
321
- }, [
322
- createElementVNode("span", _hoisted_1$3, toDisplayString(view.name), 1),
323
- view.description ? (openBlock(), createBlock(unref(KdsDescription), {
324
- key: 0,
325
- text: view.description,
326
- "render-as-html": ""
327
- }, null, 8, ["text"])) : createCommentVNode("", true)
328
- ]);
329
- }), 128);
330
- };
331
- }
10
+ var _hoisted_3$4 = { class: "name" };
11
+ //#endregion
12
+ //#region src/nodes/NodeDescriptionTabs/OptionsTab.vue
13
+ var OptionsTab_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
14
+ __name: "OptionsTab",
15
+ props: {
16
+ options: {},
17
+ renderAsHtml: { type: Boolean }
18
+ },
19
+ setup(__props) {
20
+ const accordionItems = computed(() => {
21
+ return __props.options.map((option, index) => ({
22
+ id: `section-${index}`,
23
+ headline: option.sectionName,
24
+ description: option.sectionDescription,
25
+ content: option.fields
26
+ }));
27
+ });
28
+ const modelValue = ref([]);
29
+ return (_ctx, _cache) => {
30
+ return openBlock(), createElementBlock("div", null, [__props.options.length > 1 ? (openBlock(), createBlock(unref(KdsAccordion), {
31
+ key: 0,
32
+ modelValue: modelValue.value,
33
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),
34
+ items: accordionItems.value
35
+ }, createSlots({ _: 2 }, [renderList(accordionItems.value, (item) => {
36
+ return {
37
+ name: item.id,
38
+ fn: withCtx(() => [item.description ? (openBlock(), createBlock(unref(KdsDescription), {
39
+ key: 0,
40
+ text: item.description,
41
+ "render-as-html": __props.renderAsHtml,
42
+ class: "section-description"
43
+ }, null, 8, ["text", "render-as-html"])) : createCommentVNode("", true), (openBlock(true), createElementBlock(Fragment, null, renderList(item.content, (field) => {
44
+ return openBlock(), createElementBlock("div", {
45
+ key: field.name,
46
+ class: "option-content"
47
+ }, [createElementVNode("span", _hoisted_1$9, toDisplayString(field.name) + " " + toDisplayString(field.optional ? "(optional)" : ""), 1), createVNode(unref(KdsDescription), {
48
+ text: field.description,
49
+ "render-as-html": __props.renderAsHtml
50
+ }, null, 8, ["text", "render-as-html"])]);
51
+ }), 128))])
52
+ };
53
+ })]), 1032, ["modelValue", "items"])) : createCommentVNode("", true), __props.options.length === 1 ? (openBlock(), createElementBlock("div", _hoisted_2$5, [__props.options[0].sectionDescription ? (openBlock(), createBlock(unref(KdsDescription), {
54
+ key: 0,
55
+ text: __props.options[0].sectionDescription,
56
+ "render-as-html": __props.renderAsHtml,
57
+ class: "section-description"
58
+ }, null, 8, ["text", "render-as-html"])) : createCommentVNode("", true), (openBlock(true), createElementBlock(Fragment, null, renderList(__props.options[0].fields, (field) => {
59
+ return openBlock(), createElementBlock("div", {
60
+ key: field.name,
61
+ class: "option-content"
62
+ }, [createElementVNode("span", _hoisted_3$4, toDisplayString(field.name) + " " + toDisplayString(field.optional ? "(optional)" : ""), 1), createVNode(unref(KdsDescription), {
63
+ text: field.description,
64
+ "render-as-html": __props.renderAsHtml
65
+ }, null, 8, ["text", "render-as-html"])]);
66
+ }), 128))])) : createCommentVNode("", true)]);
67
+ };
68
+ }
69
+ }), [["__scopeId", "data-v-4fcd17b8"]]);
70
+ //#endregion
71
+ //#region src/nodes/PortIcon/constants.ts
72
+ var PORT_STROKE_WIDTH = 1.4;
73
+ //#endregion
74
+ //#region src/nodes/PortIcon/SVGPortIcon.vue?vue&type=script&setup=true&lang.ts
75
+ var _hoisted_1$8 = [
76
+ "points",
77
+ "data-type",
78
+ "stroke-width"
79
+ ];
80
+ var _hoisted_2$4 = [
81
+ "r",
82
+ "data-type",
83
+ "stroke-width"
84
+ ];
85
+ var _hoisted_3$3 = [
86
+ "width",
87
+ "height",
88
+ "x",
89
+ "y",
90
+ "data-type",
91
+ "stroke-width"
92
+ ];
93
+ //#endregion
94
+ //#region src/nodes/PortIcon/SVGPortIcon.vue
95
+ var SVGPortIcon_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
96
+ __name: "SVGPortIcon",
97
+ props: {
98
+ type: {},
99
+ color: {},
100
+ filled: {
101
+ type: Boolean,
102
+ default: true
103
+ }
104
+ },
105
+ setup(__props) {
106
+ useCssVars((_ctx) => ({ "v45d93a60": _ctx.color }));
107
+ const trianglePath = computed(() => {
108
+ let [x1, y1, x2, y3] = [
109
+ -8 / 2,
110
+ -8 / 2,
111
+ 8 / 2,
112
+ 8 / 2
113
+ ];
114
+ const d = Math.sqrt(5) / 2;
115
+ const y = d / 2 + 1 / 4;
116
+ x1 += PORT_STROKE_WIDTH / 2;
117
+ x2 -= PORT_STROKE_WIDTH * d;
118
+ y1 += PORT_STROKE_WIDTH * y;
119
+ y3 -= PORT_STROKE_WIDTH * y;
120
+ return `${x1},${y1} ${x2},0 ${x1},${y3}`;
121
+ });
122
+ return (_ctx, _cache) => {
123
+ return __props.type === "table" ? (openBlock(), createElementBlock("polygon", mergeProps({
124
+ key: 0,
125
+ points: trianglePath.value,
126
+ class: { filled: __props.filled },
127
+ "data-type": __props.type,
128
+ "stroke-width": unref(PORT_STROKE_WIDTH)
129
+ }, _ctx.$attrs), null, 16, _hoisted_1$8)) : __props.type === "flowVariable" ? (openBlock(), createElementBlock("circle", mergeProps({
130
+ key: 1,
131
+ r: unref(8) / 2 - unref(PORT_STROKE_WIDTH) / 2,
132
+ class: { filled: __props.filled },
133
+ "data-type": __props.type,
134
+ "stroke-width": unref(PORT_STROKE_WIDTH)
135
+ }, _ctx.$attrs), null, 16, _hoisted_2$4)) : (openBlock(), createElementBlock("rect", mergeProps({
136
+ key: 2,
137
+ width: unref(8) - unref(PORT_STROKE_WIDTH),
138
+ height: unref(8) - unref(PORT_STROKE_WIDTH),
139
+ x: -unref(8) / 2 + unref(PORT_STROKE_WIDTH) / 2,
140
+ y: -unref(8) / 2 + unref(PORT_STROKE_WIDTH) / 2,
141
+ class: { filled: __props.filled },
142
+ "data-type": __props.type,
143
+ "stroke-width": unref(PORT_STROKE_WIDTH)
144
+ }, _ctx.$attrs), null, 16, _hoisted_3$3));
145
+ };
146
+ }
147
+ }), [["__scopeId", "data-v-3150264d"]]);
148
+ //#endregion
149
+ //#region src/nodes/PortIcon/PortIcon.vue?vue&type=script&setup=true&lang.ts
150
+ var _hoisted_1$7 = [
151
+ "viewBox",
152
+ "width",
153
+ "height"
154
+ ];
155
+ //#endregion
156
+ //#region src/nodes/PortIcon/PortIcon.vue
157
+ var PortIcon_default = /* @__PURE__ */ defineComponent({
158
+ __name: "PortIcon",
159
+ props: {
160
+ type: {},
161
+ color: {},
162
+ filled: {
163
+ type: Boolean,
164
+ default: true
165
+ }
166
+ },
167
+ setup(__props) {
168
+ const viewBox = computed(() => [
169
+ -8 / 2,
170
+ -8 / 2,
171
+ 8,
172
+ 8
173
+ ].join(" "));
174
+ return (_ctx, _cache) => {
175
+ return openBlock(), createElementBlock("svg", {
176
+ viewBox: viewBox.value,
177
+ width: unref(8),
178
+ height: unref(8)
179
+ }, [createVNode(SVGPortIcon_default, {
180
+ filled: __props.filled,
181
+ type: __props.type,
182
+ color: __props.color
183
+ }, null, 8, [
184
+ "filled",
185
+ "type",
186
+ "color"
187
+ ])], 8, _hoisted_1$7);
188
+ };
189
+ }
332
190
  });
333
-
334
- const ViewsTab = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-024c4b9d"]]);
335
-
336
- const _hoisted_1$2 = { class: "content" };
337
- const _sfc_main$2 = /* @__PURE__ */ defineComponent({
338
- __name: "NodeDescriptionTabs",
339
- props: {
340
- inputPorts: { default: () => [] },
341
- outputPorts: { default: () => [] },
342
- dynamicInputPorts: { default: () => [] },
343
- dynamicOutputPorts: { default: () => [] },
344
- optionsData: { default: () => [] },
345
- viewsData: { default: () => [] },
346
- emptyText: { default: "No ports, options or views available." },
347
- renderAsHtml: { type: Boolean, default: false },
348
- tabBarFullWidth: { type: Boolean, default: false }
349
- },
350
- setup(__props) {
351
- const TAB_IDS = {
352
- PORTS: "ports",
353
- OPTIONS: "options",
354
- VIEW: "view"
355
- };
356
- const activeTab = ref();
357
- const hasPorts = computed(
358
- () => __props.inputPorts.length > 0 || __props.outputPorts.length > 0 || __props.dynamicInputPorts.length > 0 || __props.dynamicOutputPorts.length > 0
359
- );
360
- const tabs = computed(() => [
361
- {
362
- id: "tab-ports",
363
- value: TAB_IDS.PORTS,
364
- label: "Ports",
365
- panelId: "panel-ports",
366
- accessory: {
367
- type: "icon",
368
- name: "connection"
369
- },
370
- disabled: !hasPorts.value
371
- },
372
- {
373
- id: "tab-options",
374
- value: TAB_IDS.OPTIONS,
375
- label: "Options",
376
- panelId: "panel-options",
377
- accessory: {
378
- type: "icon",
379
- name: "parameter"
380
- },
381
- disabled: __props.optionsData.length < 1
382
- },
383
- {
384
- id: "tab-view",
385
- value: TAB_IDS.VIEW,
386
- label: "View",
387
- panelId: "panel-view",
388
- accessory: {
389
- type: "icon",
390
- name: "eye"
391
- },
392
- disabled: __props.viewsData.length < 1
393
- }
394
- ]);
395
- return (_ctx, _cache) => {
396
- return openBlock(), createElementBlock("div", null, [
397
- createVNode(unref(KdsTabBar), {
398
- modelValue: activeTab.value,
399
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => activeTab.value = $event),
400
- "full-width": __props.tabBarFullWidth,
401
- size: "small",
402
- tabs: tabs.value
403
- }, null, 8, ["modelValue", "full-width", "tabs"]),
404
- createElementVNode("div", _hoisted_1$2, [
405
- activeTab.value === TAB_IDS.PORTS ? (openBlock(), createBlock(PortsTab, {
406
- key: 0,
407
- id: "panel-ports",
408
- role: "tabpanel",
409
- "aria-labelledby": "tab-ports",
410
- tabindex: "0",
411
- "input-ports": __props.inputPorts,
412
- "output-ports": __props.outputPorts,
413
- "dynamic-input-groups": __props.dynamicInputPorts,
414
- "dynamic-output-groups": __props.dynamicOutputPorts
415
- }, null, 8, ["input-ports", "output-ports", "dynamic-input-groups", "dynamic-output-groups"])) : createCommentVNode("", true),
416
- activeTab.value === TAB_IDS.OPTIONS ? (openBlock(), createBlock(OptionsTab, {
417
- key: 1,
418
- id: "panel-options",
419
- role: "tabpanel",
420
- "aria-labelledby": "tab-options",
421
- tabindex: "0",
422
- options: __props.optionsData,
423
- "render-as-html": __props.renderAsHtml
424
- }, null, 8, ["options", "render-as-html"])) : createCommentVNode("", true),
425
- activeTab.value === TAB_IDS.VIEW ? (openBlock(), createBlock(ViewsTab, {
426
- key: 2,
427
- id: "panel-view",
428
- role: "tabpanel",
429
- "aria-labelledby": "tab-view",
430
- tabindex: "0",
431
- views: __props.viewsData
432
- }, null, 8, ["views"])) : createCommentVNode("", true),
433
- !activeTab.value ? (openBlock(), createBlock(unref(KdsEmptyState), {
434
- key: 3,
435
- headline: __props.emptyText,
436
- class: "empty-state"
437
- }, null, 8, ["headline"])) : createCommentVNode("", true)
438
- ])
439
- ]);
440
- };
441
- }
442
- });
443
-
444
- const NodeDescriptionTabs = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-d2eb8e2e"]]);
445
-
446
- const NODE_SIZE = 32;
447
-
448
- const _hoisted_1$1 = ["d", "data-type"];
449
- const _hoisted_2$1 = ["d", "data-type", "transform"];
450
- const _hoisted_3$1 = ["xlink:href"];
451
- const componentBackgroundPortion = 0.75;
452
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
453
- __name: "SVGNodeTorso",
454
- props: {
455
- type: { default: null },
456
- isComponent: { type: Boolean, default: false },
457
- icon: { default: null }
458
- },
459
- setup(__props) {
460
- const backgroundPaths = {
461
- default: "M0,29.2L0,2.8C0,1.3,1.3,0,2.8,0l26.3,0C30.7,0,32,1.3,32,2.8v26.3c0,1.6-1.3,2.8-2.8,2.8H2.8C1.3,32,0,30.7,0,29.2z",
462
- LoopEnd: "M32,2.8v26.3c0,1.6-1.3,2.8-2.8,2.8H4L0,16.1L4,0l25.2,0C30.7,0,32,1.3,32,2.8z",
463
- LoopStart: "M0,29.2L0,2.8C0,1.3,1.3,0,2.8,0L32,0l-4,15.9L32,32H2.8C1.3,32,0,30.7,0,29.2z",
464
- ScopeEnd: "M32,2.8v26.3c0,1.6-1.3,2.8-2.8,2.8H4L0,16.1L4,0l25.2,0C30.7,0,32,1.3,32,2.8z",
465
- ScopeStart: "M0,29.2L0,2.8C0,1.3,1.3,0,2.8,0L32,0l-4,15.9L32,32H2.8C1.3,32,0,30.7,0,29.2z",
466
- VirtualIn: "M32,2.8v26.3c0,1.6-1.3,2.8-2.8,2.8H6.5L0,25.9l5.2-10L0.7,7.2L6.5,0l22.7,0C30.7,0,32,1.3,32,2.8z",
467
- VirtualOut: "M0,29.2L0,2.8C0,1.3,1.3,0,2.8,0L32,0l-5.8,7.2l4.5,8.7l-5.2,10L32,32H2.8C1.3,32,0,30.7,0,29.2z"
468
- };
469
- const backgroundPath = computed(
470
- () => __props.type && backgroundPaths[__props.type] || backgroundPaths.default
471
- );
472
- const componentBackgroundTransformation = computed(() => {
473
- const offset = NODE_SIZE / 2;
474
- const scaleFactor = componentBackgroundPortion;
475
- return `translate(${offset}, ${offset}) scale(${scaleFactor}) translate(-${offset}, -${offset})`;
476
- });
477
- return (_ctx, _cache) => {
478
- return openBlock(), createElementBlock("g", null, [
479
- createElementVNode("path", {
480
- d: backgroundPath.value,
481
- class: normalizeClass(["bg", { component: __props.isComponent }]),
482
- "data-type": __props.isComponent ? null : __props.type
483
- }, null, 10, _hoisted_1$1),
484
- __props.isComponent && __props.type ? (openBlock(), createElementBlock("path", {
485
- key: 0,
486
- d: backgroundPath.value,
487
- class: "bg",
488
- "data-type": __props.type,
489
- transform: componentBackgroundTransformation.value
490
- }, null, 8, _hoisted_2$1)) : createCommentVNode("", true),
491
- __props.icon ? (openBlock(), createElementBlock("image", {
492
- key: 1,
493
- "xlink:href": __props.icon,
494
- x: "8",
495
- y: "8",
496
- width: "16",
497
- height: "16",
498
- "pointer-events": "none"
499
- }, null, 8, _hoisted_3$1)) : createCommentVNode("", true)
500
- ]);
501
- };
502
- }
503
- });
504
-
505
- const SVGNodeTorso = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-2389897b"]]);
506
-
507
- const _hoisted_1 = ["data-size"];
508
- const _hoisted_2 = ["viewBox", "width", "height"];
509
- const _hoisted_3 = {
510
- key: 0,
511
- class: "indicators"
191
+ //#endregion
192
+ //#region src/nodes/NodeDescriptionTabs/PortTemplateInfo.vue?vue&type=script&setup=true&lang.ts
193
+ var _hoisted_1$6 = { class: "wrapper" };
194
+ var _hoisted_2$3 = { class: "icon" };
195
+ var _hoisted_3$2 = { class: "title" };
196
+ var _hoisted_4 = { class: "name title" };
197
+ //#endregion
198
+ //#region src/nodes/NodeDescriptionTabs/PortTemplateInfo.vue
199
+ var PortTemplateInfo_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
200
+ __name: "PortTemplateInfo",
201
+ props: {
202
+ port: {},
203
+ showDescription: { type: Boolean }
204
+ },
205
+ setup(__props) {
206
+ return (_ctx, _cache) => {
207
+ return openBlock(), createElementBlock("div", _hoisted_1$6, [
208
+ createElementVNode("div", _hoisted_2$3, [createVNode(PortIcon_default, {
209
+ type: __props.port.type,
210
+ color: __props.port.color,
211
+ filled: !__props.port.optional
212
+ }, null, 8, [
213
+ "type",
214
+ "color",
215
+ "filled"
216
+ ])]),
217
+ createElementVNode("span", _hoisted_3$2, "Type: " + toDisplayString(__props.port.typeDisplayName), 1),
218
+ createElementVNode("span", _hoisted_4, "Name: " + toDisplayString(__props.port.name), 1),
219
+ __props.showDescription ? (openBlock(), createBlock(unref(KdsDescription), {
220
+ key: 0,
221
+ class: "description",
222
+ text: __props.port.description,
223
+ "render-as-html": ""
224
+ }, null, 8, ["text"])) : createCommentVNode("", true)
225
+ ]);
226
+ };
227
+ }
228
+ }), [["__scopeId", "data-v-4920a7fa"]]);
229
+ //#endregion
230
+ //#region src/nodes/NodeDescriptionTabs/PortGroup.vue?vue&type=script&setup=true&lang.ts
231
+ var _hoisted_1$5 = { class: "port-group-card" };
232
+ var _hoisted_2$2 = { class: "group-name" };
233
+ //#endregion
234
+ //#region src/nodes/NodeDescriptionTabs/PortGroup.vue
235
+ var PortGroup_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
236
+ __name: "PortGroup",
237
+ props: {
238
+ name: {},
239
+ description: {},
240
+ ports: {},
241
+ isDynamicGroup: { type: Boolean }
242
+ },
243
+ setup(__props) {
244
+ return (_ctx, _cache) => {
245
+ return openBlock(), createElementBlock("div", _hoisted_1$5, [
246
+ createElementVNode("span", _hoisted_2$2, toDisplayString(__props.name), 1),
247
+ __props.description ? (openBlock(), createBlock(unref(KdsDescription), {
248
+ key: 0,
249
+ text: __props.description,
250
+ "render-as-html": ""
251
+ }, null, 8, ["text"])) : createCommentVNode("", true),
252
+ (openBlock(true), createElementBlock(Fragment, null, renderList(__props.ports, (port) => {
253
+ return openBlock(), createBlock(PortTemplateInfo_default, {
254
+ key: port.id,
255
+ port,
256
+ "show-description": !__props.isDynamicGroup
257
+ }, null, 8, ["port", "show-description"]);
258
+ }), 128))
259
+ ]);
260
+ };
261
+ }
262
+ }), [["__scopeId", "data-v-ed993ae3"]]);
263
+ //#endregion
264
+ //#region src/nodes/NodeDescriptionTabs/PortsTab.vue?vue&type=script&setup=true&lang.ts
265
+ var _hoisted_1$4 = { class: "port-list" };
266
+ //#endregion
267
+ //#region src/nodes/NodeDescriptionTabs/PortsTab.vue
268
+ var PortsTab_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
269
+ __name: "PortsTab",
270
+ props: {
271
+ inputPorts: {},
272
+ outputPorts: {},
273
+ dynamicInputGroups: { default: () => [] },
274
+ dynamicOutputGroups: { default: () => [] }
275
+ },
276
+ setup(__props) {
277
+ return (_ctx, _cache) => {
278
+ return openBlock(), createElementBlock("div", _hoisted_1$4, [
279
+ __props.inputPorts.length > 0 ? (openBlock(), createBlock(PortGroup_default, {
280
+ key: 0,
281
+ name: "Input ports",
282
+ ports: __props.inputPorts
283
+ }, null, 8, ["ports"])) : createCommentVNode("", true),
284
+ __props.outputPorts.length > 0 ? (openBlock(), createBlock(PortGroup_default, {
285
+ key: 1,
286
+ name: "Output ports",
287
+ ports: __props.outputPorts
288
+ }, null, 8, ["ports"])) : createCommentVNode("", true),
289
+ (openBlock(true), createElementBlock(Fragment, null, renderList(__props.dynamicInputGroups, (group) => {
290
+ return openBlock(), createElementBlock(Fragment, { key: group.name }, [group.types.length > 0 ? (openBlock(), createBlock(PortGroup_default, {
291
+ key: 0,
292
+ name: group.name + " (Dynamic Inport)",
293
+ description: group.description,
294
+ ports: group.types,
295
+ "is-dynamic-group": ""
296
+ }, null, 8, [
297
+ "name",
298
+ "description",
299
+ "ports"
300
+ ])) : createCommentVNode("", true)], 64);
301
+ }), 128)),
302
+ (openBlock(true), createElementBlock(Fragment, null, renderList(__props.dynamicOutputGroups, (group) => {
303
+ return openBlock(), createElementBlock(Fragment, { key: group.name }, [group.types.length > 0 ? (openBlock(), createBlock(PortGroup_default, {
304
+ key: 0,
305
+ name: group.name + " (Dynamic Outport)",
306
+ description: group.description,
307
+ ports: group.types,
308
+ "is-dynamic-group": ""
309
+ }, null, 8, [
310
+ "name",
311
+ "description",
312
+ "ports"
313
+ ])) : createCommentVNode("", true)], 64);
314
+ }), 128))
315
+ ]);
316
+ };
317
+ }
318
+ }), [["__scopeId", "data-v-bf308a64"]]);
319
+ //#endregion
320
+ //#region src/nodes/NodeDescriptionTabs/ViewsTab.vue?vue&type=script&setup=true&lang.ts
321
+ var _hoisted_1$3 = { class: "name" };
322
+ //#endregion
323
+ //#region src/nodes/NodeDescriptionTabs/ViewsTab.vue
324
+ var ViewsTab_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
325
+ __name: "ViewsTab",
326
+ props: { views: {} },
327
+ setup(__props) {
328
+ const props = __props;
329
+ const viewsWithId = computed(() => props.views.map((view, index) => {
330
+ return {
331
+ id: `view-${index}`,
332
+ ...view
333
+ };
334
+ }));
335
+ return (_ctx, _cache) => {
336
+ return openBlock(true), createElementBlock(Fragment, null, renderList(viewsWithId.value, (view) => {
337
+ return openBlock(), createElementBlock("div", {
338
+ key: view.id,
339
+ class: "card-wrapper"
340
+ }, [createElementVNode("span", _hoisted_1$3, toDisplayString(view.name), 1), view.description ? (openBlock(), createBlock(unref(KdsDescription), {
341
+ key: 0,
342
+ text: view.description,
343
+ "render-as-html": ""
344
+ }, null, 8, ["text"])) : createCommentVNode("", true)]);
345
+ }), 128);
346
+ };
347
+ }
348
+ }), [["__scopeId", "data-v-024c4b9d"]]);
349
+ //#endregion
350
+ //#region src/nodes/NodeDescriptionTabs/NodeDescriptionTabs.vue?vue&type=script&setup=true&lang.ts
351
+ var _hoisted_1$2 = { class: "content" };
352
+ //#endregion
353
+ //#region src/nodes/NodeDescriptionTabs/NodeDescriptionTabs.vue
354
+ var NodeDescriptionTabs_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
355
+ __name: "NodeDescriptionTabs",
356
+ props: {
357
+ inputPorts: { default: () => [] },
358
+ outputPorts: { default: () => [] },
359
+ dynamicInputPorts: { default: () => [] },
360
+ dynamicOutputPorts: { default: () => [] },
361
+ optionsData: { default: () => [] },
362
+ viewsData: { default: () => [] },
363
+ emptyText: { default: "No ports, options or views available." },
364
+ renderAsHtml: {
365
+ type: Boolean,
366
+ default: false
367
+ },
368
+ tabBarFullWidth: {
369
+ type: Boolean,
370
+ default: false
371
+ }
372
+ },
373
+ setup(__props) {
374
+ const TAB_IDS = {
375
+ PORTS: "ports",
376
+ OPTIONS: "options",
377
+ VIEW: "view"
378
+ };
379
+ const activeTab = ref();
380
+ const hasPorts = computed(() => __props.inputPorts.length > 0 || __props.outputPorts.length > 0 || __props.dynamicInputPorts.length > 0 || __props.dynamicOutputPorts.length > 0);
381
+ const tabs = computed(() => [
382
+ {
383
+ id: "tab-ports",
384
+ value: TAB_IDS.PORTS,
385
+ label: "Ports",
386
+ panelId: "panel-ports",
387
+ accessory: {
388
+ type: "icon",
389
+ name: "connection"
390
+ },
391
+ disabled: !hasPorts.value
392
+ },
393
+ {
394
+ id: "tab-options",
395
+ value: TAB_IDS.OPTIONS,
396
+ label: "Options",
397
+ panelId: "panel-options",
398
+ accessory: {
399
+ type: "icon",
400
+ name: "parameter"
401
+ },
402
+ disabled: __props.optionsData.length < 1
403
+ },
404
+ {
405
+ id: "tab-view",
406
+ value: TAB_IDS.VIEW,
407
+ label: "View",
408
+ panelId: "panel-view",
409
+ accessory: {
410
+ type: "icon",
411
+ name: "eye"
412
+ },
413
+ disabled: __props.viewsData.length < 1
414
+ }
415
+ ]);
416
+ return (_ctx, _cache) => {
417
+ return openBlock(), createElementBlock("div", null, [createVNode(unref(KdsTabBar), {
418
+ modelValue: activeTab.value,
419
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => activeTab.value = $event),
420
+ "full-width": __props.tabBarFullWidth,
421
+ size: "small",
422
+ tabs: tabs.value
423
+ }, null, 8, [
424
+ "modelValue",
425
+ "full-width",
426
+ "tabs"
427
+ ]), createElementVNode("div", _hoisted_1$2, [
428
+ activeTab.value === TAB_IDS.PORTS ? (openBlock(), createBlock(PortsTab_default, {
429
+ key: 0,
430
+ id: "panel-ports",
431
+ role: "tabpanel",
432
+ "aria-labelledby": "tab-ports",
433
+ tabindex: "0",
434
+ "input-ports": __props.inputPorts,
435
+ "output-ports": __props.outputPorts,
436
+ "dynamic-input-groups": __props.dynamicInputPorts,
437
+ "dynamic-output-groups": __props.dynamicOutputPorts
438
+ }, null, 8, [
439
+ "input-ports",
440
+ "output-ports",
441
+ "dynamic-input-groups",
442
+ "dynamic-output-groups"
443
+ ])) : createCommentVNode("", true),
444
+ activeTab.value === TAB_IDS.OPTIONS ? (openBlock(), createBlock(OptionsTab_default, {
445
+ key: 1,
446
+ id: "panel-options",
447
+ role: "tabpanel",
448
+ "aria-labelledby": "tab-options",
449
+ tabindex: "0",
450
+ options: __props.optionsData,
451
+ "render-as-html": __props.renderAsHtml
452
+ }, null, 8, ["options", "render-as-html"])) : createCommentVNode("", true),
453
+ activeTab.value === TAB_IDS.VIEW ? (openBlock(), createBlock(ViewsTab_default, {
454
+ key: 2,
455
+ id: "panel-view",
456
+ role: "tabpanel",
457
+ "aria-labelledby": "tab-view",
458
+ tabindex: "0",
459
+ views: __props.viewsData
460
+ }, null, 8, ["views"])) : createCommentVNode("", true),
461
+ !activeTab.value ? (openBlock(), createBlock(unref(KdsEmptyState), {
462
+ key: 3,
463
+ headline: __props.emptyText,
464
+ class: "empty-state"
465
+ }, null, 8, ["headline"])) : createCommentVNode("", true)
466
+ ])]);
467
+ };
468
+ }
469
+ }), [["__scopeId", "data-v-d2eb8e2e"]]);
470
+ //#endregion
471
+ //#region src/nodes/NodePreview/SVGNodeTorso.vue?vue&type=script&setup=true&lang.ts
472
+ var _hoisted_1$1 = ["d", "data-type"];
473
+ var _hoisted_2$1 = [
474
+ "d",
475
+ "data-type",
476
+ "transform"
477
+ ];
478
+ var _hoisted_3$1 = ["xlink:href"];
479
+ /**
480
+ * Draws the Torso (colored rounded rectangle with icon) of a Node or Component
481
+ * This vue component only draws regular Nodes/Components, no Metanodes, no Unknown nor Missing Nodes
482
+ * Only works inside of a <svg> element.
483
+ */
484
+ var componentBackgroundPortion = .75;
485
+ //#endregion
486
+ //#region src/nodes/NodePreview/SVGNodeTorso.vue
487
+ var SVGNodeTorso_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
488
+ __name: "SVGNodeTorso",
489
+ props: {
490
+ type: { default: null },
491
+ isComponent: {
492
+ type: Boolean,
493
+ default: false
494
+ },
495
+ icon: { default: null }
496
+ },
497
+ setup(__props) {
498
+ const backgroundPaths = {
499
+ default: "M0,29.2L0,2.8C0,1.3,1.3,0,2.8,0l26.3,0C30.7,0,32,1.3,32,2.8v26.3c0,1.6-1.3,2.8-2.8,2.8H2.8C1.3,32,0,30.7,0,29.2z",
500
+ LoopEnd: "M32,2.8v26.3c0,1.6-1.3,2.8-2.8,2.8H4L0,16.1L4,0l25.2,0C30.7,0,32,1.3,32,2.8z",
501
+ LoopStart: "M0,29.2L0,2.8C0,1.3,1.3,0,2.8,0L32,0l-4,15.9L32,32H2.8C1.3,32,0,30.7,0,29.2z",
502
+ ScopeEnd: "M32,2.8v26.3c0,1.6-1.3,2.8-2.8,2.8H4L0,16.1L4,0l25.2,0C30.7,0,32,1.3,32,2.8z",
503
+ ScopeStart: "M0,29.2L0,2.8C0,1.3,1.3,0,2.8,0L32,0l-4,15.9L32,32H2.8C1.3,32,0,30.7,0,29.2z",
504
+ VirtualIn: "M32,2.8v26.3c0,1.6-1.3,2.8-2.8,2.8H6.5L0,25.9l5.2-10L0.7,7.2L6.5,0l22.7,0C30.7,0,32,1.3,32,2.8z",
505
+ VirtualOut: "M0,29.2L0,2.8C0,1.3,1.3,0,2.8,0L32,0l-5.8,7.2l4.5,8.7l-5.2,10L32,32H2.8C1.3,32,0,30.7,0,29.2z"
506
+ };
507
+ const backgroundPath = computed(() => __props.type && backgroundPaths[__props.type] || backgroundPaths.default);
508
+ const componentBackgroundTransformation = computed(() => {
509
+ const offset = 32 / 2;
510
+ return `translate(${offset}, ${offset}) scale(${componentBackgroundPortion}) translate(-${offset}, -${offset})`;
511
+ });
512
+ return (_ctx, _cache) => {
513
+ return openBlock(), createElementBlock("g", null, [
514
+ createElementVNode("path", {
515
+ d: backgroundPath.value,
516
+ class: normalizeClass(["bg", { component: __props.isComponent }]),
517
+ "data-type": __props.isComponent ? null : __props.type
518
+ }, null, 10, _hoisted_1$1),
519
+ __props.isComponent && __props.type ? (openBlock(), createElementBlock("path", {
520
+ key: 0,
521
+ d: backgroundPath.value,
522
+ class: "bg",
523
+ "data-type": __props.type,
524
+ transform: componentBackgroundTransformation.value
525
+ }, null, 8, _hoisted_2$1)) : createCommentVNode("", true),
526
+ __props.icon ? (openBlock(), createElementBlock("image", {
527
+ key: 1,
528
+ "xlink:href": __props.icon,
529
+ x: "8",
530
+ y: "8",
531
+ width: "16",
532
+ height: "16",
533
+ "pointer-events": "none"
534
+ }, null, 8, _hoisted_3$1)) : createCommentVNode("", true)
535
+ ]);
536
+ };
537
+ }
538
+ }), [["__scopeId", "data-v-fe80b11e"]]);
539
+ //#endregion
540
+ //#region src/nodes/NodePreview/NodePreview.vue?vue&type=script&setup=true&lang.ts
541
+ var _hoisted_1 = ["data-size"];
542
+ var _hoisted_2 = [
543
+ "viewBox",
544
+ "width",
545
+ "height"
546
+ ];
547
+ var _hoisted_3 = {
548
+ key: 0,
549
+ class: "indicators"
512
550
  };
513
- const maxShownPorts = 3;
514
- const _sfc_main = /* @__PURE__ */ defineComponent({
515
- __name: "NodePreview",
516
- props: {
517
- type: { default: null },
518
- isComponent: { type: Boolean, default: false },
519
- indicatorIcon: { default: () => void 0 },
520
- inPorts: { default: () => [] },
521
- outPorts: { default: () => [] },
522
- icon: { default: null },
523
- hidePorts: { type: Boolean, default: false },
524
- hideIndicators: { type: Boolean, default: false },
525
- size: { default: "xlarge" }
526
- },
527
- setup(__props) {
528
- useCssVars((_ctx) => ({
529
- "v33c62e54": width.value,
530
- "v347765ac": unref(NODE_SIZE)
531
- }));
532
- const horizontalSpaceForPorts = computed(() => __props.hidePorts ? 0 : PORT_SIZE);
533
- const width = computed(() => NODE_SIZE + 2 * horizontalSpaceForPorts.value);
534
- const height = NODE_SIZE;
535
- const viewBox = computed(
536
- () => `-${horizontalSpaceForPorts.value} 0 ${width.value} ${height}`
537
- );
538
- function yPortShift(index, total) {
539
- let spacing = 1;
540
- if (total === 2) {
541
- spacing = 12;
542
- } else if (total === 3) {
543
- spacing = 2;
544
- }
545
- const totalHeight = total * PORT_SIZE + (total - 1) * spacing;
546
- const delta = (NODE_SIZE - totalHeight) / 2;
547
- return (spacing + PORT_SIZE) * index + delta + PORT_SIZE / 2;
548
- }
549
- const cutOffPorts = (ports) => {
550
- if (ports.length > maxShownPorts) {
551
- return [...ports.slice(0, maxShownPorts)];
552
- }
553
- return ports;
554
- };
555
- const visibleInPorts = computed(() => cutOffPorts(__props.inPorts));
556
- const visibleOutPorts = computed(() => cutOffPorts(__props.outPorts));
557
- const numberOfHiddenPorts = computed(
558
- () => __props.inPorts.length - visibleInPorts.value.length + __props.outPorts.length - visibleOutPorts.value.length
559
- );
560
- return (_ctx, _cache) => {
561
- return openBlock(), createElementBlock("div", {
562
- class: "node-preview",
563
- "data-size": __props.size
564
- }, [
565
- (openBlock(), createElementBlock("svg", {
566
- viewBox: viewBox.value,
567
- width: width.value,
568
- height: unref(height)
569
- }, [
570
- createVNode(SVGNodeTorso, {
571
- type: __props.type,
572
- icon: __props.icon,
573
- "is-component": __props.isComponent
574
- }, null, 8, ["type", "icon", "is-component"]),
575
- !__props.hidePorts ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
576
- (openBlock(true), createElementBlock(Fragment, null, renderList(visibleInPorts.value, (port, index) => {
577
- return openBlock(), createBlock(SVGPortIcon, {
578
- key: `in-${index}`,
579
- color: port.color,
580
- filled: !port.optional,
581
- type: port.type,
582
- transform: `translate(-${unref(PORT_SIZE) / 2}, ${yPortShift(index, visibleInPorts.value.length)})`
583
- }, null, 8, ["color", "filled", "type", "transform"]);
584
- }), 128)),
585
- (openBlock(true), createElementBlock(Fragment, null, renderList(visibleOutPorts.value, (port, index) => {
586
- return openBlock(), createBlock(SVGPortIcon, {
587
- key: `out-${index}`,
588
- color: port.color,
589
- filled: !port.optional,
590
- type: port.type,
591
- transform: `translate(${unref(NODE_SIZE) + unref(PORT_SIZE) / 2}, ${yPortShift(index, visibleOutPorts.value.length)})`
592
- }, null, 8, ["color", "filled", "type", "transform"]);
593
- }), 128))
594
- ], 64)) : createCommentVNode("", true)
595
- ], 8, _hoisted_2)),
596
- !__props.hideIndicators ? (openBlock(), createElementBlock("div", _hoisted_3, [
597
- __props.indicatorIcon ? (openBlock(), createBlock(unref(KdsIcon), {
598
- key: 0,
599
- name: __props.indicatorIcon,
600
- size: "small"
601
- }, null, 8, ["name"])) : createCommentVNode("", true),
602
- numberOfHiddenPorts.value > 0 && !__props.hidePorts ? (openBlock(), createBlock(unref(KdsIcon), {
603
- key: 1,
604
- name: "more-connections",
605
- "aria-label": "Indication that some ports are hidden",
606
- size: "small"
607
- })) : createCommentVNode("", true)
608
- ])) : createCommentVNode("", true)
609
- ], 8, _hoisted_1);
610
- };
611
- }
612
- });
613
-
614
- const NodePreview = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-4ca34076"]]);
551
+ /**
552
+ * SVG icon preview for a node or component, generated from its attributes
553
+ */
554
+ var maxShownPorts = 3;
555
+ //#endregion
556
+ //#region src/nodes/NodePreview/NodePreview.vue
557
+ var NodePreview_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
558
+ __name: "NodePreview",
559
+ props: {
560
+ type: { default: null },
561
+ isComponent: {
562
+ type: Boolean,
563
+ default: false
564
+ },
565
+ indicatorIcon: { default: () => void 0 },
566
+ inPorts: { default: () => [] },
567
+ outPorts: { default: () => [] },
568
+ icon: { default: null },
569
+ hidePorts: {
570
+ type: Boolean,
571
+ default: false
572
+ },
573
+ hideIndicators: {
574
+ type: Boolean,
575
+ default: false
576
+ },
577
+ size: { default: "xlarge" }
578
+ },
579
+ setup(__props) {
580
+ useCssVars((_ctx) => ({
581
+ "v040783bc": width.value,
582
+ "a08071d8": unref(32)
583
+ }));
584
+ const horizontalSpaceForPorts = computed(() => __props.hidePorts ? 0 : 8);
585
+ const width = computed(() => 32 + 2 * horizontalSpaceForPorts.value);
586
+ const height = 32;
587
+ const viewBox = computed(() => `-${horizontalSpaceForPorts.value} 0 ${width.value} ${height}`);
588
+ function yPortShift(index, total) {
589
+ let spacing = 1;
590
+ if (total === 2) spacing = 12;
591
+ else if (total === 3) spacing = 2;
592
+ const delta = (32 - (total * 8 + (total - 1) * spacing)) / 2;
593
+ return (spacing + 8) * index + delta + 8 / 2;
594
+ }
595
+ const cutOffPorts = (ports) => {
596
+ if (ports.length > maxShownPorts) return [...ports.slice(0, maxShownPorts)];
597
+ return ports;
598
+ };
599
+ const visibleInPorts = computed(() => cutOffPorts(__props.inPorts));
600
+ const visibleOutPorts = computed(() => cutOffPorts(__props.outPorts));
601
+ const numberOfHiddenPorts = computed(() => __props.inPorts.length - visibleInPorts.value.length + __props.outPorts.length - visibleOutPorts.value.length);
602
+ return (_ctx, _cache) => {
603
+ return openBlock(), createElementBlock("div", {
604
+ class: "node-preview",
605
+ "data-size": __props.size
606
+ }, [(openBlock(), createElementBlock("svg", {
607
+ viewBox: viewBox.value,
608
+ width: width.value,
609
+ height: unref(height)
610
+ }, [createVNode(SVGNodeTorso_default, {
611
+ type: __props.type,
612
+ icon: __props.icon,
613
+ "is-component": __props.isComponent
614
+ }, null, 8, [
615
+ "type",
616
+ "icon",
617
+ "is-component"
618
+ ]), !__props.hidePorts ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [(openBlock(true), createElementBlock(Fragment, null, renderList(visibleInPorts.value, (port, index) => {
619
+ return openBlock(), createBlock(SVGPortIcon_default, {
620
+ key: `in-${index}`,
621
+ color: port.color,
622
+ filled: !port.optional,
623
+ type: port.type,
624
+ transform: `translate(-${unref(8) / 2}, ${yPortShift(index, visibleInPorts.value.length)})`
625
+ }, null, 8, [
626
+ "color",
627
+ "filled",
628
+ "type",
629
+ "transform"
630
+ ]);
631
+ }), 128)), (openBlock(true), createElementBlock(Fragment, null, renderList(visibleOutPorts.value, (port, index) => {
632
+ return openBlock(), createBlock(SVGPortIcon_default, {
633
+ key: `out-${index}`,
634
+ color: port.color,
635
+ filled: !port.optional,
636
+ type: port.type,
637
+ transform: `translate(${unref(32) + unref(8) / 2}, ${yPortShift(index, visibleOutPorts.value.length)})`
638
+ }, null, 8, [
639
+ "color",
640
+ "filled",
641
+ "type",
642
+ "transform"
643
+ ]);
644
+ }), 128))], 64)) : createCommentVNode("", true)], 8, _hoisted_2)), !__props.hideIndicators ? (openBlock(), createElementBlock("div", _hoisted_3, [__props.indicatorIcon ? (openBlock(), createBlock(unref(KdsIcon), {
645
+ key: 0,
646
+ name: __props.indicatorIcon,
647
+ size: "small"
648
+ }, null, 8, ["name"])) : createCommentVNode("", true), numberOfHiddenPorts.value > 0 && !__props.hidePorts ? (openBlock(), createBlock(unref(KdsIcon), {
649
+ key: 1,
650
+ name: "more-connections",
651
+ "aria-label": "Indication that some ports are hidden",
652
+ size: "small"
653
+ })) : createCommentVNode("", true)])) : createCommentVNode("", true)], 8, _hoisted_1);
654
+ };
655
+ }
656
+ }), [["__scopeId", "data-v-a3b6413d"]]);
657
+ //#endregion
658
+ export { NodeDescriptionTabs_default as NodeDescriptionTabs, NodePreview_default as NodePreview, PortIcon_default as PortIcon };
615
659
 
616
- export { NodeDescriptionTabs, NodePreview, _sfc_main$7 as PortIcon };
617
- //# sourceMappingURL=nodes.js.map
660
+ //# sourceMappingURL=nodes.js.map