@knime/jsonforms 1.6.8 → 1.6.10

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 (66) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/{AnyOfTwinlist-CQwbYSPZ.js → AnyOfTwinlist-D6jRLlC9.js} +1 -1
  3. package/dist/{BaseButton-CRkz5DaG.js → BaseButton-DRXubmlD.js} +1 -1
  4. package/dist/{Button-1ejt9qi8.js → Button-nRJkSaBC.js} +2 -2
  5. package/dist/{Checkbox-CdPnWX9S.js → Checkbox-bWqzeYko.js} +1 -1
  6. package/dist/{CheckboxControl-BRV_e7ud.js → CheckboxControl-B4kwAvLf.js} +2 -2
  7. package/dist/{Checkboxes-DdUOVqIL.js → Checkboxes-C0WemzK0.js} +2 -2
  8. package/dist/{CheckboxesControl-BfQIXqEl.js → CheckboxesControl-BcBsTMGJ.js} +2 -2
  9. package/dist/{ColumnFilter-DGjg3hPs.js → ColumnFilter-BSW3HQiz.js} +1 -1
  10. package/dist/{ColumnSelect-BkToOFfO.js → ColumnSelect-BT6NX4nN.js} +2 -2
  11. package/dist/{ComboBoxControl-CJK0aFW3.js → ComboBoxControl-Dz4VWUbr.js} +29 -24
  12. package/dist/{DateControl-D9MaKkwI.js → DateControl-DvPEzSbD.js} +1 -1
  13. package/dist/{DateTimeControl-PwSTiMHe.js → DateTimeControl-Buq_H47Q.js} +2 -2
  14. package/dist/{DateTimeFormatInput-Cs2Xblin.js → DateTimeFormatInput-BLX9j412.js} +3 -3
  15. package/dist/{DateTimeFormatPickerControl-5znPCAJC.js → DateTimeFormatPickerControl-CQi49UrA.js} +2 -2
  16. package/dist/{DateTimeFormatPickerWithTypeControl-CyyWQyNL.js → DateTimeFormatPickerWithTypeControl-BcK2N4NI.js} +3 -3
  17. package/dist/{DateTimeInput-DNSyNYKr.js → DateTimeInput-C5Oyw-Bz.js} +3 -3
  18. package/dist/{Dropdown-DhItVNwp.js → Dropdown-CIDjugP6.js} +2 -2
  19. package/dist/{DropdownControl-DNvADhCe.js → DropdownControl-CRr853C_.js} +1 -1
  20. package/dist/{DropdownControl.vue_vue_type_script_setup_true_lang-D05cmIPl.js → DropdownControl.vue_vue_type_script_setup_true_lang-C56gUC45.js} +4 -4
  21. package/dist/{FunctionButton-BK9SPCJX.js → FunctionButton-6rf73qNS.js} +2 -2
  22. package/dist/{HorizontalLayout-CaCfE9mb.js → HorizontalLayout-Bq5hSQkC.js} +1 -1
  23. package/dist/{InputField-F_wI5Iis.js → InputField-BZzeUMVs.js} +1 -1
  24. package/dist/{IntegerControl-DkEd842j.js → IntegerControl-DtEJ9jaq.js} +1 -1
  25. package/dist/{IntervalControl-IHDMgygN.js → IntervalControl-uNaB8SlU.js} +4 -4
  26. package/dist/{MultiselectListBox-DIKKALLL.js → MultiselectListBox-B0o19vqK.js} +1 -1
  27. package/dist/{NameFilter--QwdPbpI.js → NameFilter-C24OdpHy.js} +1 -1
  28. package/dist/{NumberControl-CzU5x-Z9.js → NumberControl-BGSO6wof.js} +1 -1
  29. package/dist/NumberControlBase.vue_vue_type_script_setup_true_lang-B7TqcQCe.js +53 -0
  30. package/dist/{NumberInput-DpRwCVPU.js → NumberInput-DCbMtXhN.js} +1 -1
  31. package/dist/{OneOfDropdown-B8V1QmrJ.js → OneOfDropdown-oecnOh5j.js} +1 -1
  32. package/dist/{RadioControl-BpIf6pFY.js → RadioControl-1ymKFtE9.js} +2 -2
  33. package/dist/{RadioControlBase.vue_vue_type_script_setup_true_lang-BhjzDcP7.js → RadioControlBase.vue_vue_type_script_setup_true_lang-CplSbUri.js} +2 -2
  34. package/dist/{RichTextControl-CogDfM8F.js → RichTextControl-IMoFZ4yN.js} +2608 -2493
  35. package/dist/{SectionHeading-BPKh3-2y.js → SectionHeading-C9ojqc26.js} +1 -1
  36. package/dist/{SectionLayout-Dd_XuuVP.js → SectionLayout-CG6GUoC4.js} +3 -3
  37. package/dist/{SettingsSubPanel-DGDbeah-.js → SettingsSubPanel-D2qmyQRj.js} +2 -2
  38. package/dist/{SettingsSubPanel.vue_vue_type_style_index_0_scoped_67b92e23_lang-Dms0Yneq.js → SettingsSubPanel.vue_vue_type_style_index_0_scoped_67b92e23_lang-BKc2bf4r.js} +637 -632
  39. package/dist/{SettingsSubPanelLayout-GvLZD9Yz.js → SettingsSubPanelLayout-C4jPUZqS.js} +5 -5
  40. package/dist/{SimpleButtonControl-BS6VcKoe.js → SimpleButtonControl-CZXA-sOd.js} +2 -2
  41. package/dist/{SimpleTwinlistControl-DArE8MBe.js → SimpleTwinlistControl-DQeky-AX.js} +2 -2
  42. package/dist/{SortListControl-pavO_XyI.js → SortListControl-D4yMhrbk.js} +4 -4
  43. package/dist/{TextAreaControl-JS4Jnhz_.js → TextAreaControl-CAj56e3W.js} +25 -25
  44. package/dist/{TextControl-DN20RXLr.js → TextControl-_Wx3rzZd.js} +1 -1
  45. package/dist/TextControl.vue_vue_type_script_setup_true_lang-BlZ-3BwP.js +93 -0
  46. package/dist/{TimeControl-CXR0RY3x.js → TimeControl-B-xivFCg.js} +2 -2
  47. package/dist/{TwinlistControl-hUQYfJee.js → TwinlistControl-BZaEVT9H.js} +4 -4
  48. package/dist/{TwinlistLoadingInfo-DOGq6xuu.js → TwinlistLoadingInfo-BGRl50bt.js} +5 -5
  49. package/dist/{ValueSwitch-CVW4FFxX.js → ValueSwitch-ChvWwn2P.js} +1 -1
  50. package/dist/{ValueSwitchControl-DjRSCzcC.js → ValueSwitchControl-BIi3Dylq.js} +1 -1
  51. package/dist/{VerticalLayout-D3llUo9l.js → VerticalLayout-fN3TpOhN.js} +2 -2
  52. package/dist/{VerticalLayoutBase-ClvpOnb5.js → VerticalLayoutBase-Ci94-Lwd.js} +1 -1
  53. package/dist/{ZonedDateTimeControl-DylsjbCU.js → ZonedDateTimeControl-Cqki5Y3R.js} +4 -4
  54. package/dist/knime-jsonforms.css +1 -1
  55. package/dist/knime-jsonforms.js +7 -7
  56. package/dist/{localTimeUtils-DI5FX5qN.js → localTimeUtils-xLrZjUnt.js} +1 -1
  57. package/dist/{magic-string.es-BhbYl2mV.js → magic-string.es-lf2rq-mj.js} +1 -1
  58. package/dist/src/higherOrderComponents/control/validation/types.d.ts +7 -1
  59. package/dist/src/uiComponents/composables/useBuiltinValidations.d.ts +43 -0
  60. package/dist/src/uiComponents/composables/useProvidedState.d.ts +2 -2
  61. package/dist/{svgWithTitle-BXfD-f8i.js → svgWithTitle-CS5C7Mz8.js} +1 -1
  62. package/dist/testing.js +2 -2
  63. package/dist/useBuiltinValidations-yPAysvI4.js +52 -0
  64. package/package.json +3 -3
  65. package/dist/NumberControlBase.vue_vue_type_script_setup_true_lang-4gf8mzxF.js +0 -60
  66. package/dist/TextControl.vue_vue_type_script_setup_true_lang-CBubBez3.js +0 -87
