qidian-vue-ui 1.2.63 → 1.2.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.
@@ -1,5 +1,7 @@
1
1
  import type { ComputedRef, InjectionKey } from 'vue';
2
2
  import type { QdConfigProviderProps } from './types';
3
+ export declare const DEFAULT_LOCALE = "zh-CN";
4
+ export declare const PROVIDE_LOCALE: InjectionKey<ComputedRef<string>>;
3
5
  export declare const PROVIDE_USER: InjectionKey<ComputedRef<QdConfigProviderProps['user']>>;
4
6
  export declare const PROVIDE_DICT: InjectionKey<ComputedRef<QdConfigProviderProps['dict']>>;
5
7
  export declare const PROVIDE_UPLOAD: InjectionKey<ComputedRef<QdConfigProviderProps['upload']>>;
@@ -1,3 +1,5 @@
1
+ const DEFAULT_LOCALE = "zh-CN";
2
+ const PROVIDE_LOCALE = /* @__PURE__ */ Symbol("QdLocale");
1
3
  const PROVIDE_USER = /* @__PURE__ */ Symbol("QdUser");
2
4
  const PROVIDE_DICT = /* @__PURE__ */ Symbol("QdDict");
3
5
  const PROVIDE_UPLOAD = /* @__PURE__ */ Symbol("QdUpload");
@@ -6,9 +8,11 @@ const PROVIDE_ORG = /* @__PURE__ */ Symbol("QdOrg");
6
8
  const PROVIDE_OFFICE = /* @__PURE__ */ Symbol("QdOffice");
7
9
  const PROVIDE_GLOBAL_CONFIG = /* @__PURE__ */ Symbol("QdGlobalConfig");
