@enableai-fonts/core 0.1.12 → 0.1.13-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/core.cjs.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @enableai-fonts/core v0.1.12
2
+ * @enableai-fonts/core v0.1.13-alpha.0
3
3
  * (c) 2024-present Enableai
4
4
  * @license Proprietary
5
5
  **/
@@ -7,6 +7,36 @@
7
7
 
8
8
  Object.defineProperty(exports, '__esModule', { value: true });
9
9
 
10
+ const DEFAULT_ENABLEAI_FONTS_ASSET_BASE_URL = "https://static-dev.enableai.cn";
11
+ let assetBaseUrl = DEFAULT_ENABLEAI_FONTS_ASSET_BASE_URL;
12
+ let fontAssetUsed = false;
13
+ function normalizeBaseUrl(baseUrl) {
14
+ if (baseUrl === "/") return "/";
15
+ return baseUrl.replace(/\/+$/, "");
16
+ }
17
+ function isAbsoluteUrl(url) {
18
+ return /^(?:[a-z][a-z\d+\-.]*:)?\/\//i.test(url) || /^data:/i.test(url);
19
+ }
20
+ function initEnableAIFontsAssetBaseUrl(baseUrl) {
21
+ if (fontAssetUsed) {
22
+ console.warn(
23
+ "[enableai-fonts] initEnableAIFontsAssetBaseUrl should be called before font icons are initialized."
24
+ );
25
+ }
26
+ assetBaseUrl = baseUrl ? normalizeBaseUrl(baseUrl) : DEFAULT_ENABLEAI_FONTS_ASSET_BASE_URL;
27
+ }
28
+ function getEnableAIFontsAssetBaseUrl() {
29
+ return assetBaseUrl;
30
+ }
31
+ function resolveEnableAIFontsAssetUrl(pathOrUrl) {
32
+ fontAssetUsed = true;
33
+ if (!pathOrUrl || isAbsoluteUrl(pathOrUrl)) return pathOrUrl;
34
+ const baseUrl = getEnableAIFontsAssetBaseUrl();
35
+ if (!baseUrl) return pathOrUrl;
36
+ if (baseUrl === "/") return `/${pathOrUrl.replace(/^\/+/, "")}`;
37
+ return `${normalizeBaseUrl(baseUrl)}/${pathOrUrl.replace(/^\/+/, "")}`;
38
+ }
39
+
10
40
  class FontIconRegistry {
11
41
  constructor(options) {
12
42
  // font mode fields
@@ -50,9 +80,15 @@ class FontIconRegistry {
50
80
  }
51
81
  if (this.fontSrc) {
52
82
  const srcParts = [];
53
- if (this.fontSrc.woff) srcParts.push(`url("${this.fontSrc.woff}") format("woff")`);
54
- if (this.fontSrc.ttf) srcParts.push(`url("${this.fontSrc.ttf}") format("truetype")`);
55
- if (this.fontSrc.svg) srcParts.push(`url("${this.fontSrc.svg}") format("svg")`);
83
+ if (this.fontSrc.woff) {
84
+ srcParts.push(`url("${resolveEnableAIFontsAssetUrl(this.fontSrc.woff)}") format("woff")`);
85
+ }
86
+ if (this.fontSrc.ttf) {
87
+ srcParts.push(`url("${resolveEnableAIFontsAssetUrl(this.fontSrc.ttf)}") format("truetype")`);
88
+ }
89
+ if (this.fontSrc.svg) {
90
+ srcParts.push(`url("${resolveEnableAIFontsAssetUrl(this.fontSrc.svg)}") format("svg")`);
91
+ }
56
92
  if (srcParts.length === 0) {
57
93
  console.warn("[FontIconRegistry] fontSrc provided but empty; falling back to document.fonts.load");
58
94
  } else {
@@ -183,3 +219,6 @@ const ENABLEAI_FONT_STACK = `'Roboto', 'PingFang SC', 'Microsoft YaHei', 'Noto S
183
219
 
184
220
  exports.ENABLEAI_FONT_STACK = ENABLEAI_FONT_STACK;
185
221
  exports.FontIconRegistry = FontIconRegistry;
222
+ exports.getEnableAIFontsAssetBaseUrl = getEnableAIFontsAssetBaseUrl;
223
+ exports.initEnableAIFontsAssetBaseUrl = initEnableAIFontsAssetBaseUrl;
224
+ exports.resolveEnableAIFontsAssetUrl = resolveEnableAIFontsAssetUrl;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @enableai-fonts/core v0.1.12
2
+ * @enableai-fonts/core v0.1.13-alpha.0
3
3
  * (c) 2024-present Enableai
4
4
  * @license Proprietary
5
5
  **/
@@ -7,6 +7,36 @@
7
7
 
8
8
  Object.defineProperty(exports, '__esModule', { value: true });
9
9
 
10
+ const DEFAULT_ENABLEAI_FONTS_ASSET_BASE_URL = "https://static-dev.enableai.cn";
11
+ let assetBaseUrl = DEFAULT_ENABLEAI_FONTS_ASSET_BASE_URL;
12
+ let fontAssetUsed = false;
13
+ function normalizeBaseUrl(baseUrl) {
14
+ if (baseUrl === "/") return "/";
15
+ return baseUrl.replace(/\/+$/, "");
16
+ }
17
+ function isAbsoluteUrl(url) {
18
+ return /^(?:[a-z][a-z\d+\-.]*:)?\/\//i.test(url) || /^data:/i.test(url);
19
+ }
20
+ function initEnableAIFontsAssetBaseUrl(baseUrl) {
21
+ if (fontAssetUsed) {
22
+ console.warn(
23
+ "[enableai-fonts] initEnableAIFontsAssetBaseUrl should be called before font icons are initialized."
24
+ );
25
+ }
26
+ assetBaseUrl = baseUrl ? normalizeBaseUrl(baseUrl) : DEFAULT_ENABLEAI_FONTS_ASSET_BASE_URL;
27
+ }
28
+ function getEnableAIFontsAssetBaseUrl() {
29
+ return assetBaseUrl;
30
+ }
31
+ function resolveEnableAIFontsAssetUrl(pathOrUrl) {
32
+ fontAssetUsed = true;
33
+ if (!pathOrUrl || isAbsoluteUrl(pathOrUrl)) return pathOrUrl;
34
+ const baseUrl = getEnableAIFontsAssetBaseUrl();
35
+ if (!baseUrl) return pathOrUrl;
36
+ if (baseUrl === "/") return `/${pathOrUrl.replace(/^\/+/, "")}`;
37
+ return `${normalizeBaseUrl(baseUrl)}/${pathOrUrl.replace(/^\/+/, "")}`;
38
+ }
39
+
10
40
  class FontIconRegistry {
11
41
  constructor(options) {
12
42
  // font mode fields
@@ -50,9 +80,15 @@ class FontIconRegistry {
50
80
  }
51
81
  if (this.fontSrc) {
52
82
  const srcParts = [];
53
- if (this.fontSrc.woff) srcParts.push(`url("${this.fontSrc.woff}") format("woff")`);
54
- if (this.fontSrc.ttf) srcParts.push(`url("${this.fontSrc.ttf}") format("truetype")`);
55
- if (this.fontSrc.svg) srcParts.push(`url("${this.fontSrc.svg}") format("svg")`);
83
+ if (this.fontSrc.woff) {
84
+ srcParts.push(`url("${resolveEnableAIFontsAssetUrl(this.fontSrc.woff)}") format("woff")`);
85
+ }
86
+ if (this.fontSrc.ttf) {
87
+ srcParts.push(`url("${resolveEnableAIFontsAssetUrl(this.fontSrc.ttf)}") format("truetype")`);
88
+ }
89
+ if (this.fontSrc.svg) {
90
+ srcParts.push(`url("${resolveEnableAIFontsAssetUrl(this.fontSrc.svg)}") format("svg")`);
91
+ }
56
92
  if (srcParts.length === 0) {
57
93
  console.warn("[FontIconRegistry] fontSrc provided but empty; falling back to document.fonts.load");
58
94
  } else {
@@ -183,3 +219,6 @@ const ENABLEAI_FONT_STACK = `'Roboto', 'PingFang SC', 'Microsoft YaHei', 'Noto S
183
219
 
184
220
  exports.ENABLEAI_FONT_STACK = ENABLEAI_FONT_STACK;
185
221
  exports.FontIconRegistry = FontIconRegistry;
222
+ exports.getEnableAIFontsAssetBaseUrl = getEnableAIFontsAssetBaseUrl;
223
+ exports.initEnableAIFontsAssetBaseUrl = initEnableAIFontsAssetBaseUrl;
224
+ exports.resolveEnableAIFontsAssetUrl = resolveEnableAIFontsAssetUrl;
package/dist/core.d.ts CHANGED
@@ -1,3 +1,7 @@
1
+ export declare function initEnableAIFontsAssetBaseUrl(baseUrl?: string): void;
2
+ export declare function getEnableAIFontsAssetBaseUrl(): string;
3
+ export declare function resolveEnableAIFontsAssetUrl(pathOrUrl: string): string;
4
+
1
5
  type IconMap<Key extends string> = Record<Key, string>;
2
6
  type FontSrc = {
3
7
  woff?: string;
@@ -1,8 +1,38 @@
1
1
  /**
2
- * @enableai-fonts/core v0.1.12
2
+ * @enableai-fonts/core v0.1.13-alpha.0
3
3
  * (c) 2024-present Enableai
4
4
  * @license Proprietary
5
5
  **/
6
+ const DEFAULT_ENABLEAI_FONTS_ASSET_BASE_URL = "https://static-dev.enableai.cn";
7
+ let assetBaseUrl = DEFAULT_ENABLEAI_FONTS_ASSET_BASE_URL;
8
+ let fontAssetUsed = false;
9
+ function normalizeBaseUrl(baseUrl) {
10
+ if (baseUrl === "/") return "/";
11
+ return baseUrl.replace(/\/+$/, "");
12
+ }
13
+ function isAbsoluteUrl(url) {
14
+ return /^(?:[a-z][a-z\d+\-.]*:)?\/\//i.test(url) || /^data:/i.test(url);
15
+ }
16
+ function initEnableAIFontsAssetBaseUrl(baseUrl) {
17
+ if (fontAssetUsed) {
18
+ console.warn(
19
+ "[enableai-fonts] initEnableAIFontsAssetBaseUrl should be called before font icons are initialized."
20
+ );
21
+ }
22
+ assetBaseUrl = baseUrl ? normalizeBaseUrl(baseUrl) : DEFAULT_ENABLEAI_FONTS_ASSET_BASE_URL;
23
+ }
24
+ function getEnableAIFontsAssetBaseUrl() {
25
+ return assetBaseUrl;
26
+ }
27
+ function resolveEnableAIFontsAssetUrl(pathOrUrl) {
28
+ fontAssetUsed = true;
29
+ if (!pathOrUrl || isAbsoluteUrl(pathOrUrl)) return pathOrUrl;
30
+ const baseUrl = getEnableAIFontsAssetBaseUrl();
31
+ if (!baseUrl) return pathOrUrl;
32
+ if (baseUrl === "/") return `/${pathOrUrl.replace(/^\/+/, "")}`;
33
+ return `${normalizeBaseUrl(baseUrl)}/${pathOrUrl.replace(/^\/+/, "")}`;
34
+ }
35
+
6
36
  class FontIconRegistry {
7
37
  constructor(options) {
8
38
  // font mode fields
@@ -46,9 +76,15 @@ class FontIconRegistry {
46
76
  }
47
77
  if (this.fontSrc) {
48
78
  const srcParts = [];
49
- if (this.fontSrc.woff) srcParts.push(`url("${this.fontSrc.woff}") format("woff")`);
50
- if (this.fontSrc.ttf) srcParts.push(`url("${this.fontSrc.ttf}") format("truetype")`);
51
- if (this.fontSrc.svg) srcParts.push(`url("${this.fontSrc.svg}") format("svg")`);
79
+ if (this.fontSrc.woff) {
80
+ srcParts.push(`url("${resolveEnableAIFontsAssetUrl(this.fontSrc.woff)}") format("woff")`);
81
+ }
82
+ if (this.fontSrc.ttf) {
83
+ srcParts.push(`url("${resolveEnableAIFontsAssetUrl(this.fontSrc.ttf)}") format("truetype")`);
84
+ }
85
+ if (this.fontSrc.svg) {
86
+ srcParts.push(`url("${resolveEnableAIFontsAssetUrl(this.fontSrc.svg)}") format("svg")`);
87
+ }
52
88
  if (srcParts.length === 0) {
53
89
  console.warn("[FontIconRegistry] fontSrc provided but empty; falling back to document.fonts.load");
54
90
  } else {
@@ -177,4 +213,4 @@ const ENABLEAI_FONT_STACK = `'Roboto', 'PingFang SC', 'Microsoft YaHei', 'Noto S
177
213
  BlinkMacSystemFont, 'Segoe UI', 'Helvetica Neue', Arial, 'Apple Color Emoji', 'Segoe UI Emoji', 'Noto Color Emoji',
178
214
  sans-serif`;
179
215
 
180
- export { ENABLEAI_FONT_STACK, FontIconRegistry };
216
+ export { ENABLEAI_FONT_STACK, FontIconRegistry, getEnableAIFontsAssetBaseUrl, initEnableAIFontsAssetBaseUrl, resolveEnableAIFontsAssetUrl };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@enableai-fonts/core",
3
- "version": "0.1.12",
3
+ "version": "0.1.13-alpha.0",
4
4
  "order": 1,
5
5
  "description": "",
6
6
  "main": "index.js",