@narrative.io/jsonforms-provider-protocols 1.1.0-beta.7 → 1.1.0-beta.9

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 (41) hide show
  1. package/dist/index.js +10 -10
  2. package/dist/jsonforms-provider-protocols.css +0 -4
  3. package/dist/vue/index.js +6 -6
  4. package/dist/vue/primevue/JfBoolean.vue.d.ts +20 -32
  5. package/dist/vue/primevue/JfBoolean.vue.d.ts.map +1 -1
  6. package/dist/vue/primevue/JfBoolean.vue.js +31 -2
  7. package/dist/vue/primevue/JfBoolean.vue.js.map +1 -1
  8. package/dist/vue/primevue/JfEnum.vue.d.ts +20 -33
  9. package/dist/vue/primevue/JfEnum.vue.d.ts.map +1 -1
  10. package/dist/vue/primevue/JfEnum.vue.js +152 -5
  11. package/dist/vue/primevue/JfEnum.vue.js.map +1 -1
  12. package/dist/vue/primevue/JfEnum.vue2.js +1 -122
  13. package/dist/vue/primevue/JfEnum.vue2.js.map +1 -1
  14. package/dist/vue/primevue/JfEnumArray.vue.d.ts +20 -33
  15. package/dist/vue/primevue/JfEnumArray.vue.d.ts.map +1 -1
  16. package/dist/vue/primevue/JfEnumArray.vue.js +31 -2
  17. package/dist/vue/primevue/JfEnumArray.vue.js.map +1 -1
  18. package/dist/vue/primevue/JfNumber.vue.d.ts +20 -32
  19. package/dist/vue/primevue/JfNumber.vue.d.ts.map +1 -1
  20. package/dist/vue/primevue/JfNumber.vue.js +31 -2
  21. package/dist/vue/primevue/JfNumber.vue.js.map +1 -1
  22. package/dist/vue/primevue/JfText.vue.d.ts +20 -32
  23. package/dist/vue/primevue/JfText.vue.d.ts.map +1 -1
  24. package/dist/vue/primevue/JfText.vue.js +31 -2
  25. package/dist/vue/primevue/JfText.vue.js.map +1 -1
  26. package/dist/vue/primevue/JfTextArea.vue.d.ts +20 -32
  27. package/dist/vue/primevue/JfTextArea.vue.d.ts.map +1 -1
  28. package/dist/vue/primevue/JfTextArea.vue.js +31 -2
  29. package/dist/vue/primevue/JfTextArea.vue.js.map +1 -1
  30. package/dist/vue/primevue/index.d.ts +20 -31
  31. package/dist/vue/primevue/index.d.ts.map +1 -1
  32. package/dist/vue/primevue/index.js +9 -9
  33. package/dist/vue/primevue/index.js.map +1 -1
  34. package/package.json +1 -1
  35. package/src/vue/primevue/JfBoolean.vue +30 -4
  36. package/src/vue/primevue/JfEnum.vue +31 -11
  37. package/src/vue/primevue/JfEnumArray.vue +30 -4
  38. package/src/vue/primevue/JfNumber.vue +30 -4
  39. package/src/vue/primevue/JfText.vue +30 -4
  40. package/src/vue/primevue/JfTextArea.vue +30 -4
  41. package/src/vue/styles.css +5 -0
@@ -1,75 +1,63 @@
1
- import type { ControlElement } from "@jsonforms/core";
2
1
  declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