8
10
  export {
11
+ DEFAULT_LOCALE,
9
12
  PROVIDE_AVATAR,
10
13
  PROVIDE_DICT,
11
14
  PROVIDE_GLOBAL_CONFIG,
15
+ PROVIDE_LOCALE,
12
16
  PROVIDE_OFFICE,
13
17
  PROVIDE_ORG,
14
18
  PROVIDE_UPLOAD,
@@ -1 +1 @@
1
- {"version":3,"file":"config.mjs","sources":["../../../src/components/config-provider/config.ts"],"sourcesContent":["import type { ComputedRef, InjectionKey } from 'vue'\n\nimport type { QdConfigProviderProps } from './types'\n\nexport const PROVIDE_USER: InjectionKey<ComputedRef<QdConfigProviderProps['user']>> =\n Symbol('QdUser')\nexport const PROVIDE_DICT: InjectionKey<ComputedRef<QdConfigProviderProps['dict']>> =\n Symbol('QdDict')\nexport const PROVIDE_UPLOAD: InjectionKey<ComputedRef<QdConfigProviderProps['upload']>> =\n Symbol('QdUpload')\nexport const PROVIDE_AVATAR: InjectionKey<ComputedRef<QdConfigProviderProps['avatar']>> =\n Symbol('QdAvatar')\nexport const PROVIDE_ORG: InjectionKey<ComputedRef<QdConfigProviderProps['org']>> = Symbol('QdOrg')\nexport const PROVIDE_OFFICE: InjectionKey<ComputedRef<QdConfigProviderProps['office']>> =\n Symbol('QdOffice')\nexport const PROVIDE_GLOBAL_CONFIG: InjectionKey<\n ComputedRef<NonNullable<QdConfigProviderProps['globalConfig']>>\n> = Symbol('QdGlobalConfig')\n"],"names":[],"mappings":"AAIO,MAAM,sCACJ,QAAQ;AACV,MAAM,sCACJ,QAAQ;AACV,MAAM,wCACJ,UAAU;AACZ,MAAM,wCACJ,UAAU;AACZ,MAAM,qCAA8E,OAAO;AAC3F,MAAM,wCACJ,UAAU;AACZ,MAAM,+CAEF,gBAAgB;"}
1
+ {"version":3,"file":"config.mjs","sources":["../../../src/components/config-provider/config.ts"],"sourcesContent":["import type { ComputedRef, InjectionKey } from 'vue'\n\nimport type { QdConfigProviderProps } from './types'\n\nexport const DEFAULT_LOCALE = 'zh-CN'\nexport const PROVIDE_LOCALE: InjectionKey<ComputedRef<string>> = Symbol('QdLocale')\n\nexport const PROVIDE_USER: InjectionKey<ComputedRef<QdConfigProviderProps['user']>> =\n Symbol('QdUser')\nexport const PROVIDE_DICT: InjectionKey<ComputedRef<QdConfigProviderProps['dict']>> =\n Symbol('QdDict')\nexport const PROVIDE_UPLOAD: InjectionKey<ComputedRef<QdConfigProviderProps['upload']>> =\n Symbol('QdUpload')\nexport const PROVIDE_AVATAR: InjectionKey<ComputedRef<QdConfigProviderProps['avatar']>> =\n Symbol('QdAvatar')\nexport const PROVIDE_ORG: InjectionKey<ComputedRef<QdConfigProviderProps['org']>> = Symbol('QdOrg')\nexport const PROVIDE_OFFICE: InjectionKey<ComputedRef<QdConfigProviderProps['office']>> =\n Symbol('QdOffice')\nexport const PROVIDE_GLOBAL_CONFIG: InjectionKey<\n ComputedRef<NonNullable<QdConfigProviderProps['globalConfig']>>\n> = Symbol('QdGlobalConfig')\n"],"names":[],"mappings":"AAIO,MAAM,iBAAiB;AACvB,MAAM,wCAA2D,UAAU;AAE3E,MAAM,sCACJ,QAAQ;AACV,MAAM,sCACJ,QAAQ;AACV,MAAM,wCACJ,UAAU;AACZ,MAAM,wCACJ,UAAU;AACZ,MAAM,qCAA8E,OAAO;AAC3F,MAAM,wCACJ,UAAU;AACZ,MAAM,+CAEF,gBAAgB;"}
@@ -1,13 +1,13 @@
1
1
  import { to } from "qidian-shared";
2
2
  import { ConfigProvider } from "tdesign-vue-next";
3
3
  import { defineComponent, ref, computed, provide, watch, watchEffect, h } from "vue";
4
- import { PROVIDE_USER, PROVIDE_DICT, PROVIDE_UPLOAD, PROVIDE_AVATAR, PROVIDE_ORG, PROVIDE_OFFICE, PROVIDE_GLOBAL_CONFIG } from "./config.mjs";
4
+ import { DEFAULT_LOCALE, PROVIDE_USER, PROVIDE_DICT, PROVIDE_UPLOAD, PROVIDE_AVATAR, PROVIDE_ORG, PROVIDE_OFFICE, PROVIDE_GLOBAL_CONFIG, PROVIDE_LOCALE } from "./config.mjs";
5
5
  const QdConfigProvider = defineComponent({
6
6
  name: "QdConfigProvider",
7
7
  props: {
8
8
  locale: {
9
9
  type: String,
10
- default: "zh-CN"
10
+ default: DEFAULT_LOCALE
11
11
  },
12
12
  user: {
13
13
  type: Object,
@@ -56,6 +56,7 @@ const QdConfigProvider = defineComponent({
56
56
  const avatar = computed(() => props.avatar);
57
57
  const org = computed(() => props.org);
58
58
  const office = computed(() => props.office);
59
+ const locale = computed(() => props.locale ?? DEFAULT_LOCALE);
59
60
  provide(PROVIDE_USER, user);
60
61
  provide(PROVIDE_DICT, dict);
61
62
  provide(PROVIDE_UPLOAD, upload);
@@ -63,6 +64,7 @@ const QdConfigProvider = defineComponent({
63
64
  provide(PROVIDE_ORG, org);
64
65
  provide(PROVIDE_OFFICE, office);
65
66
  provide(PROVIDE_GLOBAL_CONFIG, mergedGlobalConfig);
67
+ provide(PROVIDE_LOCALE, locale);
66
68
  watch(
67
69
  () => [props.user, props.dict, props.avatar, props.agentChat],
68
70
  ([newUser, newDict, newAvatar, newAgentChat]) => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../src/components/config-provider/index.ts"],"sourcesContent":["import { to } from 'qidian-shared'\nimport { ConfigProvider as TConfigProvider } from 'tdesign-vue-next'\nimport type { PropType } from 'vue'\nimport { computed, defineComponent, h, provide, ref, watch, watchEffect } from 'vue'\n\nimport {\n PROVIDE_AVATAR,\n PROVIDE_DICT,\n PROVIDE_GLOBAL_CONFIG,\n PROVIDE_OFFICE,\n PROVIDE_ORG,\n PROVIDE_UPLOAD,\n PROVIDE_USER\n} from './config'\nimport type { QdConfigProviderProps } from './types'\n\nexport const QdConfigProvider = defineComponent({\n name: 'QdConfigProvider',\n props: {\n locale: {\n type: String as PropType<QdConfigProviderProps['locale']>,\n default: 'zh-CN'\n },\n\n user: {\n type: Object as PropType<QdConfigProviderProps['user']>,\n default: undefined\n },\n\n dict: {\n type: Object as PropType<QdConfigProviderProps['dict']>,\n default: undefined\n },\n\n upload: {\n type: Object as PropType<QdConfigProviderProps['upload']>,\n default: undefined\n },\n\n avatar: {\n type: Object as PropType<QdConfigProviderProps['avatar']>,\n default: undefined\n },\n\n org: {\n type: Object as PropType<QdConfigProviderProps['org']>,\n default: undefined\n },\n\n office: {\n type: Object as PropType<QdConfigProviderProps['office']>,\n default: undefined\n },\n\n agentChat: {\n type: Object as PropType<QdConfigProviderProps['agentChat']>,\n default: undefined\n },\n\n globalConfig: {\n type: Object as PropType<QdConfigProviderProps['globalConfig']>,\n default: undefined\n }\n },\n setup(props: QdConfigProviderProps, { slots }) {\n const qdGlobalConfig = ref()\n const mergedGlobalConfig = computed(() => {\n return {\n ...qdGlobalConfig.value,\n ...props.globalConfig\n }\n })\n\n const user = computed(() => props.user)\n const dict = computed(() => props.dict)\n const upload = computed(() => props.upload)\n const avatar = computed(() => props.avatar)\n const org = computed(() => props.org)\n const office = computed(() => props.office)\n\n provide(PROVIDE_USER, user)\n provide(PROVIDE_DICT, dict)\n provide(PROVIDE_UPLOAD, upload)\n provide(PROVIDE_AVATAR, avatar)\n provide(PROVIDE_ORG, org)\n provide(PROVIDE_OFFICE, office)\n provide(PROVIDE_GLOBAL_CONFIG, mergedGlobalConfig)\n\n watch(\n () => [props.user, props.dict, props.avatar, props.agentChat] as const,\n ([newUser, newDict, newAvatar, newAgentChat]) => {\n if (typeof window !== 'undefined') {\n window.__QIDIAN_USER__ = newUser\n window.__QIDIAN_DICT__ = newDict\n window.__QIDIAN_AVATAR__ = newAvatar\n window.__QIDIAN_AGENT_CHAT__ = newAgentChat\n }\n },\n { immediate: true }\n )\n\n watch(\n mergedGlobalConfig,\n (newConfig) => {\n window.__QIDIAN_GLOBAL_CONFIG__ = newConfig\n },\n { immediate: true }\n )\n\n watchEffect(async () => {\n const localeMap = {\n 'zh-CN': () => import('../../locales/zh-CN'),\n 'zh-TW': () => import('../../locales/zh-TW'),\n 'en-US': () => import('../../locales/en-US')\n }\n\n const loadLocale = localeMap[props.locale as keyof typeof localeMap] || localeMap['zh-CN']\n const [err, res] = await to(\n loadLocale() as unknown as Promise<{\n default: NonNullable<QdConfigProviderProps['globalConfig']>\n }>\n )\n if (err) return\n\n qdGlobalConfig.value = res.default\n })\n\n return () => h(TConfigProvider, { globalConfig: mergedGlobalConfig.value }, slots.default)\n }\n})\n\nexport type { QdConfigProviderProps } from './types'\nexport { useConfig as useQdConfig } from './useConfig'\n"],"names":["TConfigProvider"],"mappings":";;;;AAgBO,MAAM,mBAAmB,gBAAgB;AAAA,EAC9C,MAAM;AAAA,EACN,OAAO;AAAA,IACL,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,IAGX,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,IAGX,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,IAGX,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,IAGX,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,IAGX,KAAK;AAAA,MACH,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,IAGX,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,IAGX,WAAW;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,IAGX,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,EACX;AAAA,EAEF,MAAM,OAA8B,EAAE,SAAS;AAC7C,UAAM,iBAAiB,IAAA;AACvB,UAAM,qBAAqB,SAAS,MAAM;AACxC,aAAO;AAAA,QACL,GAAG,eAAe;AAAA,QAClB,GAAG,MAAM;AAAA,MAAA;AAAA,IAEb,CAAC;AAED,UAAM,OAAO,SAAS,MAAM,MAAM,IAAI;AACtC,UAAM,OAAO,SAAS,MAAM,MAAM,IAAI;AACtC,UAAM,SAAS,SAAS,MAAM,MAAM,MAAM;AAC1C,UAAM,SAAS,SAAS,MAAM,MAAM,MAAM;AAC1C,UAAM,MAAM,SAAS,MAAM,MAAM,GAAG;AACpC,UAAM,SAAS,SAAS,MAAM,MAAM,MAAM;AAE1C,YAAQ,cAAc,IAAI;AAC1B,YAAQ,cAAc,IAAI;AAC1B,YAAQ,gBAAgB,MAAM;AAC9B,YAAQ,gBAAgB,MAAM;AAC9B,YAAQ,aAAa,GAAG;AACxB,YAAQ,gBAAgB,MAAM;AAC9B,YAAQ,uBAAuB,kBAAkB;AAEjD;AAAA,MACE,MAAM,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,QAAQ,MAAM,SAAS;AAAA,MAC5D,CAAC,CAAC,SAAS,SAAS,WAAW,YAAY,MAAM;AAC/C,YAAI,OAAO,WAAW,aAAa;AACjC,iBAAO,kBAAkB;AACzB,iBAAO,kBAAkB;AACzB,iBAAO,oBAAoB;AAC3B,iBAAO,wBAAwB;AAAA,QACjC;AAAA,MACF;AAAA,MACA,EAAE,WAAW,KAAA;AAAA,IAAK;AAGpB;AAAA,MACE;AAAA,MACA,CAAC,cAAc;AACb,eAAO,2BAA2B;AAAA,MACpC;AAAA,MACA,EAAE,WAAW,KAAA;AAAA,IAAK;AAGpB,gBAAY,YAAY;AACtB,YAAM,YAAY;AAAA,QAChB,SAAS,MAAM,OAAO,yBAAqB;AAAA,QAC3C,SAAS,MAAM,OAAO,yBAAqB;AAAA,QAC3C,SAAS,MAAM,OAAO,yBAAqB;AAAA,MAAA;AAG7C,YAAM,aAAa,UAAU,MAAM,MAAgC,KAAK,UAAU,OAAO;AACzF,YAAM,CAAC,KAAK,GAAG,IAAI,MAAM;AAAA,QACvB,WAAA;AAAA,MAAW;AAIb,UAAI,IAAK;AAET,qBAAe,QAAQ,IAAI;AAAA,IAC7B,CAAC;AAED,WAAO,MAAM,EAAEA,gBAAiB,EAAE,cAAc,mBAAmB,MAAA,GAAS,MAAM,OAAO;AAAA,EAC3F;AACF,CAAC;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/components/config-provider/index.ts"],"sourcesContent":["import { to } from 'qidian-shared'\nimport { ConfigProvider as TConfigProvider } from 'tdesign-vue-next'\nimport type { PropType } from 'vue'\nimport { computed, defineComponent, h, provide, ref, watch, watchEffect } from 'vue'\n\nimport {\n DEFAULT_LOCALE,\n PROVIDE_AVATAR,\n PROVIDE_DICT,\n PROVIDE_GLOBAL_CONFIG,\n PROVIDE_LOCALE,\n PROVIDE_OFFICE,\n PROVIDE_ORG,\n PROVIDE_UPLOAD,\n PROVIDE_USER\n} from './config'\nimport type { QdConfigProviderProps } from './types'\n\nexport const QdConfigProvider = defineComponent({\n name: 'QdConfigProvider',\n props: {\n locale: {\n type: String as PropType<QdConfigProviderProps['locale']>,\n default: DEFAULT_LOCALE\n },\n\n user: {\n type: Object as PropType<QdConfigProviderProps['user']>,\n default: undefined\n },\n\n dict: {\n type: Object as PropType<QdConfigProviderProps['dict']>,\n default: undefined\n },\n\n upload: {\n type: Object as PropType<QdConfigProviderProps['upload']>,\n default: undefined\n },\n\n avatar: {\n type: Object as PropType<QdConfigProviderProps['avatar']>,\n default: undefined\n },\n\n org: {\n type: Object as PropType<QdConfigProviderProps['org']>,\n default: undefined\n },\n\n office: {\n type: Object as PropType<QdConfigProviderProps['office']>,\n default: undefined\n },\n\n agentChat: {\n type: Object as PropType<QdConfigProviderProps['agentChat']>,\n default: undefined\n },\n\n globalConfig: {\n type: Object as PropType<QdConfigProviderProps['globalConfig']>,\n default: undefined\n }\n },\n setup(props: QdConfigProviderProps, { slots }) {\n const qdGlobalConfig = ref()\n const mergedGlobalConfig = computed(() => {\n return {\n ...qdGlobalConfig.value,\n ...props.globalConfig\n }\n })\n\n const user = computed(() => props.user)\n const dict = computed(() => props.dict)\n const upload = computed(() => props.upload)\n const avatar = computed(() => props.avatar)\n const org = computed(() => props.org)\n const office = computed(() => props.office)\n const locale = computed(() => props.locale ?? DEFAULT_LOCALE)\n\n provide(PROVIDE_USER, user)\n provide(PROVIDE_DICT, dict)\n provide(PROVIDE_UPLOAD, upload)\n provide(PROVIDE_AVATAR, avatar)\n provide(PROVIDE_ORG, org)\n provide(PROVIDE_OFFICE, office)\n provide(PROVIDE_GLOBAL_CONFIG, mergedGlobalConfig)\n provide(PROVIDE_LOCALE, locale)\n\n watch(\n () => [props.user, props.dict, props.avatar, props.agentChat] as const,\n ([newUser, newDict, newAvatar, newAgentChat]) => {\n if (typeof window !== 'undefined') {\n window.__QIDIAN_USER__ = newUser\n window.__QIDIAN_DICT__ = newDict\n window.__QIDIAN_AVATAR__ = newAvatar\n window.__QIDIAN_AGENT_CHAT__ = newAgentChat\n }\n },\n { immediate: true }\n )\n\n watch(\n mergedGlobalConfig,\n (newConfig) => {\n window.__QIDIAN_GLOBAL_CONFIG__ = newConfig\n },\n { immediate: true }\n )\n\n watchEffect(async () => {\n const localeMap = {\n 'zh-CN': () => import('../../locales/zh-CN'),\n 'zh-TW': () => import('../../locales/zh-TW'),\n 'en-US': () => import('../../locales/en-US')\n }\n\n const loadLocale = localeMap[props.locale as keyof typeof localeMap] || localeMap['zh-CN']\n const [err, res] = await to(\n loadLocale() as unknown as Promise<{\n default: NonNullable<QdConfigProviderProps['globalConfig']>\n }>\n )\n if (err) return\n\n qdGlobalConfig.value = res.default\n })\n\n return () => h(TConfigProvider, { globalConfig: mergedGlobalConfig.value }, slots.default)\n }\n})\n\nexport type { QdConfigProviderProps } from './types'\nexport { useConfig as useQdConfig } from './useConfig'\n"],"names":["TConfigProvider"],"mappings":";;;;AAkBO,MAAM,mBAAmB,gBAAgB;AAAA,EAC9C,MAAM;AAAA,EACN,OAAO;AAAA,IACL,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,IAGX,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,IAGX,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,IAGX,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,IAGX,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,IAGX,KAAK;AAAA,MACH,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,IAGX,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,IAGX,WAAW;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,IAGX,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,EACX;AAAA,EAEF,MAAM,OAA8B,EAAE,SAAS;AAC7C,UAAM,iBAAiB,IAAA;AACvB,UAAM,qBAAqB,SAAS,MAAM;AACxC,aAAO;AAAA,QACL,GAAG,eAAe;AAAA,QAClB,GAAG,MAAM;AAAA,MAAA;AAAA,IAEb,CAAC;AAED,UAAM,OAAO,SAAS,MAAM,MAAM,IAAI;AACtC,UAAM,OAAO,SAAS,MAAM,MAAM,IAAI;AACtC,UAAM,SAAS,SAAS,MAAM,MAAM,MAAM;AAC1C,UAAM,SAAS,SAAS,MAAM,MAAM,MAAM;AAC1C,UAAM,MAAM,SAAS,MAAM,MAAM,GAAG;AACpC,UAAM,SAAS,SAAS,MAAM,MAAM,MAAM;AAC1C,UAAM,SAAS,SAAS,MAAM,MAAM,UAAU,cAAc;AAE5D,YAAQ,cAAc,IAAI;AAC1B,YAAQ,cAAc,IAAI;AAC1B,YAAQ,gBAAgB,MAAM;AAC9B,YAAQ,gBAAgB,MAAM;AAC9B,YAAQ,aAAa,GAAG;AACxB,YAAQ,gBAAgB,MAAM;AAC9B,YAAQ,uBAAuB,kBAAkB;AACjD,YAAQ,gBAAgB,MAAM;AAE9B;AAAA,MACE,MAAM,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,QAAQ,MAAM,SAAS;AAAA,MAC5D,CAAC,CAAC,SAAS,SAAS,WAAW,YAAY,MAAM;AAC/C,YAAI,OAAO,WAAW,aAAa;AACjC,iBAAO,kBAAkB;AACzB,iBAAO,kBAAkB;AACzB,iBAAO,oBAAoB;AAC3B,iBAAO,wBAAwB;AAAA,QACjC;AAAA,MACF;AAAA,MACA,EAAE,WAAW,KAAA;AAAA,IAAK;AAGpB;AAAA,MACE;AAAA,MACA,CAAC,cAAc;AACb,eAAO,2BAA2B;AAAA,MACpC;AAAA,MACA,EAAE,WAAW,KAAA;AAAA,IAAK;AAGpB,gBAAY,YAAY;AACtB,YAAM,YAAY;AAAA,QAChB,SAAS,MAAM,OAAO,yBAAqB;AAAA,QAC3C,SAAS,MAAM,OAAO,yBAAqB;AAAA,QAC3C,SAAS,MAAM,OAAO,yBAAqB;AAAA,MAAA;AAG7C,YAAM,aAAa,UAAU,MAAM,MAAgC,KAAK,UAAU,OAAO;AACzF,YAAM,CAAC,KAAK,GAAG,IAAI,MAAM;AAAA,QACvB,WAAA;AAAA,MAAW;AAIb,UAAI,IAAK;AAET,qBAAe,QAAQ,IAAI;AAAA,IAC7B,CAAC;AAED,WAAO,MAAM,EAAEA,gBAAiB,EAAE,cAAc,mBAAmB,MAAA,GAAS,MAAM,OAAO;AAAA,EAC3F;AACF,CAAC;"}
@@ -1,3 +1,4 @@
1
+ import ZH_TW from "../../node_modules/.pnpm/@vavt_cm-extension@1.11.2/node_modules/@vavt/cm-extension/dist/locale/zh-TW.mjs";
1
2
  import Cropper from "cropperjs";
2
3
  import * as echarts from "echarts";
3
4
  import highlight from "highlight.js";
@@ -32,7 +33,14 @@ const editorExtensions = {
32
33
  }
33
34
  };
34
35
  function setupMdEditorConfig() {
35
- config({ editorExtensions });
36
+ config({
37
+ editorExtensions,
38
+ editorConfig: {
39
+ languageUserDefined: {
40
+ "zh-TW": ZH_TW
41
+ }
42
+ }
43
+ });
36
44
  }
37
45
  export {
38
46
  setupMdEditorConfig
@@ -1 +1 @@
1
- {"version":3,"file":"config.mjs","sources":["../../../src/components/md-editor/config.ts"],"sourcesContent":["import Cropper from 'cropperjs'\nimport * as echarts from 'echarts'\nimport highlight from 'highlight.js'\nimport katex from 'katex'\nimport { config } from 'md-editor-v3'\nimport mermaid from 'mermaid'\nimport * as prettier from 'prettier'\nimport parserMarkdown from 'prettier/plugins/markdown'\nimport screenfull from 'screenfull'\n\nconst editorExtensions = {\n prettier: {\n prettierInstance: prettier,\n parserMarkdownInstance: parserMarkdown\n },\n highlight: {\n instance: highlight\n },\n screenfull: {\n instance: screenfull\n },\n katex: {\n instance: katex\n },\n cropper: {\n instance: Cropper\n },\n mermaid: {\n instance: mermaid\n },\n echarts: {\n instance: echarts\n }\n}\n\nexport function setupMdEditorConfig() {\n config({ editorExtensions })\n}\n"],"names":[],"mappings":";;;;;;;;;AAUA,MAAM,mBAAmB;AAAA,EACvB,UAAU;AAAA,IACR,kBAAkB;AAAA,IAClB,wBAAwB;AAAA,EAAA;AAAA,EAE1B,WAAW;AAAA,IACT,UAAU;AAAA,EAAA;AAAA,EAEZ,YAAY;AAAA,IACV,UAAU;AAAA,EAAA;AAAA,EAEZ,OAAO;AAAA,IACL,UAAU;AAAA,EAAA;AAAA,EAEZ,SAAS;AAAA,IACP,UAAU;AAAA,EAAA;AAAA,EAEZ,SAAS;AAAA,IACP,UAAU;AAAA,EAAA;AAAA,EAEZ,SAAS;AAAA,IACP,UAAU;AAAA,EAAA;AAEd;AAEO,SAAS,sBAAsB;AACpC,SAAO,EAAE,kBAAkB;AAC7B;"}
1
+ {"version":3,"file":"config.mjs","sources":["../../../src/components/md-editor/config.ts"],"sourcesContent":["import ZH_TW from '@vavt/cm-extension/dist/locale/zh-TW'\nimport Cropper from 'cropperjs'\nimport * as echarts from 'echarts'\nimport highlight from 'highlight.js'\nimport katex from 'katex'\nimport { config } from 'md-editor-v3'\nimport mermaid from 'mermaid'\nimport * as prettier from 'prettier'\nimport parserMarkdown from 'prettier/plugins/markdown'\nimport screenfull from 'screenfull'\n\nconst editorExtensions = {\n prettier: {\n prettierInstance: prettier,\n parserMarkdownInstance: parserMarkdown\n },\n highlight: {\n instance: highlight\n },\n screenfull: {\n instance: screenfull\n },\n katex: {\n instance: katex\n },\n cropper: {\n instance: Cropper\n },\n mermaid: {\n instance: mermaid\n },\n echarts: {\n instance: echarts\n }\n}\n\nexport function setupMdEditorConfig() {\n config({\n editorExtensions,\n editorConfig: {\n languageUserDefined: {\n 'zh-TW': ZH_TW\n }\n }\n })\n}\n"],"names":[],"mappings":";;;;;;;;;;AAWA,MAAM,mBAAmB;AAAA,EACvB,UAAU;AAAA,IACR,kBAAkB;AAAA,IAClB,wBAAwB;AAAA,EAAA;AAAA,EAE1B,WAAW;AAAA,IACT,UAAU;AAAA,EAAA;AAAA,EAEZ,YAAY;AAAA,IACV,UAAU;AAAA,EAAA;AAAA,EAEZ,OAAO;AAAA,IACL,UAAU;AAAA,EAAA;AAAA,EAEZ,SAAS;AAAA,IACP,UAAU;AAAA,EAAA;AAAA,EAEZ,SAAS;AAAA,IACP,UAAU;AAAA,EAAA;AAAA,EAEZ,SAAS;AAAA,IACP,UAAU;AAAA,EAAA;AAEd;AAEO,SAAS,sBAAsB;AACpC,SAAO;AAAA,IACL;AAAA,IACA,cAAc;AAAA,MACZ,qBAAqB;AAAA,QACnB,SAAS;AAAA,MAAA;AAAA,IACX;AAAA,EACF,CACD;AACH;"}
@@ -3,7 +3,609 @@ declare var __VLS_8: string | number, __VLS_9: any;
3
3
  type __VLS_Slots = {} & {
4
4
  [K in NonNullable<typeof __VLS_8>]?: (props: typeof __VLS_9) => any;
5
5
  };
6
- declare const __VLS_component: import("vue").DefineComponent<QdMdEditorProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
6
+ declare const __VLS_component: import("vue").DefineComponent<QdMdEditorProps, {
7
+ $: import("vue").ComponentInternalInstance;
8
+ $data: {};
9
+ $props: Partial<{
10
+ style: string | import("vue").CSSProperties;
11
+ onDrop: (event: DragEvent) => void;
12
+ onFocus: (event: FocusEvent) => void;
13
+ onBlur: (event: FocusEvent) => void;
14
+ onChange: import("md-editor-v3").ChangeEvent;
15
+ onInput: (event: Event) => void;
16
+ onError: import("md-editor-v3").ErrorEvent;
17
+ preview: boolean;
18
+ class: string;
19
+ id: string;
20
+ pageFullscreen: boolean;
21
+ htmlPreview: boolean;
22
+ onSave: import("md-editor-v3").SaveEvent;
23
+ onUploadImg: import("md-editor-v3").UploadImgEvent;
24
+ onHtmlChanged: import("md-editor-v3").HtmlChangedEvent;
25
+ onGetCatalog: import("md-editor-v3").GetCatalogEvent;
26
+ oninputBoxWidthChange: (width: string) => void;
27
+ onRemount: () => void;
28
+ language: string;
29
+ toolbars: import("md-editor-v3").ToolbarNames[];
30
+ floatingToolbars: import("md-editor-v3").ToolbarNames[];
31
+ toolbarsExclude: import("md-editor-v3").ToolbarNames[];
32
+ noPrettier: boolean;
33
+ tabWidth: number;
34
+ tableShape: number[];
35
+ placeholder: string;
36
+ defToolbars: string | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
37
+ [key: string]: any;
38
+ }>;
39
+ footers: import("md-editor-v3").Footers[];
40
+ scrollAuto: boolean;
41
+ defFooters: string | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
42
+ [key: string]: any;
43
+ }>;
44
+ noUploadImg: boolean;
45
+ autoFocus: boolean;
46
+ disabled: boolean;
47
+ readOnly: boolean;
48
+ maxLength: number;
49
+ autoDetectCode: boolean;
50
+ completions: import("@codemirror/autocomplete").CompletionSource[];
51
+ showToolbarName: boolean;
52
+ inputBoxWidth: string;
53
+ transformImgUrl: (t: string) => string | Promise<string>;
54
+ catalogLayout: "flat" | "fixed";
55
+ catalogMaxDepth: number;
56
+ modelValue: string;
57
+ theme: import("md-editor-v3").Themes;
58
+ editorId: string;
59
+ showCodeRowNumber: boolean;
60
+ previewTheme: string;
61
+ mdHeadingId: import("md-editor-v3").MdHeadingId;
62
+ sanitize: (html: string) => string;
63
+ noMermaid: boolean;
64
+ noKatex: boolean;
65
+ codeTheme: string;
66
+ formatCopiedText: (text: string) => string;
67
+ codeStyleReverse: boolean;
68
+ codeStyleReverseList: string[];
69
+ noHighlight: boolean;
70
+ noImgZoomIn: boolean;
71
+ customIcon: import("md-editor-v3").CustomIcon;
72
+ sanitizeMermaid: (h: string) => Promise<string>;
73
+ codeFoldable: boolean;
74
+ autoFoldThreshold: number;
75
+ noEcharts: boolean;
76
+ previewComponent: import("vue").Component;
77
+ }> & Omit<{
78
+ readonly class: string;
79
+ readonly theme: import("md-editor-v3").Themes;
80
+ readonly style: string | import("vue").CSSProperties;
81
+ readonly placeholder: string;
82
+ readonly disabled: boolean;
83
+ readonly modelValue: string;
84
+ readonly language: string;
85
+ readonly pageFullscreen: boolean;
86
+ readonly preview: boolean;
87
+ readonly htmlPreview: boolean;
88
+ readonly toolbars: import("md-editor-v3").ToolbarNames[];
89
+ readonly floatingToolbars: import("md-editor-v3").ToolbarNames[];
90
+ readonly toolbarsExclude: import("md-editor-v3").ToolbarNames[];
91
+ readonly tabWidth: number;
92
+ readonly tableShape: number[];
93
+ readonly footers: import("md-editor-v3").Footers[];
94
+ readonly scrollAuto: boolean;
95
+ readonly autoFocus: boolean;
96
+ readonly autoDetectCode: boolean;
97
+ readonly showToolbarName: boolean;
98
+ readonly inputBoxWidth: string;
99
+ readonly transformImgUrl: (t: string) => string | Promise<string>;
100
+ readonly catalogLayout: "flat" | "fixed";
101
+ readonly showCodeRowNumber: boolean;
102
+ readonly mdHeadingId: import("md-editor-v3").MdHeadingId;
103
+ readonly sanitize: (html: string) => string;
104
+ readonly formatCopiedText: (text: string) => string;
105
+ readonly codeStyleReverse: boolean;
106
+ readonly codeStyleReverseList: string[];
107
+ readonly customIcon: import("md-editor-v3").CustomIcon;
108
+ readonly sanitizeMermaid: (h: string) => Promise<string>;
109
+ readonly codeFoldable: boolean;
110
+ readonly autoFoldThreshold: number;
111
+ readonly noPrettier: boolean;
112
+ readonly noUploadImg: boolean;
113
+ readonly readOnly: boolean;
114
+ readonly previewTheme: string;
115
+ readonly noMermaid: boolean;
116
+ readonly noKatex: boolean;
117
+ readonly codeTheme: string;
118
+ readonly noHighlight: boolean;
119
+ readonly noImgZoomIn: boolean;
120
+ readonly noEcharts: boolean;
121
+ readonly onBlur?: ((event: FocusEvent) => void) | undefined;
122
+ readonly onChange?: import("md-editor-v3").ChangeEvent | undefined;
123
+ readonly onFocus?: ((event: FocusEvent) => void) | undefined;
124
+ readonly onDrop?: ((event: DragEvent) => void) | undefined;
125
+ readonly onInput?: ((event: Event) => void) | undefined;
126
+ readonly onError?: import("md-editor-v3").ErrorEvent | undefined;
127
+ readonly id?: string | undefined;
128
+ readonly onSave?: import("md-editor-v3").SaveEvent | undefined;
129
+ readonly onUploadImg?: import("md-editor-v3").UploadImgEvent | undefined;
130
+ readonly defToolbars?: string | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
131
+ [key: string]: any;
132
+ }> | undefined;
133
+ readonly defFooters?: string | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
134
+ [key: string]: any;
135
+ }> | undefined;
136
+ readonly completions?: import("@codemirror/autocomplete").CompletionSource[] | undefined;
137
+ readonly oninputBoxWidthChange?: ((width: string) => void) | undefined;
138
+ readonly catalogMaxDepth?: number | undefined;
139
+ readonly onHtmlChanged?: import("md-editor-v3").HtmlChangedEvent | undefined;
140
+ readonly onGetCatalog?: import("md-editor-v3").GetCatalogEvent | undefined;
141
+ readonly onRemount?: (() => void) | undefined;
142
+ readonly previewComponent?: import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions, {}, any> | undefined;
143
+ readonly maxLength?: number | undefined;
144
+ readonly editorId?: string | undefined;
145
+ readonly onOnChange?: ((...args: any[]) => any) | undefined | undefined;
146
+ readonly onOnDrop?: ((...args: any[]) => any) | undefined | undefined;
147
+ readonly onOnFocus?: ((...args: any[]) => any) | undefined | undefined;
148
+ readonly onOnBlur?: ((...args: any[]) => any) | undefined | undefined;
149
+ readonly onOnInput?: ((...args: any[]) => any) | undefined | undefined;
150
+ readonly onOnError?: ((...args: any[]) => any) | undefined | undefined;
151
+ readonly onOnSave?: ((...args: any[]) => any) | undefined | undefined;
152
+ readonly onOnUploadImg?: ((...args: any[]) => any) | undefined | undefined;
153
+ readonly onOnHtmlChanged?: ((...args: any[]) => any) | undefined | undefined;
154
+ readonly onOnGetCatalog?: ((...args: any[]) => any) | undefined | undefined;
155
+ readonly "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined | undefined;
156
+ readonly onOninputBoxWidthChange?: ((...args: any[]) => any) | undefined | undefined;
157
+ readonly onOnRemount?: ((...args: any[]) => any) | undefined | undefined;
158
+ } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "class" | "theme" | "style" | "placeholder" | "disabled" | "modelValue" | "onBlur" | "onChange" | "onFocus" | "onDrop" | "onInput" | "onError" | "id" | "language" | "pageFullscreen" | "preview" | "htmlPreview" | "onSave" | "onUploadImg" | "toolbars" | "floatingToolbars" | "toolbarsExclude" | "tabWidth" | "tableShape" | "defToolbars" | "footers" | "scrollAuto" | "defFooters" | "autoFocus" | "autoDetectCode" | "completions" | "showToolbarName" | "inputBoxWidth" | "oninputBoxWidthChange" | "transformImgUrl" | "catalogLayout" | "catalogMaxDepth" | "onHtmlChanged" | "onGetCatalog" | "showCodeRowNumber" | "mdHeadingId" | "sanitize" | "formatCopiedText" | "codeStyleReverse" | "codeStyleReverseList" | "customIcon" | "sanitizeMermaid" | "codeFoldable" | "autoFoldThreshold" | "onRemount" | "previewComponent" | "noPrettier" | "noUploadImg" | "readOnly" | "maxLength" | "editorId" | "previewTheme" | "noMermaid" | "noKatex" | "codeTheme" | "noHighlight" | "noImgZoomIn" | "noEcharts">;
159
+ $attrs: {
160
+ [x: string]: unknown;
161
+ };
162
+ $refs: {
163
+ [x: string]: unknown;
164
+ };
165
+ $slots: Readonly<{
166
+ [name: string]: import("vue").Slot<any> | undefined;
167
+ }>;
168
+ $root: import("vue").ComponentPublicInstance | null;
169
+ $parent: import("vue").ComponentPublicInstance | null;
170
+ $host: Element | null;
171
+ $emit: (event: "onBlur" | "onChange" | "onFocus" | "onDrop" | "onInput" | "onError" | "update:modelValue" | "onSave" | "onUploadImg" | "oninputBoxWidthChange" | "onHtmlChanged" | "onGetCatalog" | "onRemount", ...args: any[]) => void;
172
+ $el: any;
173
+ $options: import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{
174
+ onSave: {
175
+ type: import("vue").PropType<import("md-editor-v3").SaveEvent>;
176
+ default: undefined;
177
+ };
178
+ onUploadImg: {
179
+ type: import("vue").PropType<import("md-editor-v3").UploadImgEvent>;
180
+ default: undefined;
181
+ };
182
+ pageFullscreen: {
183
+ type: import("vue").PropType<boolean>;
184
+ default: boolean;
185
+ };
186
+ preview: {
187
+ type: import("vue").PropType<boolean>;
188
+ default: boolean;
189
+ };
190
+ htmlPreview: {
191
+ type: import("vue").PropType<boolean>;
192
+ default: boolean;
193
+ };
194
+ toolbars: {
195
+ type: import("vue").PropType<Array<import("md-editor-v3").ToolbarNames>>;
196
+ default: string[];
197
+ };
198
+ floatingToolbars: {
199
+ type: import("vue").PropType<Array<import("md-editor-v3").ToolbarNames>>;
200
+ default: never[];
201
+ };
202
+ toolbarsExclude: {
203
+ type: import("vue").PropType<Array<import("md-editor-v3").ToolbarNames>>;
204
+ default: never[];
205
+ };
206
+ noPrettier: {
207
+ type: import("vue").PropType<boolean>;
208
+ default: boolean;
209
+ };
210
+ tabWidth: {
211
+ type: import("vue").PropType<number>;
212
+ default: number;
213
+ };
214
+ tableShape: {
215
+ type: import("vue").PropType<Array<number>>;
216
+ default: number[];
217
+ };
218
+ placeholder: {
219
+ type: import("vue").PropType<string>;
220
+ default: string;
221
+ };
222
+ defToolbars: {
223
+ type: import("vue").PropType<string | import("vue").VNode>;
224
+ default: undefined;
225
+ };
226
+ onError: {
227
+ type: import("vue").PropType<import("md-editor-v3").ErrorEvent>;
228
+ default: undefined;
229
+ };
230
+ footers: {
231
+ type: import("vue").PropType<Array<import("md-editor-v3").Footers>>;
232
+ default: import("md-editor-v3").Footers[];
233
+ };
234
+ scrollAuto: {
235
+ type: import("vue").PropType<boolean>;
236
+ default: boolean;
237
+ };
238
+ defFooters: {
239
+ type: import("vue").PropType<string | import("vue").VNode>;
240
+ default: undefined;
241
+ };
242
+ noUploadImg: {
243
+ type: import("vue").PropType<boolean>;
244
+ default: boolean;
245
+ };
246
+ autoFocus: {
247
+ type: import("vue").PropType<boolean>;
248
+ default: boolean;
249
+ };
250
+ disabled: {
251
+ type: import("vue").PropType<boolean>;
252
+ default: boolean;
253
+ };
254
+ readOnly: {
255
+ type: import("vue").PropType<boolean>;
256
+ default: boolean;
257
+ };
258
+ maxLength: {
259
+ type: import("vue").PropType<number>;
260
+ default: undefined;
261
+ };
262
+ autoDetectCode: {
263
+ type: import("vue").PropType<boolean>;
264
+ default: boolean;
265
+ };
266
+ onBlur: {
267
+ type: import("vue").PropType<(event: FocusEvent) => void>;
268
+ default: undefined;
269
+ };
270
+ onFocus: {
271
+ type: import("vue").PropType<(event: FocusEvent) => void>;
272
+ default: undefined;
273
+ };
274
+ completions: {
275
+ type: import("vue").PropType<Array<import("@codemirror/autocomplete").CompletionSource>>;
276
+ default: undefined;
277
+ };
278
+ showToolbarName: {
279
+ type: import("vue").PropType<boolean>;
280
+ default: boolean;
281
+ };
282
+ onInput: {
283
+ type: import("vue").PropType<(event: Event) => void>;
284
+ default: undefined;
285
+ };
286
+ onDrop: {
287
+ type: import("vue").PropType<(event: DragEvent) => void>;
288
+ default: undefined;
289
+ };
290
+ inputBoxWidth: {
291
+ type: import("vue").PropType<string>;
292
+ default: string;
293
+ };
294
+ oninputBoxWidthChange: {
295
+ type: import("vue").PropType<(width: string) => void>;
296
+ default: undefined;
297
+ };
298
+ transformImgUrl: {
299
+ type: import("vue").PropType<(t: string) => string | Promise<string>>;
300
+ default: (t: string) => string;
301
+ };
302
+ catalogLayout: {
303
+ type: import("vue").PropType<"fixed" | "flat">;
304
+ default: string;
305
+ };
306
+ catalogMaxDepth: {
307
+ type: import("vue").PropType<number>;
308
+ default: undefined;
309
+ };
310
+ modelValue: {
311
+ type: import("vue").PropType<string>;
312
+ default: string;
313
+ };
314
+ onChange: {
315
+ type: import("vue").PropType<import("md-editor-v3").ChangeEvent>;
316
+ default: undefined;
317
+ };
318
+ theme: {
319
+ type: import("vue").PropType<import("md-editor-v3").Themes>;
320
+ default: string;
321
+ };
322
+ class: {
323
+ type: StringConstructor;
324
+ default: string;
325
+ };
326
+ language: {
327
+ type: import("vue").PropType<string>;
328
+ default: string;
329
+ };
330
+ onHtmlChanged: {
331
+ type: import("vue").PropType<import("md-editor-v3").HtmlChangedEvent>;
332
+ default: undefined;
333
+ };
334
+ onGetCatalog: {
335
+ type: import("vue").PropType<import("md-editor-v3").GetCatalogEvent>;
336
+ default: undefined;
337
+ };
338
+ editorId: {
339
+ type: import("vue").PropType<string>;
340
+ default: undefined;
341
+ };
342
+ id: {
343
+ type: import("vue").PropType<string>;
344
+ default: undefined;
345
+ };
346
+ showCodeRowNumber: {
347
+ type: import("vue").PropType<boolean>;
348
+ default: boolean;
349
+ };
350
+ previewTheme: {
351
+ type: import("vue").PropType<import("md-editor-v3").PreviewThemes>;
352
+ default: string;
353
+ };
354
+ style: {
355
+ type: import("vue").PropType<import("vue").CSSProperties | string>;
356
+ default: () => {};
357
+ };
358
+ mdHeadingId: {
359
+ type: import("vue").PropType<import("md-editor-v3").MdHeadingId>;
360
+ default: import("md-editor-v3").MdHeadingId;
361
+ };
362
+ sanitize: {
363
+ type: import("vue").PropType<(html: string) => string>;
364
+ default: (html: string) => string;
365
+ };
366
+ noMermaid: {
367
+ type: import("vue").PropType<boolean>;
368
+ default: boolean;
369
+ };
370
+ noKatex: {
371
+ type: import("vue").PropType<boolean>;
372
+ default: boolean;
373
+ };
374
+ codeTheme: {
375
+ type: import("vue").PropType<string>;
376
+ default: string;
377
+ };
378
+ formatCopiedText: {
379
+ type: import("vue").PropType<(text: string) => string>;
380
+ default: (text: string) => string;
381
+ };
382
+ codeStyleReverse: {
383
+ type: import("vue").PropType<boolean>;
384
+ default: boolean;
385
+ };
386
+ codeStyleReverseList: {
387
+ type: import("vue").PropType<Array<string>>;
388
+ default: string[];
389
+ };
390
+ noHighlight: {
391
+ type: import("vue").PropType<boolean>;
392
+ default: boolean;
393
+ };
394
+ noImgZoomIn: {
395
+ type: import("vue").PropType<boolean>;
396
+ default: boolean;
397
+ };
398
+ customIcon: {
399
+ type: import("vue").PropType<import("md-editor-v3").CustomIcon>;
400
+ default: {};
401
+ };
402
+ sanitizeMermaid: {
403
+ type: import("vue").PropType<(h: string) => Promise<string>>;
404
+ default: (h: string) => Promise<string>;
405
+ };
406
+ codeFoldable: {
407
+ type: import("vue").PropType<boolean>;
408
+ default: boolean;
409
+ };
410
+ autoFoldThreshold: {
411
+ type: import("vue").PropType<number>;
412
+ default: number;
413
+ };
414
+ onRemount: {
415
+ type: import("vue").PropType<() => void>;
416
+ default: undefined;
417
+ };
418
+ noEcharts: {
419
+ type: import("vue").PropType<boolean>;
420
+ default: boolean;
421
+ };
422
+ previewComponent: {
423
+ type: import("vue").PropType<import("vue").Component>;
424
+ default: undefined;
425
+ };
426
+ }>> & Readonly<{
427
+ onOnChange?: ((...args: any[]) => any) | undefined;
428
+ onOnDrop?: ((...args: any[]) => any) | undefined;
429
+ onOnFocus?: ((...args: any[]) => any) | undefined;
430
+ onOnBlur?: ((...args: any[]) => any) | undefined;
431
+ onOnInput?: ((...args: any[]) => any) | undefined;
432
+ onOnError?: ((...args: any[]) => any) | undefined;
433
+ onOnSave?: ((...args: any[]) => any) | undefined;
434
+ onOnUploadImg?: ((...args: any[]) => any) | undefined;
435
+ onOnHtmlChanged?: ((...args: any[]) => any) | undefined;
436
+ onOnGetCatalog?: ((...args: any[]) => any) | undefined;
437
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
438
+ onOninputBoxWidthChange?: ((...args: any[]) => any) | undefined;
439
+ onOnRemount?: ((...args: any[]) => any) | undefined;
440
+ }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("md-editor-v3").EditorEmits, string, {
441
+ style: string | import("vue").CSSProperties;
442
+ onDrop: (event: DragEvent) => void;
443
+ onFocus: (event: FocusEvent) => void;
444
+ onBlur: (event: FocusEvent) => void;
445
+ onChange: import("md-editor-v3").ChangeEvent;
446
+ onInput: (event: Event) => void;
447
+ onError: import("md-editor-v3").ErrorEvent;
448
+ preview: boolean;
449
+ class: string;
450
+ id: string;
451
+ pageFullscreen: boolean;
452
+ htmlPreview: boolean;
453
+ onSave: import("md-editor-v3").SaveEvent;
454
+ onUploadImg: import("md-editor-v3").UploadImgEvent;
455
+ onHtmlChanged: import("md-editor-v3").HtmlChangedEvent;
456
+ onGetCatalog: import("md-editor-v3").GetCatalogEvent;
457
+ oninputBoxWidthChange: (width: string) => void;
458
+ onRemount: () => void;
459
+ language: string;
460
+ toolbars: import("md-editor-v3").ToolbarNames[];
461
+ floatingToolbars: import("md-editor-v3").ToolbarNames[];
462
+ toolbarsExclude: import("md-editor-v3").ToolbarNames[];
463
+ noPrettier: boolean;
464
+ tabWidth: number;
465
+ tableShape: number[];
466
+ placeholder: string;
467
+ defToolbars: string | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
468
+ [key: string]: any;
469
+ }>;
470
+ footers: import("md-editor-v3").Footers[];
471
+ scrollAuto: boolean;
472
+ defFooters: string | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
473
+ [key: string]: any;
474
+ }>;
475
+ noUploadImg: boolean;
476
+ autoFocus: boolean;
477
+ disabled: boolean;
478
+ readOnly: boolean;
479
+ maxLength: number;
480
+ autoDetectCode: boolean;
481
+ completions: import("@codemirror/autocomplete").CompletionSource[];
482
+ showToolbarName: boolean;
483
+ inputBoxWidth: string;
484
+ transformImgUrl: (t: string) => string | Promise<string>;
485
+ catalogLayout: "flat" | "fixed";
486
+ catalogMaxDepth: number;
487
+ modelValue: string;
488
+ theme: import("md-editor-v3").Themes;
489
+ editorId: string;
490
+ showCodeRowNumber: boolean;
491
+ previewTheme: string;
492
+ mdHeadingId: import("md-editor-v3").MdHeadingId;
493
+ sanitize: (html: string) => string;
494
+ noMermaid: boolean;
495
+ noKatex: boolean;
496
+ codeTheme: string;
497
+ formatCopiedText: (text: string) => string;
498
+ codeStyleReverse: boolean;
499
+ codeStyleReverseList: string[];
500
+ noHighlight: boolean;
501
+ noImgZoomIn: boolean;
502
+ customIcon: import("md-editor-v3").CustomIcon;
503
+ sanitizeMermaid: (h: string) => Promise<string>;
504
+ codeFoldable: boolean;
505
+ autoFoldThreshold: number;
506
+ noEcharts: boolean;
507
+ previewComponent: import("vue").Component;
508
+ }, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & {
509
+ beforeCreate?: (() => void) | (() => void)[];
510
+ created?: (() => void) | (() => void)[];
511
+ beforeMount?: (() => void) | (() => void)[];
512
+ mounted?: (() => void) | (() => void)[];
513
+ beforeUpdate?: (() => void) | (() => void)[];
514
+ updated?: (() => void) | (() => void)[];
515
+ activated?: (() => void) | (() => void)[];
516
+ deactivated?: (() => void) | (() => void)[];
517
+ beforeDestroy?: (() => void) | (() => void)[];
518
+ beforeUnmount?: (() => void) | (() => void)[];
519
+ destroyed?: (() => void) | (() => void)[];
520
+ unmounted?: (() => void) | (() => void)[];
521
+ renderTracked?: ((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[];
522
+ renderTriggered?: ((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[];
523
+ errorCaptured?: ((err: unknown, instance: import("vue").ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import("vue").ComponentPublicInstance | null, info: string) => boolean | void)[];
524
+ };
525
+ $forceUpdate: () => void;
526
+ $nextTick: typeof import("vue").nextTick;
527
+ $watch: <T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import("@vue/reactivity").OnCleanup]) => any : (...args: [any, any, import("@vue/reactivity").OnCleanup]) => any, options?: import("vue").WatchOptions) => import("vue").WatchStopHandle;
528
+ style: string | import("vue").CSSProperties;
529
+ onDrop: (event: DragEvent) => void;
530
+ onFocus: (event: FocusEvent) => void;
531
+ onBlur: (event: FocusEvent) => void;
532
+ onChange: import("md-editor-v3").ChangeEvent;
533
+ onInput: (event: Event) => void;
534
+ onError: import("md-editor-v3").ErrorEvent;
535
+ preview: boolean;
536
+ class: string;
537
+ id: string;
538
+ pageFullscreen: boolean;
539
+ htmlPreview: boolean;
540
+ onSave: import("md-editor-v3").SaveEvent;
541
+ onUploadImg: import("md-editor-v3").UploadImgEvent;
542
+ onHtmlChanged: import("md-editor-v3").HtmlChangedEvent;
543
+ onGetCatalog: import("md-editor-v3").GetCatalogEvent;
544
+ oninputBoxWidthChange: (width: string) => void;
545
+ onRemount: () => void;
546
+ language: string;
547
+ toolbars: import("md-editor-v3").ToolbarNames[];
548
+ floatingToolbars: import("md-editor-v3").ToolbarNames[];
549
+ toolbarsExclude: import("md-editor-v3").ToolbarNames[];
550
+ noPrettier: boolean;
551
+ tabWidth: number;
552
+ tableShape: number[];
553
+ placeholder: string;
554
+ defToolbars: string | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
555
+ [key: string]: any;
556
+ }>;
557
+ footers: import("md-editor-v3").Footers[];
558
+ scrollAuto: boolean;
559
+ defFooters: string | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
560
+ [key: string]: any;
561
+ }>;
562
+ noUploadImg: boolean;
563
+ autoFocus: boolean;
564
+ disabled: boolean;
565
+ readOnly: boolean;
566
+ maxLength: number;
567
+ autoDetectCode: boolean;
568
+ completions: import("@codemirror/autocomplete").CompletionSource[];
569
+ showToolbarName: boolean;
570
+ inputBoxWidth: string;
571
+ transformImgUrl: (t: string) => string | Promise<string>;
572
+ catalogLayout: "flat" | "fixed";
573
+ catalogMaxDepth: number;
574
+ modelValue: string;
575
+ theme: import("md-editor-v3").Themes;
576
+ editorId: string;
577
+ showCodeRowNumber: boolean;
578
+ previewTheme: string;
579
+ mdHeadingId: import("md-editor-v3").MdHeadingId;
580
+ sanitize: (html: string) => string;
581
+ noMermaid: boolean;
582
+ noKatex: boolean;
583
+ codeTheme: string;
584
+ formatCopiedText: (text: string) => string;
585
+ codeStyleReverse: boolean;
586
+ codeStyleReverseList: string[];
587
+ noHighlight: boolean;
588
+ noImgZoomIn: boolean;
589
+ customIcon: import("md-editor-v3").CustomIcon;
590
+ sanitizeMermaid: (h: string) => Promise<string>;
591
+ codeFoldable: boolean;
592
+ autoFoldThreshold: number;
593
+ noEcharts: boolean;
594
+ previewComponent: import("vue").Component;
595
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
596
+ onOnChange?: ((...args: any[]) => any) | undefined;
597
+ onOnDrop?: ((...args: any[]) => any) | undefined;
598
+ onOnFocus?: ((...args: any[]) => any) | undefined;
599
+ onOnBlur?: ((...args: any[]) => any) | undefined;
600
+ onOnInput?: ((...args: any[]) => any) | undefined;
601
+ onOnError?: ((...args: any[]) => any) | undefined;
602
+ onOnSave?: ((...args: any[]) => any) | undefined;
603
+ onOnUploadImg?: ((...args: any[]) => any) | undefined;
604
+ onOnHtmlChanged?: ((...args: any[]) => any) | undefined;
605
+ onOnGetCatalog?: ((...args: any[]) => any) | undefined;
606
+ onOninputBoxWidthChange?: ((...args: any[]) => any) | undefined;
607
+ onOnRemount?: ((...args: any[]) => any) | undefined;
608
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
609
  "update:modelValue": (args_0: string | undefined) => any;
8
610
  }, string, import("vue").PublicProps, Readonly<QdMdEditorProps> & Readonly<{
9
611
  "onUpdate:modelValue"?: ((args_0: string | undefined) => any) | undefined;
@@ -4,7 +4,7 @@ import _sfc_main from "./index.vue2.mjs";
4
4
  /* empty css */
5
5
  /* empty css */
6
6
  import _export_sfc from "../../_virtual/_plugin-vue_export-helper.mjs";
7
- const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-9dcd6fc8"]]);
7
+ const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-94f380a5"]]);
8
8
  export {
9
9
  index as default
10
10
  };
@@ -1,13 +1,16 @@
1
1
  import './index2.css'
2
2
  import './index.css'
3
- import { defineComponent, mergeDefaults, computed, inject, ref, useTemplateRef, onMounted, createBlock, openBlock, unref, mergeProps, createSlots, renderList, withCtx, renderSlot, normalizeProps, guardReactiveProps } from "vue";
3
+ import { defineComponent, mergeDefaults, computed, inject, ref, useTemplateRef, createBlock, openBlock, unref, mergeProps, createSlots, renderList, withCtx, renderSlot, normalizeProps, guardReactiveProps } from "vue";
4
4
  import { useVModels } from "../../node_modules/.pnpm/@vueuse_core@14.2.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs";
5
5
  import { MdEditor } from "md-editor-v3";
6
+ import { createExposeProxy } from "qidian-shared";
6
7
  import { FormItemInjectionKey } from "tdesign-vue-next/es/form/constants";
7
8
  import { setupMdEditorConfig } from "./config.mjs";
8
9
  import { qdMdEditorToolbars, qdMdEditorProps } from "./props.mjs";
10
+ import { useLocale } from "../../hooks/useLocale.mjs";
9
11
  import { useReadonly } from "../../hooks/useReadonly.mjs";
10
12
  import { useDisabled } from "../../hooks/useDisabled.mjs";
13
+ import { useTheme } from "../../hooks/useTheme.mjs";
11
14
  const _sfc_main = /* @__PURE__ */ defineComponent({
12
15
  ...{
13
16
  name: "QdMdEditor"
@@ -52,7 +55,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
52
55
  onChange: { type: Function },
53
56
  theme: {},
54
57
  class: {},
55
- language: {},
58
+ locale: {},
56
59
  onHtmlChanged: { type: Function },
57
60
  onGetCatalog: { type: Function },
58
61
  id: {},
@@ -76,7 +79,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
76
79
  previewComponent: {}
77
80
  }, qdMdEditorProps),
78
81
  emits: ["update:modelValue"],
79
- setup(__props, { emit: __emit }) {
82
+ setup(__props, { expose: __expose, emit: __emit }) {
80
83
  setupMdEditorConfig();
81
84
  const props = __props;
82
85
  const emit = __emit;
@@ -89,6 +92,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
89
92
  const tdReadonly = useReadonly();
90
93
  const tdDisabled = useDisabled();
91
94
  const tdFormItem = inject(FormItemInjectionKey, void 0);
95
+ const tdTheme = useTheme();
96
+ const tdLocale = useLocale();
92
97
  const focus = ref(false);
93
98
  const reProps = computed(() => {
94
99
  const {
@@ -97,6 +102,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
97
102
  disabled,
98
103
  maxlength,
99
104
  toolbars,
105
+ theme,
100
106
  onFocus,
101
107
  onBlur,
102
108
  disabledEcharts,
@@ -106,6 +112,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
106
112
  disabledMermaid,
107
113
  disabledPrettier,
108
114
  disabledUploadImg,
115
+ locale,
109
116
  ...mdEditorOptions
110
117
  } = props;
111
118
  const reReadonly = readonly ?? tdReadonly.value;
@@ -127,6 +134,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
127
134
  }
128
135
  const reMdEditorOptions = {
129
136
  ...mdEditorOptions,
137
+ theme: tdTheme.value,
138
+ language: tdLocale.value,
130
139
  codeTheme: "github",
131
140
  previewTheme: "github",
132
141
  toolbars: reToolbars,
@@ -151,14 +160,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
151
160
  };
152
161
  });
153
162
  const editorRef = useTemplateRef("editor");
154
- const expose = {};
155
- onMounted(async () => {
156
- Object.assign(expose, editorRef.value);
157
- });
163
+ __expose(createExposeProxy({}, editorRef));
158
164
  return (_ctx, _cache) => {
159
165
  return openBlock(), createBlock(unref(MdEditor), mergeProps({
160
166
  ref: "editor",
161
- key: reProps.value.readonly ? "readonly" : "editable",
167
+ key: `${reProps.value.readonly ? "readonly" : "editable"}-${reProps.value.mdEditorOptions.preview}-${reProps.value.mdEditorOptions.htmlPreview}-${reProps.value.mdEditorOptions.pageFullscreen}`,
162
168
  modelValue: reModelValue.value,
163
169
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => reModelValue.value = $event),
164
170
  class: [
@@ -1 +1 @@
1
- {"version":3,"file":"index.vue2.mjs","sources":["../../../src/components/md-editor/index.vue"],"sourcesContent":["<template>\n <md-editor\n ref=\"editor\"\n :key=\"reProps.readonly ? 'readonly' : 'editable'\"\n v-model=\"reModelValue\"\n :class=\"[\n 'qd-md-editor',\n focus ? 'qd-md-editor--focus' : '',\n reProps.disabled ? 'qd-md-editor--disabled' : ''\n ]\"\n :read-only=\"reProps.readonly\"\n :disabled=\"reProps.disabled\"\n v-bind=\"reProps.mdEditorOptions\"\n >\n <template v-for=\"(_, name) in $slots\" #[name]=\"slotProps\">\n <slot :name=\"name\" v-bind=\"slotProps\" />\n </template>\n </md-editor>\n</template>\n\n<script setup lang=\"ts\">\n // TODO i18n @vavt/cm-extension\n // TODO theme 优先使用配置的\n // TODO 图片上传\n // TODO 文件上传\n import { useVModels } from '@vueuse/core'\n import type { EditorProps } from 'md-editor-v3'\n import { MdEditor } from 'md-editor-v3'\n import { FormItemInjectionKey } from 'tdesign-vue-next/es/form/constants'\n import { computed, inject, onMounted, ref, useTemplateRef } from 'vue'\n\n import { useDisabled, useReadonly } from '../../hooks'\n import { setupMdEditorConfig } from './config'\n import { qdMdEditorProps, qdMdEditorToolbars } from './props'\n import type { QdMdEditorProps } from './types'\n\n defineOptions({\n name: 'QdMdEditor'\n })\n\n setupMdEditorConfig()\n\n const props = withDefaults(defineProps<QdMdEditorProps>(), qdMdEditorProps)\n const emit = defineEmits<{\n 'update:modelValue': [QdMdEditorProps['modelValue']]\n }>()\n const { modelValue } = useVModels(props, emit, { passive: true })\n const reModelValue = computed({\n get: () => modelValue.value ?? '', // 防止 md-editor 报错\n set: (val) => (modelValue.value = val)\n })\n\n const tdReadonly = useReadonly()\n const tdDisabled = useDisabled()\n const tdFormItem = inject(FormItemInjectionKey, undefined)\n const focus = ref(false)\n\n const reProps = computed(() => {\n const {\n modelValue,\n readonly,\n disabled,\n maxlength,\n toolbars,\n onFocus,\n onBlur,\n disabledEcharts,\n disabledHighlight,\n disabledImgZoomIn,\n disabledKatex,\n disabledMermaid,\n disabledPrettier,\n disabledUploadImg,\n ...mdEditorOptions\n } = props\n\n const reReadonly = readonly ?? tdReadonly.value\n const reDisabled = disabled ?? tdDisabled.value\n\n const reOnFocus: typeof onFocus = (evt) => {\n focus.value = true\n onFocus?.(evt)\n }\n\n const reOnBlur: typeof onBlur = (evt) => {\n focus.value = false\n tdFormItem?.handleBlur()\n onBlur?.(evt)\n }\n\n const reToolbars =\n reReadonly || reDisabled\n ? ['=', 'pageFullscreen', 'preview']\n : (toolbars ?? [...qdMdEditorToolbars])\n\n const reDisabledUploadImg = disabledUploadImg ?? true\n if (reDisabledUploadImg) {\n const imgIdx = reToolbars.findIndex((item) => item === 'image')\n if (imgIdx > -1) reToolbars.splice(imgIdx, 1)\n }\n\n const reMdEditorOptions = {\n ...mdEditorOptions,\n codeTheme: 'github',\n previewTheme: 'github',\n toolbars: reToolbars,\n noEcharts: disabledEcharts,\n noHighlight: disabledHighlight,\n noImgZoomIn: disabledImgZoomIn,\n noKatex: disabledKatex,\n noMermaid: disabledMermaid,\n noPrettier: disabledPrettier,\n noUploadImg: reDisabledUploadImg,\n maxLength: maxlength,\n onFocus: reOnFocus,\n onBlur: reOnBlur\n } as unknown as Omit<EditorProps, 'modelValue' | 'readOnly' | 'disabled'>\n\n return {\n readonly: reReadonly,\n disabled: reDisabled,\n mdEditorOptions: reMdEditorOptions,\n models: {\n modelValue\n }\n }\n })\n\n const editorRef = useTemplateRef('editor')\n\n const expose = {}\n\n onMounted(async () => {\n Object.assign(expose, editorRef.value)\n })\n</script>\n\n<style lang=\"less\">\n @import 'md-editor-v3/lib/style.css';\n @import 'katex/dist/katex.min.css';\n @import 'cropperjs/dist/cropper.css';\n @import 'highlight.js/styles/github.css';\n</style>\n\n<style lang=\"less\" scoped>\n .qd-md-editor {\n --md-color: var(--td-text-color-primary);\n --md-border-color: var(--td-border-level-2-color);\n --md-bk-color: var(--td-bg-color-specialcomponent);\n --md-bk-hover-color: var(--td-bg-color-container-hover);\n height: 100%;\n border-radius: var(--td-radius-default);\n transition:\n border cubic-bezier(0.38, 0, 0.24, 1) 0.2s,\n box-shadow cubic-bezier(0.38, 0, 0.24, 1) 0.2s,\n background-color cubic-bezier(0.38, 0, 0.24, 1) 0.2s,\n -webkit-box-shadow cubic-bezier(0.38, 0, 0.24, 1) 0.2s;\n\n &:hover {\n border-color: var(--td-brand-color);\n }\n\n &.qd-md-editor--focus {\n border-color: var(--td-brand-color);\n box-shadow: 0 0 0 2px var(--td-brand-color-focus);\n }\n\n &.qd-md-editor--disabled {\n color: var(--td-text-color-disabled);\n background-color: var(--td-bg-color-component-disabled);\n cursor: not-allowed;\n\n :deep(.cm-editor) {\n background-color: transparent;\n }\n\n &:hover {\n border-color: var(--td-border-level-2-color);\n }\n }\n\n :deep(.md-editor) {\n &-preview {\n padding: var(--td-comp-paddingLR-s);\n }\n }\n\n :deep(.cm-editor) {\n font: var(--td-font-body-medium);\n }\n\n :deep(.cm-scroller) {\n line-height: inherit !important;\n }\n\n :deep(.cm-content) {\n margin: 0 !important;\n padding: var(--td-comp-paddingLR-s);\n }\n }\n\n .t-is-error .qd-md-editor {\n border-color: var(--td-error-color);\n\n &--focus {\n box-shadow: 0 0 0 2px var(--td-error-color-focus);\n }\n }\n</style>\n"],"names":["modelValue","_openBlock","_createBlock","_unref","_mergeProps","_createSlots","$slots","_withCtx","_renderSlot","_normalizeProps","_guardReactiveProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCE,wBAAA;AAEA,UAAM,QAAQ;AACd,UAAM,OAAO;AAGb,UAAM,EAAE,eAAe,WAAW,OAAO,MAAM,EAAE,SAAS,MAAM;AAChE,UAAM,eAAe,SAAS;AAAA,MAC5B,KAAK,MAAM,WAAW,SAAS;AAAA;AAAA,MAC/B,KAAK,CAAC,QAAS,WAAW,QAAQ;AAAA,IAAA,CACnC;AAED,UAAM,aAAa,YAAA;AACnB,UAAM,aAAa,YAAA;AACnB,UAAM,aAAa,OAAO,sBAAsB,MAAS;AACzD,UAAM,QAAQ,IAAI,KAAK;AAEvB,UAAM,UAAU,SAAS,MAAM;AAC7B,YAAM;AAAA,QACJ,YAAAA;AAAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,GAAG;AAAA,MAAA,IACD;AAEJ,YAAM,aAAa,YAAY,WAAW;AAC1C,YAAM,aAAa,YAAY,WAAW;AAE1C,YAAM,YAA4B,CAAC,QAAQ;AACzC,cAAM,QAAQ;AACd,kBAAU,GAAG;AAAA,MACf;AAEA,YAAM,WAA0B,CAAC,QAAQ;AACvC,cAAM,QAAQ;AACd,oBAAY,WAAA;AACZ,iBAAS,GAAG;AAAA,MACd;AAEA,YAAM,aACJ,cAAc,aACV,CAAC,KAAK,kBAAkB,SAAS,IAChC,YAAY,CAAC,GAAG,kBAAkB;AAEzC,YAAM,sBAAsB,qBAAqB;AACjD,UAAI,qBAAqB;AACvB,cAAM,SAAS,WAAW,UAAU,CAAC,SAAS,SAAS,OAAO;AAC9D,YAAI,SAAS,GAAI,YAAW,OAAO,QAAQ,CAAC;AAAA,MAC9C;AAEA,YAAM,oBAAoB;AAAA,QACxB,GAAG;AAAA,QACH,WAAW;AAAA,QACX,cAAc;AAAA,QACd,UAAU;AAAA,QACV,WAAW;AAAA,QACX,aAAa;AAAA,QACb,aAAa;AAAA,QACb,SAAS;AAAA,QACT,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,WAAW;AAAA,QACX,SAAS;AAAA,QACT,QAAQ;AAAA,MAAA;AAGV,aAAO;AAAA,QACL,UAAU;AAAA,QACV,UAAU;AAAA,QACV,iBAAiB;AAAA,QACjB,QAAQ;AAAA,UACN,YAAAA;AAAAA,QAAA;AAAA,MACF;AAAA,IAEJ,CAAC;AAED,UAAM,YAAY,eAAe,QAAQ;AAEzC,UAAM,SAAS,CAAA;AAEf,cAAU,YAAY;AACpB,aAAO,OAAO,QAAQ,UAAU,KAAK;AAAA,IACvC,CAAC;;AArID,aAAAC,aAAAC,YAgBYC,iBAhBZC,WAgBY;AAAA,QAfV,KAAI;AAAA,QACH,KAAK,QAAA,MAAQ,WAAQ,aAAA;AAAA,oBACb,aAAA;AAAA,qEAAA,aAAY,QAAA;AAAA,QACpB,OAAK;AAAA;UAAgC,MAAA,QAAK,wBAAA;AAAA,UAAqC,QAAA,MAAQ,WAAQ,2BAAA;AAAA,QAAA;AAAA,QAK/F,aAAW,QAAA,MAAQ;AAAA,QACnB,UAAU,QAAA,MAAQ;AAAA,MAAA,GACX,QAAA,MAAQ,eAAe,GAAAC,YAAA,EAAA,GAAA,KAAA;AAAA,mBAEDC,KAAAA,QAAM,CAAlB,GAAG,SAAI;;;YACvB,IAAAC,QAAA,CAD6C,cAAS;AAAA,cACtDC,WAAwC,KAAA,QAA3B,MAAIC,eAAAC,mBAAU,SAAS,CAAA,GAAA,QAAA,IAAA;AAAA,YAAA;;;;;;;"}
1
+ {"version":3,"file":"index.vue2.mjs","sources":["../../../src/components/md-editor/index.vue"],"sourcesContent":["<template>\n <md-editor\n ref=\"editor\"\n :key=\"`${reProps.readonly ? 'readonly' : 'editable'}-${reProps.mdEditorOptions.preview}-${reProps.mdEditorOptions.htmlPreview}-${reProps.mdEditorOptions.pageFullscreen}`\"\n v-model=\"reModelValue\"\n :class=\"[\n 'qd-md-editor',\n focus ? 'qd-md-editor--focus' : '',\n reProps.disabled ? 'qd-md-editor--disabled' : ''\n ]\"\n :read-only=\"reProps.readonly\"\n :disabled=\"reProps.disabled\"\n v-bind=\"reProps.mdEditorOptions\"\n >\n <template v-for=\"(_, name) in $slots\" #[name]=\"slotProps\">\n <slot :name=\"name\" v-bind=\"slotProps\" />\n </template>\n </md-editor>\n</template>\n\n<script setup lang=\"ts\">\n // TODO 图片上传\n // TODO 文件上传\n import { useVModels } from '@vueuse/core'\n import type { EditorProps } from 'md-editor-v3'\n import { MdEditor } from 'md-editor-v3'\n import { createExposeProxy } from 'qidian-shared'\n import { FormItemInjectionKey } from 'tdesign-vue-next/es/form/constants'\n import { computed, inject, ref, useTemplateRef } from 'vue'\n\n import { useDisabled, useLocale, useReadonly, useTheme } from '../../hooks'\n import { setupMdEditorConfig } from './config'\n import { qdMdEditorProps, qdMdEditorToolbars } from './props'\n import type { QdMdEditorProps } from './types'\n\n defineOptions({\n name: 'QdMdEditor'\n })\n\n setupMdEditorConfig()\n\n const props = withDefaults(defineProps<QdMdEditorProps>(), qdMdEditorProps)\n const emit = defineEmits<{\n 'update:modelValue': [QdMdEditorProps['modelValue']]\n }>()\n const { modelValue } = useVModels(props, emit, { passive: true })\n const reModelValue = computed({\n get: () => modelValue.value ?? '', // 防止 md-editor 报错\n set: (val) => (modelValue.value = val)\n })\n\n const tdReadonly = useReadonly()\n const tdDisabled = useDisabled()\n const tdFormItem = inject(FormItemInjectionKey, undefined)\n const tdTheme = useTheme()\n const tdLocale = useLocale()\n const focus = ref(false)\n\n const reProps = computed(() => {\n const {\n modelValue,\n readonly,\n disabled,\n maxlength,\n toolbars,\n theme,\n onFocus,\n onBlur,\n disabledEcharts,\n disabledHighlight,\n disabledImgZoomIn,\n disabledKatex,\n disabledMermaid,\n disabledPrettier,\n disabledUploadImg,\n locale,\n ...mdEditorOptions\n } = props\n\n const reReadonly = readonly ?? tdReadonly.value\n const reDisabled = disabled ?? tdDisabled.value\n\n const reOnFocus: typeof onFocus = (evt) => {\n focus.value = true\n onFocus?.(evt)\n }\n\n const reOnBlur: typeof onBlur = (evt) => {\n focus.value = false\n tdFormItem?.handleBlur()\n onBlur?.(evt)\n }\n\n const reToolbars =\n reReadonly || reDisabled\n ? ['=', 'pageFullscreen', 'preview']\n : (toolbars ?? [...qdMdEditorToolbars])\n\n const reDisabledUploadImg = disabledUploadImg ?? true\n if (reDisabledUploadImg) {\n const imgIdx = reToolbars.findIndex((item) => item === 'image')\n if (imgIdx > -1) reToolbars.splice(imgIdx, 1)\n }\n\n const reMdEditorOptions = {\n ...mdEditorOptions,\n theme: tdTheme.value,\n language: tdLocale.value,\n codeTheme: 'github',\n previewTheme: 'github',\n toolbars: reToolbars,\n noEcharts: disabledEcharts,\n noHighlight: disabledHighlight,\n noImgZoomIn: disabledImgZoomIn,\n noKatex: disabledKatex,\n noMermaid: disabledMermaid,\n noPrettier: disabledPrettier,\n noUploadImg: reDisabledUploadImg,\n maxLength: maxlength,\n onFocus: reOnFocus,\n onBlur: reOnBlur\n } as unknown as Omit<EditorProps, 'modelValue' | 'readOnly' | 'disabled'>\n\n return {\n readonly: reReadonly,\n disabled: reDisabled,\n mdEditorOptions: reMdEditorOptions,\n models: {\n modelValue\n }\n }\n })\n\n const editorRef = useTemplateRef('editor')\n\n defineExpose(createExposeProxy({}, editorRef))\n</script>\n\n<style lang=\"less\">\n @import 'md-editor-v3/lib/style.css';\n @import 'katex/dist/katex.min.css';\n @import 'cropperjs/dist/cropper.css';\n @import 'highlight.js/styles/github.css';\n</style>\n\n<style lang=\"less\" scoped>\n .qd-md-editor {\n --md-color: var(--td-text-color-primary);\n --md-border-color: var(--td-border-level-2-color);\n --md-bk-color: var(--td-bg-color-specialcomponent);\n --md-bk-hover-color: var(--td-bg-color-container-hover);\n height: 100%;\n border-radius: var(--td-radius-default);\n transition:\n border cubic-bezier(0.38, 0, 0.24, 1) 0.2s,\n box-shadow cubic-bezier(0.38, 0, 0.24, 1) 0.2s,\n background-color cubic-bezier(0.38, 0, 0.24, 1) 0.2s,\n -webkit-box-shadow cubic-bezier(0.38, 0, 0.24, 1) 0.2s;\n\n &:hover {\n border-color: var(--td-brand-color);\n }\n\n &.qd-md-editor--focus {\n border-color: var(--td-brand-color);\n box-shadow: 0 0 0 2px var(--td-brand-color-focus);\n }\n\n &.qd-md-editor--disabled {\n color: var(--td-text-color-disabled);\n background-color: var(--td-bg-color-component-disabled);\n cursor: not-allowed;\n\n :deep(.cm-editor) {\n background-color: transparent;\n }\n\n &:hover {\n border-color: var(--td-border-level-2-color);\n }\n }\n\n :deep(.md-editor) {\n &-preview {\n padding: var(--td-comp-paddingLR-s);\n }\n }\n\n :deep(.cm-editor) {\n font: var(--td-font-body-medium);\n }\n\n :deep(.cm-scroller) {\n line-height: inherit !important;\n }\n\n :deep(.cm-content) {\n margin: 0 !important;\n padding: var(--td-comp-paddingLR-s);\n }\n }\n\n .t-is-error .qd-md-editor {\n border-color: var(--td-error-color);\n\n &--focus {\n box-shadow: 0 0 0 2px var(--td-error-color-focus);\n }\n }\n</style>\n"],"names":["modelValue","_openBlock","_createBlock","_unref","_mergeProps","_createSlots","$slots","_withCtx","_renderSlot","_normalizeProps","_guardReactiveProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCE,wBAAA;AAEA,UAAM,QAAQ;AACd,UAAM,OAAO;AAGb,UAAM,EAAE,eAAe,WAAW,OAAO,MAAM,EAAE,SAAS,MAAM;AAChE,UAAM,eAAe,SAAS;AAAA,MAC5B,KAAK,MAAM,WAAW,SAAS;AAAA;AAAA,MAC/B,KAAK,CAAC,QAAS,WAAW,QAAQ;AAAA,IAAA,CACnC;AAED,UAAM,aAAa,YAAA;AACnB,UAAM,aAAa,YAAA;AACnB,UAAM,aAAa,OAAO,sBAAsB,MAAS;AACzD,UAAM,UAAU,SAAA;AAChB,UAAM,WAAW,UAAA;AACjB,UAAM,QAAQ,IAAI,KAAK;AAEvB,UAAM,UAAU,SAAS,MAAM;AAC7B,YAAM;AAAA,QACJ,YAAAA;AAAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,GAAG;AAAA,MAAA,IACD;AAEJ,YAAM,aAAa,YAAY,WAAW;AAC1C,YAAM,aAAa,YAAY,WAAW;AAE1C,YAAM,YAA4B,CAAC,QAAQ;AACzC,cAAM,QAAQ;AACd,kBAAU,GAAG;AAAA,MACf;AAEA,YAAM,WAA0B,CAAC,QAAQ;AACvC,cAAM,QAAQ;AACd,oBAAY,WAAA;AACZ,iBAAS,GAAG;AAAA,MACd;AAEA,YAAM,aACJ,cAAc,aACV,CAAC,KAAK,kBAAkB,SAAS,IAChC,YAAY,CAAC,GAAG,kBAAkB;AAEzC,YAAM,sBAAsB,qBAAqB;AACjD,UAAI,qBAAqB;AACvB,cAAM,SAAS,WAAW,UAAU,CAAC,SAAS,SAAS,OAAO;AAC9D,YAAI,SAAS,GAAI,YAAW,OAAO,QAAQ,CAAC;AAAA,MAC9C;AAEA,YAAM,oBAAoB;AAAA,QACxB,GAAG;AAAA,QACH,OAAO,QAAQ;AAAA,QACf,UAAU,SAAS;AAAA,QACnB,WAAW;AAAA,QACX,cAAc;AAAA,QACd,UAAU;AAAA,QACV,WAAW;AAAA,QACX,aAAa;AAAA,QACb,aAAa;AAAA,QACb,SAAS;AAAA,QACT,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,WAAW;AAAA,QACX,SAAS;AAAA,QACT,QAAQ;AAAA,MAAA;AAGV,aAAO;AAAA,QACL,UAAU;AAAA,QACV,UAAU;AAAA,QACV,iBAAiB;AAAA,QACjB,QAAQ;AAAA,UACN,YAAAA;AAAAA,QAAA;AAAA,MACF;AAAA,IAEJ,CAAC;AAED,UAAM,YAAY,eAAe,QAAQ;AAEzC,aAAa,kBAAkB,IAAI,SAAS,CAAC;;AAtI7C,aAAAC,aAAAC,YAgBYC,iBAhBZC,WAgBY;AAAA,QAfV,KAAI;AAAA,QACH,KAAG,GAAK,cAAQ,sCAAsC,QAAA,MAAQ,gBAAgB,OAAO,IAAI,QAAA,MAAQ,gBAAgB,WAAW,IAAI,QAAA,MAAQ,gBAAgB,cAAc;AAAA,oBAC9J,aAAA;AAAA,qEAAA,aAAY,QAAA;AAAA,QACpB,OAAK;AAAA;UAAgC,MAAA,QAAK,wBAAA;AAAA,UAAqC,QAAA,MAAQ,WAAQ,2BAAA;AAAA,QAAA;AAAA,QAK/F,aAAW,QAAA,MAAQ;AAAA,QACnB,UAAU,QAAA,MAAQ;AAAA,MAAA,GACX,QAAA,MAAQ,eAAe,GAAAC,YAAA,EAAA,GAAA,KAAA;AAAA,mBAEDC,KAAAA,QAAM,CAAlB,GAAG,SAAI;;;YACvB,IAAAC,QAAA,CAD6C,cAAS;AAAA,cACtDC,WAAwC,KAAA,QAA3B,MAAIC,eAAAC,mBAAU,SAAS,CAAA,GAAA,QAAA,IAAA;AAAA,YAAA;;;;;;;"}
@@ -1,4 +1,4 @@
1
- .qd-md-editor[data-v-9dcd6fc8] {
1
+ .qd-md-editor[data-v-94f380a5] {
2
2
  --md-color: var(--td-text-color-primary);
3
3
  --md-border-color: var(--td-border-level-2-color);
4
4
  --md-bk-color: var(--td-bg-color-specialcomponent);
@@ -7,40 +7,40 @@
7
7
  border-radius: var(--td-radius-default);
8
8
  transition: border cubic-bezier(0.38, 0, 0.24, 1) 0.2s, box-shadow cubic-bezier(0.38, 0, 0.24, 1) 0.2s, background-color cubic-bezier(0.38, 0, 0.24, 1) 0.2s, -webkit-box-shadow cubic-bezier(0.38, 0, 0.24, 1) 0.2s;
9
9
  }
10
- .qd-md-editor[data-v-9dcd6fc8]:hover {
10
+ .qd-md-editor[data-v-94f380a5]:hover {
11
11
  border-color: var(--td-brand-color);
12
12
  }
13
- .qd-md-editor.qd-md-editor--focus[data-v-9dcd6fc8] {
13
+ .qd-md-editor.qd-md-editor--focus[data-v-94f380a5] {
14
14
  border-color: var(--td-brand-color);
15
15
  box-shadow: 0 0 0 2px var(--td-brand-color-focus);
16
16
  }
17
- .qd-md-editor.qd-md-editor--disabled[data-v-9dcd6fc8] {
17
+ .qd-md-editor.qd-md-editor--disabled[data-v-94f380a5] {
18
18
  color: var(--td-text-color-disabled);
19
19
  background-color: var(--td-bg-color-component-disabled);
20
20
  cursor: not-allowed;
21
21
  }
22
- .qd-md-editor.qd-md-editor--disabled[data-v-9dcd6fc8] .cm-editor {
22
+ .qd-md-editor.qd-md-editor--disabled[data-v-94f380a5] .cm-editor {
23
23
  background-color: transparent;
24
24
  }
25
- .qd-md-editor.qd-md-editor--disabled[data-v-9dcd6fc8]:hover {
25
+ .qd-md-editor.qd-md-editor--disabled[data-v-94f380a5]:hover {
26
26
  border-color: var(--td-border-level-2-color);
27
27
  }
28
- .qd-md-editor[data-v-9dcd6fc8] .md-editor-preview {
28
+ .qd-md-editor[data-v-94f380a5] .md-editor-preview {
29
29
  padding: var(--td-comp-paddingLR-s);
30
30
  }
31
- .qd-md-editor[data-v-9dcd6fc8] .cm-editor {
31
+ .qd-md-editor[data-v-94f380a5] .cm-editor {
32
32
  font: var(--td-font-body-medium);
33
33
  }
34
- .qd-md-editor[data-v-9dcd6fc8] .cm-scroller {
34
+ .qd-md-editor[data-v-94f380a5] .cm-scroller {
35
35
  line-height: inherit !important;
36
36
  }
37
- .qd-md-editor[data-v-9dcd6fc8] .cm-content {
37
+ .qd-md-editor[data-v-94f380a5] .cm-content {
38
38
  margin: 0 !important;
39
39
  padding: var(--td-comp-paddingLR-s);
40
40
  }
41
- .t-is-error .qd-md-editor[data-v-9dcd6fc8] {
41
+ .t-is-error .qd-md-editor[data-v-94f380a5] {
42
42
  border-color: var(--td-error-color);
43
43
  }
44
- .t-is-error .qd-md-editor--focus[data-v-9dcd6fc8] {
44
+ .t-is-error .qd-md-editor--focus[data-v-94f380a5] {
45
45
  box-shadow: 0 0 0 2px var(--td-error-color-focus);
46
46
  }
@@ -40,7 +40,7 @@ export interface QdMdEditorProps {
40
40
  onChange?: ChangeEvent;
41
41
  theme?: Themes;
42
42
  class?: StringConstructor;
43
- language?: string;
43
+ locale?: string;
44
44
  onHtmlChanged?: HtmlChangedEvent;
45
45
  onGetCatalog?: GetCatalogEvent;
46
46
  id?: string;
@@ -55,7 +55,7 @@ export interface QdMdEditorProps {
55
55
  codeStyleReverseList?: string[];
56
56
  disabledHighlight?: boolean;
57
57
  disabledImgZoomIn?: boolean;
58
- customIcon: CustomIcon;
58
+ customIcon?: CustomIcon;
59
59
  sanitizeMermaid?: (h: string) => Promise<string>;
60
60
  codeFoldable?: boolean;
61
61
  autoFoldThreshold?: number;
@@ -1,6 +1,7 @@
1
1
  export * from './useAgentChat';
2
2
  export * from './useDict';
3
3
  export * from './useDisabled';
4
+ export * from './useLocale';
4
5
  export * from './useModal';
5
6
  export * from './usePerfectScrollbar';
6
7
  export * from './useReadonly';
@@ -0,0 +1,5 @@
1
+ import type { Ref } from 'vue';
2
+ export declare function useLocale(context?: {
3
+ beforeLocale?: Ref<string>;
4
+ afterLocale?: Ref<string>;
5
+ }): import("vue").ComputedRef<string>;
@@ -0,0 +1,27 @@
1
+ import { getCurrentInstance, computed, inject } from "vue";
2
+ import { PROVIDE_LOCALE, DEFAULT_LOCALE } from "../components/config-provider/config.mjs";
3
+ import isString from "../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isString.mjs";
4
+ function useLocale(context) {
5
+ const currentInstance = getCurrentInstance();
6
+ const componentLocale = computed(() => currentInstance.props.locale);
7
+ const injectLocale = inject(PROVIDE_LOCALE, void 0);
8
+ return computed(() => {
9
+ if (isString(context?.beforeLocale?.value) && context.beforeLocale.value) {
10
+ return context.beforeLocale.value;
11
+ }
12
+ if (isString(componentLocale.value) && componentLocale.value) {
13
+ return componentLocale.value;
14
+ }
15
+ if (isString(context?.afterLocale?.value) && context.afterLocale.value) {
16
+ return context.afterLocale.value;
17
+ }
18
+ if (isString(injectLocale?.value) && injectLocale.value) {
19
+ return injectLocale.value;
20
+ }
21
+ return DEFAULT_LOCALE;
22
+ });
23
+ }
24
+ export {
25
+ useLocale
26
+ };
27
+ //# sourceMappingURL=useLocale.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLocale.mjs","sources":["../../src/hooks/useLocale.ts"],"sourcesContent":["import { isString } from 'lodash-es'\nimport type { Ref } from 'vue'\nimport { computed, getCurrentInstance, inject } from 'vue'\n\nimport { DEFAULT_LOCALE, PROVIDE_LOCALE } from '../components/config-provider/config'\n\nexport function useLocale(context?: { beforeLocale?: Ref<string>; afterLocale?: Ref<string> }) {\n const currentInstance = getCurrentInstance()!\n const componentLocale = computed(() => currentInstance.props.locale as string)\n\n const injectLocale = inject(PROVIDE_LOCALE, undefined)\n\n return computed(() => {\n if (isString(context?.beforeLocale?.value) && context.beforeLocale.value) {\n return context.beforeLocale.value\n }\n // Component\n if (isString(componentLocale.value) && componentLocale.value) {\n return componentLocale.value\n }\n // ComponentGroup\n if (isString(context?.afterLocale?.value) && context.afterLocale.value) {\n return context.afterLocale.value\n }\n // ConfigProvider\n if (isString(injectLocale?.value) && injectLocale.value) {\n return injectLocale.value\n }\n\n return DEFAULT_LOCALE\n })\n}\n"],"names":[],"mappings":";;;AAMO,SAAS,UAAU,SAAqE;AAC7F,QAAM,kBAAkB,mBAAA;AACxB,QAAM,kBAAkB,SAAS,MAAM,gBAAgB,MAAM,MAAgB;AAE7E,QAAM,eAAe,OAAO,gBAAgB,MAAS;AAErD,SAAO,SAAS,MAAM;AACpB,QAAI,SAAS,SAAS,cAAc,KAAK,KAAK,QAAQ,aAAa,OAAO;AACxE,aAAO,QAAQ,aAAa;AAAA,IAC9B;AAEA,QAAI,SAAS,gBAAgB,KAAK,KAAK,gBAAgB,OAAO;AAC5D,aAAO,gBAAgB;AAAA,IACzB;AAEA,QAAI,SAAS,SAAS,aAAa,KAAK,KAAK,QAAQ,YAAY,OAAO;AACtE,aAAO,QAAQ,YAAY;AAAA,IAC7B;AAEA,QAAI,SAAS,cAAc,KAAK,KAAK,aAAa,OAAO;AACvD,aAAO,aAAa;AAAA,IACtB;AAEA,WAAO;AAAA,EACT,CAAC;AACH;"}
package/dist/index.mjs CHANGED
@@ -51,6 +51,7 @@ import { hasRole, hasRoleDirective } from "./directive/hasRole.mjs";
51
51
  import { useAgentChat } from "./hooks/useAgentChat/index.mjs";
52
52
  import { useDict, useDictBatch, useDictDynamic } from "./hooks/useDict/index.mjs";
53
53
  import { useDisabled } from "./hooks/useDisabled.mjs";
54
+ import { useLocale } from "./hooks/useLocale.mjs";
54
55
  import { useModal } from "./hooks/useModal.mjs";
55
56
  import { usePerfectScrollbar } from "./hooks/usePerfectScrollbar.mjs";
56
57
  import { useReadonly } from "./hooks/useReadonly.mjs";
@@ -125,6 +126,7 @@ export {
125
126
  useDictBatch,
126
127
  useDictDynamic,
127
128
  useDisabled,
129
+ useLocale,
128
130
  useModal,
129
131
  usePerfectScrollbar,
130
132
  useConfig as useQdConfig,
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,85 @@
1
+ const ZH_TW = {
2
+ toolbarTips: {
3
+ bold: "加粗",
4
+ underline: "下劃線",
5
+ italic: "斜體",
6
+ strikeThrough: "刪除線",
7
+ title: "標題",
8
+ sub: "下標",
9
+ sup: "上標",
10
+ quote: "引用",
11
+ unorderedList: "無序列表",
12
+ orderedList: "有序列表",
13
+ task: "任務列表",
14
+ codeRow: "行內代碼",
15
+ code: "程式碼區塊",
16
+ link: "鏈接",
17
+ image: "圖片",
18
+ table: "表格",
19
+ mermaid: "mermaid圖",
20
+ katex: "katex公式",
21
+ revoke: "後退",
22
+ next: "前進",
23
+ save: "保存",
24
+ prettier: "美化",
25
+ pageFullscreen: "瀏覽器全屏",
26
+ fullscreen: "螢幕全屏",
27
+ preview: "預覽",
28
+ htmlPreview: "html代碼預覽",
29
+ catalog: "目錄",
30
+ github: "源碼地址"
31
+ },
32
+ titleItem: {
33
+ h1: "一級標題",
34
+ h2: "二級標題",
35
+ h3: "三級標題",
36
+ h4: "四級標題",
37
+ h5: "五級標題",
38
+ h6: "六級標題"
39
+ },
40
+ imgTitleItem: {
41
+ link: "添加鏈接",
42
+ upload: "上傳圖片",
43
+ clip2upload: "裁剪上傳"
44
+ },
45
+ linkModalTips: {
46
+ linkTitle: "添加鏈接",
47
+ imageTitle: "添加圖片",
48
+ descLabel: "鏈接描述:",
49
+ descLabelPlaceHolder: "請輸入描述...",
50
+ urlLabel: "鏈接地址:",
51
+ urlLabelPlaceHolder: "請輸入链接...",
52
+ buttonOK: "確定"
53
+ },
54
+ clipModalTips: {
55
+ title: "裁剪圖片上傳",
56
+ buttonUpload: "上傳"
57
+ },
58
+ copyCode: {
59
+ text: "複製代碼",
60
+ successTips: "已複製!",
61
+ failTips: "複製失敗!"
62
+ },
63
+ mermaid: {
64
+ flow: "流程圖",
65
+ sequence: "時序圖",
66
+ gantt: "甘特圖",
67
+ class: "類圖",
68
+ state: "狀態圖",
69
+ pie: "餅圖",
70
+ relationship: "關係圖",
71
+ journey: "旅程圖"
72
+ },
73
+ katex: {
74
+ inline: "行內公式",
75
+ block: "區塊公式"
76
+ },
77
+ footer: {
78
+ markdownTotal: "字數",
79
+ scrollAuto: "同步滾動"
80
+ }
81
+ };
82
+ export {
83
+ ZH_TW as default
84
+ };
85
+ //# sourceMappingURL=zh-TW.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zh-TW.mjs","sources":["../../../../../../../../../../../node_modules/.pnpm/@vavt+cm-extension@1.11.2/node_modules/@vavt/cm-extension/dist/locale/zh-TW.js"],"sourcesContent":["/**\n * @author imzbf\n * @email zbfcqtl@gmail.com\n * @github https://github.com/imzbf\n *\n * 繁体\n *\n * 作者不确定是否完全翻译正确中文繁体\n * 如果您发现错误,请纠正我\n */\nconst ZH_TW = {\n toolbarTips: {\n bold: '加粗',\n underline: '下劃線',\n italic: '斜體',\n strikeThrough: '刪除線',\n title: '標題',\n sub: '下標',\n sup: '上標',\n quote: '引用',\n unorderedList: '無序列表',\n orderedList: '有序列表',\n task: '任務列表',\n codeRow: '行內代碼',\n code: '程式碼區塊',\n link: '鏈接',\n image: '圖片',\n table: '表格',\n mermaid: 'mermaid圖',\n katex: 'katex公式',\n revoke: '後退',\n next: '前進',\n save: '保存',\n prettier: '美化',\n pageFullscreen: '瀏覽器全屏',\n fullscreen: '螢幕全屏',\n preview: '預覽',\n htmlPreview: 'html代碼預覽',\n catalog: '目錄',\n github: '源碼地址',\n },\n titleItem: {\n h1: '一級標題',\n h2: '二級標題',\n h3: '三級標題',\n h4: '四級標題',\n h5: '五級標題',\n h6: '六級標題',\n },\n imgTitleItem: {\n link: '添加鏈接',\n upload: '上傳圖片',\n clip2upload: '裁剪上傳',\n },\n linkModalTips: {\n linkTitle: '添加鏈接',\n imageTitle: '添加圖片',\n descLabel: '鏈接描述:',\n descLabelPlaceHolder: '請輸入描述...',\n urlLabel: '鏈接地址:',\n urlLabelPlaceHolder: '請輸入链接...',\n buttonOK: '確定',\n },\n clipModalTips: {\n title: '裁剪圖片上傳',\n buttonUpload: '上傳',\n },\n copyCode: {\n text: '複製代碼',\n successTips: '已複製!',\n failTips: '複製失敗!',\n },\n mermaid: {\n flow: '流程圖',\n sequence: '時序圖',\n gantt: '甘特圖',\n class: '類圖',\n state: '狀態圖',\n pie: '餅圖',\n relationship: '關係圖',\n journey: '旅程圖',\n },\n katex: {\n inline: '行內公式',\n block: '區塊公式',\n },\n footer: {\n markdownTotal: '字數',\n scrollAuto: '同步滾動',\n },\n};\nexport default ZH_TW;\n"],"names":[],"mappings":"AAUK,MAAC,QAAQ;AAAA,EACV,aAAa;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,eAAe;AAAA,IACf,OAAO;AAAA,IACP,KAAK;AAAA,IACL,KAAK;AAAA,IACL,OAAO;AAAA,IACP,eAAe;AAAA,IACf,aAAa;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS;AAAA,IACT,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,MAAM;AAAA,IACN,UAAU;AAAA,IACV,gBAAgB;AAAA,IAChB,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,aAAa;AAAA,IACb,SAAS;AAAA,IACT,QAAQ;AAAA,EAChB;AAAA,EACI,WAAW;AAAA,IACP,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EACZ;AAAA,EACI,cAAc;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,aAAa;AAAA,EACrB;AAAA,EACI,eAAe;AAAA,IACX,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,sBAAsB;AAAA,IACtB,UAAU;AAAA,IACV,qBAAqB;AAAA,IACrB,UAAU;AAAA,EAClB;AAAA,EACI,eAAe;AAAA,IACX,OAAO;AAAA,IACP,cAAc;AAAA,EACtB;AAAA,EACI,UAAU;AAAA,IACN,MAAM;AAAA,IACN,aAAa;AAAA,IACb,UAAU;AAAA,EAClB;AAAA,EACI,SAAS;AAAA,IACL,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,KAAK;AAAA,IACL,cAAc;AAAA,IACd,SAAS;AAAA,EACjB;AAAA,EACI,OAAO;AAAA,IACH,QAAQ;AAAA,IACR,OAAO;AAAA,EACf;AAAA,EACI,QAAQ;AAAA,IACJ,eAAe;AAAA,IACf,YAAY;AAAA,EACpB;AACA;","x_google_ignoreList":[0]}
@@ -0,0 +1,11 @@
1
+ import baseGetTag from "./_baseGetTag.mjs";
2
+ import isArray from "./isArray.mjs";
3
+ import isObjectLike from "./isObjectLike.mjs";
4
+ var stringTag = "[object String]";
5
+ function isString(value) {
6
+ return typeof value == "string" || !isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag;
7
+ }
8
+ export {
9
+ isString as default
10
+ };
11
+ //# sourceMappingURL=isString.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isString.mjs","sources":["../../../../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isString.js"],"sourcesContent":["import baseGetTag from './_baseGetTag.js';\nimport isArray from './isArray.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nexport default isString;\n"],"names":[],"mappings":";;;AAKA,IAAI,YAAY;AAmBhB,SAAS,SAAS,OAAO;AACvB,SAAO,OAAO,SAAS,YACpB,CAAC,QAAQ,KAAK,KAAK,aAAa,KAAK,KAAK,WAAW,KAAK,KAAK;AACpE;","x_google_ignoreList":[0]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qidian-vue-ui",
3
- "version": "1.2.63",
3
+ "version": "1.2.64",
4
4
  "description": "基于 TDesign 的 QiDian Vue UI 组件库",
5
5
  "author": "qidian",
6
6
  "license": "MIT",