@thatkid02/react-native-pdf-viewer 0.0.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.
Files changed (95) hide show
  1. package/LICENSE +20 -0
  2. package/PdfViewer.podspec +28 -0
  3. package/README.md +290 -0
  4. package/android/CMakeLists.txt +24 -0
  5. package/android/build.gradle +121 -0
  6. package/android/src/main/AndroidManifest.xml +2 -0
  7. package/android/src/main/cpp/cpp-adapter.cpp +6 -0
  8. package/android/src/main/java/com/margelo/nitro/pdfviewer/HybridPdfViewer.kt +169 -0
  9. package/android/src/main/java/com/margelo/nitro/pdfviewer/PdfViewer.kt +996 -0
  10. package/android/src/main/java/com/margelo/nitro/pdfviewer/PdfViewerPackage.kt +26 -0
  11. package/ios/PdfViewer.swift +696 -0
  12. package/lib/module/PdfViewer.nitro.js +4 -0
  13. package/lib/module/PdfViewer.nitro.js.map +1 -0
  14. package/lib/module/index.js +13 -0
  15. package/lib/module/index.js.map +1 -0
  16. package/lib/module/package.json +1 -0
  17. package/lib/typescript/package.json +1 -0
  18. package/lib/typescript/src/PdfViewer.nitro.d.ts +67 -0
  19. package/lib/typescript/src/PdfViewer.nitro.d.ts.map +1 -0
  20. package/lib/typescript/src/index.d.ts +8 -0
  21. package/lib/typescript/src/index.d.ts.map +1 -0
  22. package/nitro.json +17 -0
  23. package/nitrogen/generated/android/c++/JErrorEvent.hpp +57 -0
  24. package/nitrogen/generated/android/c++/JFunc_void_ErrorEvent.hpp +77 -0
  25. package/nitrogen/generated/android/c++/JFunc_void_LoadCompleteEvent.hpp +76 -0
  26. package/nitrogen/generated/android/c++/JFunc_void_LoadingChangeEvent.hpp +76 -0
  27. package/nitrogen/generated/android/c++/JFunc_void_PageChangeEvent.hpp +76 -0
  28. package/nitrogen/generated/android/c++/JFunc_void_ScaleChangeEvent.hpp +76 -0
  29. package/nitrogen/generated/android/c++/JFunc_void_ThumbnailGeneratedEvent.hpp +77 -0
  30. package/nitrogen/generated/android/c++/JHybridPdfViewerSpec.cpp +273 -0
  31. package/nitrogen/generated/android/c++/JHybridPdfViewerSpec.hpp +94 -0
  32. package/nitrogen/generated/android/c++/JLoadCompleteEvent.hpp +61 -0
  33. package/nitrogen/generated/android/c++/JLoadingChangeEvent.hpp +53 -0
  34. package/nitrogen/generated/android/c++/JPageChangeEvent.hpp +57 -0
  35. package/nitrogen/generated/android/c++/JScaleChangeEvent.hpp +53 -0
  36. package/nitrogen/generated/android/c++/JThumbnailGeneratedEvent.hpp +57 -0
  37. package/nitrogen/generated/android/c++/views/JHybridPdfViewerStateUpdater.cpp +108 -0
  38. package/nitrogen/generated/android/c++/views/JHybridPdfViewerStateUpdater.hpp +49 -0
  39. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/ErrorEvent.kt +32 -0
  40. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/Func_void_ErrorEvent.kt +81 -0
  41. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/Func_void_LoadCompleteEvent.kt +81 -0
  42. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/Func_void_LoadingChangeEvent.kt +81 -0
  43. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/Func_void_PageChangeEvent.kt +81 -0
  44. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/Func_void_ScaleChangeEvent.kt +81 -0
  45. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/Func_void_ThumbnailGeneratedEvent.kt +81 -0
  46. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/HybridPdfViewerSpec.kt +195 -0
  47. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/LoadCompleteEvent.kt +35 -0
  48. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/LoadingChangeEvent.kt +29 -0
  49. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/PageChangeEvent.kt +32 -0
  50. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/ScaleChangeEvent.kt +29 -0
  51. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/ThumbnailGeneratedEvent.kt +32 -0
  52. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/pdfviewerOnLoad.kt +35 -0
  53. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/views/HybridPdfViewerManager.kt +50 -0
  54. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/views/HybridPdfViewerStateUpdater.kt +23 -0
  55. package/nitrogen/generated/android/pdfviewer+autolinking.cmake +83 -0
  56. package/nitrogen/generated/android/pdfviewer+autolinking.gradle +27 -0
  57. package/nitrogen/generated/android/pdfviewerOnLoad.cpp +58 -0
  58. package/nitrogen/generated/android/pdfviewerOnLoad.hpp +25 -0
  59. package/nitrogen/generated/ios/PdfViewer+autolinking.rb +60 -0
  60. package/nitrogen/generated/ios/PdfViewer-Swift-Cxx-Bridge.cpp +80 -0
  61. package/nitrogen/generated/ios/PdfViewer-Swift-Cxx-Bridge.hpp +339 -0
  62. package/nitrogen/generated/ios/PdfViewer-Swift-Cxx-Umbrella.hpp +64 -0
  63. package/nitrogen/generated/ios/PdfViewerAutolinking.mm +33 -0
  64. package/nitrogen/generated/ios/PdfViewerAutolinking.swift +25 -0
  65. package/nitrogen/generated/ios/c++/HybridPdfViewerSpecSwift.cpp +11 -0
  66. package/nitrogen/generated/ios/c++/HybridPdfViewerSpecSwift.hpp +205 -0
  67. package/nitrogen/generated/ios/c++/views/HybridPdfViewerComponent.mm +161 -0
  68. package/nitrogen/generated/ios/swift/ErrorEvent.swift +46 -0
  69. package/nitrogen/generated/ios/swift/Func_void_ErrorEvent.swift +47 -0
  70. package/nitrogen/generated/ios/swift/Func_void_LoadCompleteEvent.swift +47 -0
  71. package/nitrogen/generated/ios/swift/Func_void_LoadingChangeEvent.swift +47 -0
  72. package/nitrogen/generated/ios/swift/Func_void_PageChangeEvent.swift +47 -0
  73. package/nitrogen/generated/ios/swift/Func_void_ScaleChangeEvent.swift +47 -0
  74. package/nitrogen/generated/ios/swift/Func_void_ThumbnailGeneratedEvent.swift +47 -0
  75. package/nitrogen/generated/ios/swift/HybridPdfViewerSpec.swift +65 -0
  76. package/nitrogen/generated/ios/swift/HybridPdfViewerSpec_cxx.swift +500 -0
  77. package/nitrogen/generated/ios/swift/LoadCompleteEvent.swift +57 -0
  78. package/nitrogen/generated/ios/swift/LoadingChangeEvent.swift +35 -0
  79. package/nitrogen/generated/ios/swift/PageChangeEvent.swift +46 -0
  80. package/nitrogen/generated/ios/swift/ScaleChangeEvent.swift +35 -0
  81. package/nitrogen/generated/ios/swift/ThumbnailGeneratedEvent.swift +46 -0
  82. package/nitrogen/generated/shared/c++/ErrorEvent.hpp +71 -0
  83. package/nitrogen/generated/shared/c++/HybridPdfViewerSpec.cpp +52 -0
  84. package/nitrogen/generated/shared/c++/HybridPdfViewerSpec.hpp +111 -0
  85. package/nitrogen/generated/shared/c++/LoadCompleteEvent.hpp +75 -0
  86. package/nitrogen/generated/shared/c++/LoadingChangeEvent.hpp +67 -0
  87. package/nitrogen/generated/shared/c++/PageChangeEvent.hpp +71 -0
  88. package/nitrogen/generated/shared/c++/ScaleChangeEvent.hpp +67 -0
  89. package/nitrogen/generated/shared/c++/ThumbnailGeneratedEvent.hpp +71 -0
  90. package/nitrogen/generated/shared/c++/views/HybridPdfViewerComponent.cpp +243 -0
  91. package/nitrogen/generated/shared/c++/views/HybridPdfViewerComponent.hpp +127 -0
  92. package/nitrogen/generated/shared/json/PdfViewerConfig.json +23 -0
  93. package/package.json +175 -0
  94. package/src/PdfViewer.nitro.ts +97 -0
  95. package/src/index.tsx +27 -0
