@knime/jsonforms 1.14.3 → 1.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/AnyOfTwinlist-BmHETHvW.js +28 -0
  3. package/dist/{Button-BxuGKyL5.js → Button-B9RSLVI2.js} +9 -8
  4. package/dist/CheckboxControl-q88fZSZD.js +58 -0
  5. package/dist/Checkboxes-Bofcg7tl.js +120 -0
  6. package/dist/CheckboxesControl-DY0R1PDD.js +47 -0
  7. package/dist/{ComboBoxControl-Dk02x7sN.js → ComboBoxControl-2r1FWcy-.js} +238 -172
  8. package/dist/DateControl-vnkppn62.js +38 -0
  9. package/dist/DateTimeControl-MkF9G3Xz.js +53 -0
  10. package/dist/DateTimeFormatInput-Ds2VLXw1.js +426 -0
  11. package/dist/DateTimeFormatPickerControl-D3OjZCj7.js +47 -0
  12. package/dist/DateTimeFormatPickerWithTypeControl-DDto-oJk.js +85 -0
  13. package/dist/DateTimeInput-DcwhvMD2.js +11321 -0
  14. package/dist/Dropdown-D49sEHBa.js +663 -0
  15. package/dist/DropdownControl-aeEqC-Yg.js +46 -0
  16. package/dist/HorizontalLayout-D0toQmVl.js +39 -0
  17. package/dist/{InputField-BYxW_-G3.js → InputField-C_aZPs-f.js} +48 -36
  18. package/dist/IntegerControl-DAwniqjW.js +33 -0
  19. package/dist/IntervalControl-Bkuhg0Ga.js +647 -0
  20. package/dist/LoadingDropdown-B9jHjdWV.js +50 -0
  21. package/dist/LoadingIcon-RPBUjTO3.js +23 -0
  22. package/dist/ManualTwinlistControl-DGW-7a2Q.js +90 -0
  23. package/dist/MultiSelectListBoxControl-BYHuC9jL.js +48 -0
  24. package/dist/MultimodeTwinlistControl-oIvgI_FP.js +486 -0
  25. package/dist/{MultimodeTwinlistControl.vue_vue_type_style_index_0_scoped_37fe7036_lang-DGKMWtLi.js → MultimodeTwinlistControl.vue_vue_type_style_index_0_scoped_bd2eaa56_lang-pnMOUiIt.js} +1 -1
  26. package/dist/{MultiselectListBox-CHvGxAhY.js → MultiselectListBox-CfdPbcn1.js} +105 -86
  27. package/dist/NameFilter-BV68t_P5.js +37 -0
  28. package/dist/NumberControl-Dm01CJW9.js +33 -0
  29. package/dist/NumberControlBase-CN5eTKEm.js +58 -0
  30. package/dist/{NumberInput-DJ38AGiR.js → NumberInput-DWTImcA_.js} +72 -54
  31. package/dist/OneOfDropdown-DuXXP0Qn.js +50 -0
  32. package/dist/RadioControl-X6HLs9F1.js +36 -0
  33. package/dist/RadioControlBase-BGUHTIUl.js +111 -0
  34. package/dist/{RichTextControl-CXY1ULxR.js → RichTextControl-B1mJMs1e.js} +5462 -4668
  35. package/dist/SectionHeading-B6JkPyMh.js +31 -0
  36. package/dist/SectionHeading.vue_vue_type_style_index_0_scoped_f06e9b7d_lang-B5ALSUVO.js +15603 -0
  37. package/dist/SectionLayout-7pXn4OHo.js +61 -0
  38. package/dist/SettingsSubPanel-DToMRoLu.js +48 -0
  39. package/dist/SettingsSubPanelLayout-DnZnghFr.js +83 -0
  40. package/dist/SimpleButtonControl-DOSd92Kq.js +84 -0
  41. package/dist/SimpleTwinlistControl-RBfQTk47.js +31 -0
  42. package/dist/SingleSelectControl-C-GLQD-a.js +73 -0
  43. package/dist/SingleSelectListBoxControl-CDg_1QUT.js +260 -0
  44. package/dist/SortListControl-CWuxKIEb.js +445 -0
  45. package/dist/StyledListItem-NqAG7jSw.js +81 -0
  46. package/dist/TextAreaControl-Dt5ZGrae.js +122 -0
  47. package/dist/TextControl-w9vrCC1T.js +54 -0
  48. package/dist/TimeControl-DiNQSV4K.js +46 -0
  49. package/dist/TwinlistControlBase-CMFEecdr.js +47 -0
  50. package/dist/TwinlistLoadingInfo-Cy6HY-97.js +1080 -0
  51. package/dist/TypedStringFilter-FUF8sqOm.js +32 -0
  52. package/dist/ValueSwitch-Ozmr1YfK.js +162 -0
  53. package/dist/ValueSwitchControl-CdFlHo-2.js +33 -0
  54. package/dist/VerticalLayout-DY8gbasK.js +39 -0
  55. package/dist/VerticalLayoutBase-CpN-KONq.js +32 -0
  56. package/dist/ZonedDateTimeControl-Cg3dAfq5.js +79 -0
  57. package/dist/{_baseEach-cjHvi5iT.js → _baseEach-CWap1NWh.js} +4 -4
  58. package/dist/{_baseIteratee-CIxt0KWU.js → _baseIteratee-D0MXvnuf.js} +27 -27
  59. package/dist/{_getTag-sLUyzSDj.js → _getTag-BvpAzjaz.js} +10 -10
  60. package/dist/{arrow-dropdown-DdgjzLAO.js → arrow-dropdown-eS-nVNCv.js} +9 -3
  61. package/dist/{arrow-next-CIOU5o42.js → arrow-next-BmOStWql.js} +9 -3
  62. package/dist/{close-BuY4mhXV.js → close-0dYG2oDA.js} +9 -3
  63. package/dist/floating-ui.vue-CDo9Kas1.js +1055 -0
  64. package/dist/{hotkeys-kwHHtFKz.js → hotkeys-rxnt4egK.js} +1 -1
  65. package/dist/index-CpKfM262.js +376 -0
  66. package/dist/knime-jsonforms.css +1 -1
  67. package/dist/knime-jsonforms.js +133 -110
  68. package/dist/{localTimeUtils-Dv-1R88J.js → localTimeUtils-CfchSrLG.js} +179 -181
  69. package/dist/magic-string.es-BQ9KnLz-.js +659 -0
  70. package/dist/navigator-e30QQMkl.js +4 -0
  71. package/dist/popper-LGjf7Wza.js +905 -0
  72. package/dist/reload-57Xc2t-6.js +23 -0
  73. package/dist/src/higherOrderComponents/control/LabeledControl.vue.d.ts +26 -22
  74. package/dist/src/higherOrderComponents/control/errorMessage/ErrorLine.vue.d.ts +3 -4
  75. package/dist/src/higherOrderComponents/control/errorMessage/ErrorMessages.vue.d.ts +16 -10
  76. package/dist/src/higherOrderComponents/control/errorMessage/withErrorMessage.d.ts +1 -1
  77. package/dist/src/higherOrderComponents/control/util.d.ts +7 -33
  78. package/dist/src/higherOrderComponents/layout/util.d.ts +1 -17
  79. package/dist/src/layoutComponents/Form.vue.d.ts +12 -4
  80. package/dist/src/layoutComponents/HorizontalLayout.vue.d.ts +1 -1
  81. package/dist/src/layoutComponents/SectionLayout.vue.d.ts +13 -5
  82. package/dist/src/layoutComponents/VerticalLayout.vue.d.ts +1 -1
  83. package/dist/src/layoutComponents/VerticalLayoutBase.vue.d.ts +16 -9
  84. package/dist/src/layoutComponents/section/SectionHeading.vue.d.ts +13 -6
  85. package/dist/src/layoutComponents/settingsSubPanel/SettingsSubPanel.vue.d.ts +2 -2
  86. package/dist/src/layoutComponents/settingsSubPanel/SettingsSubPanelBackArrow.vue.d.ts +1 -1
  87. package/dist/src/renderers/dateTimeFormatPickerRenderer.d.ts +2 -2
  88. package/dist/src/renderers/defaultRenderers.d.ts +966 -151
  89. package/dist/src/renderers/dropdownRenderer.d.ts +1 -1
  90. package/dist/src/renderers/fallbackRenderers.d.ts +8 -8
  91. package/dist/src/renderers/horizontalLayoutRenderer.d.ts +1 -1
  92. package/dist/src/renderers/sectionLayoutRenderer.d.ts +4 -4
  93. package/dist/src/renderers/simpleButtonRenderer.d.ts +7 -89
  94. package/dist/src/renderers/sortListRenderer.d.ts +853 -20
  95. package/dist/src/renderers/textMessageRenderer.d.ts +65 -1
  96. package/dist/src/renderers/textRenderer.d.ts +1 -1
  97. package/dist/src/renderers/verticalLayoutRenderer.d.ts +2 -2
  98. package/dist/src/renderers/zonedDateTimeRenderer.d.ts +1 -1
  99. package/dist/src/uiComponents/CheckboxControl.vue.d.ts +15 -6
  100. package/dist/src/uiComponents/CheckboxesControl.vue.d.ts +2 -1
  101. package/dist/src/uiComponents/ComboBoxControl.vue.d.ts +2 -1
  102. package/dist/src/uiComponents/DateControl.vue.d.ts +2 -1
  103. package/dist/src/uiComponents/DateTimeControl.vue.d.ts +2 -1
  104. package/dist/src/uiComponents/DateTimeFormatPickerControl.vue.d.ts +2 -1
  105. package/dist/src/uiComponents/DateTimeFormatPickerWithTypeControl.vue.d.ts +2 -1
  106. package/dist/src/uiComponents/DropdownControl.vue.d.ts +2 -1
  107. package/dist/src/uiComponents/IntegerControl.vue.d.ts +2 -1
  108. package/dist/src/uiComponents/IntervalControl.vue.d.ts +2 -1
  109. package/dist/src/uiComponents/MultiSelectListBoxControl.vue.d.ts +2 -1
  110. package/dist/src/uiComponents/NumberControl.vue.d.ts +2 -1
  111. package/dist/src/uiComponents/NumberControlBase.vue.d.ts +5 -9
  112. package/dist/src/uiComponents/OneOfDropdown.vue.d.ts +2 -1
  113. package/dist/src/uiComponents/RadioControl.vue.d.ts +2 -1
  114. package/dist/src/uiComponents/RadioControlBase.vue.d.ts +4 -8
  115. package/dist/src/uiComponents/SimpleButtonControl.vue.d.ts +5 -129
  116. package/dist/src/uiComponents/SingleSelectControl.vue.d.ts +2 -1
  117. package/dist/src/uiComponents/SingleSelectListBoxControl.vue.d.ts +2 -1
  118. package/dist/src/uiComponents/SortListControl.vue.d.ts +845 -12
  119. package/dist/src/uiComponents/TextAreaControl.vue.d.ts +2 -1
  120. package/dist/src/uiComponents/TextControl.vue.d.ts +203 -3
  121. package/dist/src/uiComponents/TextMessageControl.vue.d.ts +2 -1
  122. package/dist/src/uiComponents/TimeControl.vue.d.ts +2 -1
  123. package/dist/src/uiComponents/ValueSwitchControl.vue.d.ts +2 -1
  124. package/dist/src/uiComponents/ZonedDateTimeControl.vue.d.ts +2 -1
  125. package/dist/src/uiComponents/composables/useProvidedState.d.ts +1 -1
  126. package/dist/src/uiComponents/loading/TwinlistLoadingInfo.vue.d.ts +1 -1
  127. package/dist/src/uiComponents/richTextControl/DialogLinkModal.vue.d.ts +3 -1
  128. package/dist/src/uiComponents/richTextControl/RichTextControl.vue.d.ts +230 -1
  129. package/dist/src/uiComponents/twinlist/AnyOfTwinlist.vue.d.ts +2 -1
  130. package/dist/src/uiComponents/twinlist/ManualTwinlistControl.vue.d.ts +2 -1
  131. package/dist/src/uiComponents/twinlist/MultimodeTwinlistControl.vue.d.ts +8 -15
  132. package/dist/src/uiComponents/twinlist/NameFilter.vue.d.ts +2 -1
  133. package/dist/src/uiComponents/twinlist/SimpleTwinlistControl.vue.d.ts +2 -1
  134. package/dist/src/uiComponents/twinlist/TwinlistControlBase.vue.d.ts +5 -10
  135. package/dist/src/uiComponents/twinlist/TypedStringFilter.vue.d.ts +2 -1
  136. package/dist/testUtils/component.d.ts +18 -18
  137. package/dist/testing.js +8688 -8655
  138. package/dist/{toString-C_MqBj3_.js → toString-C-X8cE7K.js} +1 -1
  139. package/dist/{useBuiltinValidations-DP7OS71z.js → useBuiltinValidations-D0WuEacN.js} +1 -1
  140. package/dist/useDropdownNavigation-BfCXUheD.js +817 -0
  141. package/dist/usePossibleValues-DTVXBGRC.js +16 -0
  142. package/package.json +14 -14
  143. package/dist/AnyOfTwinlist-Cwxtyt0Q.js +0 -22
  144. package/dist/CheckboxControl-Oe97HhY3.js +0 -40
  145. package/dist/Checkboxes-DIPjJhPO.js +0 -103
  146. package/dist/CheckboxesControl-5QlPmjwv.js +0 -41
  147. package/dist/DateControl-CddCObVg.js +0 -29
  148. package/dist/DateTimeControl-DyXUJBHE.js +0 -54
  149. package/dist/DateTimeFormatInput-bO1zHUyp.js +0 -381
  150. package/dist/DateTimeFormatPickerControl-Dq25_JV2.js +0 -43
  151. package/dist/DateTimeFormatPickerWithTypeControl-DZib_x-B.js +0 -79
  152. package/dist/DateTimeInput-CEYEV8dt.js +0 -11204
  153. package/dist/Dropdown-CJj0CUA8.js +0 -604
  154. package/dist/DropdownControl-BNQKWzTT.js +0 -31
  155. package/dist/HorizontalLayout-6GwurgkR.js +0 -25
  156. package/dist/IntegerControl-DZIY-wb_.js +0 -20
  157. package/dist/IntervalControl-Yts36_MI.js +0 -546
  158. package/dist/LoadingDropdown-Dw-0WQ8x.js +0 -40
  159. package/dist/ManualTwinlistControl-C3NnAug1.js +0 -85
  160. package/dist/MultiSelectListBoxControl-3Q41S4aA.js +0 -34
  161. package/dist/MultimodeTwinlistControl-B2Jven29.js +0 -470
  162. package/dist/NameFilter-D0hKO5Fr.js +0 -24
  163. package/dist/NumberControl-DkeQT1iR.js +0 -20
  164. package/dist/NumberControlBase.vue_vue_type_script_setup_true_lang-B9K5qEs3.js +0 -53
  165. package/dist/OneOfDropdown-NAgE-mPP.js +0 -34
  166. package/dist/RadioControl-DjrysNQ_.js +0 -24
  167. package/dist/RadioControlBase.vue_vue_type_script_setup_true_lang-WaVJMdQq.js +0 -114
  168. package/dist/SectionHeading-BU1W5lDr.js +0 -19
  169. package/dist/SectionHeading.vue_vue_type_style_index_0_scoped_625edfbe_lang-CsYyUtDa.js +0 -14015
  170. package/dist/SectionLayout-CJP4sYyB.js +0 -46
  171. package/dist/SettingsSubPanel-KxEyzlB6.js +0 -5
  172. package/dist/SettingsSubPanelLayout-YBNVPQOD.js +0 -61
  173. package/dist/SimpleButtonControl-ejyUwJdL.js +0 -61
  174. package/dist/SimpleTwinlistControl-qXQxRI7h.js +0 -28
  175. package/dist/SingleSelectControl-B0JgDv7j.js +0 -58
  176. package/dist/SingleSelectListBoxControl-ClQOxnxW.js +0 -235
  177. package/dist/SortListControl-mvJofiWn.js +0 -375
  178. package/dist/StyledListItem-BXz08pEQ.js +0 -72
  179. package/dist/TextAreaControl-S4aoqAv1.js +0 -111
  180. package/dist/TextControl-rJrjrBw8.js +0 -4
  181. package/dist/TextControl.vue_vue_type_script_setup_true_lang-Bf6GB1zX.js +0 -50
  182. package/dist/TimeControl-DfhE8yu9.js +0 -42
  183. package/dist/TwinlistControlBase-D1l9t7Up.js +0 -40
  184. package/dist/TwinlistLoadingInfo-CQRx9cEu.js +0 -963
  185. package/dist/TypedStringFilter-C6JhWCCC.js +0 -29
  186. package/dist/ValueSwitch-CUYV7v67.js +0 -131
  187. package/dist/ValueSwitchControl-IP9SxrUs.js +0 -20
  188. package/dist/VerticalLayout-D2eQSYgv.js +0 -30
  189. package/dist/VerticalLayoutBase-DRfHwc4t.js +0 -20
  190. package/dist/ZonedDateTimeControl-Bi8cV34A.js +0 -75
  191. package/dist/floating-ui.vue-B-MrqKCT.js +0 -1019
  192. package/dist/index-CoRworrE.js +0 -322
  193. package/dist/magic-string.es-D-aKzDFf.js +0 -858
  194. package/dist/navigator-D_R-txCf.js +0 -7
  195. package/dist/popper-CRR--9mA.js +0 -907
  196. package/dist/reload-BVbCGubF.js +0 -17
  197. package/dist/src/JsonFormsDialog.vue.d.ts +0 -46
  198. package/dist/svgWithTitle-Cr3Pu3wr.js +0 -18
  199. package/dist/useDropdownNavigation-7o7SRJSo.js +0 -781
  200. package/dist/usePossibleValues-lz0Rcu_N.js +0 -20