3
- schema: {
2
+ uischema: {
3
+ type: ObjectConstructor;
4
4
  required: true;
5
- type: import("vue").PropType<import("@jsonforms/core").JsonSchema>;
6
5
  };
7
- uischema: {
6
+ schema: {
7
+ type: ObjectConstructor;
8
8
  required: true;
9
- type: import("vue").PropType<ControlElement>;
10
9
  };
11
10
  path: {
12
- required: true;
13
11
  type: StringConstructor;
12
+ required: true;
14
13
  };
15
14
  enabled: {
16
- required: false;
17
15
  type: BooleanConstructor;
18
16
  default: undefined;
19
17
  };
20
18
  renderers: {
21
- required: boolean;
22
- type: import("vue").PropType<import("@jsonforms/core").JsonFormsRendererRegistryEntry[]>;
23
- default: undefined;
19
+ type: ArrayConstructor;
20
+ required: false;
24
21
  };
25
22
  cells: {
26
- required: boolean;
27
- type: import("vue").PropType<import("@jsonforms/core").JsonFormsCellRendererRegistryEntry[]>;
28
- default: undefined;
23
+ type: ArrayConstructor;
24
+ required: false;
29
25
  };
30
26
  config: {
31
- required: boolean;
32
27
  type: ObjectConstructor;
33
- default: undefined;
28
+ required: false;
34
29
  };
35
30
  }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
36
- schema: {
31
+ uischema: {
32
+ type: ObjectConstructor;
37
33
  required: true;
38
- type: import("vue").PropType<import("@jsonforms/core").JsonSchema>;
39
34
  };
40
- uischema: {
35
+ schema: {
36
+ type: ObjectConstructor;
41
37
  required: true;
42
- type: import("vue").PropType<ControlElement>;
43
38
  };
44
39
  path: {
45
- required: true;
46
40
  type: StringConstructor;
41
+ required: true;
47
42
  };
48
43
  enabled: {
49
- required: false;
50
44
  type: BooleanConstructor;
51
45
  default: undefined;
52
46
  };
53
47
  renderers: {
54
- required: boolean;
55
- type: import("vue").PropType<import("@jsonforms/core").JsonFormsRendererRegistryEntry[]>;
56
- default: undefined;
48
+ type: ArrayConstructor;
49
+ required: false;
57
50
  };
58
51
  cells: {
59
- required: boolean;
60
- type: import("vue").PropType<import("@jsonforms/core").JsonFormsCellRendererRegistryEntry[]>;
61
- default: undefined;
52
+ type: ArrayConstructor;
53
+ required: false;
62
54
  };
63
55
  config: {
64
- required: boolean;
65
56
  type: ObjectConstructor;
66
- default: undefined;
57
+ required: false;
67
58
  };
68
59
  }>> & Readonly<{}>, {
69
- config: Record<string, any>;
70
60
  enabled: boolean;
71
- renderers: import("@jsonforms/core").JsonFormsRendererRegistryEntry[];
72
- cells: import("@jsonforms/core").JsonFormsCellRendererRegistryEntry[];
73
61
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
74
62
  export default _default;
75
63
  //# sourceMappingURL=JfTextArea.vue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"JfTextArea.vue.d.ts","sourceRoot":"","sources":["../../../src/vue/primevue/JfTextArea.vue"],"names":[],"mappings":"AA2EA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGtD,wBAqJK"}
1
+ {"version":3,"file":"JfTextArea.vue.d.ts","sourceRoot":"","sources":["../../../src/vue/primevue/JfTextArea.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqGA,wBA+MK"}
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, getCurrentInstance, computed, ref, createElementBlock, openBlock, createCommentVNode, createVNode, unref, toDisplayString } from "vue";
2
- import { rendererProps, useJsonFormsControl } from "@jsonforms/vue";
2
+ import { useJsonFormsControl } from "@jsonforms/vue";
3
3
  import Textarea from "primevue/textarea";
4
4
  const _hoisted_1 = { class: "flex flex-column gap-2" };
5
5
  const _hoisted_2 = {
@@ -16,7 +16,36 @@ const _hoisted_4 = {
16
16
  };
17
17
  const __default__ = {
18
18
  name: "JfTextArea",
19
- props: rendererProps()
19
+ props: {
20
+ uischema: {
21
+ type: Object,
22
+ required: true
23
+ },
24
+ schema: {
25
+ type: Object,
26
+ required: true
27
+ },
28
+ path: {
29
+ type: String,
30
+ required: true
31
+ },
32
+ enabled: {
33
+ type: Boolean,
34
+ default: void 0
35
+ },
36
+ renderers: {
37
+ type: Array,
38
+ required: false
39
+ },
40
+ cells: {
41
+ type: Array,
42
+ required: false
43
+ },
44
+ config: {
45
+ type: Object,
46
+ required: false
47
+ }
48
+ }
20
49
  };
21
50
  const _sfc_main = /* @__PURE__ */ defineComponent({
22
51
  ...__default__,
@@ -1 +1 @@
1
- {"version":3,"file":"JfTextArea.vue.js","sources":["../../../src/vue/primevue/JfTextArea.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { ControlElement } from \"@jsonforms/core\";\nimport { rendererProps } from \"@jsonforms/vue\";\n\nexport default {\n name: \"JfTextArea\",\n props: rendererProps<ControlElement>(),\n};\n</script>\n\n<script setup lang=\"ts\">\nimport type { ControlProps } from \"@jsonforms/vue\";\nimport { useJsonFormsControl } from \"@jsonforms/vue\";\nimport { computed, ref, getCurrentInstance } from \"vue\";\nimport Textarea from \"primevue/textarea\";\n\n// Access props from the component instance\nconst instance = getCurrentInstance()!;\nconst props = instance.props as unknown as ControlProps;\nconst { control, handleChange } = useJsonFormsControl(props);\n\nconst placeholder = computed<string | undefined>(\n () =>\n (control.value.uischema as { options?: { placeholder?: string } })?.options\n ?.placeholder ?? control.value.description,\n);\n\n// Track user interaction\nconst hasInteracted = ref(false);\n\nconst showErrors = computed(() => hasInteracted.value && control.value.errors);\n\nfunction onInput(val: string | undefined) {\n // Convert empty strings to undefined for proper required field validation\n const newValue = val && val.trim() !== \"\" ? val : undefined;\n if (control.value.data !== newValue) {\n handleChange(control.value.path, newValue);\n }\n}\n\nfunction onBlur() {\n hasInteracted.value = true;\n}\n</script>\n\n<template>\n <div class=\"flex flex-column gap-2\">\n <label v-if=\"control.label\" class=\"text-color text-left\">{{\n control.label\n }}</label>\n <div v-if=\"control.description\" class=\"text-color-secondary text-left\">\n {{ control.description }}\n </div>\n <Textarea\n class=\"w-full\"\n :model-value=\"control.data ?? ''\"\n :disabled=\"!control.enabled\"\n :aria-invalid=\"!!showErrors || undefined\"\n :placeholder=\"placeholder\"\n :rows=\"4\"\n :auto-resize=\"true\"\n @update:model-value=\"onInput\"\n @blur=\"onBlur\"\n />\n <small v-if=\"showErrors\" class=\"p-error\">{{ control.errors }}</small>\n </div>\n</template>\n"],"names":["_openBlock","_createElementBlock","_unref","_toDisplayString","_createVNode"],"mappings":";;;;;;;;;;;;;;;;AAIA,MAAA,cAAe;AAAA,EACb,MAAM;AAAA,EACN,OAAO,cAAA;AACT;;;;AAUA,UAAM,WAAW,mBAAA;AACjB,UAAM,QAAQ,SAAS;AACvB,UAAM,EAAE,SAAS,iBAAiB,oBAAoB,KAAK;AAE3D,UAAM,cAAc;AAAA,MAClB,MACG,QAAQ,MAAM,UAAqD,SAChE,eAAe,QAAQ,MAAM;AAAA,IAAA;AAIrC,UAAM,gBAAgB,IAAI,KAAK;AAE/B,UAAM,aAAa,SAAS,MAAM,cAAc,SAAS,QAAQ,MAAM,MAAM;AAE7E,aAAS,QAAQ,KAAyB;AAExC,YAAM,WAAW,OAAO,IAAI,KAAA,MAAW,KAAK,MAAM;AAClD,UAAI,QAAQ,MAAM,SAAS,UAAU;AACnC,qBAAa,QAAQ,MAAM,MAAM,QAAQ;AAAA,MAC3C;AAAA,IACF;AAEA,aAAS,SAAS;AAChB,oBAAc,QAAQ;AAAA,IACxB;;AAIE,aAAAA,UAAA,GAAAC,mBAmBM,OAnBN,YAmBM;AAAA,QAlBSC,MAAA,OAAA,EAAQ,SAArBF,UAAA,GAAAC,mBAEU,SAFV,YAEUE,gBADRD,MAAA,OAAA,EAAQ,KAAK,GAAA,CAAA;QAEJA,MAAA,OAAA,EAAQ,eAAnBF,UAAA,GAAAC,mBAEM,OAFN,YAEME,gBADDD,MAAA,OAAA,EAAQ,WAAW,GAAA,CAAA;QAExBE,YAUEF,MAAA,QAAA,GAAA;AAAA,UATA,OAAM;AAAA,UACL,eAAaA,MAAA,OAAA,EAAQ,QAAI;AAAA,UACzB,UAAQ,CAAGA,MAAA,OAAA,EAAQ;AAAA,UACnB,gBAAY,CAAA,CAAI,WAAA,SAAc;AAAA,UAC9B,aAAa,YAAA;AAAA,UACb,MAAM;AAAA,UACN,eAAa;AAAA,UACb,uBAAoB;AAAA,UACpB;AAAA,QAAA;QAEU,WAAA,SAAbF,UAAA,GAAAC,mBAAqE,SAArE,YAAqEE,gBAAzBD,MAAA,OAAA,EAAQ,MAAM,GAAA,CAAA;;;;;"}
1
+ {"version":3,"file":"JfTextArea.vue.js","sources":["../../../src/vue/primevue/JfTextArea.vue"],"sourcesContent":["<script lang=\"ts\">\nexport default {\n name: \"JfTextArea\",\n props: {\n uischema: {\n type: Object,\n required: true,\n },\n schema: {\n type: Object,\n required: true,\n },\n path: {\n type: String,\n required: true,\n },\n enabled: {\n type: Boolean,\n default: undefined,\n },\n renderers: {\n type: Array,\n required: false,\n },\n cells: {\n type: Array,\n required: false,\n },\n config: {\n type: Object,\n required: false,\n },\n },\n};\n</script>\n\n<script setup lang=\"ts\">\nimport type { ControlProps } from \"@jsonforms/vue\";\nimport { useJsonFormsControl } from \"@jsonforms/vue\";\nimport { computed, ref, getCurrentInstance } from \"vue\";\nimport Textarea from \"primevue/textarea\";\n\n// Access props from the component instance\nconst instance = getCurrentInstance()!;\nconst props = instance.props as unknown as ControlProps;\nconst { control, handleChange } = useJsonFormsControl(props);\n\nconst placeholder = computed<string | undefined>(\n () =>\n (control.value.uischema as { options?: { placeholder?: string } })?.options\n ?.placeholder ?? control.value.description,\n);\n\n// Track user interaction\nconst hasInteracted = ref(false);\n\nconst showErrors = computed(() => hasInteracted.value && control.value.errors);\n\nfunction onInput(val: string | undefined) {\n // Convert empty strings to undefined for proper required field validation\n const newValue = val && val.trim() !== \"\" ? val : undefined;\n if (control.value.data !== newValue) {\n handleChange(control.value.path, newValue);\n }\n}\n\nfunction onBlur() {\n hasInteracted.value = true;\n}\n</script>\n\n<template>\n <div class=\"flex flex-column gap-2\">\n <label v-if=\"control.label\" class=\"text-color text-left\">{{\n control.label\n }}</label>\n <div v-if=\"control.description\" class=\"text-color-secondary text-left\">\n {{ control.description }}\n </div>\n <Textarea\n class=\"w-full\"\n :model-value=\"control.data ?? ''\"\n :disabled=\"!control.enabled\"\n :aria-invalid=\"!!showErrors || undefined\"\n :placeholder=\"placeholder\"\n :rows=\"4\"\n :auto-resize=\"true\"\n @update:model-value=\"onInput\"\n @blur=\"onBlur\"\n />\n <small v-if=\"showErrors\" class=\"p-error\">{{ control.errors }}</small>\n </div>\n</template>\n"],"names":["_openBlock","_createElementBlock","_unref","_toDisplayString","_createVNode"],"mappings":";;;;;;;;;;;;;;;;AACA,MAAA,cAAe;AAAA,EACb,MAAM;AAAA,EACN,OAAO;AAAA,IACL,UAAU;AAAA,MACR,MAAM;AAAA,MACN,UAAU;AAAA,IAAA;AAAA,IAEZ,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,UAAU;AAAA,IAAA;AAAA,IAEZ,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,UAAU;AAAA,IAAA;AAAA,IAEZ,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,IAEX,WAAW;AAAA,MACT,MAAM;AAAA,MACN,UAAU;AAAA,IAAA;AAAA,IAEZ,OAAO;AAAA,MACL,MAAM;AAAA,MACN,UAAU;AAAA,IAAA;AAAA,IAEZ,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,UAAU;AAAA,IAAA;AAAA,EACZ;AAEJ;;;;AAUA,UAAM,WAAW,mBAAA;AACjB,UAAM,QAAQ,SAAS;AACvB,UAAM,EAAE,SAAS,iBAAiB,oBAAoB,KAAK;AAE3D,UAAM,cAAc;AAAA,MAClB,MACG,QAAQ,MAAM,UAAqD,SAChE,eAAe,QAAQ,MAAM;AAAA,IAAA;AAIrC,UAAM,gBAAgB,IAAI,KAAK;AAE/B,UAAM,aAAa,SAAS,MAAM,cAAc,SAAS,QAAQ,MAAM,MAAM;AAE7E,aAAS,QAAQ,KAAyB;AAExC,YAAM,WAAW,OAAO,IAAI,KAAA,MAAW,KAAK,MAAM;AAClD,UAAI,QAAQ,MAAM,SAAS,UAAU;AACnC,qBAAa,QAAQ,MAAM,MAAM,QAAQ;AAAA,MAC3C;AAAA,IACF;AAEA,aAAS,SAAS;AAChB,oBAAc,QAAQ;AAAA,IACxB;;AAIE,aAAAA,UAAA,GAAAC,mBAmBM,OAnBN,YAmBM;AAAA,QAlBSC,MAAA,OAAA,EAAQ,SAArBF,UAAA,GAAAC,mBAEU,SAFV,YAEUE,gBADRD,MAAA,OAAA,EAAQ,KAAK,GAAA,CAAA;QAEJA,MAAA,OAAA,EAAQ,eAAnBF,UAAA,GAAAC,mBAEM,OAFN,YAEME,gBADDD,MAAA,OAAA,EAAQ,WAAW,GAAA,CAAA;QAExBE,YAUEF,MAAA,QAAA,GAAA;AAAA,UATA,OAAM;AAAA,UACL,eAAaA,MAAA,OAAA,EAAQ,QAAI;AAAA,UACzB,UAAQ,CAAGA,MAAA,OAAA,EAAQ;AAAA,UACnB,gBAAY,CAAA,CAAI,WAAA,SAAc;AAAA,UAC9B,aAAa,YAAA;AAAA,UACb,MAAM;AAAA,UACN,eAAa;AAAA,UACb,uBAAoB;AAAA,UACpB;AAAA,QAAA;QAEU,WAAA,SAAbF,UAAA,GAAAC,mBAAqE,SAArE,YAAqEE,gBAAzBD,MAAA,OAAA,EAAQ,MAAM,GAAA,CAAA;;;;;"}
@@ -7,76 +7,65 @@ import JfBoolean from "./JfBoolean.vue";
7
7
  export declare const primevueRenderers: {
8
8
  tester: (uischema: import("@jsonforms/core").UISchemaElement, schema: import("@jsonforms/core").JsonSchema, context: import("@jsonforms/core").TesterContext) => number;
9
9
  renderer: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
10
- schema: {
10
+ uischema: {
11
+ type: ObjectConstructor;
11
12
  required: true;
12
- type: import("vue").PropType<import("@jsonforms/core").JsonSchema>;
13
13
  };
14
- uischema: {
14
+ schema: {
15
+ type: ObjectConstructor;
15
16
  required: true;
16
- type: import("vue").PropType<import("@jsonforms/core").ControlElement>;
17
17
  };
18
18
  path: {
19
- required: true;
20
19
  type: StringConstructor;
20
+ required: true;
21
21
  };
22
22
  enabled: {
23
- required: false;
24
23
  type: BooleanConstructor;
25
24
  default: undefined;
26
25
  };
27
26
  renderers: {
28
- required: boolean;
29
- type: import("vue").PropType<import("@jsonforms/core").JsonFormsRendererRegistryEntry[]>;
30
- default: undefined;
27
+ type: ArrayConstructor;
28
+ required: false;
31
29
  };
32
30
  cells: {
33
- required: boolean;
34
- type: import("vue").PropType<import("@jsonforms/core").JsonFormsCellRendererRegistryEntry[]>;
35
- default: undefined;
31
+ type: ArrayConstructor;
32
+ required: false;
36
33
  };
37
34
  config: {
38
- required: boolean;
39
35
  type: ObjectConstructor;
40
- default: undefined;
36
+ required: false;
41
37
  };
42
38
  }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
43
- schema: {
39
+ uischema: {
40
+ type: ObjectConstructor;
44
41
  required: true;
45
- type: import("vue").PropType<import("@jsonforms/core").JsonSchema>;
46
42
  };
47
- uischema: {
43
+ schema: {
44
+ type: ObjectConstructor;
48
45
  required: true;
49
- type: import("vue").PropType<import("@jsonforms/core").ControlElement>;
50
46
  };
51
47
  path: {
52
- required: true;
53
48
  type: StringConstructor;
49
+ required: true;
54
50
  };
55
51
  enabled: {
56
- required: false;
57
52
  type: BooleanConstructor;
58
53
  default: undefined;
59
54
  };
60
55
  renderers: {
61
- required: boolean;
62
- type: import("vue").PropType<import("@jsonforms/core").JsonFormsRendererRegistryEntry[]>;
63
- default: undefined;
56
+ type: ArrayConstructor;
57
+ required: false;
64
58
  };
65
59
  cells: {
66
- required: boolean;
67
- type: import("vue").PropType<import("@jsonforms/core").JsonFormsCellRendererRegistryEntry[]>;
68
- default: undefined;
60
+ type: ArrayConstructor;
61
+ required: false;
69
62
  };
70
63
  config: {
71
- required: boolean;
72
64
  type: ObjectConstructor;
73
- default: undefined;
65
+ required: false;
74
66
  };
75
67
  }>> & Readonly<{}>, {
76
- config: Record<string, any>;
77
68
  enabled: boolean;
78
- renderers: import("@jsonforms/core").JsonFormsRendererRegistryEntry[];
79
- cells: import("@jsonforms/core").JsonFormsCellRendererRegistryEntry[];
80
69
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
81
70
  }[];
82
71
  export { JfText, JfTextArea, JfNumber, JfEnum, JfEnumArray, JfBoolean };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/vue/primevue/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAC1C,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,WAAW,MAAM,mBAAmB,CAAC;AAC5C,OAAO,SAAS,MAAM,iBAAiB,CAAC;AA0ExC,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiB7B,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/vue/primevue/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAC1C,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,WAAW,MAAM,mBAAmB,CAAC;AAC5C,OAAO,SAAS,MAAM,iBAAiB,CAAC;AA0ExC,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiB7B,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC"}
@@ -1,9 +1,9 @@
1
1
  import _sfc_main$1 from "./JfText.vue.js";
2
2
  import _sfc_main from "./JfTextArea.vue.js";
3
3
  import _sfc_main$2 from "./JfNumber.vue.js";
4
- import JfEnum from "./JfEnum.vue.js";
5
- import _sfc_main$3 from "./JfEnumArray.vue.js";
6
- import _sfc_main$4 from "./JfBoolean.vue.js";
4
+ import _sfc_main$3 from "./JfEnum.vue.js";
5
+ import _sfc_main$4 from "./JfEnumArray.vue.js";
6
+ import _sfc_main$5 from "./JfBoolean.vue.js";
7
7
  import { rankWith, isStringControl, or, isNumberControl, isIntegerControl, and, isControl, schemaMatches, isBooleanControl } from "@jsonforms/core";
8
8
  const injectLayoutStyles = () => {
9
9
  if (typeof window !== "undefined" && typeof document !== "undefined") {
@@ -51,18 +51,18 @@ const primevueRenderers = [
51
51
  },
52
52
  {
53
53
  tester: rankWith(PRIME + 5, and(isControl, schemaMatches(isScalarEnum))),
54
- renderer: JfEnum
54
+ renderer: _sfc_main$3
55
55
  },
56
56
  {
57
57
  tester: rankWith(PRIME + 6, and(isControl, schemaMatches(isEnumArray))),
58
- renderer: _sfc_main$3
58
+ renderer: _sfc_main$4
59
59
  },
60
- { tester: rankWith(PRIME + 3, isBooleanControl), renderer: _sfc_main$4 }
60
+ { tester: rankWith(PRIME + 3, isBooleanControl), renderer: _sfc_main$5 }
61
61
  ];
62
62
  export {
63
- _sfc_main$4 as JfBoolean,
64
- JfEnum,
65
- _sfc_main$3 as JfEnumArray,
63
+ _sfc_main$5 as JfBoolean,
64
+ _sfc_main$3 as JfEnum,
65
+ _sfc_main$4 as JfEnumArray,
66
66
  _sfc_main$2 as JfNumber,
67
67
  _sfc_main$1 as JfText,
68
68
  _sfc_main as JfTextArea,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/vue/primevue/index.ts"],"sourcesContent":["import JfText from \"./JfText.vue\";\nimport JfTextArea from \"./JfTextArea.vue\";\nimport JfNumber from \"./JfNumber.vue\";\nimport JfEnum from \"./JfEnum.vue\";\nimport JfEnumArray from \"./JfEnumArray.vue\";\nimport JfBoolean from \"./JfBoolean.vue\";\n\n// Auto-inject layout styles\nconst injectLayoutStyles = () => {\n if (typeof window !== \"undefined\" && typeof document !== \"undefined\") {\n if (!document.getElementById(\"jsonforms-primevue-styles\")) {\n const style = document.createElement(\"style\");\n style.id = \"jsonforms-primevue-styles\";\n style.textContent = `\n/* JSONForms PrimeVue Provider Protocols Layout Styles */\n.vertical-layout {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 1rem;\n width: 100%;\n}\n\n.vertical-layout-item {\n width: 100%;\n}\n `;\n document.head.appendChild(style);\n }\n }\n};\n\n// Inject styles when this module is imported\ninjectLayoutStyles();\n\nimport {\n rankWith,\n isStringControl,\n or,\n isNumberControl,\n isIntegerControl,\n and,\n isControl,\n schemaMatches,\n isBooleanControl,\n} from \"@jsonforms/core\";\n\n// helpers for enum detection\nconst isScalarEnum = (s?: object) => {\n const schema = s as { type?: string; enum?: unknown[]; oneOf?: unknown[] };\n return (\n schema &&\n schema.type !== \"array\" &&\n (Array.isArray(schema.enum) || Array.isArray(schema.oneOf))\n );\n};\n\nconst isEnumArray = (s?: object) => {\n const schema = s as {\n type?: string;\n items?: { enum?: unknown[]; oneOf?: unknown[] };\n };\n return (\n schema?.type === \"array\" &&\n (Array.isArray(schema.items?.enum) || Array.isArray(schema.items?.oneOf))\n );\n};\n\n// helper for multiline detection\nconst isMultilineString = (uischema: unknown, schema: unknown) => {\n return (\n isStringControl(uischema as never, schema as never, {} as never) &&\n (uischema as { options?: { multi?: boolean } })?.options?.multi === true\n );\n};\n\n// Give PrimeVue renderers a high base rank; vanilla commonly uses small ranks (2–5)\nconst PRIME = 100;\n\nexport const primevueRenderers = [\n // Multiline text has higher priority than regular text\n { tester: rankWith(PRIME + 4, isMultilineString), renderer: JfTextArea },\n { tester: rankWith(PRIME + 3, isStringControl), renderer: JfText },\n {\n tester: rankWith(PRIME + 4, or(isNumberControl, isIntegerControl)),\n renderer: JfNumber,\n },\n {\n tester: rankWith(PRIME + 5, and(isControl, schemaMatches(isScalarEnum))),\n renderer: JfEnum,\n },\n {\n tester: rankWith(PRIME + 6, and(isControl, schemaMatches(isEnumArray))),\n renderer: JfEnumArray,\n },\n { tester: rankWith(PRIME + 3, isBooleanControl), renderer: JfBoolean },\n];\n\nexport { JfText, JfTextArea, JfNumber, JfEnum, JfEnumArray, JfBoolean };\n"],"names":["JfTextArea","JfText","JfNumber","JfEnumArray","JfBoolean"],"mappings":";;;;;;;AAQA,MAAM,qBAAqB,MAAM;AAC/B,MAAI,OAAO,WAAW,eAAe,OAAO,aAAa,aAAa;AACpE,QAAI,CAAC,SAAS,eAAe,2BAA2B,GAAG;AACzD,YAAM,QAAQ,SAAS,cAAc,OAAO;AAC5C,YAAM,KAAK;AACX,YAAM,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAcpB,eAAS,KAAK,YAAY,KAAK;AAAA,IACjC;AAAA,EACF;AACF;AAGA,mBAAA;AAeA,MAAM,eAAe,CAAC,MAAe;AACnC,QAAM,SAAS;AACf,SACE,UACA,OAAO,SAAS,YACf,MAAM,QAAQ,OAAO,IAAI,KAAK,MAAM,QAAQ,OAAO,KAAK;AAE7D;AAEA,MAAM,cAAc,CAAC,MAAe;AAClC,QAAM,SAAS;AAIf,SACE,QAAQ,SAAS,YAChB,MAAM,QAAQ,OAAO,OAAO,IAAI,KAAK,MAAM,QAAQ,OAAO,OAAO,KAAK;AAE3E;AAGA,MAAM,oBAAoB,CAAC,UAAmB,WAAoB;AAChE,SACE,gBAAgB,UAAmB,QAAiB,CAAA,CAAW,KAC9D,UAAgD,SAAS,UAAU;AAExE;AAGA,MAAM,QAAQ;AAEP,MAAM,oBAAoB;AAAA;AAAA,EAE/B,EAAE,QAAQ,SAAS,QAAQ,GAAG,iBAAiB,GAAG,UAAUA,UAAA;AAAA,EAC5D,EAAE,QAAQ,SAAS,QAAQ,GAAG,eAAe,GAAG,UAAUC,YAAA;AAAA,EAC1D;AAAA,IACE,QAAQ,SAAS,QAAQ,GAAG,GAAG,iBAAiB,gBAAgB,CAAC;AAAA,IACjE,UAAUC;AAAAA,EAAA;AAAA,EAEZ;AAAA,IACE,QAAQ,SAAS,QAAQ,GAAG,IAAI,WAAW,cAAc,YAAY,CAAC,CAAC;AAAA,IACvE,UAAU;AAAA,EAAA;AAAA,EAEZ;AAAA,IACE,QAAQ,SAAS,QAAQ,GAAG,IAAI,WAAW,cAAc,WAAW,CAAC,CAAC;AAAA,IACtE,UAAUC;AAAAA,EAAA;AAAA,EAEZ,EAAE,QAAQ,SAAS,QAAQ,GAAG,gBAAgB,GAAG,UAAUC,YAAA;AAC7D;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/vue/primevue/index.ts"],"sourcesContent":["import JfText from \"./JfText.vue\";\nimport JfTextArea from \"./JfTextArea.vue\";\nimport JfNumber from \"./JfNumber.vue\";\nimport JfEnum from \"./JfEnum.vue\";\nimport JfEnumArray from \"./JfEnumArray.vue\";\nimport JfBoolean from \"./JfBoolean.vue\";\n\n// Auto-inject layout styles\nconst injectLayoutStyles = () => {\n if (typeof window !== \"undefined\" && typeof document !== \"undefined\") {\n if (!document.getElementById(\"jsonforms-primevue-styles\")) {\n const style = document.createElement(\"style\");\n style.id = \"jsonforms-primevue-styles\";\n style.textContent = `\n/* JSONForms PrimeVue Provider Protocols Layout Styles */\n.vertical-layout {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 1rem;\n width: 100%;\n}\n\n.vertical-layout-item {\n width: 100%;\n}\n `;\n document.head.appendChild(style);\n }\n }\n};\n\n// Inject styles when this module is imported\ninjectLayoutStyles();\n\nimport {\n rankWith,\n isStringControl,\n or,\n isNumberControl,\n isIntegerControl,\n and,\n isControl,\n schemaMatches,\n isBooleanControl,\n} from \"@jsonforms/core\";\n\n// helpers for enum detection\nconst isScalarEnum = (s?: object) => {\n const schema = s as { type?: string; enum?: unknown[]; oneOf?: unknown[] };\n return (\n schema &&\n schema.type !== \"array\" &&\n (Array.isArray(schema.enum) || Array.isArray(schema.oneOf))\n );\n};\n\nconst isEnumArray = (s?: object) => {\n const schema = s as {\n type?: string;\n items?: { enum?: unknown[]; oneOf?: unknown[] };\n };\n return (\n schema?.type === \"array\" &&\n (Array.isArray(schema.items?.enum) || Array.isArray(schema.items?.oneOf))\n );\n};\n\n// helper for multiline detection\nconst isMultilineString = (uischema: unknown, schema: unknown) => {\n return (\n isStringControl(uischema as never, schema as never, {} as never) &&\n (uischema as { options?: { multi?: boolean } })?.options?.multi === true\n );\n};\n\n// Give PrimeVue renderers a high base rank; vanilla commonly uses small ranks (2–5)\nconst PRIME = 100;\n\nexport const primevueRenderers = [\n // Multiline text has higher priority than regular text\n { tester: rankWith(PRIME + 4, isMultilineString), renderer: JfTextArea },\n { tester: rankWith(PRIME + 3, isStringControl), renderer: JfText },\n {\n tester: rankWith(PRIME + 4, or(isNumberControl, isIntegerControl)),\n renderer: JfNumber,\n },\n {\n tester: rankWith(PRIME + 5, and(isControl, schemaMatches(isScalarEnum))),\n renderer: JfEnum,\n },\n {\n tester: rankWith(PRIME + 6, and(isControl, schemaMatches(isEnumArray))),\n renderer: JfEnumArray,\n },\n { tester: rankWith(PRIME + 3, isBooleanControl), renderer: JfBoolean },\n];\n\nexport { JfText, JfTextArea, JfNumber, JfEnum, JfEnumArray, JfBoolean };\n"],"names":["JfTextArea","JfText","JfNumber","JfEnum","JfEnumArray","JfBoolean"],"mappings":";;;;;;;AAQA,MAAM,qBAAqB,MAAM;AAC/B,MAAI,OAAO,WAAW,eAAe,OAAO,aAAa,aAAa;AACpE,QAAI,CAAC,SAAS,eAAe,2BAA2B,GAAG;AACzD,YAAM,QAAQ,SAAS,cAAc,OAAO;AAC5C,YAAM,KAAK;AACX,YAAM,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAcpB,eAAS,KAAK,YAAY,KAAK;AAAA,IACjC;AAAA,EACF;AACF;AAGA,mBAAA;AAeA,MAAM,eAAe,CAAC,MAAe;AACnC,QAAM,SAAS;AACf,SACE,UACA,OAAO,SAAS,YACf,MAAM,QAAQ,OAAO,IAAI,KAAK,MAAM,QAAQ,OAAO,KAAK;AAE7D;AAEA,MAAM,cAAc,CAAC,MAAe;AAClC,QAAM,SAAS;AAIf,SACE,QAAQ,SAAS,YAChB,MAAM,QAAQ,OAAO,OAAO,IAAI,KAAK,MAAM,QAAQ,OAAO,OAAO,KAAK;AAE3E;AAGA,MAAM,oBAAoB,CAAC,UAAmB,WAAoB;AAChE,SACE,gBAAgB,UAAmB,QAAiB,CAAA,CAAW,KAC9D,UAAgD,SAAS,UAAU;AAExE;AAGA,MAAM,QAAQ;AAEP,MAAM,oBAAoB;AAAA;AAAA,EAE/B,EAAE,QAAQ,SAAS,QAAQ,GAAG,iBAAiB,GAAG,UAAUA,UAAA;AAAA,EAC5D,EAAE,QAAQ,SAAS,QAAQ,GAAG,eAAe,GAAG,UAAUC,YAAA;AAAA,EAC1D;AAAA,IACE,QAAQ,SAAS,QAAQ,GAAG,GAAG,iBAAiB,gBAAgB,CAAC;AAAA,IACjE,UAAUC;AAAAA,EAAA;AAAA,EAEZ;AAAA,IACE,QAAQ,SAAS,QAAQ,GAAG,IAAI,WAAW,cAAc,YAAY,CAAC,CAAC;AAAA,IACvE,UAAUC;AAAAA,EAAA;AAAA,EAEZ;AAAA,IACE,QAAQ,SAAS,QAAQ,GAAG,IAAI,WAAW,cAAc,WAAW,CAAC,CAAC;AAAA,IACtE,UAAUC;AAAAA,EAAA;AAAA,EAEZ,EAAE,QAAQ,SAAS,QAAQ,GAAG,gBAAgB,GAAG,UAAUC,YAAA;AAC7D;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@narrative.io/jsonforms-provider-protocols",
3
- "version": "1.1.0-beta.7",
3
+ "version": "1.1.0-beta.9",
4
4
  "description": "Dynamic data provider capabilities for JSONForms with Vue 3 integration",
5
5
  "type": "module",
6
6
  "author": "Narrative I/O",
@@ -1,10 +1,36 @@
1
1
  <script lang="ts">
2
- import type { ControlElement } from "@jsonforms/core";
3
- import { rendererProps } from "@jsonforms/vue";
4
-
5
2
  export default {
6
3
  name: "JfBoolean",
7
- props: rendererProps<ControlElement>(),
4
+ props: {
5
+ uischema: {
6
+ type: Object,
7
+ required: true,
8
+ },
9
+ schema: {
10
+ type: Object,
11
+ required: true,
12
+ },
13
+ path: {
14
+ type: String,
15
+ required: true,
16
+ },
17
+ enabled: {
18
+ type: Boolean,
19
+ default: undefined,
20
+ },
21
+ renderers: {
22
+ type: Array,
23
+ required: false,
24
+ },
25
+ cells: {
26
+ type: Array,
27
+ required: false,
28
+ },
29
+ config: {
30
+ type: Object,
31
+ required: false,
32
+ },
33
+ },
8
34
  };
9
35
  </script>
10
36
 
@@ -1,11 +1,37 @@
1
1
  <script lang="ts">
2
- import type { ControlElement } from "@jsonforms/core";
3
- import { rendererProps } from "@jsonforms/vue";
4
-
5
- // Use normal script block to avoid hoisting issues
2
+ // Define props manually to avoid any potential circular dependency issues
6
3
  export default {
7
4
  name: "JfEnum",
8
- props: rendererProps<ControlElement>(),
5
+ props: {
6
+ uischema: {
7
+ type: Object,
8
+ required: true,
9
+ },
10
+ schema: {
11
+ type: Object,
12
+ required: true,
13
+ },
14
+ path: {
15
+ type: String,
16
+ required: true,
17
+ },
18
+ enabled: {
19
+ type: Boolean,
20
+ default: undefined,
21
+ },
22
+ renderers: {
23
+ type: Array,
24
+ required: false,
25
+ },
26
+ cells: {
27
+ type: Array,
28
+ required: false,
29
+ },
30
+ config: {
31
+ type: Object,
32
+ required: false,
33
+ },
34
+ },
9
35
  };
10
36
  </script>
11
37
 
@@ -150,9 +176,3 @@ const onBlur = () => {
150
176
  <small v-else-if="showErrors" class="p-error">{{ control.errors }}</small>
151
177
  </div>
152
178
  </template>
153
-
154
- <style scoped>
155
- :deep(.p-dropdown-label) {
156
- text-align: left;
157
- }
158
- </style>
@@ -1,10 +1,36 @@
1
1
  <script lang="ts">
2
- import type { ControlElement } from "@jsonforms/core";
3
- import { rendererProps } from "@jsonforms/vue";
4
-
5
2
  export default {
6
3
  name: "JfEnumArray",
7
- props: rendererProps<ControlElement>(),
4
+ props: {
5
+ uischema: {
6
+ type: Object,
7
+ required: true,
8
+ },
9
+ schema: {
10
+ type: Object,
11
+ required: true,
12
+ },
13
+ path: {
14
+ type: String,
15
+ required: true,
16
+ },
17
+ enabled: {
18
+ type: Boolean,
19
+ default: undefined,
20
+ },
21
+ renderers: {
22
+ type: Array,
23
+ required: false,
24
+ },
25
+ cells: {
26
+ type: Array,
27
+ required: false,
28
+ },
29
+ config: {
30
+ type: Object,
31
+ required: false,
32
+ },
33
+ },
8
34
  };
9
35
  </script>
10
36
 
@@ -1,10 +1,36 @@
1
1
  <script lang="ts">
2
- import type { ControlElement } from "@jsonforms/core";
3
- import { rendererProps } from "@jsonforms/vue";
4
-
5
2
  export default {
6
3
  name: "JfNumber",
7
- props: rendererProps<ControlElement>(),
4
+ props: {
5
+ uischema: {
6
+ type: Object,
7
+ required: true,
8
+ },
9
+ schema: {
10
+ type: Object,
11
+ required: true,
12
+ },
13
+ path: {
14
+ type: String,
15
+ required: true,
16
+ },
17
+ enabled: {
18
+ type: Boolean,
19
+ default: undefined,
20
+ },
21
+ renderers: {
22
+ type: Array,
23
+ required: false,
24
+ },
25
+ cells: {
26
+ type: Array,
27
+ required: false,
28
+ },
29
+ config: {
30
+ type: Object,
31
+ required: false,
32
+ },
33
+ },
8
34
  };
9
35
  </script>
10
36
 
@@ -1,10 +1,36 @@
1
1
  <script lang="ts">
2
- import type { ControlElement } from "@jsonforms/core";
3
- import { rendererProps } from "@jsonforms/vue";
4
-
5
2
  export default {
6
3
  name: "JfText",
7
- props: rendererProps<ControlElement>(),
4
+ props: {
5
+ uischema: {
6
+ type: Object,
7
+ required: true,
8
+ },
9
+ schema: {
10
+ type: Object,
11
+ required: true,
12
+ },
13
+ path: {
14
+ type: String,
15
+ required: true,
16
+ },
17
+ enabled: {
18
+ type: Boolean,
19
+ default: undefined,
20
+ },
21
+ renderers: {
22
+ type: Array,
23
+ required: false,
24
+ },
25
+ cells: {
26
+ type: Array,
27
+ required: false,
28
+ },
29
+ config: {
30
+ type: Object,
31
+ required: false,
32
+ },
33
+ },
8
34
  };
9
35
  </script>
10
36
 
@@ -1,10 +1,36 @@
1
1
  <script lang="ts">
2
- import type { ControlElement } from "@jsonforms/core";
3
- import { rendererProps } from "@jsonforms/vue";
4
-
5
2
  export default {
6
3
  name: "JfTextArea",
7
- props: rendererProps<ControlElement>(),
4
+ props: {
5
+ uischema: {
6
+ type: Object,
7
+ required: true,
8
+ },
9
+ schema: {
10
+ type: Object,
11
+ required: true,
12
+ },
13
+ path: {
14
+ type: String,
15
+ required: true,
16
+ },
17
+ enabled: {
18
+ type: Boolean,
19
+ default: undefined,
20
+ },
21
+ renderers: {
22
+ type: Array,
23
+ required: false,
24
+ },
25
+ cells: {
26
+ type: Array,
27
+ required: false,
28
+ },
29
+ config: {
30
+ type: Object,
31
+ required: false,
32
+ },
33
+ },
8
34
  };
9
35
  </script>
10
36
 
@@ -13,3 +13,8 @@
13
13
  .vertical-layout-item {
14
14
  width: 100%;
15
15
  }
16
+
17
+ /* PrimeVue dropdown text alignment fix */
18
+ .p-dropdown-label {
19
+ text-align: left !important;
20
+ }