refactor: refactor locales, separate locales within apps,fixed #12
parent
3571511394
commit
208d4188fc
|
@ -169,7 +169,10 @@
|
|||
"packages/@vben-core/shared/design-tokens/src/**/*.css"
|
||||
],
|
||||
|
||||
"i18n-ally.localesPaths": ["packages/locales/src/langs"],
|
||||
"i18n-ally.localesPaths": [
|
||||
"packages/@core/locales/src/langs",
|
||||
"apps/*/src/locales/langs"
|
||||
],
|
||||
"i18n-ally.enabledParsers": ["json", "ts", "js", "yaml"],
|
||||
"i18n-ally.sourceLanguage": "en",
|
||||
"i18n-ally.displayLanguage": "zh-CN",
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
- @vben/constants@5.0.1
|
||||
- @vben/hooks@5.0.1
|
||||
- @vben/icons@5.0.1
|
||||
- @vben/locales@5.0.1
|
||||
- #/locales@5.0.1
|
||||
- @vben/styles@5.0.1
|
||||
- @vben/types@5.0.1
|
||||
- @vben/utils@5.0.1
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"@vben-core/helpers": "workspace:*",
|
||||
"@vben-core/locales": "workspace:*",
|
||||
"@vben-core/preferences": "workspace:*",
|
||||
"@vben-core/request": "workspace:*",
|
||||
"@vben-core/stores": "workspace:*",
|
||||
|
@ -34,7 +35,6 @@
|
|||
"@vben/constants": "workspace:*",
|
||||
"@vben/icons": "workspace:*",
|
||||
"@vben/layouts": "workspace:*",
|
||||
"@vben/locales": "workspace:*",
|
||||
"@vben/styles": "workspace:*",
|
||||
"@vben/types": "workspace:*",
|
||||
"@vben/universal-ui": "workspace:*",
|
||||
|
|
|
@ -6,7 +6,7 @@ import { preferences, usePreferences } from '@vben-core/preferences';
|
|||
|
||||
import { App, ConfigProvider, theme } from 'ant-design-vue';
|
||||
|
||||
import { antdLocale } from '#/forward';
|
||||
import { antdLocale } from '#/locales';
|
||||
|
||||
defineOptions({ name: 'App' });
|
||||
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
import { createApp } from 'vue';
|
||||
|
||||
import { setupI18n } from '@vben/locales';
|
||||
import '@vben/styles';
|
||||
import { preferences } from '@vben-core/preferences';
|
||||
|
||||
import { loadThirdPartyMessage } from '#/forward';
|
||||
import { loadMessages, setupI18n } from '#/locales';
|
||||
import { setupStore } from '#/store';
|
||||
|
||||
import App from './app.vue';
|
||||
|
@ -16,7 +15,7 @@ async function bootstrap(namespace: string) {
|
|||
// 国际化 i18n 配置
|
||||
await setupI18n(app, {
|
||||
defaultLocale: preferences.app.locale,
|
||||
loadThirdPartyMessage,
|
||||
loadMessages,
|
||||
});
|
||||
|
||||
// 配置 pinia-store
|
||||
|
|
|
@ -2,13 +2,13 @@ import type { GeneratorMenuAndRoutesOptions } from '@vben/access';
|
|||
import type { ComponentRecordType } from '@vben/types';
|
||||
|
||||
import { generateMenusAndRoutes } from '@vben/access';
|
||||
import { $t } from '@vben/locales';
|
||||
import { preferences } from '@vben-core/preferences';
|
||||
|
||||
import { message } from 'ant-design-vue';
|
||||
|
||||
import { getAllMenus } from '#/apis';
|
||||
import { BasicLayout, IFrameView } from '#/layouts';
|
||||
import { $t } from '#/locales';
|
||||
|
||||
const forbiddenPage = () => import('#/views/_essential/fallback/forbidden.vue');
|
||||
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
export * from './locale';
|
||||
export * from './access';
|
||||
export * from './request';
|
||||
|
|
|
@ -7,11 +7,11 @@ import { useRouter } from 'vue-router';
|
|||
import { LOGIN_PATH } from '@vben/constants';
|
||||
import { IcRoundCreditScore, MdiDriveDocument, MdiGithub } from '@vben/icons';
|
||||
import { BasicLayout } from '@vben/layouts';
|
||||
import { $t } from '@vben/locales';
|
||||
import { openWindow } from '@vben/utils';
|
||||
import { Notification, UserDropdown } from '@vben/widgets';
|
||||
import { preferences } from '@vben-core/preferences';
|
||||
|
||||
import { $t } from '#/locales';
|
||||
import { resetRoutes } from '#/router';
|
||||
import { useAppStore } from '#/store';
|
||||
|
||||
|
|
|
@ -3,11 +3,41 @@ import type { Locale } from 'ant-design-vue/es/locale';
|
|||
|
||||
import { ref } from 'vue';
|
||||
|
||||
import { $t, loadLocalesMap, setupI18n } from '@vben-core/locales';
|
||||
|
||||
import defaultLocale from 'ant-design-vue/es/locale/zh_CN';
|
||||
import dayjs from 'dayjs';
|
||||
|
||||
const antdLocale = ref<Locale>(defaultLocale);
|
||||
|
||||
const modules = import.meta.glob('./langs/*.y(a)?ml');
|
||||
|
||||
const localesMap = loadLocalesMap(modules);
|
||||
|
||||
/**
|
||||
* 加载应用特有的语言包
|
||||
* @param lang
|
||||
*/
|
||||
async function loadMessages(lang: SupportedLanguagesType) {
|
||||
const [appLocaleMessages] = await Promise.all([
|
||||
localesMap[lang](),
|
||||
loadThirdPartyMessage(lang),
|
||||
]);
|
||||
return appLocaleMessages.default;
|
||||
}
|
||||
|
||||
/**
|
||||
* 加载第三方组件库的语言包
|
||||
* @param lang
|
||||
*/
|
||||
async function loadThirdPartyMessage(lang: SupportedLanguagesType) {
|
||||
await Promise.all([loadAntdLocale(lang), loadDayjsLocale(lang)]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 加载dayjs的语言包
|
||||
* @param lang
|
||||
*/
|
||||
async function loadDayjsLocale(lang: SupportedLanguagesType) {
|
||||
let locale;
|
||||
switch (lang) {
|
||||
|
@ -19,13 +49,18 @@ async function loadDayjsLocale(lang: SupportedLanguagesType) {
|
|||
locale = await import('dayjs/locale/en');
|
||||
break;
|
||||
}
|
||||
// 默认使用英语
|
||||
default: {
|
||||
locale = await import('dayjs/locale/en');
|
||||
} // 默认使用英语
|
||||
}
|
||||
}
|
||||
dayjs.locale(locale);
|
||||
}
|
||||
|
||||
/**
|
||||
* 加载antd的语言包
|
||||
* @param lang
|
||||
*/
|
||||
async function loadAntdLocale(lang: SupportedLanguagesType) {
|
||||
switch (lang) {
|
||||
case 'zh-CN': {
|
||||
|
@ -41,8 +76,4 @@ async function loadAntdLocale(lang: SupportedLanguagesType) {
|
|||
}
|
||||
}
|
||||
|
||||
async function loadThirdPartyMessage(land: SupportedLanguagesType) {
|
||||
await Promise.all([loadAntdLocale(land), loadDayjsLocale(land)]);
|
||||
}
|
||||
|
||||
export { antdLocale, loadThirdPartyMessage };
|
||||
export { $t, antdLocale, loadMessages, setupI18n };
|
|
@ -0,0 +1,28 @@
|
|||
page:
|
||||
demos:
|
||||
title: Demos
|
||||
access:
|
||||
title: Access Control
|
||||
frontend-control: Front-end Control
|
||||
backend-control: Backend Control
|
||||
page: Page visit
|
||||
button: Button control
|
||||
loading-menu: In the loading menu
|
||||
access-test-1: Super visit
|
||||
access-test-2: Admin visit
|
||||
access-test-3: User visit
|
||||
nested:
|
||||
title: Nested Menu
|
||||
menu1: Menu 1
|
||||
menu2: Menu 2
|
||||
menu21: Menu 2-1
|
||||
menu3: Menu 3
|
||||
menu31: Menu 3-1
|
||||
menu32: Menu 3-2
|
||||
menu321: Menu 3-2-1
|
||||
outside:
|
||||
title: External Page
|
||||
embedded: embedded Page
|
||||
external-link: External Link
|
||||
fallback:
|
||||
title: Fallback Page
|
|
@ -0,0 +1,27 @@
|
|||
page:
|
||||
demos:
|
||||
title: 演示
|
||||
access:
|
||||
title: 访问控制
|
||||
frontend-control: 前端控制
|
||||
backend-control: 后端控制
|
||||
page: 页面访问
|
||||
button: 按钮控制
|
||||
access-test-1: Super 可见
|
||||
access-test-2: Admin 可见
|
||||
access-test-3: User 可见
|
||||
nested:
|
||||
title: 嵌套菜单
|
||||
menu1: 菜单 1
|
||||
menu2: 菜单 2
|
||||
menu21: 菜单 2-1
|
||||
menu3: 菜单 3
|
||||
menu31: 菜单 3-1
|
||||
menu32: 菜单 3-2
|
||||
menu321: 菜单 3-2-1
|
||||
outside:
|
||||
title: 外部页面
|
||||
embedded: 内嵌
|
||||
external-link: 外链
|
||||
fallback:
|
||||
title: 缺省页
|
|
@ -1,13 +1,13 @@
|
|||
import type { Router } from 'vue-router';
|
||||
|
||||
import { LOGIN_PATH } from '@vben/constants';
|
||||
import { $t } from '@vben/locales';
|
||||
import { startProgress, stopProgress } from '@vben/utils';
|
||||
import { preferences } from '@vben-core/preferences';
|
||||
|
||||
import { useTitle } from '@vueuse/core';
|
||||
|
||||
import { generateAccess } from '#/forward/access';
|
||||
import { generateAccess } from '#/forward';
|
||||
import { $t } from '#/locales';
|
||||
import { dynamicRoutes, essentialsRouteNames } from '#/router/routes';
|
||||
import { useAccessStore } from '#/store';
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
import type { RouteRecordRaw } from 'vue-router';
|
||||
|
||||
import { DEFAULT_HOME_PATH } from '@vben/constants';
|
||||
import { $t } from '@vben/locales';
|
||||
|
||||
import { AuthPageLayout } from '#/layouts';
|
||||
import { $t } from '#/locales';
|
||||
import Login from '#/views/_essential/authentication/login.vue';
|
||||
|
||||
/** 全局404页面 */
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
import type { RouteRecordRaw } from 'vue-router';
|
||||
|
||||
import { $t } from '@vben/locales/helper';
|
||||
|
||||
import { BasicLayout } from '#/layouts';
|
||||
import { $t } from '#/locales';
|
||||
|
||||
const routes: RouteRecordRaw[] = [
|
||||
{
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
import type { RouteRecordRaw } from 'vue-router';
|
||||
|
||||
import { $t } from '@vben/locales/helper';
|
||||
|
||||
import { BasicLayout, IFrameView } from '#/layouts';
|
||||
import { $t } from '#/locales';
|
||||
|
||||
const routes: RouteRecordRaw[] = [
|
||||
{
|
||||
|
|
|
@ -2,9 +2,8 @@ import type { RouteRecordRaw } from 'vue-router';
|
|||
|
||||
import { VBEN_GITHUB_URL, VBEN_LOGO } from '@vben/constants';
|
||||
|
||||
import { $t } from '@vben/locales/helper';
|
||||
|
||||
import { BasicLayout, IFrameView } from '#/layouts';
|
||||
import { $t } from '#/locales';
|
||||
|
||||
const routes: RouteRecordRaw[] = [
|
||||
{
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
<script lang="ts" setup>
|
||||
import type { LoginAndRegisterParams } from '@vben/universal-ui';
|
||||
|
||||
import { $t } from '@vben/locales';
|
||||
import { AuthenticationLogin } from '@vben/universal-ui';
|
||||
|
||||
import { App } from 'ant-design-vue';
|
||||
|
||||
import { $t } from '#/locales';
|
||||
import { useAccessStore } from '#/store';
|
||||
|
||||
defineOptions({ name: 'Login' });
|
||||
|
|
|
@ -55,7 +55,7 @@
|
|||
"postcss": "^8.4.39",
|
||||
"postcss-antd-fixes": "^0.2.0",
|
||||
"postcss-import": "^16.1.0",
|
||||
"postcss-preset-env": "^9.5.15",
|
||||
"postcss-preset-env": "^9.5.16",
|
||||
"tailwindcss": "^3.4.4",
|
||||
"tailwindcss-animate": "^1.0.7"
|
||||
},
|
||||
|
|
|
@ -4,7 +4,7 @@ import type { DefineApplicationOptions } from '../typing';
|
|||
|
||||
import { defineConfig, loadEnv, mergeConfig } from 'vite';
|
||||
|
||||
import { getApplicationConditionPlugins } from '../plugins';
|
||||
import { loadApplicationPlugins } from '../plugins';
|
||||
import { getCommonConfig } from './common';
|
||||
|
||||
function defineApplicationConfig(options: DefineApplicationOptions = {}) {
|
||||
|
@ -15,7 +15,7 @@ function defineApplicationConfig(options: DefineApplicationOptions = {}) {
|
|||
const isBuild = command === 'build';
|
||||
const env = loadEnv(mode, root);
|
||||
|
||||
const plugins = await getApplicationConditionPlugins({
|
||||
const plugins = await loadApplicationPlugins({
|
||||
compress: false,
|
||||
compressTypes: ['brotli', 'gzip'],
|
||||
devtools: true,
|
||||
|
|
|
@ -6,7 +6,7 @@ import { readPackageJSON } from '@vben/node-utils';
|
|||
|
||||
import { defineConfig, mergeConfig } from 'vite';
|
||||
|
||||
import { getLibraryConditionPlugins } from '../plugins';
|
||||
import { loadLibraryPlugins } from '../plugins';
|
||||
import { getCommonConfig } from './common';
|
||||
|
||||
function defineLibraryConfig(options: DefineLibraryOptions = {}) {
|
||||
|
@ -16,7 +16,7 @@ function defineLibraryConfig(options: DefineLibraryOptions = {}) {
|
|||
const { library = {}, vite = {} } = options;
|
||||
const isBuild = command === 'build';
|
||||
|
||||
const plugins = await getLibraryConditionPlugins({
|
||||
const plugins = await loadLibraryPlugins({
|
||||
dts: false,
|
||||
injectLibCss: true,
|
||||
injectMetadata: true,
|
||||
|
|
|
@ -9,7 +9,7 @@ import type {
|
|||
|
||||
import { join } from 'node:path';
|
||||
|
||||
import { getPackage } from '@vben/node-utils';
|
||||
import { getPackage, getPackages } from '@vben/node-utils';
|
||||
|
||||
import viteVueI18nPlugin from '@intlify/unplugin-vue-i18n/vite';
|
||||
import viteVue from '@vitejs/plugin-vue';
|
||||
|
@ -33,9 +33,7 @@ import { viteLicensePlugin } from './license';
|
|||
* 获取条件成立的 vite 插件
|
||||
* @param conditionPlugins
|
||||
*/
|
||||
async function getConditionEstablishedPlugins(
|
||||
conditionPlugins: ConditionPlugin[],
|
||||
) {
|
||||
async function loadConditionPlugins(conditionPlugins: ConditionPlugin[]) {
|
||||
const plugins: PluginOption[] = [];
|
||||
for (const conditionPlugin of conditionPlugins) {
|
||||
if (conditionPlugin.condition) {
|
||||
|
@ -49,7 +47,7 @@ async function getConditionEstablishedPlugins(
|
|||
/**
|
||||
* 根据条件获取通用的vite插件
|
||||
*/
|
||||
async function getCommonConditionPlugins(
|
||||
async function loadCommonPlugins(
|
||||
options: CommonPluginOptions,
|
||||
): Promise<ConditionPlugin[]> {
|
||||
const { devtools, injectMetadata, isBuild, visualizer } = options;
|
||||
|
@ -89,7 +87,7 @@ async function getCommonConditionPlugins(
|
|||
/**
|
||||
* 根据条件获取应用类型的vite插件
|
||||
*/
|
||||
async function getApplicationConditionPlugins(
|
||||
async function loadApplicationPlugins(
|
||||
options: ApplicationPluginOptions,
|
||||
): Promise<PluginOption[]> {
|
||||
// 单独取,否则commonOptions拿不到
|
||||
|
@ -112,15 +110,33 @@ async function getApplicationConditionPlugins(
|
|||
...commonOptions
|
||||
} = options;
|
||||
|
||||
const commonPlugins = await getCommonConditionPlugins(commonOptions);
|
||||
const commonPlugins = await loadCommonPlugins(commonOptions);
|
||||
|
||||
return await getConditionEstablishedPlugins([
|
||||
return await loadConditionPlugins([
|
||||
...commonPlugins,
|
||||
{
|
||||
condition: i18n,
|
||||
plugins: async () => {
|
||||
const pkg = await getPackage('@vben/locales');
|
||||
const include = `${join(pkg?.dir ?? '', isBuild ? 'dist' : 'src', 'langs')}/*.yaml`;
|
||||
const { packages } = await getPackages();
|
||||
const pkg = await getPackage('@vben-core/locales');
|
||||
|
||||
const include: string[] = [
|
||||
`${join(pkg?.dir ?? '', isBuild ? 'dist' : 'src', 'langs')}/*.yaml`,
|
||||
];
|
||||
|
||||
// 加载所有应用的国际化文件
|
||||
for (const { dir, relativeDir } of packages) {
|
||||
if (
|
||||
// 排除非应用目录
|
||||
!relativeDir.startsWith('apps') ||
|
||||
// 排除mock目录
|
||||
relativeDir.includes('backend-mock')
|
||||
) {
|
||||
continue;
|
||||
}
|
||||
include.push(`${join(dir, 'src', 'locales', 'langs')}/*.yaml`);
|
||||
}
|
||||
|
||||
return [
|
||||
viteVueI18nPlugin({
|
||||
compositionOnly: true,
|
||||
|
@ -204,14 +220,14 @@ async function getApplicationConditionPlugins(
|
|||
/**
|
||||
* 根据条件获取库类型的vite插件
|
||||
*/
|
||||
async function getLibraryConditionPlugins(
|
||||
async function loadLibraryPlugins(
|
||||
options: LibraryPluginOptions,
|
||||
): Promise<PluginOption[]> {
|
||||
// 单独取,否则commonOptions拿不到
|
||||
const isBuild = options.isBuild;
|
||||
const { dts, injectLibCss, ...commonOptions } = options;
|
||||
const commonPlugins = await getCommonConditionPlugins(commonOptions);
|
||||
return await getConditionEstablishedPlugins([
|
||||
const commonPlugins = await loadCommonPlugins(commonOptions);
|
||||
return await loadConditionPlugins([
|
||||
...commonPlugins,
|
||||
{
|
||||
condition: isBuild && !!dts,
|
||||
|
@ -225,8 +241,8 @@ async function getLibraryConditionPlugins(
|
|||
}
|
||||
|
||||
export {
|
||||
getApplicationConditionPlugins,
|
||||
getLibraryConditionPlugins,
|
||||
loadApplicationPlugins,
|
||||
loadLibraryPlugins,
|
||||
viteCompressPlugin,
|
||||
viteDtsPlugin,
|
||||
viteHtmlPlugin,
|
||||
|
|
|
@ -5,7 +5,6 @@ export default defineBuildConfig({
|
|||
declaration: true,
|
||||
entries: [
|
||||
'src/index',
|
||||
'src/helper',
|
||||
{
|
||||
builder: 'mkdist',
|
||||
input: './src/langs',
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"name": "@vben/locales",
|
||||
"name": "@vben-core/locales",
|
||||
"version": "5.0.0",
|
||||
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
||||
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/vbenjs/vue-vben-admin.git",
|
||||
"directory": "packages/locales"
|
||||
"directory": "packages/@vben-core/forward/locales"
|
||||
},
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
|
@ -30,11 +30,6 @@
|
|||
},
|
||||
"./langs/*": {
|
||||
"default": "./dist/langs/*"
|
||||
},
|
||||
"./helper": {
|
||||
"types": "./src/helper.ts",
|
||||
"development": "./src/helper.ts",
|
||||
"default": "./dist/helper.mjs"
|
||||
}
|
||||
},
|
||||
"publishConfig": {
|
||||
|
@ -45,6 +40,9 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"peerDependencies": {
|
||||
"vite": "latest"
|
||||
},
|
||||
"dependencies": {
|
||||
"@intlify/core-base": "^9.13.1",
|
||||
"@vben-core/typings": "workspace:*",
|
|
@ -8,6 +8,7 @@ import { createI18n } from 'vue-i18n';
|
|||
|
||||
const loadedLanguages = new Set<string>();
|
||||
|
||||
// TODO:import.meta.env 和 import.meta.glob 是源码依赖,会导致该包依赖外部项目必须是vite才可以
|
||||
const i18n = createI18n({
|
||||
globalInjection: true,
|
||||
legacy: false,
|
||||
|
@ -20,13 +21,22 @@ const i18n = createI18n({
|
|||
|
||||
const modules = import.meta.glob('./langs/*.y(a)?ml');
|
||||
|
||||
const localesMap: Record<Locale, ImportLocaleFn> = {};
|
||||
const localesMap = loadLocalesMap(modules);
|
||||
|
||||
for (const [path, loadLocale] of Object.entries(modules)) {
|
||||
const key = path.match(/([\w-]*)\.y(a)?ml/)?.[1];
|
||||
if (key) {
|
||||
localesMap[key] = loadLocale as ImportLocaleFn;
|
||||
/**
|
||||
* Load locale modules
|
||||
* @param modules
|
||||
*/
|
||||
function loadLocalesMap(modules: Record<string, () => Promise<unknown>>) {
|
||||
const localesMap: Record<Locale, ImportLocaleFn> = {};
|
||||
|
||||
for (const [path, loadLocale] of Object.entries(modules)) {
|
||||
const key = path.match(/([\w-]*)\.y(a)?ml/)?.[1];
|
||||
if (key) {
|
||||
localesMap[key] = loadLocale as ImportLocaleFn;
|
||||
}
|
||||
}
|
||||
return localesMap;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -52,11 +62,11 @@ async function loadI18nMessages(lang: SupportedLanguagesType) {
|
|||
return setI18nLanguage(lang);
|
||||
}
|
||||
|
||||
const messages = await localesMap[lang]();
|
||||
const message = await localesMap[lang]();
|
||||
|
||||
i18n.global.setLocaleMessage(lang, messages.default);
|
||||
i18n.global.setLocaleMessage(lang, message.default);
|
||||
loadedLanguages.add(lang);
|
||||
return setI18nLanguage(lang);
|
||||
}
|
||||
|
||||
export { i18n, loadI18nMessages, setI18nLanguage };
|
||||
export { i18n, loadI18nMessages, loadLocalesMap, setI18nLanguage };
|
|
@ -0,0 +1,33 @@
|
|||
import type {
|
||||
ImportLocaleFn,
|
||||
LoadMessageFn,
|
||||
LocaleSetupOptions,
|
||||
SupportedLanguagesType,
|
||||
} from './typing';
|
||||
|
||||
import type { App } from 'vue';
|
||||
|
||||
import { i18n, loadI18nMessages, loadLocalesMap } from './i18n';
|
||||
|
||||
const $t = i18n.global.t;
|
||||
|
||||
let loadMessages: LoadMessageFn;
|
||||
|
||||
async function loadLocaleMessages(lang: SupportedLanguagesType) {
|
||||
const mergeMessage = await loadMessages(lang);
|
||||
await loadI18nMessages(lang);
|
||||
i18n.global.mergeLocaleMessage(lang, mergeMessage);
|
||||
}
|
||||
|
||||
async function setupI18n(app: App, options: LocaleSetupOptions = {}) {
|
||||
const { defaultLocale = 'zh-CN' } = options;
|
||||
// app可以自行扩展一些第三方库和组件库的国际化
|
||||
loadMessages = options.loadMessages || (async () => ({}));
|
||||
app.use(i18n);
|
||||
await loadLocaleMessages(defaultLocale);
|
||||
}
|
||||
|
||||
export { $t, loadLocaleMessages, loadLocalesMap, setupI18n };
|
||||
export { useI18n } from 'vue-i18n';
|
||||
export type { Locale } from 'vue-i18n';
|
||||
export type { ImportLocaleFn };
|
|
@ -1,32 +1,4 @@
|
|||
page:
|
||||
demos:
|
||||
title: Demos
|
||||
access:
|
||||
title: Access Control
|
||||
frontend-control: Front-end Control
|
||||
# menuVisibleWithForbidden: Menu is visible
|
||||
backend-control: Backend Control
|
||||
page: Page visit
|
||||
button: Button control
|
||||
loading-menu: In the loading menu
|
||||
access-test-1: Super visit
|
||||
access-test-2: Admin visit
|
||||
access-test-3: User visit
|
||||
nested:
|
||||
title: Nested Menu
|
||||
menu1: Menu 1
|
||||
menu2: Menu 2
|
||||
menu21: Menu 2-1
|
||||
menu3: Menu 3
|
||||
menu31: Menu 3-1
|
||||
menu32: Menu 3-2
|
||||
menu321: Menu 3-2-1
|
||||
outside:
|
||||
title: External Page
|
||||
embedded: embedded Page
|
||||
external-link: External Link
|
||||
fallback:
|
||||
title: Fallback Page
|
||||
essentials:
|
||||
login: Login
|
||||
register: Register
|
|
@ -1,32 +1,4 @@
|
|||
page:
|
||||
demos:
|
||||
title: 演示
|
||||
access:
|
||||
title: 访问控制
|
||||
frontend-control: 前端控制
|
||||
# menuVisibleWithForbidden: 菜单可见
|
||||
backend-control: 后端控制
|
||||
page: 页面访问
|
||||
button: 按钮控制
|
||||
access-test-1: Super 可见
|
||||
access-test-2: Admin 可见
|
||||
access-test-3: User 可见
|
||||
|
||||
nested:
|
||||
title: 嵌套菜单
|
||||
menu1: 菜单 1
|
||||
menu2: 菜单 2
|
||||
menu21: 菜单 2-1
|
||||
menu3: 菜单 3
|
||||
menu31: 菜单 3-1
|
||||
menu32: 菜单 3-2
|
||||
menu321: 菜单 3-2-1
|
||||
outside:
|
||||
title: 外部页面
|
||||
embedded: 内嵌
|
||||
external-link: 外链
|
||||
fallback:
|
||||
title: 缺省页
|
||||
essentials:
|
||||
login: 登陆
|
||||
register: 注册
|
|
@ -2,6 +2,10 @@ import type { SupportedLanguagesType } from '@vben-core/typings';
|
|||
|
||||
type ImportLocaleFn = () => Promise<{ default: Record<string, string> }>;
|
||||
|
||||
type LoadMessageFn = (
|
||||
lang: SupportedLanguagesType,
|
||||
) => Promise<Record<string, string>>;
|
||||
|
||||
interface LocaleSetupOptions {
|
||||
/**
|
||||
* Default language
|
||||
|
@ -9,11 +13,16 @@ interface LocaleSetupOptions {
|
|||
*/
|
||||
defaultLocale?: SupportedLanguagesType;
|
||||
/**
|
||||
* Load third-party library messages
|
||||
* Load message function
|
||||
* @param lang
|
||||
* @returns
|
||||
*/
|
||||
loadThirdPartyMessage?: (lang: SupportedLanguagesType) => Promise<void>;
|
||||
loadMessages?: LoadMessageFn;
|
||||
}
|
||||
|
||||
export type { ImportLocaleFn, LocaleSetupOptions, SupportedLanguagesType };
|
||||
export type {
|
||||
ImportLocaleFn,
|
||||
LoadMessageFn,
|
||||
LocaleSetupOptions,
|
||||
SupportedLanguagesType,
|
||||
};
|
|
@ -37,10 +37,10 @@
|
|||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"@vben-core/locales": "workspace:*",
|
||||
"@vben-core/preferences": "workspace:*",
|
||||
"@vben-core/stores": "workspace:*",
|
||||
"@vben-core/toolkit": "workspace:*",
|
||||
"@vben/locales": "workspace:*",
|
||||
"vue": "^3.4.31",
|
||||
"vue-router": "^4.4.0"
|
||||
},
|
||||
|
|
|
@ -6,7 +6,7 @@ import type { RouteRecordRaw } from 'vue-router';
|
|||
|
||||
import type { GeneratorMenuAndRoutesOptions } from '../types';
|
||||
|
||||
import { $t } from '@vben/locales';
|
||||
import { $t } from '@vben-core/locales';
|
||||
import { mapTree } from '@vben-core/toolkit';
|
||||
|
||||
/**
|
||||
|
|
|
@ -40,13 +40,13 @@
|
|||
"@vben-core/helpers": "workspace:*",
|
||||
"@vben-core/iconify": "workspace:*",
|
||||
"@vben-core/layout-ui": "workspace:*",
|
||||
"@vben-core/locales": "workspace:*",
|
||||
"@vben-core/menu-ui": "workspace:*",
|
||||
"@vben-core/preferences": "workspace:*",
|
||||
"@vben-core/shadcn-ui": "workspace:*",
|
||||
"@vben-core/stores": "workspace:*",
|
||||
"@vben-core/tabs-ui": "workspace:*",
|
||||
"@vben-core/toolkit": "workspace:*",
|
||||
"@vben/locales": "workspace:*",
|
||||
"@vben/widgets": "workspace:*",
|
||||
"vue": "^3.4.31",
|
||||
"vue-router": "^4.4.0"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<script setup lang="ts">
|
||||
import { computed } from 'vue';
|
||||
|
||||
import { $t } from '@vben/locales';
|
||||
import { $t } from '@vben-core/locales';
|
||||
import { preferences, usePreferences } from '@vben-core/preferences';
|
||||
|
||||
import AuthenticationFromView from './from-view.vue';
|
||||
|
|
|
@ -4,8 +4,8 @@ import type { VbenDropdownMenuItem } from '@vben-core/shadcn-ui';
|
|||
|
||||
import { computed } from 'vue';
|
||||
|
||||
import { $t } from '@vben/locales';
|
||||
import { MdiDockBottom, MdiDockLeft, MdiDockRight } from '@vben-core/iconify';
|
||||
import { $t } from '@vben-core/locales';
|
||||
import {
|
||||
preferences,
|
||||
updatePreferences,
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
<script lang="ts" setup>
|
||||
import { computed } from 'vue';
|
||||
|
||||
import { $t } from '@vben/locales';
|
||||
import { PreferencesWidget } from '@vben/widgets';
|
||||
import { VbenAdminLayout } from '@vben-core/layout-ui';
|
||||
import { $t } from '@vben-core/locales';
|
||||
import {
|
||||
preferences,
|
||||
updatePreferences,
|
||||
|
|
|
@ -8,7 +8,6 @@ import type {
|
|||
import { computed, ref, watch } from 'vue';
|
||||
import { useRoute, useRouter } from 'vue-router';
|
||||
|
||||
import { $t, useI18n } from '@vben/locales';
|
||||
import {
|
||||
IcRoundClose,
|
||||
IcRoundMultipleStop,
|
||||
|
@ -19,6 +18,7 @@ import {
|
|||
MdiPin,
|
||||
MdiPinOff,
|
||||
} from '@vben-core/iconify';
|
||||
import { $t, useI18n } from '@vben-core/locales';
|
||||
import {
|
||||
storeToRefs,
|
||||
useCoreAccessStore,
|
||||
|
|
|
@ -5,7 +5,7 @@ import type { IBreadcrumb } from '@vben-core/shadcn-ui';
|
|||
import { computed } from 'vue';
|
||||
import { useRoute, useRouter } from 'vue-router';
|
||||
|
||||
import { $t } from '@vben/locales';
|
||||
import { $t } from '@vben-core/locales';
|
||||
import { VbenBackgroundBreadcrumb, VbenBreadcrumb } from '@vben-core/shadcn-ui';
|
||||
|
||||
interface Props {
|
||||
|
|
|
@ -42,9 +42,9 @@
|
|||
"dependencies": {
|
||||
"@vben-core/design": "workspace:*",
|
||||
"@vben-core/iconify": "workspace:*",
|
||||
"@vben-core/locales": "workspace:*",
|
||||
"@vben-core/shadcn-ui": "workspace:*",
|
||||
"@vben/constants": "workspace:*",
|
||||
"@vben/locales": "workspace:*",
|
||||
"@vben/types": "workspace:*",
|
||||
"@vueuse/integrations": "^10.11.0",
|
||||
"qrcode": "^1.5.3",
|
||||
|
|
|
@ -5,7 +5,7 @@ import { computed, onBeforeUnmount, reactive, ref } from 'vue';
|
|||
import { useRouter } from 'vue-router';
|
||||
|
||||
import { LOGIN_PATH } from '@vben/constants';
|
||||
import { $t } from '@vben/locales';
|
||||
import { $t } from '@vben-core/locales';
|
||||
import { VbenButton, VbenInput, VbenPinInput } from '@vben-core/shadcn-ui';
|
||||
|
||||
import Title from './auth-title.vue';
|
||||
|
|
|
@ -3,7 +3,7 @@ import { computed, reactive } from 'vue';
|
|||
import { useRouter } from 'vue-router';
|
||||
|
||||
import { LOGIN_PATH } from '@vben/constants';
|
||||
import { $t } from '@vben/locales';
|
||||
import { $t } from '@vben-core/locales';
|
||||
import { VbenButton, VbenInput } from '@vben-core/shadcn-ui';
|
||||
|
||||
import Title from './auth-title.vue';
|
||||
|
|
|
@ -4,7 +4,7 @@ import type { LoginEmits } from './typings';
|
|||
import { computed, reactive } from 'vue';
|
||||
import { useRouter } from 'vue-router';
|
||||
|
||||
import { $t } from '@vben/locales';
|
||||
import { $t } from '@vben-core/locales';
|
||||
import {
|
||||
VbenButton,
|
||||
VbenCheckbox,
|
||||
|
|
|
@ -3,7 +3,7 @@ import { ref } from 'vue';
|
|||
import { useRouter } from 'vue-router';
|
||||
|
||||
import { LOGIN_PATH } from '@vben/constants';
|
||||
import { $t } from '@vben/locales';
|
||||
import { $t } from '@vben-core/locales';
|
||||
import { VbenButton } from '@vben-core/shadcn-ui';
|
||||
|
||||
import { useQRCode } from '@vueuse/integrations/useQRCode';
|
||||
|
|
|
@ -5,7 +5,7 @@ import { computed, reactive } from 'vue';
|
|||
import { useRouter } from 'vue-router';
|
||||
|
||||
import { LOGIN_PATH } from '@vben/constants';
|
||||
import { $t } from '@vben/locales';
|
||||
import { $t } from '@vben-core/locales';
|
||||
import {
|
||||
VbenButton,
|
||||
VbenCheckbox,
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<script setup lang="ts">
|
||||
import { $t } from '@vben/locales';
|
||||
import { MdiGithub, MdiGoogle, MdiQqchat, MdiWechat } from '@vben-core/iconify';
|
||||
import { $t } from '@vben-core/locales';
|
||||
import { VbenIconButton } from '@vben-core/shadcn-ui';
|
||||
|
||||
defineOptions({
|
||||
|
|
|
@ -4,8 +4,8 @@ import type { FallbackProps } from './fallback';
|
|||
import { computed, defineAsyncComponent } from 'vue';
|
||||
import { useRouter } from 'vue-router';
|
||||
|
||||
import { $t } from '@vben/locales';
|
||||
import { IcRoundArrowBackIosNew, IcRoundRefresh } from '@vben-core/iconify';
|
||||
import { $t } from '@vben-core/locales';
|
||||
import { VbenButton } from '@vben-core/shadcn-ui';
|
||||
|
||||
interface Props extends FallbackProps {}
|
||||
|
|
|
@ -43,10 +43,10 @@
|
|||
"@vben-core/colorful": "workspace:*",
|
||||
"@vben-core/design": "workspace:*",
|
||||
"@vben-core/iconify": "workspace:*",
|
||||
"@vben-core/locales": "workspace:*",
|
||||
"@vben-core/preferences": "workspace:*",
|
||||
"@vben-core/shadcn-ui": "workspace:*",
|
||||
"@vben-core/toolkit": "workspace:*",
|
||||
"@vben/locales": "workspace:*",
|
||||
"@vueuse/core": "^10.11.0",
|
||||
"vue": "^3.4.31",
|
||||
"vue-router": "^4.4.0"
|
||||
|
|
|
@ -51,19 +51,19 @@ onUnmounted(() => {
|
|||
});
|
||||
</script>
|
||||
<template>
|
||||
<div ref="wrapperEl" class="coze-assistant"></div>
|
||||
<div ref="wrapperEl" class="coze-vben-admin-assistant"></div>
|
||||
</template>
|
||||
|
||||
<style>
|
||||
.coze-assistant {
|
||||
.coze-vben-admin-assistant {
|
||||
position: fixed;
|
||||
right: 30px;
|
||||
bottom: 60px;
|
||||
z-index: 1000;
|
||||
|
||||
img {
|
||||
width: 42px !important;
|
||||
height: 42px !important;
|
||||
width: 50px !important;
|
||||
height: 50px !important;
|
||||
border-radius: 50%;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,7 +3,6 @@ import type { MenuRecordRaw } from '@vben/types';
|
|||
|
||||
import { onMounted, onUnmounted, ref, watch } from 'vue';
|
||||
|
||||
import { $t } from '@vben/locales';
|
||||
import {
|
||||
IcRoundArrowDownward,
|
||||
IcRoundArrowUpward,
|
||||
|
@ -11,6 +10,7 @@ import {
|
|||
IcRoundSubdirectoryArrowLeft,
|
||||
MdiKeyboardEsc,
|
||||
} from '@vben-core/iconify';
|
||||
import { $t } from '@vben-core/locales';
|
||||
import {
|
||||
Dialog,
|
||||
DialogContent,
|
||||
|
|
|
@ -4,8 +4,8 @@ import type { MenuRecordRaw } from '@vben/types';
|
|||
import { nextTick, onMounted, ref, shallowRef, watch } from 'vue';
|
||||
import { useRouter } from 'vue-router';
|
||||
|
||||
import { $t } from '@vben/locales';
|
||||
import { IcRoundClose, IcRoundSearchOff } from '@vben-core/iconify';
|
||||
import { $t } from '@vben-core/locales';
|
||||
import { VbenIcon, VbenScrollbar } from '@vben-core/shadcn-ui';
|
||||
import { mapTree, traverseTreeValues, uniqueByField } from '@vben-core/toolkit';
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<script setup lang="ts">
|
||||
import type { SupportedLanguagesType } from '@vben/types';
|
||||
|
||||
import { loadLocaleMessages } from '@vben/locales';
|
||||
import { IcBaselineLanguage } from '@vben-core/iconify';
|
||||
import { loadLocaleMessages } from '@vben-core/locales';
|
||||
import {
|
||||
SUPPORT_LANGUAGES,
|
||||
preferences,
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
<script lang="ts" setup>
|
||||
import type { NotificationItem } from './interface';
|
||||
|
||||
import { $t } from '@vben/locales';
|
||||
import {
|
||||
IcRoundMarkEmailRead,
|
||||
IcRoundNotificationsNone,
|
||||
} from '@vben-core/iconify';
|
||||
import { $t } from '@vben-core/locales';
|
||||
import {
|
||||
VbenButton,
|
||||
VbenIconButton,
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script setup lang="ts">
|
||||
import { $t } from '@vben/locales';
|
||||
import { $t } from '@vben-core/locales';
|
||||
|
||||
import SwitchItem from '../switch-item.vue';
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<script setup lang="ts">
|
||||
import type { SelectListItem } from '@vben/types';
|
||||
|
||||
import { $t } from '@vben/locales';
|
||||
import { $t } from '@vben-core/locales';
|
||||
import { SUPPORT_LANGUAGES } from '@vben-core/preferences';
|
||||
|
||||
import SelectItem from '../select-item.vue';
|
||||
|
|
|
@ -3,7 +3,7 @@ import type { SelectListItem } from '@vben/types';
|
|||
|
||||
import { computed } from 'vue';
|
||||
|
||||
import { $t } from '@vben/locales';
|
||||
import { $t } from '@vben-core/locales';
|
||||
|
||||
import SwitchItem from '../switch-item.vue';
|
||||
import ToggleItem from '../toggle-item.vue';
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<script setup lang="ts">
|
||||
import { type Component, computed } from 'vue';
|
||||
|
||||
import { $t } from '@vben/locales';
|
||||
import { $t } from '@vben-core/locales';
|
||||
|
||||
import { ContentCompact, ContentWide } from '../../icons';
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script setup lang="ts">
|
||||
import { $t } from '@vben/locales';
|
||||
import { $t } from '@vben-core/locales';
|
||||
|
||||
import InputItem from '../input-item.vue';
|
||||
import SwitchItem from '../switch-item.vue';
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script setup lang="ts">
|
||||
import { $t } from '@vben/locales';
|
||||
import { $t } from '@vben-core/locales';
|
||||
|
||||
import SwitchItem from '../switch-item.vue';
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<script setup lang="ts">
|
||||
import type { LayoutHeaderModeType, SelectListItem } from '@vben/types';
|
||||
|
||||
import { $t } from '@vben/locales';
|
||||
import { $t } from '@vben-core/locales';
|
||||
|
||||
import SelectItem from '../select-item.vue';
|
||||
import SwitchItem from '../switch-item.vue';
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script setup lang="ts">
|
||||
import { $t } from '@vben/locales';
|
||||
import { $t } from '@vben-core/locales';
|
||||
|
||||
import SwitchItem from '../switch-item.vue';
|
||||
|
||||
|
|
|
@ -3,8 +3,8 @@ import type { LayoutType } from '@vben/types';
|
|||
|
||||
import { type Component, computed } from 'vue';
|
||||
|
||||
import { $t } from '@vben/locales';
|
||||
import { MdiQuestionMarkCircleOutline } from '@vben-core/iconify';
|
||||
import { $t } from '@vben-core/locales';
|
||||
import { VbenTooltip } from '@vben-core/shadcn-ui';
|
||||
|
||||
import {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<script setup lang="ts">
|
||||
import type { SelectListItem } from '@vben/types';
|
||||
|
||||
import { $t } from '@vben/locales';
|
||||
import { $t } from '@vben-core/locales';
|
||||
|
||||
import SwitchItem from '../switch-item.vue';
|
||||
import ToggleItem from '../toggle-item.vue';
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script setup lang="ts">
|
||||
import { $t } from '@vben/locales';
|
||||
import { $t } from '@vben-core/locales';
|
||||
|
||||
import NumberFieldItem from '../number-field-item.vue';
|
||||
import SwitchItem from '../switch-item.vue';
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script setup lang="ts">
|
||||
import { $t } from '@vben/locales';
|
||||
import { $t } from '@vben-core/locales';
|
||||
|
||||
import SwitchItem from '../switch-item.vue';
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<script setup lang="ts">
|
||||
import { computed } from 'vue';
|
||||
|
||||
import { $t } from '@vben/locales';
|
||||
import { $t } from '@vben-core/locales';
|
||||
import { isWindowsOs } from '@vben-core/toolkit';
|
||||
|
||||
import SwitchItem from '../switch-item.vue';
|
||||
|
|
|
@ -3,9 +3,9 @@ import type { BuiltinThemeType } from '@vben/types';
|
|||
|
||||
import { computed, ref } from 'vue';
|
||||
|
||||
import { $t } from '@vben/locales';
|
||||
import { TinyColor, convertToHsl } from '@vben-core/colorful';
|
||||
import { MdiEditBoxOutline } from '@vben-core/iconify';
|
||||
import { $t } from '@vben-core/locales';
|
||||
import {
|
||||
BUILT_IN_THEME_PRESETS,
|
||||
type BuiltinThemePreset,
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script setup lang="ts">
|
||||
import { $t } from '@vben/locales';
|
||||
import { $t } from '@vben-core/locales';
|
||||
|
||||
import SwitchItem from '../switch-item.vue';
|
||||
|
||||
|
|
|
@ -3,12 +3,12 @@ import type { ThemeModeType } from '@vben-core/preferences';
|
|||
|
||||
import type { Component } from 'vue';
|
||||
|
||||
import { $t } from '@vben/locales';
|
||||
import {
|
||||
IcRoundMotionPhotosAuto,
|
||||
IcRoundWbSunny,
|
||||
MdiMoonAndStars,
|
||||
} from '@vben-core/iconify';
|
||||
import { $t } from '@vben-core/locales';
|
||||
|
||||
import SwitchItem from '../switch-item.vue';
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script lang="ts" setup>
|
||||
import { loadLocaleMessages } from '@vben/locales';
|
||||
import { loadLocaleMessages } from '@vben-core/locales';
|
||||
import { preferences, updatePreferences } from '@vben-core/preferences';
|
||||
|
||||
import Preferences from './preferences.vue';
|
||||
|
|
|
@ -15,8 +15,8 @@ import type { SegmentedItem } from '@vben-core/shadcn-ui';
|
|||
|
||||
import { computed, ref } from 'vue';
|
||||
|
||||
import { $t, loadLocaleMessages } from '@vben/locales';
|
||||
import { IcRoundFolderCopy, IcRoundRestartAlt } from '@vben-core/iconify';
|
||||
import { $t, loadLocaleMessages } from '@vben-core/locales';
|
||||
import {
|
||||
clearPreferencesCache,
|
||||
preferences,
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script setup lang="ts">
|
||||
import { $t } from '@vben/locales';
|
||||
import { $t } from '@vben-core/locales';
|
||||
import { VbenButton } from '@vben-core/shadcn-ui';
|
||||
|
||||
import IconSetting from './icons/setting.vue';
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
<script lang="ts" setup>
|
||||
import { $t } from '@vben/locales';
|
||||
import {
|
||||
IcRoundMotionPhotosAuto,
|
||||
IcRoundWbSunny,
|
||||
MdiMoonAndStars,
|
||||
} from '@vben-core/iconify';
|
||||
import { $t } from '@vben-core/locales';
|
||||
import {
|
||||
type ThemeModeType,
|
||||
preferences,
|
||||
|
|
|
@ -4,8 +4,8 @@ import type { AnyFunction } from '@vben/types';
|
|||
import type { Component } from 'vue';
|
||||
import { computed, ref } from 'vue';
|
||||
|
||||
import { $t } from '@vben/locales';
|
||||
import { IcRoundLogout, IcRoundSettingsSuggest } from '@vben-core/iconify';
|
||||
import { $t } from '@vben-core/locales';
|
||||
import { preferences, usePreferences } from '@vben-core/preferences';
|
||||
import {
|
||||
Badge,
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
/**
|
||||
* 没有任何实际作用,只用于 IDE 对I18的提示
|
||||
*/
|
||||
function $t(key: string) {
|
||||
return key;
|
||||
}
|
||||
|
||||
export { $t };
|
|
@ -1,26 +0,0 @@
|
|||
import type { LocaleSetupOptions, SupportedLanguagesType } from './typing';
|
||||
|
||||
import type { App } from 'vue';
|
||||
|
||||
import { i18n, loadI18nMessages } from './i18n';
|
||||
|
||||
const $t = i18n.global.t;
|
||||
|
||||
let loadThirdPartyMessage: (lang: SupportedLanguagesType) => Promise<void>;
|
||||
|
||||
async function loadLocaleMessages(lang: SupportedLanguagesType) {
|
||||
await loadI18nMessages(lang);
|
||||
await loadThirdPartyMessage(lang);
|
||||
}
|
||||
|
||||
async function setupI18n(app: App, options: LocaleSetupOptions = {}) {
|
||||
const { defaultLocale = 'zh-CN' } = options;
|
||||
// app可以自行扩展一些第三方库和组件库的国际化
|
||||
loadThirdPartyMessage = options.loadThirdPartyMessage || (async () => {});
|
||||
app.use(i18n);
|
||||
await loadLocaleMessages(defaultLocale);
|
||||
}
|
||||
|
||||
export { $t, loadLocaleMessages, setupI18n };
|
||||
export type { CompileError } from '@intlify/core-base';
|
||||
export { useI18n } from 'vue-i18n';
|
409
pnpm-lock.yaml
409
pnpm-lock.yaml
|
@ -183,6 +183,9 @@ importers:
|
|||
'@vben-core/helpers':
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/@core/forward/helpers
|
||||
'@vben-core/locales':
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/@core/locales
|
||||
'@vben-core/preferences':
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/@core/forward/preferences
|
||||
|
@ -207,9 +210,6 @@ importers:
|
|||
'@vben/layouts':
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/business/layouts
|
||||
'@vben/locales':
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/locales
|
||||
'@vben/styles':
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/styles
|
||||
|
@ -462,8 +462,8 @@ importers:
|
|||
specifier: ^16.1.0
|
||||
version: 16.1.0(postcss@8.4.39)
|
||||
postcss-preset-env:
|
||||
specifier: ^9.5.15
|
||||
version: 9.5.15(postcss@8.4.39)
|
||||
specifier: ^9.5.16
|
||||
version: 9.5.16(postcss@8.4.39)
|
||||
tailwindcss:
|
||||
specifier: ^3.4.4
|
||||
version: 3.4.4(ts-node@10.9.2(@types/node@20.14.10)(typescript@5.5.3))
|
||||
|
@ -627,6 +627,24 @@ importers:
|
|||
specifier: ^4.4.0
|
||||
version: 4.4.0(vue@3.4.31(typescript@5.5.3))
|
||||
|
||||
packages/@core/locales:
|
||||
dependencies:
|
||||
'@intlify/core-base':
|
||||
specifier: ^9.13.1
|
||||
version: 9.13.1
|
||||
'@vben-core/typings':
|
||||
specifier: workspace:*
|
||||
version: link:../shared/typings
|
||||
vite:
|
||||
specifier: latest
|
||||
version: 5.3.3(@types/node@20.14.10)(sass@1.77.6)(terser@5.31.1)
|
||||
vue:
|
||||
specifier: ^3.4.31
|
||||
version: 3.4.31(typescript@5.5.3)
|
||||
vue-i18n:
|
||||
specifier: ^9.13.1
|
||||
version: 9.13.1(vue@3.4.31(typescript@5.5.3))
|
||||
|
||||
packages/@core/shared/cache: {}
|
||||
|
||||
packages/@core/shared/colorful:
|
||||
|
@ -796,6 +814,9 @@ importers:
|
|||
|
||||
packages/business/access:
|
||||
dependencies:
|
||||
'@vben-core/locales':
|
||||
specifier: workspace:*
|
||||
version: link:../../@core/locales
|
||||
'@vben-core/preferences':
|
||||
specifier: workspace:*
|
||||
version: link:../../@core/forward/preferences
|
||||
|
@ -805,9 +826,6 @@ importers:
|
|||
'@vben-core/toolkit':
|
||||
specifier: workspace:*
|
||||
version: link:../../@core/shared/toolkit
|
||||
'@vben/locales':
|
||||
specifier: workspace:*
|
||||
version: link:../../locales
|
||||
vue:
|
||||
specifier: ^3.4.31
|
||||
version: 3.4.31(typescript@5.5.3)
|
||||
|
@ -848,6 +866,9 @@ importers:
|
|||
'@vben-core/layout-ui':
|
||||
specifier: workspace:*
|
||||
version: link:../../@core/ui-kit/layout-ui
|
||||
'@vben-core/locales':
|
||||
specifier: workspace:*
|
||||
version: link:../../@core/locales
|
||||
'@vben-core/menu-ui':
|
||||
specifier: workspace:*
|
||||
version: link:../../@core/ui-kit/menu-ui
|
||||
|
@ -866,9 +887,6 @@ importers:
|
|||
'@vben-core/toolkit':
|
||||
specifier: workspace:*
|
||||
version: link:../../@core/shared/toolkit
|
||||
'@vben/locales':
|
||||
specifier: workspace:*
|
||||
version: link:../../locales
|
||||
'@vben/widgets':
|
||||
specifier: workspace:*
|
||||
version: link:../widgets
|
||||
|
@ -894,15 +912,15 @@ importers:
|
|||
'@vben-core/iconify':
|
||||
specifier: workspace:*
|
||||
version: link:../../@core/shared/iconify
|
||||
'@vben-core/locales':
|
||||
specifier: workspace:*
|
||||
version: link:../../@core/locales
|
||||
'@vben-core/shadcn-ui':
|
||||
specifier: workspace:*
|
||||
version: link:../../@core/ui-kit/shadcn-ui
|
||||
'@vben/constants':
|
||||
specifier: workspace:*
|
||||
version: link:../../constants
|
||||
'@vben/locales':
|
||||
specifier: workspace:*
|
||||
version: link:../../locales
|
||||
'@vben/types':
|
||||
specifier: workspace:*
|
||||
version: link:../../types
|
||||
|
@ -934,6 +952,9 @@ importers:
|
|||
'@vben-core/iconify':
|
||||
specifier: workspace:*
|
||||
version: link:../../@core/shared/iconify
|
||||
'@vben-core/locales':
|
||||
specifier: workspace:*
|
||||
version: link:../../@core/locales
|
||||
'@vben-core/preferences':
|
||||
specifier: workspace:*
|
||||
version: link:../../@core/forward/preferences
|
||||
|
@ -943,9 +964,6 @@ importers:
|
|||
'@vben-core/toolkit':
|
||||
specifier: workspace:*
|
||||
version: link:../../@core/shared/toolkit
|
||||
'@vben/locales':
|
||||
specifier: workspace:*
|
||||
version: link:../../locales
|
||||
'@vueuse/core':
|
||||
specifier: ^10.11.0
|
||||
version: 10.11.0(vue@3.4.31(typescript@5.5.3))
|
||||
|
@ -971,21 +989,6 @@ importers:
|
|||
specifier: workspace:*
|
||||
version: link:../@core/shared/iconify
|
||||
|
||||
packages/locales:
|
||||
dependencies:
|
||||
'@intlify/core-base':
|
||||
specifier: ^9.13.1
|
||||
version: 9.13.1
|
||||
'@vben-core/typings':
|
||||
specifier: workspace:*
|
||||
version: link:../@core/shared/typings
|
||||
vue:
|
||||
specifier: ^3.4.31
|
||||
version: 3.4.31(typescript@5.5.3)
|
||||
vue-i18n:
|
||||
specifier: ^9.13.1
|
||||
version: 9.13.1(vue@3.4.31(typescript@5.5.3))
|
||||
|
||||
packages/styles:
|
||||
dependencies:
|
||||
'@vben-core/design':
|
||||
|
@ -2208,30 +2211,30 @@ packages:
|
|||
resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
'@csstools/cascade-layer-name-parser@1.0.12':
|
||||
resolution: {integrity: sha512-iNCCOnaoycAfcIot3v/orjkTol+j8+Z5xgpqxUpZSdqeaxCADQZtldHhlvzDipmi7OoWdcJUO6DRZcnkMSBEIg==}
|
||||
'@csstools/cascade-layer-name-parser@1.0.13':
|
||||
resolution: {integrity: sha512-MX0yLTwtZzr82sQ0zOjqimpZbzjMaK/h2pmlrLK7DCzlmiZLYFpoO94WmN1akRVo6ll/TdpHb53vihHLUMyvng==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
peerDependencies:
|
||||
'@csstools/css-parser-algorithms': ^2.7.0
|
||||
'@csstools/css-tokenizer': ^2.3.2
|
||||
'@csstools/css-parser-algorithms': ^2.7.1
|
||||
'@csstools/css-tokenizer': ^2.4.1
|
||||
|
||||
'@csstools/color-helpers@4.2.1':
|
||||
resolution: {integrity: sha512-CEypeeykO9AN7JWkr1OEOQb0HRzZlPWGwV0Ya6DuVgFdDi6g3ma/cPZ5ZPZM4AWQikDpq/0llnGGlIL+j8afzw==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
|
||||
'@csstools/css-calc@1.2.3':
|
||||
resolution: {integrity: sha512-rlOh81K3CvtY969Od5b1h29YT6MpCHejMCURKrRrXFeCpz67HGaBNvBmWT5S7S+CKn+V7KJ+qxSmK8jNd/aZWA==}
|
||||
'@csstools/css-calc@1.2.4':
|
||||
resolution: {integrity: sha512-tfOuvUQeo7Hz+FcuOd3LfXVp+342pnWUJ7D2y8NUpu1Ww6xnTbHLpz018/y6rtbHifJ3iIEf9ttxXd8KG7nL0Q==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
peerDependencies:
|
||||
'@csstools/css-parser-algorithms': ^2.7.0
|
||||
'@csstools/css-tokenizer': ^2.3.2
|
||||
'@csstools/css-parser-algorithms': ^2.7.1
|
||||
'@csstools/css-tokenizer': ^2.4.1
|
||||
|
||||
'@csstools/css-color-parser@2.0.3':
|
||||
resolution: {integrity: sha512-Qqhb5I/gEh1wI4brf6Kmy0Xn4J1IqO8OTDKWGRsBYtL4bGkHcV9i0XI2Mmo/UYFtSRoXW/RmKTcMh6sCI433Cw==}
|
||||
'@csstools/css-color-parser@2.0.4':
|
||||
resolution: {integrity: sha512-yUb0mk/k2yVNcQvRmd9uikpu6D0aamFJGgU++5d0lng6ucaJkhKyhDCQCj9rVuQYntvFQKqyU6UfTPQWU2UkXQ==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
peerDependencies:
|
||||
'@csstools/css-parser-algorithms': ^2.7.0
|
||||
'@csstools/css-tokenizer': ^2.3.2
|
||||
'@csstools/css-parser-algorithms': ^2.7.1
|
||||
'@csstools/css-tokenizer': ^2.4.1
|
||||
|
||||
'@csstools/css-parser-algorithms@2.7.0':
|
||||
resolution: {integrity: sha512-qvBMcOU/uWFCH/VO0MYe0AMs0BGMWAt6FTryMbFIKYtZtVnqTZtT8ktv5o718llkaGZWomJezJZjq3vJDHeJNQ==}
|
||||
|
@ -2239,10 +2242,20 @@ packages:
|
|||
peerDependencies:
|
||||
'@csstools/css-tokenizer': ^2.3.2
|
||||
|
||||
'@csstools/css-parser-algorithms@2.7.1':
|
||||
resolution: {integrity: sha512-2SJS42gxmACHgikc1WGesXLIT8d/q2l0UFM7TaEeIzdFCE/FPMtTiizcPGGJtlPo2xuQzY09OhrLTzRxqJqwGw==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
peerDependencies:
|
||||
'@csstools/css-tokenizer': ^2.4.1
|
||||
|
||||
'@csstools/css-tokenizer@2.3.3':
|
||||
resolution: {integrity: sha512-fTaF0vRcXVJ4cmwg8nHofydDjitKMDBzC8cCu+O/Lg13C4PdkC15GVjGpbmWauOOnhomVSTg5I5LpLJFJE2Hfw==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
|
||||
'@csstools/css-tokenizer@2.4.1':
|
||||
resolution: {integrity: sha512-eQ9DIktFJBhGjioABJRtUucoWR2mwllurfnM8LuNGAqX3ViZXaUchqk+1s7jjtkFiT9ySdACsFEA3etErkALUg==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
|
||||
'@csstools/media-query-list-parser@2.1.12':
|
||||
resolution: {integrity: sha512-t1/CdyVJzOQUiGUcIBXRzTAkWTFPxiPnoKwowKW2z9Uj78c2bBWI/X94BeVfUwVq1xtCjD7dnO8kS6WONgp8Jw==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
|
@ -2250,26 +2263,33 @@ packages:
|
|||
'@csstools/css-parser-algorithms': ^2.7.0
|
||||
'@csstools/css-tokenizer': ^2.3.2
|
||||
|
||||
'@csstools/media-query-list-parser@2.1.13':
|
||||
resolution: {integrity: sha512-XaHr+16KRU9Gf8XLi3q8kDlI18d5vzKSKCY510Vrtc9iNR0NJzbY9hhTmwhzYZj/ZwGL4VmB3TA9hJW0Um2qFA==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
peerDependencies:
|
||||
'@csstools/css-parser-algorithms': ^2.7.1
|
||||
'@csstools/css-tokenizer': ^2.4.1
|
||||
|
||||
'@csstools/postcss-cascade-layers@4.0.6':
|
||||
resolution: {integrity: sha512-Xt00qGAQyqAODFiFEJNkTpSUz5VfYqnDLECdlA/Vv17nl/OIV5QfTRHGAXrBGG5YcJyHpJ+GF9gF/RZvOQz4oA==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
|
||||
'@csstools/postcss-color-function@3.0.17':
|
||||
resolution: {integrity: sha512-hi6g5KHMvxpxf01LCVu5xnNxX5h2Vkn9aKRmspn2esWjWtshuTXVOavTjwvogA+Eycm9Rn21QTYNU+qbKw6IeQ==}
|
||||
'@csstools/postcss-color-function@3.0.18':
|
||||
resolution: {integrity: sha512-Ry8b3HCyadiBLObsGShdoJNoZkQTHz5q5HVY/hkwwBkq8q702amvcGJs06tpzFTwHL+jPc7vULUpYtK4MIJHwA==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
|
||||
'@csstools/postcss-color-mix-function@2.0.17':
|
||||
resolution: {integrity: sha512-Y65GHGCY1R+9+/5KrJjN7gAF1NZydng4AGknMggeUJIyo2ckLb4vBrlDmpIcHDdjQtV5631j1hxvalVTbpoiFw==}
|
||||
'@csstools/postcss-color-mix-function@2.0.18':
|
||||
resolution: {integrity: sha512-CtklpScpGZ3ZwUQMOCYlsWw8vMu+rjvKUJsa1zpFSvesoUK89JBC6+LzEhTlb1jMcyrY2ErySEQDOt+MMRse0A==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
|
||||
'@csstools/postcss-exponential-functions@1.0.8':
|
||||
resolution: {integrity: sha512-/4WHpu4MrCCsUWRaDreyBcdF+5xnudk1JJLg6aWREeMaSpr3vsD0eywmOXct3xUm28TCqKS//S86IlcDJJdzoQ==}
|
||||
'@csstools/postcss-exponential-functions@1.0.9':
|
||||
resolution: {integrity: sha512-x1Avr15mMeuX7Z5RJUl7DmjhUtg+Amn5DZRD0fQ2TlTFTcJS8U1oxXQ9e5mA62S2RJgUU6db20CRoJyDvae2EQ==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
|
@ -2280,20 +2300,20 @@ packages:
|
|||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
|
||||
'@csstools/postcss-gamut-mapping@1.0.10':
|
||||
resolution: {integrity: sha512-iPz4/cO8YiNjAYdtAiKGBdKZdFlAvDtUr2AgvAMxCa83e9MwTIKmsJZC3Frw7VYmkfknmdElEZr1FJU+PmB2PA==}
|
||||
'@csstools/postcss-gamut-mapping@1.0.11':
|
||||
resolution: {integrity: sha512-KrHGsUPXRYxboXmJ9wiU/RzDM7y/5uIefLWKFSc36Pok7fxiPyvkSHO51kh+RLZS1W5hbqw9qaa6+tKpTSxa5g==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
|
||||
'@csstools/postcss-gradients-interpolation-method@4.0.18':
|
||||
resolution: {integrity: sha512-rZH7RnNYY911I/n8+DRrcri89GffptdyuFDGGj/UbxDISFirdR1uI/wcur9KYR/uFHXqrnJjrfi1cisfB7bL+g==}
|
||||
'@csstools/postcss-gradients-interpolation-method@4.0.19':
|
||||
resolution: {integrity: sha512-aGKMXy2EhkyidYvfuILqoO6tk8bEIVS9obc6OAc1JwRLeQBkbPtL56eKd1DnyEfgJ+6v/4zA1Ko0AqPwAjA50w==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
|
||||
'@csstools/postcss-hwb-function@3.0.16':
|
||||
resolution: {integrity: sha512-nlC4D5xB7pomgR4kDZ1lqbVqrs6gxPqsM2OE5CkCn0EqCMxtqqtadtbK2dcFwzyujv3DL4wYNo+fgF4rJgLPZA==}
|
||||
'@csstools/postcss-hwb-function@3.0.17':
|
||||
resolution: {integrity: sha512-Oe8WBtP29K5EBCqOKOfKAUaDFWYw+16WCDuwaYJMS0o8oZdPwmxLaBDsqXlNK03zXe9McYBli8fBHyRiVEVJGQ==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
|
@ -2316,8 +2336,8 @@ packages:
|
|||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
|
||||
'@csstools/postcss-light-dark-function@1.0.6':
|
||||
resolution: {integrity: sha512-bu+cxKpcTrMDMkVCv7QURwKNPZEuXA3J0Udvz3HfmQHt4+OIvvfvDpTgejFXdOliCU4zK9/QdqebPcYneygZtg==}
|
||||
'@csstools/postcss-light-dark-function@1.0.7':
|
||||
resolution: {integrity: sha512-49LSrZR/d2Iql7Sq4C+k5SDvn0RvqXzCt//kWihVimxCUvZHGxrHeV777Hfr0lTfPlgfPdkCVdlaLM5XZTqIng==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
|
@ -2346,20 +2366,20 @@ packages:
|
|||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
|
||||
'@csstools/postcss-logical-viewport-units@2.0.10':
|
||||
resolution: {integrity: sha512-nGP0KanI/jXrUMpaIBz6mdy/vNs3d/cjbNYuoEc7lCdNkntmxZvwxC2zIKI8QzGWaYsh9jahozMVceZ0jNyjgg==}
|
||||
'@csstools/postcss-logical-viewport-units@2.0.11':
|
||||
resolution: {integrity: sha512-ElITMOGcjQtvouxjd90WmJRIw1J7KMP+M+O87HaVtlgOOlDt1uEPeTeii8qKGe2AiedEp0XOGIo9lidbiU2Ogg==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
|
||||
'@csstools/postcss-media-minmax@1.1.7':
|
||||
resolution: {integrity: sha512-AjLG+vJvhrN2geUjYNvzncW1TJ+vC4QrVPGrLPxOSJ2QXC94krQErSW4aXMj0b13zhvVWeqf2NHIOVQknqV9cg==}
|
||||
'@csstools/postcss-media-minmax@1.1.8':
|
||||
resolution: {integrity: sha512-KYQCal2i7XPNtHAUxCECdrC7tuxIWQCW+s8eMYs5r5PaAiVTeKwlrkRS096PFgojdNCmHeG0Cb7njtuNswNf+w==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
|
||||
'@csstools/postcss-media-queries-aspect-ratio-number-values@2.0.10':
|
||||
resolution: {integrity: sha512-DXae3i7OYJTejxcoUuf/AOIpy+6FWfGGKo/I3WefZI538l3k+ErU6V2xQOx/UmUXT2FDIdE1Ucl9JkZib2rEsA==}
|
||||
'@csstools/postcss-media-queries-aspect-ratio-number-values@2.0.11':
|
||||
resolution: {integrity: sha512-YD6jrib20GRGQcnOu49VJjoAnQ/4249liuz7vTpy/JfgqQ1Dlc5eD4HPUMNLOw9CWey9E6Etxwf/xc/ZF8fECA==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
|
@ -2376,8 +2396,8 @@ packages:
|
|||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
|
||||
'@csstools/postcss-oklab-function@3.0.17':
|
||||
resolution: {integrity: sha512-kIng3Xmw6NKUvD/eEoHGwbyDFXDsuzsVGtNo3ndgZYYqy+DLiD+3drxwRKiViE5LUieLB1ERczXpLVmpSw61eg==}
|
||||
'@csstools/postcss-oklab-function@3.0.18':
|
||||
resolution: {integrity: sha512-qxcctjXBgGKYl/CUSh13zaKdB57meIDvgTwF1o4EKzzuJ4RM+t79GuWWAnVKesbAwQXn6k/JQb8LfOeH8g1t2w==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
|
@ -2388,8 +2408,8 @@ packages:
|
|||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
|
||||
'@csstools/postcss-relative-color-syntax@2.0.17':
|
||||
resolution: {integrity: sha512-EVckAtG8bocItZflXLJ50Su+gwg/4Jhkz1BztyNsT0/svwS6QMAeLjyUA75OsgtejNWQHvBMWna4xc9LCqdjrQ==}
|
||||
'@csstools/postcss-relative-color-syntax@2.0.18':
|
||||
resolution: {integrity: sha512-C39i9fId7kz7VOJps2/ZJjsbppNMy5zF6ly+7xkJBPS89XlhBzKYTBObhRXDZDKfzXPZ4fwKOfqv5z+Cr+IIKg==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
|
@ -2400,8 +2420,8 @@ packages:
|
|||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
|
||||
'@csstools/postcss-stepped-value-functions@3.0.9':
|
||||
resolution: {integrity: sha512-uAw1J8hiZ0mM1DLaziI7CP5oagSwDnS5kufuROGIJFzESYfTqNVS3b7FgDZto9AxXdkwI+Sn48+cvG8PwzGMog==}
|
||||
'@csstools/postcss-stepped-value-functions@3.0.10':
|
||||
resolution: {integrity: sha512-MZwo0D0TYrQhT5FQzMqfy/nGZ28D1iFtpN7Su1ck5BPHS95+/Y5O9S4kEvo76f2YOsqwYcT8ZGehSI1TnzuX2g==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
|
@ -2412,8 +2432,8 @@ packages:
|
|||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
|
||||
'@csstools/postcss-trigonometric-functions@3.0.9':
|
||||
resolution: {integrity: sha512-rCAtKX3EsH91ZIHoxFzAAcMQeQCS+PsjzHl6fvsGXz/SV3lqzSmO7MWgFXyPktC2zjZXgOObAJ/2QkhMqVpgNg==}
|
||||
'@csstools/postcss-trigonometric-functions@3.0.10':
|
||||
resolution: {integrity: sha512-G9G8moTc2wiad61nY5HfvxLiM/myX0aYK4s1x8MQlPH29WDPxHQM7ghGgvv2qf2xH+rrXhztOmjGHJj4jsEqXw==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
|
@ -7249,8 +7269,8 @@ packages:
|
|||
peerDependencies:
|
||||
postcss: ^8.4.6
|
||||
|
||||
postcss-color-functional-notation@6.0.12:
|
||||
resolution: {integrity: sha512-LGLWl6EDofJwDHMElYvt4YU9AeH+oijzOfeKhE0ebuu0aBSDeEg7CfFXMi0iiXWV1VKxn3MLGOtcBNnOiQS9Yg==}
|
||||
postcss-color-functional-notation@6.0.13:
|
||||
resolution: {integrity: sha512-c2zzoZPJG1/tH1wrFOstQ2q/bvzFXNIDPFJu+l9idwwpVXbgrD4ThiuIcQxCBhOVY+CJ/Kb7DKiRLNsjTjj/+A==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
|
@ -7279,20 +7299,20 @@ packages:
|
|||
peerDependencies:
|
||||
postcss: ^8.4.31
|
||||
|
||||
postcss-custom-media@10.0.7:
|
||||
resolution: {integrity: sha512-o2k5nnvRZhF36pr1fGFM7a1EMTcNdKNO70Tp1g2lfpYgiwIctR7ic4acBCDHBMYRcQ8mFlaBB1QsEywqrSIaFQ==}
|
||||
postcss-custom-media@10.0.8:
|
||||
resolution: {integrity: sha512-V1KgPcmvlGdxTel4/CyQtBJEFhMVpEmRGFrnVtgfGIHj5PJX9vO36eFBxKBeJn+aCDTed70cc+98Mz3J/uVdGQ==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
|
||||
postcss-custom-properties@13.3.11:
|
||||
resolution: {integrity: sha512-CAIgz03I/GMhVbAKIi3u3P8j5JY2KHl0TlePcfUX3OUy8t0ynnWvyJaS1D92pEAw1LjmeKWi7+aIU0s53iYdOQ==}
|
||||
postcss-custom-properties@13.3.12:
|
||||
resolution: {integrity: sha512-oPn/OVqONB2ZLNqN185LDyaVByELAA/u3l2CS2TS16x2j2XsmV4kd8U49+TMxmUsEU9d8fB/I10E6U7kB0L1BA==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
|
||||
postcss-custom-selectors@7.1.11:
|
||||
resolution: {integrity: sha512-IoGprXOueDJL5t3ZuWR+QzPpmrQCFNhvoICsg0vDSehGwWNG0YV/Z4A+zouGRonC7NJThoV+A8A74IEMqMQUQw==}
|
||||
postcss-custom-selectors@7.1.12:
|
||||
resolution: {integrity: sha512-ctIoprBMJwByYMGjXG0F7IT2iMF2hnamQ+aWZETyBM0aAlyaYdVZTeUkk8RB+9h9wP+NdN3f01lfvKl2ZSqC0g==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
|
@ -7384,8 +7404,8 @@ packages:
|
|||
peerDependencies:
|
||||
postcss: ^8.4.21
|
||||
|
||||
postcss-lab-function@6.0.17:
|
||||
resolution: {integrity: sha512-QzjC6/3J6XKZzHGuUKhWNvlDMfWo+08dQOfQj4vWQdpZFdOxCh9QCR4w4XbV68EkdzywJie1mcm81jwFyV0+kg==}
|
||||
postcss-lab-function@6.0.18:
|
||||
resolution: {integrity: sha512-7/V6sqQW06dVC8hhT6qe913UPhD+PSDdoMUn5jByP+FRDg4ErWXFayl2rpW398hI2QTmOeNLUsTBa0lzbsXZZg==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
|
@ -7548,8 +7568,8 @@ packages:
|
|||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
|
||||
postcss-preset-env@9.5.15:
|
||||
resolution: {integrity: sha512-z/2akOVQChOGAdzaUR4pQrDOM3xGZc5/k4THHWyREbWAfngaJATA2SkEQMkiyV5Y/EoSwE0nt0IiaIs6CMmxfQ==}
|
||||
postcss-preset-env@9.5.16:
|
||||
resolution: {integrity: sha512-bQhNpSW4WE4k4Tq3xWf9Al9bN4r609aXXzE4ZoPs/KPBSjhTohUMVmXvUJ2wleSbx4II8nyC9tgiPIysPAFh6A==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
|
@ -11021,65 +11041,76 @@ snapshots:
|
|||
dependencies:
|
||||
'@jridgewell/trace-mapping': 0.3.9
|
||||
|
||||
'@csstools/cascade-layer-name-parser@1.0.12(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.3))(@csstools/css-tokenizer@2.3.3)':
|
||||
'@csstools/cascade-layer-name-parser@1.0.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)':
|
||||
dependencies:
|
||||
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-tokenizer': 2.3.3
|
||||
'@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
|
||||
'@csstools/css-tokenizer': 2.4.1
|
||||
|
||||
'@csstools/color-helpers@4.2.1': {}
|
||||
|
||||
'@csstools/css-calc@1.2.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.3))(@csstools/css-tokenizer@2.3.3)':
|
||||
'@csstools/css-calc@1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)':
|
||||
dependencies:
|
||||
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-tokenizer': 2.3.3
|
||||
'@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
|
||||
'@csstools/css-tokenizer': 2.4.1
|
||||
|
||||
'@csstools/css-color-parser@2.0.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.3))(@csstools/css-tokenizer@2.3.3)':
|
||||
'@csstools/css-color-parser@2.0.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)':
|
||||
dependencies:
|
||||
'@csstools/color-helpers': 4.2.1
|
||||
'@csstools/css-calc': 1.2.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.3))(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-tokenizer': 2.3.3
|
||||
'@csstools/css-calc': 1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
|
||||
'@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
|
||||
'@csstools/css-tokenizer': 2.4.1
|
||||
|
||||
'@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.3)':
|
||||
dependencies:
|
||||
'@csstools/css-tokenizer': 2.3.3
|
||||
|
||||
'@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1)':
|
||||
dependencies:
|
||||
'@csstools/css-tokenizer': 2.4.1
|
||||
|
||||
'@csstools/css-tokenizer@2.3.3': {}
|
||||
|
||||
'@csstools/css-tokenizer@2.4.1': {}
|
||||
|
||||
'@csstools/media-query-list-parser@2.1.12(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.3))(@csstools/css-tokenizer@2.3.3)':
|
||||
dependencies:
|
||||
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-tokenizer': 2.3.3
|
||||
|
||||
'@csstools/media-query-list-parser@2.1.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)':
|
||||
dependencies:
|
||||
'@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
|
||||
'@csstools/css-tokenizer': 2.4.1
|
||||
|
||||
'@csstools/postcss-cascade-layers@4.0.6(postcss@8.4.39)':
|
||||
dependencies:
|
||||
'@csstools/selector-specificity': 3.1.1(postcss-selector-parser@6.1.0)
|
||||
postcss: 8.4.39
|
||||
postcss-selector-parser: 6.1.0
|
||||
|
||||
'@csstools/postcss-color-function@3.0.17(postcss@8.4.39)':
|
||||
'@csstools/postcss-color-function@3.0.18(postcss@8.4.39)':
|
||||
dependencies:
|
||||
'@csstools/css-color-parser': 2.0.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.3))(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-tokenizer': 2.3.3
|
||||
'@csstools/css-color-parser': 2.0.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
|
||||
'@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
|
||||
'@csstools/css-tokenizer': 2.4.1
|
||||
'@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39)
|
||||
'@csstools/utilities': 1.0.0(postcss@8.4.39)
|
||||
postcss: 8.4.39
|
||||
|
||||
'@csstools/postcss-color-mix-function@2.0.17(postcss@8.4.39)':
|
||||
'@csstools/postcss-color-mix-function@2.0.18(postcss@8.4.39)':
|
||||
dependencies:
|
||||
'@csstools/css-color-parser': 2.0.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.3))(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-tokenizer': 2.3.3
|
||||
'@csstools/css-color-parser': 2.0.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
|
||||
'@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
|
||||
'@csstools/css-tokenizer': 2.4.1
|
||||
'@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39)
|
||||
'@csstools/utilities': 1.0.0(postcss@8.4.39)
|
||||
postcss: 8.4.39
|
||||
|
||||
'@csstools/postcss-exponential-functions@1.0.8(postcss@8.4.39)':
|
||||
'@csstools/postcss-exponential-functions@1.0.9(postcss@8.4.39)':
|
||||
dependencies:
|
||||
'@csstools/css-calc': 1.2.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.3))(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-tokenizer': 2.3.3
|
||||
'@csstools/css-calc': 1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
|
||||
'@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
|
||||
'@csstools/css-tokenizer': 2.4.1
|
||||
postcss: 8.4.39
|
||||
|
||||
'@csstools/postcss-font-format-keywords@3.0.2(postcss@8.4.39)':
|
||||
|
@ -11088,27 +11119,27 @@ snapshots:
|
|||
postcss: 8.4.39
|
||||
postcss-value-parser: 4.2.0
|
||||
|
||||
'@csstools/postcss-gamut-mapping@1.0.10(postcss@8.4.39)':
|
||||
'@csstools/postcss-gamut-mapping@1.0.11(postcss@8.4.39)':
|
||||
dependencies:
|
||||
'@csstools/css-color-parser': 2.0.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.3))(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-tokenizer': 2.3.3
|
||||
'@csstools/css-color-parser': 2.0.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
|
||||
'@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
|
||||
'@csstools/css-tokenizer': 2.4.1
|
||||
postcss: 8.4.39
|
||||
|
||||
'@csstools/postcss-gradients-interpolation-method@4.0.18(postcss@8.4.39)':
|
||||
'@csstools/postcss-gradients-interpolation-method@4.0.19(postcss@8.4.39)':
|
||||
dependencies:
|
||||
'@csstools/css-color-parser': 2.0.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.3))(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-tokenizer': 2.3.3
|
||||
'@csstools/css-color-parser': 2.0.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
|
||||
'@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
|
||||
'@csstools/css-tokenizer': 2.4.1
|
||||
'@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39)
|
||||
'@csstools/utilities': 1.0.0(postcss@8.4.39)
|
||||
postcss: 8.4.39
|
||||
|
||||
'@csstools/postcss-hwb-function@3.0.16(postcss@8.4.39)':
|
||||
'@csstools/postcss-hwb-function@3.0.17(postcss@8.4.39)':
|
||||
dependencies:
|
||||
'@csstools/css-color-parser': 2.0.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.3))(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-tokenizer': 2.3.3
|
||||
'@csstools/css-color-parser': 2.0.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
|
||||
'@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
|
||||
'@csstools/css-tokenizer': 2.4.1
|
||||
'@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39)
|
||||
'@csstools/utilities': 1.0.0(postcss@8.4.39)
|
||||
postcss: 8.4.39
|
||||
|
@ -11130,10 +11161,10 @@ snapshots:
|
|||
postcss: 8.4.39
|
||||
postcss-selector-parser: 6.1.0
|
||||
|
||||
'@csstools/postcss-light-dark-function@1.0.6(postcss@8.4.39)':
|
||||
'@csstools/postcss-light-dark-function@1.0.7(postcss@8.4.39)':
|
||||
dependencies:
|
||||
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-tokenizer': 2.3.3
|
||||
'@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
|
||||
'@csstools/css-tokenizer': 2.4.1
|
||||
'@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39)
|
||||
'@csstools/utilities': 1.0.0(postcss@8.4.39)
|
||||
postcss: 8.4.39
|
||||
|
@ -11155,25 +11186,25 @@ snapshots:
|
|||
postcss: 8.4.39
|
||||
postcss-value-parser: 4.2.0
|
||||
|
||||
'@csstools/postcss-logical-viewport-units@2.0.10(postcss@8.4.39)':
|
||||
'@csstools/postcss-logical-viewport-units@2.0.11(postcss@8.4.39)':
|
||||
dependencies:
|
||||
'@csstools/css-tokenizer': 2.3.3
|
||||
'@csstools/css-tokenizer': 2.4.1
|
||||
'@csstools/utilities': 1.0.0(postcss@8.4.39)
|
||||
postcss: 8.4.39
|
||||
|
||||
'@csstools/postcss-media-minmax@1.1.7(postcss@8.4.39)':
|
||||
'@csstools/postcss-media-minmax@1.1.8(postcss@8.4.39)':
|
||||
dependencies:
|
||||
'@csstools/css-calc': 1.2.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.3))(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-tokenizer': 2.3.3
|
||||
'@csstools/media-query-list-parser': 2.1.12(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.3))(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-calc': 1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
|
||||
'@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
|
||||
'@csstools/css-tokenizer': 2.4.1
|
||||
'@csstools/media-query-list-parser': 2.1.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
|
||||
postcss: 8.4.39
|
||||
|
||||
'@csstools/postcss-media-queries-aspect-ratio-number-values@2.0.10(postcss@8.4.39)':
|
||||
'@csstools/postcss-media-queries-aspect-ratio-number-values@2.0.11(postcss@8.4.39)':
|
||||
dependencies:
|
||||
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-tokenizer': 2.3.3
|
||||
'@csstools/media-query-list-parser': 2.1.12(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.3))(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
|
||||
'@csstools/css-tokenizer': 2.4.1
|
||||
'@csstools/media-query-list-parser': 2.1.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
|
||||
postcss: 8.4.39
|
||||
|
||||
'@csstools/postcss-nested-calc@3.0.2(postcss@8.4.39)':
|
||||
|
@ -11187,11 +11218,11 @@ snapshots:
|
|||
postcss: 8.4.39
|
||||
postcss-value-parser: 4.2.0
|
||||
|
||||
'@csstools/postcss-oklab-function@3.0.17(postcss@8.4.39)':
|
||||
'@csstools/postcss-oklab-function@3.0.18(postcss@8.4.39)':
|
||||
dependencies:
|
||||
'@csstools/css-color-parser': 2.0.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.3))(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-tokenizer': 2.3.3
|
||||
'@csstools/css-color-parser': 2.0.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
|
||||
'@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
|
||||
'@csstools/css-tokenizer': 2.4.1
|
||||
'@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39)
|
||||
'@csstools/utilities': 1.0.0(postcss@8.4.39)
|
||||
postcss: 8.4.39
|
||||
|
@ -11201,11 +11232,11 @@ snapshots:
|
|||
postcss: 8.4.39
|
||||
postcss-value-parser: 4.2.0
|
||||
|
||||
'@csstools/postcss-relative-color-syntax@2.0.17(postcss@8.4.39)':
|
||||
'@csstools/postcss-relative-color-syntax@2.0.18(postcss@8.4.39)':
|
||||
dependencies:
|
||||
'@csstools/css-color-parser': 2.0.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.3))(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-tokenizer': 2.3.3
|
||||
'@csstools/css-color-parser': 2.0.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
|
||||
'@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
|
||||
'@csstools/css-tokenizer': 2.4.1
|
||||
'@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39)
|
||||
'@csstools/utilities': 1.0.0(postcss@8.4.39)
|
||||
postcss: 8.4.39
|
||||
|
@ -11215,11 +11246,11 @@ snapshots:
|
|||
postcss: 8.4.39
|
||||
postcss-selector-parser: 6.1.0
|
||||
|
||||
'@csstools/postcss-stepped-value-functions@3.0.9(postcss@8.4.39)':
|
||||
'@csstools/postcss-stepped-value-functions@3.0.10(postcss@8.4.39)':
|
||||
dependencies:
|
||||
'@csstools/css-calc': 1.2.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.3))(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-tokenizer': 2.3.3
|
||||
'@csstools/css-calc': 1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
|
||||
'@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
|
||||
'@csstools/css-tokenizer': 2.4.1
|
||||
postcss: 8.4.39
|
||||
|
||||
'@csstools/postcss-text-decoration-shorthand@3.0.7(postcss@8.4.39)':
|
||||
|
@ -11228,11 +11259,11 @@ snapshots:
|
|||
postcss: 8.4.39
|
||||
postcss-value-parser: 4.2.0
|
||||
|
||||
'@csstools/postcss-trigonometric-functions@3.0.9(postcss@8.4.39)':
|
||||
'@csstools/postcss-trigonometric-functions@3.0.10(postcss@8.4.39)':
|
||||
dependencies:
|
||||
'@csstools/css-calc': 1.2.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.3))(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-tokenizer': 2.3.3
|
||||
'@csstools/css-calc': 1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
|
||||
'@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
|
||||
'@csstools/css-tokenizer': 2.4.1
|
||||
postcss: 8.4.39
|
||||
|
||||
'@csstools/postcss-unset-value@3.0.1(postcss@8.4.39)':
|
||||
|
@ -16421,11 +16452,11 @@ snapshots:
|
|||
postcss: 8.4.39
|
||||
postcss-value-parser: 4.2.0
|
||||
|
||||
postcss-color-functional-notation@6.0.12(postcss@8.4.39):
|
||||
postcss-color-functional-notation@6.0.13(postcss@8.4.39):
|
||||
dependencies:
|
||||
'@csstools/css-color-parser': 2.0.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.3))(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-tokenizer': 2.3.3
|
||||
'@csstools/css-color-parser': 2.0.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
|
||||
'@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
|
||||
'@csstools/css-tokenizer': 2.4.1
|
||||
'@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39)
|
||||
'@csstools/utilities': 1.0.0(postcss@8.4.39)
|
||||
postcss: 8.4.39
|
||||
|
@ -16456,28 +16487,28 @@ snapshots:
|
|||
postcss: 8.4.39
|
||||
postcss-value-parser: 4.2.0
|
||||
|
||||
postcss-custom-media@10.0.7(postcss@8.4.39):
|
||||
postcss-custom-media@10.0.8(postcss@8.4.39):
|
||||
dependencies:
|
||||
'@csstools/cascade-layer-name-parser': 1.0.12(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.3))(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-tokenizer': 2.3.3
|
||||
'@csstools/media-query-list-parser': 2.1.12(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.3))(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/cascade-layer-name-parser': 1.0.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
|
||||
'@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
|
||||
'@csstools/css-tokenizer': 2.4.1
|
||||
'@csstools/media-query-list-parser': 2.1.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
|
||||
postcss: 8.4.39
|
||||
|
||||
postcss-custom-properties@13.3.11(postcss@8.4.39):
|
||||
postcss-custom-properties@13.3.12(postcss@8.4.39):
|
||||
dependencies:
|
||||
'@csstools/cascade-layer-name-parser': 1.0.12(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.3))(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-tokenizer': 2.3.3
|
||||
'@csstools/cascade-layer-name-parser': 1.0.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
|
||||
'@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
|
||||
'@csstools/css-tokenizer': 2.4.1
|
||||
'@csstools/utilities': 1.0.0(postcss@8.4.39)
|
||||
postcss: 8.4.39
|
||||
postcss-value-parser: 4.2.0
|
||||
|
||||
postcss-custom-selectors@7.1.11(postcss@8.4.39):
|
||||
postcss-custom-selectors@7.1.12(postcss@8.4.39):
|
||||
dependencies:
|
||||
'@csstools/cascade-layer-name-parser': 1.0.12(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.3))(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-tokenizer': 2.3.3
|
||||
'@csstools/cascade-layer-name-parser': 1.0.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
|
||||
'@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
|
||||
'@csstools/css-tokenizer': 2.4.1
|
||||
postcss: 8.4.39
|
||||
postcss-selector-parser: 6.1.0
|
||||
|
||||
|
@ -16560,11 +16591,11 @@ snapshots:
|
|||
camelcase-css: 2.0.1
|
||||
postcss: 8.4.39
|
||||
|
||||
postcss-lab-function@6.0.17(postcss@8.4.39):
|
||||
postcss-lab-function@6.0.18(postcss@8.4.39):
|
||||
dependencies:
|
||||
'@csstools/css-color-parser': 2.0.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.3))(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.3)
|
||||
'@csstools/css-tokenizer': 2.3.3
|
||||
'@csstools/css-color-parser': 2.0.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
|
||||
'@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
|
||||
'@csstools/css-tokenizer': 2.4.1
|
||||
'@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39)
|
||||
'@csstools/utilities': 1.0.0(postcss@8.4.39)
|
||||
postcss: 8.4.39
|
||||
|
@ -16709,36 +16740,36 @@ snapshots:
|
|||
postcss: 8.4.39
|
||||
postcss-value-parser: 4.2.0
|
||||
|
||||
postcss-preset-env@9.5.15(postcss@8.4.39):
|
||||
postcss-preset-env@9.5.16(postcss@8.4.39):
|
||||
dependencies:
|
||||
'@csstools/postcss-cascade-layers': 4.0.6(postcss@8.4.39)
|
||||
'@csstools/postcss-color-function': 3.0.17(postcss@8.4.39)
|
||||
'@csstools/postcss-color-mix-function': 2.0.17(postcss@8.4.39)
|
||||
'@csstools/postcss-exponential-functions': 1.0.8(postcss@8.4.39)
|
||||
'@csstools/postcss-color-function': 3.0.18(postcss@8.4.39)
|
||||
'@csstools/postcss-color-mix-function': 2.0.18(postcss@8.4.39)
|
||||
'@csstools/postcss-exponential-functions': 1.0.9(postcss@8.4.39)
|
||||
'@csstools/postcss-font-format-keywords': 3.0.2(postcss@8.4.39)
|
||||
'@csstools/postcss-gamut-mapping': 1.0.10(postcss@8.4.39)
|
||||
'@csstools/postcss-gradients-interpolation-method': 4.0.18(postcss@8.4.39)
|
||||
'@csstools/postcss-hwb-function': 3.0.16(postcss@8.4.39)
|
||||
'@csstools/postcss-gamut-mapping': 1.0.11(postcss@8.4.39)
|
||||
'@csstools/postcss-gradients-interpolation-method': 4.0.19(postcss@8.4.39)
|
||||
'@csstools/postcss-hwb-function': 3.0.17(postcss@8.4.39)
|
||||
'@csstools/postcss-ic-unit': 3.0.6(postcss@8.4.39)
|
||||
'@csstools/postcss-initial': 1.0.1(postcss@8.4.39)
|
||||
'@csstools/postcss-is-pseudo-class': 4.0.8(postcss@8.4.39)
|
||||
'@csstools/postcss-light-dark-function': 1.0.6(postcss@8.4.39)
|
||||
'@csstools/postcss-light-dark-function': 1.0.7(postcss@8.4.39)
|
||||
'@csstools/postcss-logical-float-and-clear': 2.0.1(postcss@8.4.39)
|
||||
'@csstools/postcss-logical-overflow': 1.0.1(postcss@8.4.39)
|
||||
'@csstools/postcss-logical-overscroll-behavior': 1.0.1(postcss@8.4.39)
|
||||
'@csstools/postcss-logical-resize': 2.0.1(postcss@8.4.39)
|
||||
'@csstools/postcss-logical-viewport-units': 2.0.10(postcss@8.4.39)
|
||||
'@csstools/postcss-media-minmax': 1.1.7(postcss@8.4.39)
|
||||
'@csstools/postcss-media-queries-aspect-ratio-number-values': 2.0.10(postcss@8.4.39)
|
||||
'@csstools/postcss-logical-viewport-units': 2.0.11(postcss@8.4.39)
|
||||
'@csstools/postcss-media-minmax': 1.1.8(postcss@8.4.39)
|
||||
'@csstools/postcss-media-queries-aspect-ratio-number-values': 2.0.11(postcss@8.4.39)
|
||||
'@csstools/postcss-nested-calc': 3.0.2(postcss@8.4.39)
|
||||
'@csstools/postcss-normalize-display-values': 3.0.2(postcss@8.4.39)
|
||||
'@csstools/postcss-oklab-function': 3.0.17(postcss@8.4.39)
|
||||
'@csstools/postcss-oklab-function': 3.0.18(postcss@8.4.39)
|
||||
'@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39)
|
||||
'@csstools/postcss-relative-color-syntax': 2.0.17(postcss@8.4.39)
|
||||
'@csstools/postcss-relative-color-syntax': 2.0.18(postcss@8.4.39)
|
||||
'@csstools/postcss-scope-pseudo-class': 3.0.1(postcss@8.4.39)
|
||||
'@csstools/postcss-stepped-value-functions': 3.0.9(postcss@8.4.39)
|
||||
'@csstools/postcss-stepped-value-functions': 3.0.10(postcss@8.4.39)
|
||||
'@csstools/postcss-text-decoration-shorthand': 3.0.7(postcss@8.4.39)
|
||||
'@csstools/postcss-trigonometric-functions': 3.0.9(postcss@8.4.39)
|
||||
'@csstools/postcss-trigonometric-functions': 3.0.10(postcss@8.4.39)
|
||||
'@csstools/postcss-unset-value': 3.0.1(postcss@8.4.39)
|
||||
autoprefixer: 10.4.19(postcss@8.4.39)
|
||||
browserslist: 4.23.1
|
||||
|
@ -16749,12 +16780,12 @@ snapshots:
|
|||
postcss: 8.4.39
|
||||
postcss-attribute-case-insensitive: 6.0.3(postcss@8.4.39)
|
||||
postcss-clamp: 4.1.0(postcss@8.4.39)
|
||||
postcss-color-functional-notation: 6.0.12(postcss@8.4.39)
|
||||
postcss-color-functional-notation: 6.0.13(postcss@8.4.39)
|
||||
postcss-color-hex-alpha: 9.0.4(postcss@8.4.39)
|
||||
postcss-color-rebeccapurple: 9.0.3(postcss@8.4.39)
|
||||
postcss-custom-media: 10.0.7(postcss@8.4.39)
|
||||
postcss-custom-properties: 13.3.11(postcss@8.4.39)
|
||||
postcss-custom-selectors: 7.1.11(postcss@8.4.39)
|
||||
postcss-custom-media: 10.0.8(postcss@8.4.39)
|
||||
postcss-custom-properties: 13.3.12(postcss@8.4.39)
|
||||
postcss-custom-selectors: 7.1.12(postcss@8.4.39)
|
||||
postcss-dir-pseudo-class: 8.0.1(postcss@8.4.39)
|
||||
postcss-double-position-gradients: 5.0.6(postcss@8.4.39)
|
||||
postcss-focus-visible: 9.0.1(postcss@8.4.39)
|
||||
|
@ -16762,7 +16793,7 @@ snapshots:
|
|||
postcss-font-variant: 5.0.0(postcss@8.4.39)
|
||||
postcss-gap-properties: 5.0.1(postcss@8.4.39)
|
||||
postcss-image-set-function: 6.0.3(postcss@8.4.39)
|
||||
postcss-lab-function: 6.0.17(postcss@8.4.39)
|
||||
postcss-lab-function: 6.0.18(postcss@8.4.39)
|
||||
postcss-logical: 7.0.1(postcss@8.4.39)
|
||||
postcss-nesting: 12.1.5(postcss@8.4.39)
|
||||
postcss-opacity-percentage: 2.0.0(postcss@8.4.39)
|
||||
|
|
|
@ -6,6 +6,7 @@ packages:
|
|||
- "packages/@core/ui-kit/*"
|
||||
- "packages/@core/forward/*"
|
||||
- "packages/@core/helpers"
|
||||
- "packages/@core/locales"
|
||||
- "packages/business/*"
|
||||
- "apps/*"
|
||||
- "scripts/*"
|
||||
|
|
|
@ -60,6 +60,10 @@
|
|||
"name": "@vben-core/stores",
|
||||
"path": "packages/@core/forward/stores",
|
||||
},
|
||||
{
|
||||
"name": "@vben-core/locales",
|
||||
"path": "packages/@core/locales",
|
||||
},
|
||||
{
|
||||
"name": "@vben-core/cache",
|
||||
"path": "packages/@core/shared/cache",
|
||||
|
@ -132,10 +136,6 @@
|
|||
"name": "@vben/icons",
|
||||
"path": "packages/icons",
|
||||
},
|
||||
{
|
||||
"name": "@vben/locales",
|
||||
"path": "packages/locales",
|
||||
},
|
||||
{
|
||||
"name": "@vben/styles",
|
||||
"path": "packages/styles",
|
||||
|
|
Loading…
Reference in New Issue