@@ -0,0 +1,1080 @@
1
+ import { createElementBlock as v, openBlock as u, createElementVNode as d, computed as a, nextTick as Q, resolveComponent as w, createBlock as V, normalizeClass as y, withCtx as B, createCommentVNode as S, createVNode as I, renderSlot as $, defineComponent as j, useCssVars as F, ref as T, normalizeStyle as D, Fragment as ee, renderList as te, toRef as z, toDisplayString as E } from "vue";
2
+ import { N as ne } from "./arrow-next-BmOStWql.js";
3
+ import { u as O } from "./useSearch-hpyYQ_6y.js";
4
+ import { G as le, H as se, _ as R, v as oe, y as ie } from "./SectionHeading.vue_vue_type_style_index_0_scoped_f06e9b7d_lang-B5ALSUVO.js";
5
+ import { M as ae } from "./MultiselectListBox-CfdPbcn1.js";
6
+ import { C as re } from "./close-0dYG2oDA.js";
7
+ import { I as ue } from "./InputField-C_aZPs-f.js";
8
+ import { c as P } from "./createMissingItem-B00Kg95q.js";
9
+ import { L as ce } from "./LoadingIcon-RPBUjTO3.js";
10
+ const de = {
11
+ xmlns: "http://www.w3.org/2000/svg",
12
+ fill: "none",
13
+ stroke: "#000",
14
+ "stroke-linejoin": "round",
15
+ viewBox: "0 0 32 32"
16
+ };
17
+ function he(e, t) {
18
+ return u(), v("svg", de, t[0] || (t[0] = [
19
+ d(
20
+ "circle",
21
+ {
22
+ cx: "13.2",
23
+ cy: "13.2",
24
+ r: "10"
25
+ },
26
+ null,
27
+ -1
28
+ /* CACHED */
29
+ ),
30
+ d(
31
+ "path",
32
+ { d: "m20.2 20.2 8.6 8.6" },
33
+ null,
34
+ -1
35
+ /* CACHED */
36
+ )
37
+ ]));
38
+ }
39
+ const me = { render: he };
40
+ var fe = "Expected a function";
41
+ function ve(e, t, n) {
42
+ var s = !0, o = !0;
43
+ if (typeof e != "function")
44
+ throw new TypeError(fe);
45
+ return le(n) && (s = "leading" in n ? !!n.leading : s, o = "trailing" in n ? !!n.trailing : o), se(e, t, {
46
+ leading: s,
47
+ maxWait: t,
48
+ trailing: o
49
+ });
50
+ }
51
+ const K = (e, t, n) => {
52
+ const s = a(() => !e.value || e.value.length === 0 ? 0 : e.value.length), o = a(() => 0);
53
+ return ((i, h, c) => `${i} of ${h} entries`)(
54
+ s.value,
55
+ t,
56
+ o.value
57
+ );
58
+ }, be = {
59
+ xmlns: "http://www.w3.org/2000/svg",
60
+ fill: "none",
61
+ stroke: "#000",
62
+ "stroke-linejoin": "round",
63
+ viewBox: "0 0 32 32"
64
+ };
65
+ function ge(e, t) {
66
+ return u(), v("svg", be, t[0] || (t[0] = [
67
+ d(
68
+ "path",
69
+ { d: "M6 22.7h21.3m-6.8 6.8 6.8-6.8-6.8-6.7M26 9.3H4.7m6.8-6.8L4.7 9.3l6.8 6.7" },
70
+ null,
71
+ -1
72
+ /* CACHED */
73
+ )
74
+ ]));
75
+ }
76
+ const we = { render: ge }, Se = {
77
+ xmlns: "http://www.w3.org/2000/svg",
78
+ fill: "none",
79
+ stroke: "#000",
80
+ "stroke-linejoin": "round",
81
+ viewBox: "0 0 32 32"
82
+ };
83
+ function pe(e, t) {
84
+ return u(), v("svg", Se, t[0] || (t[0] = [
85
+ d(
86
+ "path",
87
+ {
88
+ fill: "#000",
89
+ stroke: "none",
90
+ d: "M13.297 19.097H5.444l-1.763 4.891H1.132L8.29 5.246h2.163l7.17 18.742h-2.536ZM6.19 17.063h6.372L9.371 8.297ZM28.37 23.988q-.205-.412-.334-1.467-1.66 1.725-3.965 1.725-2.06 0-3.385-1.159-1.313-1.171-1.313-2.96 0-2.176 1.647-3.373 1.66-1.21 4.66-1.21h2.317V14.45q0-1.249-.746-1.983-.747-.746-2.202-.746-1.274 0-2.136.643-.863.644-.863 1.558h-2.394q0-1.043.734-2.008.746-.979 2.008-1.545 1.274-.566 2.793-.566 2.407 0 3.772 1.21 1.364 1.197 1.416 3.308v6.41q0 1.919.489 3.051v.206zm-3.951-1.815q1.12 0 2.124-.579 1.004-.58 1.454-1.506V17.23h-1.866q-4.377 0-4.377 2.562 0 1.12.747 1.75.746.631 1.918.631",
91
+ class: "text"
92
+ },
93
+ null,
94
+ -1
95
+ /* CACHED */
96
+ )
97
+ ]));
98
+ }
99
+ const Ie = { render: pe }, _e = {
100
+ clear: "Clear",
101
+ inverseSearch: "Exclude results that match query",
102
+ caseSensitive: "Toggle case sensitivity"
103
+ }, ye = {
104
+ name: "SearchInput",
105
+ components: {
106
+ InputField: ue,
107
+ FunctionButton: oe,
108
+ CloseIcon: re,
109
+ LensIcon: me,
110
+ InverseSearchIcon: we,
111
+ UpperLowerCaseIcon: Ie
112
+ },
113
+ props: {
114
+ id: {
115
+ type: String,
116
+ default: null
117
+ },
118
+ name: {
119
+ type: String,
120
+ default: null
121
+ },
122
+ modelValue: {
123
+ type: String,
124
+ default: ""
125
+ },
126
+ placeholder: {
127
+ type: String,
128
+ // A pseudo-placeholder to allow hiding the clear-button without any input
129
+ default: " "
130
+ },
131
+ initialCaseSensitiveSearch: {
132
+ default: !1,
133
+ type: Boolean
134
+ },
135
+ initialInverseSearch: {
136
+ default: !1,
137
+ type: Boolean
138
+ },
139
+ showCaseSensitiveSearchButton: {
140
+ default: !1,
141
+ type: Boolean
142
+ },
143
+ showInverseSearchButton: {
144
+ default: !1,
145
+ type: Boolean
146
+ },
147
+ autofocus: {
148
+ default: !1,
149
+ type: Boolean
150
+ },
151
+ disabled: {
152
+ default: !1,
153
+ type: Boolean
154
+ },
155
+ tooltips: {
156
+ type: Object,
157
+ default: () => ({})
158
+ },
159
+ focusOnMount: {
160
+ type: Boolean,
161
+ default: !1
162
+ },
163
+ ariaActivedescendant: {
164
+ type: String,
165
+ default: null
166
+ },
167
+ ariaOwns: {
168
+ type: String,
169
+ default: null
170
+ },
171
+ compact: {
172
+ type: Boolean,
173
+ default: !1
174
+ }
175
+ },
176
+ emits: [
177
+ "clear",
178
+ "update:modelValue",
179
+ "toggle-case-sensitive-search",
180
+ "toggle-inverse-search",
181
+ "focus"
182
+ ],
183
+ expose: ["focus"],
184
+ data() {
185
+ return {
186
+ caseSensitiveSearch: this.initialCaseSensitiveSearch,
187
+ inverseSearch: this.initialInverseSearch
188
+ };
189
+ },
190
+ computed: {
191
+ showClearButton() {
192
+ return !this.disabled && this.modelValue !== "";
193
+ },
194
+ showSpacer() {
195
+ return this.showClearButton && (this.showCaseSensitiveSearchButton || this.showInverseSearchButton);
196
+ },
197
+ tooltipsWithDefaults() {
198
+ return { ..._e, ...this.tooltips };
199
+ }
200
+ },
201
+ async mounted() {
202
+ this.focusOnMount && (await Q(), this.focus());
203
+ },
204
+ methods: {
205
+ clearSearch() {
206
+ this.$emit("clear"), this.$emit("update:modelValue", ""), this.focus();
207
+ },
208
+ toggleCaseSensitiveSearch() {
209
+ this.caseSensitiveSearch = !this.caseSensitiveSearch, this.$emit("toggle-case-sensitive-search", this.caseSensitiveSearch), this.focus();
210
+ },
211
+ toggleInverseSearch() {
212
+ this.inverseSearch = !this.inverseSearch, this.$emit("toggle-inverse-search", this.inverseSearch), this.focus();
213
+ },
214
+ focus() {
215
+ this.$refs.searchInput.focus();
216
+ }
217
+ }
218
+ }, Le = {
219
+ key: 0,
220
+ class: "icon-slot-wrapper"
221
+ }, ke = {
222
+ key: 1,
223
+ class: "spacer"
224
+ };
225
+ function xe(e, t, n, s, o, l) {
226
+ const i = w("LensIcon"), h = w("CloseIcon"), c = w("FunctionButton"), p = w("UpperLowerCaseIcon"), b = w("InverseSearchIcon"), g = w("InputField");
227
+ return u(), V(g, {
228
+ id: n.id,
229
+ ref: "searchInput",
230
+ name: n.name,
231
+ "model-value": n.modelValue,
232
+ placeholder: n.placeholder,
233
+ autofocus: n.autofocus,
234
+ disabled: n.disabled,
235
+ class: y(["search-input", { disabled: n.disabled }]),
236
+ autocomplete: "off",
237
+ "aria-owns": n.ariaOwns,
238
+ "aria-activedescendant": n.ariaActivedescendant,
239
+ role: "searchbox",
240
+ compact: n.compact,
241
+ onFocus: t[0] || (t[0] = (_) => e.$emit("focus", _)),
242
+ "onUpdate:modelValue": t[1] || (t[1] = (_) => e.$emit("update:modelValue", _))
243
+ }, {
244
+ icon: B(() => [
245
+ n.disabled ? S("v-if", !0) : (u(), v("div", Le, [
246
+ $(e.$slots, "icon", {}, () => [
247
+ I(i)
248
+ ], !0)
249
+ ]))
250
+ ]),
251
+ iconRight: B(() => [
252
+ l.showClearButton ? (u(), V(c, {
253
+ key: 0,
254
+ class: "clear-search",
255
+ compact: n.compact,
256
+ title: l.tooltipsWithDefaults.clear,
257
+ onClick: l.clearSearch
258
+ }, {
259
+ default: B(() => [
260
+ I(h)
261
+ ]),
262
+ _: 1
263
+ /* STABLE */
264
+ }, 8, ["compact", "title", "onClick"])) : S("v-if", !0),
265
+ l.showSpacer ? (u(), v("span", ke)) : S("v-if", !0),
266
+ !n.disabled && n.showCaseSensitiveSearchButton ? (u(), V(c, {
267
+ key: 2,
268
+ class: "toggle-case-sensitive-search",
269
+ compact: n.compact,
270
+ active: o.caseSensitiveSearch,
271
+ title: l.tooltipsWithDefaults.caseSensitive,
272
+ onClick: l.toggleCaseSensitiveSearch
273
+ }, {
274
+ default: B(() => [
275
+ I(p)
276
+ ]),
277
+ _: 1
278
+ /* STABLE */
279
+ }, 8, ["compact", "active", "title", "onClick"])) : S("v-if", !0),
280
+ !n.disabled && n.showInverseSearchButton ? (u(), V(c, {
281
+ key: 3,
282
+ class: "toggle-inverse-search",
283
+ compact: n.compact,
284
+ title: l.tooltipsWithDefaults.inverseSearch,
285
+ active: o.inverseSearch,
286
+ onClick: l.toggleInverseSearch
287
+ }, {
288
+ default: B(() => [
289
+ I(b)
290
+ ]),
291
+ _: 1
292
+ /* STABLE */
293
+ }, 8, ["compact", "title", "active", "onClick"])) : S("v-if", !0)
294
+ ]),
295
+ _: 3
296
+ /* FORWARDED */
297
+ }, 8, ["id", "name", "model-value", "placeholder", "autofocus", "disabled", "class", "aria-owns", "aria-activedescendant", "compact"]);
298
+ }
299
+ const Be = /* @__PURE__ */ R(ye, [["render", xe], ["__scopeId", "data-v-96136c9f"], ["__file", "/Users/albrecht/Documents/KNIME/git/webapps-common/packages/components/src/components/forms/SearchInput/SearchInput.vue"]]), Ve = {
300
+ xmlns: "http://www.w3.org/2000/svg",
301
+ fill: "none",
302
+ stroke: "#000",
303
+ "stroke-linejoin": "round",
304
+ viewBox: "0 0 32 32"
305
+ };
306
+ function Ce(e, t) {
307
+ return u(), v("svg", Ve, t[0] || (t[0] = [
308
+ d(
309
+ "path",
310
+ { d: "m14.8 5 11 11-11 11M6.2 5l11 11-11 11" },
311
+ null,
312
+ -1
313
+ /* CACHED */
314
+ )
315
+ ]));
316
+ }
317
+ const Ee = { render: Ce }, Me = {
318
+ xmlns: "http://www.w3.org/2000/svg",
319
+ fill: "none",
320
+ stroke: "#000",
321
+ "stroke-linejoin": "round",
322
+ viewBox: "0 0 32 32"
323
+ };
324
+ function Te(e, t) {
325
+ return u(), v("svg", Me, t[0] || (t[0] = [
326
+ d(
327
+ "path",
328
+ { d: "m17.2 27-11-11 11-11m8.6 22-11-11 11-11" },
329
+ null,
330
+ -1
331
+ /* CACHED */
332
+ )
333
+ ]));
334
+ }
335
+ const Re = { render: Te }, Ne = {
336
+ xmlns: "http://www.w3.org/2000/svg",
337
+ fill: "none",
338
+ stroke: "#000",
339
+ "stroke-linejoin": "round",
340
+ viewBox: "0 0 32 32"
341
+ };
342
+ function De(e, t) {
343
+ return u(), v("svg", Ne, t[0] || (t[0] = [
344
+ d(
345
+ "path",
346
+ { d: "m21.5 27-11-11 11-11" },
347
+ null,
348
+ -1
349
+ /* CACHED */
350
+ )
351
+ ]));
352
+ }
353
+ const He = { render: De }, G = 10, H = "2px", Ue = /* @__PURE__ */ j({
354
+ __name: "ResizeHandle",
355
+ props: {
356
+ numberOfHandles: { type: Number, required: !0 },
357
+ handleWidth: { type: String, required: !0 },
358
+ connectHandlesOnResize: { type: Boolean, required: !1, default: !1 },
359
+ multipleHandlesHandleGap: { type: String, required: !1, default: "0px" },
360
+ disabled: { type: Boolean, required: !1, default: !1 }
361
+ },
362
+ emits: ["resize-move", "resize-end"],
363
+ setup(e, { expose: t, emit: n }) {
364
+ t(), F((m) => ({
365
+ "2fc109dc-HANDLE_PADDING": H
366
+ }));
367
+ const s = n, o = e, l = T(0), i = T(null), h = a(
368
+ () => `calc(${o.handleWidth} + 2 * ${H})`
369
+ ), c = a(
370
+ () => o.connectHandlesOnResize && o.numberOfHandles > 1 && i.value !== null
371
+ ), p = a(
372
+ () => `(${o.numberOfHandles} - 1) * ${o.multipleHandlesHandleGap}`
373
+ ), b = a(
374
+ () => `(2 * ${o.numberOfHandles})`
375
+ ), g = a(
376
+ () => `(100% - ${p.value}) / ${b.value}`
377
+ ), _ = a(
378
+ () => `calc(100% - 2 * ${g.value})`
379
+ ), L = (m) => {
380
+ o.disabled || (m.target.setPointerCapture(m.pointerId), m.preventDefault(), i.value = m.pointerId, l.value = m.clientY);
381
+ }, r = ve((m) => {
382
+ if (i.value === m.pointerId) {
383
+ const x = m.clientY - l.value;
384
+ (x < 0 && m.offsetY <= 0 || x > 0 && m.offsetY >= 0) && s("resize-move", x), l.value = m.clientY;
385
+ }
386
+ }, G), C = { ON_POINTER_MOVE_THROTTLE: G, HANDLE_PADDING: H, emit: s, props: o, currentPointerY: l, pointerId: i, handleContainerWidth: h, showConnectionHandle: c, multipleHandlesTotalGap: p, numberOfSpaceBetweenMargins: b, positionMiddlePointFirstHandle: g, connectionHandleWidth: _, onPointerDown: L, onPointerMove: r, onPointerUp: (m) => {
387
+ i.value === m.pointerId && (l.value = 0, i.value = null, s("resize-end"));
388
+ } };
389
+ return Object.defineProperty(C, "__isScriptSetup", { enumerable: !1, value: !0 }), C;
390
+ }
391
+ });
392
+ function Ae(e, t, n, s, o, l) {
393
+ return u(), v(
394
+ "div",
395
+ {
396
+ class: "resize-handle-container",
397
+ style: D({ gap: n.multipleHandlesHandleGap })
398
+ },
399
+ [
400
+ s.showConnectionHandle ? (u(), v(
401
+ "div",
402
+ {
403
+ key: 0,
404
+ class: "handle connection",
405
+ style: D({ width: s.connectionHandleWidth })
406
+ },
407
+ null,
408
+ 4
409
+ /* STYLE */
410
+ )) : S("v-if", !0),
411
+ (u(!0), v(
412
+ ee,
413
+ null,
414
+ te(n.numberOfHandles, (i) => (u(), v(
415
+ "div",
416
+ {
417
+ key: i,
418
+ class: y(["handle-container", { disabled: n.disabled }]),
419
+ style: D({ width: s.handleContainerWidth }),
420
+ onPointerdown: s.onPointerDown,
421
+ onPointerup: s.onPointerUp,
422
+ onPointermove: t[0] || (t[0] = (...h) => s.onPointerMove && s.onPointerMove(...h)),
423
+ onLostpointercapture: s.onPointerUp
424
+ },
425
+ [...t[1] || (t[1] = [
426
+ d(
427
+ "div",
428
+ { class: "handle" },
429
+ null,
430
+ -1
431
+ /* CACHED */
432
+ )
433
+ ])],
434
+ 38
435
+ /* CLASS, STYLE, NEED_HYDRATION */
436
+ ))),
437
+ 128
438
+ /* KEYED_FRAGMENT */
439
+ ))
440
+ ],
441
+ 4
442
+ /* STYLE */
443
+ );
444
+ }
445
+ const ze = /* @__PURE__ */ R(Ue, [["render", Ae], ["__scopeId", "data-v-2fc109dc"], ["__file", "/Users/albrecht/Documents/KNIME/git/webapps-common/packages/components/src/components/ResizeHandle/ResizeHandle.vue"]]), M = "Enter", U = 5, Y = 30, Z = 24, Oe = 4, Pe = 56, Ke = ["left", "right"], Ge = Oe * Z + 2 * Pe, We = `calc((100% - ${Y}px) * 1 / 6)`, qe = (e) => {
446
+ const t = a(
447
+ () => e.value !== null && "includeUnknownValues" in e.value ? { withUnknownValues: e.value } : { standard: e.value }
448
+ ), n = a(() => typeof t.value.standard < "u" ? t.value.standard : t.value.withUnknownValues.includedValues), s = a(
449
+ () => t.value.withUnknownValues?.excludedValues ?? null
450
+ ), o = a(
451
+ () => t.value.withUnknownValues?.includeUnknownValues ?? null
452
+ ), l = a(
453
+ () => o.value === !1
454
+ ), i = a(
455
+ () => o.value === !0
456
+ );
457
+ return {
458
+ includedValues: n,
459
+ excludedValues: s,
460
+ showUnknownExcludedValues: l,
461
+ showUnknownIncludedValues: i,
462
+ getEmitValue: (c, p = (g) => g, b = (g) => g) => t.value.withUnknownValues ? {
463
+ includedValues: c,
464
+ excludedValues: p(s.value),
465
+ includeUnknownValues: b(
466
+ t.value.withUnknownValues.includeUnknownValues
467
+ )
468
+ } : c
469
+ };
470
+ }, A = {
471
+ name: "Twinlist",
472
+ components: {
473
+ ArrowNextDoubleIcon: Ee,
474
+ ArrowNextIcon: ne,
475
+ ArrowPrevDoubleIcon: Re,
476
+ ArrowPrevIcon: He,
477
+ MultiselectListBox: ae,
478
+ Label: ie,
479
+ SearchInput: Be,
480
+ ResizeHandle: ze
481
+ },
482
+ props: {
483
+ modelValue: {
484
+ type: [Object, Array, null],
485
+ default: null
486
+ },
487
+ initialCaseSensitiveSearch: {
488
+ default: !1,
489
+ type: Boolean
490
+ },
491
+ initialSearchTerm: {
492
+ type: String,
493
+ required: !1,
494
+ default: ""
495
+ },
496
+ /**
497
+ * Hiding and disabling
498
+ */
499
+ showSearch: {
500
+ default: !1,
501
+ type: Boolean
502
+ },
503
+ disabled: {
504
+ default: !1,
505
+ type: Boolean
506
+ },
507
+ showEmptyState: {
508
+ default: !0,
509
+ type: Boolean
510
+ },
511
+ /**
512
+ * Labels
513
+ */
514
+ leftLabel: {
515
+ type: String,
516
+ default: "Possible values"
517
+ },
518
+ rightLabel: {
519
+ type: String,
520
+ default: "Selected values"
521
+ },
522
+ withSearchLabel: {
523
+ default: !1,
524
+ type: Boolean
525
+ },
526
+ searchLabel: {
527
+ type: String,
528
+ required: !1,
529
+ default: "Search values"
530
+ },
531
+ searchPlaceholder: {
532
+ type: String,
533
+ required: !1,
534
+ default: "Search"
535
+ },
536
+ unknownValuesText: {
537
+ type: String,
538
+ required: !1,
539
+ default: "Unknown values"
540
+ },
541
+ /**
542
+ * Is only used when emptyStateComponent is null
543
+ */
544
+ emptyStateLabel: {
545
+ default: "No entries in this list",
546
+ type: String
547
+ },
548
+ /**
549
+ * this component is displayed centered in the middle of the box in case it is empty
550
+ */
551
+ emptyStateComponent: {
552
+ default: null,
553
+ type: Object
554
+ },
555
+ /**
556
+ * Controls the size of the list.
557
+ * Number of visible items (for others user need to scroll)
558
+ * - 0 means all
559
+ * - values 1 - 4 are ignored; 5 is minimum
560
+ */
561
+ size: {
562
+ type: Number,
563
+ default: 0,
564
+ validator(e) {
565
+ return e >= 0;
566
+ }
567
+ },
568
+ showResizeHandle: {
569
+ type: Boolean,
570
+ default: !1
571
+ },
572
+ isValid: {
573
+ default: !0,
574
+ type: Boolean
575
+ },
576
+ /**
577
+ * List of possible values. Each item must have an `id` and a `text` property
578
+ * @example
579
+ * [{
580
+ * id: 'pdf',
581
+ * text: 'PDF'
582
+ * }, {
583
+ * id: 'XLS',
584
+ * text: 'Excel',
585
+ * }]
586
+ */
587
+ possibleValues: {
588
+ type: Array,
589
+ default: () => []
590
+ },
591
+ compact: {
592
+ type: Boolean,
593
+ default: !1
594
+ }
595
+ },
596
+ emits: [
597
+ /**
598
+ * This event gets emitted whenever the user changes the selection.
599
+ * In case the modelValue of this Twinlist is with unknown values, the emitted value here will also be.
600
+ */
601
+ "update:modelValue"
602
+ ],
603
+ setup(e) {
604
+ const {
605
+ includedValues: t,
606
+ excludedValues: n,
607
+ showUnknownExcludedValues: s,
608
+ showUnknownIncludedValues: o,
609
+ getEmitValue: l
610
+ } = qe(z(e, "modelValue")), i = T(e.initialSearchTerm), h = T(e.initialCaseSensitiveSearch), c = a(() => e.possibleValues.map((f) => f.id)), p = a(() => new Set(c.value)), b = a(() => t.value ? o.value ? t.value.filter(
611
+ (f) => p.value.has(f)
612
+ ) : t.value : null), g = a(() => Object.assign(
613
+ {},
614
+ ...e.possibleValues.map((f, N) => ({
615
+ [f.id]: { item: f, index: N }
616
+ }))
617
+ )), _ = a(() => b.value === null ? [] : b.value.map(
618
+ (f) => g.value[f]?.item || P(f)
619
+ )), L = z(e, "showSearch"), r = O(
620
+ i,
621
+ h,
622
+ _,
623
+ L
624
+ ), k = a(() => {
625
+ if (!n.value) {
626
+ const f = new Set(t.value);
627
+ return c.value.filter(
628
+ (N) => !f.has(N)
629
+ );
630
+ }
631
+ return s.value ? n.value.filter(
632
+ (f) => p.value.has(f)
633
+ ) : n.value;
634
+ }), C = a(() => b.value === null ? [] : k.value.map(
635
+ (f) => g.value[f]?.item || P(f)
636
+ )), m = O(
637
+ i,
638
+ h,
639
+ C,
640
+ L
641
+ ), x = a(() => e.showSearch && i.value !== ""), X = a(() => e.showSearch && x.value ? K(m, k.value.length) : null), J = a(() => e.showSearch && x.value ? K(
642
+ r,
643
+ b.value?.length
644
+ ) : null);
645
+ return {
646
+ includedValues: t,
647
+ excludedValues: n,
648
+ showUnknownExcludedValues: s,
649
+ showUnknownIncludedValues: o,
650
+ getEmitValue: l,
651
+ searchTerm: i,
652
+ filteredExcludedItems: m,
653
+ filteredIncludedItems: r,
654
+ knownExcludedValues: k,
655
+ knownIncludedValues: b,
656
+ possibleValueIds: c,
657
+ possibleValueIdsSet: p,
658
+ excludedLabels: X,
659
+ includedLabels: J,
660
+ caseSensitiveSearch: h,
661
+ allIncludedItems: _,
662
+ possibleValueMap: g
663
+ };
664
+ },
665
+ data() {
666
+ return {
667
+ invalidPossibleValueIds: /* @__PURE__ */ new Set(),
668
+ rightSelected: [],
669
+ leftSelected: [],
670
+ unknownValuesId: Symbol("Unknown values"),
671
+ constants: Object.freeze({
672
+ MIN_LIST_SIZE: U,
673
+ BUTTON_HEIGHT: Z,
674
+ BUTTON_WIDTH: Y,
675
+ RESIZE_HANDLE_WIDTH: We,
676
+ MAX_HEIGHT_BUTTONS_CENTER_ALIGNMENT: Ge
677
+ })
678
+ };
679
+ },
680
+ computed: {
681
+ listSize() {
682
+ const e = this.size === 0 ? this.possibleValues.length : this.size;
683
+ return e > U ? e : U;
684
+ },
685
+ moveAllRightButtonDisabled() {
686
+ return this.filteredExcludedItems.length === 0 && !this.showUnknownExcludedValues;
687
+ },
688
+ moveRightButtonDisabled() {
689
+ return this.leftSelected.length === 0;
690
+ },
691
+ moveAllLeftButtonDisabled() {
692
+ return this.filteredIncludedItems.length === 0 && !this.showUnknownIncludedValues;
693
+ },
694
+ moveLeftButtonDisabled() {
695
+ return this.rightSelected.length === 0;
696
+ }
697
+ },
698
+ mounted() {
699
+ this.showResizeHandle && this.getListBoxes().forEach((e) => e.initResizeHeight());
700
+ },
701
+ methods: {
702
+ getIndex(e) {
703
+ return this.possibleValueMap[e]?.index ?? -1;
704
+ },
705
+ compareByOriginalSorting(e, t) {
706
+ return this.getIndex(e) - this.getIndex(t);
707
+ },
708
+ clearSelections() {
709
+ this.getListBoxes().forEach((e) => e.clearSelection());
710
+ },
711
+ moveItems(e, {
712
+ toNewIncludedValues: t,
713
+ toNewExcludedValues: n
714
+ }) {
715
+ const s = e.filter((c) => c !== this.unknownValuesId), o = e.length > s.length, l = {
716
+ knownValues: s,
717
+ movingUnknownValues: o
718
+ };
719
+ let i = null, h = null;
720
+ this.includedValues !== null && (i = t({
721
+ previous: this.includedValues,
722
+ movingParts: l
723
+ })), this.excludedValues && (h = n({
724
+ previous: this.knownExcludedValues,
725
+ movingParts: l
726
+ })), this.clearSelections(), this.$emit(
727
+ "update:modelValue",
728
+ this.getEmitValue(
729
+ i,
730
+ () => h,
731
+ (c) => o ? !c : c
732
+ )
733
+ );
734
+ },
735
+ moveRight(e = null) {
736
+ this.moveItems(e ?? this.leftSelected, {
737
+ toNewIncludedValues: this.addMovedItems.bind(this),
738
+ toNewExcludedValues: this.filterMovedItems.bind(this)
739
+ });
740
+ },
741
+ moveLeft(e = null) {
742
+ this.moveItems(e ?? this.rightSelected, {
743
+ toNewIncludedValues: this.filterMovedItems.bind(this),
744
+ toNewExcludedValues: this.addMovedItems.bind(this)
745
+ });
746
+ },
747
+ /**
748
+ * Filters out the moved items and also invalid items if unknown values are being moved.
749
+ */
750
+ filterMovedItems({
751
+ previous: e,
752
+ movingParts: { movingUnknownValues: t, knownValues: n }
753
+ }) {
754
+ const s = new Set(n);
755
+ return e.filter(
756
+ (o) => !s.has(o) && (!t || this.possibleValueIdsSet.has(o))
757
+ );
758
+ },
759
+ /**
760
+ * Adds the given items sorting by the order in the possible values afterwards and removing invalid items
761
+ * if unknown values are being moved
762
+ */
763
+ addMovedItems({
764
+ previous: e,
765
+ movingParts: { movingUnknownValues: t, knownValues: n }
766
+ }) {
767
+ return [
768
+ ...t ? e.filter((s) => this.possibleValueIdsSet.has(s)) : e,
769
+ ...n.filter((s) => this.possibleValueIdsSet.has(s))
770
+ ].sort(this.compareByOriginalSorting);
771
+ },
772
+ onMoveRightButtonClick() {
773
+ this.moveRight();
774
+ },
775
+ onMoveAllRightButtonClick() {
776
+ const e = this.filteredExcludedItems.map((t) => t.id);
777
+ this.moveRight(
778
+ e.concat(
779
+ this.showUnknownExcludedValues ? [this.unknownValuesId] : []
780
+ )
781
+ );
782
+ },
783
+ onMoveAllRightButtonKey(e) {
784
+ e.key === M && (this.onMoveAllRightButtonClick(), this.stopPropagation(e));
785
+ },
786
+ onMoveRightButtonKey(e) {
787
+ e.key === M && (this.moveRight(), this.stopPropagation(e));
788
+ },
789
+ onMoveLeftButtonClick() {
790
+ this.moveLeft();
791
+ },
792
+ onMoveAllLeftButtonClick() {
793
+ const e = this.filteredIncludedItems.map((t) => t.id);
794
+ this.moveLeft(
795
+ e.concat(
796
+ this.showUnknownIncludedValues ? [this.unknownValuesId] : []
797
+ )
798
+ );
799
+ },
800
+ onMoveLeftButtonKey(e) {
801
+ e.key === M && (this.moveLeft(), this.stopPropagation(e));
802
+ },
803
+ onMoveAllLeftButtonKey(e) {
804
+ e.key === M && (this.onMoveAllLeftButtonClick(), this.stopPropagation(e));
805
+ },
806
+ stopPropagation(e) {
807
+ e.preventDefault(), e.stopPropagation();
808
+ },
809
+ onLeftListBoxDoubleClick(e) {
810
+ this.moveRight([e]);
811
+ },
812
+ onLeftListBoxShiftDoubleClick(e) {
813
+ this.moveRight(e);
814
+ },
815
+ onRightListBoxDoubleClick(e) {
816
+ this.moveLeft([e]);
817
+ },
818
+ onRightListBoxShiftDoubleClick(e) {
819
+ this.moveLeft(e);
820
+ },
821
+ onLeftInput(e) {
822
+ e.length > 0 && this.$refs.right.clearSelection(), this.leftSelected = e;
823
+ },
824
+ onRightInput(e) {
825
+ e.length > 0 && this.$refs.left.clearSelection(), this.rightSelected = e;
826
+ },
827
+ onSearchInput(e) {
828
+ this.searchTerm = e;
829
+ },
830
+ hasSelection() {
831
+ return (this.includedValues?.length ?? 0) > 0;
832
+ },
833
+ validate() {
834
+ const e = !this.filteredIncludedItems.some((t) => t.invalid) && (!this.excludedValues || !this.filteredExcludedItems.some((t) => t.invalid));
835
+ return {
836
+ isValid: e,
837
+ errorMessage: e ? null : "One or more of the selected items is invalid."
838
+ };
839
+ },
840
+ getListBoxes() {
841
+ return Ke.map(
842
+ (e) => this.$refs[e]
843
+ );
844
+ },
845
+ onResizeMove(e) {
846
+ this.getListBoxes().forEach((t) => t.onResizeMove(e));
847
+ },
848
+ onResizeEnd() {
849
+ this.getListBoxes().forEach((e) => e.onResizeEnd());
850
+ }
851
+ }
852
+ }, W = () => {
853
+ F((e) => ({
854
+ "463b9fb6-`${constants.BUTTON_WIDTH}px`": `${e.constants.BUTTON_WIDTH}px`,
855
+ "463b9fb6-`${constants.MAX_HEIGHT_BUTTONS_CENTER_ALIGNMENT}px`": `${e.constants.MAX_HEIGHT_BUTTONS_CENTER_ALIGNMENT}px`,
856
+ "463b9fb6-`${constants.BUTTON_HEIGHT}px`": `${e.constants.BUTTON_HEIGHT}px`
857
+ }));
858
+ }, q = A.setup;
859
+ A.setup = q ? (e, t) => (W(), q(e, t)) : W;
860
+ const je = { class: "twinlist" }, Fe = { class: "header" }, Ye = { class: "title" }, Ze = ["title"], Xe = ["title"], Je = { class: "title" }, Qe = ["title"], $e = ["title"], et = { class: "buttons" };
861
+ function tt(e, t, n, s, o, l) {
862
+ const i = w("SearchInput"), h = w("Label"), c = w("MultiselectListBox"), p = w("ArrowNextIcon"), b = w("ArrowNextDoubleIcon"), g = w("ArrowPrevIcon"), _ = w("ArrowPrevDoubleIcon"), L = w("ResizeHandle");
863
+ return u(), v("div", je, [
864
+ n.showSearch ? (u(), V(h, {
865
+ key: 0,
866
+ active: n.withSearchLabel,
867
+ text: n.searchLabel,
868
+ class: "search-wrapper"
869
+ }, {
870
+ default: B(({ labelForId: r }) => [
871
+ I(i, {
872
+ id: r,
873
+ ref: "search",
874
+ placeholder: n.searchPlaceholder,
875
+ "model-value": s.searchTerm,
876
+ label: n.searchLabel,
877
+ "initial-case-sensitive-search": n.initialCaseSensitiveSearch,
878
+ "show-case-sensitive-search-button": "",
879
+ disabled: n.disabled,
880
+ tooltips: {
881
+ inverseSearch: "Move matching to other side"
882
+ },
883
+ compact: n.compact,
884
+ "onUpdate:modelValue": l.onSearchInput,
885
+ onToggleCaseSensitiveSearch: t[0] || (t[0] = (k) => s.caseSensitiveSearch = k)
886
+ }, null, 8, ["id", "placeholder", "model-value", "label", "initial-case-sensitive-search", "disabled", "compact", "onUpdate:modelValue"])
887
+ ]),
888
+ _: 1
889
+ /* STABLE */
890
+ }, 8, ["active", "text"])) : S("v-if", !0),
891
+ d("div", Fe, [
892
+ d("div", Ye, [
893
+ d("div", {
894
+ class: "label",
895
+ title: n.leftLabel
896
+ }, E(n.leftLabel), 9, Ze),
897
+ s.excludedLabels ? (u(), v("div", {
898
+ key: 0,
899
+ title: s.excludedLabels,
900
+ class: "info"
901
+ }, E(s.excludedLabels), 9, Xe)) : S("v-if", !0)
902
+ ]),
903
+ t[9] || (t[9] = d(
904
+ "div",
905
+ { class: "space" },
906
+ null,
907
+ -1
908
+ /* CACHED */
909
+ )),
910
+ d("div", Je, [
911
+ d("div", {
912
+ class: "label",
913
+ title: n.rightLabel
914
+ }, E(n.rightLabel), 9, Qe),
915
+ s.includedLabels ? (u(), v("div", {
916
+ key: 0,
917
+ title: s.includedLabels,
918
+ class: "info"
919
+ }, E(s.includedLabels), 9, $e)) : S("v-if", !0)
920
+ ])
921
+ ]),
922
+ d(
923
+ "div",
924
+ {
925
+ class: y(["lists", { disabled: n.disabled }])
926
+ },
927
+ [
928
+ S(" eslint-disable vue/attribute-hyphenation ariaLabel needs to be given like this for typescript to not complain "),
929
+ I(c, {
930
+ ref: "left",
931
+ "with-is-empty-state": n.showEmptyState,
932
+ "empty-state-label": n.emptyStateLabel,
933
+ "empty-state-component": n.emptyStateComponent,
934
+ size: l.listSize,
935
+ "min-size": o.constants.MIN_LIST_SIZE,
936
+ class: "list-box",
937
+ "model-value": o.leftSelected,
938
+ "with-bottom-value": s.showUnknownExcludedValues,
939
+ "bottom-value": { id: o.unknownValuesId, text: n.unknownValuesText },
940
+ "is-valid": n.isValid,
941
+ "possible-values": s.filteredExcludedItems,
942
+ ariaLabel: n.leftLabel,
943
+ disabled: n.disabled,
944
+ onDoubleClickOnItem: l.onLeftListBoxDoubleClick,
945
+ onDoubleClickShift: l.onLeftListBoxShiftDoubleClick,
946
+ onKeyArrowRight: l.moveRight,
947
+ "onUpdate:modelValue": l.onLeftInput
948
+ }, null, 8, ["with-is-empty-state", "empty-state-label", "empty-state-component", "size", "min-size", "model-value", "with-bottom-value", "bottom-value", "is-valid", "possible-values", "ariaLabel", "disabled", "onDoubleClickOnItem", "onDoubleClickShift", "onKeyArrowRight", "onUpdate:modelValue"]),
949
+ S(" eslint-enable vue/attribute-hyphenation "),
950
+ d("div", et, [
951
+ d(
952
+ "div",
953
+ {
954
+ ref: "moveRight",
955
+ class: y({ disabled: l.moveRightButtonDisabled || n.disabled }),
956
+ role: "button",
957
+ tabindex: "0",
958
+ onClick: t[1] || (t[1] = (...r) => l.onMoveRightButtonClick && l.onMoveRightButtonClick(...r)),
959
+ onKeydown: t[2] || (t[2] = (...r) => l.onMoveRightButtonKey && l.onMoveRightButtonKey(...r))
960
+ },
961
+ [
962
+ I(p, { class: "icon" })
963
+ ],
964
+ 34
965
+ /* CLASS, NEED_HYDRATION */
966
+ ),
967
+ d(
968
+ "div",
969
+ {
970
+ ref: "moveAllRight",
971
+ class: y({ disabled: l.moveAllRightButtonDisabled || n.disabled }),
972
+ role: "button",
973
+ tabindex: "0",
974
+ onClick: t[3] || (t[3] = (...r) => l.onMoveAllRightButtonClick && l.onMoveAllRightButtonClick(...r)),
975
+ onKeydown: t[4] || (t[4] = (...r) => l.onMoveAllRightButtonKey && l.onMoveAllRightButtonKey(...r))
976
+ },
977
+ [
978
+ I(b, { class: "icon" })
979
+ ],
980
+ 34
981
+ /* CLASS, NEED_HYDRATION */
982
+ ),
983
+ d(
984
+ "div",
985
+ {
986
+ ref: "moveLeft",
987
+ class: y({ disabled: l.moveLeftButtonDisabled || n.disabled }),
988
+ role: "button",
989
+ tabindex: "0",
990
+ onClick: t[5] || (t[5] = (...r) => l.onMoveLeftButtonClick && l.onMoveLeftButtonClick(...r)),
991
+ onKeydown: t[6] || (t[6] = (...r) => l.onMoveLeftButtonKey && l.onMoveLeftButtonKey(...r))
992
+ },
993
+ [
994
+ I(g, { class: "icon" })
995
+ ],
996
+ 34
997
+ /* CLASS, NEED_HYDRATION */
998
+ ),
999
+ d(
1000
+ "div",
1001
+ {
1002
+ ref: "moveAllLeft",
1003
+ class: y({ disabled: l.moveAllLeftButtonDisabled || n.disabled }),
1004
+ role: "button",
1005
+ tabindex: "0",
1006
+ onClick: t[7] || (t[7] = (...r) => l.onMoveAllLeftButtonClick && l.onMoveAllLeftButtonClick(...r)),
1007
+ onKeydown: t[8] || (t[8] = (...r) => l.onMoveAllLeftButtonKey && l.onMoveAllLeftButtonKey(...r))
1008
+ },
1009
+ [
1010
+ I(_, { class: "icon" })
1011
+ ],
1012
+ 34
1013
+ /* CLASS, NEED_HYDRATION */
1014
+ )
1015
+ ]),
1016
+ S(" eslint-disable vue/attribute-hyphenation ariaLabel needs to be given like this for typescript to not complain "),
1017
+ I(c, {
1018
+ ref: "right",
1019
+ class: y(["list-box", { "with-empty-state-icon": n.emptyStateComponent }]),
1020
+ "model-value": o.rightSelected,
1021
+ "with-bottom-value": s.showUnknownIncludedValues,
1022
+ "bottom-value": { id: o.unknownValuesId, text: n.unknownValuesText },
1023
+ "with-is-empty-state": n.showEmptyState,
1024
+ "empty-state-label": n.emptyStateLabel,
1025
+ "empty-state-component": n.emptyStateComponent,
1026
+ "possible-values": s.filteredIncludedItems,
1027
+ size: l.listSize,
1028
+ "min-size": o.constants.MIN_LIST_SIZE,
1029
+ ariaLabel: n.rightLabel,
1030
+ disabled: n.disabled,
1031
+ onDoubleClickOnItem: l.onRightListBoxDoubleClick,
1032
+ onDoubleClickShift: l.onRightListBoxShiftDoubleClick,
1033
+ onKeyArrowLeft: l.moveLeft,
1034
+ "onUpdate:modelValue": l.onRightInput
1035
+ }, null, 8, ["class", "model-value", "with-bottom-value", "bottom-value", "with-is-empty-state", "empty-state-label", "empty-state-component", "possible-values", "size", "min-size", "ariaLabel", "disabled", "onDoubleClickOnItem", "onDoubleClickShift", "onKeyArrowLeft", "onUpdate:modelValue"]),
1036
+ S(" eslint-enable vue/attribute-hyphenation ")
1037
+ ],
1038
+ 2
1039
+ /* CLASS */
1040
+ ),
1041
+ n.showResizeHandle ? (u(), V(L, {
1042
+ key: 1,
1043
+ "number-of-handles": 2,
1044
+ "handle-width": o.constants.RESIZE_HANDLE_WIDTH,
1045
+ "connect-handles-on-resize": "",
1046
+ "multiple-handles-handle-gap": `${o.constants.BUTTON_WIDTH}px`,
1047
+ onResizeMove: l.onResizeMove,
1048
+ onResizeEnd: l.onResizeEnd
1049
+ }, null, 8, ["handle-width", "multiple-handles-handle-gap", "onResizeMove", "onResizeEnd"])) : S("v-if", !0)
1050
+ ]);
1051
+ }
1052
+ const ft = /* @__PURE__ */ R(A, [["render", tt], ["__scopeId", "data-v-463b9fb6"], ["__file", "/Users/albrecht/Documents/KNIME/git/webapps-common/packages/components/src/components/forms/Twinlist/Twinlist.vue"]]), nt = /* @__PURE__ */ j({
1053
+ __name: "TwinlistLoadingInfo",
1054
+ setup(e, { expose: t }) {
1055
+ t();
1056
+ const n = { get LoadingIcon() {
1057
+ return ce;
1058
+ } };
1059
+ return Object.defineProperty(n, "__isScriptSetup", { enumerable: !1, value: !0 }), n;
1060
+ }
1061
+ }), lt = { class: "info" };
1062
+ function st(e, t, n, s, o, l) {
1063
+ return u(), v("div", lt, [
1064
+ t[0] || (t[0] = d(
1065
+ "span",
1066
+ null,
1067
+ "Loading...",
1068
+ -1
1069
+ /* CACHED */
1070
+ )),
1071
+ I(s.LoadingIcon, { class: "icon" })
1072
+ ]);
1073
+ }
1074
+ const vt = /* @__PURE__ */ R(nt, [["render", st], ["__scopeId", "data-v-e8bd8376"], ["__file", "/Users/albrecht/Documents/KNIME/git/webapps-common/packages/jsonforms/src/uiComponents/loading/TwinlistLoadingInfo.vue"]]);
1075
+ export {
1076
+ Be as S,
1077
+ vt as T,
1078
+ ft as a,
1079
+ qe as u
1080
+ };