|
@@ -1,4 +1,4 @@
|
|
|
-import { computed, unref, type CSSProperties, type MaybeRefOrGetter } from 'vue'
|
|
|
|
|
|
|
+import { computed, toValue, type CSSProperties, type MaybeRefOrGetter } from 'vue'
|
|
|
import { useProjectStore } from '@/store/modules/project'
|
|
import { useProjectStore } from '@/store/modules/project'
|
|
|
import type { Language } from '@/types/language'
|
|
import type { Language } from '@/types/language'
|
|
|
|
|
|
|
@@ -10,8 +10,8 @@ type ResolvedLanguageText = {
|
|
|
|
|
|
|
|
const TOKEN_REGEXP = /#\{([A-Za-z_][A-Za-z0-9_]*)\}/g
|
|
const TOKEN_REGEXP = /#\{([A-Za-z_][A-Za-z0-9_]*)\}/g
|
|
|
|
|
|
|
|
-const normalizeFontSize = (fontSize?: string) => {
|
|
|
|
|
- const value = String(fontSize || '').trim()
|
|
|
|
|
|
|
+const normalizeFontSize = (fontSize?: string | number | null) => {
|
|
|
|
|
+ const value = String(fontSize ?? '').trim()
|
|
|
if (!value) return undefined
|
|
if (!value) return undefined
|
|
|
return /^\d+(\.\d+)?$/.test(value) ? `${value}px` : value
|
|
return /^\d+(\.\d+)?$/.test(value) ? `${value}px` : value
|
|
|
}
|
|
}
|
|
@@ -36,7 +36,7 @@ export const useLanguage = () => {
|
|
|
)
|
|
)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- const resolveText = (source?: string | null): ResolvedLanguageText => {
|
|
|
|
|
|
|
+ const resolveText = (source?: string | null, useLabel = false): ResolvedLanguageText => {
|
|
|
const raw = String(source ?? '')
|
|
const raw = String(source ?? '')
|
|
|
let overrideFontFamily: string | undefined
|
|
let overrideFontFamily: string | undefined
|
|
|
let overrideFontSize: string | undefined
|
|
let overrideFontSize: string | undefined
|
|
@@ -59,7 +59,9 @@ export const useLanguage = () => {
|
|
|
overrideFontSize = normalizeFontSize(value.fontSize)
|
|
overrideFontSize = normalizeFontSize(value.fontSize)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- return value.value || ''
|
|
|
|
|
|
|
+ return useLabel
|
|
|
|
|
+ ? `<span style="font-family: ${overrideFontFamily}; font-size: ${overrideFontSize}">${value.value || ''}</span>`
|
|
|
|
|
+ : value.value || ''
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
return {
|
|
return {
|
|
@@ -71,6 +73,7 @@ export const useLanguage = () => {
|
|
|
|
|
|
|
|
const getResolvedFontStyle = (source?: string | null): CSSProperties => {
|
|
const getResolvedFontStyle = (source?: string | null): CSSProperties => {
|
|
|
const resolved = resolveText(source)
|
|
const resolved = resolveText(source)
|
|
|
|
|
+ console.log('Resolved language text:', resolved)
|
|
|
const style: CSSProperties = {}
|
|
const style: CSSProperties = {}
|
|
|
|
|
|
|
|
if (resolved.fontFamily) {
|
|
if (resolved.fontFamily) {
|
|
@@ -85,11 +88,11 @@ export const useLanguage = () => {
|
|
|
|
|
|
|
|
const getTextStyle = (
|
|
const getTextStyle = (
|
|
|
baseStyle: MaybeRefOrGetter<CSSProperties | undefined>,
|
|
baseStyle: MaybeRefOrGetter<CSSProperties | undefined>,
|
|
|
- source: string | null | undefined
|
|
|
|
|
|
|
+ source: MaybeRefOrGetter<string | null | undefined>
|
|
|
) => {
|
|
) => {
|
|
|
return computed<CSSProperties>(() => {
|
|
return computed<CSSProperties>(() => {
|
|
|
- const style = { ...(unref(baseStyle) || {}) }
|
|
|
|
|
- Object.assign(style, getResolvedFontStyle(source))
|
|
|
|
|
|
|
+ const style = { ...(toValue(baseStyle) || {}) }
|
|
|
|
|
+ Object.assign(style, getResolvedFontStyle(toValue(source)))
|
|
|
|
|
|
|
|
return style
|
|
return style
|
|
|
})
|
|
})
|