@knime/jsonforms 1.12.0 → 1.12.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 (80) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/{AnyOfTwinlist-Bm92BxCq.js → AnyOfTwinlist-C2hopPFE.js} +1 -1
  3. package/dist/{Button-BU4AHIik.js → Button-a3DyR88M.js} +1 -1
  4. package/dist/{CheckboxControl-BfHrx05I.js → CheckboxControl-DoQCgnTf.js} +1 -1
  5. package/dist/{Checkboxes-BgwoEGV-.js → Checkboxes-DNbu05C7.js} +1 -1
  6. package/dist/{CheckboxesControl-DeDkOQTP.js → CheckboxesControl-DgwL4BAl.js} +3 -3
  7. package/dist/{ComboBoxControl-CS3HULei.js → ComboBoxControl-DSSfSqIC.js} +5 -5
  8. package/dist/{DateControl-DeuREfXO.js → DateControl-DArS42tY.js} +1 -1
  9. package/dist/{DateTimeControl-Bv15fo80.js → DateTimeControl-BuZ5D5EW.js} +2 -2
  10. package/dist/{DateTimeFormatInput-CTOVceJH.js → DateTimeFormatInput-BJepKEOT.js} +3 -3
  11. package/dist/{DateTimeFormatPickerControl-5fPMIUZs.js → DateTimeFormatPickerControl-YAKOrguY.js} +2 -2
  12. package/dist/{DateTimeFormatPickerWithTypeControl-yyIHxX6-.js → DateTimeFormatPickerWithTypeControl-CM2eu1Bq.js} +3 -3
  13. package/dist/{DateTimeInput-BPaZ_pEv.js → DateTimeInput-B30lQ3sx.js} +6 -6
  14. package/dist/{Dropdown-D6ytFIra.js → Dropdown-Cp5fC5vt.js} +5 -5
  15. package/dist/{DropdownControl-Bl9djFfv.js → DropdownControl-DXtUnm7l.js} +2 -2
  16. package/dist/{HorizontalLayout-BmgysFCG.js → HorizontalLayout-BTxnoo0O.js} +1 -1
  17. package/dist/{InputField-D-drv5NW.js → InputField-B2bBpIrm.js} +1 -1
  18. package/dist/{IntegerControl-CzusffS4.js → IntegerControl-CamhgT4b.js} +1 -1
  19. package/dist/{IntervalControl-DBlPYbLt.js → IntervalControl-Dhz8aY9W.js} +11 -11
  20. package/dist/{LoadingDropdown-xAK7TsDc.js → LoadingDropdown-DFLGXxJe.js} +3 -3
  21. package/dist/ManualTwinlistControl-C1Bk354m.js +85 -0
  22. package/dist/{MultiSelectListBoxControl-D1TD3jNm.js → MultiSelectListBoxControl-DiSPf1p7.js} +2 -2
  23. package/dist/MultimodeTwinlistControl-DnpmvhFB.js +469 -0
  24. package/dist/MultimodeTwinlistControl.vue_vue_type_style_index_0_scoped_ca157254_lang-DjGJNwBV.js +65 -0
  25. package/dist/{MultiselectListBox-1nfMHeks.js → MultiselectListBox-DMZvKZT2.js} +2 -2
  26. package/dist/{NameFilter-CUdwbsjT.js → NameFilter-qYooMIRr.js} +1 -1
  27. package/dist/{NumberControl-DEGlKs0O.js → NumberControl-mAvpRa8P.js} +1 -1
  28. package/dist/{NumberControlBase.vue_vue_type_script_setup_true_lang-C0B7QKut.js → NumberControlBase.vue_vue_type_script_setup_true_lang-DsYiLVc0.js} +2 -2
  29. package/dist/{NumberInput-dE-KEe9u.js → NumberInput-DfYpYs35.js} +1 -1
  30. package/dist/{OneOfDropdown-BMcupih8.js → OneOfDropdown-Dx9oWy6Y.js} +1 -1
  31. package/dist/{RadioControl-Cgm2SatI.js → RadioControl-C0sZejgk.js} +2 -2
  32. package/dist/{RadioControlBase.vue_vue_type_script_setup_true_lang-n6oZHbxa.js → RadioControlBase.vue_vue_type_script_setup_true_lang-BBZFZcBX.js} +3 -3
  33. package/dist/{RichTextControl-YEul6CJZ.js → RichTextControl-ikOmp5Zc.js} +4 -4
  34. package/dist/{SectionHeading-HNpa-JMB.js → SectionHeading-DoKeahJG.js} +1 -1
  35. package/dist/{SectionHeading.vue_vue_type_style_index_0_scoped_625edfbe_lang-DHWwwUrR.js → SectionHeading.vue_vue_type_style_index_0_scoped_625edfbe_lang-Dq3HWX2w.js} +808 -790
  36. package/dist/{SectionLayout-D-_-IdPp.js → SectionLayout-DqhrTk7G.js} +13 -13
  37. package/dist/SettingsSubPanel-BsP2TPpl.js +5 -0
  38. package/dist/{SettingsSubPanelLayout-C84okIEY.js → SettingsSubPanelLayout-QgTIOWrJ.js} +6 -6
  39. package/dist/{SimpleButtonControl-DbJCOykS.js → SimpleButtonControl-DWOwphdQ.js} +2 -2
  40. package/dist/{SimpleTwinlistControl-CAaqVRDo.js → SimpleTwinlistControl-Bm8f15KT.js} +2 -2
  41. package/dist/{SingleSelectControl-Dn5eHuj1.js → SingleSelectControl-DzoiFSGp.js} +2 -2
  42. package/dist/{SingleSelectListBoxControl-DXBVcA1B.js → SingleSelectListBoxControl-COshImPF.js} +24 -23
  43. package/dist/{SortListControl-B_e_Pieg.js → SortListControl-D5jBOA2x.js} +13 -13
  44. package/dist/{StyledListItem-CGCkC79t.js → StyledListItem-DCmVSIus.js} +1 -1
  45. package/dist/{TextAreaControl-DF-7_-DW.js → TextAreaControl-ijQXrkd5.js} +1 -1
  46. package/dist/{TextControl-FEepT6DT.js → TextControl-Di5u3kig.js} +1 -1
  47. package/dist/{TextControl.vue_vue_type_script_setup_true_lang-Dd8il0B5.js → TextControl.vue_vue_type_script_setup_true_lang-DWUPaWoR.js} +3 -3
  48. package/dist/{TimeControl-CL1jfXXP.js → TimeControl-oa9oA0c7.js} +2 -2
  49. package/dist/{TwinlistControlBase-DvXv0Vo6.js → TwinlistControlBase-Dm8KSJE0.js} +3 -3
  50. package/dist/{TwinlistLoadingInfo-CcOQiBV3.js → TwinlistLoadingInfo-Dcbz2hUN.js} +12 -12
  51. package/dist/{TypedStringFilter-CjW7XKo7.js → TypedStringFilter-DOox0S1z.js} +1 -1
  52. package/dist/{ValueSwitch-B-yL0b_A.js → ValueSwitch-Ba0d4Jda.js} +1 -1
  53. package/dist/{ValueSwitchControl-DeVtjzwE.js → ValueSwitchControl-BFY2YwjA.js} +1 -1
  54. package/dist/{VerticalLayout-c3McC0j1.js → VerticalLayout-CdmecqY1.js} +5 -5
  55. package/dist/{VerticalLayoutBase-Dgnqavoq.js → VerticalLayoutBase-2Al6mtWQ.js} +1 -1
  56. package/dist/{ZonedDateTimeControl-CkODiVzJ.js → ZonedDateTimeControl-xwK_O0Ue.js} +4 -4
  57. package/dist/{_baseEach-B-g2g11B.js → _baseEach-kS6aH7yJ.js} +2 -2
  58. package/dist/{_baseIteratee-CHW73TMN.js → _baseIteratee-CcwzbMbu.js} +13 -13
  59. package/dist/{_getTag-BWiFGABh.js → _getTag-DpK8q53u.js} +1 -1
  60. package/dist/knime-jsonforms.css +1 -1
  61. package/dist/knime-jsonforms.js +17 -16
  62. package/dist/{localTimeUtils-DrKyGLv2.js → localTimeUtils-4g4u5t7X.js} +1 -1
  63. package/dist/{magic-string.es-DLCZ-p-e.js → magic-string.es-CWjITDzi.js} +1 -1
  64. package/dist/src/constants/inputFormats.d.ts +1 -0
  65. package/dist/src/higherOrderComponents/control/LabeledControl.vue.d.ts +2 -0
  66. package/dist/src/higherOrderComponents/control/util.d.ts +2 -0
  67. package/dist/src/renderers/defaultRenderers.d.ts +1 -0
  68. package/dist/src/renderers/twinlistRenderer.d.ts +2 -0
  69. package/dist/src/uiComponents/twinlist/ManualTwinlistControl.vue.d.ts +8 -0
  70. package/dist/src/uiComponents/twinlist/useUnknownValuesInTwinlist.d.ts +3 -1
  71. package/dist/{svgWithTitle-C1XM8U1L.js → svgWithTitle-DGBkWQrO.js} +1 -1
  72. package/dist/testUtils/component.d.ts +4 -4
  73. package/dist/testing.js +3 -3
  74. package/dist/toString-ByDUn5bZ.js +25 -0
  75. package/dist/{useBuiltinValidations-bc9asSxB.js → useBuiltinValidations-ChTFREt7.js} +1 -1
  76. package/dist/{usePossibleValues-NHPCKPdi.js → usePossibleValues-BB4he0jT.js} +1 -1
  77. package/package.json +2 -2
  78. package/dist/MultimodeTwinlistControl-BrluVu3Y.js +0 -526
  79. package/dist/SettingsSubPanel-CNXzO0_i.js +0 -5
  80. package/dist/toString-DfO6VEzj.js +0 -25