@@ -0,0 +1,46 @@
1
+ ///
2
+ /// PageChangeEvent.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ import NitroModules
9
+
10
+ /**
11
+ * Represents an instance of `PageChangeEvent`, backed by a C++ struct.
12
+ */
13
+ public typealias PageChangeEvent = margelo.nitro.pdfviewer.PageChangeEvent
14
+
15
+ public extension PageChangeEvent {
16
+ private typealias bridge = margelo.nitro.pdfviewer.bridge.swift
17
+
18
+ /**
19
+ * Create a new instance of `PageChangeEvent`.
20
+ */
21
+ init(page: Double, pageCount: Double) {
22
+ self.init(page, pageCount)
23
+ }
24
+
25
+ var page: Double {
26
+ @inline(__always)
27
+ get {
28
+ return self.__page
29
+ }
30
+ @inline(__always)
31
+ set {
32
+ self.__page = newValue
33
+ }
34
+ }
35
+
36
+ var pageCount: Double {
37
+ @inline(__always)
38
+ get {
39
+ return self.__pageCount
40
+ }
41
+ @inline(__always)
42
+ set {
43
+ self.__pageCount = newValue
44
+ }
45
+ }
46
+ }
@@ -0,0 +1,35 @@
1
+ ///
2
+ /// ScaleChangeEvent.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ import NitroModules
9
+
10
+ /**
11
+ * Represents an instance of `ScaleChangeEvent`, backed by a C++ struct.
12
+ */
13
+ public typealias ScaleChangeEvent = margelo.nitro.pdfviewer.ScaleChangeEvent
14
+
15
+ public extension ScaleChangeEvent {
16
+ private typealias bridge = margelo.nitro.pdfviewer.bridge.swift
17
+
18
+ /**
19
+ * Create a new instance of `ScaleChangeEvent`.
20
+ */
21
+ init(scale: Double) {
22
+ self.init(scale)
23
+ }
24
+
25
+ var scale: Double {
26
+ @inline(__always)
27
+ get {
28
+ return self.__scale
29
+ }
30
+ @inline(__always)
31
+ set {
32
+ self.__scale = newValue
33
+ }
34
+ }
35
+ }
@@ -0,0 +1,46 @@
1
+ ///
2
+ /// ThumbnailGeneratedEvent.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ import NitroModules
9
+
10
+ /**
11
+ * Represents an instance of `ThumbnailGeneratedEvent`, backed by a C++ struct.
12
+ */
13
+ public typealias ThumbnailGeneratedEvent = margelo.nitro.pdfviewer.ThumbnailGeneratedEvent
14
+
15
+ public extension ThumbnailGeneratedEvent {
16
+ private typealias bridge = margelo.nitro.pdfviewer.bridge.swift
17
+
18
+ /**
19
+ * Create a new instance of `ThumbnailGeneratedEvent`.
20
+ */
21
+ init(page: Double, uri: String) {
22
+ self.init(page, std.string(uri))
23
+ }
24
+
25
+ var page: Double {
26
+ @inline(__always)
27
+ get {
28
+ return self.__page
29
+ }
30
+ @inline(__always)
31
+ set {
32
+ self.__page = newValue
33
+ }
34
+ }
35
+
36
+ var uri: String {
37
+ @inline(__always)
38
+ get {
39
+ return String(self.__uri)
40
+ }
41
+ @inline(__always)
42
+ set {
43
+ self.__uri = std.string(newValue)
44
+ }
45
+ }
46
+ }
@@ -0,0 +1,71 @@
1
+ ///
2
+ /// ErrorEvent.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #if __has_include(<NitroModules/JSIConverter.hpp>)
11
+ #include <NitroModules/JSIConverter.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+ #if __has_include(<NitroModules/NitroDefines.hpp>)
16
+ #include <NitroModules/NitroDefines.hpp>
17
+ #else
18
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
+ #endif
20
+
21
+
22
+
23
+ #include <string>
24
+
25
+ namespace margelo::nitro::pdfviewer {
26
+
27
+ /**
28
+ * A struct which can be represented as a JavaScript object (ErrorEvent).
29
+ */
30
+ struct ErrorEvent {
31
+ public:
32
+ std::string message SWIFT_PRIVATE;
33
+ std::string code SWIFT_PRIVATE;
34
+
35
+ public:
36
+ ErrorEvent() = default;
37
+ explicit ErrorEvent(std::string message, std::string code): message(message), code(code) {}
38
+ };
39
+
40
+ } // namespace margelo::nitro::pdfviewer
41
+
42
+ namespace margelo::nitro {
43
+
44
+ // C++ ErrorEvent <> JS ErrorEvent (object)
45
+ template <>
46
+ struct JSIConverter<margelo::nitro::pdfviewer::ErrorEvent> final {
47
+ static inline margelo::nitro::pdfviewer::ErrorEvent fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
48
+ jsi::Object obj = arg.asObject(runtime);
49
+ return margelo::nitro::pdfviewer::ErrorEvent(
50
+ JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "message")),
51
+ JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "code"))
52
+ );
53
+ }
54
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::pdfviewer::ErrorEvent& arg) {
55
+ jsi::Object obj(runtime);
56
+ obj.setProperty(runtime, "message", JSIConverter<std::string>::toJSI(runtime, arg.message));
57
+ obj.setProperty(runtime, "code", JSIConverter<std::string>::toJSI(runtime, arg.code));
58
+ return obj;
59
+ }
60
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
61
+ if (!value.isObject()) {
62
+ return false;
63
+ }
64
+ jsi::Object obj = value.getObject(runtime);
65
+ if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "message"))) return false;
66
+ if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "code"))) return false;
67
+ return true;
68
+ }
69
+ };
70
+
71
+ } // namespace margelo::nitro
@@ -0,0 +1,52 @@
1
+ ///
2
+ /// HybridPdfViewerSpec.cpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #include "HybridPdfViewerSpec.hpp"
9
+
10
+ namespace margelo::nitro::pdfviewer {
11
+
12
+ void HybridPdfViewerSpec::loadHybridMethods() {
13
+ // load base methods/properties
14
+ HybridObject::loadHybridMethods();
15
+ // load custom methods/properties
16
+ registerHybrids(this, [](Prototype& prototype) {
17
+ prototype.registerHybridGetter("source", &HybridPdfViewerSpec::getSource);
18
+ prototype.registerHybridSetter("source", &HybridPdfViewerSpec::setSource);
19
+ prototype.registerHybridGetter("horizontal", &HybridPdfViewerSpec::getHorizontal);
20
+ prototype.registerHybridSetter("horizontal", &HybridPdfViewerSpec::setHorizontal);
21
+ prototype.registerHybridGetter("enablePaging", &HybridPdfViewerSpec::getEnablePaging);
22
+ prototype.registerHybridSetter("enablePaging", &HybridPdfViewerSpec::setEnablePaging);
23
+ prototype.registerHybridGetter("spacing", &HybridPdfViewerSpec::getSpacing);
24
+ prototype.registerHybridSetter("spacing", &HybridPdfViewerSpec::setSpacing);
25
+ prototype.registerHybridGetter("enableZoom", &HybridPdfViewerSpec::getEnableZoom);
26
+ prototype.registerHybridSetter("enableZoom", &HybridPdfViewerSpec::setEnableZoom);
27
+ prototype.registerHybridGetter("minScale", &HybridPdfViewerSpec::getMinScale);
28
+ prototype.registerHybridSetter("minScale", &HybridPdfViewerSpec::setMinScale);
29
+ prototype.registerHybridGetter("maxScale", &HybridPdfViewerSpec::getMaxScale);
30
+ prototype.registerHybridSetter("maxScale", &HybridPdfViewerSpec::setMaxScale);
31
+ prototype.registerHybridGetter("showsActivityIndicator", &HybridPdfViewerSpec::getShowsActivityIndicator);
32
+ prototype.registerHybridSetter("showsActivityIndicator", &HybridPdfViewerSpec::setShowsActivityIndicator);
33
+ prototype.registerHybridGetter("onLoadComplete", &HybridPdfViewerSpec::getOnLoadComplete);
34
+ prototype.registerHybridSetter("onLoadComplete", &HybridPdfViewerSpec::setOnLoadComplete);
35
+ prototype.registerHybridGetter("onPageChange", &HybridPdfViewerSpec::getOnPageChange);
36
+ prototype.registerHybridSetter("onPageChange", &HybridPdfViewerSpec::setOnPageChange);
37
+ prototype.registerHybridGetter("onScaleChange", &HybridPdfViewerSpec::getOnScaleChange);
38
+ prototype.registerHybridSetter("onScaleChange", &HybridPdfViewerSpec::setOnScaleChange);
39
+ prototype.registerHybridGetter("onError", &HybridPdfViewerSpec::getOnError);
40
+ prototype.registerHybridSetter("onError", &HybridPdfViewerSpec::setOnError);
41
+ prototype.registerHybridGetter("onThumbnailGenerated", &HybridPdfViewerSpec::getOnThumbnailGenerated);
42
+ prototype.registerHybridSetter("onThumbnailGenerated", &HybridPdfViewerSpec::setOnThumbnailGenerated);
43
+ prototype.registerHybridGetter("onLoadingChange", &HybridPdfViewerSpec::getOnLoadingChange);
44
+ prototype.registerHybridSetter("onLoadingChange", &HybridPdfViewerSpec::setOnLoadingChange);
45
+ prototype.registerHybridMethod("goToPage", &HybridPdfViewerSpec::goToPage);
46
+ prototype.registerHybridMethod("setScale", &HybridPdfViewerSpec::setScale);
47
+ prototype.registerHybridMethod("generateThumbnail", &HybridPdfViewerSpec::generateThumbnail);
48
+ prototype.registerHybridMethod("generateAllThumbnails", &HybridPdfViewerSpec::generateAllThumbnails);
49
+ });
50
+ }
51
+
52
+ } // namespace margelo::nitro::pdfviewer
@@ -0,0 +1,111 @@
1
+ ///
2
+ /// HybridPdfViewerSpec.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #if __has_include(<NitroModules/HybridObject.hpp>)
11
+ #include <NitroModules/HybridObject.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+
16
+ // Forward declaration of `LoadCompleteEvent` to properly resolve imports.
17
+ namespace margelo::nitro::pdfviewer { struct LoadCompleteEvent; }
18
+ // Forward declaration of `PageChangeEvent` to properly resolve imports.
19
+ namespace margelo::nitro::pdfviewer { struct PageChangeEvent; }
20
+ // Forward declaration of `ScaleChangeEvent` to properly resolve imports.
21
+ namespace margelo::nitro::pdfviewer { struct ScaleChangeEvent; }
22
+ // Forward declaration of `ErrorEvent` to properly resolve imports.
23
+ namespace margelo::nitro::pdfviewer { struct ErrorEvent; }
24
+ // Forward declaration of `ThumbnailGeneratedEvent` to properly resolve imports.
25
+ namespace margelo::nitro::pdfviewer { struct ThumbnailGeneratedEvent; }
26
+ // Forward declaration of `LoadingChangeEvent` to properly resolve imports.
27
+ namespace margelo::nitro::pdfviewer { struct LoadingChangeEvent; }
28
+
29
+ #include <string>
30
+ #include <optional>
31
+ #include "LoadCompleteEvent.hpp"
32
+ #include <functional>
33
+ #include "PageChangeEvent.hpp"
34
+ #include "ScaleChangeEvent.hpp"
35
+ #include "ErrorEvent.hpp"
36
+ #include "ThumbnailGeneratedEvent.hpp"
37
+ #include "LoadingChangeEvent.hpp"
38
+
39
+ namespace margelo::nitro::pdfviewer {
40
+
41
+ using namespace margelo::nitro;
42
+
43
+ /**
44
+ * An abstract base class for `PdfViewer`
45
+ * Inherit this class to create instances of `HybridPdfViewerSpec` in C++.
46
+ * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual.
47
+ * @example
48
+ * ```cpp
49
+ * class HybridPdfViewer: public HybridPdfViewerSpec {
50
+ * public:
51
+ * HybridPdfViewer(...): HybridObject(TAG) { ... }
52
+ * // ...
53
+ * };
54
+ * ```
55
+ */
56
+ class HybridPdfViewerSpec: public virtual HybridObject {
57
+ public:
58
+ // Constructor
59
+ explicit HybridPdfViewerSpec(): HybridObject(TAG) { }
60
+
61
+ // Destructor
62
+ ~HybridPdfViewerSpec() override = default;
63
+
64
+ public:
65
+ // Properties
66
+ virtual std::optional<std::string> getSource() = 0;
67
+ virtual void setSource(const std::optional<std::string>& source) = 0;
68
+ virtual std::optional<bool> getHorizontal() = 0;
69
+ virtual void setHorizontal(std::optional<bool> horizontal) = 0;
70
+ virtual std::optional<bool> getEnablePaging() = 0;
71
+ virtual void setEnablePaging(std::optional<bool> enablePaging) = 0;
72
+ virtual std::optional<double> getSpacing() = 0;
73
+ virtual void setSpacing(std::optional<double> spacing) = 0;
74
+ virtual std::optional<bool> getEnableZoom() = 0;
75
+ virtual void setEnableZoom(std::optional<bool> enableZoom) = 0;
76
+ virtual std::optional<double> getMinScale() = 0;
77
+ virtual void setMinScale(std::optional<double> minScale) = 0;
78
+ virtual std::optional<double> getMaxScale() = 0;
79
+ virtual void setMaxScale(std::optional<double> maxScale) = 0;
80
+ virtual std::optional<bool> getShowsActivityIndicator() = 0;
81
+ virtual void setShowsActivityIndicator(std::optional<bool> showsActivityIndicator) = 0;
82
+ virtual std::optional<std::function<void(const LoadCompleteEvent& /* event */)>> getOnLoadComplete() = 0;
83
+ virtual void setOnLoadComplete(const std::optional<std::function<void(const LoadCompleteEvent& /* event */)>>& onLoadComplete) = 0;
84
+ virtual std::optional<std::function<void(const PageChangeEvent& /* event */)>> getOnPageChange() = 0;
85
+ virtual void setOnPageChange(const std::optional<std::function<void(const PageChangeEvent& /* event */)>>& onPageChange) = 0;
86
+ virtual std::optional<std::function<void(const ScaleChangeEvent& /* event */)>> getOnScaleChange() = 0;
87
+ virtual void setOnScaleChange(const std::optional<std::function<void(const ScaleChangeEvent& /* event */)>>& onScaleChange) = 0;
88
+ virtual std::optional<std::function<void(const ErrorEvent& /* event */)>> getOnError() = 0;
89
+ virtual void setOnError(const std::optional<std::function<void(const ErrorEvent& /* event */)>>& onError) = 0;
90
+ virtual std::optional<std::function<void(const ThumbnailGeneratedEvent& /* event */)>> getOnThumbnailGenerated() = 0;
91
+ virtual void setOnThumbnailGenerated(const std::optional<std::function<void(const ThumbnailGeneratedEvent& /* event */)>>& onThumbnailGenerated) = 0;
92
+ virtual std::optional<std::function<void(const LoadingChangeEvent& /* event */)>> getOnLoadingChange() = 0;
93
+ virtual void setOnLoadingChange(const std::optional<std::function<void(const LoadingChangeEvent& /* event */)>>& onLoadingChange) = 0;
94
+
95
+ public:
96
+ // Methods
97
+ virtual void goToPage(double page) = 0;
98
+ virtual void setScale(double scale) = 0;
99
+ virtual void generateThumbnail(double page) = 0;
100
+ virtual void generateAllThumbnails() = 0;
101
+
102
+ protected:
103
+ // Hybrid Setup
104
+ void loadHybridMethods() override;
105
+
106
+ protected:
107
+ // Tag for logging
108
+ static constexpr auto TAG = "PdfViewer";
109
+ };
110
+
111
+ } // namespace margelo::nitro::pdfviewer
@@ -0,0 +1,75 @@
1
+ ///
2
+ /// LoadCompleteEvent.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #if __has_include(<NitroModules/JSIConverter.hpp>)
11
+ #include <NitroModules/JSIConverter.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+ #if __has_include(<NitroModules/NitroDefines.hpp>)
16
+ #include <NitroModules/NitroDefines.hpp>
17
+ #else
18
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
+ #endif
20
+
21
+
22
+
23
+
24
+
25
+ namespace margelo::nitro::pdfviewer {
26
+
27
+ /**
28
+ * A struct which can be represented as a JavaScript object (LoadCompleteEvent).
29
+ */
30
+ struct LoadCompleteEvent {
31
+ public:
32
+ double pageCount SWIFT_PRIVATE;
33
+ double pageWidth SWIFT_PRIVATE;
34
+ double pageHeight SWIFT_PRIVATE;
35
+
36
+ public:
37
+ LoadCompleteEvent() = default;
38
+ explicit LoadCompleteEvent(double pageCount, double pageWidth, double pageHeight): pageCount(pageCount), pageWidth(pageWidth), pageHeight(pageHeight) {}
39
+ };
40
+
41
+ } // namespace margelo::nitro::pdfviewer
42
+
43
+ namespace margelo::nitro {
44
+
45
+ // C++ LoadCompleteEvent <> JS LoadCompleteEvent (object)
46
+ template <>
47
+ struct JSIConverter<margelo::nitro::pdfviewer::LoadCompleteEvent> final {
48
+ static inline margelo::nitro::pdfviewer::LoadCompleteEvent fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
49
+ jsi::Object obj = arg.asObject(runtime);
50
+ return margelo::nitro::pdfviewer::LoadCompleteEvent(
51
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "pageCount")),
52
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "pageWidth")),
53
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "pageHeight"))
54
+ );
55
+ }
56
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::pdfviewer::LoadCompleteEvent& arg) {
57
+ jsi::Object obj(runtime);
58
+ obj.setProperty(runtime, "pageCount", JSIConverter<double>::toJSI(runtime, arg.pageCount));
59
+ obj.setProperty(runtime, "pageWidth", JSIConverter<double>::toJSI(runtime, arg.pageWidth));
60
+ obj.setProperty(runtime, "pageHeight", JSIConverter<double>::toJSI(runtime, arg.pageHeight));
61
+ return obj;
62
+ }
63
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
64
+ if (!value.isObject()) {
65
+ return false;
66
+ }
67
+ jsi::Object obj = value.getObject(runtime);
68
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "pageCount"))) return false;
69
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "pageWidth"))) return false;
70
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "pageHeight"))) return false;
71
+ return true;
72
+ }
73
+ };
74
+
75
+ } // namespace margelo::nitro
@@ -0,0 +1,67 @@
1
+ ///
2
+ /// LoadingChangeEvent.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #if __has_include(<NitroModules/JSIConverter.hpp>)
11
+ #include <NitroModules/JSIConverter.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+ #if __has_include(<NitroModules/NitroDefines.hpp>)
16
+ #include <NitroModules/NitroDefines.hpp>
17
+ #else
18
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
+ #endif
20
+
21
+
22
+
23
+
24
+
25
+ namespace margelo::nitro::pdfviewer {
26
+
27
+ /**
28
+ * A struct which can be represented as a JavaScript object (LoadingChangeEvent).
29
+ */
30
+ struct LoadingChangeEvent {
31
+ public:
32
+ bool isLoading SWIFT_PRIVATE;
33
+
34
+ public:
35
+ LoadingChangeEvent() = default;
36
+ explicit LoadingChangeEvent(bool isLoading): isLoading(isLoading) {}
37
+ };
38
+
39
+ } // namespace margelo::nitro::pdfviewer
40
+
41
+ namespace margelo::nitro {
42
+
43
+ // C++ LoadingChangeEvent <> JS LoadingChangeEvent (object)
44
+ template <>
45
+ struct JSIConverter<margelo::nitro::pdfviewer::LoadingChangeEvent> final {
46
+ static inline margelo::nitro::pdfviewer::LoadingChangeEvent fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
47
+ jsi::Object obj = arg.asObject(runtime);
48
+ return margelo::nitro::pdfviewer::LoadingChangeEvent(
49
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "isLoading"))
50
+ );
51
+ }
52
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::pdfviewer::LoadingChangeEvent& arg) {
53
+ jsi::Object obj(runtime);
54
+ obj.setProperty(runtime, "isLoading", JSIConverter<bool>::toJSI(runtime, arg.isLoading));
55
+ return obj;
56
+ }
57
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
58
+ if (!value.isObject()) {
59
+ return false;
60
+ }
61
+ jsi::Object obj = value.getObject(runtime);
62
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "isLoading"))) return false;
63
+ return true;
64
+ }
65
+ };
66
+
67
+ } // namespace margelo::nitro
@@ -0,0 +1,71 @@
1
+ ///
2
+ /// PageChangeEvent.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #if __has_include(<NitroModules/JSIConverter.hpp>)
11
+ #include <NitroModules/JSIConverter.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+ #if __has_include(<NitroModules/NitroDefines.hpp>)
16
+ #include <NitroModules/NitroDefines.hpp>
17
+ #else
18
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
+ #endif
20
+
21
+
22
+
23
+
24
+
25
+ namespace margelo::nitro::pdfviewer {
26
+
27
+ /**
28
+ * A struct which can be represented as a JavaScript object (PageChangeEvent).
29
+ */
30
+ struct PageChangeEvent {
31
+ public:
32
+ double page SWIFT_PRIVATE;
33
+ double pageCount SWIFT_PRIVATE;
34
+
35
+ public:
36
+ PageChangeEvent() = default;
37
+ explicit PageChangeEvent(double page, double pageCount): page(page), pageCount(pageCount) {}
38
+ };
39
+
40
+ } // namespace margelo::nitro::pdfviewer
41
+
42
+ namespace margelo::nitro {
43
+
44
+ // C++ PageChangeEvent <> JS PageChangeEvent (object)
45
+ template <>
46
+ struct JSIConverter<margelo::nitro::pdfviewer::PageChangeEvent> final {
47
+ static inline margelo::nitro::pdfviewer::PageChangeEvent fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
48
+ jsi::Object obj = arg.asObject(runtime);
49
+ return margelo::nitro::pdfviewer::PageChangeEvent(
50
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "page")),
51
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "pageCount"))
52
+ );
53
+ }
54
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::pdfviewer::PageChangeEvent& arg) {
55
+ jsi::Object obj(runtime);
56
+ obj.setProperty(runtime, "page", JSIConverter<double>::toJSI(runtime, arg.page));
57
+ obj.setProperty(runtime, "pageCount", JSIConverter<double>::toJSI(runtime, arg.pageCount));
58
+ return obj;
59
+ }
60
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
61
+ if (!value.isObject()) {
62
+ return false;
63
+ }
64
+ jsi::Object obj = value.getObject(runtime);
65
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "page"))) return false;
66
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "pageCount"))) return false;
67
+ return true;
68
+ }
69
+ };
70
+
71
+ } // namespace margelo::nitro
@@ -0,0 +1,67 @@
1
+ ///
2
+ /// ScaleChangeEvent.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #if __has_include(<NitroModules/JSIConverter.hpp>)
11
+ #include <NitroModules/JSIConverter.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+ #if __has_include(<NitroModules/NitroDefines.hpp>)
16
+ #include <NitroModules/NitroDefines.hpp>
17
+ #else
18
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
+ #endif
20
+
21
+
22
+
23
+
24
+
25
+ namespace margelo::nitro::pdfviewer {
26
+
27
+ /**
28
+ * A struct which can be represented as a JavaScript object (ScaleChangeEvent).
29
+ */
30
+ struct ScaleChangeEvent {
31
+ public:
32
+ double scale SWIFT_PRIVATE;
33
+
34
+ public:
35
+ ScaleChangeEvent() = default;
36
+ explicit ScaleChangeEvent(double scale): scale(scale) {}
37
+ };
38
+
39
+ } // namespace margelo::nitro::pdfviewer
40
+
41
+ namespace margelo::nitro {
42
+
43
+ // C++ ScaleChangeEvent <> JS ScaleChangeEvent (object)
44
+ template <>
45
+ struct JSIConverter<margelo::nitro::pdfviewer::ScaleChangeEvent> final {
46
+ static inline margelo::nitro::pdfviewer::ScaleChangeEvent fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
47
+ jsi::Object obj = arg.asObject(runtime);
48
+ return margelo::nitro::pdfviewer::ScaleChangeEvent(
49
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "scale"))
50
+ );
51
+ }
52
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::pdfviewer::ScaleChangeEvent& arg) {
53
+ jsi::Object obj(runtime);
54
+ obj.setProperty(runtime, "scale", JSIConverter<double>::toJSI(runtime, arg.scale));
55
+ return obj;
56
+ }
57
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
58
+ if (!value.isObject()) {
59
+ return false;
60
+ }
61
+ jsi::Object obj = value.getObject(runtime);
62
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "scale"))) return false;
63
+ return true;
64
+ }
65
+ };
66
+
67
+ } // namespace margelo::nitro