@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/versions.js CHANGED
@@ -1,600 +1,586 @@
1
- import { defineComponent, openBlock, createElementBlock, createElementVNode, createCommentVNode, createVNode, unref, renderSlot, toDisplayString, ref, computed, onMounted, createTextVNode, withDirectives, normalizeClass, Fragment, createBlock, withCtx, createSlots, withModifiers, useModel, useTemplateRef, normalizeStyle, mergeModels, renderList, nextTick } from 'vue';
2
- import { KdsIcon, KdsAvatar, vKdsTooltip, KdsSelectableCard, KdsMenuButton, KdsButton, KdsToggleButton, KdsPopover, KdsDescription, KdsCard, KdsLinkButton, KdsPanel, KdsTextInput, KdsTextarea } from '@knime/kds-components';
3
- import { _ as _export_sfc } from './_plugin-vue_export-helper-pcqpp-6-.js';
4
- import { d as formatLocalDateTimeString, b as formatDateTimeString } from './index-B3ql6hun.js';
5
-
6
- import './versions.css';const _hoisted_1$8 = { class: "history-event-wrapper" };
7
- const _hoisted_2$4 = { class: "history-event-decorator" };
8
- const _hoisted_3 = {
9
- key: 0,
10
- class: "history-event-line-top"
1
+ import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.js";
2
+ import { i as formatLocalDateTimeString, n as formatDateTimeString } from "./dist-BrNh9vG-.js";
3
+ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, mergeModels, nextTick, normalizeClass, normalizeStyle, onMounted, openBlock, ref, renderList, renderSlot, toDisplayString, unref, useModel, useTemplateRef, withCtx, withDirectives, withModifiers } from "vue";
4
+ import { KdsAvatar, KdsButton, KdsCard, KdsDescription, KdsIcon, KdsLinkButton, KdsMenuButton, KdsPanel, KdsPopover, KdsSelectableCard, KdsTextInput, KdsTextarea, KdsToggleButton, vKdsTooltip } from "@knime/kds-components";
5
+ import './versions.css';//#region src/versions/VersionHistory/HistoryEvent.vue?vue&type=script&setup=true&lang.ts
6
+ var _hoisted_1$8 = { class: "history-event-wrapper" };
7
+ var _hoisted_2$4 = { class: "history-event-decorator" };
8
+ var _hoisted_3 = {
9
+ key: 0,
10
+ class: "history-event-line-top"
11
11
  };
