langie 1.13.0 → 1.14.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/dist/components/index.cjs +19 -3
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.css.map +1 -1
- package/dist/components/index.mjs +20 -4
- package/dist/components/index.mjs.map +1 -1
- package/dist/core.cjs +1 -1
- package/dist/core.mjs +1 -1
- package/dist/index.cjs +19 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.mjs +20 -4
- package/dist/index.mjs.map +1 -1
- package/dist/utils/lazyTransliterate.d.ts +8 -0
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* langie v1.
|
|
2
|
+
* langie v1.14.0
|
|
3
3
|
* (c) 2026 nlit
|
|
4
4
|
* @license Apache-2.0
|
|
5
5
|
*
|
|
@@ -78,7 +78,15 @@ styleInject(".multiselect-single-label,\n.multiselect-option {\n display: flex;
|
|
|
78
78
|
var import_vue3 = require("vue");
|
|
79
79
|
var import_multiselect = __toESM(require("@vueform/multiselect"));
|
|
80
80
|
var import_fuse = __toESM(require("fuse.js"));
|
|
81
|
-
|
|
81
|
+
|
|
82
|
+
// src/utils/lazyTransliterate.ts
|
|
83
|
+
var pending = null;
|
|
84
|
+
function loadTransliterate() {
|
|
85
|
+
if (!pending) {
|
|
86
|
+
pending = import("transliteration").then((m) => m.transliterate);
|
|
87
|
+
}
|
|
88
|
+
return pending;
|
|
89
|
+
}
|
|
82
90
|
|
|
83
91
|
// src/language-aliases/european.ts
|
|
84
92
|
var EUROPEAN_LANGUAGES = [
|
|
@@ -746,6 +754,7 @@ var LanguageSelect_default = /* @__PURE__ */ (0, import_vue.defineComponent)({
|
|
|
746
754
|
"5b09cc17-COLORS.text.secondary": (0, import_vue2.unref)(COLORS).text.secondary,
|
|
747
755
|
"5b09cc17-COLORS.neutral.gray400": (0, import_vue2.unref)(COLORS).neutral.gray400
|
|
748
756
|
}));
|
|
757
|
+
const COMBOBOX_ARIA = { "aria-multiselectable": void 0 };
|
|
749
758
|
const getFlagCode = (lang) => {
|
|
750
759
|
const flagCode = lang.flag_country || lang.code;
|
|
751
760
|
return flagCode;
|
|
@@ -758,6 +767,7 @@ var LanguageSelect_default = /* @__PURE__ */ (0, import_vue.defineComponent)({
|
|
|
758
767
|
return props.languages.length <= 0;
|
|
759
768
|
});
|
|
760
769
|
const searchQuery = (0, import_vue3.ref)("");
|
|
770
|
+
const transliterate = (0, import_vue3.shallowRef)(null);
|
|
761
771
|
const validLanguages = (0, import_vue3.computed)(() => {
|
|
762
772
|
return props.languages.filter((lang) => lang && lang.code && lang.name && lang.native_name);
|
|
763
773
|
});
|
|
@@ -810,7 +820,7 @@ var LanguageSelect_default = /* @__PURE__ */ (0, import_vue.defineComponent)({
|
|
|
810
820
|
if (searchTerm !== query) {
|
|
811
821
|
mergeByCode(fuse.value.search(query));
|
|
812
822
|
}
|
|
813
|
-
const latinQuery =
|
|
823
|
+
const latinQuery = transliterate.value ? transliterate.value(query) : "";
|
|
814
824
|
if (latinQuery && latinQuery.toLowerCase() !== query.toLowerCase()) {
|
|
815
825
|
mergeByCode(fuse.value.search(latinQuery));
|
|
816
826
|
}
|
|
@@ -851,6 +861,11 @@ var LanguageSelect_default = /* @__PURE__ */ (0, import_vue.defineComponent)({
|
|
|
851
861
|
function handleSearch(query) {
|
|
852
862
|
searchQuery.value = query;
|
|
853
863
|
if (!query.trim()) return;
|
|
864
|
+
if (!transliterate.value) {
|
|
865
|
+
void loadTransliterate().then((fn) => {
|
|
866
|
+
transliterate.value = fn;
|
|
867
|
+
});
|
|
868
|
+
}
|
|
854
869
|
(0, import_vue3.nextTick)(() => {
|
|
855
870
|
multiselectRef.value?.setPointerFirst?.();
|
|
856
871
|
const dropdown = document.querySelector(".multiselect-dropdown");
|
|
@@ -919,6 +934,7 @@ var LanguageSelect_default = /* @__PURE__ */ (0, import_vue.defineComponent)({
|
|
|
919
934
|
label: "name",
|
|
920
935
|
"value-prop": "code",
|
|
921
936
|
"filter-results": false,
|
|
937
|
+
aria: COMBOBOX_ARIA,
|
|
922
938
|
onKeydown: handleKeydown
|
|
923
939
|
}, {
|
|
924
940
|
singlelabel: (0, import_vue2.withCtx)(({ value }) => [
|