@react-native-vector-icons/common 0.0.1-alpha.8 → 11.0.0-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.
Files changed (169) hide show
  1. package/LICENSE +1 -2
  2. package/README.md +49 -91
  3. package/android/build.gradle +37 -3
  4. package/android/generated/java/com/reactnativevectoricons/common/NativeVectorIconsSpec.java +42 -0
  5. package/android/generated/jni/CMakeLists.txt +49 -0
  6. package/android/generated/jni/RNVectorIconsSpec-generated.cpp +38 -0
  7. package/android/generated/jni/RNVectorIconsSpec.h +31 -0
  8. package/android/generated/jni/react/renderer/components/RNVectorIconsSpec/ComponentDescriptors.cpp +22 -0
  9. package/android/generated/jni/react/renderer/components/RNVectorIconsSpec/ComponentDescriptors.h +24 -0
  10. package/android/generated/jni/react/renderer/components/RNVectorIconsSpec/EventEmitters.cpp +16 -0
  11. package/android/generated/jni/react/renderer/components/RNVectorIconsSpec/EventEmitters.h +17 -0
  12. package/android/generated/jni/react/renderer/components/RNVectorIconsSpec/Props.cpp +19 -0
  13. package/android/generated/jni/react/renderer/components/RNVectorIconsSpec/Props.h +18 -0
  14. package/android/generated/jni/react/renderer/components/RNVectorIconsSpec/RNVectorIconsSpecJSI-generated.cpp +40 -0
  15. package/android/generated/jni/react/renderer/components/RNVectorIconsSpec/RNVectorIconsSpecJSI.h +76 -0
  16. package/android/generated/jni/react/renderer/components/RNVectorIconsSpec/ShadowNodes.cpp +17 -0
  17. package/android/generated/jni/react/renderer/components/RNVectorIconsSpec/ShadowNodes.h +23 -0
  18. package/android/generated/jni/react/renderer/components/RNVectorIconsSpec/States.cpp +16 -0
  19. package/android/generated/jni/react/renderer/components/RNVectorIconsSpec/States.h +19 -0
  20. package/android/src/main/AndroidManifestNew.xml +1 -1
  21. package/android/src/main/java/com/reactnativevectoricons/common/VectorIconsModule.kt +90 -0
  22. package/android/src/main/java/com/reactnativevectoricons/common/VectorIconsPackage.kt +35 -0
  23. package/android/src/newarch/VectorIconsSpec.kt +7 -0
  24. package/android/src/oldarch/VectorIconsSpec.kt +38 -0
  25. package/ios/VectorIcons.h +13 -17
  26. package/ios/VectorIcons.mm +76 -92
  27. package/ios/generated/RNVectorIconsSpec/ComponentDescriptors.cpp +22 -0
  28. package/ios/generated/RNVectorIconsSpec/ComponentDescriptors.h +24 -0
  29. package/ios/generated/RNVectorIconsSpec/EventEmitters.cpp +16 -0
  30. package/ios/generated/RNVectorIconsSpec/EventEmitters.h +17 -0
  31. package/ios/generated/RNVectorIconsSpec/Props.cpp +19 -0
  32. package/ios/generated/RNVectorIconsSpec/Props.h +18 -0
  33. package/ios/generated/RNVectorIconsSpec/RCTComponentViewHelpers.h +18 -0
  34. package/ios/generated/RNVectorIconsSpec/RNVectorIconsSpec-generated.mm +36 -0
  35. package/ios/generated/RNVectorIconsSpec/RNVectorIconsSpec.h +58 -0
  36. package/ios/generated/RNVectorIconsSpec/ShadowNodes.cpp +17 -0
  37. package/ios/generated/RNVectorIconsSpec/ShadowNodes.h +23 -0
  38. package/ios/generated/RNVectorIconsSpec/States.cpp +16 -0
  39. package/ios/generated/RNVectorIconsSpec/States.h +19 -0
  40. package/ios/generated/RNVectorIconsSpecJSI-generated.cpp +40 -0
  41. package/ios/generated/RNVectorIconsSpecJSI.h +76 -0
  42. package/lib/commonjs/NativeVectorIcons.js.map +1 -1
  43. package/lib/commonjs/create-icon-set.js +49 -36
  44. package/lib/commonjs/create-icon-set.js.map +1 -1
  45. package/lib/commonjs/dynamicLoading/dynamic-font-loading.js +92 -0
  46. package/lib/commonjs/dynamicLoading/dynamic-font-loading.js.map +1 -0
  47. package/lib/commonjs/dynamicLoading/dynamic-font-loading.web.js +20 -0
  48. package/lib/commonjs/dynamicLoading/dynamic-font-loading.web.js.map +1 -0
  49. package/lib/commonjs/dynamicLoading/dynamic-loading-setting.js +50 -0
  50. package/lib/commonjs/dynamicLoading/dynamic-loading-setting.js.map +1 -0
  51. package/lib/commonjs/dynamicLoading/types.js +2 -0
  52. package/lib/commonjs/dynamicLoading/types.js.map +1 -0
  53. package/lib/commonjs/ensure-native-module-available.js +1 -1
  54. package/lib/commonjs/ensure-native-module-available.js.map +1 -1
  55. package/lib/commonjs/index.js +57 -1
  56. package/lib/commonjs/index.js.map +1 -1
  57. package/lib/commonjs/scripts/common.js +49 -0
  58. package/lib/commonjs/scripts/common.js.map +1 -0
  59. package/lib/commonjs/scripts/getFonts.js +6 -40
  60. package/lib/commonjs/scripts/getFonts.js.map +1 -1
  61. package/lib/commonjs/scripts/updatePlist.js +54 -0
  62. package/lib/commonjs/scripts/updatePlist.js.map +1 -0
  63. package/lib/module/NativeVectorIcons.js +2 -0
  64. package/lib/module/NativeVectorIcons.js.map +1 -1
  65. package/lib/module/NativeVectorIcons.web.js +2 -0
  66. package/lib/module/NativeVectorIcons.web.js.map +1 -1
  67. package/lib/module/create-icon-set.js +49 -34
  68. package/lib/module/create-icon-set.js.map +1 -1
  69. package/lib/module/create-icon-source-cache.js +2 -0
  70. package/lib/module/create-icon-source-cache.js.map +1 -1
  71. package/lib/module/dynamicLoading/dynamic-font-loading.js +85 -0
  72. package/lib/module/dynamicLoading/dynamic-font-loading.js.map +1 -0
  73. package/lib/module/dynamicLoading/dynamic-font-loading.web.js +16 -0
  74. package/lib/module/dynamicLoading/dynamic-font-loading.web.js.map +1 -0
  75. package/lib/module/dynamicLoading/dynamic-loading-setting.js +41 -0
  76. package/lib/module/dynamicLoading/dynamic-loading-setting.js.map +1 -0
  77. package/lib/module/dynamicLoading/types.js +2 -0
  78. package/lib/module/dynamicLoading/types.js.map +1 -0
  79. package/lib/module/ensure-native-module-available.js +2 -0
  80. package/lib/module/ensure-native-module-available.js.map +1 -1
  81. package/lib/module/index.js +33 -1
  82. package/lib/module/index.js.map +1 -1
  83. package/lib/module/scripts/common.js +43 -0
  84. package/lib/module/scripts/common.js.map +1 -0
  85. package/lib/module/scripts/getFonts.js +8 -39
  86. package/lib/module/scripts/getFonts.js.map +1 -1
  87. package/lib/module/scripts/updatePlist.js +51 -0
  88. package/lib/module/scripts/updatePlist.js.map +1 -0
  89. package/lib/typescript/commonjs/package.json +1 -0
  90. package/lib/typescript/commonjs/src/NativeVectorIcons.d.ts +8 -0
  91. package/lib/typescript/commonjs/src/NativeVectorIcons.d.ts.map +1 -0
  92. package/lib/typescript/commonjs/src/NativeVectorIcons.web.d.ts.map +1 -0
  93. package/lib/typescript/commonjs/src/create-icon-set.d.ts +36 -0
  94. package/lib/typescript/commonjs/src/create-icon-set.d.ts.map +1 -0
  95. package/lib/typescript/commonjs/src/create-icon-source-cache.d.ts.map +1 -0
  96. package/lib/typescript/commonjs/src/dynamicLoading/dynamic-font-loading.d.ts +3 -0
  97. package/lib/typescript/commonjs/src/dynamicLoading/dynamic-font-loading.d.ts.map +1 -0
  98. package/lib/typescript/commonjs/src/dynamicLoading/dynamic-font-loading.web.d.ts +6 -0
  99. package/lib/typescript/commonjs/src/dynamicLoading/dynamic-font-loading.web.d.ts.map +1 -0
  100. package/lib/typescript/commonjs/src/dynamicLoading/dynamic-loading-setting.d.ts +41 -0
  101. package/lib/typescript/commonjs/src/dynamicLoading/dynamic-loading-setting.d.ts.map +1 -0
  102. package/lib/typescript/commonjs/src/dynamicLoading/types.d.ts +9 -0
  103. package/lib/typescript/commonjs/src/dynamicLoading/types.d.ts.map +1 -0
  104. package/lib/typescript/commonjs/src/ensure-native-module-available.d.ts.map +1 -0
  105. package/lib/typescript/commonjs/src/index.d.ts +6 -0
  106. package/lib/typescript/commonjs/src/index.d.ts.map +1 -0
  107. package/lib/typescript/commonjs/src/scripts/common.d.ts +2 -0
  108. package/lib/typescript/commonjs/src/scripts/common.d.ts.map +1 -0
  109. package/lib/typescript/commonjs/src/scripts/getFonts.d.ts.map +1 -0
  110. package/lib/typescript/commonjs/src/scripts/updatePlist.d.ts +3 -0
  111. package/lib/typescript/commonjs/src/scripts/updatePlist.d.ts.map +1 -0
  112. package/lib/typescript/module/package.json +1 -0
  113. package/lib/typescript/module/src/NativeVectorIcons.d.ts +8 -0
  114. package/lib/typescript/module/src/NativeVectorIcons.d.ts.map +1 -0
  115. package/lib/typescript/module/src/NativeVectorIcons.web.d.ts +3 -0
  116. package/lib/typescript/module/src/NativeVectorIcons.web.d.ts.map +1 -0
  117. package/lib/typescript/module/src/create-icon-set.d.ts +36 -0
  118. package/lib/typescript/module/src/create-icon-set.d.ts.map +1 -0
  119. package/lib/typescript/module/src/create-icon-source-cache.d.ts +21 -0
  120. package/lib/typescript/module/src/create-icon-source-cache.d.ts.map +1 -0
  121. package/lib/typescript/module/src/dynamicLoading/dynamic-font-loading.d.ts +3 -0
  122. package/lib/typescript/module/src/dynamicLoading/dynamic-font-loading.d.ts.map +1 -0
  123. package/lib/typescript/module/src/dynamicLoading/dynamic-font-loading.web.d.ts +6 -0
  124. package/lib/typescript/module/src/dynamicLoading/dynamic-font-loading.web.d.ts.map +1 -0
  125. package/lib/typescript/module/src/dynamicLoading/dynamic-loading-setting.d.ts +41 -0
  126. package/lib/typescript/module/src/dynamicLoading/dynamic-loading-setting.d.ts.map +1 -0
  127. package/lib/typescript/module/src/dynamicLoading/types.d.ts +9 -0
  128. package/lib/typescript/module/src/dynamicLoading/types.d.ts.map +1 -0
  129. package/lib/typescript/module/src/ensure-native-module-available.d.ts +2 -0
  130. package/lib/typescript/module/src/ensure-native-module-available.d.ts.map +1 -0
  131. package/lib/typescript/module/src/index.d.ts +6 -0
  132. package/lib/typescript/module/src/index.d.ts.map +1 -0
  133. package/lib/typescript/module/src/scripts/common.d.ts +2 -0
  134. package/lib/typescript/module/src/scripts/common.d.ts.map +1 -0
  135. package/lib/typescript/module/src/scripts/getFonts.d.ts +3 -0
  136. package/lib/typescript/module/src/scripts/getFonts.d.ts.map +1 -0
  137. package/lib/typescript/module/src/scripts/updatePlist.d.ts +3 -0
  138. package/lib/typescript/module/src/scripts/updatePlist.d.ts.map +1 -0
  139. package/package.json +72 -44
  140. package/react-native-vector-icons.podspec +67 -42
  141. package/react-native.config.js +12 -0
  142. package/src/NativeVectorIcons.ts +2 -4
  143. package/src/create-icon-set.tsx +79 -32
  144. package/src/dynamicLoading/dynamic-font-loading.ts +97 -0
  145. package/src/dynamicLoading/dynamic-font-loading.web.ts +15 -0
  146. package/src/dynamicLoading/dynamic-loading-setting.ts +77 -0
  147. package/src/dynamicLoading/types.ts +10 -0
  148. package/src/index.ts +48 -1
  149. package/src/scripts/common.ts +52 -0
  150. package/src/scripts/getFonts.ts +6 -47
  151. package/src/scripts/updatePlist.ts +58 -0
  152. package/android/src/main/java/com/reactnativevectoricons/common/VectorIconsModule.java +0 -121
  153. package/android/src/main/java/com/reactnativevectoricons/common/VectorIconsPackage.java +0 -45
  154. package/android/src/newarch/VectorIconsSpec.java +0 -9
  155. package/android/src/oldarch/VectorIconsSpec.java +0 -18
  156. package/lib/typescript/src/NativeVectorIcons.d.ts +0 -9
  157. package/lib/typescript/src/NativeVectorIcons.d.ts.map +0 -1
  158. package/lib/typescript/src/NativeVectorIcons.web.d.ts.map +0 -1
  159. package/lib/typescript/src/create-icon-set.d.ts +0 -26
  160. package/lib/typescript/src/create-icon-set.d.ts.map +0 -1
  161. package/lib/typescript/src/create-icon-source-cache.d.ts.map +0 -1
  162. package/lib/typescript/src/ensure-native-module-available.d.ts.map +0 -1
  163. package/lib/typescript/src/index.d.ts +0 -3
  164. package/lib/typescript/src/index.d.ts.map +0 -1
  165. package/lib/typescript/src/scripts/getFonts.d.ts.map +0 -1
  166. /package/lib/typescript/{src → commonjs/src}/NativeVectorIcons.web.d.ts +0 -0
  167. /package/lib/typescript/{src → commonjs/src}/create-icon-source-cache.d.ts +0 -0
  168. /package/lib/typescript/{src → commonjs/src}/ensure-native-module-available.d.ts +0 -0
  169. /package/lib/typescript/{src → commonjs/src}/scripts/getFonts.d.ts +0 -0
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.dynamicLoader = void 0;
7
+ var _registry = require("@react-native/assets-registry/registry");
8
+ var _resolveAssetSource = _interopRequireDefault(require("react-native/Libraries/Image/resolveAssetSource"));
9
+ var _dynamicLoadingSetting = require("./dynamic-loading-setting.js");
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ /*
12
+ * The following imports are always present when react native is installed
13
+ * in the future, more explicit apis will be exposed by the core, including typings
14
+ * */
15
+ // @ts-expect-error missing types
16
+ // eslint-disable-next-line import/no-extraneous-dependencies
17
+
18
+ // @ts-expect-error missing types
19
+
20
+ const loadPromises = {};
21
+ const loadFontAsync = async (fontFamily, fontSource) => {
22
+ const expoModules = globalThis?.expo?.modules;
23
+ if (!expoModules) {
24
+ throw new Error('Expo is not available. Dynamic font loading is not available.');
25
+ }
26
+ if (loadPromises[fontFamily]) {
27
+ return loadPromises[fontFamily];
28
+ }
29
+ loadPromises[fontFamily] = async function LoadFont() {
30
+ try {
31
+ const localUri = await (() => {
32
+ if (typeof fontSource === 'string') {
33
+ // a local filesystem uri
34
+ return fontSource;
35
+ }
36
+ // a module id
37
+ const {
38
+ uri,
39
+ type,
40
+ hash
41
+ } = getLocalFontUrl(fontSource, fontFamily);
42
+ return expoModules.ExpoAsset.downloadAsync(uri, hash, type);
43
+ })();
44
+ await expoModules.ExpoFontLoader.loadAsync(fontFamily, localUri);
45
+ } catch (error) {
46
+ console.error(`Failed to load font ${fontFamily}`, error); // eslint-disable-line no-console
47
+
48
+ (0, _dynamicLoadingSetting.getErrorCallback)()?.({
49
+ error: error,
50
+ fontFamily,
51
+ fontSource
52
+ });
53
+ } finally {
54
+ delete loadPromises[fontFamily];
55
+ }
56
+ }();
57
+ return loadPromises[fontFamily];
58
+ };
59
+ const getLocalFontUrl = (fontModuleId, fontFamily) => {
60
+ const assetMeta = (0, _registry.getAssetByID)(fontModuleId);
61
+ if (!assetMeta) {
62
+ throw new Error(`no asset found for font family "${fontFamily}", moduleId: ${String(fontModuleId)}`);
63
+ }
64
+ const resolver = _resolveAssetSource.default;
65
+ const assetSource = resolver(fontModuleId);
66
+ return {
67
+ ...assetMeta,
68
+ ...assetSource
69
+ };
70
+ };
71
+ const loadedFontsCache = {};
72
+ const isLoadedNative = fontFamily => {
73
+ if (fontFamily in loadedFontsCache) {
74
+ return true;
75
+ }
76
+ const {
77
+ expo
78
+ } = globalThis;
79
+ if (!expo) {
80
+ throw new Error('Expo is not available. Dynamic font loading is not available.');
81
+ }
82
+ const loadedNativeFonts = expo.modules.ExpoFontLoader.getLoadedFonts();
83
+ loadedNativeFonts.forEach(font => {
84
+ loadedFontsCache[font] = true;
85
+ });
86
+ return fontFamily in loadedFontsCache;
87
+ };
88
+ const dynamicLoader = exports.dynamicLoader = {
89
+ isLoaded: isLoadedNative,
90
+ loadFontAsync
91
+ };
92
+ //# sourceMappingURL=dynamic-font-loading.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_registry","require","_resolveAssetSource","_interopRequireDefault","_dynamicLoadingSetting","e","__esModule","default","loadPromises","loadFontAsync","fontFamily","fontSource","expoModules","globalThis","expo","modules","Error","LoadFont","localUri","uri","type","hash","getLocalFontUrl","ExpoAsset","downloadAsync","ExpoFontLoader","loadAsync","error","console","getErrorCallback","fontModuleId","assetMeta","getAssetByID","String","resolver","resolveAssetSource","assetSource","loadedFontsCache","isLoadedNative","loadedNativeFonts","getLoadedFonts","forEach","font","dynamicLoader","exports","isLoaded"],"sourceRoot":"../../../src","sources":["dynamicLoading/dynamic-font-loading.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.dynamicLoader = void 0;
7
+ /**
8
+ * dynamic font loading isn't supported on web
9
+ * */
10
+
11
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
12
+ const loadFontAsync = async (_fontFamily, _fontSource) => undefined;
13
+
14
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
15
+ const isLoaded = _fontFamily => true;
16
+ const dynamicLoader = exports.dynamicLoader = {
17
+ isLoaded,
18
+ loadFontAsync
19
+ };
20
+ //# sourceMappingURL=dynamic-font-loading.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["loadFontAsync","_fontFamily","_fontSource","undefined","isLoaded","dynamicLoader","exports"],"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;AAEvC,MAAMI,aAA4B,GAAAC,OAAA,CAAAD,aAAA,GAAG;EAC1CD,QAAQ;EACRJ;AACF,CAAC","ignoreList":[]}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.setDynamicLoadingErrorCallback = exports.setDynamicLoadingEnabled = exports.isDynamicLoadingSupported = exports.isDynamicLoadingEnabled = exports.getErrorCallback = void 0;
7
+ const hasNecessaryExpoModules = !!globalThis.expo?.modules?.ExpoAsset && !!globalThis.expo?.modules?.ExpoFontLoader;
8
+ const hasNecessaryExpoFeatures = hasNecessaryExpoModules && typeof globalThis.expo?.modules.ExpoFontLoader.getLoadedFonts === 'function';
9
+ let dynamicFontLoadingEnabled = hasNecessaryExpoFeatures;
10
+ const isDynamicLoadingSupported = () => hasNecessaryExpoFeatures;
11
+
12
+ /**
13
+ * Set whether dynamic loading of fonts is enabled.
14
+ * Currently, the presence of Expo Asset and Font Loader modules is a prerequisite for enabling.
15
+ * In the future, React Native core apis will be used for dynamic font loading.
16
+ *
17
+ * @param value - whether dynamic loading of fonts is enabled
18
+ * @returns `true` if dynamic loading of fonts was successfully set. `false` otherwise.
19
+ * */
20
+ exports.isDynamicLoadingSupported = isDynamicLoadingSupported;
21
+ const setDynamicLoadingEnabled = value => {
22
+ if (!hasNecessaryExpoFeatures) {
23
+ if (process.env.NODE_ENV !== 'production' && !!value) {
24
+ 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.';
25
+ console.error(message); // eslint-disable-line no-console
26
+ }
27
+ return false;
28
+ }
29
+ dynamicFontLoadingEnabled = !!value;
30
+ return true;
31
+ };
32
+
33
+ /**
34
+ * Whether dynamic loading of fonts is enabled.
35
+ * */
36
+ exports.setDynamicLoadingEnabled = setDynamicLoadingEnabled;
37
+ const isDynamicLoadingEnabled = () => dynamicFontLoadingEnabled;
38
+ exports.isDynamicLoadingEnabled = isDynamicLoadingEnabled;
39
+ let dynamicLoadingErrorCallback;
40
+
41
+ /**
42
+ * Set a callback to be called when an error occurs during dynamic font loading.
43
+ * */
44
+ const setDynamicLoadingErrorCallback = callback => {
45
+ dynamicLoadingErrorCallback = callback;
46
+ };
47
+ exports.setDynamicLoadingErrorCallback = setDynamicLoadingErrorCallback;
48
+ const getErrorCallback = () => dynamicLoadingErrorCallback;
49
+ exports.getErrorCallback = getErrorCallback;
50
+ //# sourceMappingURL=dynamic-loading-setting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["hasNecessaryExpoModules","globalThis","expo","modules","ExpoAsset","ExpoFontLoader","hasNecessaryExpoFeatures","getLoadedFonts","dynamicFontLoadingEnabled","isDynamicLoadingSupported","exports","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;AAEjD,MAAMG,yBAAyB,GAAGA,CAAA,KAAMH,wBAAwB;;AAEvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPAI,OAAA,CAAAD,yBAAA,GAAAA,yBAAA;AAQO,MAAME,wBAAwB,GAAIC,KAAc,IAAc;EACnE,IAAI,CAACN,wBAAwB,EAAE;IAC7B,IAAIO,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,IAAI,CAAC,CAACH,KAAK,EAAE;MACpD,MAAMI,OAAO,GAAGhB,uBAAuB,GACnC,sGAAsG,GACtG,gIAAgI;MACpIiB,OAAO,CAACC,KAAK,CAACF,OAAO,CAAC,CAAC,CAAC;IAC1B;IACA,OAAO,KAAK;EACd;EAEAR,yBAAyB,GAAG,CAAC,CAACI,KAAK;EAEnC,OAAO,IAAI;AACb,CAAC;;AAED;AACA;AACA;AAFAF,OAAA,CAAAC,wBAAA,GAAAA,wBAAA;AAGO,MAAMQ,uBAAuB,GAAGA,CAAA,KAAMX,yBAAyB;AAACE,OAAA,CAAAS,uBAAA,GAAAA,uBAAA;AAQvE,IAAIC,2BAAsD;;AAE1D;AACA;AACA;AACO,MAAMC,8BAA8B,GAAIC,QAAuB,IAAK;EACzEF,2BAA2B,GAAGE,QAAQ;AACxC,CAAC;AAACZ,OAAA,CAAAW,8BAAA,GAAAA,8BAAA;AAEK,MAAME,gBAAgB,GAAGA,CAAA,KAAMH,2BAA2B;AAACV,OAAA,CAAAa,gBAAA,GAAAA,gBAAA","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["dynamicLoading/types.ts"],"mappings":"","ignoreList":[]}
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = ensureNativeModuleAvailable;
7
7
  var _NativeVectorIcons = _interopRequireDefault(require("./NativeVectorIcons"));
