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,58 @@
|
|
|
1
|
+
import type { Locator } from '@readium/shared';
|
|
2
|
+
import type { Link, Locator as LocalLocator } from '../../src/interfaces';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Normalizes an href by removing leading slashes for consistency across platforms.
|
|
6
|
+
*
|
|
7
|
+
* The Readium toolkit expects hrefs in relative format (e.g., "OPS/main3.xml")
|
|
8
|
+
* rather than absolute format (e.g., "/OPS/main3.xml").
|
|
9
|
+
*
|
|
10
|
+
* @param href - The href to normalize
|
|
11
|
+
* @returns The normalized href without leading slash
|
|
12
|
+
*/
|
|
13
|
+
export function normalizeHref(href: string): string {
|
|
14
|
+
if (href.startsWith('/')) {
|
|
15
|
+
return href.substring(1);
|
|
16
|
+
}
|
|
17
|
+
return href;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Normalizes a location object (Link or Locator) by normalizing its href.
|
|
22
|
+
*
|
|
23
|
+
* @param location - The Link or Locator to normalize
|
|
24
|
+
* @returns A new location object with normalized href
|
|
25
|
+
*/
|
|
26
|
+
export function normalizeLocation<T extends { href: string }>(location: T): T {
|
|
27
|
+
return {
|
|
28
|
+
...location,
|
|
29
|
+
href: normalizeHref(location.href),
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Converts a Link or Locator to a Readium Locator format suitable for navigation.
|
|
35
|
+
*
|
|
36
|
+
* @param location - The Link or Locator from the file.initialLocation
|
|
37
|
+
* @returns A Locator object ready for the Readium navigator, or undefined if invalid
|
|
38
|
+
*/
|
|
39
|
+
export function convertToNavigatorLocator(
|
|
40
|
+
location: Link | LocalLocator
|
|
41
|
+
): Locator | undefined {
|
|
42
|
+
// First, normalize the href
|
|
43
|
+
const normalized = normalizeLocation(location);
|
|
44
|
+
|
|
45
|
+
// Check if this is already a Locator (has locations property)
|
|
46
|
+
if ('locations' in normalized) {
|
|
47
|
+
// It's already a Locator, return it
|
|
48
|
+
return normalized as unknown as Locator;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// It's a Link - convert to basic Locator format
|
|
52
|
+
// The Readium navigator will handle finding the exact position
|
|
53
|
+
return {
|
|
54
|
+
href: normalized.href,
|
|
55
|
+
type: normalized.type || 'application/xhtml+xml',
|
|
56
|
+
title: normalized.title,
|
|
57
|
+
} as Locator;
|
|
58
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Fetcher, HttpFetcher, Link, Manifest } from '@readium/shared';
|
|
2
|
+
import { normalizeManifest } from './manifestNormalizer';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Fetches and deserializes the publication manifest
|
|
6
|
+
*/
|
|
7
|
+
export async function fetchManifest(publicationURL: string): Promise<{
|
|
8
|
+
manifest: Manifest;
|
|
9
|
+
fetcher: Fetcher;
|
|
10
|
+
}> {
|
|
11
|
+
const manifestLink = new Link({ href: 'manifest.json' });
|
|
12
|
+
const fetcher: Fetcher = new HttpFetcher(undefined, publicationURL);
|
|
13
|
+
const fetched = fetcher.get(manifestLink);
|
|
14
|
+
const selfLink = (await fetched.link()).toURL(publicationURL)!;
|
|
15
|
+
|
|
16
|
+
const response = await fetched.readAsJSON();
|
|
17
|
+
const responseObj = normalizeManifest(response as any);
|
|
18
|
+
|
|
19
|
+
let manifest;
|
|
20
|
+
try {
|
|
21
|
+
manifest = Manifest.deserialize(responseObj as string);
|
|
22
|
+
} catch (error) {
|
|
23
|
+
console.error('Error during manifest deserialization:', error);
|
|
24
|
+
console.error('Manifest that failed:', responseObj);
|
|
25
|
+
throw error;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
if (!manifest) {
|
|
29
|
+
console.error(
|
|
30
|
+
'Failed to deserialize manifest (returned null/undefined):',
|
|
31
|
+
responseObj
|
|
32
|
+
);
|
|
33
|
+
throw new Error('Manifest deserialization returned null/undefined');
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
manifest.setSelfLink(selfLink);
|
|
37
|
+
return { manifest, fetcher };
|
|
38
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Normalizes a Readium manifest object to ensure compatibility with the navigator.
|
|
3
|
+
* Handles various inconsistencies in manifest formats:
|
|
4
|
+
* - Converts string properties to arrays where required
|
|
5
|
+
* - Normalizes date formats to ISO 8601
|
|
6
|
+
* - Ensures required properties exist
|
|
7
|
+
*/
|
|
8
|
+
export function normalizeManifest(manifest: any): any {
|
|
9
|
+
const responseObj = manifest;
|
|
10
|
+
const metadata = responseObj.metadata;
|
|
11
|
+
|
|
12
|
+
// Normalize root-level properties
|
|
13
|
+
if (typeof responseObj.conformsTo === 'string') {
|
|
14
|
+
responseObj.conformsTo = [responseObj.conformsTo];
|
|
15
|
+
}
|
|
16
|
+
if (typeof metadata?.conformsTo === 'string') {
|
|
17
|
+
metadata.conformsTo = [metadata.conformsTo];
|
|
18
|
+
}
|
|
19
|
+
if (typeof metadata?.accessMode === 'string') {
|
|
20
|
+
metadata.accessMode = [metadata.accessMode];
|
|
21
|
+
}
|
|
22
|
+
if (typeof metadata?.accessibilityFeature === 'string') {
|
|
23
|
+
metadata.accessibilityFeature = [metadata.accessibilityFeature];
|
|
24
|
+
}
|
|
25
|
+
if (typeof metadata?.accessibilityHazard === 'string') {
|
|
26
|
+
metadata.accessibilityHazard = [metadata.accessibilityHazard];
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// Normalize nested accessibility properties
|
|
30
|
+
const accessibility = metadata?.accessibility;
|
|
31
|
+
if (accessibility) {
|
|
32
|
+
if (typeof accessibility.conformsTo === 'string') {
|
|
33
|
+
accessibility.conformsTo = [accessibility.conformsTo];
|
|
34
|
+
}
|
|
35
|
+
if (typeof accessibility.accessMode === 'string') {
|
|
36
|
+
accessibility.accessMode = [accessibility.accessMode];
|
|
37
|
+
}
|
|
38
|
+
if (typeof accessibility.feature === 'string') {
|
|
39
|
+
accessibility.feature = [accessibility.feature];
|
|
40
|
+
}
|
|
41
|
+
if (typeof accessibility.hazard === 'string') {
|
|
42
|
+
accessibility.hazard = [accessibility.hazard];
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// Normalize date formats
|
|
47
|
+
// Some manifests use JavaScript Date.toString() format instead of ISO 8601
|
|
48
|
+
if (metadata?.modified && typeof metadata.modified === 'string') {
|
|
49
|
+
const date = new Date(metadata.modified);
|
|
50
|
+
if (!isNaN(date.getTime())) {
|
|
51
|
+
metadata.modified = date.toISOString();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
if (metadata?.published && typeof metadata.published === 'string') {
|
|
55
|
+
const date = new Date(metadata.published);
|
|
56
|
+
if (!isNaN(date.getTime())) {
|
|
57
|
+
metadata.published = date.toISOString();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// Ensure links property exists (required by RWPM spec)
|
|
62
|
+
// Some manifests may have landmarks instead of links
|
|
63
|
+
if (!responseObj.links) {
|
|
64
|
+
// If landmarks exist, convert them to links
|
|
65
|
+
if (responseObj.landmarks && Array.isArray(responseObj.landmarks)) {
|
|
66
|
+
responseObj.links = responseObj.landmarks;
|
|
67
|
+
} else {
|
|
68
|
+
// Otherwise create an empty links array
|
|
69
|
+
responseObj.links = [];
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
return responseObj;
|
|
74
|
+
}
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Normalizes metadata to ensure consistent structure per RWPM spec.
|
|
3
|
+
*
|
|
4
|
+
* This normalizer is library-agnostic and based on the stable RWPM specification,
|
|
5
|
+
* ensuring it works regardless of how the underlying Readium library serializes data.
|
|
6
|
+
*
|
|
7
|
+
* https://readium.org/webpub-manifest/
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Normalizes a localized string per RWPM spec.
|
|
12
|
+
*
|
|
13
|
+
* Per RWPM spec, a localized string can be:
|
|
14
|
+
* 1. Plain string: "Moby-Dick"
|
|
15
|
+
* 2. Language map: {"en": "Moby-Dick", "fr": "Moby Dick"}
|
|
16
|
+
*
|
|
17
|
+
* Priority for language selection:
|
|
18
|
+
* 1. "undefined" or "und" (default/undetermined language)
|
|
19
|
+
* 2. "en" (English fallback)
|
|
20
|
+
* 3. First available language
|
|
21
|
+
*
|
|
22
|
+
* https://readium.org/webpub-manifest/contexts/default/
|
|
23
|
+
*/
|
|
24
|
+
export function normalizeLocalizedString(value: any): string {
|
|
25
|
+
if (!value) return '';
|
|
26
|
+
|
|
27
|
+
// Format 1: Plain string (spec-compliant shorthand)
|
|
28
|
+
if (typeof value === 'string') return value;
|
|
29
|
+
|
|
30
|
+
// Format 2: Language map (spec-compliant full form)
|
|
31
|
+
if (typeof value === 'object') {
|
|
32
|
+
// Check if it's a LocalizedString instance with translations property
|
|
33
|
+
if (value.translations) {
|
|
34
|
+
const translations = value.translations;
|
|
35
|
+
return (
|
|
36
|
+
translations['undefined'] ||
|
|
37
|
+
translations['und'] ||
|
|
38
|
+
translations['en'] ||
|
|
39
|
+
(Object.values(translations)[0] as string) ||
|
|
40
|
+
''
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// Check if it's already a plain language map object
|
|
45
|
+
return (
|
|
46
|
+
value['undefined'] ||
|
|
47
|
+
value['und'] ||
|
|
48
|
+
value['en'] ||
|
|
49
|
+
(Object.values(value)[0] as string) ||
|
|
50
|
+
''
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return '';
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Normalizes contributors per RWPM spec.
|
|
59
|
+
*
|
|
60
|
+
* Per RWPM spec, a contributor can be:
|
|
61
|
+
* 1. Plain string: "Herman Melville"
|
|
62
|
+
* 2. Object: {"name": "Herman Melville", "sortAs": "Melville, Herman"}
|
|
63
|
+
*
|
|
64
|
+
* The Web library uses a Contributors class with an "items" property.
|
|
65
|
+
*
|
|
66
|
+
* https://readium.org/webpub-manifest/schema/contributor-object.schema.json
|
|
67
|
+
*/
|
|
68
|
+
export function normalizeContributors(value: any): any[] | undefined {
|
|
69
|
+
if (!value) return undefined;
|
|
70
|
+
|
|
71
|
+
// Handle TypeScript library's Contributors class format (has .items property)
|
|
72
|
+
const items = value.items || value;
|
|
73
|
+
|
|
74
|
+
if (!Array.isArray(items)) return undefined;
|
|
75
|
+
|
|
76
|
+
return items
|
|
77
|
+
.map((contributor: any) => {
|
|
78
|
+
// Format 1: Plain string
|
|
79
|
+
if (typeof contributor === 'string') {
|
|
80
|
+
return { name: contributor };
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// Format 2: Object with potentially localized fields
|
|
84
|
+
const normalized: any = {
|
|
85
|
+
name: normalizeLocalizedString(contributor.name),
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
if (contributor.sortAs) {
|
|
89
|
+
normalized.sortAs = normalizeLocalizedString(contributor.sortAs);
|
|
90
|
+
}
|
|
91
|
+
if (contributor.identifier) {
|
|
92
|
+
normalized.identifier = contributor.identifier;
|
|
93
|
+
}
|
|
94
|
+
if (contributor.role) {
|
|
95
|
+
normalized.role = contributor.role;
|
|
96
|
+
}
|
|
97
|
+
if (contributor.position !== undefined) {
|
|
98
|
+
normalized.position = contributor.position;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
return normalized;
|
|
102
|
+
})
|
|
103
|
+
.filter((c) => c.name); // Remove contributors without names
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Normalizes subjects per RWPM spec.
|
|
108
|
+
*
|
|
109
|
+
* Subject names can be LocalizedStrings.
|
|
110
|
+
* The Web library uses a Subjects class with an "items" property.
|
|
111
|
+
*
|
|
112
|
+
* https://readium.org/webpub-manifest/schema/subject.schema.json
|
|
113
|
+
*/
|
|
114
|
+
export function normalizeSubjects(value: any): any[] | undefined {
|
|
115
|
+
if (!value) return undefined;
|
|
116
|
+
|
|
117
|
+
// Handle Subjects class format (has .items property)
|
|
118
|
+
const items = value.items || value;
|
|
119
|
+
|
|
120
|
+
if (!Array.isArray(items)) return undefined;
|
|
121
|
+
|
|
122
|
+
return items
|
|
123
|
+
.map((subject: any) => {
|
|
124
|
+
// Format 1: Plain string
|
|
125
|
+
if (typeof subject === 'string') {
|
|
126
|
+
return { name: subject };
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// Format 2: Object
|
|
130
|
+
const normalized: any = {
|
|
131
|
+
name: normalizeLocalizedString(subject.name),
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
if (subject.sortAs) {
|
|
135
|
+
normalized.sortAs = normalizeLocalizedString(subject.sortAs);
|
|
136
|
+
}
|
|
137
|
+
if (subject.code) {
|
|
138
|
+
normalized.code = subject.code;
|
|
139
|
+
}
|
|
140
|
+
if (subject.scheme) {
|
|
141
|
+
normalized.scheme = subject.scheme;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
return normalized;
|
|
145
|
+
})
|
|
146
|
+
.filter((s) => s.name);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* Normalizes the entire metadata object per RWPM spec.
|
|
151
|
+
*
|
|
152
|
+
* This function is library-agnostic and based on the stable RWPM specification,
|
|
153
|
+
* ensuring it works regardless of how the underlying Readium library serializes data.
|
|
154
|
+
*
|
|
155
|
+
* https://readium.org/webpub-manifest/
|
|
156
|
+
*/
|
|
157
|
+
export function normalizeMetadata(metadata: any): any {
|
|
158
|
+
const normalized: any = {
|
|
159
|
+
// Title is required
|
|
160
|
+
title: normalizeLocalizedString(metadata.title),
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
// Optional localized string fields
|
|
164
|
+
if (metadata.subtitle) {
|
|
165
|
+
normalized.subtitle = normalizeLocalizedString(metadata.subtitle);
|
|
166
|
+
}
|
|
167
|
+
if (metadata.sortAs) {
|
|
168
|
+
normalized.sortAs = normalizeLocalizedString(metadata.sortAs);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
// Direct copy fields
|
|
172
|
+
if (metadata.identifier) normalized.identifier = metadata.identifier;
|
|
173
|
+
if (metadata.conformsTo) normalized.conformsTo = metadata.conformsTo;
|
|
174
|
+
if (metadata.description) normalized.description = metadata.description;
|
|
175
|
+
if (metadata.readingProgression)
|
|
176
|
+
normalized.readingProgression = metadata.readingProgression;
|
|
177
|
+
if (metadata.layout) normalized.layout = metadata.layout;
|
|
178
|
+
if (metadata.duration) normalized.duration = metadata.duration;
|
|
179
|
+
if (metadata.numberOfPages) normalized.numberOfPages = metadata.numberOfPages;
|
|
180
|
+
|
|
181
|
+
// Date fields - convert to ISO strings
|
|
182
|
+
if (metadata.modified) {
|
|
183
|
+
normalized.modified =
|
|
184
|
+
metadata.modified instanceof Date
|
|
185
|
+
? metadata.modified.toISOString()
|
|
186
|
+
: metadata.modified;
|
|
187
|
+
}
|
|
188
|
+
if (metadata.published) {
|
|
189
|
+
normalized.published =
|
|
190
|
+
metadata.published instanceof Date
|
|
191
|
+
? metadata.published.toISOString()
|
|
192
|
+
: metadata.published;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
// Languages (Web uses plural 'languages', our interface uses singular 'language')
|
|
196
|
+
if (metadata.languages) {
|
|
197
|
+
normalized.language = metadata.languages;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
// Normalize all contributor types (Web uses plural names, our interface uses singular)
|
|
201
|
+
if (metadata.authors)
|
|
202
|
+
normalized.author = normalizeContributors(metadata.authors);
|
|
203
|
+
if (metadata.translators)
|
|
204
|
+
normalized.translator = normalizeContributors(metadata.translators);
|
|
205
|
+
if (metadata.editors)
|
|
206
|
+
normalized.editor = normalizeContributors(metadata.editors);
|
|
207
|
+
if (metadata.artists)
|
|
208
|
+
normalized.artist = normalizeContributors(metadata.artists);
|
|
209
|
+
if (metadata.illustrators)
|
|
210
|
+
normalized.illustrator = normalizeContributors(metadata.illustrators);
|
|
211
|
+
if (metadata.letterers)
|
|
212
|
+
normalized.letterer = normalizeContributors(metadata.letterers);
|
|
213
|
+
if (metadata.pencilers)
|
|
214
|
+
normalized.penciler = normalizeContributors(metadata.pencilers);
|
|
215
|
+
if (metadata.colorists)
|
|
216
|
+
normalized.colorist = normalizeContributors(metadata.colorists);
|
|
217
|
+
if (metadata.inkers)
|
|
218
|
+
normalized.inker = normalizeContributors(metadata.inkers);
|
|
219
|
+
if (metadata.narrators)
|
|
220
|
+
normalized.narrator = normalizeContributors(metadata.narrators);
|
|
221
|
+
if (metadata.contributors)
|
|
222
|
+
normalized.contributor = normalizeContributors(metadata.contributors);
|
|
223
|
+
if (metadata.publishers)
|
|
224
|
+
normalized.publisher = normalizeContributors(metadata.publishers);
|
|
225
|
+
if (metadata.imprints)
|
|
226
|
+
normalized.imprint = normalizeContributors(metadata.imprints);
|
|
227
|
+
|
|
228
|
+
// Normalize subjects
|
|
229
|
+
if (metadata.subjects) {
|
|
230
|
+
normalized.subject = normalizeSubjects(metadata.subjects);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
// Copy complex objects as-is
|
|
234
|
+
if (metadata.belongsTo) normalized.belongsTo = metadata.belongsTo;
|
|
235
|
+
if (metadata.accessibility) normalized.accessibility = metadata.accessibility;
|
|
236
|
+
|
|
237
|
+
return normalized;
|
|
238
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import {
|
|
2
|
+
BasicTextSelection,
|
|
3
|
+
FrameClickEvent,
|
|
4
|
+
} from '@readium/navigator-html-injectables';
|
|
5
|
+
import { EpubNavigatorListeners } from '@readium/navigator';
|
|
6
|
+
import { Locator } from '@readium/shared';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Creates navigator listeners for handling navigation events
|
|
10
|
+
*/
|
|
11
|
+
export function createNavigatorListeners(
|
|
12
|
+
onLocationChangeWithTotalProgression: (locator: Locator) => void,
|
|
13
|
+
onPositionChange?: (position: number | null) => void
|
|
14
|
+
): EpubNavigatorListeners {
|
|
15
|
+
return {
|
|
16
|
+
frameLoaded: function (_wnd: Window): void {
|
|
17
|
+
// noop
|
|
18
|
+
},
|
|
19
|
+
positionChanged: function (_locator: Locator): void {
|
|
20
|
+
onLocationChangeWithTotalProgression(_locator);
|
|
21
|
+
if (onPositionChange) {
|
|
22
|
+
onPositionChange(_locator.locations?.position || null);
|
|
23
|
+
}
|
|
24
|
+
window.focus();
|
|
25
|
+
},
|
|
26
|
+
tap: function (_e: FrameClickEvent): boolean {
|
|
27
|
+
return false;
|
|
28
|
+
},
|
|
29
|
+
click: function (_e: FrameClickEvent): boolean {
|
|
30
|
+
return false;
|
|
31
|
+
},
|
|
32
|
+
zoom: function (_scale: number): void {
|
|
33
|
+
// noop
|
|
34
|
+
},
|
|
35
|
+
miscPointer: function (_amount: number): void {
|
|
36
|
+
// noop
|
|
37
|
+
},
|
|
38
|
+
scroll: function (_amount: number): void {
|
|
39
|
+
// noop
|
|
40
|
+
},
|
|
41
|
+
customEvent: function (_key: string, _data: unknown): void {},
|
|
42
|
+
handleLocator: function (locator: Locator): boolean {
|
|
43
|
+
const href = locator.href;
|
|
44
|
+
if (
|
|
45
|
+
href.startsWith('http://') ||
|
|
46
|
+
href.startsWith('https://') ||
|
|
47
|
+
href.startsWith('mailto:') ||
|
|
48
|
+
href.startsWith('tel:')
|
|
49
|
+
) {
|
|
50
|
+
if (confirm(`Open "${href}" ?`)) window.open(href, '_blank');
|
|
51
|
+
} else {
|
|
52
|
+
console.warn('Unhandled locator', locator);
|
|
53
|
+
}
|
|
54
|
+
return false;
|
|
55
|
+
},
|
|
56
|
+
textSelected: function (_selection: BasicTextSelection): void {
|
|
57
|
+
// noop
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Locator,
|
|
3
|
+
LocatorLocations,
|
|
4
|
+
Manifest,
|
|
5
|
+
Publication,
|
|
6
|
+
} from '@readium/shared';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Normalizes a publication URL to ensure it ends with /
|
|
10
|
+
* If URL ends with manifest.json, extracts the base directory
|
|
11
|
+
*/
|
|
12
|
+
export function normalizePublicationURL(url: string): string {
|
|
13
|
+
if (url.endsWith('manifest.json')) {
|
|
14
|
+
return url.substring(0, url.lastIndexOf('/') + 1);
|
|
15
|
+
}
|
|
16
|
+
return url.endsWith('/') ? url : `${url}/`;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Creates positions array from publication reading order
|
|
21
|
+
* NOTE: The published npm packages (v2.2.5) require positions to be passed explicitly
|
|
22
|
+
*/
|
|
23
|
+
export function createPositions(publication: Publication): Locator[] {
|
|
24
|
+
return publication.readingOrder.items.map((link: any, idx: number) => {
|
|
25
|
+
const position = idx + 1;
|
|
26
|
+
return new Locator({
|
|
27
|
+
href: link.href,
|
|
28
|
+
type: link.type,
|
|
29
|
+
title: link.title,
|
|
30
|
+
locations: new LocatorLocations({
|
|
31
|
+
position: position,
|
|
32
|
+
progression: 0,
|
|
33
|
+
totalProgression: idx / publication.readingOrder.items.length,
|
|
34
|
+
}),
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Extracts table of contents items from manifest
|
|
41
|
+
*/
|
|
42
|
+
export function extractTableOfContents(manifest: Manifest): any[] {
|
|
43
|
+
return Array.isArray(manifest.toc)
|
|
44
|
+
? manifest.toc
|
|
45
|
+
: // @ts-ignore
|
|
46
|
+
manifest.toc.items || [];
|
|
47
|
+
}
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
package com.reactnativereadium
|
|
2
|
-
|
|
3
|
-
import android.view.Choreographer
|
|
4
|
-
import android.widget.FrameLayout
|
|
5
|
-
import androidx.fragment.app.FragmentActivity
|
|
6
|
-
import com.facebook.react.bridge.Arguments
|
|
7
|
-
import com.facebook.react.uimanager.ThemedReactContext
|
|
8
|
-
import com.facebook.react.uimanager.events.RCTEventEmitter
|
|
9
|
-
import com.reactnativereadium.reader.BaseReaderFragment
|
|
10
|
-
import com.reactnativereadium.reader.EpubReaderFragment
|
|
11
|
-
import com.reactnativereadium.reader.ReaderViewModel
|
|
12
|
-
import com.reactnativereadium.reader.VisualReaderFragment
|
|
13
|
-
import com.reactnativereadium.utils.Dimensions
|
|
14
|
-
import com.reactnativereadium.utils.File
|
|
15
|
-
import com.reactnativereadium.utils.LinkOrLocator
|
|
16
|
-
import org.readium.r2.navigator.epub.EpubNavigatorFragment
|
|
17
|
-
import org.readium.r2.navigator.epub.EpubPreferences
|
|
18
|
-
import org.readium.r2.shared.extensions.toMap
|
|
19
|
-
|
|
20
|
-
class ReadiumView(
|
|
21
|
-
val reactContext: ThemedReactContext
|
|
22
|
-
) : FrameLayout(reactContext) {
|
|
23
|
-
var dimensions: Dimensions = Dimensions(0,0)
|
|
24
|
-
var file: File? = null
|
|
25
|
-
var fragment: BaseReaderFragment? = null
|
|
26
|
-
var isViewInitialized: Boolean = false
|
|
27
|
-
var lateInitSerializedUserPreferences: String? = null
|
|
28
|
-
|
|
29
|
-
fun updateLocation(location: LinkOrLocator) : Boolean {
|
|
30
|
-
if (fragment == null) {
|
|
31
|
-
return false
|
|
32
|
-
} else {
|
|
33
|
-
return this.fragment!!.go(location, true)
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
fun updatePreferencesFromJsonString(preferences: String?) {
|
|
38
|
-
lateInitSerializedUserPreferences = preferences
|
|
39
|
-
if (preferences == null || fragment == null) {
|
|
40
|
-
return
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
if (fragment is EpubReaderFragment) {
|
|
44
|
-
(fragment as EpubReaderFragment).updatePreferencesFromJsonString(preferences)
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
fun addFragment(frag: BaseReaderFragment) {
|
|
49
|
-
fragment = frag
|
|
50
|
-
setupLayout()
|
|
51
|
-
lateInitSerializedUserPreferences?.let { updatePreferencesFromJsonString(it)}
|
|
52
|
-
val activity: FragmentActivity? = reactContext.currentActivity as FragmentActivity?
|
|
53
|
-
activity!!.supportFragmentManager
|
|
54
|
-
.beginTransaction()
|
|
55
|
-
.replace(this.id, frag, this.id.toString())
|
|
56
|
-
.commit()
|
|
57
|
-
|
|
58
|
-
val module = reactContext.getJSModule(RCTEventEmitter::class.java)
|
|
59
|
-
// subscribe to reader events
|
|
60
|
-
frag.channel.receive(frag) { event ->
|
|
61
|
-
when (event) {
|
|
62
|
-
is ReaderViewModel.Event.LocatorUpdate -> {
|
|
63
|
-
val json = event.locator.toJSON()
|
|
64
|
-
val payload = Arguments.makeNativeMap(json.toMap())
|
|
65
|
-
module.receiveEvent(
|
|
66
|
-
this.id.toInt(),
|
|
67
|
-
ReadiumViewManager.ON_LOCATION_CHANGE,
|
|
68
|
-
payload
|
|
69
|
-
)
|
|
70
|
-
}
|
|
71
|
-
is ReaderViewModel.Event.TableOfContentsLoaded -> {
|
|
72
|
-
val map = event.toc.map { it.toJSON().toMap() }
|
|
73
|
-
val payload = Arguments.makeNativeMap(mapOf("toc" to map))
|
|
74
|
-
module.receiveEvent(
|
|
75
|
-
this.id.toInt(),
|
|
76
|
-
ReadiumViewManager.ON_TABLE_OF_CONTENTS,
|
|
77
|
-
payload
|
|
78
|
-
)
|
|
79
|
-
}
|
|
80
|
-
else -> {
|
|
81
|
-
// do nothing
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
private fun setupLayout() {
|
|
88
|
-
Choreographer.getInstance().postFrameCallback(object : Choreographer.FrameCallback {
|
|
89
|
-
override fun doFrame(frameTimeNanos: Long) {
|
|
90
|
-
manuallyLayoutChildren()
|
|
91
|
-
this@ReadiumView.viewTreeObserver.dispatchOnGlobalLayout()
|
|
92
|
-
Choreographer.getInstance().postFrameCallback(this)
|
|
93
|
-
}
|
|
94
|
-
})
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
* Layout all children properly
|
|
99
|
-
*/
|
|
100
|
-
private fun manuallyLayoutChildren() {
|
|
101
|
-
// propWidth and propHeight coming from react-native props
|
|
102
|
-
val width = dimensions.width
|
|
103
|
-
val height = dimensions.height
|
|
104
|
-
this.measure(
|
|
105
|
-
MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY),
|
|
106
|
-
MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY))
|
|
107
|
-
this.layout(0, 0, width, height)
|
|
108
|
-
}
|
|
109
|
-
}
|