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