@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.
- package/LICENSE +20 -0
- package/PdfViewer.podspec +28 -0
- package/README.md +290 -0
- package/android/CMakeLists.txt +24 -0
- package/android/build.gradle +121 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/cpp/cpp-adapter.cpp +6 -0
- package/android/src/main/java/com/margelo/nitro/pdfviewer/HybridPdfViewer.kt +169 -0
- package/android/src/main/java/com/margelo/nitro/pdfviewer/PdfViewer.kt +996 -0
- package/android/src/main/java/com/margelo/nitro/pdfviewer/PdfViewerPackage.kt +26 -0
- package/ios/PdfViewer.swift +696 -0
- package/lib/module/PdfViewer.nitro.js +4 -0
- package/lib/module/PdfViewer.nitro.js.map +1 -0
- package/lib/module/index.js +13 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/PdfViewer.nitro.d.ts +67 -0
- package/lib/typescript/src/PdfViewer.nitro.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +8 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/nitro.json +17 -0
- package/nitrogen/generated/android/c++/JErrorEvent.hpp +57 -0
- package/nitrogen/generated/android/c++/JFunc_void_ErrorEvent.hpp +77 -0
- package/nitrogen/generated/android/c++/JFunc_void_LoadCompleteEvent.hpp +76 -0
- package/nitrogen/generated/android/c++/JFunc_void_LoadingChangeEvent.hpp +76 -0
- package/nitrogen/generated/android/c++/JFunc_void_PageChangeEvent.hpp +76 -0
- package/nitrogen/generated/android/c++/JFunc_void_ScaleChangeEvent.hpp +76 -0
- package/nitrogen/generated/android/c++/JFunc_void_ThumbnailGeneratedEvent.hpp +77 -0
- package/nitrogen/generated/android/c++/JHybridPdfViewerSpec.cpp +273 -0
- package/nitrogen/generated/android/c++/JHybridPdfViewerSpec.hpp +94 -0
- package/nitrogen/generated/android/c++/JLoadCompleteEvent.hpp +61 -0
- package/nitrogen/generated/android/c++/JLoadingChangeEvent.hpp +53 -0
- package/nitrogen/generated/android/c++/JPageChangeEvent.hpp +57 -0
- package/nitrogen/generated/android/c++/JScaleChangeEvent.hpp +53 -0
- package/nitrogen/generated/android/c++/JThumbnailGeneratedEvent.hpp +57 -0
- package/nitrogen/generated/android/c++/views/JHybridPdfViewerStateUpdater.cpp +108 -0
- package/nitrogen/generated/android/c++/views/JHybridPdfViewerStateUpdater.hpp +49 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/ErrorEvent.kt +32 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/Func_void_ErrorEvent.kt +81 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/Func_void_LoadCompleteEvent.kt +81 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/Func_void_LoadingChangeEvent.kt +81 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/Func_void_PageChangeEvent.kt +81 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/Func_void_ScaleChangeEvent.kt +81 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/Func_void_ThumbnailGeneratedEvent.kt +81 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/HybridPdfViewerSpec.kt +195 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/LoadCompleteEvent.kt +35 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/LoadingChangeEvent.kt +29 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/PageChangeEvent.kt +32 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/ScaleChangeEvent.kt +29 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/ThumbnailGeneratedEvent.kt +32 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/pdfviewerOnLoad.kt +35 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/views/HybridPdfViewerManager.kt +50 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/views/HybridPdfViewerStateUpdater.kt +23 -0
- package/nitrogen/generated/android/pdfviewer+autolinking.cmake +83 -0
- package/nitrogen/generated/android/pdfviewer+autolinking.gradle +27 -0
- package/nitrogen/generated/android/pdfviewerOnLoad.cpp +58 -0
- package/nitrogen/generated/android/pdfviewerOnLoad.hpp +25 -0
- package/nitrogen/generated/ios/PdfViewer+autolinking.rb +60 -0
- package/nitrogen/generated/ios/PdfViewer-Swift-Cxx-Bridge.cpp +80 -0
- package/nitrogen/generated/ios/PdfViewer-Swift-Cxx-Bridge.hpp +339 -0
- package/nitrogen/generated/ios/PdfViewer-Swift-Cxx-Umbrella.hpp +64 -0
- package/nitrogen/generated/ios/PdfViewerAutolinking.mm +33 -0
- package/nitrogen/generated/ios/PdfViewerAutolinking.swift +25 -0
- package/nitrogen/generated/ios/c++/HybridPdfViewerSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridPdfViewerSpecSwift.hpp +205 -0
- package/nitrogen/generated/ios/c++/views/HybridPdfViewerComponent.mm +161 -0
- package/nitrogen/generated/ios/swift/ErrorEvent.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_ErrorEvent.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_LoadCompleteEvent.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_LoadingChangeEvent.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_PageChangeEvent.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_ScaleChangeEvent.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_ThumbnailGeneratedEvent.swift +47 -0
- package/nitrogen/generated/ios/swift/HybridPdfViewerSpec.swift +65 -0
- package/nitrogen/generated/ios/swift/HybridPdfViewerSpec_cxx.swift +500 -0
- package/nitrogen/generated/ios/swift/LoadCompleteEvent.swift +57 -0
- package/nitrogen/generated/ios/swift/LoadingChangeEvent.swift +35 -0
- package/nitrogen/generated/ios/swift/PageChangeEvent.swift +46 -0
- package/nitrogen/generated/ios/swift/ScaleChangeEvent.swift +35 -0
- package/nitrogen/generated/ios/swift/ThumbnailGeneratedEvent.swift +46 -0
- package/nitrogen/generated/shared/c++/ErrorEvent.hpp +71 -0
- package/nitrogen/generated/shared/c++/HybridPdfViewerSpec.cpp +52 -0
- package/nitrogen/generated/shared/c++/HybridPdfViewerSpec.hpp +111 -0
- package/nitrogen/generated/shared/c++/LoadCompleteEvent.hpp +75 -0
- package/nitrogen/generated/shared/c++/LoadingChangeEvent.hpp +67 -0
- package/nitrogen/generated/shared/c++/PageChangeEvent.hpp +71 -0
- package/nitrogen/generated/shared/c++/ScaleChangeEvent.hpp +67 -0
- package/nitrogen/generated/shared/c++/ThumbnailGeneratedEvent.hpp +71 -0
- package/nitrogen/generated/shared/c++/views/HybridPdfViewerComponent.cpp +243 -0
- package/nitrogen/generated/shared/c++/views/HybridPdfViewerComponent.hpp +127 -0
- package/nitrogen/generated/shared/json/PdfViewerConfig.json +23 -0
- package/package.json +175 -0
- package/src/PdfViewer.nitro.ts +97 -0
- 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
|