react-native-readium 4.0.2 → 5.0.0-rc.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/README.md +227 -31
- package/android/.cxx/Debug/1o6u5d69/arm64-v8a/metadata_generation_command.txt +20 -0
- package/android/.cxx/Debug/1o6u5d69/arm64-v8a/prefab_config.json +9 -0
- package/android/.cxx/Debug/1o6u5d69/hash_key.txt +27 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/.cmake/api/v1/reply/cache-v2-d1c3348b32c30ac6a032.json +1383 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/.cmake/api/v1/reply/cmakeFiles-v1-556430fba24741f19697.json +207 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/.cmake/api/v1/reply/codemodel-v2-1ced52b45c1052bc37ec.json +60 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json +14 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/.cmake/api/v1/reply/index-2026-02-11T21-48-38-0164.json +92 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/.cmake/api/v1/reply/target-NitroReadium-Debug-1a98e1c85aa4f0067ac7.json +310 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/.ninja_deps +0 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/.ninja_log +16 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeCache.txt +413 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake +72 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake +83 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin +0 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin +0 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake +15 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c +803 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o +0 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeFiles/CMakeOutput.log +262 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/android/NitroReadiumOnLoad.cpp.o +0 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/android/c++/JHybridReadiumViewSpec.cpp.o +0 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/android/c++/views/JHybridReadiumViewStateUpdater.cpp.o +0 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/shared/c++/HybridReadiumViewSpec.cpp.o +0 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/shared/c++/views/HybridReadiumViewComponent.cpp.o +0 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeFiles/NitroReadium.dir/src/main/cpp/cpp-adapter.cpp.o +0 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeFiles/TargetDirectories.txt +3 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeFiles/cmake.check_cache +1 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeFiles/rules.ninja +64 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/additional_project_files.txt +0 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/android_gradle_build.json +48 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/android_gradle_build_mini.json +37 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/build.ninja +193 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/build_file_index.txt +6 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/cmake_install.cmake +54 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/compile_commands.json +32 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/compile_commands.json.bin +0 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/configure_fingerprint.bin +41 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/metadata_generation_command.txt +21 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/prefab_config.json +9 -0
- package/android/.cxx/Debug/705z3vy2/arm64-v8a/symbol_folder_index.txt +1 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/.cmake/api/v1/reply/cache-v2-029ee0d18a16b9900504.json +1383 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/.cmake/api/v1/reply/cmakeFiles-v1-0ec9478532515d6deeb0.json +207 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/.cmake/api/v1/reply/codemodel-v2-00f0c7708253709bbb50.json +60 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json +14 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/.cmake/api/v1/reply/index-2026-02-11T21-48-44-0722.json +92 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/.cmake/api/v1/reply/target-NitroReadium-Debug-a00931bf570afa83f011.json +310 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/.ninja_deps +0 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/.ninja_log +16 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeCache.txt +413 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake +72 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake +83 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin +0 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin +0 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake +15 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c +803 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o +0 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeFiles/CMakeOutput.log +266 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/android/NitroReadiumOnLoad.cpp.o +0 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/android/c++/JHybridReadiumViewSpec.cpp.o +0 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/android/c++/views/JHybridReadiumViewStateUpdater.cpp.o +0 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/shared/c++/HybridReadiumViewSpec.cpp.o +0 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/shared/c++/views/HybridReadiumViewComponent.cpp.o +0 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeFiles/NitroReadium.dir/src/main/cpp/cpp-adapter.cpp.o +0 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeFiles/TargetDirectories.txt +3 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeFiles/cmake.check_cache +1 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeFiles/rules.ninja +64 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/additional_project_files.txt +0 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/android_gradle_build.json +48 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/android_gradle_build_mini.json +37 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/build.ninja +193 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/build_file_index.txt +6 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/cmake_install.cmake +54 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/compile_commands.json +32 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/compile_commands.json.bin +0 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/configure_fingerprint.bin +41 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/metadata_generation_command.txt +21 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/prefab_config.json +9 -0
- package/android/.cxx/Debug/705z3vy2/armeabi-v7a/symbol_folder_index.txt +1 -0
- package/android/.cxx/Debug/705z3vy2/hash_key.txt +28 -0
- package/android/.cxx/Debug/705z3vy2/prefab/arm64-v8a/prefab/lib/aarch64-linux-android/cmake/ReactAndroid/ReactAndroidConfig.cmake +27 -0
- package/android/.cxx/Debug/705z3vy2/prefab/arm64-v8a/prefab/lib/aarch64-linux-android/cmake/ReactAndroid/ReactAndroidConfigVersion.cmake +9 -0
- package/android/.cxx/Debug/705z3vy2/prefab/arm64-v8a/prefab/lib/aarch64-linux-android/cmake/fbjni/fbjniConfig.cmake +9 -0
- package/android/.cxx/Debug/705z3vy2/prefab/arm64-v8a/prefab/lib/aarch64-linux-android/cmake/fbjni/fbjniConfigVersion.cmake +9 -0
- package/android/.cxx/Debug/705z3vy2/prefab/arm64-v8a/prefab/lib/aarch64-linux-android/cmake/react-native-nitro-modules/react-native-nitro-modulesConfig.cmake +9 -0
- package/android/.cxx/Debug/705z3vy2/prefab/armeabi-v7a/prefab/lib/arm-linux-androideabi/cmake/ReactAndroid/ReactAndroidConfig.cmake +27 -0
- package/android/.cxx/Debug/705z3vy2/prefab/armeabi-v7a/prefab/lib/arm-linux-androideabi/cmake/ReactAndroid/ReactAndroidConfigVersion.cmake +9 -0
- package/android/.cxx/Debug/705z3vy2/prefab/armeabi-v7a/prefab/lib/arm-linux-androideabi/cmake/fbjni/fbjniConfig.cmake +9 -0
- package/android/.cxx/Debug/705z3vy2/prefab/armeabi-v7a/prefab/lib/arm-linux-androideabi/cmake/fbjni/fbjniConfigVersion.cmake +9 -0
- package/android/.cxx/Debug/705z3vy2/prefab/armeabi-v7a/prefab/lib/arm-linux-androideabi/cmake/react-native-nitro-modules/react-native-nitro-modulesConfig.cmake +9 -0
- package/android/.cxx/Debug/705z3vy2/prefab/x86/prefab/lib/i686-linux-android/cmake/ReactAndroid/ReactAndroidConfig.cmake +27 -0
- package/android/.cxx/Debug/705z3vy2/prefab/x86/prefab/lib/i686-linux-android/cmake/ReactAndroid/ReactAndroidConfigVersion.cmake +9 -0
- package/android/.cxx/Debug/705z3vy2/prefab/x86/prefab/lib/i686-linux-android/cmake/fbjni/fbjniConfig.cmake +9 -0
- package/android/.cxx/Debug/705z3vy2/prefab/x86/prefab/lib/i686-linux-android/cmake/fbjni/fbjniConfigVersion.cmake +9 -0
- package/android/.cxx/Debug/705z3vy2/prefab/x86/prefab/lib/i686-linux-android/cmake/react-native-nitro-modules/react-native-nitro-modulesConfig.cmake +9 -0
- package/android/.cxx/Debug/705z3vy2/prefab/x86_64/prefab/lib/x86_64-linux-android/cmake/ReactAndroid/ReactAndroidConfig.cmake +27 -0
- package/android/.cxx/Debug/705z3vy2/prefab/x86_64/prefab/lib/x86_64-linux-android/cmake/ReactAndroid/ReactAndroidConfigVersion.cmake +9 -0
- package/android/.cxx/Debug/705z3vy2/prefab/x86_64/prefab/lib/x86_64-linux-android/cmake/fbjni/fbjniConfig.cmake +9 -0
- package/android/.cxx/Debug/705z3vy2/prefab/x86_64/prefab/lib/x86_64-linux-android/cmake/fbjni/fbjniConfigVersion.cmake +9 -0
- package/android/.cxx/Debug/705z3vy2/prefab/x86_64/prefab/lib/x86_64-linux-android/cmake/react-native-nitro-modules/react-native-nitro-modulesConfig.cmake +9 -0
- package/android/.cxx/Debug/705z3vy2/x86/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
- package/android/.cxx/Debug/705z3vy2/x86/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
- package/android/.cxx/Debug/705z3vy2/x86/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
- package/android/.cxx/Debug/705z3vy2/x86/.cmake/api/v1/reply/cache-v2-a4f471a31e824ae32ba5.json +1383 -0
- package/android/.cxx/Debug/705z3vy2/x86/.cmake/api/v1/reply/cmakeFiles-v1-f73d504308ce3a4e5765.json +207 -0
- package/android/.cxx/Debug/705z3vy2/x86/.cmake/api/v1/reply/codemodel-v2-00f85d43d057b2ba79db.json +60 -0
- package/android/.cxx/Debug/705z3vy2/x86/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json +14 -0
- package/android/.cxx/Debug/705z3vy2/x86/.cmake/api/v1/reply/index-2026-02-11T21-48-50-0628.json +92 -0
- package/android/.cxx/Debug/705z3vy2/x86/.cmake/api/v1/reply/target-NitroReadium-Debug-98c8a7d46de91d0d2e7e.json +310 -0
- package/android/.cxx/Debug/705z3vy2/x86/.ninja_deps +0 -0
- package/android/.cxx/Debug/705z3vy2/x86/.ninja_log +16 -0
- package/android/.cxx/Debug/705z3vy2/x86/CMakeCache.txt +413 -0
- package/android/.cxx/Debug/705z3vy2/x86/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake +72 -0
- package/android/.cxx/Debug/705z3vy2/x86/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake +83 -0
- package/android/.cxx/Debug/705z3vy2/x86/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin +0 -0
- package/android/.cxx/Debug/705z3vy2/x86/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin +0 -0
- package/android/.cxx/Debug/705z3vy2/x86/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake +15 -0
- package/android/.cxx/Debug/705z3vy2/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c +803 -0
- package/android/.cxx/Debug/705z3vy2/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o +0 -0
- package/android/.cxx/Debug/705z3vy2/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
- package/android/.cxx/Debug/705z3vy2/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
- package/android/.cxx/Debug/705z3vy2/x86/CMakeFiles/CMakeOutput.log +256 -0
- package/android/.cxx/Debug/705z3vy2/x86/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/android/NitroReadiumOnLoad.cpp.o +0 -0
- package/android/.cxx/Debug/705z3vy2/x86/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/android/c++/JHybridReadiumViewSpec.cpp.o +0 -0
- package/android/.cxx/Debug/705z3vy2/x86/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/android/c++/views/JHybridReadiumViewStateUpdater.cpp.o +0 -0
- package/android/.cxx/Debug/705z3vy2/x86/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/shared/c++/HybridReadiumViewSpec.cpp.o +0 -0
- package/android/.cxx/Debug/705z3vy2/x86/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/shared/c++/views/HybridReadiumViewComponent.cpp.o +0 -0
- package/android/.cxx/Debug/705z3vy2/x86/CMakeFiles/NitroReadium.dir/src/main/cpp/cpp-adapter.cpp.o +0 -0
- package/android/.cxx/Debug/705z3vy2/x86/CMakeFiles/TargetDirectories.txt +3 -0
- package/android/.cxx/Debug/705z3vy2/x86/CMakeFiles/cmake.check_cache +1 -0
- package/android/.cxx/Debug/705z3vy2/x86/CMakeFiles/rules.ninja +64 -0
- package/android/.cxx/Debug/705z3vy2/x86/additional_project_files.txt +0 -0
- package/android/.cxx/Debug/705z3vy2/x86/android_gradle_build.json +48 -0
- package/android/.cxx/Debug/705z3vy2/x86/android_gradle_build_mini.json +37 -0
- package/android/.cxx/Debug/705z3vy2/x86/build.ninja +193 -0
- package/android/.cxx/Debug/705z3vy2/x86/build_file_index.txt +6 -0
- package/android/.cxx/Debug/705z3vy2/x86/cmake_install.cmake +54 -0
- package/android/.cxx/Debug/705z3vy2/x86/compile_commands.json +32 -0
- package/android/.cxx/Debug/705z3vy2/x86/compile_commands.json.bin +0 -0
- package/android/.cxx/Debug/705z3vy2/x86/configure_fingerprint.bin +41 -0
- package/android/.cxx/Debug/705z3vy2/x86/metadata_generation_command.txt +21 -0
- package/android/.cxx/Debug/705z3vy2/x86/prefab_config.json +9 -0
- package/android/.cxx/Debug/705z3vy2/x86/symbol_folder_index.txt +1 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/.cmake/api/v1/reply/cache-v2-691c4c7ce8ee23d9eb36.json +1383 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/.cmake/api/v1/reply/cmakeFiles-v1-5d2071095d60cec89732.json +207 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/.cmake/api/v1/reply/codemodel-v2-141850c8d8ba3993f9ba.json +60 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json +14 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/.cmake/api/v1/reply/index-2026-02-11T21-48-56-0488.json +92 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/.cmake/api/v1/reply/target-NitroReadium-Debug-fc544bc0688ecafa85a0.json +310 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/.ninja_deps +0 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/.ninja_log +16 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/CMakeCache.txt +413 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake +72 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake +83 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin +0 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin +0 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake +15 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c +803 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o +0 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/CMakeFiles/CMakeOutput.log +256 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/android/NitroReadiumOnLoad.cpp.o +0 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/android/c++/JHybridReadiumViewSpec.cpp.o +0 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/android/c++/views/JHybridReadiumViewStateUpdater.cpp.o +0 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/shared/c++/HybridReadiumViewSpec.cpp.o +0 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/shared/c++/views/HybridReadiumViewComponent.cpp.o +0 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/CMakeFiles/NitroReadium.dir/src/main/cpp/cpp-adapter.cpp.o +0 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/CMakeFiles/TargetDirectories.txt +3 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/CMakeFiles/cmake.check_cache +1 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/CMakeFiles/rules.ninja +64 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/additional_project_files.txt +0 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/android_gradle_build.json +48 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/android_gradle_build_mini.json +37 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/build.ninja +193 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/build_file_index.txt +6 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/cmake_install.cmake +54 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/compile_commands.json +32 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/compile_commands.json.bin +0 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/configure_fingerprint.bin +41 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/metadata_generation_command.txt +21 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/prefab_config.json +9 -0
- package/android/.cxx/Debug/705z3vy2/x86_64/symbol_folder_index.txt +1 -0
- package/android/.cxx/tools/debug/arm64-v8a/compile_commands.json +32 -0
- package/android/.cxx/tools/debug/armeabi-v7a/compile_commands.json +32 -0
- package/android/.cxx/tools/debug/x86/compile_commands.json +32 -0
- package/android/.cxx/tools/debug/x86_64/compile_commands.json +32 -0
- package/android/CMakeLists.txt +12 -0
- package/android/build.gradle +55 -30
- package/android/gradle.properties +3 -3
- package/android/src/main/cpp/cpp-adapter.cpp +6 -0
- package/android/src/main/java/com/reactnativereadium/HybridReadiumView.kt +593 -0
- package/android/src/main/java/com/reactnativereadium/ReadiumPackage.kt +9 -2
- package/android/src/main/java/com/reactnativereadium/reader/BaseReaderFragment.kt +214 -6
- package/android/src/main/java/com/reactnativereadium/reader/EpubReaderFragment.kt +143 -70
- package/android/src/main/java/com/reactnativereadium/reader/PositionLabelManager.kt +132 -0
- package/android/src/main/java/com/reactnativereadium/reader/ReaderService.kt +64 -65
- package/android/src/main/java/com/reactnativereadium/reader/ReaderViewModel.kt +23 -84
- package/android/src/main/java/com/reactnativereadium/reader/VisualReaderFragment.kt +32 -2
- package/android/src/main/java/com/reactnativereadium/utils/DecorationSerializer.kt +175 -0
- package/android/src/main/java/com/reactnativereadium/utils/EventChannel.kt +0 -9
- package/android/src/main/java/com/reactnativereadium/utils/FragmentFactory.kt +2 -3
- package/android/src/main/java/com/reactnativereadium/utils/JsonExtensions.kt +61 -0
- package/android/src/main/java/com/reactnativereadium/utils/LocationNormalizer.kt +47 -0
- package/android/src/main/java/com/reactnativereadium/utils/MetadataNormalizer.kt +183 -0
- package/android/src/main/java/com/reactnativereadium/utils/NormalizedMetadata.kt +179 -0
- package/android/src/main/java/com/reactnativereadium/utils/extensions/InputStream.kt +0 -9
- package/ios/App/AppModule.swift +3 -9
- package/ios/Common/Toolkit/Extensions/{Locator.swift → Locator+Codable.swift} +2 -2
- package/ios/DecorationData.swift +316 -0
- package/ios/HybridReadiumView.swift +498 -0
- package/ios/Reader/Common/ReaderViewController.swift +121 -53
- package/ios/Reader/EPUB/AssociatedColors.swift +1 -1
- package/ios/Reader/EPUB/EPUBHTTPServer.swift +13 -0
- package/ios/Reader/EPUB/EPUBModule.swift +6 -5
- package/ios/Reader/EPUB/EPUBViewController.swift +88 -15
- package/ios/Reader/EPUB/SelectionActionHandler.h +25 -0
- package/ios/Reader/EPUB/SelectionActionHandler.m +56 -0
- package/ios/Reader/ReaderFormatModule.swift +4 -4
- package/ios/Reader/ReaderModule.swift +7 -5
- package/ios/Reader/ReaderService.swift +75 -67
- package/lib/nitrogen/generated/shared/json/ReadiumViewConfig.json +19 -0
- package/lib/src/components/NitroReadiumView.d.ts +2 -0
- package/lib/src/components/NitroReadiumView.js +3 -0
- package/lib/src/components/ReadiumView.d.ts +3 -5
- package/lib/src/components/ReadiumView.js +15 -40
- package/lib/src/components/ReadiumView.types.d.ts +18 -0
- package/lib/src/components/ReadiumView.web.d.ts +12 -5
- package/lib/src/components/ReadiumView.web.js +112 -21
- package/lib/src/index.d.ts +0 -1
- package/lib/src/index.js +0 -1
- package/lib/src/interfaces/Decoration.d.ts +8 -0
- package/lib/src/interfaces/Decoration.js +1 -0
- package/lib/src/interfaces/File.d.ts +5 -12
- package/lib/src/interfaces/Link.d.ts +3 -13
- package/lib/src/interfaces/Locator.d.ts +1 -14
- package/lib/src/interfaces/Preferences.d.ts +5 -19
- package/lib/src/interfaces/PublicationMetadata.d.ts +13 -0
- package/lib/src/interfaces/PublicationMetadata.js +1 -0
- package/lib/src/interfaces/PublicationReady.d.ts +1 -0
- package/lib/src/interfaces/PublicationReady.js +1 -0
- package/lib/src/interfaces/Selection.d.ts +1 -0
- package/lib/src/interfaces/Selection.js +1 -0
- package/lib/src/interfaces/SelectionAction.d.ts +1 -0
- package/lib/src/interfaces/SelectionAction.js +1 -0
- package/lib/src/interfaces/index.d.ts +6 -1
- package/lib/src/interfaces/index.js +5 -1
- package/lib/src/specs/ReadiumView.nitro.d.ts +199 -0
- package/lib/src/specs/ReadiumView.nitro.js +1 -0
- package/lib/src/utils/index.d.ts +0 -6
- package/lib/src/utils/index.js +0 -6
- package/lib/web/hooks/index.d.ts +4 -2
- package/lib/web/hooks/index.js +4 -2
- package/lib/web/hooks/useDecorationsObserver.d.ts +6 -0
- package/lib/web/hooks/useDecorationsObserver.js +96 -0
- package/lib/web/hooks/useLocationObserver.d.ts +2 -1
- package/lib/web/hooks/useLocationObserver.js +18 -11
- package/lib/web/hooks/useNavigator.d.ts +12 -0
- package/lib/web/hooks/useNavigator.js +92 -0
- package/lib/web/hooks/usePositionLabel.d.ts +9 -0
- package/lib/web/hooks/usePositionLabel.js +33 -0
- package/lib/web/hooks/usePreferencesObserver.d.ts +2 -0
- package/lib/web/hooks/usePreferencesObserver.js +54 -0
- package/lib/web/utils/locationNormalizer.d.ts +28 -0
- package/lib/web/utils/locationNormalizer.js +49 -0
- package/lib/web/utils/manifestFetcher.d.ts +8 -0
- package/lib/web/utils/manifestFetcher.js +28 -0
- package/lib/web/utils/manifestNormalizer.d.ts +8 -0
- package/lib/web/utils/manifestNormalizer.js +70 -0
- package/lib/web/utils/metadataNormalizer.d.ts +53 -0
- package/lib/web/utils/metadataNormalizer.js +220 -0
- package/lib/web/utils/navigatorListeners.d.ts +6 -0
- package/lib/web/utils/navigatorListeners.js +50 -0
- package/lib/web/utils/publicationUtils.d.ts +15 -0
- package/lib/web/utils/publicationUtils.js +39 -0
- package/nitro.json +16 -0
- package/nitrogen/generated/.gitattributes +1 -0
- package/nitrogen/generated/android/NitroReadium+autolinking.cmake +83 -0
- package/nitrogen/generated/android/NitroReadium+autolinking.gradle +27 -0
- package/nitrogen/generated/android/NitroReadiumOnLoad.cpp +56 -0
- package/nitrogen/generated/android/NitroReadiumOnLoad.hpp +25 -0
- package/nitrogen/generated/android/c++/JAccessibility.hpp +175 -0
- package/nitrogen/generated/android/c++/JAccessibilityCertification.hpp +66 -0
- package/nitrogen/generated/android/c++/JBelongsTo.hpp +101 -0
- package/nitrogen/generated/android/c++/JContributor.hpp +74 -0
- package/nitrogen/generated/android/c++/JDecoration.hpp +92 -0
- package/nitrogen/generated/android/c++/JDecorationActivatedEvent.hpp +85 -0
- package/nitrogen/generated/android/c++/JDecorationGroup.hpp +92 -0
- package/nitrogen/generated/android/c++/JDecorationStyle.hpp +86 -0
- package/nitrogen/generated/android/c++/JFunc_void_DecorationActivatedEvent.hpp +94 -0
- package/nitrogen/generated/android/c++/JFunc_void_Locator.hpp +83 -0
- package/nitrogen/generated/android/c++/JFunc_void_PublicationReadyEvent.hpp +102 -0
- package/nitrogen/generated/android/c++/JFunc_void_SelectionActionEvent.hpp +85 -0
- package/nitrogen/generated/android/c++/JFunc_void_SelectionEvent.hpp +85 -0
- package/nitrogen/generated/android/c++/JHybridReadiumViewSpec.cpp +328 -0
- package/nitrogen/generated/android/c++/JHybridReadiumViewSpec.hpp +86 -0
- package/nitrogen/generated/android/c++/JLink.hpp +131 -0
- package/nitrogen/generated/android/c++/JLocator.hpp +82 -0
- package/nitrogen/generated/android/c++/JLocatorLocations.hpp +65 -0
- package/nitrogen/generated/android/c++/JLocatorText.hpp +66 -0
- package/nitrogen/generated/android/c++/JPoint.hpp +61 -0
- package/nitrogen/generated/android/c++/JPreferences.hpp +158 -0
- package/nitrogen/generated/android/c++/JPublicationMetadata.hpp +449 -0
- package/nitrogen/generated/android/c++/JPublicationReadyEvent.hpp +125 -0
- package/nitrogen/generated/android/c++/JReadiumFile.hpp +68 -0
- package/nitrogen/generated/android/c++/JRect.hpp +69 -0
- package/nitrogen/generated/android/c++/JSelectionAction.hpp +61 -0
- package/nitrogen/generated/android/c++/JSelectionActionEvent.hpp +72 -0
- package/nitrogen/generated/android/c++/JSelectionEvent.hpp +68 -0
- package/nitrogen/generated/android/c++/JSeriesInfo.hpp +62 -0
- package/nitrogen/generated/android/c++/JSubject.hpp +70 -0
- package/nitrogen/generated/android/c++/views/JHybridReadiumViewStateUpdater.cpp +93 -0
- package/nitrogen/generated/android/c++/views/JHybridReadiumViewStateUpdater.hpp +49 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/Accessibility.kt +56 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/AccessibilityCertification.kt +44 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/BelongsTo.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/Contributor.kt +50 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/Decoration.kt +47 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/DecorationActivatedEvent.kt +47 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/DecorationGroup.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/DecorationStyle.kt +59 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/Func_void_DecorationActivatedEvent.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/Func_void_Locator.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/Func_void_PublicationReadyEvent.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/Func_void_SelectionActionEvent.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/Func_void_SelectionEvent.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/HybridReadiumViewSpec.kt +159 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/Link.kt +65 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/Locator.kt +53 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/LocatorLocations.kt +44 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/LocatorText.kt +44 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/NitroReadiumOnLoad.kt +35 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/Point.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/Preferences.kt +113 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/PublicationMetadata.kt +119 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/PublicationReadyEvent.kt +44 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/ReadiumFile.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/Rect.kt +47 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/SelectionAction.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/SelectionActionEvent.kt +44 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/SelectionEvent.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/SeriesInfo.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/Subject.kt +47 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/views/HybridReadiumViewManager.kt +70 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/views/HybridReadiumViewStateUpdater.kt +23 -0
- package/nitrogen/generated/ios/NitroReadium+autolinking.rb +60 -0
- package/nitrogen/generated/ios/NitroReadium-Swift-Cxx-Bridge.cpp +73 -0
- package/nitrogen/generated/ios/NitroReadium-Swift-Cxx-Bridge.hpp +641 -0
- package/nitrogen/generated/ios/NitroReadium-Swift-Cxx-Umbrella.hpp +117 -0
- package/nitrogen/generated/ios/NitroReadiumAutolinking.mm +33 -0
- package/nitrogen/generated/ios/NitroReadiumAutolinking.swift +26 -0
- package/nitrogen/generated/ios/c++/HybridReadiumViewSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridReadiumViewSpecSwift.hpp +226 -0
- package/nitrogen/generated/ios/c++/views/HybridReadiumViewComponent.mm +152 -0
- package/nitrogen/generated/ios/swift/Accessibility.swift +173 -0
- package/nitrogen/generated/ios/swift/AccessibilityCertification.swift +78 -0
- package/nitrogen/generated/ios/swift/BelongsTo.swift +72 -0
- package/nitrogen/generated/ios/swift/Contributor.swift +94 -0
- package/nitrogen/generated/ios/swift/Decoration.swift +71 -0
- package/nitrogen/generated/ios/swift/DecorationActivatedEvent.swift +56 -0
- package/nitrogen/generated/ios/swift/DecorationGroup.swift +40 -0
- package/nitrogen/generated/ios/swift/DecorationStyle.swift +155 -0
- package/nitrogen/generated/ios/swift/Func_void_DecorationActivatedEvent.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_Locator.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_PublicationReadyEvent.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_SelectionActionEvent.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_SelectionEvent.swift +46 -0
- package/nitrogen/generated/ios/swift/HybridReadiumViewSpec.swift +65 -0
- package/nitrogen/generated/ios/swift/HybridReadiumViewSpec_cxx.swift +363 -0
- package/nitrogen/generated/ios/swift/Link.swift +162 -0
- package/nitrogen/generated/ios/swift/Locator.swift +85 -0
- package/nitrogen/generated/ios/swift/LocatorLocations.swift +51 -0
- package/nitrogen/generated/ios/swift/LocatorText.swift +78 -0
- package/nitrogen/generated/ios/swift/Point.swift +34 -0
- package/nitrogen/generated/ios/swift/Preferences.swift +429 -0
- package/nitrogen/generated/ios/swift/PublicationMetadata.swift +577 -0
- package/nitrogen/generated/ios/swift/PublicationReadyEvent.swift +51 -0
- package/nitrogen/generated/ios/swift/ReadiumFile.swift +40 -0
- package/nitrogen/generated/ios/swift/Rect.swift +44 -0
- package/nitrogen/generated/ios/swift/SelectionAction.swift +34 -0
- package/nitrogen/generated/ios/swift/SelectionActionEvent.swift +39 -0
- package/nitrogen/generated/ios/swift/SelectionEvent.swift +53 -0
- package/nitrogen/generated/ios/swift/SeriesInfo.swift +40 -0
- package/nitrogen/generated/ios/swift/Subject.swift +83 -0
- package/nitrogen/generated/shared/c++/Accessibility.hpp +111 -0
- package/nitrogen/generated/shared/c++/AccessibilityCertification.hpp +92 -0
- package/nitrogen/generated/shared/c++/BelongsTo.hpp +90 -0
- package/nitrogen/generated/shared/c++/Contributor.hpp +100 -0
- package/nitrogen/generated/shared/c++/Decoration.hpp +102 -0
- package/nitrogen/generated/shared/c++/DecorationActivatedEvent.hpp +104 -0
- package/nitrogen/generated/shared/c++/DecorationGroup.hpp +90 -0
- package/nitrogen/generated/shared/c++/DecorationStyle.hpp +112 -0
- package/nitrogen/generated/shared/c++/HybridReadiumViewSpec.cpp +42 -0
- package/nitrogen/generated/shared/c++/HybridReadiumViewSpec.hpp +110 -0
- package/nitrogen/generated/shared/c++/Link.hpp +121 -0
- package/nitrogen/generated/shared/c++/Locator.hpp +109 -0
- package/nitrogen/generated/shared/c++/LocatorLocations.hpp +91 -0
- package/nitrogen/generated/shared/c++/LocatorText.hpp +92 -0
- package/nitrogen/generated/shared/c++/Point.hpp +87 -0
- package/nitrogen/generated/shared/c++/Preferences.hpp +184 -0
- package/nitrogen/generated/shared/c++/PublicationMetadata.hpp +204 -0
- package/nitrogen/generated/shared/c++/PublicationReadyEvent.hpp +99 -0
- package/nitrogen/generated/shared/c++/ReadiumFile.hpp +90 -0
- package/nitrogen/generated/shared/c++/Rect.hpp +95 -0
- package/nitrogen/generated/shared/c++/SelectionAction.hpp +87 -0
- package/nitrogen/generated/shared/c++/SelectionActionEvent.hpp +93 -0
- package/nitrogen/generated/shared/c++/SelectionEvent.hpp +90 -0
- package/nitrogen/generated/shared/c++/SeriesInfo.hpp +88 -0
- package/nitrogen/generated/shared/c++/Subject.hpp +96 -0
- package/nitrogen/generated/shared/c++/views/HybridReadiumViewComponent.cpp +182 -0
- package/nitrogen/generated/shared/c++/views/HybridReadiumViewComponent.hpp +129 -0
- package/nitrogen/generated/shared/json/ReadiumViewConfig.json +19 -0
- package/package.json +48 -17
- package/react-native-readium.podspec +29 -8
- package/src/components/NitroReadiumView.tsx +9 -0
- package/src/components/ReadiumView.tsx +38 -68
- package/src/components/ReadiumView.types.ts +30 -0
- package/src/components/ReadiumView.web.tsx +149 -37
- package/src/index.tsx +0 -1
- package/src/interfaces/Decoration.ts +15 -0
- package/src/interfaces/File.ts +5 -13
- package/src/interfaces/Link.ts +4 -13
- package/src/interfaces/Locator.ts +5 -14
- package/src/interfaces/Preferences.ts +16 -19
- package/src/interfaces/PublicationMetadata.ts +23 -0
- package/src/interfaces/PublicationReady.ts +1 -0
- package/src/interfaces/Selection.ts +1 -0
- package/src/interfaces/SelectionAction.ts +4 -0
- package/src/interfaces/index.ts +6 -1
- package/src/specs/ReadiumView.nitro.ts +249 -0
- package/src/utils/index.ts +0 -6
- package/web/hooks/index.ts +4 -2
- package/web/hooks/useDecorationsObserver.ts +116 -0
- package/web/hooks/useLocationObserver.ts +24 -11
- package/web/hooks/useNavigator.ts +152 -0
- package/web/hooks/usePositionLabel.ts +51 -0
- package/web/hooks/usePreferencesObserver.ts +69 -0
- package/web/utils/locationNormalizer.ts +58 -0
- package/web/utils/manifestFetcher.ts +38 -0
- package/web/utils/manifestNormalizer.ts +74 -0
- package/web/utils/metadataNormalizer.ts +238 -0
- package/web/utils/navigatorListeners.ts +60 -0
- package/web/utils/publicationUtils.ts +47 -0
- package/android/src/main/java/com/reactnativereadium/ReadiumView.kt +0 -109
- package/android/src/main/java/com/reactnativereadium/ReadiumViewManager.kt +0 -149
- package/android/src/main/java/com/reactnativereadium/search/SearchFragment.kt +0 -100
- package/android/src/main/java/com/reactnativereadium/search/SearchPagingSource.kt +0 -44
- package/android/src/main/java/com/reactnativereadium/search/SearchResultAdapter.kt +0 -68
- package/android/src/main/java/com/reactnativereadium/utils/Dimensions.kt +0 -6
- package/android/src/main/java/com/reactnativereadium/utils/R2DispatcherActivity.kt +0 -45
- package/android/src/main/java/com/reactnativereadium/utils/SectionDecoration.kt +0 -98
- package/android/src/main/java/com/reactnativereadium/utils/SingleClickListener.kt +0 -32
- package/android/src/main/java/com/reactnativereadium/utils/extensions/Bitmap.kt +0 -23
- package/android/src/main/java/com/reactnativereadium/utils/extensions/Context.kt +0 -16
- package/android/src/main/java/com/reactnativereadium/utils/extensions/File.kt +0 -22
- package/android/src/main/java/com/reactnativereadium/utils/extensions/Link.kt +0 -6
- package/android/src/main/java/com/reactnativereadium/utils/extensions/Metadata.kt +0 -6
- package/android/src/main/java/com/reactnativereadium/utils/extensions/URL.kt +0 -29
- package/android/src/main/java/com/reactnativereadium/utils/extensions/Uri.kt +0 -17
- package/android/src/main/res/layout/fragment_search.xml +0 -39
- package/android/src/main/res/layout/item_recycle_search.xml +0 -14
- package/ios/Common/EPUBPreferences.swift +0 -8
- package/ios/Common/Paths.swift +0 -52
- package/ios/Common/Publication.swift +0 -15
- package/ios/Common/Toolkit/Extensions/HTTPClient.swift +0 -65
- package/ios/Common/Toolkit/Extensions/UIImage.swift +0 -12
- package/ios/Common/Toolkit/Extensions/UIViewController.swift +0 -19
- package/ios/Common/Toolkit/ScreenOrientation.swift +0 -13
- package/ios/Data/Bookmark.swift +0 -23
- package/ios/Readium-Bridging-Header.h +0 -2
- package/ios/ReadiumView.swift +0 -165
- package/ios/ReadiumViewManager.m +0 -11
- package/ios/ReadiumViewManager.swift +0 -9
- package/lib/src/components/BaseReadiumView.d.ts +0 -2
- package/lib/src/components/BaseReadiumView.js +0 -7
- package/lib/src/components/BaseReadiumView.web.d.ts +0 -1
- package/lib/src/components/BaseReadiumView.web.js +0 -1
- package/lib/src/enums/Appearance.d.ts +0 -11
- package/lib/src/enums/Appearance.js +0 -13
- package/lib/src/enums/ColumnCount.d.ts +0 -5
- package/lib/src/enums/ColumnCount.js +0 -7
- package/lib/src/enums/FontFamily.d.ts +0 -10
- package/lib/src/enums/FontFamily.js +0 -12
- package/lib/src/enums/TextAlignment.d.ts +0 -4
- package/lib/src/enums/TextAlignment.js +0 -6
- package/lib/src/enums/index.d.ts +0 -4
- package/lib/src/enums/index.js +0 -4
- package/lib/src/interfaces/BaseReadiumViewProps.d.ts +0 -15
- package/lib/src/utils/COMPONENT_NAME.d.ts +0 -1
- package/lib/src/utils/COMPONENT_NAME.js +0 -1
- package/lib/src/utils/LINKING_ERROR.d.ts +0 -1
- package/lib/src/utils/LINKING_ERROR.js +0 -5
- package/lib/src/utils/clamp.d.ts +0 -1
- package/lib/src/utils/clamp.js +0 -7
- package/lib/src/utils/createFragment.d.ts +0 -1
- package/lib/src/utils/createFragment.js +0 -10
- package/lib/src/utils/getWidthOrHeightValue.d.ts +0 -1
- package/lib/src/utils/getWidthOrHeightValue.js +0 -6
- package/lib/src/utils/indexOfObjectValue.d.ts +0 -1
- package/lib/src/utils/indexOfObjectValue.js +0 -3
- package/lib/web/hooks/useReaderRef.d.ts +0 -3
- package/lib/web/hooks/useReaderRef.js +0 -85
- package/lib/web/hooks/useSettingsObserver.d.ts +0 -2
- package/lib/web/hooks/useSettingsObserver.js +0 -44
- package/src/components/BaseReadiumView.tsx +0 -11
- package/src/components/BaseReadiumView.web.tsx +0 -1
- package/src/enums/Appearance.ts +0 -14
- package/src/enums/ColumnCount.ts +0 -6
- package/src/enums/FontFamily.ts +0 -11
- package/src/enums/TextAlignment.ts +0 -5
- package/src/enums/index.ts +0 -4
- package/src/interfaces/BaseReadiumViewProps.ts +0 -16
- package/src/utils/COMPONENT_NAME.ts +0 -1
- package/src/utils/LINKING_ERROR.ts +0 -7
- package/src/utils/clamp.ts +0 -5
- package/src/utils/createFragment.ts +0 -15
- package/src/utils/getWidthOrHeightValue.ts +0 -7
- package/src/utils/indexOfObjectValue.ts +0 -3
- package/web/hooks/useReaderRef.ts +0 -109
- package/web/hooks/useSettingsObserver.ts +0 -61
- /package/lib/src/{interfaces/BaseReadiumViewProps.js → components/ReadiumView.types.js} +0 -0
|
@@ -0,0 +1,593 @@
|
|
|
1
|
+
package com.margelo.nitro.reactnativereadium
|
|
2
|
+
|
|
3
|
+
import android.graphics.Color
|
|
4
|
+
import android.util.Log
|
|
5
|
+
import android.view.Choreographer
|
|
6
|
+
import android.view.View
|
|
7
|
+
import android.widget.FrameLayout
|
|
8
|
+
import androidx.fragment.app.FragmentActivity
|
|
9
|
+
import com.reactnativereadium.reader.BaseReaderFragment
|
|
10
|
+
import com.reactnativereadium.reader.EpubReaderFragment
|
|
11
|
+
import com.reactnativereadium.reader.ReaderService
|
|
12
|
+
import com.reactnativereadium.reader.ReaderViewModel
|
|
13
|
+
import com.reactnativereadium.reader.SelectionAction as FragmentSelectionAction
|
|
14
|
+
import kotlinx.coroutines.CoroutineScope
|
|
15
|
+
import kotlinx.coroutines.Dispatchers
|
|
16
|
+
import kotlinx.coroutines.SupervisorJob
|
|
17
|
+
import kotlinx.coroutines.cancel
|
|
18
|
+
import kotlinx.coroutines.launch
|
|
19
|
+
import org.readium.r2.navigator.epub.EpubPreferences as ReadiumEpubPreferences
|
|
20
|
+
import org.readium.r2.navigator.preferences.ColumnCount
|
|
21
|
+
import org.readium.r2.navigator.preferences.FontFamily
|
|
22
|
+
import org.readium.r2.navigator.preferences.ImageFilter
|
|
23
|
+
import org.readium.r2.navigator.preferences.ReadingProgression as NavReadingProgression
|
|
24
|
+
import org.readium.r2.navigator.preferences.Spread as NavSpread
|
|
25
|
+
import org.readium.r2.navigator.preferences.TextAlign
|
|
26
|
+
import org.readium.r2.navigator.preferences.Theme
|
|
27
|
+
import org.readium.r2.navigator.preferences.Color as ReadiumColor
|
|
28
|
+
import org.readium.r2.shared.util.Language
|
|
29
|
+
import org.readium.r2.shared.publication.Locator as ReadiumLocator
|
|
30
|
+
import org.readium.r2.shared.publication.Link as ReadiumLink
|
|
31
|
+
import org.readium.r2.shared.publication.Metadata as ReadiumMetadata
|
|
32
|
+
import org.readium.r2.shared.util.Url as ReadiumUrl
|
|
33
|
+
import org.readium.r2.shared.util.mediatype.MediaType as ReadiumMediaType
|
|
34
|
+
import org.readium.r2.navigator.Decoration as ReadiumDecoration
|
|
35
|
+
|
|
36
|
+
class HybridReadiumView(private val context: android.content.Context) : HybridReadiumViewSpec() {
|
|
37
|
+
companion object {
|
|
38
|
+
private const val TAG = "HybridReadiumView"
|
|
39
|
+
init {
|
|
40
|
+
NitroReadiumOnLoad.initializeNative()
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
private val hostView = FrameLayout(context)
|
|
45
|
+
private val scope = CoroutineScope(SupervisorJob() + Dispatchers.Main)
|
|
46
|
+
private var svc: ReaderService? = null
|
|
47
|
+
private var fragment: BaseReaderFragment? = null
|
|
48
|
+
private var isFragmentAdded = false
|
|
49
|
+
private var isBuilding = false
|
|
50
|
+
private var isAttached = false
|
|
51
|
+
private var frameCallback: Choreographer.FrameCallback? = null
|
|
52
|
+
private var viewWidth = 0
|
|
53
|
+
private var viewHeight = 0
|
|
54
|
+
|
|
55
|
+
override val view: View get() = hostView
|
|
56
|
+
|
|
57
|
+
init {
|
|
58
|
+
hostView.addOnAttachStateChangeListener(object : View.OnAttachStateChangeListener {
|
|
59
|
+
override fun onViewAttachedToWindow(v: View) {
|
|
60
|
+
isAttached = true
|
|
61
|
+
buildForViewIfReady()
|
|
62
|
+
}
|
|
63
|
+
override fun onViewDetachedFromWindow(v: View) {
|
|
64
|
+
isAttached = false
|
|
65
|
+
frameCallback?.let {
|
|
66
|
+
try {
|
|
67
|
+
Choreographer.getInstance().removeFrameCallback(it)
|
|
68
|
+
} catch (e: Exception) {
|
|
69
|
+
Log.w(TAG, "Failed to remove frame callback: ${e.message}")
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
frameCallback = null
|
|
73
|
+
scope.cancel()
|
|
74
|
+
}
|
|
75
|
+
})
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// Props
|
|
79
|
+
override var file: ReadiumFile = ReadiumFile("", null)
|
|
80
|
+
set(value) {
|
|
81
|
+
field = value
|
|
82
|
+
buildForViewIfReady()
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
override var location: Locator? = null
|
|
86
|
+
set(value) {
|
|
87
|
+
field = value
|
|
88
|
+
updateLocation()
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
override var preferences: Preferences? = null
|
|
92
|
+
set(value) {
|
|
93
|
+
field = value
|
|
94
|
+
updatePreferences()
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
override var decorations: Array<DecorationGroup>? = null
|
|
98
|
+
set(value) {
|
|
99
|
+
field = value
|
|
100
|
+
updateDecorations()
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
override var selectionActions: Array<SelectionAction>? = null
|
|
104
|
+
set(value) {
|
|
105
|
+
field = value
|
|
106
|
+
updateSelectionActions()
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
override var onLocationChange: (locator: Locator) -> Unit = {}
|
|
110
|
+
override var onPublicationReady: (event: PublicationReadyEvent) -> Unit = {}
|
|
111
|
+
override var onDecorationActivated: (event: DecorationActivatedEvent) -> Unit = {}
|
|
112
|
+
override var onSelectionChange: (event: SelectionEvent) -> Unit = {}
|
|
113
|
+
override var onSelectionAction: (event: SelectionActionEvent) -> Unit = {}
|
|
114
|
+
|
|
115
|
+
private fun ensureService() {
|
|
116
|
+
if (svc == null) {
|
|
117
|
+
val reactContext = (context as? com.facebook.react.uimanager.ThemedReactContext)?.reactApplicationContext
|
|
118
|
+
if (reactContext != null) {
|
|
119
|
+
svc = ReaderService(reactContext)
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
// MARK: - Location
|
|
125
|
+
|
|
126
|
+
private fun updateLocation() {
|
|
127
|
+
val loc = location ?: return
|
|
128
|
+
if (fragment == null) return
|
|
129
|
+
|
|
130
|
+
val readiumLocator = nitroLocatorToReadium(loc) ?: return
|
|
131
|
+
fragment?.go(com.reactnativereadium.utils.LinkOrLocator.Locator(readiumLocator), true)
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// MARK: - Preferences
|
|
135
|
+
|
|
136
|
+
private fun updatePreferences() {
|
|
137
|
+
val prefs = preferences ?: return
|
|
138
|
+
if (fragment == null) return
|
|
139
|
+
|
|
140
|
+
val epubPrefs = nitroPreferencesToEpub(prefs)
|
|
141
|
+
if (fragment is EpubReaderFragment) {
|
|
142
|
+
(fragment as EpubReaderFragment).updatePreferences(epubPrefs)
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
private fun nitroPreferencesToEpub(prefs: Preferences): ReadiumEpubPreferences {
|
|
147
|
+
return ReadiumEpubPreferences(
|
|
148
|
+
backgroundColor = prefs.backgroundColor?.let { parseReadiumColor(it) },
|
|
149
|
+
columnCount = prefs.columnCount?.let { parseColumnCount(it) },
|
|
150
|
+
fontFamily = prefs.fontFamily?.let { FontFamily(it) },
|
|
151
|
+
fontSize = prefs.fontSize,
|
|
152
|
+
fontWeight = prefs.fontWeight,
|
|
153
|
+
hyphens = prefs.hyphens,
|
|
154
|
+
imageFilter = prefs.imageFilter?.let { parseImageFilter(it) },
|
|
155
|
+
language = prefs.language?.let { Language(it) },
|
|
156
|
+
letterSpacing = prefs.letterSpacing,
|
|
157
|
+
ligatures = prefs.ligatures,
|
|
158
|
+
lineHeight = prefs.lineHeight,
|
|
159
|
+
pageMargins = prefs.pageMargins,
|
|
160
|
+
paragraphIndent = prefs.paragraphIndent,
|
|
161
|
+
paragraphSpacing = prefs.paragraphSpacing,
|
|
162
|
+
publisherStyles = prefs.publisherStyles,
|
|
163
|
+
readingProgression = prefs.readingProgression?.let { parseReadingProgression(it) },
|
|
164
|
+
scroll = prefs.scroll,
|
|
165
|
+
spread = prefs.spread?.let { parseSpread(it) },
|
|
166
|
+
textAlign = prefs.textAlign?.let { parseTextAlign(it) },
|
|
167
|
+
textColor = prefs.textColor?.let { parseReadiumColor(it) },
|
|
168
|
+
textNormalization = prefs.textNormalization,
|
|
169
|
+
theme = prefs.theme?.let { parseTheme(it) },
|
|
170
|
+
typeScale = prefs.typeScale,
|
|
171
|
+
verticalText = prefs.verticalText,
|
|
172
|
+
wordSpacing = prefs.wordSpacing,
|
|
173
|
+
)
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
private fun parseReadiumColor(hex: String): ReadiumColor? {
|
|
177
|
+
return try {
|
|
178
|
+
ReadiumColor(android.graphics.Color.parseColor(hex))
|
|
179
|
+
} catch (e: Exception) {
|
|
180
|
+
null
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
private fun parseTheme(value: String): Theme? = when (value) {
|
|
185
|
+
"light" -> Theme.LIGHT
|
|
186
|
+
"dark" -> Theme.DARK
|
|
187
|
+
"sepia" -> Theme.SEPIA
|
|
188
|
+
else -> null
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
private fun parseColumnCount(value: String): ColumnCount? = when (value) {
|
|
192
|
+
"auto" -> ColumnCount.AUTO
|
|
193
|
+
"1" -> ColumnCount.ONE
|
|
194
|
+
"2" -> ColumnCount.TWO
|
|
195
|
+
else -> null
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
private fun parseImageFilter(value: String): ImageFilter? = when (value) {
|
|
199
|
+
"darken" -> ImageFilter.DARKEN
|
|
200
|
+
"invert" -> ImageFilter.INVERT
|
|
201
|
+
else -> null
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
private fun parseReadingProgression(value: String): NavReadingProgression? = when (value) {
|
|
205
|
+
"ltr" -> NavReadingProgression.LTR
|
|
206
|
+
"rtl" -> NavReadingProgression.RTL
|
|
207
|
+
else -> null
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
private fun parseSpread(value: String): NavSpread? = when (value) {
|
|
211
|
+
"auto" -> NavSpread.AUTO
|
|
212
|
+
"never" -> NavSpread.NEVER
|
|
213
|
+
"always" -> NavSpread.ALWAYS
|
|
214
|
+
else -> null
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
private fun parseTextAlign(value: String): TextAlign? = when (value) {
|
|
218
|
+
"center" -> TextAlign.CENTER
|
|
219
|
+
"justify" -> TextAlign.JUSTIFY
|
|
220
|
+
"start" -> TextAlign.START
|
|
221
|
+
"end" -> TextAlign.END
|
|
222
|
+
"left" -> TextAlign.LEFT
|
|
223
|
+
"right" -> TextAlign.RIGHT
|
|
224
|
+
else -> null
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
// MARK: - Decorations
|
|
228
|
+
|
|
229
|
+
private fun updateDecorations() {
|
|
230
|
+
val groups = decorations ?: return
|
|
231
|
+
if (fragment == null) return
|
|
232
|
+
|
|
233
|
+
val readiumGroups = mutableMapOf<String, List<ReadiumDecoration>>()
|
|
234
|
+
for (group in groups) {
|
|
235
|
+
readiumGroups[group.name] = group.decorations.mapNotNull { nitroDecorationToReadium(it) }
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
fragment?.applyDecorations(readiumGroups)
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
// MARK: - Selection Actions
|
|
242
|
+
|
|
243
|
+
private fun updateSelectionActions() {
|
|
244
|
+
val actions = selectionActions ?: return
|
|
245
|
+
if (fragment == null) return
|
|
246
|
+
|
|
247
|
+
val fragmentActions = actions.map { FragmentSelectionAction(it.id, it.label) }
|
|
248
|
+
if (fragment is EpubReaderFragment) {
|
|
249
|
+
(fragment as EpubReaderFragment).updateSelectionActions(fragmentActions)
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
// MARK: - Direct type converters (no JSON round-trip)
|
|
254
|
+
|
|
255
|
+
private fun nitroLocatorToReadium(loc: Locator): ReadiumLocator? {
|
|
256
|
+
val href = ReadiumUrl(loc.href) ?: return null
|
|
257
|
+
val mediaType = ReadiumMediaType(loc.type) ?: ReadiumMediaType.BINARY
|
|
258
|
+
|
|
259
|
+
return ReadiumLocator(
|
|
260
|
+
href = href,
|
|
261
|
+
mediaType = mediaType,
|
|
262
|
+
title = loc.title,
|
|
263
|
+
locations = ReadiumLocator.Locations(
|
|
264
|
+
progression = loc.locations?.progression,
|
|
265
|
+
position = loc.locations?.position?.toInt(),
|
|
266
|
+
totalProgression = loc.locations?.totalProgression
|
|
267
|
+
),
|
|
268
|
+
text = ReadiumLocator.Text(
|
|
269
|
+
before = loc.text?.before,
|
|
270
|
+
highlight = loc.text?.highlight,
|
|
271
|
+
after = loc.text?.after
|
|
272
|
+
)
|
|
273
|
+
)
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
private fun nitroDecorationToReadium(dec: Decoration): ReadiumDecoration? {
|
|
277
|
+
val locator = nitroLocatorToReadium(dec.locator) ?: return null
|
|
278
|
+
|
|
279
|
+
val style: ReadiumDecoration.Style = when (dec.style.type) {
|
|
280
|
+
"highlight" -> ReadiumDecoration.Style.Highlight(
|
|
281
|
+
tint = parseColorString(dec.style.tint),
|
|
282
|
+
isActive = dec.style.isActive ?: false
|
|
283
|
+
)
|
|
284
|
+
"underline" -> ReadiumDecoration.Style.Underline(
|
|
285
|
+
tint = parseColorString(dec.style.tint),
|
|
286
|
+
isActive = dec.style.isActive ?: false
|
|
287
|
+
)
|
|
288
|
+
else -> return null
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
val extras: Map<String, Any> = dec.extras ?: emptyMap()
|
|
292
|
+
|
|
293
|
+
return ReadiumDecoration(
|
|
294
|
+
id = dec.id,
|
|
295
|
+
locator = locator,
|
|
296
|
+
style = style,
|
|
297
|
+
extras = extras
|
|
298
|
+
)
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
private fun parseColorString(colorString: String?): Int {
|
|
302
|
+
if (colorString == null) return Color.YELLOW
|
|
303
|
+
return try {
|
|
304
|
+
Color.parseColor(colorString)
|
|
305
|
+
} catch (e: Exception) {
|
|
306
|
+
Color.YELLOW
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
private fun readiumLocatorToNitro(loc: ReadiumLocator): Locator {
|
|
311
|
+
val locations = LocatorLocations(
|
|
312
|
+
progression = loc.locations.progression ?: 0.0,
|
|
313
|
+
position = loc.locations.position?.toDouble(),
|
|
314
|
+
totalProgression = loc.locations.totalProgression
|
|
315
|
+
)
|
|
316
|
+
|
|
317
|
+
val text = if (loc.text.highlight != null || loc.text.before != null || loc.text.after != null) {
|
|
318
|
+
LocatorText(
|
|
319
|
+
before = loc.text.before,
|
|
320
|
+
highlight = loc.text.highlight,
|
|
321
|
+
after = loc.text.after
|
|
322
|
+
)
|
|
323
|
+
} else null
|
|
324
|
+
|
|
325
|
+
return Locator(
|
|
326
|
+
href = loc.href.toString(),
|
|
327
|
+
type = loc.mediaType.toString(),
|
|
328
|
+
target = null,
|
|
329
|
+
title = loc.title,
|
|
330
|
+
locations = locations,
|
|
331
|
+
text = text
|
|
332
|
+
)
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
private fun readiumLinkToNitro(link: ReadiumLink): Link {
|
|
336
|
+
return Link(
|
|
337
|
+
href = link.href.toString(),
|
|
338
|
+
templated = link.href.isTemplated,
|
|
339
|
+
type = link.mediaType?.toString(),
|
|
340
|
+
title = link.title,
|
|
341
|
+
rels = link.rels.toTypedArray(),
|
|
342
|
+
height = null,
|
|
343
|
+
width = null,
|
|
344
|
+
bitrate = null,
|
|
345
|
+
duration = null,
|
|
346
|
+
languages = link.languages.toTypedArray()
|
|
347
|
+
)
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
private fun readiumDecorationToNitro(dec: ReadiumDecoration): Decoration {
|
|
351
|
+
val locator = readiumLocatorToNitro(dec.locator)
|
|
352
|
+
|
|
353
|
+
val style = DecorationStyle(
|
|
354
|
+
type = when (dec.style) {
|
|
355
|
+
is ReadiumDecoration.Style.Highlight -> "highlight"
|
|
356
|
+
is ReadiumDecoration.Style.Underline -> "underline"
|
|
357
|
+
else -> "custom"
|
|
358
|
+
},
|
|
359
|
+
tint = when (dec.style) {
|
|
360
|
+
is ReadiumDecoration.Style.Highlight -> colorToHex((dec.style as ReadiumDecoration.Style.Highlight).tint)
|
|
361
|
+
is ReadiumDecoration.Style.Underline -> colorToHex((dec.style as ReadiumDecoration.Style.Underline).tint)
|
|
362
|
+
else -> null
|
|
363
|
+
},
|
|
364
|
+
isActive = when (dec.style) {
|
|
365
|
+
is ReadiumDecoration.Style.Highlight -> (dec.style as ReadiumDecoration.Style.Highlight).isActive
|
|
366
|
+
is ReadiumDecoration.Style.Underline -> (dec.style as ReadiumDecoration.Style.Underline).isActive
|
|
367
|
+
else -> null
|
|
368
|
+
},
|
|
369
|
+
id = null, html = null, css = null, layout = null, width = null
|
|
370
|
+
)
|
|
371
|
+
|
|
372
|
+
val extras = if (dec.extras.isNotEmpty()) {
|
|
373
|
+
dec.extras.entries.associate { it.key to it.value.toString() }
|
|
374
|
+
} else null
|
|
375
|
+
|
|
376
|
+
return Decoration(id = dec.id, locator = locator, style = style, extras = extras)
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
private fun readiumMetadataToNitro(meta: ReadiumMetadata): PublicationMetadata {
|
|
380
|
+
fun contributors(list: List<org.readium.r2.shared.publication.Contributor>): Array<Contributor>? {
|
|
381
|
+
if (list.isEmpty()) return null
|
|
382
|
+
return list.map {
|
|
383
|
+
Contributor(
|
|
384
|
+
name = it.name,
|
|
385
|
+
sortAs = null,
|
|
386
|
+
identifier = it.identifier,
|
|
387
|
+
role = it.roles.firstOrNull(),
|
|
388
|
+
position = it.position
|
|
389
|
+
)
|
|
390
|
+
}.toTypedArray()
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
fun subjects(list: List<org.readium.r2.shared.publication.Subject>): Array<Subject>? {
|
|
394
|
+
if (list.isEmpty()) return null
|
|
395
|
+
return list.map {
|
|
396
|
+
Subject(name = it.name, sortAs = null, code = it.code, scheme = it.scheme)
|
|
397
|
+
}.toTypedArray()
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
return PublicationMetadata(
|
|
401
|
+
title = meta.title ?: "Untitled",
|
|
402
|
+
sortAs = null,
|
|
403
|
+
subtitle = meta.localizedSubtitle?.string,
|
|
404
|
+
identifier = meta.identifier,
|
|
405
|
+
accessibility = null,
|
|
406
|
+
modified = meta.modified?.toString(),
|
|
407
|
+
published = meta.published?.toString(),
|
|
408
|
+
language = if (meta.languages.isNotEmpty()) meta.languages.toTypedArray() else null,
|
|
409
|
+
author = contributors(meta.authors),
|
|
410
|
+
translator = contributors(meta.translators),
|
|
411
|
+
editor = contributors(meta.editors),
|
|
412
|
+
artist = contributors(meta.artists),
|
|
413
|
+
illustrator = contributors(meta.illustrators),
|
|
414
|
+
letterer = contributors(meta.letterers),
|
|
415
|
+
penciler = contributors(meta.pencilers),
|
|
416
|
+
colorist = contributors(meta.colorists),
|
|
417
|
+
inker = contributors(meta.inkers),
|
|
418
|
+
narrator = contributors(meta.narrators),
|
|
419
|
+
contributor = contributors(meta.contributors),
|
|
420
|
+
publisher = contributors(meta.publishers),
|
|
421
|
+
imprint = contributors(meta.imprints),
|
|
422
|
+
subject = subjects(meta.subjects),
|
|
423
|
+
layout = null,
|
|
424
|
+
readingProgression = meta.readingProgression?.name?.lowercase(),
|
|
425
|
+
description = meta.description,
|
|
426
|
+
duration = meta.duration,
|
|
427
|
+
numberOfPages = meta.numberOfPages?.toDouble(),
|
|
428
|
+
belongsTo = null
|
|
429
|
+
)
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
private fun colorToHex(color: Int): String = String.format("#%08X", color)
|
|
433
|
+
|
|
434
|
+
// MARK: - Imperative navigation
|
|
435
|
+
|
|
436
|
+
override fun goForward() { fragment?.goForward() }
|
|
437
|
+
override fun goBackward() { fragment?.goBackward() }
|
|
438
|
+
|
|
439
|
+
// MARK: - Fragment management
|
|
440
|
+
|
|
441
|
+
private fun buildForViewIfReady() {
|
|
442
|
+
if (!isAttached) return
|
|
443
|
+
if (isFragmentAdded) return
|
|
444
|
+
if (isBuilding) return
|
|
445
|
+
val fileUrl = file.url
|
|
446
|
+
if (fileUrl.isEmpty()) return
|
|
447
|
+
|
|
448
|
+
ensureService()
|
|
449
|
+
val service = svc ?: return
|
|
450
|
+
|
|
451
|
+
isBuilding = true
|
|
452
|
+
|
|
453
|
+
val path = fileUrl.replace("^(file:/+)?(/.*)$".toRegex(), "$2")
|
|
454
|
+
|
|
455
|
+
// Convert initial location
|
|
456
|
+
val initialLocator = file.initialLocation?.let { loc ->
|
|
457
|
+
nitroLocatorToReadium(loc)?.let { com.reactnativereadium.utils.LinkOrLocator.Locator(it) }
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
scope.launch {
|
|
461
|
+
service.openPublication(path, initialLocator) { frag ->
|
|
462
|
+
addFragment(frag)
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
private fun addFragment(frag: BaseReaderFragment) {
|
|
468
|
+
if (isFragmentAdded) return
|
|
469
|
+
|
|
470
|
+
fragment = frag
|
|
471
|
+
isFragmentAdded = true
|
|
472
|
+
setupLayout()
|
|
473
|
+
|
|
474
|
+
val activity = hostView.context as? FragmentActivity
|
|
475
|
+
?: (hostView.context as? android.content.ContextWrapper)?.let {
|
|
476
|
+
var ctx = it.baseContext
|
|
477
|
+
while (ctx is android.content.ContextWrapper) {
|
|
478
|
+
if (ctx is FragmentActivity) return@let ctx
|
|
479
|
+
ctx = ctx.baseContext
|
|
480
|
+
}
|
|
481
|
+
null
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
if (activity == null) {
|
|
485
|
+
Log.e(TAG, "Could not find FragmentActivity")
|
|
486
|
+
return
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
hostView.id = View.generateViewId()
|
|
490
|
+
|
|
491
|
+
activity.supportFragmentManager
|
|
492
|
+
.beginTransaction()
|
|
493
|
+
.replace(hostView.id, frag, hostView.id.toString())
|
|
494
|
+
.commitNow()
|
|
495
|
+
|
|
496
|
+
// The FragmentManager may not find hostView via activity.findViewById()
|
|
497
|
+
// in React Native's Fabric view tree. Manually add the fragment's view
|
|
498
|
+
// to hostView if needed.
|
|
499
|
+
frag.view?.let { fragView ->
|
|
500
|
+
if (fragView.parent !== hostView) {
|
|
501
|
+
(fragView.parent as? android.view.ViewGroup)?.removeView(fragView)
|
|
502
|
+
hostView.addView(fragView, FrameLayout.LayoutParams(
|
|
503
|
+
FrameLayout.LayoutParams.MATCH_PARENT,
|
|
504
|
+
FrameLayout.LayoutParams.MATCH_PARENT
|
|
505
|
+
))
|
|
506
|
+
} else {
|
|
507
|
+
fragView.layoutParams = FrameLayout.LayoutParams(
|
|
508
|
+
FrameLayout.LayoutParams.MATCH_PARENT,
|
|
509
|
+
FrameLayout.LayoutParams.MATCH_PARENT
|
|
510
|
+
)
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
|
|
514
|
+
// Apply pending state
|
|
515
|
+
preferences?.let { updatePreferences() }
|
|
516
|
+
decorations?.let { updateDecorations() }
|
|
517
|
+
selectionActions?.let { updateSelectionActions() }
|
|
518
|
+
|
|
519
|
+
// Subscribe to fragment events
|
|
520
|
+
frag.channel.receive(frag) { event ->
|
|
521
|
+
when (event) {
|
|
522
|
+
is ReaderViewModel.Event.LocatorUpdate -> {
|
|
523
|
+
val payload = readiumLocatorToNitro(event.locator)
|
|
524
|
+
onLocationChange(payload)
|
|
525
|
+
}
|
|
526
|
+
is ReaderViewModel.Event.PublicationReady -> {
|
|
527
|
+
val payload = PublicationReadyEvent(
|
|
528
|
+
tableOfContents = event.tableOfContents.map { readiumLinkToNitro(it) }.toTypedArray(),
|
|
529
|
+
positions = event.positions.map { readiumLocatorToNitro(it) }.toTypedArray(),
|
|
530
|
+
metadata = readiumMetadataToNitro(event.metadata)
|
|
531
|
+
)
|
|
532
|
+
onPublicationReady(payload)
|
|
533
|
+
}
|
|
534
|
+
is ReaderViewModel.Event.DecorationActivated -> {
|
|
535
|
+
val decoration = readiumDecorationToNitro(event.decoration)
|
|
536
|
+
val rect = event.rect?.let {
|
|
537
|
+
Rect(x = it.left.toDouble(), y = it.top.toDouble(), width = it.width().toDouble(), height = it.height().toDouble())
|
|
538
|
+
}
|
|
539
|
+
val point = event.point?.let { Point(x = it.x.toDouble(), y = it.y.toDouble()) }
|
|
540
|
+
val payload = DecorationActivatedEvent(
|
|
541
|
+
decoration = decoration,
|
|
542
|
+
group = event.group,
|
|
543
|
+
rect = rect,
|
|
544
|
+
point = point
|
|
545
|
+
)
|
|
546
|
+
onDecorationActivated(payload)
|
|
547
|
+
}
|
|
548
|
+
is ReaderViewModel.Event.SelectionChanged -> {
|
|
549
|
+
val payload = SelectionEvent(
|
|
550
|
+
locator = event.locator?.let { readiumLocatorToNitro(it) },
|
|
551
|
+
selectedText = event.selectedText
|
|
552
|
+
)
|
|
553
|
+
onSelectionChange(payload)
|
|
554
|
+
}
|
|
555
|
+
is ReaderViewModel.Event.SelectionAction -> {
|
|
556
|
+
val payload = SelectionActionEvent(
|
|
557
|
+
locator = readiumLocatorToNitro(event.locator),
|
|
558
|
+
selectedText = event.selectedText,
|
|
559
|
+
actionId = event.actionId
|
|
560
|
+
)
|
|
561
|
+
onSelectionAction(payload)
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
private fun setupLayout() {
|
|
568
|
+
frameCallback = object : Choreographer.FrameCallback {
|
|
569
|
+
override fun doFrame(frameTimeNanos: Long) {
|
|
570
|
+
manuallyLayoutChildren()
|
|
571
|
+
hostView.viewTreeObserver.dispatchOnGlobalLayout()
|
|
572
|
+
Choreographer.getInstance().postFrameCallback(this)
|
|
573
|
+
}
|
|
574
|
+
}
|
|
575
|
+
frameCallback?.let { Choreographer.getInstance().postFrameCallback(it) }
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
private fun manuallyLayoutChildren() {
|
|
579
|
+
val w = hostView.measuredWidth
|
|
580
|
+
val h = hostView.measuredHeight
|
|
581
|
+
if (w <= 0 || h <= 0) return
|
|
582
|
+
|
|
583
|
+
for (i in 0 until hostView.childCount) {
|
|
584
|
+
val child = hostView.getChildAt(i)
|
|
585
|
+
child.measure(
|
|
586
|
+
View.MeasureSpec.makeMeasureSpec(w, View.MeasureSpec.EXACTLY),
|
|
587
|
+
View.MeasureSpec.makeMeasureSpec(h, View.MeasureSpec.EXACTLY)
|
|
588
|
+
)
|
|
589
|
+
child.layout(0, 0, w, h)
|
|
590
|
+
}
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
}
|
|
@@ -4,14 +4,21 @@ import com.facebook.react.ReactPackage
|
|
|
4
4
|
import com.facebook.react.bridge.NativeModule
|
|
5
5
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
6
6
|
import com.facebook.react.uimanager.ViewManager
|
|
7
|
-
|
|
7
|
+
import com.margelo.nitro.reactnativereadium.NitroReadiumOnLoad
|
|
8
|
+
import com.margelo.nitro.reactnativereadium.views.HybridReadiumViewManager
|
|
8
9
|
|
|
9
10
|
class ReadiumPackage : ReactPackage {
|
|
11
|
+
init {
|
|
12
|
+
// Load C++ library early so the Fabric component descriptor is registered
|
|
13
|
+
// before any ReadiumView ShadowNodes are created.
|
|
14
|
+
NitroReadiumOnLoad.initializeNative()
|
|
15
|
+
}
|
|
16
|
+
|
|
10
17
|
override fun createNativeModules(reactContext: ReactApplicationContext): List<NativeModule> {
|
|
11
18
|
return emptyList()
|
|
12
19
|
}
|
|
13
20
|
|
|
14
21
|
override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<*, *>> {
|
|
15
|
-
return listOf(
|
|
22
|
+
return listOf(HybridReadiumViewManager())
|
|
16
23
|
}
|
|
17
24
|
}
|