@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.
- package/README.md +65 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/jsonforms-provider-protocols.css +2 -2
- package/dist/vue/components/ProviderAutocomplete.vue.d.ts.map +1 -1
- package/dist/vue/components/ProviderAutocomplete.vue.js +3 -3
- package/dist/vue/components/ProviderAutocomplete.vue.js.map +1 -1
- package/dist/vue/components/ProviderMultiSelect.vue.d.ts.map +1 -1
- package/dist/vue/components/ProviderMultiSelect.vue.js +1 -1
- package/dist/vue/components/ProviderMultiSelect.vue2.js +20 -4
- package/dist/vue/components/ProviderMultiSelect.vue2.js.map +1 -1
- package/dist/vue/components/ProviderSelect.vue.d.ts.map +1 -1
- package/dist/vue/components/ProviderSelect.vue.js +1 -1
- package/dist/vue/components/ProviderSelect.vue2.js +3 -3
- package/dist/vue/components/ProviderSelect.vue2.js.map +1 -1
- package/dist/vue/primevue/JfBoolean.vue.d.ts.map +1 -1
- package/dist/vue/primevue/JfBoolean.vue.js +8 -2
- package/dist/vue/primevue/JfBoolean.vue.js.map +1 -1
- package/dist/vue/primevue/JfEnum.vue.d.ts.map +1 -1
- package/dist/vue/primevue/JfEnum.vue.js +3 -3
- package/dist/vue/primevue/JfEnum.vue.js.map +1 -1
- package/dist/vue/primevue/JfEnumArray.vue.d.ts.map +1 -1
- package/dist/vue/primevue/JfEnumArray.vue.js +20 -4
- package/dist/vue/primevue/JfEnumArray.vue.js.map +1 -1
- package/dist/vue/primevue/JfNumber.vue.d.ts.map +1 -1
- package/dist/vue/primevue/JfNumber.vue.js +3 -3
- package/dist/vue/primevue/JfNumber.vue.js.map +1 -1
- package/dist/vue/primevue/JfText.vue.d.ts.map +1 -1
- package/dist/vue/primevue/JfText.vue.js +3 -3
- package/dist/vue/primevue/JfText.vue.js.map +1 -1
- package/dist/vue/primevue/JfTextArea.vue.d.ts.map +1 -1
- package/dist/vue/primevue/JfTextArea.vue.js +3 -3
- package/dist/vue/primevue/JfTextArea.vue.js.map +1 -1
- package/dist/vue/primevue/index.d.ts.map +1 -1
- package/dist/vue/primevue/index.js +26 -1
- package/dist/vue/primevue/index.js.map +1 -1
- package/dist/vue/utils/autoSelect.d.ts +19 -2
- package/dist/vue/utils/autoSelect.d.ts.map +1 -1
- package/dist/vue/utils/autoSelect.js +21 -1
- package/dist/vue/utils/autoSelect.js.map +1 -1
- package/package.json +7 -3
- package/src/index.ts +2 -0
- package/src/vue/components/ProviderAutocomplete.vue +3 -3
- package/src/vue/components/ProviderMultiSelect.vue +24 -4
- package/src/vue/components/ProviderSelect.vue +3 -3
- package/src/vue/primevue/JfBoolean.vue +2 -2
- package/src/vue/primevue/JfEnum.vue +3 -3
- package/src/vue/primevue/JfEnumArray.vue +24 -4
- package/src/vue/primevue/JfNumber.vue +3 -3
- package/src/vue/primevue/JfText.vue +3 -3
- package/src/vue/primevue/JfTextArea.vue +3 -3
- package/src/vue/primevue/index.ts +26 -1
- package/src/vue/styles.css +26 -1
- 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
|
|
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
|
+
}
|