@@ -0,0 +1,469 @@
1
+ import { openBlock as h, createElementBlock as M, createElementVNode as j, toRef as I, resolveComponent as m, normalizeClass as N, createBlock as w, withCtx as v, createVNode as f, createCommentVNode as V, mergeProps as _, defineComponent as O, ref as H, computed as c, markRaw as W, unref as L } from "vue";
2
+ import { m as G } from "./index-Blg1O3Fz.js";
3
+ import { u as J, a as K } from "./usePossibleValues-BB4he0jT.js";
4
+ import { S as Q, a as X, u as Y, T as Z } from "./TwinlistLoadingInfo-Dcbz2hUN.js";
5
+ import { u as $ } from "./MultimodeTwinlistControl.vue_vue_type_style_index_0_scoped_ca157254_lang-DjGJNwBV.js";
6
+ import { f as P } from "./useSearch-hpyYQ_6y.js";
7
+ import { C as ee } from "./Checkboxes-DNbu05C7.js";
8
+ import { x as te, _ as U } from "./SectionHeading.vue_vue_type_style_index_0_scoped_625edfbe_lang-Dq3HWX2w.js";
9
+ import { V as ae } from "./ValueSwitch-Ba0d4Jda.js";
10
+ const le = {
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 ne(t, l) {
18
+ return h(), M("svg", le, l[0] || (l[0] = [
19
+ j("path", { d: "m13.31 27.81 5.11-3.19v-9.15L28.95 4.19H3.05l10.26 11.28z" }, null, -1)
20
+ ]));
21
+ }
22
+ const se = { render: ne }, ie = {
23
+ manual: "Manual",
24
+ wildcard: "Wildcard",
25
+ regex: "Regex",
26
+ type: "Type"
27
+ }, oe = {
28
+ name: "MultiModeTwinlist",
29
+ components: {
30
+ Label: te,
31
+ FilterIcon: se,
32
+ SearchInput: Q,
33
+ Checkboxes: ee,
34
+ ValueSwitch: ae,
35
+ Twinlist: X
36
+ },
37
+ props: {
38
+ /**
39
+ * initial values
40
+ */
41
+ mode: {
42
+ type: String,
43
+ required: !1,
44
+ default: "manual"
45
+ },
46
+ manualSelection: {
47
+ type: [Object, Array, null],
48
+ default: () => []
49
+ },
50
+ pattern: {
51
+ type: String,
52
+ default: ""
53
+ },
54
+ caseSensitivePattern: {
55
+ default: !1,
56
+ type: Boolean
57
+ },
58
+ inversePattern: {
59
+ default: !1,
60
+ type: Boolean
61
+ },
62
+ withTypes: {
63
+ type: Boolean,
64
+ default: !0
65
+ },
66
+ selectedTypes: {
67
+ type: Array,
68
+ default: () => []
69
+ },
70
+ /**
71
+ * Hiding and disabling
72
+ */
73
+ showMode: {
74
+ default: !0,
75
+ type: Boolean
76
+ },
77
+ // enable search in case of manual selection
78
+ showSearch: {
79
+ default: !0,
80
+ type: Boolean
81
+ },
82
+ disabled: {
83
+ default: !1,
84
+ type: Boolean
85
+ },
86
+ /**
87
+ * Labels
88
+ */
89
+ withModeLabel: {
90
+ default: !1,
91
+ type: Boolean
92
+ },
93
+ modeLabel: {
94
+ type: String,
95
+ required: !1,
96
+ default: "Selection mode"
97
+ },
98
+ withPatternLabel: {
99
+ default: !1,
100
+ type: Boolean
101
+ },
102
+ patternLabel: {
103
+ type: String,
104
+ required: !1,
105
+ default: "Pattern"
106
+ },
107
+ withTypesLabel: {
108
+ default: !1,
109
+ type: Boolean
110
+ },
111
+ typesLabel: {
112
+ type: String,
113
+ required: !1,
114
+ default: "Selected types"
115
+ },
116
+ /**
117
+ * List of possible values. Each item must have an `id` and a `text` property
118
+ * @example
119
+ * [{
120
+ * id: 'pdf',
121
+ * text: 'PDF'
122
+ * }, {
123
+ * id: 'XLS',
124
+ * text: 'Excel',
125
+ * }]
126
+ * For type selection, additionally, an element has to have a property `type` wich itself has properties
127
+ * `id` and `text`, e.g.
128
+ * [{
129
+ * id: 'pdf',
130
+ * text: 'PDF',
131
+ * type: {
132
+ * id: 'StringValue',
133
+ * text: 'String'
134
+ * }]
135
+ */
136
+ possibleValues: {
137
+ type: Array,
138
+ default: () => []
139
+ },
140
+ /**
141
+ * List of possible types which should be selectable but are not necessarily present in the possible values.
142
+ */
143
+ additionalPossibleTypes: {
144
+ type: Array,
145
+ default: () => []
146
+ },
147
+ compact: {
148
+ type: Boolean,
149
+ default: !1
150
+ }
151
+ },
152
+ emits: [
153
+ // Prop updates
154
+ "update:manualSelection",
155
+ "update:pattern",
156
+ "update:selectedTypes",
157
+ "update:mode",
158
+ "update:caseSensitivePattern",
159
+ "update:inversePattern",
160
+ // Non-prop update
161
+ "update:selected"
162
+ ],
163
+ setup(t) {
164
+ const { includedValues: l } = Y(
165
+ I(t, "manualSelection")
166
+ );
167
+ return { manuallySelected: l };
168
+ },
169
+ data() {
170
+ return {
171
+ invalidPossibleValueIds: /* @__PURE__ */ new Set()
172
+ };
173
+ },
174
+ computed: {
175
+ possibleValueIds() {
176
+ return this.possibleValues.map(({ id: t }) => t);
177
+ },
178
+ possibleTypes() {
179
+ const t = this.possibleValues.map(({ type: s }) => s).filter(Boolean), l = t.map((s) => s.id);
180
+ return [...this.additionalPossibleTypes.filter(
181
+ (s) => s && !l.includes(s.id)
182
+ ), ...t].filter((s) => s && s.id !== "").filter(
183
+ // remove duplicates
184
+ (s, i, b) => i === b.findIndex((r) => r.id === s.id && r.text === s.text)
185
+ );
186
+ },
187
+ matchingValueIds() {
188
+ return this.possibleValues.filter((t) => this.itemMatches(t)).map((t) => t.id);
189
+ },
190
+ twinlistModelValue() {
191
+ return this.mode === "manual" ? this.manualSelection : this.matchingValueIds;
192
+ },
193
+ selectedValues() {
194
+ return this.mode === "manual" ? this.manuallySelected : this.matchingValueIds;
195
+ },
196
+ selectionDisabled() {
197
+ return this.disabled || this.mode !== "manual";
198
+ },
199
+ normalizedSearchTerm() {
200
+ return this.mode === "manual" ? null : P[this.mode].normalize(
201
+ this.mode === "type" ? this.selectedTypes : this.pattern,
202
+ this.caseSensitivePattern
203
+ );
204
+ },
205
+ possibleModes() {
206
+ let t = Object.entries(ie).map(([l, a]) => ({ id: l, text: a }));
207
+ return this.withTypes || (t = t.filter((l) => l.id !== "type")), t;
208
+ }
209
+ },
210
+ watch: {
211
+ selectedValues: {
212
+ immediate: !0,
213
+ handler(t, l) {
214
+ !l || t === null || (t.length !== l.length || l.some((a, o) => a !== t[o])) && this.$emit("update:selected", this.selectedValues);
215
+ }
216
+ }
217
+ },
218
+ methods: {
219
+ onManualInput(t) {
220
+ this.mode === "manual" && this.$emit("update:manualSelection", t);
221
+ },
222
+ onPatternInput(t) {
223
+ this.$emit("update:pattern", t);
224
+ },
225
+ onTypeInput(t) {
226
+ this.$emit("update:selectedTypes", t, this.possibleTypes);
227
+ },
228
+ onModeChange(t) {
229
+ this.$emit("update:mode", t);
230
+ },
231
+ onToggleCaseSensitivePattern(t) {
232
+ this.$emit("update:caseSensitivePattern", t);
233
+ },
234
+ onToggleInversePattern(t) {
235
+ this.$emit("update:inversePattern", t);
236
+ },
237
+ validate() {
238
+ return this.$refs.twinlist.validate();
239
+ },
240
+ hasSelection() {
241
+ var t;
242
+ return !!((t = this.selectedValues) != null && t.length);
243
+ },
244
+ itemMatches(t) {
245
+ var a;
246
+ return P[this.mode].test(
247
+ this.mode === "type" ? (a = t.type) == null ? void 0 : a.id : t.text,
248
+ this.normalizedSearchTerm,
249
+ this.caseSensitivePattern,
250
+ this.inversePattern
251
+ );
252
+ }
253
+ }
254
+ };
255
+ function de(t, l, a, o, s, i) {
256
+ const b = m("ValueSwitch"), r = m("Label"), g = m("FilterIcon"), T = m("SearchInput"), S = m("Checkboxes"), y = m("Twinlist");
257
+ return h(), M("div", {
258
+ class: N(["multi-mode-twinlist", { disabled: a.disabled }])
259
+ }, [
260
+ a.showMode ? (h(), w(r, {
261
+ key: 0,
262
+ active: a.withModeLabel,
263
+ text: a.modeLabel,
264
+ class: "label"
265
+ }, {
266
+ default: v(({ labelForId: p }) => [
267
+ f(b, {
268
+ id: p,
269
+ ref: "mode",
270
+ compact: a.compact,
271
+ "model-value": a.mode,
272
+ disabled: a.disabled,
273
+ "possible-values": i.possibleModes,
274
+ "onUpdate:modelValue": i.onModeChange
275
+ }, null, 8, ["id", "compact", "model-value", "disabled", "possible-values", "onUpdate:modelValue"])
276
+ ]),
277
+ _: 1
278
+ }, 8, ["active", "text"])) : V("", !0),
279
+ a.mode === "regex" || a.mode === "wildcard" ? (h(), w(r, {
280
+ key: 1,
281
+ active: a.withPatternLabel,
282
+ text: a.patternLabel,
283
+ class: "label"
284
+ }, {
285
+ default: v(({ labelForId: p }) => [
286
+ f(T, {
287
+ id: p,
288
+ ref: "search",
289
+ "model-value": a.pattern,
290
+ label: a.patternLabel,
291
+ "initial-case-sensitive-search": a.caseSensitivePattern,
292
+ "initial-inverse-search": a.inversePattern,
293
+ placeholder: "Pattern",
294
+ "show-case-sensitive-search-button": "",
295
+ "show-inverse-search-button": "",
296
+ disabled: a.disabled,
297
+ tooltips: {
298
+ inverseSearch: "Move matching to other side"
299
+ },
300
+ compact: a.compact,
301
+ "onUpdate:modelValue": i.onPatternInput,
302
+ onToggleCaseSensitiveSearch: i.onToggleCaseSensitivePattern,
303
+ onToggleInverseSearch: i.onToggleInversePattern
304
+ }, {
305
+ icon: v(() => [
306
+ f(g)
307
+ ]),
308
+ _: 2
309
+ }, 1032, ["id", "model-value", "label", "initial-case-sensitive-search", "initial-inverse-search", "disabled", "compact", "onUpdate:modelValue", "onToggleCaseSensitiveSearch", "onToggleInverseSearch"])
310
+ ]),
311
+ _: 1
312
+ }, 8, ["active", "text"])) : V("", !0),
313
+ a.mode === "type" && i.possibleTypes.length > 0 ? (h(), w(r, {
314
+ key: 2,
315
+ active: a.withTypesLabel,
316
+ text: a.typesLabel,
317
+ class: "label"
318
+ }, {
319
+ default: v(() => [
320
+ f(S, {
321
+ "model-value": a.selectedTypes,
322
+ "possible-values": i.possibleTypes,
323
+ disabled: a.disabled,
324
+ "onUpdate:modelValue": i.onTypeInput
325
+ }, null, 8, ["model-value", "possible-values", "disabled", "onUpdate:modelValue"])
326
+ ]),
327
+ _: 1
328
+ }, 8, ["active", "text"])) : V("", !0),
329
+ f(y, _(t.$attrs, {
330
+ ref: "twinlist",
331
+ disabled: i.selectionDisabled,
332
+ "show-search": a.mode === "manual" && a.showSearch,
333
+ "model-value": i.twinlistModelValue,
334
+ "possible-values": a.possibleValues,
335
+ compact: a.compact,
336
+ "onUpdate:modelValue": i.onManualInput
337
+ }), null, 16, ["disabled", "show-search", "model-value", "possible-values", "compact", "onUpdate:modelValue"])
338
+ ], 2);
339
+ }
340
+ const re = /* @__PURE__ */ U(oe, [["render", de], ["__scopeId", "data-v-e5a6658e"]]), ue = /* @__PURE__ */ O({
341
+ __name: "MultimodeTwinlistControl",
342
+ props: {
343
+ control: {},
344
+ handleChange: {},
345
+ changeValue: {},
346
+ disabled: { type: Boolean },
347
+ isValid: { type: Boolean },
348
+ onRegisterValidation: {},
349
+ labelForId: {},
350
+ twinlistSize: { default: 10 },
351
+ twinlistLeftLabel: { default: "Excludes" },
352
+ showUnknownValues: { type: Boolean, default: !1 },
353
+ twinlistRightLabel: { default: "Includes" }
354
+ },
355
+ setup(t) {
356
+ const l = t;
357
+ let a;
358
+ const o = (e) => {
359
+ const n = G(l.control.data, e);
360
+ l.changeValue(n), a == null || a(n.manualFilter);
361
+ }, s = (e) => {
362
+ o({ selected: e });
363
+ }, i = (e) => {
364
+ if (e !== null)
365
+ if ("includedValues" in e) {
366
+ const { includedValues: n, excludedValues: d, includeUnknownValues: u } = e;
367
+ if (!n || !d)
368
+ return;
369
+ o({
370
+ manualFilter: {
371
+ manuallySelected: n,
372
+ manuallyDeselected: d,
373
+ includeUnknownColumns: u
374
+ }
375
+ });
376
+ } else
377
+ o({ manualFilter: { manuallySelected: e } });
378
+ }, b = (e) => {
379
+ o({ patternFilter: { pattern: e } });
380
+ }, r = (e) => {
381
+ o({ mode: e.toUpperCase() });
382
+ }, g = (e, n) => {
383
+ o({ typeFilter: { selectedTypes: e, typeDisplays: n } });
384
+ }, T = (e) => {
385
+ o({ patternFilter: { isInverted: e } });
386
+ }, S = (e) => {
387
+ o({ patternFilter: { isCaseSensitive: e } });
388
+ }, { possibleValues: y } = J(
389
+ I(l, "control")
390
+ ), p = H([]), { selectedAndDeselected: C, setCurrentManualFilter: k } = $({
391
+ data: c(() => l.control.data),
392
+ possibleValueIds: c(
393
+ () => {
394
+ var e;
395
+ return ((e = y.value) == null ? void 0 : e.map(({ id: n }) => n)) ?? null;
396
+ }
397
+ )
398
+ });
399
+ a = k;
400
+ const x = c(() => {
401
+ const { selected: e, deselected: n } = C.value;
402
+ return l.showUnknownValues ? {
403
+ includedValues: e,
404
+ excludedValues: n,
405
+ includeUnknownValues: l.control.data.manualFilter.includeUnknownColumns
406
+ } : e;
407
+ }), B = c(
408
+ () => C.value.selected === null ? W(Z) : null
409
+ ), F = (e) => typeof e > "u" ? {} : e.reduce(
410
+ (n, { id: d, text: u }) => ({ ...n, [d]: u }),
411
+ {}
412
+ ), z = () => {
413
+ const e = l.control.data.typeFilter;
414
+ if (!e)
415
+ return [];
416
+ const n = e.selectedTypes, d = F(
417
+ e.typeDisplays
418
+ );
419
+ return n.map((u) => ({
420
+ id: u,
421
+ text: d[u] || u
422
+ }));
423
+ };
424
+ p.value = z();
425
+ const D = c(
426
+ () => {
427
+ var e, n;
428
+ return !!((n = (e = y.value) == null ? void 0 : e[0]) != null && n.hasOwnProperty("type"));
429
+ }
430
+ ), { excludedLabel: R, includedLabel: A } = K(
431
+ I(l, "control")
432
+ ), q = c(() => R ?? l.twinlistLeftLabel), E = c(() => A ?? l.twinlistRightLabel);
433
+ return (e, n) => {
434
+ var d;
435
+ return h(), w(L(re), _(e.$attrs, {
436
+ id: e.labelForId,
437
+ disabled: e.disabled,
438
+ "with-types": D.value,
439
+ "selected-types": (d = e.control.data.typeFilter) == null ? void 0 : d.selectedTypes,
440
+ "additional-possible-types": p.value,
441
+ pattern: e.control.data.patternFilter.pattern,
442
+ mode: e.control.data.mode.toLowerCase(),
443
+ "case-sensitive-pattern": e.control.data.patternFilter.isCaseSensitive,
444
+ "empty-state-component": B.value,
445
+ "inverse-pattern": e.control.data.patternFilter.isInverted,
446
+ "manual-selection": x.value,
447
+ "include-unknown-values": e.control.data.manualFilter.includeUnknownColumns,
448
+ "mode-label": "Selection mode",
449
+ "possible-values": L(y) ?? [],
450
+ size: e.twinlistSize,
451
+ "left-label": q.value,
452
+ "right-label": E.value,
453
+ "is-valid": e.isValid,
454
+ compact: "",
455
+ "show-resize-handle": "",
456
+ "onUpdate:selected": s,
457
+ "onUpdate:manualSelection": i,
458
+ "onUpdate:pattern": b,
459
+ "onUpdate:mode": r,
460
+ "onUpdate:selectedTypes": g,
461
+ "onUpdate:inversePattern": T,
462
+ "onUpdate:caseSensitivePattern": S
463
+ }), 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"]);
464
+ };
465
+ }
466
+ }), ge = /* @__PURE__ */ U(ue, [["__scopeId", "data-v-ca157254"]]);
467
+ export {
468
+ ge as default
469
+ };
@@ -0,0 +1,65 @@
1
+ import { ref as v, watch as m } from "vue";
2
+ import { g as S, a as g } from "./index-Blg1O3Fz.js";
3
+ import "./TwinlistLoadingInfo-Dcbz2hUN.js";
4
+ const w = ({
5
+ knownValuesSide: s,
6
+ possibleValueIds: l,
7
+ unknownValuesSide: n
8
+ }) => {
9
+ const t = new Set(s.previous), a = new Set(l), u = (e) => S(e, a);
10
+ n.setNext([
11
+ ...u(n.previous),
12
+ ...S(l, t)
13
+ ]), s.setNext([
14
+ ...u(s.previous),
15
+ ...g(l, t)
16
+ ]);
17
+ }, F = ({
18
+ data: s,
19
+ possibleValueIds: l
20
+ }) => {
21
+ const n = v({
22
+ selected: null,
23
+ deselected: null
24
+ }), t = v(null), a = (e) => {
25
+ t.value = e;
26
+ }, u = () => {
27
+ if (!t.value || !l.value)
28
+ return;
29
+ let e, o;
30
+ const { manuallyDeselected: f, manuallySelected: p, includeUnknownColumns: r } = t.value, i = {
31
+ previous: f,
32
+ setNext: (c) => {
33
+ e = c;
34
+ }
35
+ }, d = {
36
+ previous: p,
37
+ setNext: (c) => {
38
+ o = c;
39
+ }
40
+ }, y = r ? i : d, M = r ? d : i;
41
+ w({
42
+ possibleValueIds: l.value,
43
+ knownValuesSide: y,
44
+ unknownValuesSide: M
45
+ }), n.value = {
46
+ selected: o,
47
+ deselected: e
48
+ };
49
+ };
50
+ return m(
51
+ () => s.value.manualFilter,
52
+ (e) => {
53
+ Object.is(t.value, e) ? n.value = {
54
+ selected: e.manuallySelected,
55
+ deselected: e.manuallyDeselected
56
+ } : (t.value = e, u());
57
+ },
58
+ { immediate: !0 }
59
+ ), m(() => l.value, u, {
60
+ immediate: !0
61
+ }), { selectedAndDeselected: n, setCurrentManualFilter: a };
62
+ };
63
+ export {
64
+ F as u
65
+ };
@@ -1,7 +1,7 @@
1
1
  import { useId as x, toRef as S, watch as y, resolveComponent as p, openBlock as h, createElementBlock as u, normalizeClass as I, normalizeStyle as C, createElementVNode as m, mergeProps as v, withKeys as a, withModifiers as d, normalizeProps as w, guardReactiveProps as V, Fragment as k, renderList as D, createBlock as g, resolveDynamicComponent as H, toDisplayString as B, createCommentVNode as b, createVNode as K } from "vue";
2
2
  import { b as N } from "./index-Bf0xDq3g.js";
3
- import { S as A } from "./StyledListItem-CGCkC79t.js";
4
- import { _ as L } from "./SectionHeading.vue_vue_type_style_index_0_scoped_625edfbe_lang-DHWwwUrR.js";
3
+ import { S as A } from "./StyledListItem-DCmVSIus.js";
4
+ import { _ as L } from "./SectionHeading.vue_vue_type_style_index_0_scoped_625edfbe_lang-Dq3HWX2w.js";
5
5
  const T = (e, t) => {
6
6
  let i, r = 0;
7
7
  return (...l) => {
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as n, openBlock as o, createBlock as t, mergeProps as a } from "vue";
2
- import l from "./MultimodeTwinlistControl-BrluVu3Y.js";
2
+ import l from "./MultimodeTwinlistControl-DnpmvhFB.js";
3
3
  const u = /* @__PURE__ */ n({
4
4
  __name: "NameFilter",
5
5
  props: {
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as o, openBlock as n, createBlock as t, mergeProps as r } from "vue";
2
- import { _ as a } from "./NumberControlBase.vue_vue_type_script_setup_true_lang-C0B7QKut.js";
2
+ import { _ as a } from "./NumberControlBase.vue_vue_type_script_setup_true_lang-DsYiLVc0.js";
3
3
  const s = /* @__PURE__ */ o({
4
4
  __name: "NumberControl",
5
5
  props: {
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as v, computed as r, openBlock as V, createBlock as E, unref as f } from "vue";
2
- import { u as y } from "./useBuiltinValidations-bc9asSxB.js";
3
- import { N as b } from "./NumberInput-dE-KEe9u.js";
2
+ import { u as y } from "./useBuiltinValidations-ChTFREt7.js";
3
+ import { N as b } from "./NumberInput-DfYpYs35.js";
4
4
  const g = 1, h = 0.1, _ = /* @__PURE__ */ v({
5
5
  __name: "NumberControlBase",
6
6
  props: {
@@ -1,7 +1,7 @@
1
1
  import { A as p } from "./arrow-dropdown-DdgjzLAO.js";
2
2
  /* empty css */
3
3
  import { resolveComponent as h, openBlock as o, createElementBlock as d, normalizeClass as l, createElementVNode as n, createCommentVNode as f, withModifiers as r, createVNode as m } from "vue";
4
- import { _ as V } from "./SectionHeading.vue_vue_type_style_index_0_scoped_625edfbe_lang-DHWwwUrR.js";
4
+ import { _ as V } from "./SectionHeading.vue_vue_type_style_index_0_scoped_625edfbe_lang-Dq3HWX2w.js";
5
5
  const c = 200, g = 50, v = 0.1, E = 1, I = {
6
6
  name: "NumberInput",
7
7
  components: {
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as i, computed as u, openBlock as c, createBlock as m, unref as s } from "vue";
2
2
  import { o as b } from "./index-Blg1O3Fz.js";
3
- import { D as f } from "./Dropdown-D6ytFIra.js";
3
+ import { D as f } from "./Dropdown-Cp5fC5vt.js";
4
4
  const F = /* @__PURE__ */ i({
5
5
  __name: "OneOfDropdown",
6
6
  props: {
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as e, openBlock as n, createBlock as t, mergeProps as a } from "vue";
2
- import { _ as r } from "./RadioControlBase.vue_vue_type_script_setup_true_lang-n6oZHbxa.js";
3
- import { _ as p } from "./SectionHeading.vue_vue_type_style_index_0_scoped_625edfbe_lang-DHWwwUrR.js";
2
+ import { _ as r } from "./RadioControlBase.vue_vue_type_script_setup_true_lang-BBZFZcBX.js";
3
+ import { _ as p } from "./SectionHeading.vue_vue_type_style_index_0_scoped_625edfbe_lang-Dq3HWX2w.js";
4
4
  const i = /* @__PURE__ */ e({
5
5
  __name: "RadioControl",
6
6
  props: {
@@ -1,8 +1,8 @@
1
1
  import { resolveComponent as b, openBlock as m, createBlock as p, normalizeClass as f, defineComponent as v, computed as n, ref as V, toRef as B, onMounted as h, resolveDynamicComponent as y, createCommentVNode as _ } from "vue";
2
2
  import { o as g } from "./index-Blg1O3Fz.js";
3
- import { u as C } from "./usePossibleValues-NHPCKPdi.js";
4
- import { B as R, V as O } from "./ValueSwitch-B-yL0b_A.js";
5
- import { _ as S } from "./SectionHeading.vue_vue_type_style_index_0_scoped_625edfbe_lang-DHWwwUrR.js";
3
+ import { u as C } from "./usePossibleValues-BB4he0jT.js";
4
+ import { B as R, V as O } from "./ValueSwitch-Ba0d4Jda.js";
5
+ import { _ as S } from "./SectionHeading.vue_vue_type_style_index_0_scoped_625edfbe_lang-Dq3HWX2w.js";
6
6
  const F = {
7
7
  name: "RadioButtons",
8
8
  components: {
@@ -3,14 +3,14 @@ import { a as td, c as nd } from "./popper-CRR--9mA.js";
3
3
  import { i as Ca } from "./navigator-D_R-txCf.js";
4
4
  import { g as Ma } from "./hotkeys-kwHHtFKz.js";
5
5
  import { C as rd } from "./close-BuY4mhXV.js";
6
- import { _ as We, q as Ks, C as id, v as Bo } from "./SectionHeading.vue_vue_type_style_index_0_scoped_625edfbe_lang-DHWwwUrR.js";
6
+ import { _ as We, r as Ks, C as id, x as Bo } from "./SectionHeading.vue_vue_type_style_index_0_scoped_625edfbe_lang-Dq3HWX2w.js";
7
7
  import { F as sd, u as od } from "./useDropdownNavigation-7o7SRJSo.js";
8
- import { B as Di } from "./Button-BU4AHIik.js";
9
- import { I as Fo } from "./InputField-D-drv5NW.js";
8
+ import { B as Di } from "./Button-a3DyR88M.js";
9
+ import { I as Fo } from "./InputField-B2bBpIrm.js";
10
10
  import { u as va, f as Ta, s as Ea, a as Oa } from "./floating-ui.vue-B-MrqKCT.js";
11
11
  import { o as ld } from "./index-Bf0xDq3g.js";
12
12
  import { N as ad } from "./arrow-next-CIOU5o42.js";
13
- import { t as cd } from "./toString-DfO6VEzj.js";
13
+ import { t as cd } from "./toString-ByDUn5bZ.js";
14
14
  const ud = (n, e) => (n % e + e) % e, dd = me({
15
15
  name: "BaseModal",
16
16
  components: {
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as o, openBlock as n, createElementBlock as s, createElementVNode as t, toDisplayString as r, renderSlot as i } from "vue";
2
- import { _ as c } from "./SectionHeading.vue_vue_type_style_index_0_scoped_625edfbe_lang-DHWwwUrR.js";
2
+ import { _ as c } from "./SectionHeading.vue_vue_type_style_index_0_scoped_625edfbe_lang-Dq3HWX2w.js";
3
3
  const a = { class: "section-header" }, d = { class: "section-header-layout-container" }, _ = /* @__PURE__ */ o({
4
4
  __name: "SectionHeading",
5
5
  props: {