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
package/dist/core.cjs
CHANGED
package/dist/core.mjs
CHANGED
package/dist/index.cjs
CHANGED
|
@@ -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
|
*
|
|
@@ -1531,7 +1531,15 @@ var import_default = require("@vueform/multiselect/themes/default.css");
|
|
|
1531
1531
|
var import_vue5 = require("vue");
|
|
1532
1532
|
var import_multiselect = __toESM(require("@vueform/multiselect"));
|
|
1533
1533
|
var import_fuse = __toESM(require("fuse.js"));
|
|
1534
|
-
|
|
1534
|
+
|
|
1535
|
+
// src/utils/lazyTransliterate.ts
|
|
1536
|
+
var pending = null;
|
|
1537
|
+
function loadTransliterate() {
|
|
1538
|
+
if (!pending) {
|
|
1539
|
+
pending = import("transliteration").then((m) => m.transliterate);
|
|
1540
|
+
}
|
|
1541
|
+
return pending;
|
|
1542
|
+
}
|
|
1535
1543
|
|
|
1536
1544
|
// src/language-aliases/european.ts
|
|
1537
1545
|
var EUROPEAN_LANGUAGES = [
|
|
@@ -2217,6 +2225,7 @@ var LanguageSelect_default = /* @__PURE__ */ (0, import_vue3.defineComponent)({
|
|
|
2217
2225
|
"5b09cc17-COLORS.text.secondary": (0, import_vue4.unref)(COLORS).text.secondary,
|
|
2218
2226
|
"5b09cc17-COLORS.neutral.gray400": (0, import_vue4.unref)(COLORS).neutral.gray400
|
|
2219
2227
|
}));
|
|
2228
|
+
const COMBOBOX_ARIA = { "aria-multiselectable": void 0 };
|
|
2220
2229
|
const getFlagCode = (lang) => {
|
|
2221
2230
|
const flagCode = lang.flag_country || lang.code;
|
|
2222
2231
|
return flagCode;
|
|
@@ -2229,6 +2238,7 @@ var LanguageSelect_default = /* @__PURE__ */ (0, import_vue3.defineComponent)({
|
|
|
2229
2238
|
return props.languages.length <= 0;
|
|
2230
2239
|
});
|
|
2231
2240
|
const searchQuery = (0, import_vue5.ref)("");
|
|
2241
|
+
const transliterate = (0, import_vue5.shallowRef)(null);
|
|
2232
2242
|
const validLanguages = (0, import_vue5.computed)(() => {
|
|
2233
2243
|
return props.languages.filter((lang) => lang && lang.code && lang.name && lang.native_name);
|
|
2234
2244
|
});
|
|
@@ -2281,7 +2291,7 @@ var LanguageSelect_default = /* @__PURE__ */ (0, import_vue3.defineComponent)({
|
|
|
2281
2291
|
if (searchTerm !== query) {
|
|
2282
2292
|
mergeByCode(fuse.value.search(query));
|
|
2283
2293
|
}
|
|
2284
|
-
const latinQuery =
|
|
2294
|
+
const latinQuery = transliterate.value ? transliterate.value(query) : "";
|
|
2285
2295
|
if (latinQuery && latinQuery.toLowerCase() !== query.toLowerCase()) {
|
|
2286
2296
|
mergeByCode(fuse.value.search(latinQuery));
|
|
2287
2297
|
}
|
|
@@ -2322,6 +2332,11 @@ var LanguageSelect_default = /* @__PURE__ */ (0, import_vue3.defineComponent)({
|
|
|
2322
2332
|
function handleSearch(query) {
|
|
2323
2333
|
searchQuery.value = query;
|
|
2324
2334
|
if (!query.trim()) return;
|
|
2335
|
+
if (!transliterate.value) {
|
|
2336
|
+
void loadTransliterate().then((fn) => {
|
|
2337
|
+
transliterate.value = fn;
|
|
2338
|
+
});
|
|
2339
|
+
}
|
|
2325
2340
|
(0, import_vue5.nextTick)(() => {
|
|
2326
2341
|
multiselectRef.value?.setPointerFirst?.();
|
|
2327
2342
|
const dropdown = document.querySelector(".multiselect-dropdown");
|
|
@@ -2390,6 +2405,7 @@ var LanguageSelect_default = /* @__PURE__ */ (0, import_vue3.defineComponent)({
|
|
|
2390
2405
|
label: "name",
|
|
2391
2406
|
"value-prop": "code",
|
|
2392
2407
|
"filter-results": false,
|
|
2408
|
+
aria: COMBOBOX_ARIA,
|
|
2393
2409
|
onKeydown: handleKeydown
|
|
2394
2410
|
}, {
|
|
2395
2411
|
singlelabel: (0, import_vue4.withCtx)(({ value }) => [
|