@meframe/core 0.5.1 → 0.5.2
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FontManager.d.ts","sourceRoot":"","sources":["../../../../src/stages/compose/font-system/FontManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAc,oBAAoB,EAAa,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"FontManager.d.ts","sourceRoot":"","sources":["../../../../src/stages/compose/font-system/FontManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAc,oBAAoB,EAAa,MAAM,SAAS,CAAC;AA0BvF,qBAAa,WAAW;IACtB,OAAO,CAAC,SAAS,CAAsC;IAEvD,aAAa,CACX,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,MAAM,EACpB,cAAc,CAAC,EAAE,MAAM,GACtB,oBAAoB;IAgBvB,OAAO,CAAC,gBAAgB;IAkCxB,UAAU,IAAI,IAAI;CAGnB;AAID,wBAAgB,aAAa,CAC3B,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,MAAM,EACpB,cAAc,CAAC,EAAE,MAAM,GACtB,oBAAoB,CAEtB;AAED,wBAAgB,cAAc,IAAI,IAAI,CAErC"}
|
|
@@ -15,6 +15,10 @@ const PREFERRED_FONTS = {
|
|
|
15
15
|
"ar-SA": "dtjinbu",
|
|
16
16
|
other: "dtjinbu"
|
|
17
17
|
};
|
|
18
|
+
function quoteFontFamily(fontFamily) {
|
|
19
|
+
const escaped = fontFamily.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
|
|
20
|
+
return `"${escaped}"`;
|
|
21
|
+
}
|
|
18
22
|
class FontManager {
|
|
19
23
|
fontCache = /* @__PURE__ */ new Map();
|
|
20
24
|
getFontConfig(locale, templateName, fontFamilyName) {
|
|
@@ -32,11 +36,11 @@ class FontManager {
|
|
|
32
36
|
}
|
|
33
37
|
createFontConfig(locale, templateName, fontFamilyName) {
|
|
34
38
|
const template = getTemplate(templateName);
|
|
35
|
-
const fontFamily = fontFamilyName ? `${fontFamilyName}, ${SYSTEM_FONT_FALLBACKS[locale]}` : `${PREFERRED_FONTS[locale]}, ${SYSTEM_FONT_FALLBACKS[locale]}`;
|
|
39
|
+
const fontFamily = fontFamilyName ? `${quoteFontFamily(fontFamilyName)}, ${SYSTEM_FONT_FALLBACKS[locale]}` : `${PREFERRED_FONTS[locale]}, ${SYSTEM_FONT_FALLBACKS[locale]}`;
|
|
36
40
|
const textStyle = {
|
|
37
41
|
fontSize: template.textStyle?.fontSize || 40,
|
|
38
42
|
fontWeight: template.textStyle?.fontWeight || 400,
|
|
39
|
-
fontFamily: template.textStyle?.fontFamily || fontFamily,
|
|
43
|
+
fontFamily: fontFamilyName ? fontFamily : template.textStyle?.fontFamily || fontFamily,
|
|
40
44
|
fill: template.textStyle?.fill || "rgb(255, 255, 255)",
|
|
41
45
|
stroke: template.textStyle?.stroke,
|
|
42
46
|
strokeWidth: template.textStyle?.strokeWidth,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FontManager.js","sources":["../../../../src/stages/compose/font-system/FontManager.ts"],"sourcesContent":["import type { LocaleCode, FontConfig, SerializedFontConfig, TextStyle } from './types';\nimport { getTemplate } from './font-templates';\n\nconst SYSTEM_FONT_FALLBACKS: Record<LocaleCode, string> = {\n 'zh-CN': '-apple-system, BlinkMacSystemFont, \"PingFang SC\", \"Microsoft YaHei\", sans-serif',\n 'en-US': '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Arial, sans-serif',\n 'ja-JP': '-apple-system, BlinkMacSystemFont, \"Hiragino Sans\", \"Yu Gothic\", sans-serif',\n 'ko-KR': '-apple-system, BlinkMacSystemFont, \"Apple SD Gothic Neo\", \"Malgun Gothic\", sans-serif',\n 'ar-SA': '-apple-system, BlinkMacSystemFont, \"Arabic UI Text\", \"Geeza Pro\", sans-serif',\n other: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Arial, sans-serif',\n};\n\nconst PREFERRED_FONTS: Record<LocaleCode, string> = {\n 'zh-CN': 'dtjinbu',\n 'en-US': 'dtjinbu',\n 'ja-JP': 'dtjinbu',\n 'ko-KR': 'dtjinbu',\n 'ar-SA': 'dtjinbu',\n other: 'dtjinbu',\n};\n\nexport class FontManager {\n private fontCache: Map<string, FontConfig> = new Map();\n\n getFontConfig(\n locale: LocaleCode,\n templateName: string,\n fontFamilyName?: string\n ): SerializedFontConfig {\n const cacheKey = `${locale}-${templateName}-${fontFamilyName || 'default'}`;\n\n let config = this.fontCache.get(cacheKey);\n if (!config) {\n config = this.createFontConfig(locale, templateName, fontFamilyName);\n this.fontCache.set(cacheKey, config);\n }\n\n return {\n textStyle: { ...config.textStyle },\n containerStyle: config.containerStyle ? { ...config.containerStyle } : undefined,\n globalPosition: config.globalPosition ? { ...config.globalPosition } : undefined,\n };\n }\n\n private createFontConfig(\n locale: LocaleCode,\n templateName: string,\n fontFamilyName?: string\n ): FontConfig {\n const template = getTemplate(templateName);\n\n const fontFamily = fontFamilyName\n ? `${fontFamilyName}, ${SYSTEM_FONT_FALLBACKS[locale]}`\n : `${PREFERRED_FONTS[locale]}, ${SYSTEM_FONT_FALLBACKS[locale]}`;\n\n const textStyle: TextStyle = {\n fontSize: template.textStyle?.fontSize || 40,\n fontWeight: template.textStyle?.fontWeight || 400,\n fontFamily: template.textStyle?.fontFamily || fontFamily,\n fill: template.textStyle?.fill || 'rgb(255, 255, 255)',\n stroke: template.textStyle?.stroke,\n strokeWidth: template.textStyle?.strokeWidth,\n letterSpacing: template.textStyle?.letterSpacing || 0,\n lineHeight: template.textStyle?.lineHeight || 1.2,\n paintOrder: template.textStyle?.paintOrder,\n strokeLinejoin: template.textStyle?.strokeLinejoin,\n strokeLinecap: template.textStyle?.strokeLinecap,\n };\n\n return {\n familyName: fontFamily,\n locales: [locale],\n textStyle,\n containerStyle: template.containerStyle,\n globalPosition: template.globalPosition,\n };\n }\n\n clearCache(): void {\n this.fontCache.clear();\n }\n}\n\nconst fontManagerInstance = new FontManager();\n\nexport function getFontConfig(\n locale: LocaleCode,\n templateName: string,\n fontFamilyName?: string\n): SerializedFontConfig {\n return fontManagerInstance.getFontConfig(locale, templateName, fontFamilyName);\n}\n\nexport function clearFontCache(): void {\n fontManagerInstance.clearCache();\n}\n"],"names":[],"mappings":";AAGA,MAAM,wBAAoD;AAAA,EACxD,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,OAAO;AACT;AAEA,MAAM,kBAA8C;AAAA,EAClD,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,OAAO;AACT;AAEO,MAAM,YAAY;AAAA,EACf,gCAAyC,IAAA;AAAA,EAEjD,cACE,QACA,cACA,gBACsB;AACtB,UAAM,WAAW,GAAG,MAAM,IAAI,YAAY,IAAI,kBAAkB,SAAS;AAEzE,QAAI,SAAS,KAAK,UAAU,IAAI,QAAQ;AACxC,QAAI,CAAC,QAAQ;AACX,eAAS,KAAK,iBAAiB,QAAQ,cAAc,cAAc;AACnE,WAAK,UAAU,IAAI,UAAU,MAAM;AAAA,IACrC;AAEA,WAAO;AAAA,MACL,WAAW,EAAE,GAAG,OAAO,UAAA;AAAA,MACvB,gBAAgB,OAAO,iBAAiB,EAAE,GAAG,OAAO,mBAAmB;AAAA,MACvE,gBAAgB,OAAO,iBAAiB,EAAE,GAAG,OAAO,mBAAmB;AAAA,IAAA;AAAA,EAE3E;AAAA,EAEQ,iBACN,QACA,cACA,gBACY;AACZ,UAAM,WAAW,YAAY,YAAY;AAEzC,UAAM,aAAa,iBACf,GAAG,cAAc,KAAK,sBAAsB,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"FontManager.js","sources":["../../../../src/stages/compose/font-system/FontManager.ts"],"sourcesContent":["import type { LocaleCode, FontConfig, SerializedFontConfig, TextStyle } from './types';\nimport { getTemplate } from './font-templates';\n\nconst SYSTEM_FONT_FALLBACKS: Record<LocaleCode, string> = {\n 'zh-CN': '-apple-system, BlinkMacSystemFont, \"PingFang SC\", \"Microsoft YaHei\", sans-serif',\n 'en-US': '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Arial, sans-serif',\n 'ja-JP': '-apple-system, BlinkMacSystemFont, \"Hiragino Sans\", \"Yu Gothic\", sans-serif',\n 'ko-KR': '-apple-system, BlinkMacSystemFont, \"Apple SD Gothic Neo\", \"Malgun Gothic\", sans-serif',\n 'ar-SA': '-apple-system, BlinkMacSystemFont, \"Arabic UI Text\", \"Geeza Pro\", sans-serif',\n other: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Arial, sans-serif',\n};\n\nconst PREFERRED_FONTS: Record<LocaleCode, string> = {\n 'zh-CN': 'dtjinbu',\n 'en-US': 'dtjinbu',\n 'ja-JP': 'dtjinbu',\n 'ko-KR': 'dtjinbu',\n 'ar-SA': 'dtjinbu',\n other: 'dtjinbu',\n};\n\nfunction quoteFontFamily(fontFamily: string): string {\n const escaped = fontFamily.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"');\n return `\"${escaped}\"`;\n}\n\nexport class FontManager {\n private fontCache: Map<string, FontConfig> = new Map();\n\n getFontConfig(\n locale: LocaleCode,\n templateName: string,\n fontFamilyName?: string\n ): SerializedFontConfig {\n const cacheKey = `${locale}-${templateName}-${fontFamilyName || 'default'}`;\n\n let config = this.fontCache.get(cacheKey);\n if (!config) {\n config = this.createFontConfig(locale, templateName, fontFamilyName);\n this.fontCache.set(cacheKey, config);\n }\n\n return {\n textStyle: { ...config.textStyle },\n containerStyle: config.containerStyle ? { ...config.containerStyle } : undefined,\n globalPosition: config.globalPosition ? { ...config.globalPosition } : undefined,\n };\n }\n\n private createFontConfig(\n locale: LocaleCode,\n templateName: string,\n fontFamilyName?: string\n ): FontConfig {\n const template = getTemplate(templateName);\n\n const fontFamily = fontFamilyName\n ? `${quoteFontFamily(fontFamilyName)}, ${SYSTEM_FONT_FALLBACKS[locale]}`\n : `${PREFERRED_FONTS[locale]}, ${SYSTEM_FONT_FALLBACKS[locale]}`;\n\n const textStyle: TextStyle = {\n fontSize: template.textStyle?.fontSize || 40,\n fontWeight: template.textStyle?.fontWeight || 400,\n fontFamily: fontFamilyName ? fontFamily : template.textStyle?.fontFamily || fontFamily,\n fill: template.textStyle?.fill || 'rgb(255, 255, 255)',\n stroke: template.textStyle?.stroke,\n strokeWidth: template.textStyle?.strokeWidth,\n letterSpacing: template.textStyle?.letterSpacing || 0,\n lineHeight: template.textStyle?.lineHeight || 1.2,\n paintOrder: template.textStyle?.paintOrder,\n strokeLinejoin: template.textStyle?.strokeLinejoin,\n strokeLinecap: template.textStyle?.strokeLinecap,\n };\n\n return {\n familyName: fontFamily,\n locales: [locale],\n textStyle,\n containerStyle: template.containerStyle,\n globalPosition: template.globalPosition,\n };\n }\n\n clearCache(): void {\n this.fontCache.clear();\n }\n}\n\nconst fontManagerInstance = new FontManager();\n\nexport function getFontConfig(\n locale: LocaleCode,\n templateName: string,\n fontFamilyName?: string\n): SerializedFontConfig {\n return fontManagerInstance.getFontConfig(locale, templateName, fontFamilyName);\n}\n\nexport function clearFontCache(): void {\n fontManagerInstance.clearCache();\n}\n"],"names":[],"mappings":";AAGA,MAAM,wBAAoD;AAAA,EACxD,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,OAAO;AACT;AAEA,MAAM,kBAA8C;AAAA,EAClD,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,OAAO;AACT;AAEA,SAAS,gBAAgB,YAA4B;AACnD,QAAM,UAAU,WAAW,QAAQ,OAAO,MAAM,EAAE,QAAQ,MAAM,KAAK;AACrE,SAAO,IAAI,OAAO;AACpB;AAEO,MAAM,YAAY;AAAA,EACf,gCAAyC,IAAA;AAAA,EAEjD,cACE,QACA,cACA,gBACsB;AACtB,UAAM,WAAW,GAAG,MAAM,IAAI,YAAY,IAAI,kBAAkB,SAAS;AAEzE,QAAI,SAAS,KAAK,UAAU,IAAI,QAAQ;AACxC,QAAI,CAAC,QAAQ;AACX,eAAS,KAAK,iBAAiB,QAAQ,cAAc,cAAc;AACnE,WAAK,UAAU,IAAI,UAAU,MAAM;AAAA,IACrC;AAEA,WAAO;AAAA,MACL,WAAW,EAAE,GAAG,OAAO,UAAA;AAAA,MACvB,gBAAgB,OAAO,iBAAiB,EAAE,GAAG,OAAO,mBAAmB;AAAA,MACvE,gBAAgB,OAAO,iBAAiB,EAAE,GAAG,OAAO,mBAAmB;AAAA,IAAA;AAAA,EAE3E;AAAA,EAEQ,iBACN,QACA,cACA,gBACY;AACZ,UAAM,WAAW,YAAY,YAAY;AAEzC,UAAM,aAAa,iBACf,GAAG,gBAAgB,cAAc,CAAC,KAAK,sBAAsB,MAAM,CAAC,KACpE,GAAG,gBAAgB,MAAM,CAAC,KAAK,sBAAsB,MAAM,CAAC;AAEhE,UAAM,YAAuB;AAAA,MAC3B,UAAU,SAAS,WAAW,YAAY;AAAA,MAC1C,YAAY,SAAS,WAAW,cAAc;AAAA,MAC9C,YAAY,iBAAiB,aAAa,SAAS,WAAW,cAAc;AAAA,MAC5E,MAAM,SAAS,WAAW,QAAQ;AAAA,MAClC,QAAQ,SAAS,WAAW;AAAA,MAC5B,aAAa,SAAS,WAAW;AAAA,MACjC,eAAe,SAAS,WAAW,iBAAiB;AAAA,MACpD,YAAY,SAAS,WAAW,cAAc;AAAA,MAC9C,YAAY,SAAS,WAAW;AAAA,MAChC,gBAAgB,SAAS,WAAW;AAAA,MACpC,eAAe,SAAS,WAAW;AAAA,IAAA;AAGrC,WAAO;AAAA,MACL,YAAY;AAAA,MACZ,SAAS,CAAC,MAAM;AAAA,MAChB;AAAA,MACA,gBAAgB,SAAS;AAAA,MACzB,gBAAgB,SAAS;AAAA,IAAA;AAAA,EAE7B;AAAA,EAEA,aAAmB;AACjB,SAAK,UAAU,MAAA;AAAA,EACjB;AACF;AAEA,MAAM,sBAAsB,IAAI,YAAA;AAEzB,SAAS,cACd,QACA,cACA,gBACsB;AACtB,SAAO,oBAAoB,cAAc,QAAQ,cAAc,cAAc;AAC/E;"}
|