12
- const _hoisted_4 = {
13
- key: 1,
14
- class: "history-event-line-bottom"
12
+ var _hoisted_4 = {
13
+ key: 1,
14
+ class: "history-event-line-bottom"
15
15
  };
16
- const _hoisted_5 = { class: "card-wrapper" };
17
- const _sfc_main$8 = /* @__PURE__ */ defineComponent({
18
- __name: "HistoryEvent",
19
- props: {
20
- isSelected: { type: Boolean },
21
- isFirstItem: { type: Boolean },
22
- isLastItem: { type: Boolean }
23
- },
24
- setup(__props) {
25
- return (_ctx, _cache) => {
26
- return openBlock(), createElementBlock("div", _hoisted_1$8, [
27
- createElementVNode("div", _hoisted_2$4, [
28
- !__props.isFirstItem ? (openBlock(), createElementBlock("div", _hoisted_3)) : createCommentVNode("", true),
29
- createVNode(unref(KdsIcon), {
30
- class: "history-event-icon",
31
- name: __props.isSelected ? "circle-success" : "circle-unchecked",
32
- size: "small"
33
- }, null, 8, ["name"]),
34
- !__props.isLastItem ? (openBlock(), createElementBlock("div", _hoisted_4)) : createCommentVNode("", true)
35
- ]),
36
- createElementVNode("div", _hoisted_5, [
37
- renderSlot(_ctx.$slots, "default", {}, void 0, true)
38
- ])
39
- ]);
40
- };
41
- }
42
- });
43
-
44
- const HistoryEvent = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-249d4c97"]]);
45
-
46
- const _hoisted_1$7 = { class: "avatar-and-name-wrapper" };
47
- const _hoisted_2$3 = { class: "author-name" };
48
- const _sfc_main$7 = /* @__PURE__ */ defineComponent({
49
- __name: "HistoryEventAuthor",
50
- props: {
51
- avatar: {},
52
- author: {}
53
- },
54
- setup(__props) {
55
- const nameInitials = (name) => name.split(/[., _-]/, 2).map((part) => part.charAt(0).toUpperCase()).join("");
56
- return (_ctx, _cache) => {
57
- return openBlock(), createElementBlock("div", _hoisted_1$7, [
58
- createVNode(unref(KdsAvatar), {
59
- src: __props.avatar.src,
60
- tooltip: __props.author,
61
- initials: nameInitials(__props.author)
62
- }, null, 8, ["src", "tooltip", "initials"]),
63
- createElementVNode("span", _hoisted_2$3, toDisplayString(__props.author), 1)
64
- ]);
65
- };
66
- }
67
- });
68
-
69
- const HistoryEventAuthor = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__scopeId", "data-v-1a7632f7"]]);
70
-
71
- const _hoisted_1$6 = { class: "history-event-footer" };
72
- const _hoisted_2$2 = ["datetime"];
73
- const _sfc_main$6 = /* @__PURE__ */ defineComponent({
74
- __name: "HistoryEventFooter",
75
- props: {
76
- date: {},
77
- version: {}
78
- },
79
- setup(__props) {
80
- const isMounted = ref(false);
81
- const localDateTime = computed(
82
- () => isMounted.value ? formatLocalDateTimeString(__props.date, true) : formatDateTimeString(__props.date, true)
83
- );
84
- onMounted(() => {
85
- isMounted.value = true;
86
- });
87
- return (_ctx, _cache) => {
88
- return openBlock(), createElementBlock("span", _hoisted_1$6, [
89
- _cache[0] || (_cache[0] = createTextVNode(" Created on ", -1)),
90
- withDirectives((openBlock(), createElementBlock("time", {
91
- datetime: __props.date,
92
- class: normalizeClass({ hidden: !isMounted.value })
93
- }, [
94
- createTextVNode(toDisplayString(localDateTime.value), 1)
95
- ], 10, _hoisted_2$2)), [
96
- [unref(vKdsTooltip), __props.date]
97
- ]),
98
- __props.version ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
99
- createTextVNode("– Version " + toDisplayString(__props.version), 1)
100
- ], 64)) : createCommentVNode("", true)
101
- ]);
102
- };
103
- }
104
- });
105
-
106
- const HistoryEventFooter = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-3db3e01b"]]);
107
-
108
- const _hoisted_1$5 = { class: "content-wrapper" };
109
- const _sfc_main$5 = /* @__PURE__ */ defineComponent({
110
- __name: "CurrentState",
111
- props: {
112
- currentSavepoint: {},
113
- isSelected: { type: Boolean },
114
- hasEditCapability: { type: Boolean },
115
- hasPreviousVersion: { type: Boolean },
116
- hasVersionLimit: { type: Boolean },
117
- isVersionLimitExceeded: { type: Boolean }
118
- },
119
- emits: ["createVersion", "discard", "select"],
120
- setup(__props, { emit: __emit }) {
121
- const props = __props;
122
- const emit = __emit;
123
- const menuItems = computed(
124
- () => props.hasEditCapability && props.hasPreviousVersion ? [
125
- {
126
- id: "discard",
127
- text: "Discard",
128
- handler: () => emit("discard")
129
- }
130
- ] : []
131
- );
132
- return (_ctx, _cache) => {
133
- return openBlock(), createBlock(HistoryEvent, {
134
- "is-selected": __props.isSelected,
135
- "is-first-item": "",
136
- "is-last-item": !__props.hasPreviousVersion && !__props.hasVersionLimit
137
- }, {
138
- default: withCtx(() => [
139
- createVNode(unref(KdsSelectableCard), {
140
- "model-value": __props.isSelected,
141
- headline: "Draft",
142
- ariaLabel: "Savepoint history event",
143
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => !__props.isSelected && _ctx.$emit("select"))
144
- }, createSlots({
145
- default: withCtx(() => [
146
- createElementVNode("div", _hoisted_1$5, [
147
- createVNode(HistoryEventAuthor, {
148
- author: __props.currentSavepoint.author,
149
- avatar: __props.currentSavepoint.avatar
150
- }, null, 8, ["author", "avatar"]),
151
- createVNode(HistoryEventFooter, {
152
- date: __props.currentSavepoint.lastEditedOn
153
- }, null, 8, ["date"])
154
- ])
155
- ]),
156
- _: 2
157
- }, [
158
- menuItems.value.length ? {
159
- name: "header-actions",
160
- fn: withCtx(() => [
161
- createVNode(unref(KdsMenuButton), {
162
- items: menuItems.value,
163
- variant: "transparent",
164
- "leading-icon": "more-actions",
165
- ariaLabel: "More actions"
166
- }, null, 8, ["items"])
167
- ]),
168
- key: "0"
169
- } : void 0
170
- ]), 1032, ["model-value"]),
171
- __props.hasEditCapability && !__props.isVersionLimitExceeded ? (openBlock(), createBlock(unref(KdsButton), {
172
- key: 0,
173
- label: "Create version",
174
- onClick: _cache[1] || (_cache[1] = withModifiers(($event) => _ctx.$emit("createVersion"), ["stop"]))
175
- })) : createCommentVNode("", true)
176
- ]),
177
- _: 1
178
- }, 8, ["is-selected", "is-last-item"]);
179
- };
180
- }
181
- });
182
-
183
- const CurrentState = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-a6a58c85"]]);
184
-
185
- const _hoisted_1$4 = { class: "label-popover-container" };
186
- const _hoisted_2$1 = { class: "label-title" };
187
- const _sfc_main$4 = /* @__PURE__ */ defineComponent({
188
- __name: "VersionLabel",
189
- props: /* @__PURE__ */ mergeModels({
190
- label: {}
191
- }, {
192
- "modelValue": { type: Boolean, ...{ default: false } },
193
- "modelModifiers": {}
194
- }),
195
- emits: ["update:modelValue"],
196
- setup(__props) {
197
- const isPopoverOpen = useModel(__props, "modelValue");
198
- const popoverEl = useTemplateRef("popover");
199
- return (_ctx, _cache) => {
200
- return openBlock(), createElementBlock(Fragment, null, [
201
- createVNode(unref(KdsToggleButton), {
202
- modelValue: isPopoverOpen.value,
203
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isPopoverOpen.value = $event),
204
- "data-kds-card-secondary-action": "",
205
- label: __props.label.label.name,
206
- "aria-haspopup": "dialog",
207
- "aria-expanded": isPopoverOpen.value,
208
- "aria-controls": popoverEl.value?.popoverId,
209
- size: "xsmall",
210
- style: normalizeStyle(popoverEl.value?.anchorStyle)
211
- }, null, 8, ["modelValue", "label", "aria-expanded", "aria-controls", "style"]),
212
- createVNode(unref(KdsPopover), {
213
- ref: "popover",
214
- modelValue: isPopoverOpen.value,
215
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => isPopoverOpen.value = $event),
216
- placement: "bottom-left",
217
- role: "dialog",
218
- "aria-label": "Label details"
219
- }, {
220
- default: withCtx(() => [
221
- createElementVNode("div", _hoisted_1$4, [
222
- createElementVNode("div", _hoisted_2$1, toDisplayString(__props.label.label.name), 1),
223
- createVNode(unref(KdsDescription), {
224
- text: __props.label.label.description
225
- }, null, 8, ["text"]),
226
- __props.label.message ? (openBlock(), createBlock(unref(KdsDescription), {
227
- key: 0,
228
- text: __props.label.message
229
- }, null, 8, ["text"])) : createCommentVNode("", true)
230
- ])
231
- ]),
232
- _: 1
233
- }, 8, ["modelValue"])
234
- ], 64);
235
- };
236
- }
237
- });
238
-
239
- const VersionLabel = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-00d7133a"]]);
240
-
241
- const _hoisted_1$3 = { class: "content-wrapper" };
242
- const _hoisted_2 = { class: "labels-wrapper" };
243
- const _sfc_main$3 = /* @__PURE__ */ defineComponent({
244
- __name: "VersionItem",
245
- props: {
246
- version: {},
247
- isSelected: { type: Boolean },
248
- hasAdminRights: { type: Boolean },
249
- hasEditCapability: { type: Boolean },
250
- isFirstItem: { type: Boolean },
251
- isLastItem: { type: Boolean }
252
- },
253
- emits: ["select", "delete", "restore"],
254
- setup(__props, { emit: __emit }) {
255
- const props = __props;
256
- const emit = __emit;
257
- const toggleVersionSelection = () => {
258
- emit("select", !props.isSelected);
259
- };
260
- const menuItems = computed(
261
- () => [
262
- props.hasEditCapability && {
263
- id: "show",
264
- text: props.isSelected ? "Deselect this version" : "Show this version",
265
- handler: toggleVersionSelection
266
- },
267
- props.hasEditCapability && {
268
- id: "restore",
269
- text: "Restore this version",
270
- handler: () => emit("restore")
271
- },
272
- props.hasAdminRights && {
273
- id: "delete",
274
- text: "Delete this version",
275
- handler: () => emit("delete")
276
- }
277
- ].filter((i) => i !== false)
278
- );
279
- return (_ctx, _cache) => {
280
- return openBlock(), createBlock(HistoryEvent, {
281
- "is-selected": __props.isSelected,
282
- "is-first-item": __props.isFirstItem,
283
- "is-last-item": __props.isLastItem
284
- }, {
285
- default: withCtx(() => [
286
- createVNode(unref(KdsSelectableCard), {
287
- "model-value": __props.isSelected,
288
- headline: __props.version.title,
289
- ariaLabel: "Version history event",
290
- "onUpdate:modelValue": toggleVersionSelection
291
- }, createSlots({
292
- default: withCtx(() => [
293
- createElementVNode("div", _hoisted_1$3, [
294
- createVNode(HistoryEventAuthor, {
295
- author: __props.version.author,
296
- avatar: __props.version.avatar
297
- }, null, 8, ["author", "avatar"]),
298
- __props.version.description ? (openBlock(), createBlock(unref(KdsDescription), {
299
- key: 0,
300
- text: __props.version.description
301
- }, null, 8, ["text"])) : createCommentVNode("", true),
302
- createElementVNode("div", _hoisted_2, [
303
- (openBlock(true), createElementBlock(Fragment, null, renderList(__props.version.labels, (label) => {
304
- return openBlock(), createBlock(VersionLabel, {
305
- key: label.labelId,
306
- label
307
- }, null, 8, ["label"]);
308
- }), 128))
309
- ]),
310
- createVNode(HistoryEventFooter, {
311
- version: __props.version.version,
312
- date: __props.version.createdOn
313
- }, null, 8, ["version", "date"])
314
- ])
315
- ]),
316
- _: 2
317
- }, [
318
- menuItems.value.length ? {
319
- name: "header-actions",
320
- fn: withCtx(() => [
321
- createVNode(unref(KdsMenuButton), {
322
- items: menuItems.value,
323
- variant: "transparent",
324
- "leading-icon": "more-actions",
325
- ariaLabel: "More actions"
326
- }, null, 8, ["items"])
327
- ]),
328
- key: "0"
329
- } : void 0
330
- ]), 1032, ["model-value", "headline"])
331
- ]),
332
- _: 1
333
- }, 8, ["is-selected", "is-first-item", "is-last-item"]);
334
- };
335
- }
336
- });
337
-
338
- const VersionItem = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-9cf889d1"]]);
339
-
340
- const _hoisted_1$2 = { class: "content-wrapper" };
341
- const _sfc_main$2 = /* @__PURE__ */ defineComponent({
342
- __name: "VersionLimitInfo",
343
- props: {
344
- versionLimit: {},
345
- upgradeUrl: { default: () => void 0 },
346
- isPrivate: { type: Boolean, default: false }
347
- },
348
- setup(__props) {
349
- const isLimitReached = computed(
350
- () => __props.versionLimit.currentUsage >= __props.versionLimit.limit
351
- );
352
- const headline = computed(() => {
353
- if (isLimitReached.value) {
354
- return `You've reached the maximum of ${__props.versionLimit.limit} versions.`;
355
- } else {
356
- return `Using ${__props.versionLimit.currentUsage} of ${__props.versionLimit.limit} versions.`;
357
- }
358
- });
359
- return (_ctx, _cache) => {
360
- return openBlock(), createBlock(HistoryEvent, {
361
- "is-selected": false,
362
- "is-first-item": false,
363
- "is-last-item": ""
364
- }, {
365
- default: withCtx(() => [
366
- createVNode(unref(KdsCard), {
367
- variant: "filled",
368
- headline: headline.value
369
- }, createSlots({
370
- default: withCtx(() => [
371
- createElementVNode("div", _hoisted_1$2, [
372
- createVNode(unref(KdsDescription), {
373
- text: `Upgrade to use unlimited versions${__props.isPrivate ? " for private items." : "."}`
374
- }, null, 8, ["text"])
375
- ])
376
- ]),
377
- _: 2
378
- }, [
379
- __props.upgradeUrl ? {
380
- name: "header-actions",
381
- fn: withCtx(() => [
382
- createVNode(unref(KdsLinkButton), {
383
- label: "Upgrade",
384
- to: __props.upgradeUrl
385
- }, null, 8, ["to"])
386
- ]),
387
- key: "0"
388
- } : void 0
389
- ]), 1032, ["headline"])
390
- ]),
391
- _: 1
392
- });
393
- };
394
- }
395
- });
396
-
397
- const VersionLimitInfo = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-0a98c542"]]);
398
-
399
- const VERSION_DEFAULT_LIMIT = 10;
400
- const CURRENT_STATE_VERSION = "current-state";
401
- const MOST_RECENT_VERSION = "most-recent";
402
-
403
- const _hoisted_1$1 = { class: "version-history-wrapper" };
404
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
405
- __name: "VersionHistory",
406
- props: {
407
- hasUnversionedChanges: { type: Boolean },
408
- unversionedSavepoint: {},
409
- currentVersion: {},
410
- versionHistory: {},
411
- loading: { type: Boolean },
412
- hasLoadedAllVersions: { type: Boolean },
413
- hasAdminRights: { type: Boolean },
414
- hasEditCapability: { type: Boolean },
415
- versionLimit: {},
416
- upgradeUrl: {},
417
- isPrivate: { type: Boolean }
418
- },
419
- emits: ["close", "loadAll", "create", "delete", "restore", "select", "discardCurrentState"],
420
- setup(__props, { emit: __emit }) {
421
- const props = __props;
422
- const emit = __emit;
423
- const isVersionLimitExceeded = computed(() => {
424
- return props.versionLimit?.limit !== void 0 && props.versionLimit.currentUsage >= props.versionLimit.limit;
425
- });
426
- const headlineTrailingActions = computed(
427
- () => [
428
- {
429
- type: "button",
430
- props: {
431
- leadingIcon: "x-close",
432
- ariaLabel: "Close",
433
- variant: "transparent"
434
- },
435
- onClick: () => emit("close")
436
- }
437
- ]
438
- );
439
- return (_ctx, _cache) => {
440
- return openBlock(), createBlock(unref(KdsPanel), {
441
- headline: "Version history",
442
- "headline-trailing-actions": headlineTrailingActions.value
443
- }, {
444
- default: withCtx(() => [
445
- createElementVNode("div", _hoisted_1$1, [
446
- __props.unversionedSavepoint ? (openBlock(), createBlock(CurrentState, {
447
- key: 0,
448
- "current-savepoint": __props.unversionedSavepoint,
449
- "is-selected": __props.currentVersion === unref(CURRENT_STATE_VERSION),
450
- "has-edit-capability": __props.hasEditCapability,
451
- "has-previous-version": __props.versionHistory.length > 0,
452
- "has-version-limit": __props.versionLimit?.limit !== void 0,
453
- "is-version-limit-exceeded": isVersionLimitExceeded.value,
454
- onSelect: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("select", unref(CURRENT_STATE_VERSION))),
455
- onCreateVersion: _cache[1] || (_cache[1] = ($event) => _ctx.$emit("create")),
456
- onDiscard: _cache[2] || (_cache[2] = ($event) => _ctx.$emit("discardCurrentState"))
457
- }, null, 8, ["current-savepoint", "is-selected", "has-edit-capability", "has-previous-version", "has-version-limit", "is-version-limit-exceeded"])) : createCommentVNode("", true),
458
- (openBlock(true), createElementBlock(Fragment, null, renderList(__props.versionHistory, (historyEvent, index) => {
459
- return openBlock(), createBlock(VersionItem, {
460
- key: historyEvent.version,
461
- version: historyEvent,
462
- "is-selected": historyEvent.version === __props.currentVersion,
463
- "has-admin-rights": __props.hasAdminRights,
464
- "has-edit-capability": __props.hasEditCapability,
465
- "is-first-item": !__props.unversionedSavepoint && index === 0,
466
- "is-last-item": index === __props.versionHistory.length - 1 && __props.versionLimit?.limit === void 0,
467
- onDelete: ($event) => _ctx.$emit("delete", historyEvent.version),
468
- onRestore: ($event) => _ctx.$emit("restore", historyEvent.version),
469
- onSelect: ($event) => _ctx.$emit("select", $event ? historyEvent.version : unref(CURRENT_STATE_VERSION))
470
- }, null, 8, ["version", "is-selected", "has-admin-rights", "has-edit-capability", "is-first-item", "is-last-item", "onDelete", "onRestore", "onSelect"]);
471
- }), 128)),
472
- __props.versionLimit?.limit !== void 0 ? (openBlock(), createBlock(VersionLimitInfo, {
473
- key: 1,
474
- class: "version-limit-info",
475
- "version-limit": {
476
- limit: __props.versionLimit.limit,
477
- currentUsage: __props.versionLimit.currentUsage
478
- },
479
- "upgrade-url": __props.upgradeUrl,
480
- "is-private": __props.isPrivate
481
- }, null, 8, ["version-limit", "upgrade-url", "is-private"])) : createCommentVNode("", true),
482
- !__props.hasLoadedAllVersions ? (openBlock(), createBlock(unref(KdsButton), {
483
- key: 2,
484
- variant: "transparent",
485
- disabled: __props.loading,
486
- label: __props.loading ? "Loading..." : "Load all",
487
- class: "load-more-button",
488
- onClick: _cache[3] || (_cache[3] = ($event) => _ctx.$emit("loadAll"))
489
- }, null, 8, ["disabled", "label"])) : createCommentVNode("", true)
490
- ])
491
- ]),
492
- _: 1
493
- }, 8, ["headline-trailing-actions"]);
494
- };
495
- }
496
- });
497
-
498
- const VersionHistory = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-e775efff"]]);
499
-
500
- const _hoisted_1 = { class: "create-version-form-wrapper" };
501
- const _sfc_main = /* @__PURE__ */ defineComponent({
502
- __name: "CreateVersionForm",
503
- props: {
504
- isCreationPending: { type: Boolean, default: false }
505
- },
506
- emits: ["create", "cancel"],
507
- setup(__props, { emit: __emit }) {
508
- const emit = __emit;
509
- const versionName = ref("");
510
- const versionDescription = ref("");
511
- const doValidate = ref(false);
512
- const isVersionNameInvalid = computed(() => {
513
- return doValidate.value && versionName.value.trim().length <= 0;
514
- });
515
- const hasUnsavedChanges = computed(() => {
516
- return versionName.value !== "" || versionDescription.value !== "";
517
- });
518
- const onCreate = async () => {
519
- doValidate.value = true;
520
- await nextTick();
521
- if (!isVersionNameInvalid.value) {
522
- emit("create", {
523
- name: versionName.value.trim(),
524
- description: versionDescription.value
525
- });
526
- }
527
- };
528
- const headlineTrailingActions = computed(
529
- () => [
530
- {
531
- type: "button",
532
- props: {
533
- leadingIcon: "x-close",
534
- ariaLabel: "Close",
535
- variant: "transparent"
536
- },
537
- onClick: () => emit("cancel", hasUnsavedChanges.value)
538
- }
539
- ]
540
- );
541
- const footerLeadingActions = computed(() => [
542
- {
543
- type: "button",
544
- props: {
545
- label: "Cancel",
546
- variant: "outlined"
547
- },
548
- onClick: () => emit("cancel", hasUnsavedChanges.value)
549
- }
550
- ]);
551
- const footerTrailingActions = computed(() => [
552
- {
553
- type: "button",
554
- props: {
555
- label: "Create",
556
- variant: "filled",
557
- disabled: isVersionNameInvalid.value || __props.isCreationPending
558
- },
559
- onClick: onCreate
560
- }
561
- ]);
562
- return (_ctx, _cache) => {
563
- return openBlock(), createBlock(unref(KdsPanel), {
564
- headline: "Create version",
565
- "headline-trailing-actions": headlineTrailingActions.value,
566
- "footer-leading-actions": footerLeadingActions.value,
567
- "footer-trailing-actions": footerTrailingActions.value
568
- }, {
569
- default: withCtx(() => [
570
- createElementVNode("div", _hoisted_1, [
571
- createVNode(unref(KdsDescription), {
572
- text: "Give your version a name and description. Versions can be used to create a deployment.",
573
- class: "create-version-form-description"
574
- }),
575
- createVNode(unref(KdsTextInput), {
576
- modelValue: versionName.value,
577
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => versionName.value = $event),
578
- label: "Version name",
579
- type: "text",
580
- error: isVersionNameInvalid.value,
581
- "sub-text": isVersionNameInvalid.value ? "Please enter at least 1 character." : void 0
582
- }, null, 8, ["modelValue", "error", "sub-text"]),
583
- createVNode(unref(KdsTextarea), {
584
- modelValue: versionDescription.value,
585
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => versionDescription.value = $event),
586
- label: "Description",
587
- class: "description"
588
- }, null, 8, ["modelValue"])
589
- ])
590
- ]),
591
- _: 1
592
- }, 8, ["headline-trailing-actions", "footer-leading-actions", "footer-trailing-actions"]);
593
- };
594
- }
595
- });
596
-
597
- const CreateVersionForm = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-0c0f6ba1"]]);
16
+ var _hoisted_5 = { class: "card-wrapper" };
17
+ //#endregion
18
+ //#region src/versions/VersionHistory/HistoryEvent.vue
19
+ var HistoryEvent_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
20
+ __name: "HistoryEvent",
21
+ props: {
22
+ isSelected: { type: Boolean },
23
+ isFirstItem: { type: Boolean },
24
+ isLastItem: { type: Boolean }
25
+ },
26
+ setup(__props) {
27
+ return (_ctx, _cache) => {
28
+ return openBlock(), createElementBlock("div", _hoisted_1$8, [createElementVNode("div", _hoisted_2$4, [
29
+ !__props.isFirstItem ? (openBlock(), createElementBlock("div", _hoisted_3)) : createCommentVNode("", true),
30
+ createVNode(unref(KdsIcon), {
31
+ class: "history-event-icon",
32
+ name: __props.isSelected ? "circle-success" : "circle-unchecked",
33
+ size: "small"
34
+ }, null, 8, ["name"]),
35
+ !__props.isLastItem ? (openBlock(), createElementBlock("div", _hoisted_4)) : createCommentVNode("", true)
36
+ ]), createElementVNode("div", _hoisted_5, [renderSlot(_ctx.$slots, "default", {}, void 0, true)])]);
37
+ };
38
+ }
39
+ }), [["__scopeId", "data-v-249d4c97"]]);
40
+ //#endregion
41
+ //#region src/versions/VersionHistory/HistoryEventAuthor.vue?vue&type=script&setup=true&lang.ts
42
+ var _hoisted_1$7 = { class: "avatar-and-name-wrapper" };
43
+ var _hoisted_2$3 = { class: "author-name" };
44
+ //#endregion
45
+ //#region src/versions/VersionHistory/HistoryEventAuthor.vue
46
+ var HistoryEventAuthor_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
47
+ __name: "HistoryEventAuthor",
48
+ props: {
49
+ avatar: {},
50
+ author: {}
51
+ },
52
+ setup(__props) {
53
+ const nameInitials = (name) => name.split(/[., _-]/, 2).map((part) => part.charAt(0).toUpperCase()).join("");
54
+ return (_ctx, _cache) => {
55
+ return openBlock(), createElementBlock("div", _hoisted_1$7, [createVNode(unref(KdsAvatar), {
56
+ src: __props.avatar.src,
57
+ tooltip: __props.author,
58
+ initials: nameInitials(__props.author)
59
+ }, null, 8, [
60
+ "src",
61
+ "tooltip",
62
+ "initials"
63
+ ]), createElementVNode("span", _hoisted_2$3, toDisplayString(__props.author), 1)]);
64
+ };
65
+ }
66
+ }), [["__scopeId", "data-v-1a7632f7"]]);
67
+ //#endregion
68
+ //#region src/versions/VersionHistory/HistoryEventFooter.vue?vue&type=script&setup=true&lang.ts
69
+ var _hoisted_1$6 = { class: "history-event-footer" };
70
+ var _hoisted_2$2 = ["datetime"];
71
+ //#endregion
72
+ //#region src/versions/VersionHistory/HistoryEventFooter.vue
73
+ var HistoryEventFooter_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
74
+ __name: "HistoryEventFooter",
75
+ props: {
76
+ date: {},
77
+ version: {}
78
+ },
79
+ setup(__props) {
80
+ const isMounted = ref(false);
81
+ const localDateTime = computed(() => isMounted.value ? formatLocalDateTimeString(__props.date, true) : formatDateTimeString(__props.date, true));
82
+ onMounted(() => {
83
+ isMounted.value = true;
84
+ });
85
+ return (_ctx, _cache) => {
86
+ return openBlock(), createElementBlock("span", _hoisted_1$6, [
87
+ _cache[0] || (_cache[0] = createTextVNode(" Created on ", -1)),
88
+ withDirectives((openBlock(), createElementBlock("time", {
89
+ datetime: __props.date,
90
+ class: normalizeClass({ hidden: !isMounted.value })
91
+ }, [createTextVNode(toDisplayString(localDateTime.value), 1)], 10, _hoisted_2$2)), [[unref(vKdsTooltip), __props.date]]),
92
+ __props.version ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [createTextVNode("– Version " + toDisplayString(__props.version), 1)], 64)) : createCommentVNode("", true)
93
+ ]);
94
+ };
95
+ }
96
+ }), [["__scopeId", "data-v-3db3e01b"]]);
97
+ //#endregion
98
+ //#region src/versions/VersionHistory/CurrentState.vue?vue&type=script&setup=true&lang.ts
99
+ var _hoisted_1$5 = { class: "content-wrapper" };
100
+ //#endregion
101
+ //#region src/versions/VersionHistory/CurrentState.vue
102
+ var CurrentState_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
103
+ __name: "CurrentState",
104
+ props: {
105
+ currentSavepoint: {},
106
+ isSelected: { type: Boolean },
107
+ hasEditCapability: { type: Boolean },
108
+ hasPreviousVersion: { type: Boolean },
109
+ hasVersionLimit: { type: Boolean },
110
+ isVersionLimitExceeded: { type: Boolean }
111
+ },
112
+ emits: [
113
+ "createVersion",
114
+ "discard",
115
+ "select"
116
+ ],
117
+ setup(__props, { emit: __emit }) {
118
+ const props = __props;
119
+ const emit = __emit;
120
+ const menuItems = computed(() => props.hasEditCapability && props.hasPreviousVersion ? [{
121
+ id: "discard",
122
+ text: "Discard",
123
+ handler: () => emit("discard")
124
+ }] : []);
125
+ return (_ctx, _cache) => {
126
+ return openBlock(), createBlock(HistoryEvent_default, {
127
+ "is-selected": __props.isSelected,
128
+ "is-first-item": "",
129
+ "is-last-item": !__props.hasPreviousVersion && !__props.hasVersionLimit
130
+ }, {
131
+ default: withCtx(() => [createVNode(unref(KdsSelectableCard), {
132
+ "model-value": __props.isSelected,
133
+ headline: "Draft",
134
+ ariaLabel: "Savepoint history event",
135
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => !__props.isSelected && _ctx.$emit("select"))
136
+ }, createSlots({
137
+ default: withCtx(() => [createElementVNode("div", _hoisted_1$5, [createVNode(HistoryEventAuthor_default, {
138
+ author: __props.currentSavepoint.author,
139
+ avatar: __props.currentSavepoint.avatar
140
+ }, null, 8, ["author", "avatar"]), createVNode(HistoryEventFooter_default, { date: __props.currentSavepoint.lastEditedOn }, null, 8, ["date"])])]),
141
+ _: 2
142
+ }, [menuItems.value.length ? {
143
+ name: "header-actions",
144
+ fn: withCtx(() => [createVNode(unref(KdsMenuButton), {
145
+ items: menuItems.value,
146
+ variant: "transparent",
147
+ "leading-icon": "more-actions",
148
+ ariaLabel: "More actions"
149
+ }, null, 8, ["items"])]),
150
+ key: "0"
151
+ } : void 0]), 1032, ["model-value"]), __props.hasEditCapability && !__props.isVersionLimitExceeded ? (openBlock(), createBlock(unref(KdsButton), {
152
+ key: 0,
153
+ label: "Create version",
154
+ onClick: _cache[1] || (_cache[1] = withModifiers(($event) => _ctx.$emit("createVersion"), ["stop"]))
155
+ })) : createCommentVNode("", true)]),
156
+ _: 1
157
+ }, 8, ["is-selected", "is-last-item"]);
158
+ };
159
+ }
160
+ }), [["__scopeId", "data-v-a6a58c85"]]);
161
+ //#endregion
162
+ //#region src/versions/VersionHistory/VersionLabel.vue?vue&type=script&setup=true&lang.ts
163
+ var _hoisted_1$4 = { class: "label-popover-container" };
164
+ var _hoisted_2$1 = { class: "label-title" };
165
+ //#endregion
166
+ //#region src/versions/VersionHistory/VersionLabel.vue
167
+ var VersionLabel_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
168
+ __name: "VersionLabel",
169
+ props: /*@__PURE__*/ mergeModels({ label: {} }, {
170
+ "modelValue": {
171
+ type: Boolean,
172
+ default: false
173
+ },
174
+ "modelModifiers": {}
175
+ }),
176
+ emits: ["update:modelValue"],
177
+ setup(__props) {
178
+ const isPopoverOpen = useModel(__props, "modelValue");
179
+ const popoverEl = useTemplateRef("popover");
180
+ return (_ctx, _cache) => {
181
+ return openBlock(), createElementBlock(Fragment, null, [createVNode(unref(KdsToggleButton), {
182
+ modelValue: isPopoverOpen.value,
183
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isPopoverOpen.value = $event),
184
+ "data-kds-card-secondary-action": "",
185
+ label: __props.label.label.name,
186
+ "aria-haspopup": "dialog",
187
+ "aria-expanded": isPopoverOpen.value,
188
+ "aria-controls": popoverEl.value?.popoverId,
189
+ size: "xsmall",
190
+ style: normalizeStyle(popoverEl.value?.anchorStyle)
191
+ }, null, 8, [
192
+ "modelValue",
193
+ "label",
194
+ "aria-expanded",
195
+ "aria-controls",
196
+ "style"
197
+ ]), createVNode(unref(KdsPopover), {
198
+ ref: "popover",
199
+ modelValue: isPopoverOpen.value,
200
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => isPopoverOpen.value = $event),
201
+ placement: "bottom-left",
202
+ role: "dialog",
203
+ "aria-label": "Label details"
204
+ }, {
205
+ default: withCtx(() => [createElementVNode("div", _hoisted_1$4, [
206
+ createElementVNode("div", _hoisted_2$1, toDisplayString(__props.label.label.name), 1),
207
+ createVNode(unref(KdsDescription), { text: __props.label.label.description }, null, 8, ["text"]),
208
+ __props.label.message ? (openBlock(), createBlock(unref(KdsDescription), {
209
+ key: 0,
210
+ text: __props.label.message
211
+ }, null, 8, ["text"])) : createCommentVNode("", true)
212
+ ])]),
213
+ _: 1
214
+ }, 8, ["modelValue"])], 64);
215
+ };
216
+ }
217
+ }), [["__scopeId", "data-v-00d7133a"]]);
218
+ //#endregion
219
+ //#region src/versions/VersionHistory/VersionItem.vue?vue&type=script&setup=true&lang.ts
220
+ var _hoisted_1$3 = { class: "content-wrapper" };
221
+ var _hoisted_2 = { class: "labels-wrapper" };
222
+ //#endregion
223
+ //#region src/versions/VersionHistory/VersionItem.vue
224
+ var VersionItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
225
+ __name: "VersionItem",
226
+ props: {
227
+ version: {},
228
+ isSelected: { type: Boolean },
229
+ hasAdminRights: { type: Boolean },
230
+ hasEditCapability: { type: Boolean },
231
+ isFirstItem: { type: Boolean },
232
+ isLastItem: { type: Boolean }
233
+ },
234
+ emits: [
235
+ "select",
236
+ "delete",
237
+ "restore"
238
+ ],
239
+ setup(__props, { emit: __emit }) {
240
+ const props = __props;
241
+ const emit = __emit;
242
+ const toggleVersionSelection = () => {
243
+ emit("select", !props.isSelected);
244
+ };
245
+ const menuItems = computed(() => [
246
+ props.hasEditCapability && {
247
+ id: "show",
248
+ text: props.isSelected ? "Deselect this version" : "Show this version",
249
+ handler: toggleVersionSelection
250
+ },
251
+ props.hasEditCapability && {
252
+ id: "restore",
253
+ text: "Restore this version",
254
+ handler: () => emit("restore")
255
+ },
256
+ props.hasAdminRights && {
257
+ id: "delete",
258
+ text: "Delete this version",
259
+ handler: () => emit("delete")
260
+ }
261
+ ].filter((i) => i !== false));
262
+ return (_ctx, _cache) => {
263
+ return openBlock(), createBlock(HistoryEvent_default, {
264
+ "is-selected": __props.isSelected,
265
+ "is-first-item": __props.isFirstItem,
266
+ "is-last-item": __props.isLastItem
267
+ }, {
268
+ default: withCtx(() => [createVNode(unref(KdsSelectableCard), {
269
+ "model-value": __props.isSelected,
270
+ headline: __props.version.title,
271
+ ariaLabel: "Version history event",
272
+ "onUpdate:modelValue": toggleVersionSelection
273
+ }, createSlots({
274
+ default: withCtx(() => [createElementVNode("div", _hoisted_1$3, [
275
+ createVNode(HistoryEventAuthor_default, {
276
+ author: __props.version.author,
277
+ avatar: __props.version.avatar
278
+ }, null, 8, ["author", "avatar"]),
279
+ __props.version.description ? (openBlock(), createBlock(unref(KdsDescription), {
280
+ key: 0,
281
+ text: __props.version.description
282
+ }, null, 8, ["text"])) : createCommentVNode("", true),
283
+ createElementVNode("div", _hoisted_2, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.version.labels, (label) => {
284
+ return openBlock(), createBlock(VersionLabel_default, {
285
+ key: label.labelId,
286
+ label
287
+ }, null, 8, ["label"]);
288
+ }), 128))]),
289
+ createVNode(HistoryEventFooter_default, {
290
+ version: __props.version.version,
291
+ date: __props.version.createdOn
292
+ }, null, 8, ["version", "date"])
293
+ ])]),
294
+ _: 2
295
+ }, [menuItems.value.length ? {
296
+ name: "header-actions",
297
+ fn: withCtx(() => [createVNode(unref(KdsMenuButton), {
298
+ items: menuItems.value,
299
+ variant: "transparent",
300
+ "leading-icon": "more-actions",
301
+ ariaLabel: "More actions"
302
+ }, null, 8, ["items"])]),
303
+ key: "0"
304
+ } : void 0]), 1032, ["model-value", "headline"])]),
305
+ _: 1
306
+ }, 8, [
307
+ "is-selected",
308
+ "is-first-item",
309
+ "is-last-item"
310
+ ]);
311
+ };
312
+ }
313
+ }), [["__scopeId", "data-v-9cf889d1"]]);
314
+ //#endregion
315
+ //#region src/versions/VersionHistory/VersionLimitInfo.vue?vue&type=script&setup=true&lang.ts
316
+ var _hoisted_1$2 = { class: "content-wrapper" };
317
+ //#endregion
318
+ //#region src/versions/VersionHistory/VersionLimitInfo.vue
319
+ var VersionLimitInfo_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
320
+ __name: "VersionLimitInfo",
321
+ props: {
322
+ versionLimit: {},
323
+ upgradeUrl: { default: () => void 0 },
324
+ isPrivate: {
325
+ type: Boolean,
326
+ default: false
327
+ }
328
+ },
329
+ setup(__props) {
330
+ const isLimitReached = computed(() => __props.versionLimit.currentUsage >= __props.versionLimit.limit);
331
+ const headline = computed(() => {
332
+ if (isLimitReached.value) return `You've reached the maximum of ${__props.versionLimit.limit} versions.`;
333
+ else return `Using ${__props.versionLimit.currentUsage} of ${__props.versionLimit.limit} versions.`;
334
+ });
335
+ return (_ctx, _cache) => {
336
+ return openBlock(), createBlock(HistoryEvent_default, {
337
+ "is-selected": false,
338
+ "is-first-item": false,
339
+ "is-last-item": ""
340
+ }, {
341
+ default: withCtx(() => [createVNode(unref(KdsCard), {
342
+ variant: "filled",
343
+ headline: headline.value
344
+ }, createSlots({
345
+ default: withCtx(() => [createElementVNode("div", _hoisted_1$2, [createVNode(unref(KdsDescription), { text: `Upgrade to use unlimited versions${__props.isPrivate ? " for private items." : "."}` }, null, 8, ["text"])])]),
346
+ _: 2
347
+ }, [__props.upgradeUrl ? {
348
+ name: "header-actions",
349
+ fn: withCtx(() => [createVNode(unref(KdsLinkButton), {
350
+ label: "Upgrade",
351
+ to: __props.upgradeUrl
352
+ }, null, 8, ["to"])]),
353
+ key: "0"
354
+ } : void 0]), 1032, ["headline"])]),
355
+ _: 1
356
+ });
357
+ };
358
+ }
359
+ }), [["__scopeId", "data-v-0a98c542"]]);
360
+ //#endregion
361
+ //#region src/versions/VersionHistory/constants.ts
362
+ var VERSION_DEFAULT_LIMIT = 10;
363
+ var CURRENT_STATE_VERSION = "current-state";
364
+ var MOST_RECENT_VERSION = "most-recent";
365
+ //#endregion
366
+ //#region src/versions/VersionHistory/VersionHistory.vue?vue&type=script&setup=true&lang.ts
367
+ var _hoisted_1$1 = { class: "version-history-wrapper" };
368
+ //#endregion
369
+ //#region src/versions/VersionHistory/VersionHistory.vue
370
+ var VersionHistory_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
371
+ __name: "VersionHistory",
372
+ props: {
373
+ hasUnversionedChanges: { type: Boolean },
374
+ unversionedSavepoint: {},
375
+ currentVersion: {},
376
+ versionHistory: {},
377
+ loading: { type: Boolean },
378
+ hasLoadedAllVersions: { type: Boolean },
379
+ hasAdminRights: { type: Boolean },
380
+ hasEditCapability: { type: Boolean },
381
+ versionLimit: {},
382
+ upgradeUrl: {},
383
+ isPrivate: { type: Boolean }
384
+ },
385
+ emits: [
386
+ "close",
387
+ "loadAll",
388
+ "create",
389
+ "delete",
390
+ "restore",
391
+ "select",
392
+ "discardCurrentState"
393
+ ],
394
+ setup(__props, { emit: __emit }) {
395
+ const props = __props;
396
+ const emit = __emit;
397
+ const isVersionLimitExceeded = computed(() => {
398
+ return props.versionLimit?.limit !== void 0 && props.versionLimit.currentUsage >= props.versionLimit.limit;
399
+ });
400
+ const headlineTrailingActions = computed(() => [{
401
+ type: "button",
402
+ props: {
403
+ leadingIcon: "x-close",
404
+ ariaLabel: "Close",
405
+ variant: "transparent"
406
+ },
407
+ onClick: () => emit("close")
408
+ }]);
409
+ return (_ctx, _cache) => {
410
+ return openBlock(), createBlock(unref(KdsPanel), {
411
+ headline: "Version history",
412
+ "headline-trailing-actions": headlineTrailingActions.value
413
+ }, {
414
+ default: withCtx(() => [createElementVNode("div", _hoisted_1$1, [
415
+ __props.unversionedSavepoint ? (openBlock(), createBlock(CurrentState_default, {
416
+ key: 0,
417
+ "current-savepoint": __props.unversionedSavepoint,
418
+ "is-selected": __props.currentVersion === unref(CURRENT_STATE_VERSION),
419
+ "has-edit-capability": __props.hasEditCapability,
420
+ "has-previous-version": __props.versionHistory.length > 0,
421
+ "has-version-limit": __props.versionLimit?.limit !== void 0,
422
+ "is-version-limit-exceeded": isVersionLimitExceeded.value,
423
+ onSelect: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("select", unref("current-state"))),
424
+ onCreateVersion: _cache[1] || (_cache[1] = ($event) => _ctx.$emit("create")),
425
+ onDiscard: _cache[2] || (_cache[2] = ($event) => _ctx.$emit("discardCurrentState"))
426
+ }, null, 8, [
427
+ "current-savepoint",
428
+ "is-selected",
429
+ "has-edit-capability",
430
+ "has-previous-version",
431
+ "has-version-limit",
432
+ "is-version-limit-exceeded"
433
+ ])) : createCommentVNode("", true),
434
+ (openBlock(true), createElementBlock(Fragment, null, renderList(__props.versionHistory, (historyEvent, index) => {
435
+ return openBlock(), createBlock(VersionItem_default, {
436
+ key: historyEvent.version,
437
+ version: historyEvent,
438
+ "is-selected": historyEvent.version === __props.currentVersion,
439
+ "has-admin-rights": __props.hasAdminRights,
440
+ "has-edit-capability": __props.hasEditCapability,
441
+ "is-first-item": !__props.unversionedSavepoint && index === 0,
442
+ "is-last-item": index === __props.versionHistory.length - 1 && __props.versionLimit?.limit === void 0,
443
+ onDelete: ($event) => _ctx.$emit("delete", historyEvent.version),
444
+ onRestore: ($event) => _ctx.$emit("restore", historyEvent.version),
445
+ onSelect: ($event) => _ctx.$emit("select", $event ? historyEvent.version : unref(CURRENT_STATE_VERSION))
446
+ }, null, 8, [
447
+ "version",
448
+ "is-selected",
449
+ "has-admin-rights",
450
+ "has-edit-capability",
451
+ "is-first-item",
452
+ "is-last-item",
453
+ "onDelete",
454
+ "onRestore",
455
+ "onSelect"
456
+ ]);
457
+ }), 128)),
458
+ __props.versionLimit?.limit !== void 0 ? (openBlock(), createBlock(VersionLimitInfo_default, {
459
+ key: 1,
460
+ class: "version-limit-info",
461
+ "version-limit": {
462
+ limit: __props.versionLimit.limit,
463
+ currentUsage: __props.versionLimit.currentUsage
464
+ },
465
+ "upgrade-url": __props.upgradeUrl,
466
+ "is-private": __props.isPrivate
467
+ }, null, 8, [
468
+ "version-limit",
469
+ "upgrade-url",
470
+ "is-private"
471
+ ])) : createCommentVNode("", true),
472
+ !__props.hasLoadedAllVersions ? (openBlock(), createBlock(unref(KdsButton), {
473
+ key: 2,
474
+ variant: "transparent",
475
+ disabled: __props.loading,
476
+ label: __props.loading ? "Loading..." : "Load all",
477
+ class: "load-more-button",
478
+ onClick: _cache[3] || (_cache[3] = ($event) => _ctx.$emit("loadAll"))
479
+ }, null, 8, ["disabled", "label"])) : createCommentVNode("", true)
480
+ ])]),
481
+ _: 1
482
+ }, 8, ["headline-trailing-actions"]);
483
+ };
484
+ }
485
+ }), [["__scopeId", "data-v-e775efff"]]);
486
+ //#endregion
487
+ //#region src/versions/CreateVersionForm/CreateVersionForm.vue?vue&type=script&setup=true&lang.ts
488
+ var _hoisted_1 = { class: "create-version-form-wrapper" };
489
+ //#endregion
490
+ //#region src/versions/CreateVersionForm/CreateVersionForm.vue
491
+ var CreateVersionForm_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
492
+ __name: "CreateVersionForm",
493
+ props: { isCreationPending: {
494
+ type: Boolean,
495
+ default: false
496
+ } },
497
+ emits: ["create", "cancel"],
498
+ setup(__props, { emit: __emit }) {
499
+ const emit = __emit;
500
+ const versionName = ref("");
501
+ const versionDescription = ref("");
502
+ const doValidate = ref(false);
503
+ const isVersionNameInvalid = computed(() => {
504
+ return doValidate.value && versionName.value.trim().length <= 0;
505
+ });
506
+ const hasUnsavedChanges = computed(() => {
507
+ return versionName.value !== "" || versionDescription.value !== "";
508
+ });
509
+ const onCreate = async () => {
510
+ doValidate.value = true;
511
+ await nextTick();
512
+ if (!isVersionNameInvalid.value) emit("create", {
513
+ name: versionName.value.trim(),
514
+ description: versionDescription.value
515
+ });
516
+ };
517
+ const headlineTrailingActions = computed(() => [{
518
+ type: "button",
519
+ props: {
520
+ leadingIcon: "x-close",
521
+ ariaLabel: "Close",
522
+ variant: "transparent"
523
+ },
524
+ onClick: () => emit("cancel", hasUnsavedChanges.value)
525
+ }]);
526
+ const footerLeadingActions = computed(() => [{
527
+ type: "button",
528
+ props: {
529
+ label: "Cancel",
530
+ variant: "outlined"
531
+ },
532
+ onClick: () => emit("cancel", hasUnsavedChanges.value)
533
+ }]);
534
+ const footerTrailingActions = computed(() => [{
535
+ type: "button",
536
+ props: {
537
+ label: "Create",
538
+ variant: "filled",
539
+ disabled: isVersionNameInvalid.value || __props.isCreationPending
540
+ },
541
+ onClick: onCreate
542
+ }]);
543
+ return (_ctx, _cache) => {
544
+ return openBlock(), createBlock(unref(KdsPanel), {
545
+ headline: "Create version",
546
+ "headline-trailing-actions": headlineTrailingActions.value,
547
+ "footer-leading-actions": footerLeadingActions.value,
548
+ "footer-trailing-actions": footerTrailingActions.value
549
+ }, {
550
+ default: withCtx(() => [createElementVNode("div", _hoisted_1, [
551
+ createVNode(unref(KdsDescription), {
552
+ text: "Give your version a name and description. Versions can be used to create a deployment.",
553
+ class: "create-version-form-description"
554
+ }),
555
+ createVNode(unref(KdsTextInput), {
556
+ modelValue: versionName.value,
557
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => versionName.value = $event),
558
+ label: "Version name",
559
+ type: "text",
560
+ error: isVersionNameInvalid.value,
561
+ "sub-text": isVersionNameInvalid.value ? "Please enter at least 1 character." : void 0
562
+ }, null, 8, [
563
+ "modelValue",
564
+ "error",
565
+ "sub-text"
566
+ ]),
567
+ createVNode(unref(KdsTextarea), {
568
+ modelValue: versionDescription.value,
569
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => versionDescription.value = $event),
570
+ label: "Description",
571
+ class: "description"
572
+ }, null, 8, ["modelValue"])
573
+ ])]),
574
+ _: 1
575
+ }, 8, [
576
+ "headline-trailing-actions",
577
+ "footer-leading-actions",
578
+ "footer-trailing-actions"
579
+ ]);
580
+ };
581
+ }
582
+ }), [["__scopeId", "data-v-0c0f6ba1"]]);
583
+ //#endregion
584
+ export { CURRENT_STATE_VERSION, CreateVersionForm_default as CreateVersionForm, MOST_RECENT_VERSION, VERSION_DEFAULT_LIMIT, VersionHistory_default as VersionHistory };
598
585
 
599
- export { CURRENT_STATE_VERSION, CreateVersionForm, MOST_RECENT_VERSION, VERSION_DEFAULT_LIMIT, VersionHistory };
600
- //# sourceMappingURL=versions.js.map
586
+ //# sourceMappingURL=versions.js.map