react-native-nano-icons 0.1.7 → 0.2.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/README.md +75 -13
- package/android/src/main/java/com/nanoicons/NanoIconsFontLoaderModule.kt +58 -0
- package/android/src/main/java/com/nanoicons/NanoIconsPackage.kt +19 -2
- package/ios/NanoIconView.h +5 -0
- package/ios/NanoIconView.mm +35 -9
- package/ios/NanoIconsFontLoader.h +11 -0
- package/ios/NanoIconsFontLoader.mm +110 -0
- package/lib/commonjs/cli/build.d.ts +3 -0
- package/lib/commonjs/cli/build.js +8 -4
- package/lib/commonjs/cli/config.d.ts +1 -0
- package/lib/commonjs/cli/config.js +10 -0
- package/lib/commonjs/cli/expoConfig.d.ts +8 -0
- package/lib/commonjs/cli/expoConfig.js +34 -0
- package/lib/commonjs/cli/index.d.ts +2 -1
- package/lib/commonjs/cli/index.js +4 -1
- package/lib/commonjs/cli/link.js +32 -22
- package/lib/commonjs/plugin/src/types.d.ts +9 -0
- package/lib/commonjs/plugin/src/withNanoIconsFontLinking.d.ts +5 -0
- package/lib/commonjs/plugin/src/withNanoIconsFontLinking.js +24 -10
- package/lib/commonjs/scripts/cli.js +23 -11
- package/lib/commonjs/src/core/pipeline/config.d.ts +1 -0
- package/lib/commonjs/src/core/pipeline/managers.js +1 -2
- package/lib/commonjs/src/core/pipeline/run.js +1 -0
- package/lib/commonjs/src/core/svg/svg_dom.d.ts +1 -0
- package/lib/commonjs/src/core/svg/svg_dom.js +22 -17
- package/lib/commonjs/src/core/svg/svg_pathops.js +30 -16
- package/lib/commonjs/src/core/types.d.ts +3 -0
- package/lib/module/const/codegenPrimitives.js +2 -0
- package/lib/module/const/codegenPrimitives.js.map +1 -0
- package/lib/module/core/font/compile.js.map +1 -1
- package/lib/module/core/pipeline/config.js.map +1 -1
- package/lib/module/core/pipeline/managers.js.map +1 -1
- package/lib/module/core/pipeline/run.js +4 -1
- package/lib/module/core/pipeline/run.js.map +1 -1
- package/lib/module/core/svg/layers.js.map +1 -1
- package/lib/module/core/svg/svg_dom.js +19 -19
- package/lib/module/core/svg/svg_dom.js.map +1 -1
- package/lib/module/core/svg/svg_pathops.js.map +1 -1
- package/lib/module/createNanoIconsSet.js +2 -2
- package/lib/module/createNanoIconsSet.js.map +1 -1
- package/lib/module/createNanoIconsSet.native.js +43 -16
- package/lib/module/createNanoIconsSet.native.js.map +1 -1
- package/lib/module/createNanoIconsSet.shared.js +49 -20
- package/lib/module/createNanoIconsSet.shared.js.map +1 -1
- package/lib/module/createNanoIconsSet.web.js +78 -0
- package/lib/module/createNanoIconsSet.web.js.map +1 -0
- package/lib/module/loadDynamicFont.js +118 -0
- package/lib/module/loadDynamicFont.js.map +1 -0
- package/lib/module/specs/NanoIconViewNativeComponent.ts +9 -8
- package/lib/module/specs/NativeNanoIconsFontLoader.js +7 -0
- package/lib/module/specs/NativeNanoIconsFontLoader.js.map +1 -0
- package/lib/module/utils/glyphRuntime.js +37 -0
- package/lib/module/utils/glyphRuntime.js.map +1 -0
- package/lib/typescript/__tests__/glyphRuntime.unit.test.d.ts +2 -0
- package/lib/typescript/__tests__/glyphRuntime.unit.test.d.ts.map +1 -0
- package/lib/typescript/__tests__/link.unit.test.d.ts +3 -0
- package/lib/typescript/__tests__/link.unit.test.d.ts.map +1 -0
- package/lib/typescript/__tests__/loadDynamicFont.unit.test.d.ts +2 -0
- package/lib/typescript/__tests__/loadDynamicFont.unit.test.d.ts.map +1 -0
- package/lib/typescript/cli/build.d.ts +3 -0
- package/lib/typescript/cli/build.d.ts.map +1 -1
- package/lib/typescript/cli/link.d.ts +12 -0
- package/lib/typescript/cli/link.d.ts.map +1 -0
- package/lib/typescript/src/const/codegenPrimitives.d.ts +3 -0
- package/lib/typescript/src/const/codegenPrimitives.d.ts.map +1 -0
- package/lib/typescript/src/core/font/compile.d.ts.map +1 -1
- package/lib/typescript/src/core/pipeline/config.d.ts +1 -0
- package/lib/typescript/src/core/pipeline/config.d.ts.map +1 -1
- package/lib/typescript/src/core/pipeline/managers.d.ts.map +1 -1
- package/lib/typescript/src/core/pipeline/run.d.ts.map +1 -1
- package/lib/typescript/src/core/svg/svg_dom.d.ts +1 -0
- package/lib/typescript/src/core/svg/svg_dom.d.ts.map +1 -1
- package/lib/typescript/src/core/svg/svg_pathops.d.ts.map +1 -1
- package/lib/typescript/src/core/types.d.ts +3 -0
- package/lib/typescript/src/core/types.d.ts.map +1 -1
- package/lib/typescript/src/createNanoIconsSet.d.ts +1 -0
- package/lib/typescript/src/createNanoIconsSet.d.ts.map +1 -1
- package/lib/typescript/src/createNanoIconsSet.native.d.ts +1 -0
- package/lib/typescript/src/createNanoIconsSet.native.d.ts.map +1 -1
- package/lib/typescript/src/createNanoIconsSet.shared.d.ts +11 -0
- package/lib/typescript/src/createNanoIconsSet.shared.d.ts.map +1 -1
- package/lib/typescript/src/createNanoIconsSet.web.d.ts +7 -0
- package/lib/typescript/src/createNanoIconsSet.web.d.ts.map +1 -0
- package/lib/typescript/src/loadDynamicFont.d.ts +28 -0
- package/lib/typescript/src/loadDynamicFont.d.ts.map +1 -0
- package/lib/typescript/src/specs/NanoIconViewNativeComponent.d.ts +9 -8
- package/lib/typescript/src/specs/NanoIconViewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/specs/NativeNanoIconsFontLoader.d.ts +8 -0
- package/lib/typescript/src/specs/NativeNanoIconsFontLoader.d.ts.map +1 -0
- package/lib/typescript/src/types.d.ts +7 -1
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/lib/typescript/src/utils/glyphRuntime.d.ts +18 -0
- package/lib/typescript/src/utils/glyphRuntime.d.ts.map +1 -0
- package/package.json +8 -5
- package/plugin/src/types.ts +9 -0
- package/plugin/src/withNanoIconsFontLinking.ts +29 -10
- package/react-native-nano-icons.podspec +1 -1
- package/scripts/cli.ts +31 -11
- package/src/const/codegenPrimitives.ts +14 -0
- package/src/core/font/compile.ts +1 -2
- package/src/core/pipeline/config.ts +1 -0
- package/src/core/pipeline/managers.ts +5 -10
- package/src/core/pipeline/run.ts +11 -6
- package/src/core/svg/layers.ts +4 -4
- package/src/core/svg/svg_dom.ts +26 -23
- package/src/core/svg/svg_pathops.ts +50 -24
- package/src/core/types.ts +10 -2
- package/src/createNanoIconsSet.native.tsx +78 -26
- package/src/createNanoIconsSet.shared.tsx +93 -40
- package/src/createNanoIconsSet.tsx +9 -1
- package/src/createNanoIconsSet.web.tsx +109 -0
- package/src/loadDynamicFont.ts +162 -0
- package/src/specs/NanoIconViewNativeComponent.ts +9 -8
- package/src/specs/NativeNanoIconsFontLoader.ts +11 -0
- package/src/types.ts +5 -1
- package/src/utils/glyphRuntime.ts +46 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { DOMParser } from '@xmldom/xmldom';
|
|
4
4
|
import { parseColor } from "../../utils/parse.js";
|
|
5
5
|
// if the fill is implicit, walk ancestors for the first explicit fill value
|
|
6
6
|
function resolveInheritedFill(el) {
|
|
@@ -75,20 +75,17 @@ export const parsePath = p => {
|
|
|
75
75
|
};
|
|
76
76
|
};
|
|
77
77
|
export function parseFlattenedSvg(flattenedSvg, options) {
|
|
78
|
-
const
|
|
79
|
-
const
|
|
80
|
-
const svgEl = doc.querySelector('svg');
|
|
78
|
+
const doc = new DOMParser().parseFromString(flattenedSvg, 'image/svg+xml');
|
|
79
|
+
const svgEl = doc.documentElement;
|
|
81
80
|
const viewBoxRaw = svgEl?.getAttribute('viewBox')?.split(/\s+/).map(Number) ?? [0, 0, 100, 100];
|
|
82
|
-
const viewBox = viewBoxRaw.length === 4 && viewBoxRaw.every(
|
|
83
|
-
const pathEls = Array.from(
|
|
81
|
+
const viewBox = viewBoxRaw.length === 4 && viewBoxRaw.every(Number.isFinite) ? [viewBoxRaw[0], viewBoxRaw[1], viewBoxRaw[2], viewBoxRaw[3]] : [0, 0, 100, 100];
|
|
82
|
+
const pathEls = svgEl ? Array.from(svgEl.getElementsByTagName('path')) : [];
|
|
84
83
|
const paths = pathEls.map(parsePath).filter(p => p.d.trim() !== '').map(p => {
|
|
85
84
|
const {
|
|
86
85
|
d,
|
|
87
86
|
sanitized
|
|
88
87
|
} = sanitizePathData(p.d);
|
|
89
|
-
if (sanitized)
|
|
90
|
-
options?.onSanitize?.(p.d);
|
|
91
|
-
}
|
|
88
|
+
if (sanitized) options?.onSanitize?.(p.d);
|
|
92
89
|
return {
|
|
93
90
|
...p,
|
|
94
91
|
d
|
|
@@ -117,6 +114,12 @@ export function validateSvg(content) {
|
|
|
117
114
|
reason: '<filter> is not supported yet'
|
|
118
115
|
};
|
|
119
116
|
}
|
|
117
|
+
if (/<image[\s>]/i.test(content)) {
|
|
118
|
+
return {
|
|
119
|
+
valid: false,
|
|
120
|
+
reason: 'embedded raster <image> is not supported yet'
|
|
121
|
+
};
|
|
122
|
+
}
|
|
120
123
|
return {
|
|
121
124
|
valid: true
|
|
122
125
|
};
|
|
@@ -134,17 +137,14 @@ export function extractOriginalEvenoddDs(svgContent) {
|
|
|
134
137
|
if (!/<[^>]*fill-rule\s*=\s*["']evenodd/i.test(svgContent)) {
|
|
135
138
|
return [];
|
|
136
139
|
}
|
|
137
|
-
const
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
const results = [];
|
|
142
|
-
const pathEls = doc.querySelectorAll('path[fill-rule="evenodd"], path[clip-rule="evenodd"]');
|
|
143
|
-
for (const el of pathEls) {
|
|
140
|
+
const doc = new DOMParser().parseFromString(svgContent, 'image/svg+xml');
|
|
141
|
+
return Array.from(doc.getElementsByTagName('path')).reduce((acc, el) => {
|
|
142
|
+
const isEvenOdd = el.getAttribute('fill-rule') === 'evenodd' || el.getAttribute('clip-rule') === 'evenodd';
|
|
143
|
+
if (!isEvenOdd) return acc;
|
|
144
144
|
const d = el.getAttribute('d');
|
|
145
|
-
if (d)
|
|
146
|
-
|
|
147
|
-
|
|
145
|
+
if (d !== null && d !== '') acc.push(d);
|
|
146
|
+
return acc;
|
|
147
|
+
}, []);
|
|
148
148
|
}
|
|
149
149
|
|
|
150
150
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["DOMParser","parseColor","resolveInheritedFill","el","current","parentElement","fill","getAttribute","calculateOpColor","opacity","resolvedFill","r","g","b","a","finalAlpha","toFixed","sanitizePathData","d","trimmed","trim","test","sanitized","withoutClose","replace","nums","match","length","x","y","parsePath","p","op","fillOp","fillRule","undefined","opVal","parseFloat","fillOpVal","combinedOpacity","parseFlattenedSvg","flattenedSvg","options","doc","parseFromString","svgEl","documentElement","viewBoxRaw","split","map","Number","viewBox","every","isFinite","pathEls","Array","from","getElementsByTagName","paths","filter","onSanitize","shouldSkipPath","f","toLowerCase","validateSvg","content","valid","reason","extractOriginalEvenoddDs","svgContent","reduce","acc","isEvenOdd","push","restoreOriginalEvenoddDs","originalDs","oi","preprocessSvg"],"sourceRoot":"../../../../src","sources":["core/svg/svg_dom.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["EPS","roundN","x","ndigits","m","s","Number","isFinite","floor","Math","frac","TIE_EPS","roundedInt","abs","ceil","round","normPt","p","eqPt","a","b","aa","bb","signedAreaPolyline","points","length","i","x1","y1","x2","y2","approxSignedAreaFromContourCmds","contourCmds","VERB","steps","cx","cy","sx","sy","pts","add","y","push","cmd","v","MOVE","LINE","QUAD","x0","y0","t","mt","CUBIC","x3","y3","CLOSE","splitContours","cmds","contours","cur","ensureClosed","some","c","explicitCloseWantedFromCmds","start","end","contourToSegments","move","last","segs","type","synthetic","ctrl","c1","c2","applyClosePolicy","startPt","explicitCloseWanted","lastEnd","segmentsToContourCmds","out","reverseClosedContourKeepStart","reversed","slice","reverse","map","rotateClosedContourToStart","desiredStart","idx","rotated","concat","cmdsToVerbPoints","Error","wrapPath","pathkitPath","meta","moves","cloneWrap","h","PathKit","p2","NewPath","mergeMoves","aMoves","bMoves","pushUnique","pt","existing","bestStartMinYMinX","best","buildVerbMap","MOVE_VERB","LINE_VERB","QUAD_VERB","CONIC","CONIC_VERB","CUBIC_VERB","CLOSE_VERB","contourToPolyline","V","pointInPolygon","px","py","poly","inside","j","xi","yi","xj","yj","getContourSamplePoint","applyContainmentWinding","contourObjs","n","polylines","obj","samplePts","depths","Array","fill","ensureOrient","wantCCW","isCCW","convertEvenoddToWinding","d","FromSVGString","FILL_EVENODD","FillType","EVENODD","EVEN_ODD","setFillType","simplify","simplified","toSVGString","delete","toCmds","cc","absA","sort","allCmds","flatMap","parts","join","buildPathopsBackend","FILL_WINDING","WINDING","NONZERO","cmdsViaSvgRoundtrip","svg","normalizeSortRotateContours","preferStrokeCanonical","used","target","found","create_path","fillTypeInt","clone_path","delete_path","get_fill_type","ft","getFillType","set_fill_type","move_to","moveTo","line_to","lineTo","quad_to","quadTo","cubic_to","cubicTo","close","fixWinding","stroke","width","capInt","joinInt","miterLimit","dashArray","dashOffset","Caps","StrokeCap","Joins","StrokeJoin","cap","ROUND","SQUARE","BUTT","BEVEL","MITER","work","isArray","dash","stroked","miter_limit","wrapped","convert_conics_to_quads","_h","_tol","transform","e","f","op","aHandle","bHandle","opInt","Ops","PathOp","INTERSECT","DIFFERENCE","UNION","MakeFromOp","bounds","r","getBounds","fLeft","fTop","fRight","fBottom","area","total","iter_segments","normalized"],"sourceRoot":"../../../../src","sources":["core/svg/svg_pathops.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["EPS","roundN","x","ndigits","m","s","Number","isFinite","floor","Math","frac","TIE_EPS","roundedInt","abs","ceil","round","normPt","p","eqPt","a","b","aa","bb","signedAreaPolyline","points","length","i","x1","y1","x2","y2","approxSignedAreaFromContourCmds","contourCmds","VERB","steps","cx","cy","sx","sy","pts","add","y","push","cmd","v","MOVE","LINE","QUAD","x0","y0","t","mt","CUBIC","x3","y3","CLOSE","splitContours","cmds","contours","cur","ensureClosed","some","c","explicitCloseWantedFromCmds","start","end","contourToSegments","move","last","segs","type","synthetic","ctrl","c1","c2","applyClosePolicy","startPt","explicitCloseWanted","lastEnd","segmentsToContourCmds","out","reverseClosedContourKeepStart","reversed","slice","reverse","map","rotateClosedContourToStart","desiredStart","idx","rotated","concat","cmdsToVerbPoints","Error","wrapPath","pathkitPath","meta","moves","cloneWrap","h","PathKit","p2","NewPath","mergeMoves","aMoves","bMoves","pushUnique","pt","existing","bestStartMinYMinX","best","buildVerbMap","MOVE_VERB","LINE_VERB","QUAD_VERB","CONIC","CONIC_VERB","CUBIC_VERB","CLOSE_VERB","contourToPolyline","V","pointInPolygon","px","py","poly","inside","j","xi","yi","xj","yj","getContourSamplePoint","applyContainmentWinding","contourObjs","n","polylines","obj","samplePts","depths","Array","fill","ensureOrient","wantCCW","isCCW","convertEvenoddToWinding","d","FromSVGString","FILL_EVENODD","FillType","EVENODD","EVEN_ODD","setFillType","simplify","simplified","toSVGString","delete","toCmds","cc","absA","sort","allCmds","flatMap","parts","join","buildPathopsBackend","FILL_WINDING","WINDING","NONZERO","cmdsViaSvgRoundtrip","svg","normalizeSortRotateContours","preferStrokeCanonical","used","target","found","create_path","fillTypeInt","clone_path","delete_path","get_fill_type","ft","getFillType","set_fill_type","move_to","moveTo","line_to","lineTo","quad_to","quadTo","cubic_to","cubicTo","close","fixWinding","stroke","width","capInt","joinInt","miterLimit","dashArray","dashOffset","Caps","StrokeCap","Joins","StrokeJoin","cap","ROUND","SQUARE","BUTT","BEVEL","MITER","work","isArray","dash","stroked","miter_limit","wrapped","convert_conics_to_quads","_h","_tol","transform","e","f","op","aHandle","bHandle","opInt","Ops","PathOp","INTERSECT","DIFFERENCE","UNION","MakeFromOp","bounds","r","getBounds","fLeft","fTop","fRight","fBottom","area","total","iter_segments","normalized"],"sourceRoot":"../../../../src","sources":["core/svg/svg_pathops.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { createJSIconSet } from "./createNanoIconsSet.shared.js";
|
|
4
4
|
export { shallowEqualColor } from "./utils/shallowEqualColor.js";
|
|
5
|
-
export function createIconSet(glyphMap) {
|
|
6
|
-
return createJSIconSet(glyphMap);
|
|
5
|
+
export function createIconSet(glyphMap, font) {
|
|
6
|
+
return createJSIconSet(glyphMap, font);
|
|
7
7
|
}
|
|
8
8
|
//# sourceMappingURL=createNanoIconsSet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createJSIconSet","shallowEqualColor","createIconSet","glyphMap"],"sourceRoot":"../../src","sources":["createNanoIconsSet.tsx"],"mappings":";;AAEA,SAASA,eAAe,QAAQ,gCAA6B;AAG7D,SAASC,iBAAiB,QAAQ,8BAA2B;
|
|
1
|
+
{"version":3,"names":["createJSIconSet","shallowEqualColor","createIconSet","glyphMap","font"],"sourceRoot":"../../src","sources":["createNanoIconsSet.tsx"],"mappings":";;AAEA,SAASA,eAAe,QAAQ,gCAA6B;AAG7D,SAASC,iBAAiB,QAAQ,8BAA2B;AAS7D,OAAO,SAASC,aAAaA,CAC3BC,QAAY,EACZC,IAAc,EACK;EACnB,OAAOJ,eAAe,CAACG,QAAQ,EAAEC,IAAI,CAAC;AACxC","ignoreList":[]}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { memo, useMemo } from 'react';
|
|
4
|
-
import { PixelRatio, UIManager, processColor } from 'react-native';
|
|
4
|
+
import { PixelRatio, UIManager, View, processColor } from 'react-native';
|
|
5
5
|
import { shallowEqualColor } from "./utils/shallowEqualColor.js";
|
|
6
|
+
import { DEFAULT_ICON_SIZE, resolveGlyphEntry, createLayerColorResolver } from "./utils/glyphRuntime.js";
|
|
6
7
|
import NanoIconViewNative from './specs/NanoIconViewNativeComponent';
|
|
7
|
-
import { createJSIconSet } from "./createNanoIconsSet.shared.js";
|
|
8
|
+
import { createJSIconSet, warnIfLinkingMismatch } from "./createNanoIconsSet.shared.js";
|
|
9
|
+
import { loadDynamicFont, useDynamicFontPending } from "./loadDynamicFont.js";
|
|
8
10
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
11
|
export { shallowEqualColor };
|
|
10
|
-
const DEFAULT_ICON_SIZE = 12;
|
|
11
12
|
const HAS_NATIVE_IMPL = UIManager.hasViewManagerConfig('NanoIconView');
|
|
12
13
|
|
|
13
14
|
// Shared processColor cache — avoids redundant color parsing for repeated
|
|
@@ -21,15 +22,21 @@ function cachedProcessColor(color) {
|
|
|
21
22
|
}
|
|
22
23
|
return result;
|
|
23
24
|
}
|
|
24
|
-
export function createIconSet(glyphMap) {
|
|
25
|
+
export function createIconSet(glyphMap, font) {
|
|
25
26
|
if (!HAS_NATIVE_IMPL) {
|
|
26
|
-
return createJSIconSet(glyphMap);
|
|
27
|
+
return createJSIconSet(glyphMap, font);
|
|
27
28
|
}
|
|
28
29
|
const fontFamilyBasename = glyphMap.m.f;
|
|
29
30
|
const unitsPerEm = glyphMap.m.u;
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
warnIfLinkingMismatch(fontFamilyBasename, glyphMap.m.l, font);
|
|
32
|
+
|
|
33
|
+
// dynamically linked font - register and hide icons until ready
|
|
34
|
+
const managed = glyphMap.m.l === 'd' && font != null;
|
|
35
|
+
if (managed) {
|
|
36
|
+
void loadDynamicFont(fontFamilyBasename, font).catch(err => {
|
|
37
|
+
if (__DEV__) console.warn(`[react-native-nano-icons] Failed to load dynamic font "${fontFamilyBasename}".`, err);
|
|
38
|
+
});
|
|
39
|
+
}
|
|
33
40
|
|
|
34
41
|
// Pre-compute per-icon static data (codepoints, default colors) once at set creation
|
|
35
42
|
// Avoids layers.map() + processColor per icon mount
|
|
@@ -60,13 +67,16 @@ export function createIconSet(glyphMap) {
|
|
|
60
67
|
accessible,
|
|
61
68
|
accessibilityLabel,
|
|
62
69
|
accessibilityRole = 'image',
|
|
70
|
+
accessibilityElementsHidden,
|
|
71
|
+
importantForAccessibility,
|
|
63
72
|
testID,
|
|
64
73
|
ref
|
|
65
74
|
}) => {
|
|
66
75
|
const fontScale = allowFontScaling ? PixelRatio.getFontScale() : 1;
|
|
67
|
-
const [adv, layers] =
|
|
76
|
+
const [adv, layers] = resolveGlyphEntry(glyphMap, name);
|
|
68
77
|
const scaledSize = size * fontScale;
|
|
69
78
|
const width = adv / unitsPerEm * scaledSize;
|
|
79
|
+
const pending = useDynamicFontPending(managed, fontFamilyBasename);
|
|
70
80
|
const nameStr = name;
|
|
71
81
|
const codepoints = getCodepoints(nameStr, layers);
|
|
72
82
|
const processedColors = useMemo(() => {
|
|
@@ -74,17 +84,28 @@ export function createIconSet(glyphMap) {
|
|
|
74
84
|
if (color === undefined || color === null) {
|
|
75
85
|
return getDefaultColors(nameStr, layers);
|
|
76
86
|
}
|
|
77
|
-
const
|
|
78
|
-
|
|
79
|
-
return layers.map(([, srcColor], i) => {
|
|
80
|
-
const layerColor = colorArray[i] ?? lastPaletteColor ?? srcColor ?? 'black';
|
|
81
|
-
return cachedProcessColor(layerColor);
|
|
82
|
-
});
|
|
87
|
+
const resolveColor = createLayerColorResolver(color);
|
|
88
|
+
return layers.map(([, srcColor], i) => cachedProcessColor(resolveColor(i, srcColor)));
|
|
83
89
|
}, [nameStr, color]);
|
|
84
90
|
const nativeStyle = useMemo(() => [{
|
|
85
91
|
width,
|
|
86
92
|
height: scaledSize
|
|
87
93
|
}, style], [scaledSize, width, style]);
|
|
94
|
+
|
|
95
|
+
// Hide-until-ready: while the dynamic font is registering, render a
|
|
96
|
+
// placeholder. The native view mounts only once the font is registered.
|
|
97
|
+
if (pending) {
|
|
98
|
+
return /*#__PURE__*/_jsx(View, {
|
|
99
|
+
ref: ref,
|
|
100
|
+
style: nativeStyle,
|
|
101
|
+
accessible: accessible,
|
|
102
|
+
accessibilityRole: accessibilityRole,
|
|
103
|
+
accessibilityLabel: accessibilityLabel ?? name,
|
|
104
|
+
accessibilityElementsHidden: accessibilityElementsHidden,
|
|
105
|
+
importantForAccessibility: importantForAccessibility,
|
|
106
|
+
testID: testID
|
|
107
|
+
});
|
|
108
|
+
}
|
|
88
109
|
return /*#__PURE__*/_jsx(NanoIconViewNative, {
|
|
89
110
|
ref: ref,
|
|
90
111
|
fontFamily: fontFamilyBasename,
|
|
@@ -99,10 +120,16 @@ export function createIconSet(glyphMap) {
|
|
|
99
120
|
accessible: accessible,
|
|
100
121
|
accessibilityRole: accessibilityRole,
|
|
101
122
|
accessibilityLabel: accessibilityLabel ?? name,
|
|
123
|
+
accessibilityElementsHidden: accessibilityElementsHidden,
|
|
124
|
+
importantForAccessibility: importantForAccessibility,
|
|
102
125
|
testID: testID
|
|
103
126
|
});
|
|
104
127
|
}, (prev, next) => prev.name === next.name && prev.size === next.size && prev.allowFontScaling === next.allowFontScaling && prev.style === next.style && shallowEqualColor(prev.color, next.color));
|
|
105
128
|
Icon.displayName = `NanoIcon(${fontFamilyBasename})`;
|
|
106
|
-
|
|
129
|
+
const IconComp = Icon;
|
|
130
|
+
IconComp.loadFont = override => glyphMap.m.l === 'd' ? loadDynamicFont(fontFamilyBasename, override ?? font, {
|
|
131
|
+
force: true
|
|
132
|
+
}) : Promise.resolve();
|
|
133
|
+
return IconComp;
|
|
107
134
|
}
|
|
108
135
|
//# sourceMappingURL=createNanoIconsSet.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["memo","useMemo","PixelRatio","UIManager","processColor","shallowEqualColor","NanoIconViewNative","createJSIconSet","
|
|
1
|
+
{"version":3,"names":["memo","useMemo","PixelRatio","UIManager","View","processColor","shallowEqualColor","DEFAULT_ICON_SIZE","resolveGlyphEntry","createLayerColorResolver","NanoIconViewNative","createJSIconSet","warnIfLinkingMismatch","loadDynamicFont","useDynamicFontPending","jsx","_jsx","HAS_NATIVE_IMPL","hasViewManagerConfig","processedColorCache","Map","cachedProcessColor","color","result","get","undefined","set","createIconSet","glyphMap","font","fontFamilyBasename","m","f","unitsPerEm","u","l","managed","catch","err","__DEV__","console","warn","codepointsCache","defaultColorsCache","getCodepoints","name","layers","cp","map","c","getDefaultColors","colors","srcColor","Icon","size","style","allowFontScaling","accessible","accessibilityLabel","accessibilityRole","accessibilityElementsHidden","importantForAccessibility","testID","ref","fontScale","getFontScale","adv","scaledSize","width","pending","nameStr","codepoints","processedColors","resolveColor","i","nativeStyle","height","fontFamily","fontSize","advanceWidth","iconWidth","iconHeight","prev","next","displayName","IconComp","loadFont","override","force","Promise","resolve"],"sourceRoot":"../../src","sources":["createNanoIconsSet.native.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,16 +3,48 @@
|
|
|
3
3
|
import { memo, useMemo } from 'react';
|
|
4
4
|
import { PixelRatio, Platform, Text, View } from 'react-native';
|
|
5
5
|
import { shallowEqualColor } from "./utils/shallowEqualColor.js";
|
|
6
|
+
import { DEFAULT_ICON_SIZE, resolveGlyphEntry, createCharCache, createLayerColorResolver } from "./utils/glyphRuntime.js";
|
|
7
|
+
import { loadDynamicFont, useDynamicFontPending } from "./loadDynamicFont.js";
|
|
6
8
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
9
|
export { shallowEqualColor };
|
|
8
|
-
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Warn when the `font` argument and the glyphmap's linking mode are inconsistent.
|
|
13
|
+
*
|
|
14
|
+
* - Dynamic glyphmap without a `font` arg: caller probably forgot to pass it; icons
|
|
15
|
+
* will render as tofu until the host app loads a font under family `fontFamily`.
|
|
16
|
+
* - Static glyphmap with a `font` arg: argument is ignored, font is bundled natively.
|
|
17
|
+
*
|
|
18
|
+
* Fires once per `createIconSet` call (not per render).
|
|
19
|
+
*/
|
|
20
|
+
export function warnIfLinkingMismatch(fontFamily, linking, font) {
|
|
21
|
+
if (!__DEV__) return;
|
|
22
|
+
const isDynamic = linking === 'd';
|
|
23
|
+
if (isDynamic && font == null) {
|
|
24
|
+
console.warn(`[react-native-nano-icons] "${fontFamily}" is built with dynamic linking ` + `but no font was passed to createIconSet. Icons will render as tofu ` + `until a font is loaded and registered under family "${fontFamily}".`);
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
if (!isDynamic && font != null) {
|
|
28
|
+
console.warn(`[react-native-nano-icons] "${fontFamily}" is built with static linking; ` + `the font argument passed to createIconSet is ignored. ` + `Set linking: 'dynamic' in your config to opt into OTA delivery.`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
9
31
|
|
|
10
32
|
/**
|
|
11
33
|
* JS implementation using <View> + <Text> layers.
|
|
12
34
|
* Used on web and as a fallback when native component is unavailable (e.g. Expo Go).
|
|
13
35
|
*/
|
|
14
|
-
|
|
36
|
+
|
|
37
|
+
export function createJSIconSet(glyphMap, font) {
|
|
15
38
|
const fontBasename = glyphMap.m.f;
|
|
39
|
+
warnIfLinkingMismatch(fontBasename, glyphMap.m.l, font);
|
|
40
|
+
|
|
41
|
+
// dynamically linked font - register and hide icons until ready
|
|
42
|
+
const managed = glyphMap.m.l === 'd' && font != null;
|
|
43
|
+
if (managed) {
|
|
44
|
+
void loadDynamicFont(fontBasename, font).catch(err => {
|
|
45
|
+
if (__DEV__) console.warn(`[react-native-nano-icons] Failed to load dynamic font "${fontBasename}".`, err);
|
|
46
|
+
});
|
|
47
|
+
}
|
|
16
48
|
const fontReference = Platform.select({
|
|
17
49
|
windows: `/Assets/${fontBasename}`,
|
|
18
50
|
default: fontBasename
|
|
@@ -26,18 +58,7 @@ export function createJSIconSet(glyphMap) {
|
|
|
26
58
|
bottom: 0
|
|
27
59
|
};
|
|
28
60
|
const unitsPerEm = glyphMap.m.u;
|
|
29
|
-
const
|
|
30
|
-
return glyphMap.i[name] ?? [unitsPerEm, [[63, 'black']]];
|
|
31
|
-
};
|
|
32
|
-
const codepointCache = new Map();
|
|
33
|
-
const getChar = codepoint => {
|
|
34
|
-
let ch = codepointCache.get(codepoint);
|
|
35
|
-
if (ch === undefined) {
|
|
36
|
-
ch = String.fromCodePoint(codepoint);
|
|
37
|
-
codepointCache.set(codepoint, ch);
|
|
38
|
-
}
|
|
39
|
-
return ch;
|
|
40
|
-
};
|
|
61
|
+
const getChar = createCharCache();
|
|
41
62
|
const Icon = /*#__PURE__*/memo(({
|
|
42
63
|
name,
|
|
43
64
|
size = DEFAULT_ICON_SIZE,
|
|
@@ -47,15 +68,17 @@ export function createJSIconSet(glyphMap) {
|
|
|
47
68
|
accessible,
|
|
48
69
|
accessibilityLabel,
|
|
49
70
|
accessibilityRole = 'image',
|
|
71
|
+
accessibilityElementsHidden,
|
|
72
|
+
importantForAccessibility,
|
|
50
73
|
testID,
|
|
51
74
|
ref
|
|
52
75
|
}) => {
|
|
53
76
|
const fontScale = allowFontScaling ? PixelRatio.getFontScale() : 1;
|
|
54
|
-
const [adv, layers] =
|
|
77
|
+
const [adv, layers] = resolveGlyphEntry(glyphMap, name);
|
|
55
78
|
const scaledSize = size * fontScale;
|
|
56
79
|
const width = adv / unitsPerEm * scaledSize;
|
|
57
|
-
const
|
|
58
|
-
const
|
|
80
|
+
const pending = useDynamicFontPending(managed, fontBasename);
|
|
81
|
+
const resolveColor = createLayerColorResolver(color);
|
|
59
82
|
const containerStyle = useMemo(() => [{
|
|
60
83
|
height: scaledSize,
|
|
61
84
|
width,
|
|
@@ -70,9 +93,11 @@ export function createJSIconSet(glyphMap) {
|
|
|
70
93
|
accessible: accessible,
|
|
71
94
|
accessibilityRole: accessibilityRole,
|
|
72
95
|
accessibilityLabel: accessibilityLabel ?? name,
|
|
96
|
+
accessibilityElementsHidden: accessibilityElementsHidden,
|
|
97
|
+
importantForAccessibility: importantForAccessibility,
|
|
73
98
|
testID: testID,
|
|
74
|
-
children: layers.map(([codepoint, srcColor], i) => {
|
|
75
|
-
const layerColor =
|
|
99
|
+
children: pending ? null : layers.map(([codepoint, srcColor], i) => {
|
|
100
|
+
const layerColor = resolveColor(i, srcColor);
|
|
76
101
|
return /*#__PURE__*/_jsx(Text, {
|
|
77
102
|
selectable: false,
|
|
78
103
|
accessible: false,
|
|
@@ -86,6 +111,10 @@ export function createJSIconSet(glyphMap) {
|
|
|
86
111
|
});
|
|
87
112
|
}, (prev, next) => prev.name === next.name && prev.size === next.size && prev.allowFontScaling === next.allowFontScaling && prev.style === next.style && shallowEqualColor(prev.color, next.color));
|
|
88
113
|
Icon.displayName = `NanoIcon(${fontBasename})`;
|
|
89
|
-
|
|
114
|
+
const IconComp = Icon;
|
|
115
|
+
IconComp.loadFont = override => glyphMap.m.l === 'd' ? loadDynamicFont(fontBasename, override ?? font, {
|
|
116
|
+
force: true
|
|
117
|
+
}) : Promise.resolve();
|
|
118
|
+
return IconComp;
|
|
90
119
|
}
|
|
91
120
|
//# sourceMappingURL=createNanoIconsSet.shared.js.map
|