8
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
9
  function ensureNativeModuleAvailable() {
10
10
  if (!_NativeVectorIcons.default) {
11
11
  throw new Error('The native RNVectorIcons API is not available, did you properly integrate the module? Please verify your autolinking setup and recompile.');
@@ -1 +1 @@
1
- {"version":3,"names":["_NativeVectorIcons","_interopRequireDefault","require","obj","__esModule","default","ensureNativeModuleAvailable","NativeIconAPI","Error"],"sourceRoot":"../../src","sources":["ensure-native-module-available.ts"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAgD,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEjC,SAASG,2BAA2BA,CAAA,EAAG;EACpD,IAAI,CAACC,0BAAa,EAAE;IAClB,MAAM,IAAIC,KAAK,CACb,2IACF,CAAC;EACH;AACF","ignoreList":[]}
1
+ {"version":3,"names":["_NativeVectorIcons","_interopRequireDefault","require","e","__esModule","default","ensureNativeModuleAvailable","NativeIconAPI","Error"],"sourceRoot":"../../src","sources":["ensure-native-module-available.ts"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAgD,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEjC,SAASG,2BAA2BA,CAAA,EAAG;EACpD,IAAI,CAACC,0BAAa,EAAE;IAClB,MAAM,IAAIC,KAAK,CACb,2IACF,CAAC;EACH;AACF","ignoreList":[]}
@@ -21,5 +21,61 @@ Object.defineProperty(exports, "createIconSet", {
21
21
  return _createIconSet.createIconSet;
22
22
  }
23
23
  });
24
- var _createIconSet = require("./create-icon-set");
24
+ exports.getImageForFont = getImageForFont;
25
+ exports.getImageForFontSync = getImageForFontSync;
26
+ Object.defineProperty(exports, "isDynamicLoadingEnabled", {
27
+ enumerable: true,
28
+ get: function () {
29
+ return _dynamicLoadingSetting.isDynamicLoadingEnabled;
30
+ }
31
+ });
32
+ Object.defineProperty(exports, "isDynamicLoadingSupported", {
33
+ enumerable: true,
34
+ get: function () {
35
+ return _dynamicLoadingSetting.isDynamicLoadingSupported;
36
+ }
37
+ });
38
+ Object.defineProperty(exports, "setDynamicLoadingEnabled", {
39
+ enumerable: true,
40
+ get: function () {
41
+ return _dynamicLoadingSetting.setDynamicLoadingEnabled;
42
+ }
43
+ });
44
+ Object.defineProperty(exports, "setDynamicLoadingErrorCallback", {
45
+ enumerable: true,
46
+ get: function () {
47
+ return _dynamicLoadingSetting.setDynamicLoadingErrorCallback;
48
+ }
49
+ });
50
+ var _reactNative = require("react-native");
51
+ var _createIconSet = require("./create-icon-set.js");
52
+ var _dynamicLoadingSetting = require("./dynamicLoading/dynamic-loading-setting.js");
53
+ const LINKING_ERROR = `
54
+ The package '@react-native-vector-icons/common' doesn't seem to be linked. Make sure:
55
+ ${_reactNative.Platform.select({
56
+ ios: "- You have run 'pod install'\n",
57
+ default: ''
58
+ })}
59
+ - You rebuilt the app after installing the package\n'
60
+ - You are not using Expo Go
61
+ `;
62
+
63
+ // @ts-expect-error : NativeModules type is incomplete
64
+ const isTurboModuleEnabled = global.__turboModuleProxy != null; // eslint-disable-line no-underscore-dangle
65
+
66
+ const VectorIconsModule = isTurboModuleEnabled ? require('./NativeVectorIcons').default // eslint-disable-line @typescript-eslint/no-require-imports
67
+ : _reactNative.NativeModules.VectorIcons;
68
+ const VectorIcons = VectorIconsModule ? VectorIconsModule : new Proxy({}, {
69
+ get() {
70
+ throw new Error(LINKING_ERROR);
71
+ }
72
+ });
73
+
74
+ // TODO: Do we want to expose this as a public API?
75
+ function getImageForFont(fontFamilyName, glyph, fontSize, color) {
76
+ return VectorIcons.getImageForFont(fontFamilyName, glyph, fontSize, color);
77
+ }
78
+ function getImageForFontSync(fontFamilyName, glyph, fontSize, color) {
79
+ return VectorIcons.getImageForFontSync(fontFamilyName, glyph, fontSize, color);
80
+ }
25
81
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_createIconSet","require"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_createIconSet","_dynamicLoadingSetting","LINKING_ERROR","Platform","select","ios","default","isTurboModuleEnabled","global","__turboModuleProxy","VectorIconsModule","NativeModules","VectorIcons","Proxy","get","Error","getImageForFont","fontFamilyName","glyph","fontSize","color","getImageForFontSync"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,IAAAC,cAAA,GAAAD,OAAA;AAEA,IAAAE,sBAAA,GAAAF,OAAA;AAOA,MAAMG,aAAa,GAAG;AACtB;AACA,MAAMC,qBAAQ,CAACC,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,GAC1CR,OAAO,CAAC,qBAAqB,CAAC,CAACO,OAAO,CAAC;AAAA,EACvCK,0BAAa,CAACC,WAAW;AAE7B,MAAMA,WAAW,GAAGF,iBAAiB,GACjCA,iBAAiB,GACjB,IAAIG,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACb,aAAa,CAAC;EAChC;AACF,CACF,CAAC;;AAEL;AACO,SAASc,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;AAEO,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,49 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getFontPaths = void 0;
7
+ var _nodeFs = _interopRequireDefault(require("node:fs"));
8
+ var _nodePath = _interopRequireDefault(require("node:path"));
9
+ var _cliTools = require("@react-native-community/cli-tools");
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ const getPackageJson = filename => {
12
+ const packageData = _nodeFs.default.readFileSync(filename, 'utf-8');
13
+ const packageJson = JSON.parse(packageData);
14
+ return packageJson;
15
+ };
16
+ const getPackageFontDirectories = packageJsonFilename => {
17
+ const rootPackageJson = getPackageJson(packageJsonFilename);
18
+ const dependencies = Object.keys(rootPackageJson.dependencies || {});
19
+ const packageDirs = [];
20
+ dependencies.forEach(dependency => {
21
+ const dir = (0, _cliTools.resolveNodeModuleDir)(packageJsonFilename, dependency);
22
+ const packageJson = getPackageJson(`${dir}/package.json`);
23
+ if (packageJson.keywords?.includes?.('react-native-vector-icons-icon')) {
24
+ packageDirs.push(`${dir}/fonts`);
25
+ }
26
+ });
27
+ return packageDirs;
28
+ };
29
+ const getLocalFontsDir = packageJsonFilename => {
30
+ const rootPackageJson = getPackageJson(packageJsonFilename);
31
+ const config = rootPackageJson.reactNativeVectorIcons || {};
32
+ return `${_nodePath.default.dirname(packageJsonFilename)}/${config.fontDir || 'rnvi-fonts'}`;
33
+ };
34
+ const getFonts = fontDir => {
35
+ if (!_nodeFs.default.existsSync(fontDir)) {
36
+ return [];
37
+ }
38
+ const fonts = _nodeFs.default.readdirSync(fontDir);
39
+ const fontPaths = fonts.map(font => `${fontDir}/${font}`);
40
+ return fontPaths;
41
+ };
42
+ const getFontPaths = packageJsonFilename => {
43
+ const packageDirs = getPackageFontDirectories(packageJsonFilename);
44
+ packageDirs.push(getLocalFontsDir(packageJsonFilename));
45
+ const fonts = packageDirs.map(getFonts);
46
+ return fonts.flat();
47
+ };
48
+ exports.getFontPaths = getFontPaths;
49
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_nodeFs","_interopRequireDefault","require","_nodePath","_cliTools","e","__esModule","default","getPackageJson","filename","packageData","fs","readFileSync","packageJson","JSON","parse","getPackageFontDirectories","packageJsonFilename","rootPackageJson","dependencies","Object","keys","packageDirs","forEach","dependency","dir","resolveNodeModuleDir","keywords","includes","push","getLocalFontsDir","config","reactNativeVectorIcons","path","dirname","fontDir","getFonts","existsSync","fonts","readdirSync","fontPaths","map","font","getFontPaths","flat","exports"],"sourceRoot":"../../../src","sources":["scripts/common.ts"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAAyE,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEzE,MAAMG,cAAc,GAAIC,QAAgB,IAAK;EAC3C,MAAMC,WAAW,GAAGC,eAAE,CAACC,YAAY,CAACH,QAAQ,EAAE,OAAO,CAAC;EACtD,MAAMI,WAAW,GAAGC,IAAI,CAACC,KAAK,CAACL,WAAW,CAAC;EAE3C,OAAOG,WAAW;AACpB,CAAC;AAED,MAAMG,yBAAyB,GAAIC,mBAA2B,IAAK;EACjE,MAAMC,eAAe,GAAGV,cAAc,CAACS,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,GAAG,IAAAC,8BAAoB,EAACT,mBAAmB,EAAEO,UAAU,CAAC;IACjE,MAAMX,WAAW,GAAGL,cAAc,CAAC,GAAGiB,GAAG,eAAe,CAAC;IACzD,IAAIZ,WAAW,CAACc,QAAQ,EAAEC,QAAQ,GAAG,gCAAgC,CAAC,EAAE;MACtEN,WAAW,CAACO,IAAI,CAAC,GAAGJ,GAAG,QAAQ,CAAC;IAClC;EACF,CAAC,CAAC;EAEF,OAAOH,WAAW;AACpB,CAAC;AAED,MAAMQ,gBAAgB,GAAIb,mBAA2B,IAAK;EACxD,MAAMC,eAAe,GAAGV,cAAc,CAACS,mBAAmB,CAAC;EAC3D,MAAMc,MAAM,GAAGb,eAAe,CAACc,sBAAsB,IAAI,CAAC,CAAC;EAE3D,OAAO,GAAGC,iBAAI,CAACC,OAAO,CAACjB,mBAAmB,CAAC,IAAIc,MAAM,CAACI,OAAO,IAAI,YAAY,EAAE;AACjF,CAAC;AAED,MAAMC,QAAQ,GAAID,OAAe,IAAK;EACpC,IAAI,CAACxB,eAAE,CAAC0B,UAAU,CAACF,OAAO,CAAC,EAAE;IAC3B,OAAO,EAAE;EACX;EAEA,MAAMG,KAAK,GAAG3B,eAAE,CAAC4B,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;AAEM,MAAMG,YAAY,GAAI1B,mBAA2B,IAAK;EAC3D,MAAMK,WAAW,GAAGN,yBAAyB,CAACC,mBAAmB,CAAC;EAClEK,WAAW,CAACO,IAAI,CAACC,gBAAgB,CAACb,mBAAmB,CAAC,CAAC;EACvD,MAAMqB,KAAK,GAAGhB,WAAW,CAACmB,GAAG,CAACL,QAAQ,CAAC;EAEvC,OAAOE,KAAK,CAACM,IAAI,CAAC,CAAC;AACrB,CAAC;AAACC,OAAA,CAAAF,YAAA,GAAAA,YAAA","ignoreList":[]}
@@ -1,45 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
3
 
4
- var _nodeFs = _interopRequireDefault(require("node:fs"));
5
- var _nodePath = _interopRequireDefault(require("node:path"));
6
- var _cliTools = require("@react-native-community/cli-tools");
7
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
- const rootDir = process.argv[2];
9
- if (!rootDir) {
10
- throw new Error('Need rootDir as first argument');
4
+ var _common = require("./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');
11
8
  }
12
- const getPackageJson = dir => {
13
- const packageData = _nodeFs.default.readFileSync(_nodePath.default.join(dir, 'package.json'), 'utf-8');
14
- const packageJson = JSON.parse(packageData);
15
- return packageJson;
16
- };
17
- const getPackages = () => {
18
- const rootPackageJson = getPackageJson(rootDir);
19
- const dependencies = Object.keys(rootPackageJson.dependencies || {});
20
- const packageDirs = [];
21
- dependencies.forEach(dependency => {
22
- const dir = (0, _cliTools.resolveNodeModuleDir)(rootDir, dependency);
23
- const packageJson = getPackageJson(dir);
24
- if (packageJson.keywords?.includes?.('react-native-vector-icons-icon')) {
25
- packageDirs.push(dir);
26
- }
27
- });
28
- return packageDirs;
29
- };
30
- const getFonts = dir => {
31
- const fontDirs = [`${dir}/fonts`];
32
- const rootPackageJson = getPackageJson(rootDir);
33
- const config = rootPackageJson.reactNativeVectorIcons || {};
34
- fontDirs.push(`${rootDir}/${config.fontDir || 'rnvi-fonts'}`);
35
- fontDirs.forEach(fontDir => {
36
- if (!_nodeFs.default.existsSync(fontDir)) {
37
- return;
38
- }
39
- const fonts = _nodeFs.default.readdirSync(fontDir);
40
- fonts.forEach(font => console.log(`${fontDir}/${font}`)); // eslint-disable-line no-console
41
- });
42
- };
43
- const packageDirs = getPackages();
44
- packageDirs.forEach(dir => getFonts(dir));
9
+ const fonts = (0, _common.getFontPaths)(packageJsonFilename);
10
+ fonts.map(font => console.log(font)); // eslint-disable-line no-console
45
11
  //# sourceMappingURL=getFonts.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_nodeFs","_interopRequireDefault","require","_nodePath","_cliTools","obj","__esModule","default","rootDir","process","argv","Error","getPackageJson","dir","packageData","fs","readFileSync","path","join","packageJson","JSON","parse","getPackages","rootPackageJson","dependencies","Object","keys","packageDirs","forEach","dependency","resolveNodeModuleDir","keywords","includes","push","getFonts","fontDirs","config","reactNativeVectorIcons","fontDir","existsSync","fonts","readdirSync","font","console","log"],"sourceRoot":"../../../src","sources":["scripts/getFonts.ts"],"mappings":"AAAA;AAAmB;;AAEnB,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAAyE,SAAAD,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEzE,MAAMG,OAAO,GAAGC,OAAO,CAACC,IAAI,CAAC,CAAC,CAAC;AAC/B,IAAI,CAACF,OAAO,EAAE;EACZ,MAAM,IAAIG,KAAK,CAAC,gCAAgC,CAAC;AACnD;AAEA,MAAMC,cAAc,GAAIC,GAAW,IAAK;EACtC,MAAMC,WAAW,GAAGC,eAAE,CAACC,YAAY,CAACC,iBAAI,CAACC,IAAI,CAACL,GAAG,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC;EAC5E,MAAMM,WAAW,GAAGC,IAAI,CAACC,KAAK,CAACP,WAAW,CAAC;EAE3C,OAAOK,WAAW;AACpB,CAAC;AAED,MAAMG,WAAW,GAAGA,CAAA,KAAM;EACxB,MAAMC,eAAe,GAAGX,cAAc,CAACJ,OAAO,CAAC;EAC/C,MAAMgB,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,MAAMhB,GAAG,GAAG,IAAAiB,8BAAoB,EAACtB,OAAO,EAAEqB,UAAU,CAAC;IACrD,MAAMV,WAAW,GAAGP,cAAc,CAACC,GAAG,CAAC;IACvC,IAAIM,WAAW,CAACY,QAAQ,EAAEC,QAAQ,GAAG,gCAAgC,CAAC,EAAE;MACtEL,WAAW,CAACM,IAAI,CAACpB,GAAG,CAAC;IACvB;EACF,CAAC,CAAC;EACF,OAAOc,WAAW;AACpB,CAAC;AAED,MAAMO,QAAQ,GAAIrB,GAAW,IAAK;EAChC,MAAMsB,QAAQ,GAAG,CAAE,GAAEtB,GAAI,QAAO,CAAC;EAEjC,MAAMU,eAAe,GAAGX,cAAc,CAACJ,OAAO,CAAC;EAC/C,MAAM4B,MAAM,GAAGb,eAAe,CAACc,sBAAsB,IAAI,CAAC,CAAC;EAC3DF,QAAQ,CAACF,IAAI,CAAE,GAAEzB,OAAQ,IAAG4B,MAAM,CAACE,OAAO,IAAI,YAAa,EAAC,CAAC;EAE7DH,QAAQ,CAACP,OAAO,CAAEU,OAAO,IAAK;IAC5B,IAAI,CAACvB,eAAE,CAACwB,UAAU,CAACD,OAAO,CAAC,EAAE;MAC3B;IACF;IAEA,MAAME,KAAK,GAAGzB,eAAE,CAAC0B,WAAW,CAACH,OAAO,CAAC;IACrCE,KAAK,CAACZ,OAAO,CAAEc,IAAI,IAAKC,OAAO,CAACC,GAAG,CAAE,GAAEN,OAAQ,IAAGI,IAAK,EAAC,CAAC,CAAC,CAAC,CAAC;EAC9D,CAAC,CAAC;AACJ,CAAC;AAED,MAAMf,WAAW,GAAGL,WAAW,CAAC,CAAC;AACjCK,WAAW,CAACC,OAAO,CAAEf,GAAG,IAAKqB,QAAQ,CAACrB,GAAG,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_common","require","packageJsonFilename","process","argv","Error","fonts","getFontPaths","map","font","console","log"],"sourceRoot":"../../../src","sources":["scripts/getFonts.ts"],"mappings":"AAAA;AAAmB;;AAEnB,IAAAA,OAAA,GAAAC,OAAA;AAEA,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,GAAG,IAAAC,oBAAY,EAACL,mBAAmB,CAAC;AAC/CI,KAAK,CAACE,GAAG,CAAEC,IAAI,IAAKC,OAAO,CAACC,GAAG,CAACF,IAAI,CAAC,CAAC,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,54 @@
1
+ #!/usr/bin/env node
2
+ /* eslint-disable no-console */
3
+ "use strict";
4
+
5
+ var _nodeFs = _interopRequireDefault(require("node:fs"));
6
+ var path = _interopRequireWildcard(require("node:path"));
7
+ var _picocolors = _interopRequireDefault(require("picocolors"));
8
+ var plist = _interopRequireWildcard(require("plist"));
9
+ var _common = require("./common.js");
10
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
11
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ const getFontName = fontPath => path.basename(fontPath);
14
+ const packageJsonFilename = process.argv[2];
15
+ if (!packageJsonFilename) {
16
+ throw new Error('Need the path to the root package.json as the first argument');
17
+ }
18
+ const infoPlistFilename = process.argv[3];
19
+ if (!infoPlistFilename) {
20
+ throw new Error('Need the path to the Info.plist as the second argument');
21
+ }
22
+ const fonts = (0, _common.getFontPaths)(packageJsonFilename);
23
+ console.log(`Found ${fonts.length} fonts`);
24
+ const infoPlistContent = _nodeFs.default.readFileSync(infoPlistFilename, 'utf8');
25
+ const infoPlist = plist.parse(infoPlistContent);
26
+ const plistFonts = new Set(infoPlist.UIAppFonts || []);
27
+ const providedFonts = new Set(fonts.map(getFontName));
28
+ let hasChanges = false;
29
+
30
+ // Check for missing fonts and add them
31
+ providedFonts.forEach(font => {
32
+ if (!plistFonts.has(font)) {
33
+ plistFonts.add(font);
34
+ console.log(_picocolors.default.green(`Added ${font}`));
35
+ hasChanges = true;
36
+ } else {
37
+ console.log(`Existing ${font}`);
38
+ }
39
+ });
40
+
41
+ // Check for extra fonts in Info.plist
42
+ plistFonts.forEach(font => {
43
+ if (!providedFonts.has(font)) {
44
+ console.log(_picocolors.default.red(`Extra ${font} (Please remove manually if not needed)`));
45
+ }
46
+ });
47
+
48
+ // Update Info.plist if there were changes
49
+ if (hasChanges) {
50
+ infoPlist.UIAppFonts = Array.from(plistFonts);
51
+ const updatedInfoPlistContent = plist.build(infoPlist).replace(/^ {2}/gm, '').replace(/ {2}/gm, '\t');
52
+ _nodeFs.default.writeFileSync(infoPlistFilename, updatedInfoPlistContent, 'utf8');
53
+ }
54
+ //# sourceMappingURL=updatePlist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_nodeFs","_interopRequireDefault","require","path","_interopRequireWildcard","_picocolors","plist","_common","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","getFontName","fontPath","basename","packageJsonFilename","process","argv","Error","infoPlistFilename","fonts","getFontPaths","console","log","length","infoPlistContent","fs","readFileSync","infoPlist","parse","plistFonts","Set","UIAppFonts","providedFonts","map","hasChanges","forEach","font","add","pc","green","red","Array","from","updatedInfoPlistContent","build","replace","writeFileSync"],"sourceRoot":"../../../src","sources":["scripts/updatePlist.ts"],"mappings":"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","ignoreList":[]}
@@ -1,3 +1,5 @@
1
+ "use strict";
2
+
1
3
  import { TurboModuleRegistry } from 'react-native';
2
4
  export default TurboModuleRegistry.getEnforcing('VectorIcons');
3
5
  //# sourceMappingURL=NativeVectorIcons.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeVectorIcons.ts"],"mappings":"AACA,SAASA,mBAAmB,QAAQ,cAAc;AAUlD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,aAAa,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeVectorIcons.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;AAQlD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,aAAa,CAAC","ignoreList":[]}
@@ -1,2 +1,4 @@
1
+ "use strict";
2
+
1
3
  export default {};
2
4
  //# sourceMappingURL=NativeVectorIcons.web.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sourceRoot":"../../src","sources":["NativeVectorIcons.web.ts"],"mappings":"AAAA,eAAe,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["NativeVectorIcons.web.ts"],"mappings":";;AAAA,eAAe,CAAC,CAAC","ignoreList":[]}
@@ -1,19 +1,31 @@
1
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
- import React, { forwardRef } from 'react';
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 './create-icon-source-cache';
6
- import ensureNativeModuleAvailable from './ensure-native-module-available';
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 const createIconSet = (glyphMap, fontFamily, fontFile, fontStyle) => {
10
- // Android doesn't care about actual fontFamily name, it will only look in fonts folder.
11
- const fontBasename = fontFile ? fontFile.replace(/\.(otf|ttf)$/, '') : fontFamily;
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/${fontFile}#${fontFamily}`,
25
+ windows: `/Assets/${fontFileName}#${postScriptName}`,
14
26
  android: fontBasename,
15
27
  web: fontBasename,
16
- default: fontFamily
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 glyph = name ? resolveGlyph(name) : '';
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__*/React.createElement(Text, _extends({
78
+ return /*#__PURE__*/_jsxs(Text, {
51
79
  ref: innerRef,
52
- selectable: false
53
- }, newProps), glyph, children);
80
+ selectable: false,
81
+ ...newProps,
82
+ children: [glyph, children]
83
+ });
54
84
  };
55
- const WrappedIcon = /*#__PURE__*/forwardRef((props, ref) => /*#__PURE__*/React.createElement(Icon, _extends({
56
- innerRef: ref
57
- }, props)));
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