@narrative.io/jsonforms-provider-protocols 2.9.0 → 2.11.0-beta.0

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 (55) hide show
  1. package/README.md +65 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +1 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/jsonforms-provider-protocols.css +2 -2
  6. package/dist/vue/components/ProviderAutocomplete.vue.d.ts.map +1 -1
  7. package/dist/vue/components/ProviderAutocomplete.vue.js +3 -3
  8. package/dist/vue/components/ProviderAutocomplete.vue.js.map +1 -1
  9. package/dist/vue/components/ProviderMultiSelect.vue.d.ts.map +1 -1
  10. package/dist/vue/components/ProviderMultiSelect.vue.js +1 -1
  11. package/dist/vue/components/ProviderMultiSelect.vue2.js +20 -4
  12. package/dist/vue/components/ProviderMultiSelect.vue2.js.map +1 -1
  13. package/dist/vue/components/ProviderSelect.vue.d.ts.map +1 -1
  14. package/dist/vue/components/ProviderSelect.vue.js +1 -1
  15. package/dist/vue/components/ProviderSelect.vue2.js +3 -3
  16. package/dist/vue/components/ProviderSelect.vue2.js.map +1 -1
  17. package/dist/vue/primevue/JfBoolean.vue.d.ts.map +1 -1
  18. package/dist/vue/primevue/JfBoolean.vue.js +8 -2
  19. package/dist/vue/primevue/JfBoolean.vue.js.map +1 -1
  20. package/dist/vue/primevue/JfEnum.vue.d.ts.map +1 -1
  21. package/dist/vue/primevue/JfEnum.vue.js +3 -3
  22. package/dist/vue/primevue/JfEnum.vue.js.map +1 -1
  23. package/dist/vue/primevue/JfEnumArray.vue.d.ts.map +1 -1
  24. package/dist/vue/primevue/JfEnumArray.vue.js +20 -4
  25. package/dist/vue/primevue/JfEnumArray.vue.js.map +1 -1
  26. package/dist/vue/primevue/JfNumber.vue.d.ts.map +1 -1
  27. package/dist/vue/primevue/JfNumber.vue.js +3 -3
  28. package/dist/vue/primevue/JfNumber.vue.js.map +1 -1
  29. package/dist/vue/primevue/JfText.vue.d.ts.map +1 -1
  30. package/dist/vue/primevue/JfText.vue.js +3 -3
  31. package/dist/vue/primevue/JfText.vue.js.map +1 -1
  32. package/dist/vue/primevue/JfTextArea.vue.d.ts.map +1 -1
  33. package/dist/vue/primevue/JfTextArea.vue.js +3 -3
  34. package/dist/vue/primevue/JfTextArea.vue.js.map +1 -1
  35. package/dist/vue/primevue/index.d.ts.map +1 -1
  36. package/dist/vue/primevue/index.js +26 -1
  37. package/dist/vue/primevue/index.js.map +1 -1
  38. package/dist/vue/utils/autoSelect.d.ts +19 -2
  39. package/dist/vue/utils/autoSelect.d.ts.map +1 -1
  40. package/dist/vue/utils/autoSelect.js +21 -1
  41. package/dist/vue/utils/autoSelect.js.map +1 -1
  42. package/package.json +7 -3
  43. package/src/index.ts +2 -0
  44. package/src/vue/components/ProviderAutocomplete.vue +3 -3
  45. package/src/vue/components/ProviderMultiSelect.vue +24 -4
  46. package/src/vue/components/ProviderSelect.vue +3 -3
  47. package/src/vue/primevue/JfBoolean.vue +2 -2
  48. package/src/vue/primevue/JfEnum.vue +3 -3
  49. package/src/vue/primevue/JfEnumArray.vue +24 -4
  50. package/src/vue/primevue/JfNumber.vue +3 -3
  51. package/src/vue/primevue/JfText.vue +3 -3
  52. package/src/vue/primevue/JfTextArea.vue +3 -3
  53. package/src/vue/primevue/index.ts +26 -1
  54. package/src/vue/styles.css +26 -1
  55. package/src/vue/utils/autoSelect.ts +46 -2
@@ -8,11 +8,11 @@ export interface AutoSelectParams {
8
8
  }
9
9
 
10
10
  /**
11
- * Determines if auto-select should trigger and returns the value to select.
11
+ * Determines if auto-select should trigger for single-select dropdowns.
12
12
  * Returns null if auto-select should not trigger.
13
13
  *
14
14
  * Auto-select triggers when:
15
- * - autoSelectSingle option is enabled
15
+ * - autoSelectSingle option is enabled (default: true for single-select)
16
16
  * - Provider has finished loading
17
17
  * - Exactly one item is available
18
18
  * - Current value is empty (undefined/null) OR not in the current options
@@ -38,3 +38,47 @@ export function shouldAutoSelect(params: AutoSelectParams): unknown | null {
38
38
 
39
39
  return null;
40
40
  }
41
+
42
+ export interface AutoSelectMultiParams {
43
+ autoSelectSingle: boolean;
44
+ isLoading: boolean;
45
+ items: ProviderItem[];
46
+ currentValue: unknown[];
47
+ }
48
+
49
+ /**
50
+ * Determines if auto-select should trigger for multiselect dropdowns.
51
+ * Returns null if auto-select should not trigger, otherwise returns an array with the single value.
52
+ *
53
+ * Auto-select triggers when:
54
+ * - autoSelectSingle option is explicitly enabled (default: false for multiselect)
55
+ * - Provider has finished loading
56
+ * - Exactly one item is available
57
+ * - Current value is empty array OR current selection is not in the current options
58
+ */
59
+ export function shouldAutoSelectMulti(
60
+ params: AutoSelectMultiParams
61
+ ): unknown[] | null {
62
+ const { autoSelectSingle, isLoading, items, currentValue } = params;
63
+
64
+ if (!autoSelectSingle || isLoading || items.length !== 1) {
65
+ return null;
66
+ }
67
+
68
+ const singleItem = items[0];
69
+ if (!singleItem) {
70
+ return null;
71
+ }
72
+
73
+ const currentArray = Array.isArray(currentValue) ? currentValue : [];
74
+ const isValueEmpty = currentArray.length === 0;
75
+ const hasValidSelection = currentArray.some((val) =>
76
+ items.some((item) => item.value === val)
77
+ );
78
+
79
+ if (isValueEmpty || !hasValidSelection) {
80
+ return [singleItem.value];
81
+ }
82
+
83
+ return null;
84
+ }