@@ -0,0 +1,43 @@
1
+ import { Ref } from 'vue';
2
+ import { VueControlProps, VueControlPropsForLabelContent } from '../../higherOrderComponents';
3
+ /**
4
+ * @type {P} - parameters for the validation
5
+ * @type {S} - type of the value to validate
6
+ */
7
+ export type Validator<P, S> = (params: P) => (value: S) => boolean;
8
+ /**
9
+ * @type {T} - type defining the available built-in validations by id-param pairs
10
+ * @type {S} - type of the value to validate
11
+ */
12
+ export type Validators<T, S> = {
13
+ [K in keyof T]: Validator<T[K], S>;
14
+ };
15
+ /**
16
+ * The data provided for a built-in validation.
17
+ * @type {T} - type defining the available built-in validations by id-param pairs
18
+ */
19
+ export type BuiltinValidation<T, K extends keyof T> = {
20
+ id: K;
21
+ parameters: T[K];
22
+ errorMessage: string;
23
+ };
24
+ /**
25
+ * A list of built-in validations typed to T.
26
+ * @type {T} - type defining the available built-in validations by id-param pairs
27
+ */
28
+ export type BuiltinValidations<T> = Array<{
29
+ [K in keyof T]: BuiltinValidation<T, K>;
30
+ }[keyof T]>;
31
+ /**
32
+ * Composable used within a control to define/handle its built-in validations.
33
+ *
34
+ * @param validators - the handlers for the supported validations
35
+ * @param props - the props of the control
36
+ * @returns a ref containing the validation parameters.
37
+ * This is provided if these are required for custom behavior in the control
38
+ * (e.g. setting the minimum in a number control)
39
+ *
40
+ * @type {T} - type defining the available built-in validations by id-param pairs
41
+ * @type {S} - type of the value to validate, i.e. the type of the data of the control
42
+ */
43
+ export declare const useBuiltinValidation: <T, S>(validators: Validators<T, S>, props: VueControlProps<S> | VueControlPropsForLabelContent<S>) => Ref<Partial<T>>;
@@ -1,3 +1,3 @@
1
- import { MaybeRef, UnwrapRef } from 'vue';
2
- declare const _default: <T>(stateProviderId: MaybeRef<string | undefined>, defaultValue: T) => import('vue').Ref<UnwrapRef<T>>;
1
+ import { MaybeRef, Ref } from 'vue';
2
+ declare const _default: <T>(stateProviderId: MaybeRef<string | undefined>, defaultValue: T) => Ref<T>;
3
3
  export default _default;
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as r, openBlock as c, createBlock as s, unref as a, h as i } from "vue";
2
2
  import { R as d } from "./reload-BhzcZRFp.js";
