@vc-shell/framework 1.1.19 → 1.1.21
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/CHANGELOG.md +13 -0
- package/core/composables/useKeyboardNavigation/index.ts +0 -12
- package/dist/core/composables/useKeyboardNavigation/index.d.ts.map +1 -1
- package/dist/framework.js +1 -1
- package/dist/{index-uTKF7rlc.js → index-0xMdBsaq.js} +1 -1
- package/dist/{index-CgZYncHs.js → index-B6RKUVy8.js} +1 -1
- package/dist/{index-BwOwXBut.js → index-BXAxQnpt.js} +1 -1
- package/dist/{index-CjOyhVA4.js → index-Ba3wq-Du.js} +8414 -8411
- package/dist/{index-BoGxKFnu.js → index-BgMVbUF5.js} +1 -1
- package/dist/{index-T_R-gZqQ.js → index-CE1KKIYQ.js} +1 -1
- package/dist/{index-zEitvdcx.js → index-CSMBCpee.js} +1 -1
- package/dist/{index-hV9___CR.js → index-DCiQjA10.js} +1 -1
- package/dist/{index-CEEN9FWP.js → index-DLIwas3l.js} +1 -1
- package/dist/{index-CH1B6sJF.js → index-DwOkUUXE.js} +1 -1
- package/dist/{index-BvsQBH3w.js → index-DwsB54rD.js} +1 -1
- package/dist/{index-nqbjSJZb.js → index-Dyg1bSFn.js} +1 -1
- package/dist/{index-BRQ9wWZR.js → index-GpoS3tMh.js} +1 -1
- package/dist/{index-BFhNVNTZ.js → index-J_8wNmd3.js} +1 -1
- package/dist/{index-BJ39J43e.js → index-VLNTEhMQ.js} +1 -1
- package/dist/{index-DkYs6XSR.js → index-WZKioztF.js} +1 -1
- package/dist/{index-CFKt4CD5.js → index-_7O686wp.js} +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/ui/components/molecules/vc-select/vc-select.vue.d.ts.map +1 -1
- package/package.json +4 -4
- package/ui/components/molecules/vc-select/vc-select.vue +44 -23
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vc-select.vue.d.ts","sourceRoot":"","sources":["../../../../../ui/components/molecules/vc-select/vc-select.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vc-select.vue.d.ts","sourceRoot":"","sources":["../../../../../ui/components/molecules/vc-select/vc-select.vue"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vc-shell/framework",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.21",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/framework.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -70,9 +70,9 @@
|
|
|
70
70
|
"devDependencies": {
|
|
71
71
|
"@fullhuman/postcss-purgecss": "^7.0.2",
|
|
72
72
|
"@types/dompurify": "^3.0.5",
|
|
73
|
-
"@vc-shell/api-client-generator": "^1.1.
|
|
74
|
-
"@vc-shell/config-generator": "^1.1.
|
|
75
|
-
"@vc-shell/ts-config": "^1.1.
|
|
73
|
+
"@vc-shell/api-client-generator": "^1.1.21",
|
|
74
|
+
"@vc-shell/config-generator": "^1.1.21",
|
|
75
|
+
"@vc-shell/ts-config": "^1.1.21",
|
|
76
76
|
"@vitejs/plugin-vue": "^5.2.3",
|
|
77
77
|
"@vue/test-utils": "^2.4.5",
|
|
78
78
|
"cypress-signalr-mock": "^1.5.0",
|
|
@@ -239,7 +239,13 @@
|
|
|
239
239
|
<div
|
|
240
240
|
v-if="isOpened"
|
|
241
241
|
ref="dropdownRef"
|
|
242
|
-
v-on-click-outside="[
|
|
242
|
+
v-on-click-outside="[
|
|
243
|
+
() => {
|
|
244
|
+
isOpened = false;
|
|
245
|
+
emit('close');
|
|
246
|
+
},
|
|
247
|
+
{ ignore: [dropdownToggleRef] },
|
|
248
|
+
]"
|
|
243
249
|
data-test-id="dropdown"
|
|
244
250
|
class="vc-select__dropdown"
|
|
245
251
|
role="menu"
|
|
@@ -610,6 +616,10 @@ let innerValueCache: Option[];
|
|
|
610
616
|
|
|
611
617
|
let rootVisibilityObserver: IntersectionObserver | null = null;
|
|
612
618
|
|
|
619
|
+
const getOptionValue = computed(() => getPropValueFn(props.optionValue, "id"));
|
|
620
|
+
|
|
621
|
+
const getOptionLabel = computed(() => getPropValueFn(props.optionLabel, "title"));
|
|
622
|
+
|
|
613
623
|
onMounted(() => {
|
|
614
624
|
if (selectRootRef.value) {
|
|
615
625
|
rootVisibilityObserver = new IntersectionObserver(
|
|
@@ -778,6 +788,7 @@ watch(
|
|
|
778
788
|
});
|
|
779
789
|
} else if (!newIsOpened) {
|
|
780
790
|
keyboardNavigation.cleanupKeyboardNavigation();
|
|
791
|
+
await onDropdownClose();
|
|
781
792
|
}
|
|
782
793
|
},
|
|
783
794
|
{ immediate: false },
|
|
@@ -855,10 +866,6 @@ const hasNextPage = computed(() => {
|
|
|
855
866
|
return optionsList.value.length < totalItems.value;
|
|
856
867
|
});
|
|
857
868
|
|
|
858
|
-
const getOptionValue = computed(() => getPropValueFn(props.optionValue, "id"));
|
|
859
|
-
|
|
860
|
-
const getOptionLabel = computed(() => getPropValueFn(props.optionLabel, "title"));
|
|
861
|
-
|
|
862
869
|
const innerValue = computed((): Option[] => {
|
|
863
870
|
const mapNull = props.mapOptions === true && props.multiple !== true;
|
|
864
871
|
|
|
@@ -977,25 +984,37 @@ function isOptionSelected(opt: Option) {
|
|
|
977
984
|
return innerOptionsValue.value.find((v) => _.isEqual(v, val)) !== void 0;
|
|
978
985
|
}
|
|
979
986
|
|
|
980
|
-
function closeDropdown() {
|
|
981
|
-
onDropdownClose();
|
|
982
|
-
isOpened.value = false;
|
|
983
|
-
isFocused.value = false;
|
|
984
|
-
keyboardNavigation.cleanupKeyboardNavigation();
|
|
985
|
-
emit("close");
|
|
986
|
-
}
|
|
987
|
-
|
|
988
987
|
const onDropdownClose = async () => {
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
} else {
|
|
994
|
-
optionsList.value = props.options as Option[];
|
|
988
|
+
filterString.value = undefined;
|
|
989
|
+
|
|
990
|
+
if (searchRef.value) {
|
|
991
|
+
searchRef.value.value = "";
|
|
995
992
|
}
|
|
996
|
-
optionsTemp.value = optionsList.value;
|
|
997
993
|
|
|
998
|
-
|
|
994
|
+
if (isSelectVisible.value) {
|
|
995
|
+
if (props.options && typeof props.options === "function") {
|
|
996
|
+
try {
|
|
997
|
+
listLoading.value = true;
|
|
998
|
+
const data = await props.options(undefined, 0);
|
|
999
|
+
optionsList.value = (data.results as Option[]) || [];
|
|
1000
|
+
totalItems.value = data.totalCount || 0;
|
|
1001
|
+
} catch (e) {
|
|
1002
|
+
console.error("Error resetting optionsList on dropdown close:", e);
|
|
1003
|
+
optionsList.value = [];
|
|
1004
|
+
totalItems.value = 0;
|
|
1005
|
+
} finally {
|
|
1006
|
+
listLoading.value = false;
|
|
1007
|
+
}
|
|
1008
|
+
} else if (props.options && Array.isArray(props.options)) {
|
|
1009
|
+
optionsList.value = [...props.options] as Option[];
|
|
1010
|
+
totalItems.value = optionsList.value.length;
|
|
1011
|
+
}
|
|
1012
|
+
} else if (props.options && typeof props.options === "function") {
|
|
1013
|
+
optionsList.value = [];
|
|
1014
|
+
totalItems.value = 0;
|
|
1015
|
+
}
|
|
1016
|
+
|
|
1017
|
+
optionsTemp.value = optionsList.value;
|
|
999
1018
|
};
|
|
1000
1019
|
|
|
1001
1020
|
function toggleDropdown() {
|
|
@@ -1074,7 +1093,8 @@ function toggleOption(opt: Option) {
|
|
|
1074
1093
|
emit("update:modelValue", props.emitValue === true ? optValue : opt);
|
|
1075
1094
|
}
|
|
1076
1095
|
|
|
1077
|
-
|
|
1096
|
+
isOpened.value = false;
|
|
1097
|
+
emit("close");
|
|
1078
1098
|
return;
|
|
1079
1099
|
}
|
|
1080
1100
|
|
|
@@ -1161,7 +1181,8 @@ const keyboardNavigation = useKeyboardNavigation({
|
|
|
1161
1181
|
}
|
|
1162
1182
|
},
|
|
1163
1183
|
onEscape: () => {
|
|
1164
|
-
|
|
1184
|
+
isOpened.value = false;
|
|
1185
|
+
emit("close");
|
|
1165
1186
|
},
|
|
1166
1187
|
});
|
|
1167
1188
|
</script>
|