@react-native-vector-icons/common 0.0.1-alpha.8 → 11.0.0-alpha.1
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/LICENSE +1 -2
- package/README.md +49 -91
- package/android/build.gradle +37 -3
- package/android/generated/android/app/build/generated/source/codegen/java/com/facebook/fbreact/specs/NativeVectorIconsSpec.java +42 -0
- package/android/generated/android/app/build/generated/source/codegen/jni/CMakeLists.txt +49 -0
- package/android/generated/android/app/build/generated/source/codegen/jni/RNVectorIconsSpec-generated.cpp +38 -0
- package/android/generated/android/app/build/generated/source/codegen/jni/RNVectorIconsSpec.h +31 -0
- package/android/generated/android/app/build/generated/source/codegen/jni/react/renderer/components/RNVectorIconsSpec/ComponentDescriptors.cpp +22 -0
- package/android/generated/android/app/build/generated/source/codegen/jni/react/renderer/components/RNVectorIconsSpec/ComponentDescriptors.h +24 -0
- package/android/generated/android/app/build/generated/source/codegen/jni/react/renderer/components/RNVectorIconsSpec/EventEmitters.cpp +16 -0
- package/android/generated/android/app/build/generated/source/codegen/jni/react/renderer/components/RNVectorIconsSpec/EventEmitters.h +17 -0
- package/android/generated/android/app/build/generated/source/codegen/jni/react/renderer/components/RNVectorIconsSpec/Props.cpp +19 -0
- package/android/generated/android/app/build/generated/source/codegen/jni/react/renderer/components/RNVectorIconsSpec/Props.h +18 -0
- package/android/generated/android/app/build/generated/source/codegen/jni/react/renderer/components/RNVectorIconsSpec/RNVectorIconsSpecJSI-generated.cpp +40 -0
- package/android/generated/android/app/build/generated/source/codegen/jni/react/renderer/components/RNVectorIconsSpec/RNVectorIconsSpecJSI.h +76 -0
- package/android/generated/android/app/build/generated/source/codegen/jni/react/renderer/components/RNVectorIconsSpec/ShadowNodes.cpp +17 -0
- package/android/generated/android/app/build/generated/source/codegen/jni/react/renderer/components/RNVectorIconsSpec/ShadowNodes.h +23 -0
- package/android/generated/android/app/build/generated/source/codegen/jni/react/renderer/components/RNVectorIconsSpec/States.cpp +16 -0
- package/android/generated/android/app/build/generated/source/codegen/jni/react/renderer/components/RNVectorIconsSpec/States.h +19 -0
- package/android/src/main/AndroidManifestNew.xml +1 -1
- package/android/src/main/java/com/reactnativevectoricons/common/VectorIconsModule.kt +90 -0
- package/android/src/main/java/com/reactnativevectoricons/common/VectorIconsPackage.kt +35 -0
- package/android/src/newarch/VectorIconsSpec.kt +7 -0
- package/android/src/oldarch/VectorIconsSpec.kt +38 -0
- package/ios/VectorIcons.h +13 -17
- package/ios/VectorIcons.mm +76 -92
- package/ios/generated/build/generated/ios/FBReactNativeSpec/FBReactNativeSpec-generated.mm +1881 -0
- package/ios/generated/build/generated/ios/FBReactNativeSpec/FBReactNativeSpec.h +2321 -0
- package/ios/generated/build/generated/ios/FBReactNativeSpecJSI-generated.cpp +2785 -0
- package/ios/generated/build/generated/ios/FBReactNativeSpecJSI.h +7511 -0
- package/ios/generated/build/generated/ios/RCTModulesConformingToProtocolsProvider.h +18 -0
- package/ios/generated/build/generated/ios/RCTModulesConformingToProtocolsProvider.mm +33 -0
- package/ios/generated/build/generated/ios/RNVectorIconsSpec/RNVectorIconsSpec-generated.mm +36 -0
- package/ios/generated/build/generated/ios/RNVectorIconsSpec/RNVectorIconsSpec.h +58 -0
- package/ios/generated/build/generated/ios/RNVectorIconsSpecJSI-generated.cpp +40 -0
- package/ios/generated/build/generated/ios/RNVectorIconsSpecJSI.h +76 -0
- package/ios/generated/build/generated/ios/react/renderer/components/RNVectorIconsSpec/ComponentDescriptors.cpp +22 -0
- package/ios/generated/build/generated/ios/react/renderer/components/RNVectorIconsSpec/ComponentDescriptors.h +24 -0
- package/ios/generated/build/generated/ios/react/renderer/components/RNVectorIconsSpec/EventEmitters.cpp +16 -0
- package/ios/generated/build/generated/ios/react/renderer/components/RNVectorIconsSpec/EventEmitters.h +17 -0
- package/ios/generated/build/generated/ios/react/renderer/components/RNVectorIconsSpec/Props.cpp +19 -0
- package/ios/generated/build/generated/ios/react/renderer/components/RNVectorIconsSpec/Props.h +18 -0
- package/ios/generated/build/generated/ios/react/renderer/components/RNVectorIconsSpec/RCTComponentViewHelpers.h +18 -0
- package/ios/generated/build/generated/ios/react/renderer/components/RNVectorIconsSpec/ShadowNodes.cpp +17 -0
- package/ios/generated/build/generated/ios/react/renderer/components/RNVectorIconsSpec/ShadowNodes.h +23 -0
- package/ios/generated/build/generated/ios/react/renderer/components/RNVectorIconsSpec/States.cpp +16 -0
- package/ios/generated/build/generated/ios/react/renderer/components/RNVectorIconsSpec/States.h +19 -0
- package/lib/commonjs/NativeVectorIcons.js.map +1 -1
- package/lib/commonjs/create-icon-set.js +49 -36
- package/lib/commonjs/create-icon-set.js.map +1 -1
- package/lib/commonjs/dynamicLoading/dynamic-font-loading.js +92 -0
- package/lib/commonjs/dynamicLoading/dynamic-font-loading.js.map +1 -0
- package/lib/commonjs/dynamicLoading/dynamic-font-loading.web.js +20 -0
- package/lib/commonjs/dynamicLoading/dynamic-font-loading.web.js.map +1 -0
- package/lib/commonjs/dynamicLoading/dynamic-loading-setting.js +50 -0
- package/lib/commonjs/dynamicLoading/dynamic-loading-setting.js.map +1 -0
- package/lib/commonjs/dynamicLoading/types.js +2 -0
- package/lib/commonjs/dynamicLoading/types.js.map +1 -0
- package/lib/commonjs/ensure-native-module-available.js +1 -1
- package/lib/commonjs/ensure-native-module-available.js.map +1 -1
- package/lib/commonjs/index.js +57 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/scripts/common.js +49 -0
- package/lib/commonjs/scripts/common.js.map +1 -0
- package/lib/commonjs/scripts/getFonts.js +6 -40
- package/lib/commonjs/scripts/getFonts.js.map +1 -1
- package/lib/commonjs/scripts/updatePlist.js +54 -0
- package/lib/commonjs/scripts/updatePlist.js.map +1 -0
- package/lib/module/NativeVectorIcons.js +2 -0
- package/lib/module/NativeVectorIcons.js.map +1 -1
- package/lib/module/NativeVectorIcons.web.js +2 -0
- package/lib/module/NativeVectorIcons.web.js.map +1 -1
- package/lib/module/create-icon-set.js +49 -34
- package/lib/module/create-icon-set.js.map +1 -1
- package/lib/module/create-icon-source-cache.js +2 -0
- package/lib/module/create-icon-source-cache.js.map +1 -1
- package/lib/module/dynamicLoading/dynamic-font-loading.js +85 -0
- package/lib/module/dynamicLoading/dynamic-font-loading.js.map +1 -0
- package/lib/module/dynamicLoading/dynamic-font-loading.web.js +16 -0
- package/lib/module/dynamicLoading/dynamic-font-loading.web.js.map +1 -0
- package/lib/module/dynamicLoading/dynamic-loading-setting.js +41 -0
- package/lib/module/dynamicLoading/dynamic-loading-setting.js.map +1 -0
- package/lib/module/dynamicLoading/types.js +2 -0
- package/lib/module/dynamicLoading/types.js.map +1 -0
- package/lib/module/ensure-native-module-available.js +2 -0
- package/lib/module/ensure-native-module-available.js.map +1 -1
- package/lib/module/index.js +33 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/scripts/common.js +43 -0
- package/lib/module/scripts/common.js.map +1 -0
- package/lib/module/scripts/getFonts.js +8 -39
- package/lib/module/scripts/getFonts.js.map +1 -1
- package/lib/module/scripts/updatePlist.js +51 -0
- package/lib/module/scripts/updatePlist.js.map +1 -0
- package/lib/typescript/commonjs/package.json +1 -0
- package/lib/typescript/commonjs/src/NativeVectorIcons.d.ts +8 -0
- package/lib/typescript/commonjs/src/NativeVectorIcons.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/NativeVectorIcons.web.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/create-icon-set.d.ts +36 -0
- package/lib/typescript/commonjs/src/create-icon-set.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/create-icon-source-cache.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/dynamicLoading/dynamic-font-loading.d.ts +3 -0
- package/lib/typescript/commonjs/src/dynamicLoading/dynamic-font-loading.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/dynamicLoading/dynamic-font-loading.web.d.ts +6 -0
- package/lib/typescript/commonjs/src/dynamicLoading/dynamic-font-loading.web.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/dynamicLoading/dynamic-loading-setting.d.ts +41 -0
- package/lib/typescript/commonjs/src/dynamicLoading/dynamic-loading-setting.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/dynamicLoading/types.d.ts +9 -0
- package/lib/typescript/commonjs/src/dynamicLoading/types.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/ensure-native-module-available.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/index.d.ts +6 -0
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/scripts/common.d.ts +2 -0
- package/lib/typescript/commonjs/src/scripts/common.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/scripts/getFonts.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/scripts/updatePlist.d.ts +3 -0
- package/lib/typescript/commonjs/src/scripts/updatePlist.d.ts.map +1 -0
- package/lib/typescript/module/package.json +1 -0
- package/lib/typescript/module/src/NativeVectorIcons.d.ts +8 -0
- package/lib/typescript/module/src/NativeVectorIcons.d.ts.map +1 -0
- package/lib/typescript/module/src/NativeVectorIcons.web.d.ts +3 -0
- package/lib/typescript/module/src/NativeVectorIcons.web.d.ts.map +1 -0
- package/lib/typescript/module/src/create-icon-set.d.ts +36 -0
- package/lib/typescript/module/src/create-icon-set.d.ts.map +1 -0
- package/lib/typescript/module/src/create-icon-source-cache.d.ts +21 -0
- package/lib/typescript/module/src/create-icon-source-cache.d.ts.map +1 -0
- package/lib/typescript/module/src/dynamicLoading/dynamic-font-loading.d.ts +3 -0
- package/lib/typescript/module/src/dynamicLoading/dynamic-font-loading.d.ts.map +1 -0
- package/lib/typescript/module/src/dynamicLoading/dynamic-font-loading.web.d.ts +6 -0
- package/lib/typescript/module/src/dynamicLoading/dynamic-font-loading.web.d.ts.map +1 -0
- package/lib/typescript/module/src/dynamicLoading/dynamic-loading-setting.d.ts +41 -0
- package/lib/typescript/module/src/dynamicLoading/dynamic-loading-setting.d.ts.map +1 -0
- package/lib/typescript/module/src/dynamicLoading/types.d.ts +9 -0
- package/lib/typescript/module/src/dynamicLoading/types.d.ts.map +1 -0
- package/lib/typescript/module/src/ensure-native-module-available.d.ts +2 -0
- package/lib/typescript/module/src/ensure-native-module-available.d.ts.map +1 -0
- package/lib/typescript/module/src/index.d.ts +6 -0
- package/lib/typescript/module/src/index.d.ts.map +1 -0
- package/lib/typescript/module/src/scripts/common.d.ts +2 -0
- package/lib/typescript/module/src/scripts/common.d.ts.map +1 -0
- package/lib/typescript/module/src/scripts/getFonts.d.ts +3 -0
- package/lib/typescript/module/src/scripts/getFonts.d.ts.map +1 -0
- package/lib/typescript/module/src/scripts/updatePlist.d.ts +3 -0
- package/lib/typescript/module/src/scripts/updatePlist.d.ts.map +1 -0
- package/package.json +72 -44
- package/react-native-vector-icons.podspec +67 -42
- package/react-native.config.js +13 -0
- package/src/NativeVectorIcons.ts +2 -4
- package/src/create-icon-set.tsx +79 -32
- package/src/dynamicLoading/dynamic-font-loading.ts +97 -0
- package/src/dynamicLoading/dynamic-font-loading.web.ts +15 -0
- package/src/dynamicLoading/dynamic-loading-setting.ts +77 -0
- package/src/dynamicLoading/types.ts +10 -0
- package/src/index.ts +48 -1
- package/src/scripts/common.ts +52 -0
- package/src/scripts/getFonts.ts +6 -47
- package/src/scripts/updatePlist.ts +58 -0
- package/android/src/main/java/com/reactnativevectoricons/common/VectorIconsModule.java +0 -121
- package/android/src/main/java/com/reactnativevectoricons/common/VectorIconsPackage.java +0 -45
- package/android/src/newarch/VectorIconsSpec.java +0 -9
- package/android/src/oldarch/VectorIconsSpec.java +0 -18
- package/lib/typescript/src/NativeVectorIcons.d.ts +0 -9
- package/lib/typescript/src/NativeVectorIcons.d.ts.map +0 -1
- package/lib/typescript/src/NativeVectorIcons.web.d.ts.map +0 -1
- package/lib/typescript/src/create-icon-set.d.ts +0 -26
- package/lib/typescript/src/create-icon-set.d.ts.map +0 -1
- package/lib/typescript/src/create-icon-source-cache.d.ts.map +0 -1
- package/lib/typescript/src/ensure-native-module-available.d.ts.map +0 -1
- package/lib/typescript/src/index.d.ts +0 -3
- package/lib/typescript/src/index.d.ts.map +0 -1
- package/lib/typescript/src/scripts/getFonts.d.ts.map +0 -1
- /package/lib/typescript/{src → commonjs/src}/NativeVectorIcons.web.d.ts +0 -0
- /package/lib/typescript/{src → commonjs/src}/create-icon-source-cache.d.ts +0 -0
- /package/lib/typescript/{src → commonjs/src}/ensure-native-module-available.d.ts +0 -0
- /package/lib/typescript/{src → commonjs/src}/scripts/getFonts.d.ts +0 -0
|
@@ -1,19 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { forwardRef, useEffect } from 'react';
|
|
3
4
|
import { PixelRatio, Platform, Text, processColor } from 'react-native';
|
|
4
5
|
import NativeIconAPI from './NativeVectorIcons';
|
|
5
|
-
import createIconSourceCache from
|
|
6
|
-
import
|
|
6
|
+
import createIconSourceCache from "./create-icon-source-cache.js";
|
|
7
|
+
import { dynamicLoader } from './dynamicLoading/dynamic-font-loading';
|
|
8
|
+
import { isDynamicLoadingEnabled } from "./dynamicLoading/dynamic-loading-setting.js";
|
|
9
|
+
import ensureNativeModuleAvailable from "./ensure-native-module-available.js";
|
|
10
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
7
11
|
export const DEFAULT_ICON_SIZE = 12;
|
|
8
12
|
export const DEFAULT_ICON_COLOR = 'black';
|
|
9
|
-
export
|
|
10
|
-
|
|
11
|
-
|
|
13
|
+
export function createIconSet(glyphMap, postScriptNameOrOptions, fontFileNameParam, fontStyleParam) {
|
|
14
|
+
const {
|
|
15
|
+
postScriptName,
|
|
16
|
+
fontFileName,
|
|
17
|
+
fontStyle
|
|
18
|
+
} = typeof postScriptNameOrOptions === 'string' ? {
|
|
19
|
+
postScriptName: postScriptNameOrOptions,
|
|
20
|
+
fontFileName: fontFileNameParam,
|
|
21
|
+
fontStyle: fontStyleParam
|
|
22
|
+
} : postScriptNameOrOptions;
|
|
23
|
+
const fontBasename = fontFileName ? fontFileName.replace(/\.(otf|ttf)$/, '') : postScriptName;
|
|
12
24
|
const fontReference = Platform.select({
|
|
13
|
-
windows: `/Assets/${
|
|
25
|
+
windows: `/Assets/${fontFileName}#${postScriptName}`,
|
|
14
26
|
android: fontBasename,
|
|
15
27
|
web: fontBasename,
|
|
16
|
-
default:
|
|
28
|
+
default: postScriptName
|
|
17
29
|
});
|
|
18
30
|
const resolveGlyph = name => {
|
|
19
31
|
const glyph = glyphMap[name] || '?';
|
|
@@ -25,14 +37,30 @@ export const createIconSet = (glyphMap, fontFamily, fontFile, fontStyle) => {
|
|
|
25
37
|
const Icon = ({
|
|
26
38
|
name,
|
|
27
39
|
size = DEFAULT_ICON_SIZE,
|
|
28
|
-
color,
|
|
40
|
+
color = DEFAULT_ICON_COLOR,
|
|
29
41
|
style,
|
|
30
42
|
children,
|
|
31
43
|
allowFontScaling = false,
|
|
32
44
|
innerRef,
|
|
33
45
|
...props
|
|
34
46
|
}) => {
|
|
35
|
-
const
|
|
47
|
+
const [isFontLoaded, setIsFontLoaded] = React.useState(isDynamicLoadingEnabled() ? dynamicLoader.isLoaded(fontReference) : true);
|
|
48
|
+
const glyph = isFontLoaded && name ? resolveGlyph(name) : '';
|
|
49
|
+
|
|
50
|
+
// biome-ignore lint/correctness/useExhaustiveDependencies: the dependencies never change
|
|
51
|
+
useEffect(() => {
|
|
52
|
+
let isMounted = true;
|
|
53
|
+
if (!isFontLoaded && typeof postScriptNameOrOptions === 'object' && typeof postScriptNameOrOptions.fontSource !== 'undefined') {
|
|
54
|
+
dynamicLoader.loadFontAsync(fontReference, postScriptNameOrOptions.fontSource).finally(() => {
|
|
55
|
+
if (isMounted) {
|
|
56
|
+
setIsFontLoaded(true);
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
return () => {
|
|
61
|
+
isMounted = false;
|
|
62
|
+
};
|
|
63
|
+
}, []);
|
|
36
64
|
const styleDefaults = {
|
|
37
65
|
fontSize: size,
|
|
38
66
|
color
|
|
@@ -47,14 +75,17 @@ export const createIconSet = (glyphMap, fontFamily, fontFile, fontStyle) => {
|
|
|
47
75
|
style: [styleDefaults, style, styleOverrides, fontStyle || {}],
|
|
48
76
|
allowFontScaling
|
|
49
77
|
};
|
|
50
|
-
return /*#__PURE__*/
|
|
78
|
+
return /*#__PURE__*/_jsxs(Text, {
|
|
51
79
|
ref: innerRef,
|
|
52
|
-
selectable: false
|
|
53
|
-
|
|
80
|
+
selectable: false,
|
|
81
|
+
...newProps,
|
|
82
|
+
children: [glyph, children]
|
|
83
|
+
});
|
|
54
84
|
};
|
|
55
|
-
const WrappedIcon = /*#__PURE__*/forwardRef((props, ref) => /*#__PURE__*/
|
|
56
|
-
innerRef: ref
|
|
57
|
-
|
|
85
|
+
const WrappedIcon = /*#__PURE__*/forwardRef((props, ref) => /*#__PURE__*/_jsx(Icon, {
|
|
86
|
+
innerRef: ref,
|
|
87
|
+
...props
|
|
88
|
+
}));
|
|
58
89
|
WrappedIcon.displayName = 'Icon';
|
|
59
90
|
const imageSourceCache = createIconSourceCache();
|
|
60
91
|
const getImageSourceSync = (name, size = DEFAULT_ICON_SIZE, color = DEFAULT_ICON_COLOR) => {
|
|
@@ -103,26 +134,10 @@ export const createIconSet = (glyphMap, fontFamily, fontFile, fontStyle) => {
|
|
|
103
134
|
throw error;
|
|
104
135
|
}
|
|
105
136
|
};
|
|
106
|
-
const loadFont = async () => {
|
|
107
|
-
if (Platform.OS !== 'ios') {
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
ensureNativeModuleAvailable();
|
|
111
|
-
const [filename, extension] = fontFile.split('.'); // FIXME: what if filename has two dots?
|
|
112
|
-
if (!filename) {
|
|
113
|
-
// NOTE: Thie is impossible but TypeScript doesn't know that
|
|
114
|
-
throw new Error('Font needs a filename.');
|
|
115
|
-
}
|
|
116
|
-
if (!extension) {
|
|
117
|
-
throw new Error('Font needs a filename extensison.');
|
|
118
|
-
}
|
|
119
|
-
await NativeIconAPI.loadFontWithFileName(filename, extension, 'react-native-vector-icons');
|
|
120
|
-
};
|
|
121
|
-
loadFont();
|
|
122
137
|
const IconNamespace = Object.assign(WrappedIcon, {
|
|
123
138
|
getImageSource,
|
|
124
139
|
getImageSourceSync
|
|
125
140
|
});
|
|
126
141
|
return IconNamespace;
|
|
127
|
-
}
|
|
142
|
+
}
|
|
128
143
|
//# sourceMappingURL=create-icon-set.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","forwardRef","PixelRatio","Platform","Text","processColor","NativeIconAPI","createIconSourceCache","ensureNativeModuleAvailable","DEFAULT_ICON_SIZE","DEFAULT_ICON_COLOR","createIconSet","glyphMap","
|
|
1
|
+
{"version":3,"names":["React","forwardRef","useEffect","PixelRatio","Platform","Text","processColor","NativeIconAPI","createIconSourceCache","dynamicLoader","isDynamicLoadingEnabled","ensureNativeModuleAvailable","jsxs","_jsxs","jsx","_jsx","DEFAULT_ICON_SIZE","DEFAULT_ICON_COLOR","createIconSet","glyphMap","postScriptNameOrOptions","fontFileNameParam","fontStyleParam","postScriptName","fontFileName","fontStyle","fontBasename","replace","fontReference","select","windows","android","web","default","resolveGlyph","name","glyph","String","fromCodePoint","Icon","size","color","style","children","allowFontScaling","innerRef","props","isFontLoaded","setIsFontLoaded","useState","isLoaded","isMounted","fontSource","loadFontAsync","finally","styleDefaults","fontSize","styleOverrides","fontFamily","fontWeight","newProps","ref","selectable","WrappedIcon","displayName","imageSourceCache","getImageSourceSync","processedColor","cacheKey","has","get","imagePath","getImageForFontSync","value","uri","scale","setValue","error","setError","getImageSource","getImageForFont","IconNamespace","Object","assign"],"sourceRoot":"../../src","sources":["create-icon-set.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TYPE_VALUE","TYPE_ERROR","createIconSourceCache","cache","Map","setValue","key","value","set","type","data","setError","error","has","get","undefined"],"sourceRoot":"../../src","sources":["create-icon-source-cache.ts"],"mappings":"AAAA,MAAMA,UAAU,GAAG,OAAO;AAC1B,MAAMC,UAAU,GAAG,OAAO;AAM1B,eAAe,SAASC,qBAAqBA,CAAA,EAAG;EAC9C,MAAMC,KAAK,GAAG,IAAIC,GAAG,CAAgB,CAAC;EAEtC,MAAMC,QAAQ,GAAGA,CAACC,GAAW,EAAEC,KAAgB,KAAKJ,KAAK,CAACK,GAAG,CAACF,GAAG,EAAE;IAAEG,IAAI,EAAET,UAAU;IAAEU,IAAI,EAAEH;EAAM,CAAC,CAAC;EAErG,MAAMI,QAAQ,GAAGA,CAACL,GAAW,EAAEM,KAAY,KAAKT,KAAK,CAACK,GAAG,CAACF,GAAG,EAAE;IAAEG,IAAI,EAAER,UAAU;IAAES,IAAI,EAAEE;EAAM,CAAC,CAAC;EAEjG,MAAMC,GAAG,GAAIP,GAAW,IAAKH,KAAK,CAACU,GAAG,CAACP,GAAG,CAAC;EAE3C,MAAMQ,GAAG,GAAIR,GAAW,IAAK;IAC3B,MAAMC,KAAK,GAAGJ,KAAK,CAACW,GAAG,CAACR,GAAG,CAAC;IAC5B,IAAI,CAACC,KAAK,EAAE;MACV,OAAOQ,SAAS;IAClB;IAEA,MAAM;MAAEN,IAAI;MAAEC;IAAK,CAAC,GAAGH,KAAK;IAC5B,IAAIE,IAAI,KAAKR,UAAU,EAAE;MACvB,MAAMS,IAAI;IACZ;IACA,OAAOA,IAAI;EACb,CAAC;EAED,OAAO;IAAEL,QAAQ;IAAEM,QAAQ;IAAEE,GAAG;IAAEC;EAAI,CAAC;AACzC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["TYPE_VALUE","TYPE_ERROR","createIconSourceCache","cache","Map","setValue","key","value","set","type","data","setError","error","has","get","undefined"],"sourceRoot":"../../src","sources":["create-icon-source-cache.ts"],"mappings":";;AAAA,MAAMA,UAAU,GAAG,OAAO;AAC1B,MAAMC,UAAU,GAAG,OAAO;AAM1B,eAAe,SAASC,qBAAqBA,CAAA,EAAG;EAC9C,MAAMC,KAAK,GAAG,IAAIC,GAAG,CAAgB,CAAC;EAEtC,MAAMC,QAAQ,GAAGA,CAACC,GAAW,EAAEC,KAAgB,KAAKJ,KAAK,CAACK,GAAG,CAACF,GAAG,EAAE;IAAEG,IAAI,EAAET,UAAU;IAAEU,IAAI,EAAEH;EAAM,CAAC,CAAC;EAErG,MAAMI,QAAQ,GAAGA,CAACL,GAAW,EAAEM,KAAY,KAAKT,KAAK,CAACK,GAAG,CAACF,GAAG,EAAE;IAAEG,IAAI,EAAER,UAAU;IAAES,IAAI,EAAEE;EAAM,CAAC,CAAC;EAEjG,MAAMC,GAAG,GAAIP,GAAW,IAAKH,KAAK,CAACU,GAAG,CAACP,GAAG,CAAC;EAE3C,MAAMQ,GAAG,GAAIR,GAAW,IAAK;IAC3B,MAAMC,KAAK,GAAGJ,KAAK,CAACW,GAAG,CAACR,GAAG,CAAC;IAC5B,IAAI,CAACC,KAAK,EAAE;MACV,OAAOQ,SAAS;IAClB;IAEA,MAAM;MAAEN,IAAI;MAAEC;IAAK,CAAC,GAAGH,KAAK;IAC5B,IAAIE,IAAI,KAAKR,UAAU,EAAE;MACvB,MAAMS,IAAI;IACZ;IACA,OAAOA,IAAI;EACb,CAAC;EAED,OAAO;IAAEL,QAAQ;IAAEM,QAAQ;IAAEE,GAAG;IAAEC;EAAI,CAAC;AACzC","ignoreList":[]}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* The following imports are always present when react native is installed
|
|
5
|
+
* in the future, more explicit apis will be exposed by the core, including typings
|
|
6
|
+
* */
|
|
7
|
+
// @ts-expect-error missing types
|
|
8
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
9
|
+
import { getAssetByID } from '@react-native/assets-registry/registry';
|
|
10
|
+
// @ts-expect-error missing types
|
|
11
|
+
import resolveAssetSource from 'react-native/Libraries/Image/resolveAssetSource';
|
|
12
|
+
import { getErrorCallback } from "./dynamic-loading-setting.js";
|
|
13
|
+
const loadPromises = {};
|
|
14
|
+
const loadFontAsync = async (fontFamily, fontSource) => {
|
|
15
|
+
const expoModules = globalThis?.expo?.modules;
|
|
16
|
+
if (!expoModules) {
|
|
17
|
+
throw new Error('Expo is not available. Dynamic font loading is not available.');
|
|
18
|
+
}
|
|
19
|
+
if (loadPromises[fontFamily]) {
|
|
20
|
+
return loadPromises[fontFamily];
|
|
21
|
+
}
|
|
22
|
+
loadPromises[fontFamily] = async function LoadFont() {
|
|
23
|
+
try {
|
|
24
|
+
const localUri = await (() => {
|
|
25
|
+
if (typeof fontSource === 'string') {
|
|
26
|
+
// a local filesystem uri
|
|
27
|
+
return fontSource;
|
|
28
|
+
}
|
|
29
|
+
// a module id
|
|
30
|
+
const {
|
|
31
|
+
uri,
|
|
32
|
+
type,
|
|
33
|
+
hash
|
|
34
|
+
} = getLocalFontUrl(fontSource, fontFamily);
|
|
35
|
+
return expoModules.ExpoAsset.downloadAsync(uri, hash, type);
|
|
36
|
+
})();
|
|
37
|
+
await expoModules.ExpoFontLoader.loadAsync(fontFamily, localUri);
|
|
38
|
+
} catch (error) {
|
|
39
|
+
console.error(`Failed to load font ${fontFamily}`, error); // eslint-disable-line no-console
|
|
40
|
+
|
|
41
|
+
getErrorCallback()?.({
|
|
42
|
+
error: error,
|
|
43
|
+
fontFamily,
|
|
44
|
+
fontSource
|
|
45
|
+
});
|
|
46
|
+
} finally {
|
|
47
|
+
delete loadPromises[fontFamily];
|
|
48
|
+
}
|
|
49
|
+
}();
|
|
50
|
+
return loadPromises[fontFamily];
|
|
51
|
+
};
|
|
52
|
+
const getLocalFontUrl = (fontModuleId, fontFamily) => {
|
|
53
|
+
const assetMeta = getAssetByID(fontModuleId);
|
|
54
|
+
if (!assetMeta) {
|
|
55
|
+
throw new Error(`no asset found for font family "${fontFamily}", moduleId: ${String(fontModuleId)}`);
|
|
56
|
+
}
|
|
57
|
+
const resolver = resolveAssetSource;
|
|
58
|
+
const assetSource = resolver(fontModuleId);
|
|
59
|
+
return {
|
|
60
|
+
...assetMeta,
|
|
61
|
+
...assetSource
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
const loadedFontsCache = {};
|
|
65
|
+
const isLoadedNative = fontFamily => {
|
|
66
|
+
if (fontFamily in loadedFontsCache) {
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
const {
|
|
70
|
+
expo
|
|
71
|
+
} = globalThis;
|
|
72
|
+
if (!expo) {
|
|
73
|
+
throw new Error('Expo is not available. Dynamic font loading is not available.');
|
|
74
|
+
}
|
|
75
|
+
const loadedNativeFonts = expo.modules.ExpoFontLoader.getLoadedFonts();
|
|
76
|
+
loadedNativeFonts.forEach(font => {
|
|
77
|
+
loadedFontsCache[font] = true;
|
|
78
|
+
});
|
|
79
|
+
return fontFamily in loadedFontsCache;
|
|
80
|
+
};
|
|
81
|
+
export const dynamicLoader = {
|
|
82
|
+
isLoaded: isLoadedNative,
|
|
83
|
+
loadFontAsync
|
|
84
|
+
};
|
|
85
|
+
//# sourceMappingURL=dynamic-font-loading.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getAssetByID","resolveAssetSource","getErrorCallback","loadPromises","loadFontAsync","fontFamily","fontSource","expoModules","globalThis","expo","modules","Error","LoadFont","localUri","uri","type","hash","getLocalFontUrl","ExpoAsset","downloadAsync","ExpoFontLoader","loadAsync","error","console","fontModuleId","assetMeta","String","resolver","assetSource","loadedFontsCache","isLoadedNative","loadedNativeFonts","getLoadedFonts","forEach","font","dynamicLoader","isLoaded"],"sourceRoot":"../../../src","sources":["dynamicLoading/dynamic-font-loading.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* dynamic font loading isn't supported on web
|
|
5
|
+
* */
|
|
6
|
+
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
8
|
+
const loadFontAsync = async (_fontFamily, _fontSource) => undefined;
|
|
9
|
+
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
11
|
+
const isLoaded = _fontFamily => true;
|
|
12
|
+
export const dynamicLoader = {
|
|
13
|
+
isLoaded,
|
|
14
|
+
loadFontAsync
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=dynamic-font-loading.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["loadFontAsync","_fontFamily","_fontSource","undefined","isLoaded","dynamicLoader"],"sourceRoot":"../../../src","sources":["dynamicLoading/dynamic-font-loading.web.ts"],"mappings":";;AAAA;AACA;AACA;;AAGA;AACA,MAAMA,aAAa,GAAG,MAAAA,CAAOC,WAAmB,EAAEC,WAAuB,KAAoBC,SAAS;;AAEtG;AACA,MAAMC,QAAQ,GAAIH,WAAmB,IAAK,IAAI;AAE9C,OAAO,MAAMI,aAA4B,GAAG;EAC1CD,QAAQ;EACRJ;AACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const hasNecessaryExpoModules = !!globalThis.expo?.modules?.ExpoAsset && !!globalThis.expo?.modules?.ExpoFontLoader;
|
|
4
|
+
const hasNecessaryExpoFeatures = hasNecessaryExpoModules && typeof globalThis.expo?.modules.ExpoFontLoader.getLoadedFonts === 'function';
|
|
5
|
+
let dynamicFontLoadingEnabled = hasNecessaryExpoFeatures;
|
|
6
|
+
export const isDynamicLoadingSupported = () => hasNecessaryExpoFeatures;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Set whether dynamic loading of fonts is enabled.
|
|
10
|
+
* Currently, the presence of Expo Asset and Font Loader modules is a prerequisite for enabling.
|
|
11
|
+
* In the future, React Native core apis will be used for dynamic font loading.
|
|
12
|
+
*
|
|
13
|
+
* @param value - whether dynamic loading of fonts is enabled
|
|
14
|
+
* @returns `true` if dynamic loading of fonts was successfully set. `false` otherwise.
|
|
15
|
+
* */
|
|
16
|
+
export const setDynamicLoadingEnabled = value => {
|
|
17
|
+
if (!hasNecessaryExpoFeatures) {
|
|
18
|
+
if (process.env.NODE_ENV !== 'production' && !!value) {
|
|
19
|
+
const message = hasNecessaryExpoModules ? 'Expo is installed, but does not support dynamic font loading. Make sure to use Expo SDK 52 or newer.' : 'Necessary Expo modules not found. Dynamic font loading is not available on Web or when necessary Expo modules are not present.';
|
|
20
|
+
console.error(message); // eslint-disable-line no-console
|
|
21
|
+
}
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
dynamicFontLoadingEnabled = !!value;
|
|
25
|
+
return true;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Whether dynamic loading of fonts is enabled.
|
|
30
|
+
* */
|
|
31
|
+
export const isDynamicLoadingEnabled = () => dynamicFontLoadingEnabled;
|
|
32
|
+
let dynamicLoadingErrorCallback;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Set a callback to be called when an error occurs during dynamic font loading.
|
|
36
|
+
* */
|
|
37
|
+
export const setDynamicLoadingErrorCallback = callback => {
|
|
38
|
+
dynamicLoadingErrorCallback = callback;
|
|
39
|
+
};
|
|
40
|
+
export const getErrorCallback = () => dynamicLoadingErrorCallback;
|
|
41
|
+
//# sourceMappingURL=dynamic-loading-setting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["hasNecessaryExpoModules","globalThis","expo","modules","ExpoAsset","ExpoFontLoader","hasNecessaryExpoFeatures","getLoadedFonts","dynamicFontLoadingEnabled","isDynamicLoadingSupported","setDynamicLoadingEnabled","value","process","env","NODE_ENV","message","console","error","isDynamicLoadingEnabled","dynamicLoadingErrorCallback","setDynamicLoadingErrorCallback","callback","getErrorCallback"],"sourceRoot":"../../../src","sources":["dynamicLoading/dynamic-loading-setting.ts"],"mappings":";;AAuBA,MAAMA,uBAAuB,GAAG,CAAC,CAACC,UAAU,CAACC,IAAI,EAAEC,OAAO,EAAEC,SAAS,IAAI,CAAC,CAACH,UAAU,CAACC,IAAI,EAAEC,OAAO,EAAEE,cAAc;AAEnH,MAAMC,wBAAwB,GAC5BN,uBAAuB,IAAI,OAAOC,UAAU,CAACC,IAAI,EAAEC,OAAO,CAACE,cAAc,CAACE,cAAc,KAAK,UAAU;AAEzG,IAAIC,yBAAyB,GAAGF,wBAAwB;AAExD,OAAO,MAAMG,yBAAyB,GAAGA,CAAA,KAAMH,wBAAwB;;AAEvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMI,wBAAwB,GAAIC,KAAc,IAAc;EACnE,IAAI,CAACL,wBAAwB,EAAE;IAC7B,IAAIM,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,IAAI,CAAC,CAACH,KAAK,EAAE;MACpD,MAAMI,OAAO,GAAGf,uBAAuB,GACnC,sGAAsG,GACtG,gIAAgI;MACpIgB,OAAO,CAACC,KAAK,CAACF,OAAO,CAAC,CAAC,CAAC;IAC1B;IACA,OAAO,KAAK;EACd;EAEAP,yBAAyB,GAAG,CAAC,CAACG,KAAK;EAEnC,OAAO,IAAI;AACb,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMO,uBAAuB,GAAGA,CAAA,KAAMV,yBAAyB;AAQtE,IAAIW,2BAAsD;;AAE1D;AACA;AACA;AACA,OAAO,MAAMC,8BAA8B,GAAIC,QAAuB,IAAK;EACzEF,2BAA2B,GAAGE,QAAQ;AACxC,CAAC;AAED,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,KAAMH,2BAA2B","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["dynamicLoading/types.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeIconAPI","ensureNativeModuleAvailable","Error"],"sourceRoot":"../../src","sources":["ensure-native-module-available.ts"],"mappings":"AAAA,OAAOA,aAAa,MAAM,qBAAqB;AAE/C,eAAe,SAASC,2BAA2BA,CAAA,EAAG;EACpD,IAAI,CAACD,aAAa,EAAE;IAClB,MAAM,IAAIE,KAAK,CACb,2IACF,CAAC;EACH;AACF","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["NativeIconAPI","ensureNativeModuleAvailable","Error"],"sourceRoot":"../../src","sources":["ensure-native-module-available.ts"],"mappings":";;AAAA,OAAOA,aAAa,MAAM,qBAAqB;AAE/C,eAAe,SAASC,2BAA2BA,CAAA,EAAG;EACpD,IAAI,CAACD,aAAa,EAAE;IAClB,MAAM,IAAIE,KAAK,CACb,2IACF,CAAC;EACH;AACF","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -1,2 +1,34 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { NativeModules, Platform } from 'react-native';
|
|
4
|
+
export { createIconSet, DEFAULT_ICON_SIZE, DEFAULT_ICON_COLOR } from "./create-icon-set.js";
|
|
5
|
+
export { setDynamicLoadingEnabled, isDynamicLoadingEnabled, isDynamicLoadingSupported, setDynamicLoadingErrorCallback } from "./dynamicLoading/dynamic-loading-setting.js";
|
|
6
|
+
const LINKING_ERROR = `
|
|
7
|
+
The package '@react-native-vector-icons/common' doesn't seem to be linked. Make sure:
|
|
8
|
+
${Platform.select({
|
|
9
|
+
ios: "- You have run 'pod install'\n",
|
|
10
|
+
default: ''
|
|
11
|
+
})}
|
|
12
|
+
- You rebuilt the app after installing the package\n'
|
|
13
|
+
- You are not using Expo Go
|
|
14
|
+
`;
|
|
15
|
+
|
|
16
|
+
// @ts-expect-error : NativeModules type is incomplete
|
|
17
|
+
const isTurboModuleEnabled = global.__turboModuleProxy != null; // eslint-disable-line no-underscore-dangle
|
|
18
|
+
|
|
19
|
+
const VectorIconsModule = isTurboModuleEnabled ? require('./NativeVectorIcons').default // eslint-disable-line @typescript-eslint/no-require-imports
|
|
20
|
+
: NativeModules.VectorIcons;
|
|
21
|
+
const VectorIcons = VectorIconsModule ? VectorIconsModule : new Proxy({}, {
|
|
22
|
+
get() {
|
|
23
|
+
throw new Error(LINKING_ERROR);
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
// TODO: Do we want to expose this as a public API?
|
|
28
|
+
export function getImageForFont(fontFamilyName, glyph, fontSize, color) {
|
|
29
|
+
return VectorIcons.getImageForFont(fontFamilyName, glyph, fontSize, color);
|
|
30
|
+
}
|
|
31
|
+
export function getImageForFontSync(fontFamilyName, glyph, fontSize, color) {
|
|
32
|
+
return VectorIcons.getImageForFontSync(fontFamilyName, glyph, fontSize, color);
|
|
33
|
+
}
|
|
2
34
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createIconSet","DEFAULT_ICON_SIZE","DEFAULT_ICON_COLOR"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,SAASA,aAAa,EAAEC,iBAAiB,EAAEC,kBAAkB,QAAQ,mBAAmB","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["NativeModules","Platform","createIconSet","DEFAULT_ICON_SIZE","DEFAULT_ICON_COLOR","setDynamicLoadingEnabled","isDynamicLoadingEnabled","isDynamicLoadingSupported","setDynamicLoadingErrorCallback","LINKING_ERROR","select","ios","default","isTurboModuleEnabled","global","__turboModuleProxy","VectorIconsModule","require","VectorIcons","Proxy","get","Error","getImageForFont","fontFamilyName","glyph","fontSize","color","getImageForFontSync"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAEtD,SAASC,aAAa,EAAEC,iBAAiB,EAAEC,kBAAkB,QAAQ,sBAAmB;AAExF,SACEC,wBAAwB,EACxBC,uBAAuB,EACvBC,yBAAyB,EACzBC,8BAA8B,QACzB,6CAA0C;AAEjD,MAAMC,aAAa,GAAG;AACtB;AACA,MAAMR,QAAQ,CAACS,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC;AAC7E;AACA;AACA,GAAG;;AAEH;AACA,MAAMC,oBAAoB,GAAGC,MAAM,CAACC,kBAAkB,IAAI,IAAI,CAAC,CAAC;;AAEhE,MAAMC,iBAAiB,GAAGH,oBAAoB,GAC1CI,OAAO,CAAC,qBAAqB,CAAC,CAACL,OAAO,CAAC;AAAA,EACvCZ,aAAa,CAACkB,WAAW;AAE7B,MAAMA,WAAW,GAAGF,iBAAiB,GACjCA,iBAAiB,GACjB,IAAIG,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACZ,aAAa,CAAC;EAChC;AACF,CACF,CAAC;;AAEL;AACA,OAAO,SAASa,eAAeA,CAC7BC,cAAsB,EACtBC,KAAa,EACbC,QAAgB,EAChBC,KAAa,EACI;EACjB,OAAOR,WAAW,CAACI,eAAe,CAACC,cAAc,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,KAAK,CAAC;AAC5E;AAEA,OAAO,SAASC,mBAAmBA,CAACJ,cAAsB,EAAEC,KAAa,EAAEC,QAAgB,EAAEC,KAAa,EAAU;EAClH,OAAOR,WAAW,CAACS,mBAAmB,CAACJ,cAAc,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,KAAK,CAAC;AAChF","ignoreList":[]}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import fs from 'node:fs';
|
|
4
|
+
import path from 'node:path';
|
|
5
|
+
import { resolveNodeModuleDir } from '@react-native-community/cli-tools';
|
|
6
|
+
const getPackageJson = filename => {
|
|
7
|
+
const packageData = fs.readFileSync(filename, 'utf-8');
|
|
8
|
+
const packageJson = JSON.parse(packageData);
|
|
9
|
+
return packageJson;
|
|
10
|
+
};
|
|
11
|
+
const getPackageFontDirectories = packageJsonFilename => {
|
|
12
|
+
const rootPackageJson = getPackageJson(packageJsonFilename);
|
|
13
|
+
const dependencies = Object.keys(rootPackageJson.dependencies || {});
|
|
14
|
+
const packageDirs = [];
|
|
15
|
+
dependencies.forEach(dependency => {
|
|
16
|
+
const dir = resolveNodeModuleDir(packageJsonFilename, dependency);
|
|
17
|
+
const packageJson = getPackageJson(`${dir}/package.json`);
|
|
18
|
+
if (packageJson.keywords?.includes?.('react-native-vector-icons-icon')) {
|
|
19
|
+
packageDirs.push(`${dir}/fonts`);
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
return packageDirs;
|
|
23
|
+
};
|
|
24
|
+
const getLocalFontsDir = packageJsonFilename => {
|
|
25
|
+
const rootPackageJson = getPackageJson(packageJsonFilename);
|
|
26
|
+
const config = rootPackageJson.reactNativeVectorIcons || {};
|
|
27
|
+
return `${path.dirname(packageJsonFilename)}/${config.fontDir || 'rnvi-fonts'}`;
|
|
28
|
+
};
|
|
29
|
+
const getFonts = fontDir => {
|
|
30
|
+
if (!fs.existsSync(fontDir)) {
|
|
31
|
+
return [];
|
|
32
|
+
}
|
|
33
|
+
const fonts = fs.readdirSync(fontDir);
|
|
34
|
+
const fontPaths = fonts.map(font => `${fontDir}/${font}`);
|
|
35
|
+
return fontPaths;
|
|
36
|
+
};
|
|
37
|
+
export const getFontPaths = packageJsonFilename => {
|
|
38
|
+
const packageDirs = getPackageFontDirectories(packageJsonFilename);
|
|
39
|
+
packageDirs.push(getLocalFontsDir(packageJsonFilename));
|
|
40
|
+
const fonts = packageDirs.map(getFonts);
|
|
41
|
+
return fonts.flat();
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["fs","path","resolveNodeModuleDir","getPackageJson","filename","packageData","readFileSync","packageJson","JSON","parse","getPackageFontDirectories","packageJsonFilename","rootPackageJson","dependencies","Object","keys","packageDirs","forEach","dependency","dir","keywords","includes","push","getLocalFontsDir","config","reactNativeVectorIcons","dirname","fontDir","getFonts","existsSync","fonts","readdirSync","fontPaths","map","font","getFontPaths","flat"],"sourceRoot":"../../../src","sources":["scripts/common.ts"],"mappings":";;AAAA,OAAOA,EAAE,MAAM,SAAS;AACxB,OAAOC,IAAI,MAAM,WAAW;AAC5B,SAASC,oBAAoB,QAAQ,mCAAmC;AAExE,MAAMC,cAAc,GAAIC,QAAgB,IAAK;EAC3C,MAAMC,WAAW,GAAGL,EAAE,CAACM,YAAY,CAACF,QAAQ,EAAE,OAAO,CAAC;EACtD,MAAMG,WAAW,GAAGC,IAAI,CAACC,KAAK,CAACJ,WAAW,CAAC;EAE3C,OAAOE,WAAW;AACpB,CAAC;AAED,MAAMG,yBAAyB,GAAIC,mBAA2B,IAAK;EACjE,MAAMC,eAAe,GAAGT,cAAc,CAACQ,mBAAmB,CAAC;EAC3D,MAAME,YAAY,GAAGC,MAAM,CAACC,IAAI,CAACH,eAAe,CAACC,YAAY,IAAI,CAAC,CAAC,CAAC;EAEpE,MAAMG,WAAqB,GAAG,EAAE;EAChCH,YAAY,CAACI,OAAO,CAAEC,UAAU,IAAK;IACnC,MAAMC,GAAG,GAAGjB,oBAAoB,CAACS,mBAAmB,EAAEO,UAAU,CAAC;IACjE,MAAMX,WAAW,GAAGJ,cAAc,CAAC,GAAGgB,GAAG,eAAe,CAAC;IACzD,IAAIZ,WAAW,CAACa,QAAQ,EAAEC,QAAQ,GAAG,gCAAgC,CAAC,EAAE;MACtEL,WAAW,CAACM,IAAI,CAAC,GAAGH,GAAG,QAAQ,CAAC;IAClC;EACF,CAAC,CAAC;EAEF,OAAOH,WAAW;AACpB,CAAC;AAED,MAAMO,gBAAgB,GAAIZ,mBAA2B,IAAK;EACxD,MAAMC,eAAe,GAAGT,cAAc,CAACQ,mBAAmB,CAAC;EAC3D,MAAMa,MAAM,GAAGZ,eAAe,CAACa,sBAAsB,IAAI,CAAC,CAAC;EAE3D,OAAO,GAAGxB,IAAI,CAACyB,OAAO,CAACf,mBAAmB,CAAC,IAAIa,MAAM,CAACG,OAAO,IAAI,YAAY,EAAE;AACjF,CAAC;AAED,MAAMC,QAAQ,GAAID,OAAe,IAAK;EACpC,IAAI,CAAC3B,EAAE,CAAC6B,UAAU,CAACF,OAAO,CAAC,EAAE;IAC3B,OAAO,EAAE;EACX;EAEA,MAAMG,KAAK,GAAG9B,EAAE,CAAC+B,WAAW,CAACJ,OAAO,CAAC;EACrC,MAAMK,SAAS,GAAGF,KAAK,CAACG,GAAG,CAAEC,IAAI,IAAK,GAAGP,OAAO,IAAIO,IAAI,EAAE,CAAC;EAE3D,OAAOF,SAAS;AAClB,CAAC;AAED,OAAO,MAAMG,YAAY,GAAIxB,mBAA2B,IAAK;EAC3D,MAAMK,WAAW,GAAGN,yBAAyB,CAACC,mBAAmB,CAAC;EAClEK,WAAW,CAACM,IAAI,CAACC,gBAAgB,CAACZ,mBAAmB,CAAC,CAAC;EACvD,MAAMmB,KAAK,GAAGd,WAAW,CAACiB,GAAG,CAACL,QAAQ,CAAC;EAEvC,OAAOE,KAAK,CAACM,IAAI,CAAC,CAAC;AACrB,CAAC","ignoreList":[]}
|
|
@@ -1,42 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import {
|
|
5
|
-
const
|
|
6
|
-
if (!
|
|
7
|
-
throw new Error('Need
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
import { getFontPaths } from "./common.js";
|
|
5
|
+
const packageJsonFilename = process.argv[2];
|
|
6
|
+
if (!packageJsonFilename) {
|
|
7
|
+
throw new Error('Need the path to the roo package.json as the first argument');
|
|
8
8
|
}
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
const packageJson = JSON.parse(packageData);
|
|
12
|
-
return packageJson;
|
|
13
|
-
};
|
|
14
|
-
const getPackages = () => {
|
|
15
|
-
const rootPackageJson = getPackageJson(rootDir);
|
|
16
|
-
const dependencies = Object.keys(rootPackageJson.dependencies || {});
|
|
17
|
-
const packageDirs = [];
|
|
18
|
-
dependencies.forEach(dependency => {
|
|
19
|
-
const dir = resolveNodeModuleDir(rootDir, dependency);
|
|
20
|
-
const packageJson = getPackageJson(dir);
|
|
21
|
-
if (packageJson.keywords?.includes?.('react-native-vector-icons-icon')) {
|
|
22
|
-
packageDirs.push(dir);
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
return packageDirs;
|
|
26
|
-
};
|
|
27
|
-
const getFonts = dir => {
|
|
28
|
-
const fontDirs = [`${dir}/fonts`];
|
|
29
|
-
const rootPackageJson = getPackageJson(rootDir);
|
|
30
|
-
const config = rootPackageJson.reactNativeVectorIcons || {};
|
|
31
|
-
fontDirs.push(`${rootDir}/${config.fontDir || 'rnvi-fonts'}`);
|
|
32
|
-
fontDirs.forEach(fontDir => {
|
|
33
|
-
if (!fs.existsSync(fontDir)) {
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
const fonts = fs.readdirSync(fontDir);
|
|
37
|
-
fonts.forEach(font => console.log(`${fontDir}/${font}`)); // eslint-disable-line no-console
|
|
38
|
-
});
|
|
39
|
-
};
|
|
40
|
-
const packageDirs = getPackages();
|
|
41
|
-
packageDirs.forEach(dir => getFonts(dir));
|
|
9
|
+
const fonts = getFontPaths(packageJsonFilename);
|
|
10
|
+
fonts.map(font => console.log(font)); // eslint-disable-line no-console
|
|
42
11
|
//# sourceMappingURL=getFonts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["getFontPaths","packageJsonFilename","process","argv","Error","fonts","map","font","console","log"],"sourceRoot":"../../../src","sources":["scripts/getFonts.ts"],"mappings":"AAAA;AAAmB;;AAEnB,SAASA,YAAY,QAAQ,aAAU;AAEvC,MAAMC,mBAAmB,GAAGC,OAAO,CAACC,IAAI,CAAC,CAAC,CAAC;AAC3C,IAAI,CAACF,mBAAmB,EAAE;EACxB,MAAM,IAAIG,KAAK,CAAC,6DAA6D,CAAC;AAChF;AAEA,MAAMC,KAAK,GAAGL,YAAY,CAACC,mBAAmB,CAAC;AAC/CI,KAAK,CAACC,GAAG,CAAEC,IAAI,IAAKC,OAAO,CAACC,GAAG,CAACF,IAAI,CAAC,CAAC,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/* eslint-disable no-console */
|
|
3
|
+
"use strict";
|
|
4
|
+
|
|
5
|
+
import fs from 'node:fs';
|
|
6
|
+
import * as path from 'node:path';
|
|
7
|
+
import pc from 'picocolors';
|
|
8
|
+
import * as plist from 'plist';
|
|
9
|
+
import { getFontPaths } from "./common.js";
|
|
10
|
+
const getFontName = fontPath => path.basename(fontPath);
|
|
11
|
+
const packageJsonFilename = process.argv[2];
|
|
12
|
+
if (!packageJsonFilename) {
|
|
13
|
+
throw new Error('Need the path to the root package.json as the first argument');
|
|
14
|
+
}
|
|
15
|
+
const infoPlistFilename = process.argv[3];
|
|
16
|
+
if (!infoPlistFilename) {
|
|
17
|
+
throw new Error('Need the path to the Info.plist as the second argument');
|
|
18
|
+
}
|
|
19
|
+
const fonts = getFontPaths(packageJsonFilename);
|
|
20
|
+
console.log(`Found ${fonts.length} fonts`);
|
|
21
|
+
const infoPlistContent = fs.readFileSync(infoPlistFilename, 'utf8');
|
|
22
|
+
const infoPlist = plist.parse(infoPlistContent);
|
|
23
|
+
const plistFonts = new Set(infoPlist.UIAppFonts || []);
|
|
24
|
+
const providedFonts = new Set(fonts.map(getFontName));
|
|
25
|
+
let hasChanges = false;
|
|
26
|
+
|
|
27
|
+
// Check for missing fonts and add them
|
|
28
|
+
providedFonts.forEach(font => {
|
|
29
|
+
if (!plistFonts.has(font)) {
|
|
30
|
+
plistFonts.add(font);
|
|
31
|
+
console.log(pc.green(`Added ${font}`));
|
|
32
|
+
hasChanges = true;
|
|
33
|
+
} else {
|
|
34
|
+
console.log(`Existing ${font}`);
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
// Check for extra fonts in Info.plist
|
|
39
|
+
plistFonts.forEach(font => {
|
|
40
|
+
if (!providedFonts.has(font)) {
|
|
41
|
+
console.log(pc.red(`Extra ${font} (Please remove manually if not needed)`));
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
// Update Info.plist if there were changes
|
|
46
|
+
if (hasChanges) {
|
|
47
|
+
infoPlist.UIAppFonts = Array.from(plistFonts);
|
|
48
|
+
const updatedInfoPlistContent = plist.build(infoPlist).replace(/^ {2}/gm, '').replace(/ {2}/gm, '\t');
|
|
49
|
+
fs.writeFileSync(infoPlistFilename, updatedInfoPlistContent, 'utf8');
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=updatePlist.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["fs","path","pc","plist","getFontPaths","getFontName","fontPath","basename","packageJsonFilename","process","argv","Error","infoPlistFilename","fonts","console","log","length","infoPlistContent","readFileSync","infoPlist","parse","plistFonts","Set","UIAppFonts","providedFonts","map","hasChanges","forEach","font","has","add","green","red","Array","from","updatedInfoPlistContent","build","replace","writeFileSync"],"sourceRoot":"../../../src","sources":["scripts/updatePlist.ts"],"mappings":"AAAA;AACA;AAAA;;AAEA,OAAOA,EAAE,MAAM,SAAS;AACxB,OAAO,KAAKC,IAAI,MAAM,WAAW;AACjC,OAAOC,EAAE,MAAM,YAAY;AAC3B,OAAO,KAAKC,KAAK,MAAM,OAAO;AAE9B,SAASC,YAAY,QAAQ,aAAU;AAEvC,MAAMC,WAAW,GAAIC,QAAgB,IAAKL,IAAI,CAACM,QAAQ,CAACD,QAAQ,CAAC;AAEjE,MAAME,mBAAmB,GAAGC,OAAO,CAACC,IAAI,CAAC,CAAC,CAAC;AAC3C,IAAI,CAACF,mBAAmB,EAAE;EACxB,MAAM,IAAIG,KAAK,CAAC,8DAA8D,CAAC;AACjF;AAEA,MAAMC,iBAAiB,GAAGH,OAAO,CAACC,IAAI,CAAC,CAAC,CAAC;AACzC,IAAI,CAACE,iBAAiB,EAAE;EACtB,MAAM,IAAID,KAAK,CAAC,wDAAwD,CAAC;AAC3E;AAEA,MAAME,KAAK,GAAGT,YAAY,CAACI,mBAAmB,CAAC;AAC/CM,OAAO,CAACC,GAAG,CAAC,SAASF,KAAK,CAACG,MAAM,QAAQ,CAAC;AAE1C,MAAMC,gBAAgB,GAAGjB,EAAE,CAACkB,YAAY,CAACN,iBAAiB,EAAE,MAAM,CAAC;AACnE,MAAMO,SAAS,GAAGhB,KAAK,CAACiB,KAAK,CAACH,gBAAgB,CAA6B;AAE3E,MAAMI,UAAU,GAAG,IAAIC,GAAG,CAACH,SAAS,CAACI,UAAU,IAAI,EAAE,CAAC;AACtD,MAAMC,aAAa,GAAG,IAAIF,GAAG,CAACT,KAAK,CAACY,GAAG,CAACpB,WAAW,CAAC,CAAC;AAErD,IAAIqB,UAAU,GAAG,KAAK;;AAEtB;AACAF,aAAa,CAACG,OAAO,CAAEC,IAAI,IAAK;EAC9B,IAAI,CAACP,UAAU,CAACQ,GAAG,CAACD,IAAI,CAAC,EAAE;IACzBP,UAAU,CAACS,GAAG,CAACF,IAAI,CAAC;IACpBd,OAAO,CAACC,GAAG,CAACb,EAAE,CAAC6B,KAAK,CAAC,SAASH,IAAI,EAAE,CAAC,CAAC;IACtCF,UAAU,GAAG,IAAI;EACnB,CAAC,MAAM;IACLZ,OAAO,CAACC,GAAG,CAAC,YAAYa,IAAI,EAAE,CAAC;EACjC;AACF,CAAC,CAAC;;AAEF;AACAP,UAAU,CAACM,OAAO,CAAEC,IAAI,IAAK;EAC3B,IAAI,CAACJ,aAAa,CAACK,GAAG,CAACD,IAAI,CAAC,EAAE;IAC5Bd,OAAO,CAACC,GAAG,CAACb,EAAE,CAAC8B,GAAG,CAAC,SAASJ,IAAI,yCAAyC,CAAC,CAAC;EAC7E;AACF,CAAC,CAAC;;AAEF;AACA,IAAIF,UAAU,EAAE;EACdP,SAAS,CAACI,UAAU,GAAGU,KAAK,CAACC,IAAI,CAACb,UAAU,CAAC;EAC7C,MAAMc,uBAAuB,GAAGhC,KAAK,CAACiC,KAAK,CAACjB,SAAS,CAAC,CAACkB,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAACA,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC;EAErGrC,EAAE,CAACsC,aAAa,CAAC1B,iBAAiB,EAAEuB,uBAAuB,EAAE,MAAM,CAAC;AACtE","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"commonjs"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { TurboModule } from 'react-native';
|
|
2
|
+
export interface Spec extends TurboModule {
|
|
3
|
+
getImageForFont(fontFamilyName: string, glyph: string, fontSize: number, color: number): Promise<string>;
|
|
4
|
+
getImageForFontSync(fontFamilyName: string, glyph: string, fontSize: number, color: number): string;
|
|
5
|
+
}
|
|
6
|
+
declare const _default: Spec;
|
|
7
|
+
export default _default;
|
|
8
|
+
//# sourceMappingURL=NativeVectorIcons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NativeVectorIcons.d.ts","sourceRoot":"","sources":["../../../../src/NativeVectorIcons.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEzG,mBAAmB,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CACrG;;AAED,wBAAqE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NativeVectorIcons.web.d.ts","sourceRoot":"","sources":["../../../../src/NativeVectorIcons.web.ts"],"names":[],"mappings":";AAAA,wBAAkB"}
|