3
- import { _ } from "./SettingsSubPanel.vue_vue_type_style_index_0_scoped_67b92e23_lang-Dms0Yneq.js";
3
+ import { _ } from "./SettingsSubPanel.vue_vue_type_style_index_0_scoped_67b92e23_lang-BKc2bf4r.js";
4
4
  const p = /* @__PURE__ */ r({
5
5
  __name: "LoadingIcon",
6
6
  setup(t) {
package/dist/testing.js CHANGED
@@ -3,7 +3,7 @@ var N_ = (e, t, n) => t in e ? O_(e, t, { enumerable: !0, configurable: !0, writ
3
3
  var G = (e, t, n) => N_(e, typeof t != "symbol" ? t + "" : t, n);
4
4
  import * as Jf from "vue";
5
5
  import { initDirectivesForSSR as I_, nextTick as lo, defineComponent as ai, computed as Ar, h as En, shallowReactive as A_, reactive as k_, ref as C_, createApp as $_, transformVNodeArgs as P_, setDevtoolsHook as M_, Transition as R_, BaseTransition as D_, TransitionGroup as j_, isRef as L_ } from "vue";
6
- import { b as F_ } from "./SettingsSubPanel.vue_vue_type_style_index_0_scoped_67b92e23_lang-Dms0Yneq.js";
6
+ import { b as F_ } from "./SettingsSubPanel.vue_vue_type_style_index_0_scoped_67b92e23_lang-BKc2bf4r.js";
7
7
  import { i as B_ } from "./isSymbol-OFe5xy2f.js";
8
8
  import { b as V_ } from "./_baseIteratee-DvBmrhnf.js";
9
9
  function q_(e, t) {
@@ -9513,7 +9513,7 @@ function Aw(e, t) {
9513
9513
  return s + 1;
9514
9514
  }
9515
9515
  async function kw(e, t) {
9516
- const n = (await import("./magic-string.es-BhbYl2mV.js")).default, r = new Set(t.map((i) => i.file));
9516
+ const n = (await import("./magic-string.es-lf2rq-mj.js")).default, r = new Set(t.map((i) => i.file));
9517
9517
  await Promise.all(
9518
9518
  Array.from(r).map(async (i) => {
9519
9519
  const s = t.filter((c) => c.file === i), o = await e.readSnapshotFile(i), a = new n(o);
@@ -0,0 +1,52 @@
1
+ import { computed as r } from "vue";
2
+ import { u as d } from "./SettingsSubPanel.vue_vue_type_style_index_0_scoped_67b92e23_lang-BKc2bf4r.js";
3
+ const l = (e = {}) => e.validations ?? [], c = (e = {}) => (e.validationProviders ?? []).map(
4
+ (i) => d(i, null)
5
+ ), s = (e, i) => {
6
+ const n = e.map(
7
+ ({ id: t, parameters: o, errorMessage: a }) => ({
8
+ validate: i[t](o),
9
+ errorMessage: a
10
+ })
11
+ );
12
+ return (t) => ({
13
+ errors: n.filter(({ validate: o }) => !o(t)).map(({ errorMessage: o }) => o)
14
+ });
15
+ }, u = (e, i) => e === null ? null : s([e], i), m = (e, i, n, t) => {
16
+ if (e.length) {
17
+ const o = s(e, n);
18
+ t(o);
19
+ }
20
+ i.length && i.map(
21
+ (a) => r(() => u(a.value, n))
22
+ ).forEach(t);
23
+ }, h = ({
24
+ validations: e,
25
+ providedValidations: i
26
+ }) => {
27
+ const n = e.reduce(
28
+ (t, o) => ({ ...t, [o.id]: o.parameters }),
29
+ {}
30
+ );
31
+ return r(
32
+ () => i.map((t) => t.value).filter((t) => t !== null).reduce(
33
+ (t, o) => ({
34
+ ...t,
35
+ // @ts-expect-error - we know that validation is not null here
36
+ [o.id]: o.parameters
37
+ }),
38
+ n
39
+ )
40
+ );
41
+ }, f = (e, i) => {
42
+ const n = i.control.uischema.options, t = l(n), o = c(n);
43
+ return m(
44
+ t,
45
+ o,
46
+ e,
47
+ i.onRegisterValidation
48
+ ), h({ validations: t, providedValidations: o });
49
+ };
50
+ export {
51
+ f as u
52
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@knime/jsonforms",
3
- "version": "1.6.8",
3
+ "version": "1.6.10",
4
4
  "description": "Internal JSON Forms integration for frontend KNIME projects",
5
5
  "homepage": "https://knime.github.io/webapps-common/",
6
6
  "license": "GPL 3 and Additional Permissions according to Sec. 7 (SEE the file LICENSE)",
@@ -15,8 +15,8 @@
15
15
  "focus-trap-vue": "4.0.3",
16
16
  "tabbable": "6.2.0",
17
17
  "uuid": "10.0.0",
18
- "@knime/components": "1.23.0",
19
- "@knime/rich-text-editor": "1.3.36",
18
+ "@knime/components": "1.24.0",
19
+ "@knime/rich-text-editor": "1.4.0",
20
20
  "@knime/styles": "1.3.1",
21
21
  "@knime/utils": "1.3.2"
22
22
  },
@@ -1,60 +0,0 @@
1
- import { defineComponent as b, computed as y, openBlock as h, createBlock as V, unref as i } from "vue";
2
- import { u as m } from "./SettingsSubPanel.vue_vue_type_style_index_0_scoped_67b92e23_lang-Dms0Yneq.js";
3
- import { N as g } from "./NumberInput-DpRwCVPU.js";
4
- const C = /* @__PURE__ */ b({
5
- __name: "NumberControlBase",
6
- props: {
7
- control: {},
8
- handleChange: { type: Function },
9
- changeValue: { type: Function },
10
- disabled: { type: Boolean },
11
- isValid: { type: Boolean },
12
- onRegisterValidation: { type: Function },
13
- labelForId: {},
14
- type: {}
15
- },
16
- setup(f) {
17
- const o = f, {
18
- min: u,
19
- minProvider: s,
20
- max: d,
21
- maxProvider: p
22
- } = o.control.uischema.options || {}, a = m(s, u), n = m(p, d);
23
- if (typeof [s, p, u, d].find(
24
- (e) => typeof e < "u"
25
- ) < "u") {
26
- const e = ({
27
- value: t,
28
- minimum: r,
29
- maximum: l
30
- }) => typeof r == "number" && t < r ? { errors: [`The value has to be at least ${r}`] } : typeof l == "number" && t > l ? { errors: [`The value has to be ${l} at max`] } : { errors: [] }, c = y(
31
- () => (t) => e({
32
- value: t,
33
- minimum: a.value,
34
- maximum: n.value
35
- })
36
- );
37
- o.onRegisterValidation(c);
38
- }
39
- const v = () => {
40
- const e = o.control.data;
41
- typeof a.value == "number" && e < a.value ? o.changeValue(a.value) : typeof n.value == "number" && e > n.value && o.changeValue(n.value);
42
- };
43
- return (e, c) => (h(), V(i(g), {
44
- id: e.labelForId,
45
- class: "number-input",
46
- disabled: e.disabled,
47
- "model-value": e.control.data,
48
- type: e.type,
49
- min: i(a),
50
- max: i(n),
51
- "is-valid": e.isValid,
52
- compact: "",
53
- "onUpdate:modelValue": e.changeValue,
54
- onFocusout: v
55
- }, null, 8, ["id", "disabled", "model-value", "type", "min", "max", "is-valid", "onUpdate:modelValue"]));
56
- }
57
- });
58
- export {
59
- C as _
60
- };
@@ -1,87 +0,0 @@
1
- import { defineComponent as k, ref as v, computed as m, openBlock as d, createBlock as i, withCtx as r, unref as l, normalizeProps as P, mergeProps as E, createCommentVNode as h, createVNode as F, renderSlot as f } from "vue";
2
- import { u as $, L as w, E as B } from "./SettingsSubPanel.vue_vue_type_style_index_0_scoped_67b92e23_lang-Dms0Yneq.js";
3
- import { u as N } from "./useHideOnNull-CCfNP3O7.js";
4
- import { C as H } from "./Checkbox-CdPnWX9S.js";
5
- import { I } from "./InputField-F_wI5Iis.js";
6
- const U = /* @__PURE__ */ k({
7
- __name: "TextControl",
8
- props: {
9
- control: {},
10
- handleChange: { type: Function },
11
- changeValue: { type: Function },
12
- disabled: { type: Boolean },
13
- labelForId: {},
14
- isValid: { type: Boolean },
15
- messages: {},
16
- onRegisterValidation: { type: Function }
17
- },
18
- setup(b) {
19
- var c, p;
20
- const o = b, a = o.control.schema.pattern;
21
- if (typeof a == "string") {
22
- const e = new RegExp(`^(${a})$`), u = (t) => ({
23
- errors: t === null || typeof t > "u" || !e.test(t) ? [`The value has to match the pattern "${a}"`] : []
24
- });
25
- o.onRegisterValidation(u);
26
- }
27
- const g = $(
28
- (c = o.control.uischema.options) == null ? void 0 : c.placeholderProvider,
29
- ((p = o.control.uischema.options) == null ? void 0 : p.placeholder) ?? ""
30
- ), n = v(null), { showCheckbox: V, showControl: C, checkboxProps: y } = N(
31
- {
32
- control: m(() => o.control),
33
- disabled: m(() => o.disabled),
34
- controlElement: n
35
- },
36
- {
37
- setDefault: () => o.changeValue(""),
38
- setNull: () => o.changeValue(null)
39
- }
40
- );
41
- return (e, u) => {
42
- var t;
43
- return d(), i(w, {
44
- label: e.control.label,
45
- "hide-control-header": (t = e.control.uischema.options) == null ? void 0 : t.hideControlHeader
46
- }, {
47
- "before-label": r(() => [
48
- l(V) ? (d(), i(l(H), P(E({ key: 0 }, l(y))), null, 16)) : h("", !0)
49
- ]),
50
- default: r(({ labelForId: s }) => [
51
- l(C) ? (d(), i(B, {
52
- key: 0,
53
- errors: e.messages.errors
54
- }, {
55
- default: r(() => [
56
- F(l(I), {
57
- id: s,
58
- ref_key: "controlElement",
59
- ref: n,
60
- placeholder: l(g),
61
- "model-value": e.control.data,
62
- disabled: e.disabled,
63
- "is-valid": e.isValid,
64
- compact: "",
65
- "onUpdate:modelValue": e.changeValue
66
- }, null, 8, ["id", "placeholder", "model-value", "disabled", "is-valid", "onUpdate:modelValue"])
67
- ]),
68
- _: 2
69
- }, 1032, ["errors"])) : h("", !0)
70
- ]),
71
- icon: r(() => [
72
- f(e.$slots, "icon")
73
- ]),
74
- buttons: r(({ hover: s }) => [
75
- f(e.$slots, "buttons", {
76
- hover: s,
77
- controlHTMLElement: n.value
78
- })
79
- ]),
80
- _: 3
81
- }, 8, ["label", "hide-control-header"]);
82
- };
83
- }
84
- });
85
- export {
86
- U as _
87
- };