@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,23 @@
1
+ import { h as r, defineComponent as c, createBlock as s, openBlock as i } from "vue";
2
+ import { R as a } from "./reload-57Xc2t-6.js";
3
+ import { _ as p } from "./SectionHeading.vue_vue_type_style_index_0_scoped_f06e9b7d_lang-B5ALSUVO.js";
4
+ const d = (t, o) => ({
5
+ render() {
6
+ const n = t.render({}, []), e = r("title", o);
7
+ return e.ns = "svg", n.children.unshift(e), n;
8
+ }
9
+ }), _ = /* @__PURE__ */ c({
10
+ __name: "LoadingIcon",
11
+ setup(t, { expose: o }) {
12
+ o();
13
+ const e = { ReloadIconWithTitle: d(a, "Loading…") };
14
+ return Object.defineProperty(e, "__isScriptSetup", { enumerable: !1, value: !0 }), e;
15
+ }
16
+ });
17
+ function l(t, o, n, e, m, u) {
18
+ return i(), s(e.ReloadIconWithTitle);
19
+ }
20
+ const h = /* @__PURE__ */ p(_, [["render", l], ["__scopeId", "data-v-903d05c8"], ["__file", "/Users/albrecht/Documents/KNIME/git/webapps-common/packages/components/src/components/LoadingIcon/LoadingIcon.vue"]]);
21
+ export {
22
+ h as L
23
+ };
@@ -0,0 +1,90 @@
1
+ import { defineComponent as v, toRef as g, computed as a, markRaw as I, createBlock as F, openBlock as M, mergeProps as T } from "vue";
2
+ import { m as k } from "./index-Blg1O3Fz.js";
3
+ import { u as S, a as x } from "./usePossibleValues-DTVXBGRC.js";
4
+ import { T as L, a as q } from "./TwinlistLoadingInfo-Cy6HY-97.js";
5
+ import { u as U } from "./MultimodeTwinlistControl.vue_vue_type_style_index_0_scoped_bd2eaa56_lang-pnMOUiIt.js";
6
+ import { _ as z } from "./SectionHeading.vue_vue_type_style_index_0_scoped_f06e9b7d_lang-B5ALSUVO.js";
7
+ const D = /* @__PURE__ */ v({
8
+ __name: "ManualTwinlistControl",
9
+ props: {
10
+ control: { type: Object, required: !0 },
11
+ handleChange: { type: Function, required: !0 },
12
+ changeValue: { type: Function, required: !0 },
13
+ disabled: { type: Boolean, required: !0 },
14
+ isValid: { type: Boolean, required: !0 },
15
+ onRegisterValidation: { type: Function, required: !0 },
16
+ labelForId: { type: String, required: !0 }
17
+ },
18
+ setup(s, { expose: r }) {
19
+ r();
20
+ const l = s;
21
+ let e;
22
+ const o = (n) => {
23
+ const t = k(l.control.data, n);
24
+ l.changeValue(t), e?.(t);
25
+ }, u = (n) => {
26
+ if (n !== null)
27
+ if ("includedValues" in n) {
28
+ const { includedValues: t, excludedValues: f, includeUnknownValues: y } = n;
29
+ if (!t || !f)
30
+ return;
31
+ o({
32
+ manuallySelected: t,
33
+ manuallyDeselected: f,
34
+ includeUnknownColumns: y
35
+ });
36
+ } else
37
+ o({ manuallySelected: n });
38
+ }, { possibleValues: d } = S(
39
+ g(l, "control")
40
+ ), { selectedAndDeselected: i, setCurrentManualFilter: c } = U({
41
+ data: a(() => ({ manualFilter: l.control.data })),
42
+ possibleValueIds: a(
43
+ () => d.value?.map(({ id: n }) => n) ?? null
44
+ )
45
+ });
46
+ e = c;
47
+ const w = a(() => {
48
+ const { selected: n, deselected: t } = i.value;
49
+ return {
50
+ includedValues: n,
51
+ excludedValues: t,
52
+ includeUnknownValues: l.control.data.includeUnknownColumns
53
+ };
54
+ }), h = a(
55
+ () => i.value.selected === null ? I(L) : null
56
+ ), { excludedLabel: m, includedLabel: p } = x(
57
+ g(l, "control")
58
+ ), _ = a(() => m ?? "Excludes"), V = a(() => p ?? "Includes"), C = a(
59
+ () => l.control.uischema.options?.twinlistSize
60
+ ), b = { props: l, get setManualFilterOnChange() {
61
+ return e;
62
+ }, set setManualFilterOnChange(n) {
63
+ e = n;
64
+ }, onChangeTwinlist: o, onManualSelectionChange: u, possibleValues: d, selectedAndDeselected: i, setCurrentManualFilter: c, manualSelection: w, loadingInfo: h, excludedLabel: m, includedLabel: p, leftLabel: _, rightLabel: V, twinlistSize: C, get Twinlist() {
65
+ return q;
66
+ } };
67
+ return Object.defineProperty(b, "__isScriptSetup", { enumerable: !1, value: !0 }), b;
68
+ }
69
+ });
70
+ function O(s, r, l, e, o, u) {
71
+ return M(), F(e.Twinlist, T(s.$attrs, {
72
+ id: l.labelForId,
73
+ "show-search": "",
74
+ disabled: l.disabled,
75
+ "empty-state-component": e.loadingInfo,
76
+ "model-value": e.manualSelection,
77
+ "possible-values": e.possibleValues ?? [],
78
+ size: e.twinlistSize,
79
+ "left-label": e.leftLabel,
80
+ "right-label": e.rightLabel,
81
+ "is-valid": l.isValid,
82
+ compact: "",
83
+ "show-resize-handle": "",
84
+ "onUpdate:modelValue": e.onManualSelectionChange
85
+ }), null, 16, ["id", "disabled", "empty-state-component", "model-value", "possible-values", "size", "left-label", "right-label", "is-valid"]);
86
+ }
87
+ const K = /* @__PURE__ */ z(D, [["render", O], ["__scopeId", "data-v-a15ed4d5"], ["__file", "/Users/albrecht/Documents/KNIME/git/webapps-common/packages/jsonforms/src/uiComponents/twinlist/ManualTwinlistControl.vue"]]);
88
+ export {
89
+ K as default
90
+ };
@@ -0,0 +1,48 @@
1
+ import { defineComponent as r, toRef as a, createElementBlock as n, openBlock as s, Fragment as u, createCommentVNode as c, createVNode as d } from "vue";
2
+ import { u as m } from "./usePossibleValues-DTVXBGRC.js";
3
+ import { M as p } from "./MultiselectListBox-CfdPbcn1.js";
4
+ import { _ as b } from "./SectionHeading.vue_vue_type_style_index_0_scoped_f06e9b7d_lang-B5ALSUVO.js";
5
+ const _ = /* @__PURE__ */ r({
6
+ __name: "MultiSelectListBoxControl",
7
+ props: {
8
+ control: { type: Object, required: !0 },
9
+ handleChange: { type: Function, required: !0 },
10
+ changeValue: { type: Function, required: !0 },
11
+ disabled: { type: Boolean, required: !0 },
12
+ isValid: { type: Boolean, required: !0 },
13
+ onRegisterValidation: { type: Function, required: !0 },
14
+ labelForId: { type: String, required: !0 }
15
+ },
16
+ setup(l, { expose: i }) {
17
+ i();
18
+ const e = l, { possibleValues: t } = m(a(e, "control")), o = { props: e, possibleValues: t, get MultiselectListBox() {
19
+ return p;
20
+ } };
21
+ return Object.defineProperty(o, "__isScriptSetup", { enumerable: !1, value: !0 }), o;
22
+ }
23
+ });
24
+ function f(l, i, e, t, o, V) {
25
+ return s(), n(
26
+ u,
27
+ null,
28
+ [
29
+ c(" eslint-disable vue/attribute-hyphenation ariaLabel needs to be given like this for typescript to not complain "),
30
+ d(t.MultiselectListBox, {
31
+ id: e.labelForId,
32
+ "possible-values": t.possibleValues || [],
33
+ disabled: e.disabled,
34
+ "model-value": e.control.data,
35
+ "is-valid": e.isValid,
36
+ ariaLabel: e.control.label,
37
+ size: e.control.uischema.options?.size,
38
+ "onUpdate:modelValue": e.changeValue
39
+ }, null, 8, ["id", "possible-values", "disabled", "model-value", "is-valid", "ariaLabel", "size", "onUpdate:modelValue"])
40
+ ],
41
+ 2112
42
+ /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
43
+ );
44
+ }
45
+ const y = /* @__PURE__ */ b(_, [["render", f], ["__file", "/Users/albrecht/Documents/KNIME/git/webapps-common/packages/jsonforms/src/uiComponents/MultiSelectListBoxControl.vue"]]);
46
+ export {
47
+ y as default
48
+ };
@@ -0,0 +1,486 @@
1
+ import { createElementBlock as B, openBlock as h, createElementVNode as R, toRef as _, resolveComponent as p, normalizeClass as A, createBlock as v, createCommentVNode as V, createVNode as y, withCtx as b, mergeProps as q, defineComponent as K, ref as H, computed as c, markRaw as W } from "vue";
2
+ import { m as G } from "./index-Blg1O3Fz.js";
3
+ import { u as J, a as Q } from "./usePossibleValues-DTVXBGRC.js";
4
+ import { a as X, S as Y, u as Z, T as $ } from "./TwinlistLoadingInfo-Cy6HY-97.js";
5
+ import { u as ee } from "./MultimodeTwinlistControl.vue_vue_type_style_index_0_scoped_bd2eaa56_lang-pnMOUiIt.js";
6
+ import { f as k } from "./useSearch-hpyYQ_6y.js";
7
+ import { C as te } from "./Checkboxes-Bofcg7tl.js";
8
+ import { y as ae, _ as D } from "./SectionHeading.vue_vue_type_style_index_0_scoped_f06e9b7d_lang-B5ALSUVO.js";
9
+ import { V as le } from "./ValueSwitch-Ozmr1YfK.js";
10
+ const ne = {
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 se(t, s) {
18
+ return h(), B("svg", ne, s[0] || (s[0] = [
19
+ R(
20
+ "path",
21
+ { d: "m13.31 27.81 5.11-3.19v-9.15L28.95 4.19H3.05l10.26 11.28z" },
22
+ null,
23
+ -1
24
+ /* CACHED */
25
+ )
26
+ ]));
27
+ }
28
+ const ie = { render: se }, oe = {
29
+ manual: "Manual",
30
+ wildcard: "Wildcard",
31
+ regex: "Regex",
32
+ type: "Type"
33
+ }, de = {
34
+ name: "MultiModeTwinlist",
35
+ components: {
36
+ Label: ae,
37
+ FilterIcon: ie,
38
+ SearchInput: Y,
39
+ Checkboxes: te,
40
+ ValueSwitch: le,
41
+ Twinlist: X
42
+ },
43
+ props: {
44
+ /**
45
+ * initial values
46
+ */
47
+ mode: {
48
+ type: String,
49
+ required: !1,
50
+ default: "manual"
51
+ },
52
+ manualSelection: {
53
+ type: [Object, Array, null],
54
+ default: () => []
55
+ },
56
+ pattern: {
57
+ type: String,
58
+ default: ""
59
+ },
60
+ caseSensitivePattern: {
61
+ default: !1,
62
+ type: Boolean
63
+ },
64
+ inversePattern: {
65
+ default: !1,
66
+ type: Boolean
67
+ },
68
+ withTypes: {
69
+ type: Boolean,
70
+ default: !0
71
+ },
72
+ selectedTypes: {
73
+ type: Array,
74
+ default: () => []
75
+ },
76
+ /**
77
+ * Hiding and disabling
78
+ */
79
+ showMode: {
80
+ default: !0,
81
+ type: Boolean
82
+ },
83
+ // enable search in case of manual selection
84
+ showSearch: {
85
+ default: !0,
86
+ type: Boolean
87
+ },
88
+ disabled: {
89
+ default: !1,
90
+ type: Boolean
91
+ },
92
+ /**
93
+ * Labels
94
+ */
95
+ withModeLabel: {
96
+ default: !1,
97
+ type: Boolean
98
+ },
99
+ modeLabel: {
100
+ type: String,
101
+ required: !1,
102
+ default: "Selection mode"
103
+ },
104
+ withPatternLabel: {
105
+ default: !1,
106
+ type: Boolean
107
+ },
108
+ patternLabel: {
109
+ type: String,
110
+ required: !1,
111
+ default: "Pattern"
112
+ },
113
+ withTypesLabel: {
114
+ default: !1,
115
+ type: Boolean
116
+ },
117
+ typesLabel: {
118
+ type: String,
119
+ required: !1,
120
+ default: "Selected types"
121
+ },
122
+ /**
123
+ * List of possible values. Each item must have an `id` and a `text` property
124
+ * @example
125
+ * [{
126
+ * id: 'pdf',
127
+ * text: 'PDF'
128
+ * }, {
129
+ * id: 'XLS',
130
+ * text: 'Excel',
131
+ * }]
132
+ * For type selection, additionally, an element has to have a property `type` wich itself has properties
133
+ * `id` and `text`, e.g.
134
+ * [{
135
+ * id: 'pdf',
136
+ * text: 'PDF',
137
+ * type: {
138
+ * id: 'StringValue',
139
+ * text: 'String'
140
+ * }]
141
+ */
142
+ possibleValues: {
143
+ type: Array,
144
+ default: () => []
145
+ },
146
+ /**
147
+ * List of possible types which should be selectable but are not necessarily present in the possible values.
148
+ */
149
+ additionalPossibleTypes: {
150
+ type: Array,
151
+ default: () => []
152
+ },
153
+ compact: {
154
+ type: Boolean,
155
+ default: !1
156
+ }
157
+ },
158
+ emits: [
159
+ // Prop updates
160
+ "update:manualSelection",
161
+ "update:pattern",
162
+ "update:selectedTypes",
163
+ "update:mode",
164
+ "update:caseSensitivePattern",
165
+ "update:inversePattern",
166
+ // Non-prop update
167
+ "update:selected"
168
+ ],
169
+ setup(t) {
170
+ const { includedValues: s } = Z(
171
+ _(t, "manualSelection")
172
+ );
173
+ return { manuallySelected: s };
174
+ },
175
+ data() {
176
+ return {
177
+ invalidPossibleValueIds: /* @__PURE__ */ new Set()
178
+ };
179
+ },
180
+ computed: {
181
+ possibleValueIds() {
182
+ return this.possibleValues.map(({ id: t }) => t);
183
+ },
184
+ possibleTypes() {
185
+ const t = this.possibleValues.map(({ type: n }) => n).filter(Boolean), s = t.map((n) => n.id);
186
+ return [...this.additionalPossibleTypes.filter(
187
+ (n) => n && !s.includes(n.id)
188
+ ), ...t].filter((n) => n && n.id !== "").filter(
189
+ // remove duplicates
190
+ (n, i, f) => i === f.findIndex((d) => d.id === n.id && d.text === n.text)
191
+ );
192
+ },
193
+ matchingValueIds() {
194
+ return this.possibleValues.filter((t) => this.itemMatches(t)).map((t) => t.id);
195
+ },
196
+ twinlistModelValue() {
197
+ return this.mode === "manual" ? this.manualSelection : this.matchingValueIds;
198
+ },
199
+ selectedValues() {
200
+ return this.mode === "manual" ? this.manuallySelected : this.matchingValueIds;
201
+ },
202
+ selectionDisabled() {
203
+ return this.disabled || this.mode !== "manual";
204
+ },
205
+ normalizedSearchTerm() {
206
+ return this.mode === "manual" ? null : k[this.mode].normalize(
207
+ this.mode === "type" ? this.selectedTypes : this.pattern,
208
+ this.caseSensitivePattern
209
+ );
210
+ },
211
+ possibleModes() {
212
+ let t = Object.entries(oe).map(([s, e]) => ({ id: s, text: e }));
213
+ return this.withTypes || (t = t.filter((s) => s.id !== "type")), t;
214
+ }
215
+ },
216
+ watch: {
217
+ selectedValues: {
218
+ immediate: !0,
219
+ handler(t, s) {
220
+ !s || t === null || (t.length !== s.length || s.some((e, l) => e !== t[l])) && this.$emit("update:selected", this.selectedValues);
221
+ }
222
+ }
223
+ },
224
+ methods: {
225
+ onManualInput(t) {
226
+ this.mode === "manual" && this.$emit("update:manualSelection", t);
227
+ },
228
+ onPatternInput(t) {
229
+ this.$emit("update:pattern", t);
230
+ },
231
+ onTypeInput(t) {
232
+ this.$emit("update:selectedTypes", t, this.possibleTypes);
233
+ },
234
+ onModeChange(t) {
235
+ this.$emit("update:mode", t);
236
+ },
237
+ onToggleCaseSensitivePattern(t) {
238
+ this.$emit("update:caseSensitivePattern", t);
239
+ },
240
+ onToggleInversePattern(t) {
241
+ this.$emit("update:inversePattern", t);
242
+ },
243
+ validate() {
244
+ return this.$refs.twinlist.validate();
245
+ },
246
+ hasSelection() {
247
+ return !!this.selectedValues?.length;
248
+ },
249
+ itemMatches(t) {
250
+ return k[this.mode].test(
251
+ this.mode === "type" ? t.type?.id : t.text,
252
+ this.normalizedSearchTerm,
253
+ this.caseSensitivePattern,
254
+ this.inversePattern
255
+ );
256
+ }
257
+ }
258
+ };
259
+ function re(t, s, e, l, n, i) {
260
+ const f = p("ValueSwitch"), d = p("Label"), g = p("FilterIcon"), w = p("SearchInput"), T = p("Checkboxes"), S = p("Twinlist");
261
+ return h(), B(
262
+ "div",
263
+ {
264
+ class: A(["multi-mode-twinlist", { disabled: e.disabled }])
265
+ },
266
+ [
267
+ e.showMode ? (h(), v(d, {
268
+ key: 0,
269
+ active: e.withModeLabel,
270
+ text: e.modeLabel,
271
+ class: "label"
272
+ }, {
273
+ default: b(({ labelForId: r }) => [
274
+ y(f, {
275
+ id: r,
276
+ ref: "mode",
277
+ compact: e.compact,
278
+ "model-value": e.mode,
279
+ disabled: e.disabled,
280
+ "possible-values": i.possibleModes,
281
+ "onUpdate:modelValue": i.onModeChange
282
+ }, null, 8, ["id", "compact", "model-value", "disabled", "possible-values", "onUpdate:modelValue"])
283
+ ]),
284
+ _: 1
285
+ /* STABLE */
286
+ }, 8, ["active", "text"])) : V("v-if", !0),
287
+ e.mode === "regex" || e.mode === "wildcard" ? (h(), v(d, {
288
+ key: 1,
289
+ active: e.withPatternLabel,
290
+ text: e.patternLabel,
291
+ class: "label"
292
+ }, {
293
+ default: b(({ labelForId: r }) => [
294
+ y(w, {
295
+ id: r,
296
+ ref: "search",
297
+ "model-value": e.pattern,
298
+ label: e.patternLabel,
299
+ "initial-case-sensitive-search": e.caseSensitivePattern,
300
+ "initial-inverse-search": e.inversePattern,
301
+ placeholder: "Pattern",
302
+ "show-case-sensitive-search-button": "",
303
+ "show-inverse-search-button": "",
304
+ disabled: e.disabled,
305
+ tooltips: {
306
+ inverseSearch: "Move matching to other side"
307
+ },
308
+ compact: e.compact,
309
+ "onUpdate:modelValue": i.onPatternInput,
310
+ onToggleCaseSensitiveSearch: i.onToggleCaseSensitivePattern,
311
+ onToggleInverseSearch: i.onToggleInversePattern
312
+ }, {
313
+ icon: b(() => [
314
+ y(g)
315
+ ]),
316
+ _: 2
317
+ /* DYNAMIC */
318
+ }, 1032, ["id", "model-value", "label", "initial-case-sensitive-search", "initial-inverse-search", "disabled", "compact", "onUpdate:modelValue", "onToggleCaseSensitiveSearch", "onToggleInverseSearch"])
319
+ ]),
320
+ _: 1
321
+ /* STABLE */
322
+ }, 8, ["active", "text"])) : V("v-if", !0),
323
+ e.mode === "type" && i.possibleTypes.length > 0 ? (h(), v(d, {
324
+ key: 2,
325
+ active: e.withTypesLabel,
326
+ text: e.typesLabel,
327
+ class: "label"
328
+ }, {
329
+ default: b(() => [
330
+ y(T, {
331
+ "model-value": e.selectedTypes,
332
+ "possible-values": i.possibleTypes,
333
+ disabled: e.disabled,
334
+ "onUpdate:modelValue": i.onTypeInput
335
+ }, null, 8, ["model-value", "possible-values", "disabled", "onUpdate:modelValue"])
336
+ ]),
337
+ _: 1
338
+ /* STABLE */
339
+ }, 8, ["active", "text"])) : V("v-if", !0),
340
+ y(S, q(t.$attrs, {
341
+ ref: "twinlist",
342
+ disabled: i.selectionDisabled,
343
+ "show-search": e.mode === "manual" && e.showSearch,
344
+ "model-value": i.twinlistModelValue,
345
+ "possible-values": e.possibleValues,
346
+ compact: e.compact,
347
+ "onUpdate:modelValue": i.onManualInput
348
+ }), null, 16, ["disabled", "show-search", "model-value", "possible-values", "compact", "onUpdate:modelValue"])
349
+ ],
350
+ 2
351
+ /* CLASS */
352
+ );
353
+ }
354
+ const ue = /* @__PURE__ */ D(de, [["render", re], ["__scopeId", "data-v-78d78d5f"], ["__file", "/Users/albrecht/Documents/KNIME/git/webapps-common/packages/components/src/components/forms/MultiModeTwinlist/MultiModeTwinlist.vue"]]), ce = /* @__PURE__ */ K({
355
+ __name: "MultimodeTwinlistControl",
356
+ props: {
357
+ control: { type: Object, required: !0 },
358
+ handleChange: { type: Function, required: !0 },
359
+ changeValue: { type: Function, required: !0 },
360
+ disabled: { type: Boolean, required: !0 },
361
+ isValid: { type: Boolean, required: !0 },
362
+ onRegisterValidation: { type: Function, required: !0 },
363
+ labelForId: { type: String, required: !0 },
364
+ twinlistSize: { type: Number, required: !1, default: 10 },
365
+ twinlistLeftLabel: { type: String, required: !1, default: "Excludes" },
366
+ showUnknownValues: { type: Boolean, required: !1, default: !1 },
367
+ twinlistRightLabel: { type: String, required: !1, default: "Includes" }
368
+ },
369
+ setup(t, { expose: s }) {
370
+ s();
371
+ const e = t;
372
+ let l = () => {
373
+ };
374
+ const n = (a) => {
375
+ const o = G(e.control.data, a);
376
+ e.changeValue(o), l?.(o.manualFilter);
377
+ }, i = (a) => {
378
+ n({ selected: a });
379
+ }, f = (a) => {
380
+ if (a !== null)
381
+ if ("includedValues" in a) {
382
+ const { includedValues: o, excludedValues: m, includeUnknownValues: u } = a;
383
+ if (!o || !m)
384
+ return;
385
+ n({
386
+ manualFilter: {
387
+ manuallySelected: o,
388
+ manuallyDeselected: m,
389
+ includeUnknownColumns: u
390
+ }
391
+ });
392
+ } else
393
+ n({ manualFilter: { manuallySelected: a } });
394
+ }, d = (a) => {
395
+ n({ patternFilter: { pattern: a } });
396
+ }, g = (a) => {
397
+ n({ mode: a.toUpperCase() });
398
+ }, w = (a, o) => {
399
+ n({ typeFilter: { selectedTypes: a, typeDisplays: o } });
400
+ }, T = (a) => {
401
+ n({ patternFilter: { isInverted: a } });
402
+ }, S = (a) => {
403
+ n({ patternFilter: { isCaseSensitive: a } });
404
+ }, { possibleValues: r } = J(
405
+ _(e, "control")
406
+ ), M = H([]), { selectedAndDeselected: C, setCurrentManualFilter: I } = ee({
407
+ data: c(() => e.control.data),
408
+ possibleValueIds: c(
409
+ () => r.value?.map(({ id: a }) => a) ?? null
410
+ )
411
+ });
412
+ l = I;
413
+ const z = c(() => {
414
+ const { selected: a, deselected: o } = C.value;
415
+ return e.showUnknownValues ? {
416
+ includedValues: a,
417
+ excludedValues: o,
418
+ includeUnknownValues: e.control.data.manualFilter.includeUnknownColumns
419
+ } : a;
420
+ }), O = c(
421
+ () => C.value.selected === null ? W($) : null
422
+ ), L = (a) => typeof a > "u" ? {} : a.reduce(
423
+ (o, { id: m, text: u }) => ({ ...o, [m]: u }),
424
+ {}
425
+ ), P = () => {
426
+ const a = e.control.data.typeFilter;
427
+ if (!a)
428
+ return [];
429
+ const o = a.selectedTypes, m = L(
430
+ a.typeDisplays
431
+ );
432
+ return o.map((u) => ({
433
+ id: u,
434
+ text: m[u] || u
435
+ }));
436
+ };
437
+ M.value = P();
438
+ const j = c(
439
+ () => !!r.value?.[0]?.hasOwnProperty("type")
440
+ ), { excludedLabel: x, includedLabel: F } = Q(
441
+ _(e, "control")
442
+ ), E = c(() => x ?? e.twinlistLeftLabel), N = c(() => F ?? e.twinlistRightLabel), U = { props: e, get setManualFilterOnChange() {
443
+ return l;
444
+ }, set setManualFilterOnChange(a) {
445
+ l = a;
446
+ }, onChangeTwinlist: n, onSelectedChange: i, onManualSelectionChange: f, onPatternChange: d, onModeChange: g, onSelectedTypesChange: w, onInversePatternChange: T, onCaseSensitiveChange: S, possibleValues: r, previouslySelectedTypes: M, selectedAndDeselected: C, setCurrentManualFilter: I, manualSelection: z, loadingInfo: O, typeDisplaysToMap: L, getPreviouslySelectedTypes: P, withTypes: j, excludedLabel: x, includedLabel: F, leftLabel: E, rightLabel: N, get MultiModeTwinList() {
447
+ return ue;
448
+ } };
449
+ return Object.defineProperty(U, "__isScriptSetup", { enumerable: !1, value: !0 }), U;
450
+ }
451
+ });
452
+ function me(t, s, e, l, n, i) {
453
+ return h(), v(l.MultiModeTwinList, q(t.$attrs, {
454
+ id: e.labelForId,
455
+ disabled: e.disabled,
456
+ "with-types": l.withTypes,
457
+ "selected-types": e.control.data.typeFilter?.selectedTypes,
458
+ "additional-possible-types": l.previouslySelectedTypes,
459
+ pattern: e.control.data.patternFilter.pattern,
460
+ mode: e.control.data.mode.toLowerCase(),
461
+ "case-sensitive-pattern": e.control.data.patternFilter.isCaseSensitive,
462
+ "empty-state-component": l.loadingInfo,
463
+ "inverse-pattern": e.control.data.patternFilter.isInverted,
464
+ "manual-selection": l.manualSelection,
465
+ "include-unknown-values": e.control.data.manualFilter.includeUnknownColumns,
466
+ "mode-label": "Selection mode",
467
+ "possible-values": l.possibleValues ?? [],
468
+ size: e.twinlistSize,
469
+ "left-label": l.leftLabel,
470
+ "right-label": l.rightLabel,
471
+ "is-valid": e.isValid,
472
+ compact: "",
473
+ "show-resize-handle": "",
474
+ "onUpdate:selected": l.onSelectedChange,
475
+ "onUpdate:manualSelection": l.onManualSelectionChange,
476
+ "onUpdate:pattern": l.onPatternChange,
477
+ "onUpdate:mode": l.onModeChange,
478
+ "onUpdate:selectedTypes": l.onSelectedTypesChange,
479
+ "onUpdate:inversePattern": l.onInversePatternChange,
480
+ "onUpdate:caseSensitivePattern": l.onCaseSensitiveChange
481
+ }), null, 16, ["id", "disabled", "with-types", "selected-types", "additional-possible-types", "pattern", "mode", "case-sensitive-pattern", "empty-state-component", "inverse-pattern", "manual-selection", "include-unknown-values", "possible-values", "size", "left-label", "right-label", "is-valid"]);
482
+ }
483
+ const Se = /* @__PURE__ */ D(ce, [["render", me], ["__scopeId", "data-v-bd2eaa56"], ["__file", "/Users/albrecht/Documents/KNIME/git/webapps-common/packages/jsonforms/src/uiComponents/twinlist/MultimodeTwinlistControl.vue"]]);
484
+ export {
485
+ Se as default
486
+ };
@@ -1,6 +1,6 @@
1
1
  import { ref as v, watch as m } from "vue";
2
2
  import { g as S, a as g } from "./index-Blg1O3Fz.js";
3
- import "./TwinlistLoadingInfo-CQRx9cEu.js";
3
+ import "./TwinlistLoadingInfo-Cy6HY-97.js";
4
4
  const w = ({
5
5
  knownValuesSide: s,
6
6
  possibleValueIds: l,