langie 1.13.1 → 2.0.1
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 +20 -4
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.css.map +1 -1
- package/dist/components/index.mjs +21 -5
- package/dist/components/index.mjs.map +1 -1
- package/dist/core.cjs +1 -1
- package/dist/core.mjs +1 -1
- package/dist/index.cjs +20 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.mjs +21 -5
- package/dist/index.mjs.map +1 -1
- package/dist/utils/lazyTransliterate.d.ts +8 -0
- package/package.json +3 -3
package/dist/core.cjs
CHANGED
package/dist/core.mjs
CHANGED
package/dist/index.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* langie
|
|
2
|
+
* langie v2.0.1
|
|
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 = [
|
|
@@ -2218,6 +2226,7 @@ var LanguageSelect_default = /* @__PURE__ */ (0, import_vue3.defineComponent)({
|
|
|
2218
2226
|
"5b09cc17-COLORS.neutral.gray400": (0, import_vue4.unref)(COLORS).neutral.gray400
|
|
2219
2227
|
}));
|
|
2220
2228
|
const COMBOBOX_ARIA = { "aria-multiselectable": void 0 };
|
|
2229
|
+
const multiselectId = (0, import_vue5.useId)();
|
|
2221
2230
|
const getFlagCode = (lang) => {
|
|
2222
2231
|
const flagCode = lang.flag_country || lang.code;
|
|
2223
2232
|
return flagCode;
|
|
@@ -2230,6 +2239,7 @@ var LanguageSelect_default = /* @__PURE__ */ (0, import_vue3.defineComponent)({
|
|
|
2230
2239
|
return props.languages.length <= 0;
|
|
2231
2240
|
});
|
|
2232
2241
|
const searchQuery = (0, import_vue5.ref)("");
|
|
2242
|
+
const transliterate = (0, import_vue5.shallowRef)(null);
|
|
2233
2243
|
const validLanguages = (0, import_vue5.computed)(() => {
|
|
2234
2244
|
return props.languages.filter((lang) => lang && lang.code && lang.name && lang.native_name);
|
|
2235
2245
|
});
|
|
@@ -2282,7 +2292,7 @@ var LanguageSelect_default = /* @__PURE__ */ (0, import_vue3.defineComponent)({
|
|
|
2282
2292
|
if (searchTerm !== query) {
|
|
2283
2293
|
mergeByCode(fuse.value.search(query));
|
|
2284
2294
|
}
|
|
2285
|
-
const latinQuery =
|
|
2295
|
+
const latinQuery = transliterate.value ? transliterate.value(query) : "";
|
|
2286
2296
|
if (latinQuery && latinQuery.toLowerCase() !== query.toLowerCase()) {
|
|
2287
2297
|
mergeByCode(fuse.value.search(latinQuery));
|
|
2288
2298
|
}
|
|
@@ -2323,6 +2333,11 @@ var LanguageSelect_default = /* @__PURE__ */ (0, import_vue3.defineComponent)({
|
|
|
2323
2333
|
function handleSearch(query) {
|
|
2324
2334
|
searchQuery.value = query;
|
|
2325
2335
|
if (!query.trim()) return;
|
|
2336
|
+
if (!transliterate.value) {
|
|
2337
|
+
void loadTransliterate().then((fn) => {
|
|
2338
|
+
transliterate.value = fn;
|
|
2339
|
+
});
|
|
2340
|
+
}
|
|
2326
2341
|
(0, import_vue5.nextTick)(() => {
|
|
2327
2342
|
multiselectRef.value?.setPointerFirst?.();
|
|
2328
2343
|
const dropdown = document.querySelector(".multiselect-dropdown");
|
|
@@ -2391,6 +2406,7 @@ var LanguageSelect_default = /* @__PURE__ */ (0, import_vue3.defineComponent)({
|
|
|
2391
2406
|
label: "name",
|
|
2392
2407
|
"value-prop": "code",
|
|
2393
2408
|
"filter-results": false,
|
|
2409
|
+
id: (0, import_vue4.unref)(multiselectId),
|
|
2394
2410
|
aria: COMBOBOX_ARIA,
|
|
2395
2411
|
onKeydown: handleKeydown
|
|
2396
2412
|
}, {
|
|
@@ -2469,7 +2485,7 @@ var LanguageSelect_default = /* @__PURE__ */ (0, import_vue3.defineComponent)({
|
|
|
2469
2485
|
]),
|
|
2470
2486
|
_: 1
|
|
2471
2487
|
/* STABLE */
|
|
2472
|
-
}, 8, ["modelValue", "options", "placeholder", "disabled", "loading"])) : isLoading.value && validLanguages.value.length === 0 ? ((0, import_vue4.openBlock)(), (0, import_vue4.createElementBlock)(
|
|
2488
|
+
}, 8, ["modelValue", "options", "placeholder", "disabled", "loading", "id"])) : isLoading.value && validLanguages.value.length === 0 ? ((0, import_vue4.openBlock)(), (0, import_vue4.createElementBlock)(
|
|
2473
2489
|
import_vue4.Fragment,
|
|
2474
2490
|
{ key: 1 },
|
|
2475
2491
|
[
|