@vc-shell/framework 1.1.62 → 1.1.64
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 +8 -0
- package/core/composables/useLanguages/index.ts +16 -73
- package/core/services/index.ts +1 -0
- package/core/services/language-service.ts +88 -0
- package/dist/core/composables/useLanguages/index.d.ts +4 -15
- package/dist/core/composables/useLanguages/index.d.ts.map +1 -1
- package/dist/core/services/index.d.ts +1 -0
- package/dist/core/services/index.d.ts.map +1 -1
- package/dist/core/services/language-service.d.ts +15 -0
- package/dist/core/services/language-service.d.ts.map +1 -0
- package/dist/framework.js +6038 -6021
- package/dist/index.d.ts.map +1 -1
- package/dist/injection-keys.d.ts +2 -1
- package/dist/injection-keys.d.ts.map +1 -1
- package/dist/shared/components/language-selector/language-selector.vue.d.ts.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/vendor-boolbase-A_-Pp38P.js +23 -0
- package/dist/{vendor-cheerio-CleDsuQZ.js → vendor-cheerio-C46iBpCu.js} +10 -10
- package/dist/{vendor-cheerio-select-CVkYl3Z-.js → vendor-cheerio-select-C8emRZsx.js} +5 -5
- package/dist/vendor-core-js-DFA7rceR.js +1206 -0
- package/dist/{vendor-css-select-CtIzVIiG.js → vendor-css-select-DR9bp36p.js} +3 -3
- package/dist/{vendor-dom-serializer-CugO0RdN.js → vendor-dom-serializer-Sk3xHhQk.js} +1 -1
- package/dist/{vendor-domutils-D3Y2YQFR.js → vendor-domutils-BiVCXO8c.js} +2 -2
- package/dist/{vendor-entities-v26HW8wW.js → vendor-entities-CCReaWqU.js} +35 -34
- package/dist/{vendor-floating-ui-core-C9uEvi1M.js → vendor-floating-ui-core-DpX2jufl.js} +10 -10
- package/dist/{vendor-floating-ui-dom-CZkYGmv4.js → vendor-floating-ui-dom-C4AKN5Mo.js} +8 -8
- package/dist/{vendor-floating-ui-utils-Bx3BTd6_.js → vendor-floating-ui-utils-CRaCuFxS.js} +29 -29
- package/dist/{vendor-floating-ui-vue-CLOiVYP7.js → vendor-floating-ui-vue-OwtolkBv.js} +12 -12
- package/dist/{vendor-htmlparser2-CXL_uhMI.js → vendor-htmlparser2-CpQu33io.js} +1 -1
- package/dist/{vendor-intlify-core-base-FyGSkd6r.js → vendor-intlify-core-base-txnziOTW.js} +9 -9
- package/dist/{vendor-intlify-message-compiler-D_vL9-DK.js → vendor-intlify-message-compiler-XquMv3aB.js} +5 -3
- package/dist/{vendor-intlify-shared-BMbzEQSk.js → vendor-intlify-shared-CE1Dfvjf.js} +11 -11
- package/dist/{vendor-iso-639-1-dVGfSUIM.js → vendor-iso-639-1-BJO6WZAt.js} +3 -3
- package/dist/{vendor-markdown-it-4AJoRTAg.js → vendor-markdown-it-RJo-N9ov.js} +1 -1
- package/dist/{vendor-markdown-it-task-lists-Byg1-ms9.js → vendor-markdown-it-task-lists-BxLwscWK.js} +2 -2
- package/dist/{vendor-microsoft-applicationinsights-analytics-js-DA-ctcAL.js → vendor-microsoft-applicationinsights-analytics-js-CauId95v.js} +5 -5
- package/dist/{vendor-microsoft-applicationinsights-cfgsync-js-COfRj-2q.js → vendor-microsoft-applicationinsights-cfgsync-js-DGfB75It.js} +3 -3
- package/dist/{vendor-microsoft-applicationinsights-channel-js-MTPYhH-I.js → vendor-microsoft-applicationinsights-channel-js-B4PYlGv8.js} +11 -11
- package/dist/{vendor-microsoft-applicationinsights-common-CDVnJ6MR.js → vendor-microsoft-applicationinsights-common-Bj6sQeoz.js} +7 -7
- package/dist/{vendor-microsoft-applicationinsights-core-js-D7Aicf8S.js → vendor-microsoft-applicationinsights-core-js-Cga21Mpw.js} +13 -13
- package/dist/{vendor-microsoft-applicationinsights-dependencies-js-CvQWWraU.js → vendor-microsoft-applicationinsights-dependencies-js-CH87Sln6.js} +68 -68
- package/dist/{vendor-microsoft-applicationinsights-properties-js-C0Iv1cZE.js → vendor-microsoft-applicationinsights-properties-js-CLE2OEt_.js} +5 -5
- package/dist/{vendor-microsoft-applicationinsights-web-BRuQAzjU.js → vendor-microsoft-applicationinsights-web-8IaeIl22.js} +8 -8
- package/dist/{vendor-nevware21-ts-async-FAyg3c9V.js → vendor-nevware21-ts-async-DadHEt7N.js} +3 -3
- package/dist/{vendor-nth-check-BE7AeBMg.js → vendor-nth-check-CS1D-zr5.js} +1 -1
- package/dist/{vendor-parse5-htmlparser2-tree-adapter-CNubfdOP.js → vendor-parse5-htmlparser2-tree-adapter-BWywtwol.js} +9 -9
- package/dist/{vendor-parse5-DqztJOGh.js → vendor-parse5-zq5Hn0y9.js} +3 -1
- package/dist/{vendor-prettier-D8C9GG-0.js → vendor-prettier-DaiSFsWE.js} +1184 -1167
- package/dist/vendor-prosemirror-commands-B8fhFbTo.js +385 -0
- package/dist/{vendor-prosemirror-dropcursor-CwZhBUcZ.js → vendor-prosemirror-dropcursor-CdHQ9kQG.js} +2 -2
- package/dist/{vendor-prosemirror-gapcursor-COcwb4TJ.js → vendor-prosemirror-gapcursor-W-ky5QTm.js} +4 -4
- package/dist/{vendor-prosemirror-history-DmPvdOpr.js → vendor-prosemirror-history-CrtTR5Cd.js} +2 -2
- package/dist/{vendor-prosemirror-keymap-CS1uIBpE.js → vendor-prosemirror-keymap-DWvoDWf6.js} +1 -1
- package/dist/{vendor-prosemirror-markdown-sO1Pn6SW.js → vendor-prosemirror-markdown-CuzWQ2N6.js} +2 -2
- package/dist/{vendor-prosemirror-model-DwojkhDQ.js → vendor-prosemirror-model-CVTn1Stc.js} +2 -2
- package/dist/{vendor-prosemirror-schema-list-rrOzMlj0.js → vendor-prosemirror-schema-list-Ds6x_KLX.js} +2 -2
- package/dist/{vendor-prosemirror-state-BN86J-Ko.js → vendor-prosemirror-state-CRUasa1V.js} +2 -2
- package/dist/{vendor-prosemirror-tables-C7XMqyon.js → vendor-prosemirror-tables-DzTfCeHX.js} +5 -5
- package/dist/{vendor-prosemirror-transform-B0c_LAV_.js → vendor-prosemirror-transform-BeDaI3CS.js} +1 -1
- package/dist/{vendor-prosemirror-view-DyWzmy4t.js → vendor-prosemirror-view-BGYdOWiJ.js} +76 -74
- package/dist/{vendor-semver-BoKYtkQw.js → vendor-semver-FuwqpOls.js} +435 -435
- package/dist/vendor-tanstack-vue-virtual-CD9yLWd7.js +1 -0
- package/dist/{vendor-tippy-js-BGdgwGX-.js → vendor-tippy-js-nNhcw_JH.js} +15 -15
- package/dist/{vendor-tiptap-core-BgwY40dr.js → vendor-tiptap-core-dlTW4S11.js} +76 -65
- package/dist/{vendor-tiptap-extension-blockquote-BVW0VVC0.js → vendor-tiptap-extension-blockquote-iAIM-meW.js} +1 -1
- package/dist/{vendor-tiptap-extension-bold-xhi5xxPT.js → vendor-tiptap-extension-bold-bkOLNH6E.js} +1 -1
- package/dist/{vendor-tiptap-extension-bubble-menu-DhWtcCL3.js → vendor-tiptap-extension-bubble-menu-BRWVLpun.js} +6 -6
- package/dist/{vendor-tiptap-extension-bullet-list-Ba21suMY.js → vendor-tiptap-extension-bullet-list-DfU428XB.js} +1 -1
- package/dist/{vendor-tiptap-extension-code-DFTxp7wE.js → vendor-tiptap-extension-code-CgIql8q6.js} +1 -1
- package/dist/{vendor-tiptap-extension-code-block-B2KK5g8S.js → vendor-tiptap-extension-code-block-V26-erQk.js} +2 -2
- package/dist/{vendor-tiptap-extension-document-CW8jybcc.js → vendor-tiptap-extension-document-BYF_BzDD.js} +1 -1
- package/dist/{vendor-tiptap-extension-dropcursor-DdRuETKJ.js → vendor-tiptap-extension-dropcursor-DqjaaFex.js} +2 -2
- package/dist/{vendor-tiptap-extension-floating-menu-Da7fpnr7.js → vendor-tiptap-extension-floating-menu-vptdm_Y0.js} +6 -6
- package/dist/{vendor-tiptap-extension-gapcursor-CafmhWSf.js → vendor-tiptap-extension-gapcursor-DxLBw8V0.js} +2 -2
- package/dist/{vendor-tiptap-extension-hard-break-n9aI6ybJ.js → vendor-tiptap-extension-hard-break-DygHhzqw.js} +1 -1
- package/dist/{vendor-tiptap-extension-heading-xj24usOy.js → vendor-tiptap-extension-heading-C-ArDc3_.js} +1 -1
- package/dist/{vendor-tiptap-extension-history-C2uOLua2.js → vendor-tiptap-extension-history-C41RW3Bv.js} +2 -2
- package/dist/{vendor-tiptap-extension-horizontal-rule--uXIYeaK.js → vendor-tiptap-extension-horizontal-rule-BGMGd9fo.js} +2 -2
- package/dist/{vendor-tiptap-extension-image-BJx5lyoG.js → vendor-tiptap-extension-image-DChcWb4v.js} +1 -1
- package/dist/{vendor-tiptap-extension-italic-DPAViC4y.js → vendor-tiptap-extension-italic-BNJrFvrR.js} +1 -1
- package/dist/{vendor-tiptap-extension-link-aDGmrWTi.js → vendor-tiptap-extension-link-DFN4ENph.js} +2 -2
- package/dist/{vendor-tiptap-extension-list-item-DE9dJ64Q.js → vendor-tiptap-extension-list-item-3qKYhGHe.js} +1 -1
- package/dist/{vendor-tiptap-extension-ordered-list-CcNtDDJm.js → vendor-tiptap-extension-ordered-list-D3QL0eiW.js} +1 -1
- package/dist/{vendor-tiptap-extension-paragraph-DvlrAzIW.js → vendor-tiptap-extension-paragraph-DZfkaJJ-.js} +1 -1
- package/dist/{vendor-tiptap-extension-placeholder-DyW7px66.js → vendor-tiptap-extension-placeholder-CoOAmd0a.js} +7 -7
- package/dist/{vendor-tiptap-extension-strike-DMMLEFkd.js → vendor-tiptap-extension-strike-BlGNozxy.js} +1 -1
- package/dist/{vendor-tiptap-extension-table-BpegTABL.js → vendor-tiptap-extension-table-CZn6Xykb.js} +16 -16
- package/dist/{vendor-tiptap-extension-table-cell-8rHRq4BW.js → vendor-tiptap-extension-table-cell-BQuS-XFD.js} +1 -1
- package/dist/{vendor-tiptap-extension-table-header-DZ1y7iS2.js → vendor-tiptap-extension-table-header-ZrtK7HiQ.js} +1 -1
- package/dist/{vendor-tiptap-extension-table-row-DmkNUw4L.js → vendor-tiptap-extension-table-row-CBrXvqsO.js} +1 -1
- package/dist/{vendor-tiptap-extension-text-Cwas3TQT.js → vendor-tiptap-extension-text-DwA7jrBq.js} +1 -1
- package/dist/{vendor-tiptap-extension-underline-Hz5uJRfR.js → vendor-tiptap-extension-underline-CIVtuRLl.js} +1 -1
- package/dist/{vendor-tiptap-markdown-Dj1XZWg4.js → vendor-tiptap-markdown-CidDIpZ-.js} +12 -11
- package/dist/vendor-tiptap-pm-9TOy65Oe.js +1 -0
- package/dist/{vendor-tiptap-starter-kit-Cxj07T7v.js → vendor-tiptap-starter-kit-BdU6UtqB.js} +19 -19
- package/dist/{vendor-tiptap-vue-3-DF4kzEFI.js → vendor-tiptap-vue-3-CnYccgV4.js} +3 -3
- package/dist/{vendor-truncate-html-Bx1HJzRq.js → vendor-truncate-html-DYC0Lj9o.js} +1 -1
- package/dist/{vendor-vee-validate-rules-DDeNM2Gc.js → vendor-vee-validate-rules-4oWUZPpG.js} +4 -2
- package/dist/{vendor-vue-currency-input-DxWnS-HB.js → vendor-vue-currency-input-BqaYAdhD.js} +88 -86
- package/dist/vendor-vue-demi-CD9yLWd7.js +1 -0
- package/dist/{vendor-vue-i18n-DC6m6S7G.js → vendor-vue-i18n-BeXi5L3e.js} +423 -412
- package/dist/{vendor-vue3-application-insights-dAGGfA_M.js → vendor-vue3-application-insights-C8xbxXXX.js} +2 -2
- package/dist/{vendor-vuepic-vue-datepicker-_JffV5We.js → vendor-vuepic-vue-datepicker-DkHsqyoL.js} +257 -257
- package/dist/vendor-vueuse-components-B0zqjNRW.js +542 -0
- package/dist/{vendor-vueuse-core-cB-c7DzH.js → vendor-vueuse-core-CYgwn-B2.js} +31 -30
- package/dist/{vendor-vueuse-shared-Dg7PMM0z.js → vendor-vueuse-shared-B_uDJJ6V.js} +33 -33
- package/package.json +5 -5
- package/shared/components/language-selector/language-selector.vue +16 -8
- package/dist/vendor-boolbase-Bgn9I6iN.js +0 -21
- package/dist/vendor-core-js-l0sNRNKZ.js +0 -1
- package/dist/vendor-prosemirror-commands-C6teL3Xo.js +0 -344
- package/dist/vendor-tanstack-vue-virtual-l0sNRNKZ.js +0 -1
- package/dist/vendor-tiptap-pm-l0sNRNKZ.js +0 -1
- package/dist/vendor-vue-demi-l0sNRNKZ.js +0 -1
- package/dist/vendor-vueuse-components-DtK_mxpP.js +0 -219
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
## [1.1.64](https://github.com/VirtoCommerce/vc-shell/compare/v1.1.63...v1.1.64) (2025-07-25)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
## [1.1.63](https://github.com/VirtoCommerce/vc-shell/compare/v1.1.62...v1.1.63) (2025-07-25)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
1
9
|
## [1.1.62](https://github.com/VirtoCommerce/vc-shell/compare/v1.1.61...v1.1.62) (2025-07-24)
|
|
2
10
|
|
|
3
11
|
|
|
@@ -1,79 +1,22 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { createSharedComposable, useLocalStorage } from "@vueuse/core";
|
|
5
|
-
import { ComputedRef, computed } from "vue";
|
|
6
|
-
import ISO6391 from "iso-639-1";
|
|
7
|
-
import { languageToCountryMap } from "../../constants";
|
|
1
|
+
import { inject, provide } from "vue";
|
|
2
|
+
import { LanguageServiceKey } from "../../../injection-keys";
|
|
3
|
+
import { ILanguageService, createLanguageService } from "../../services/language-service";
|
|
8
4
|
|
|
9
|
-
export interface IUseLanguages {
|
|
10
|
-
setLocale: (locale: string) => void;
|
|
11
|
-
currentLocale: ComputedRef<string>;
|
|
12
|
-
getLocaleByTag: (localeTag: string) => string | undefined;
|
|
13
|
-
resolveCamelCaseLocale: (locale: string) => string;
|
|
14
|
-
getFlag: (language: string) => Promise<string>;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export const useLanguages = createSharedComposable(() => {
|
|
18
|
-
const defaultLanguage = i18n.global.locale.value;
|
|
19
|
-
const savedLocale = useLocalStorage("VC_LANGUAGE_SETTINGS", "");
|
|
20
|
-
|
|
21
|
-
const currentLocale = computed(() => {
|
|
22
|
-
let locale = defaultLanguage;
|
|
23
|
-
|
|
24
|
-
if (i18n.global.availableLocales.includes(savedLocale.value)) {
|
|
25
|
-
locale = savedLocale.value;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
return locale;
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
function setLocale(locale: string) {
|
|
32
|
-
i18n.global.locale.value = locale;
|
|
33
|
-
veeValidate.configure({
|
|
34
|
-
generateMessage: localize(locale, {
|
|
35
|
-
messages: (i18n.global.getLocaleMessage(locale) as { messages: Record<string, string> }).messages,
|
|
36
|
-
}),
|
|
37
|
-
});
|
|
38
|
-
setVeeI18nLocale(locale);
|
|
39
|
-
savedLocale.value = locale;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
function getLocaleByTag(localeTag: string) {
|
|
43
|
-
if (!localeTag) return;
|
|
5
|
+
export interface IUseLanguages extends ILanguageService {}
|
|
44
6
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
function resolveCamelCaseLocale(locale: string) {
|
|
51
|
-
const formattedLocale = locale.replace(/([a-z]+)([A-Z]+)/g, "$1-$2").toLowerCase();
|
|
52
|
-
|
|
53
|
-
if (i18n.global.getLocaleMessage(formattedLocale)) {
|
|
54
|
-
return formattedLocale;
|
|
55
|
-
}
|
|
56
|
-
return "en";
|
|
57
|
-
}
|
|
7
|
+
export function provideLanguages(): ILanguageService {
|
|
8
|
+
const service = createLanguageService();
|
|
9
|
+
provide(LanguageServiceKey, service);
|
|
10
|
+
return service;
|
|
11
|
+
}
|
|
58
12
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
languageToCountryMap[language.toLocaleLowerCase()] || languageToCountryMap[language.slice(0, 2)] || "xx" // placeholder for unknown country
|
|
62
|
-
);
|
|
63
|
-
}
|
|
13
|
+
export function useLanguages(): IUseLanguages {
|
|
14
|
+
let languageService = inject(LanguageServiceKey);
|
|
64
15
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
return new URL(`../../../assets/icons/flags/${countryCode}.svg`, import.meta.url).href;
|
|
16
|
+
if (!languageService) {
|
|
17
|
+
languageService = provideLanguages();
|
|
18
|
+
// throw new Error("Language service not found. Make sure the framework is properly initialized.");
|
|
69
19
|
}
|
|
70
20
|
|
|
71
|
-
return
|
|
72
|
-
|
|
73
|
-
currentLocale,
|
|
74
|
-
getLocaleByTag,
|
|
75
|
-
resolveCamelCaseLocale,
|
|
76
|
-
getFlag,
|
|
77
|
-
getCountryCode,
|
|
78
|
-
};
|
|
79
|
-
});
|
|
21
|
+
return languageService;
|
|
22
|
+
}
|
package/core/services/index.ts
CHANGED
|
@@ -2,6 +2,7 @@ export * from "./app-bar-menu-service";
|
|
|
2
2
|
export * from "./app-bar-mobile-buttons-service";
|
|
3
3
|
export * from "./dashboard-service";
|
|
4
4
|
export * from "./global-search-service";
|
|
5
|
+
export * from "./language-service";
|
|
5
6
|
export * from "./menu-service";
|
|
6
7
|
export * from "./settings-menu-service";
|
|
7
8
|
export * from "./toolbar-service";
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import * as veeValidate from "vee-validate";
|
|
2
|
+
import { i18n } from "../plugins/i18n";
|
|
3
|
+
import { setLocale as setVeeI18nLocale, localize } from "@vee-validate/i18n";
|
|
4
|
+
import { useLocalStorage } from "@vueuse/core";
|
|
5
|
+
import { ComputedRef, computed } from "vue";
|
|
6
|
+
import ISO6391 from "iso-639-1";
|
|
7
|
+
import { languageToCountryMap } from "../constants";
|
|
8
|
+
|
|
9
|
+
export interface ILanguageService {
|
|
10
|
+
setLocale: (locale: string) => void;
|
|
11
|
+
currentLocale: ComputedRef<string>;
|
|
12
|
+
getLocaleByTag: (localeTag: string) => string | undefined;
|
|
13
|
+
resolveCamelCaseLocale: (locale: string) => string;
|
|
14
|
+
getFlag: (language: string) => Promise<string>;
|
|
15
|
+
getCountryCode: (language: string) => string;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Language service implementation
|
|
20
|
+
* Handles locale management, validation, and language utilities
|
|
21
|
+
*/
|
|
22
|
+
export function createLanguageService(): ILanguageService {
|
|
23
|
+
const savedLocale = useLocalStorage("VC_LANGUAGE_SETTINGS", "");
|
|
24
|
+
|
|
25
|
+
// Initialize locale from localStorage on service creation
|
|
26
|
+
if (savedLocale.value && i18n.global.availableLocales.includes(savedLocale.value)) {
|
|
27
|
+
i18n.global.locale.value = savedLocale.value;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const currentLocale = computed(() => {
|
|
31
|
+
if (i18n.global.availableLocales.includes(savedLocale.value)) {
|
|
32
|
+
return savedLocale.value;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return i18n.global.locale.value;
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
function setLocale(locale: string) {
|
|
39
|
+
// Update the global i18n locale
|
|
40
|
+
i18n.global.locale.value = locale;
|
|
41
|
+
|
|
42
|
+
veeValidate.configure({
|
|
43
|
+
generateMessage: localize(locale, {
|
|
44
|
+
messages: (i18n.global.getLocaleMessage(locale) as { messages: Record<string, string> }).messages,
|
|
45
|
+
}),
|
|
46
|
+
});
|
|
47
|
+
setVeeI18nLocale(locale);
|
|
48
|
+
savedLocale.value = locale;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function getLocaleByTag(localeTag: string) {
|
|
52
|
+
if (!localeTag) return;
|
|
53
|
+
|
|
54
|
+
const twoLetterLanguageName = localeTag.split("-")[0];
|
|
55
|
+
|
|
56
|
+
return ISO6391.getNativeName(twoLetterLanguageName);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
function resolveCamelCaseLocale(locale: string) {
|
|
60
|
+
const formattedLocale = locale.replace(/([a-z]+)([A-Z]+)/g, "$1-$2").toLowerCase();
|
|
61
|
+
|
|
62
|
+
if (i18n.global.getLocaleMessage(formattedLocale)) {
|
|
63
|
+
return formattedLocale;
|
|
64
|
+
}
|
|
65
|
+
return "en";
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
function getCountryCode(language: string): string {
|
|
69
|
+
return (
|
|
70
|
+
languageToCountryMap[language.toLocaleLowerCase()] || languageToCountryMap[language.slice(0, 2)] || "xx" // placeholder for unknown country
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
async function getFlag(language: string): Promise<string> {
|
|
75
|
+
if (!language) return "";
|
|
76
|
+
const countryCode = getCountryCode(language);
|
|
77
|
+
return new URL(`../../assets/icons/flags/${countryCode}.svg`, import.meta.url).href;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
return {
|
|
81
|
+
setLocale,
|
|
82
|
+
currentLocale,
|
|
83
|
+
getLocaleByTag,
|
|
84
|
+
resolveCamelCaseLocale,
|
|
85
|
+
getFlag,
|
|
86
|
+
getCountryCode,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
@@ -1,17 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export interface IUseLanguages {
|
|
3
|
-
setLocale: (locale: string) => void;
|
|
4
|
-
currentLocale: ComputedRef<string>;
|
|
5
|
-
getLocaleByTag: (localeTag: string) => string | undefined;
|
|
6
|
-
resolveCamelCaseLocale: (locale: string) => string;
|
|
7
|
-
getFlag: (language: string) => Promise<string>;
|
|
1
|
+
import { ILanguageService } from "../../services/language-service";
|
|
2
|
+
export interface IUseLanguages extends ILanguageService {
|
|
8
3
|
}
|
|
9
|
-
export declare
|
|
10
|
-
|
|
11
|
-
currentLocale: ComputedRef<string>;
|
|
12
|
-
getLocaleByTag: (localeTag: string) => string | undefined;
|
|
13
|
-
resolveCamelCaseLocale: (locale: string) => string;
|
|
14
|
-
getFlag: (language: string) => Promise<string>;
|
|
15
|
-
getCountryCode: (language: string) => string;
|
|
16
|
-
};
|
|
4
|
+
export declare function provideLanguages(): ILanguageService;
|
|
5
|
+
export declare function useLanguages(): IUseLanguages;
|
|
17
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../core/composables/useLanguages/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../core/composables/useLanguages/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAyB,MAAM,iCAAiC,CAAC;AAE1F,MAAM,WAAW,aAAc,SAAQ,gBAAgB;CAAG;AAE1D,wBAAgB,gBAAgB,IAAI,gBAAgB,CAInD;AAED,wBAAgB,YAAY,IAAI,aAAa,CAS5C"}
|
|
@@ -2,6 +2,7 @@ export * from "./app-bar-menu-service";
|
|
|
2
2
|
export * from "./app-bar-mobile-buttons-service";
|
|
3
3
|
export * from "./dashboard-service";
|
|
4
4
|
export * from "./global-search-service";
|
|
5
|
+
export * from "./language-service";
|
|
5
6
|
export * from "./menu-service";
|
|
6
7
|
export * from "./settings-menu-service";
|
|
7
8
|
export * from "./toolbar-service";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../core/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../core/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ComputedRef } from "vue";
|
|
2
|
+
export interface ILanguageService {
|
|
3
|
+
setLocale: (locale: string) => void;
|
|
4
|
+
currentLocale: ComputedRef<string>;
|
|
5
|
+
getLocaleByTag: (localeTag: string) => string | undefined;
|
|
6
|
+
resolveCamelCaseLocale: (locale: string) => string;
|
|
7
|
+
getFlag: (language: string) => Promise<string>;
|
|
8
|
+
getCountryCode: (language: string) => string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Language service implementation
|
|
12
|
+
* Handles locale management, validation, and language utilities
|
|
13
|
+
*/
|
|
14
|
+
export declare function createLanguageService(): ILanguageService;
|
|
15
|
+
//# sourceMappingURL=language-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language-service.d.ts","sourceRoot":"","sources":["../../../core/services/language-service.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAY,MAAM,KAAK,CAAC;AAI5C,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC1D,sBAAsB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IACnD,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;CAC9C;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,gBAAgB,CAkExD"}
|