rn-pdf-king 1.3.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/src/main/java/expo/modules/rnpdfking/PdfKing.kt +27 -0
- package/android/src/main/java/expo/modules/rnpdfking/RnPdfKingModule.kt +7 -0
- package/build/PdfDocument.d.ts +1 -0
- package/build/PdfDocument.d.ts.map +1 -1
- package/build/PdfDocument.js +10 -1
- package/build/PdfDocument.js.map +1 -1
- package/build/RnPdfKingModule.d.ts +1 -0
- package/build/RnPdfKingModule.d.ts.map +1 -1
- package/build/RnPdfKingModule.js.map +1 -1
- package/build/RnPdfKingModule.web.d.ts +1 -0
- package/build/RnPdfKingModule.web.d.ts.map +1 -1
- package/build/RnPdfKingModule.web.js +3 -0
- package/build/RnPdfKingModule.web.js.map +1 -1
- package/package.json +1 -1
- package/src/PdfDocument.tsx +11 -1
- package/src/RnPdfKingModule.ts +1 -0
- package/src/RnPdfKingModule.web.ts +3 -0
|
@@ -27,6 +27,8 @@ import kotlin.math.max
|
|
|
27
27
|
import kotlin.math.min
|
|
28
28
|
import kotlin.math.sqrt
|
|
29
29
|
import kotlin.math.abs
|
|
30
|
+
import java.util.Collections
|
|
31
|
+
import java.util.WeakHashMap
|
|
30
32
|
import kotlinx.coroutines.Dispatchers
|
|
31
33
|
import kotlinx.coroutines.withContext
|
|
32
34
|
import kotlinx.coroutines.sync.Mutex
|
|
@@ -282,6 +284,7 @@ class PdfKing(private val context: Context) {
|
|
|
282
284
|
|
|
283
285
|
object PdfKingManager {
|
|
284
286
|
private var instance: PdfKing? = null
|
|
287
|
+
private val activePages = Collections.newSetFromMap(WeakHashMap<PdfPageView, Boolean>())
|
|
285
288
|
|
|
286
289
|
fun initialize(context: Context) {
|
|
287
290
|
if (instance == null) {
|
|
@@ -292,6 +295,18 @@ object PdfKingManager {
|
|
|
292
295
|
fun getInstance(): PdfKing {
|
|
293
296
|
return instance ?: throw IllegalStateException("PdfKingManager not initialized. Call initialize(context) first.")
|
|
294
297
|
}
|
|
298
|
+
|
|
299
|
+
fun registerPage(page: PdfPageView) {
|
|
300
|
+
activePages.add(page)
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
fun unregisterPage(page: PdfPageView) {
|
|
304
|
+
activePages.remove(page)
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
fun clearAllSelections() {
|
|
308
|
+
activePages.forEach { it.clearSelectionState() }
|
|
309
|
+
}
|
|
295
310
|
}
|
|
296
311
|
|
|
297
312
|
// --- Legacy View Implementation ---
|
|
@@ -368,6 +383,16 @@ class PdfPageView @JvmOverloads constructor(
|
|
|
368
383
|
override fun onDown(e: MotionEvent): Boolean = true
|
|
369
384
|
})
|
|
370
385
|
|
|
386
|
+
override fun onAttachedToWindow() {
|
|
387
|
+
super.onAttachedToWindow()
|
|
388
|
+
PdfKingManager.registerPage(this)
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
override fun onDetachedFromWindow() {
|
|
392
|
+
super.onDetachedFromWindow()
|
|
393
|
+
PdfKingManager.unregisterPage(this)
|
|
394
|
+
}
|
|
395
|
+
|
|
371
396
|
fun setContent(bmp: Bitmap, chars: List<TextChar>) {
|
|
372
397
|
this.bitmap = bmp
|
|
373
398
|
this.textChars = chars
|
|
@@ -746,6 +771,8 @@ class PdfPageView @JvmOverloads constructor(
|
|
|
746
771
|
}
|
|
747
772
|
|
|
748
773
|
fun clearSelectionState() {
|
|
774
|
+
if (selectionStart == null && selectionEnd == null) return
|
|
775
|
+
|
|
749
776
|
draggingHandle = null
|
|
750
777
|
isInteractingWithSelection = false
|
|
751
778
|
selectionStart = null
|
|
@@ -155,6 +155,13 @@ class RnPdfKingModule : Module() {
|
|
|
155
155
|
}
|
|
156
156
|
}
|
|
157
157
|
|
|
158
|
+
AsyncFunction("clearAllSelections") {
|
|
159
|
+
CoroutineScope(Dispatchers.Main).launch {
|
|
160
|
+
PdfKingManager.clearAllSelections()
|
|
161
|
+
}
|
|
162
|
+
return@AsyncFunction null
|
|
163
|
+
}
|
|
164
|
+
|
|
158
165
|
View(RnPdfKingView::class) {
|
|
159
166
|
Prop("pageNo") { view: RnPdfKingView, pageNo: Int ->
|
|
160
167
|
view.setPage(pageNo)
|
package/build/PdfDocument.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PdfDocument.d.ts","sourceRoot":"","sources":["../src/PdfDocument.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAkD,SAAS,EAAE,MAAM,OAAO,CAAC;AAKzF,UAAU,sBAAsB;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"PdfDocument.d.ts","sourceRoot":"","sources":["../src/PdfDocument.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAkD,SAAS,EAAE,MAAM,OAAO,CAAC;AAKzF,UAAU,sBAAsB;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,kBAAkB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAID,UAAU,gBAAgB;IACxB,QAAQ,EAAE,SAAS,CAAC;IACpB,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACxE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAKD,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAyF1D,CAAC;AAEF,eAAO,MAAM,cAAc,8BAM1B,CAAC"}
|
package/build/PdfDocument.js
CHANGED
|
@@ -57,6 +57,14 @@ export const PdfDocumentProvider = ({ children, onLoadSuccess, onLoadError }) =>
|
|
|
57
57
|
setError(e.message);
|
|
58
58
|
}
|
|
59
59
|
};
|
|
60
|
+
const clearAllSelections = async () => {
|
|
61
|
+
try {
|
|
62
|
+
await RnPdfKingModule.clearAllSelections();
|
|
63
|
+
}
|
|
64
|
+
catch (e) {
|
|
65
|
+
console.warn("Failed to clear selections", e);
|
|
66
|
+
}
|
|
67
|
+
};
|
|
60
68
|
return (<PdfDocumentContext.Provider value={{
|
|
61
69
|
loading,
|
|
62
70
|
pageCount,
|
|
@@ -64,7 +72,8 @@ export const PdfDocumentProvider = ({ children, onLoadSuccess, onLoadError }) =>
|
|
|
64
72
|
fileName,
|
|
65
73
|
pickFile,
|
|
66
74
|
loadPdf,
|
|
67
|
-
error
|
|
75
|
+
error,
|
|
76
|
+
clearAllSelections
|
|
68
77
|
}}>
|
|
69
78
|
{/* Mount hidden manager view to initialize file picker */}
|
|
70
79
|
<NativePdfView mode="manager" style={{ width: 0, height: 0, position: 'absolute' }}/>
|
package/build/PdfDocument.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PdfDocument.js","sourceRoot":"","sources":["../src/PdfDocument.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAa,MAAM,OAAO,CAAC;AACzF,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"PdfDocument.js","sourceRoot":"","sources":["../src/PdfDocument.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { createContext, useContext, useState, useEffect, ReactNode } from 'react';\nimport RnPdfKingModule from './RnPdfKingModule';\nimport { requireNativeViewManager } from 'expo-modules-core';\n\n// Define the shape of the context\ninterface PdfDocumentContextType {\n loading: boolean;\n pageCount: number;\n filePath: string | null;\n fileName: string | null;\n pickFile: () => Promise<void>;\n loadPdf: (path: string) => Promise<void>;\n error: string | null;\n clearAllSelections: () => Promise<void>;\n}\n\nconst PdfDocumentContext = createContext<PdfDocumentContextType | undefined>(undefined);\n\ninterface PdfDocumentProps {\n children: ReactNode;\n onLoadSuccess?: (path: string, name: string, pageCount: number) => void;\n onLoadError?: (error: string) => void;\n}\n\n// Native View for Manager Mode\nconst NativePdfView = requireNativeViewManager('RnPdfKing');\n\nexport const PdfDocumentProvider: React.FC<PdfDocumentProps> = ({ \n children, \n onLoadSuccess, \n onLoadError \n}) => {\n const [loading, setLoading] = useState(false);\n const [pageCount, setPageCount] = useState(0);\n const [filePath, setFilePath] = useState<string | null>(null);\n const [fileName, setFileName] = useState<string | null>(null);\n const [error, setError] = useState<string | null>(null);\n\n useEffect(() => {\n // Register listeners\n const startedSubscription = RnPdfKingModule.addListener('onPdfLoadStarted', () => {\n setLoading(true);\n setError(null);\n });\n\n const successSubscription = RnPdfKingModule.addListener('onPdfLoadSuccess', (event) => {\n setLoading(false);\n setPageCount(event.pageCount);\n setFilePath(event.filePath);\n setFileName(event.fileName);\n setError(null);\n if (onLoadSuccess) onLoadSuccess(event.filePath, event.fileName, event.pageCount);\n });\n\n const errorSubscription = RnPdfKingModule.addListener('onPdfLoadError', (event) => {\n setLoading(false);\n setError(event.message);\n if (onLoadError) onLoadError(event.message);\n });\n\n return () => {\n startedSubscription.remove();\n successSubscription.remove();\n errorSubscription.remove();\n };\n }, [onLoadSuccess, onLoadError]);\n\n const pickFile = async () => {\n try {\n setError(null);\n await RnPdfKingModule.pickFile();\n } catch (e: any) {\n setLoading(false);\n setError(e.message);\n }\n };\n\n const loadPdf = async (path: string) => {\n try {\n setError(null);\n await RnPdfKingModule.loadPdf(path);\n } catch (e: any) {\n setLoading(false);\n setError(e.message);\n }\n };\n\n const clearAllSelections = async () => {\n try {\n await RnPdfKingModule.clearAllSelections();\n } catch (e: any) {\n console.warn(\"Failed to clear selections\", e);\n }\n };\n\n return (\n <PdfDocumentContext.Provider \n value={{ \n loading, \n pageCount, \n filePath, \n fileName, \n pickFile, \n loadPdf,\n error,\n clearAllSelections\n }}\n >\n {/* Mount hidden manager view to initialize file picker */}\n <NativePdfView \n mode=\"manager\" \n style={{ width: 0, height: 0, position: 'absolute' }} \n />\n {children}\n </PdfDocumentContext.Provider>\n );\n};\n\nexport const usePdfDocument = () => {\n const context = useContext(PdfDocumentContext);\n if (context === undefined) {\n throw new Error('usePdfDocument must be used within a PdfDocumentProvider');\n }\n return context;\n};\n"]}
|
|
@@ -9,6 +9,7 @@ declare class RnPdfKingModule extends NativeModule<RnPdfKingModuleEvents> {
|
|
|
9
9
|
getPageBitmapBase64(pageNo: number): Promise<string>;
|
|
10
10
|
getTextChars(pageNo: number): Promise<string>;
|
|
11
11
|
checkInitialIntent(): Promise<boolean>;
|
|
12
|
+
clearAllSelections(): Promise<void>;
|
|
12
13
|
}
|
|
13
14
|
declare const _default: RnPdfKingModule;
|
|
14
15
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RnPdfKingModule.d.ts","sourceRoot":"","sources":["../src/RnPdfKingModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAuB,MAAM,MAAM,CAAC;AAEzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,OAAO,eAAgB,SAAQ,YAAY,CAAC,qBAAqB,CAAC;IACvE,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,IAAI,MAAM;IACf,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAC3C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IACzB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IACpC,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACpD,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC7C,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"RnPdfKingModule.d.ts","sourceRoot":"","sources":["../src/RnPdfKingModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAuB,MAAM,MAAM,CAAC;AAEzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,OAAO,eAAgB,SAAQ,YAAY,CAAC,qBAAqB,CAAC;IACvE,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,IAAI,MAAM;IACf,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAC3C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IACzB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IACpC,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACpD,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC7C,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;IACtC,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;CACpC;;AAGD,wBAAiE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RnPdfKingModule.js","sourceRoot":"","sources":["../src/RnPdfKingModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,mBAAmB,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"RnPdfKingModule.js","sourceRoot":"","sources":["../src/RnPdfKingModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAgBzD,yDAAyD;AACzD,eAAe,mBAAmB,CAAkB,WAAW,CAAC,CAAC","sourcesContent":["import { NativeModule, requireNativeModule } from 'expo';\n\nimport { RnPdfKingModuleEvents } from './RnPdfKing.types';\n\ndeclare class RnPdfKingModule extends NativeModule<RnPdfKingModuleEvents> {\n PI: number;\n hello(): string;\n setValueAsync(value: string): Promise<void>;\n pickFile(): Promise<void>;\n loadPdf(path: string): Promise<void>;\n getPageBitmapBase64(pageNo: number): Promise<string>;\n getTextChars(pageNo: number): Promise<string>;\n checkInitialIntent(): Promise<boolean>;\n clearAllSelections(): Promise<void>;\n}\n\n// This call loads the native module object from the JSI.\nexport default requireNativeModule<RnPdfKingModule>('RnPdfKing');\n"]}
|
|
@@ -7,6 +7,7 @@ declare class RnPdfKingModule extends NativeModule<RnPdfKingModuleEvents> {
|
|
|
7
7
|
pickFile(): Promise<void>;
|
|
8
8
|
loadPdf(path: string): Promise<void>;
|
|
9
9
|
checkInitialIntent(): Promise<boolean>;
|
|
10
|
+
clearAllSelections(): Promise<void>;
|
|
10
11
|
}
|
|
11
12
|
declare const _default: typeof RnPdfKingModule;
|
|
12
13
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RnPdfKingModule.web.d.ts","sourceRoot":"","sources":["../src/RnPdfKingModule.web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,YAAY,EAAE,MAAM,MAAM,CAAC;AAEvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,cAAM,eAAgB,SAAQ,YAAY,CAAC,qBAAqB,CAAC;IAC/D,EAAE,SAAW;IACP,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAGjD,KAAK;IAGC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAGzB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAGpC,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"RnPdfKingModule.web.d.ts","sourceRoot":"","sources":["../src/RnPdfKingModule.web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,YAAY,EAAE,MAAM,MAAM,CAAC;AAEvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,cAAM,eAAgB,SAAQ,YAAY,CAAC,qBAAqB,CAAC;IAC/D,EAAE,SAAW;IACP,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAGjD,KAAK;IAGC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAGzB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAGpC,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;IAGtC,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;CAG1C;;AAED,wBAAqE"}
|
|
@@ -16,6 +16,9 @@ class RnPdfKingModule extends NativeModule {
|
|
|
16
16
|
async checkInitialIntent() {
|
|
17
17
|
return false;
|
|
18
18
|
}
|
|
19
|
+
async clearAllSelections() {
|
|
20
|
+
console.warn('clearAllSelections is not implemented on web');
|
|
21
|
+
}
|
|
19
22
|
}
|
|
20
23
|
export default registerWebModule(RnPdfKingModule, 'RnPdfKingModule');
|
|
21
24
|
//# sourceMappingURL=RnPdfKingModule.web.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RnPdfKingModule.web.js","sourceRoot":"","sources":["../src/RnPdfKingModule.web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAIvD,MAAM,eAAgB,SAAQ,YAAmC;IAC/D,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;IACb,KAAK,CAAC,aAAa,CAAC,KAAa;QAC/B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACnC,CAAC;IACD,KAAK;QACH,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IACD,KAAK,CAAC,QAAQ;QACZ,OAAO,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IACrD,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,IAAY;QACxB,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IACpD,CAAC;IACD,KAAK,CAAC,kBAAkB;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED,eAAe,iBAAiB,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC","sourcesContent":["import { registerWebModule, NativeModule } from 'expo';\n\nimport { RnPdfKingModuleEvents } from './RnPdfKing.types';\n\nclass RnPdfKingModule extends NativeModule<RnPdfKingModuleEvents> {\n PI = Math.PI;\n async setValueAsync(value: string): Promise<void> {\n this.emit('onChange', { value });\n }\n hello() {\n return 'Hello world! 👋';\n }\n async pickFile(): Promise<void> {\n console.warn('pickFile is not implemented on web');\n }\n async loadPdf(path: string): Promise<void> {\n console.warn('loadPdf is not implemented on web');\n }\n async checkInitialIntent(): Promise<boolean> {\n return false;\n }\n}\n\nexport default registerWebModule(RnPdfKingModule, 'RnPdfKingModule');\n"]}
|
|
1
|
+
{"version":3,"file":"RnPdfKingModule.web.js","sourceRoot":"","sources":["../src/RnPdfKingModule.web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAIvD,MAAM,eAAgB,SAAQ,YAAmC;IAC/D,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;IACb,KAAK,CAAC,aAAa,CAAC,KAAa;QAC/B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACnC,CAAC;IACD,KAAK;QACH,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IACD,KAAK,CAAC,QAAQ;QACZ,OAAO,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IACrD,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,IAAY;QACxB,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IACpD,CAAC;IACD,KAAK,CAAC,kBAAkB;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,KAAK,CAAC,kBAAkB;QACtB,OAAO,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;IAC/D,CAAC;CACF;AAED,eAAe,iBAAiB,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC","sourcesContent":["import { registerWebModule, NativeModule } from 'expo';\n\nimport { RnPdfKingModuleEvents } from './RnPdfKing.types';\n\nclass RnPdfKingModule extends NativeModule<RnPdfKingModuleEvents> {\n PI = Math.PI;\n async setValueAsync(value: string): Promise<void> {\n this.emit('onChange', { value });\n }\n hello() {\n return 'Hello world! 👋';\n }\n async pickFile(): Promise<void> {\n console.warn('pickFile is not implemented on web');\n }\n async loadPdf(path: string): Promise<void> {\n console.warn('loadPdf is not implemented on web');\n }\n async checkInitialIntent(): Promise<boolean> {\n return false;\n }\n async clearAllSelections(): Promise<void> {\n console.warn('clearAllSelections is not implemented on web');\n }\n}\n\nexport default registerWebModule(RnPdfKingModule, 'RnPdfKingModule');\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rn-pdf-king",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "The one and only best pdf library that efficiently handle 1000 page pdf with memeory mangement , easy selection , very customizable and allow pdf to edit",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"types": "build/index.d.ts",
|
package/src/PdfDocument.tsx
CHANGED
|
@@ -11,6 +11,7 @@ interface PdfDocumentContextType {
|
|
|
11
11
|
pickFile: () => Promise<void>;
|
|
12
12
|
loadPdf: (path: string) => Promise<void>;
|
|
13
13
|
error: string | null;
|
|
14
|
+
clearAllSelections: () => Promise<void>;
|
|
14
15
|
}
|
|
15
16
|
|
|
16
17
|
const PdfDocumentContext = createContext<PdfDocumentContextType | undefined>(undefined);
|
|
@@ -84,6 +85,14 @@ export const PdfDocumentProvider: React.FC<PdfDocumentProps> = ({
|
|
|
84
85
|
}
|
|
85
86
|
};
|
|
86
87
|
|
|
88
|
+
const clearAllSelections = async () => {
|
|
89
|
+
try {
|
|
90
|
+
await RnPdfKingModule.clearAllSelections();
|
|
91
|
+
} catch (e: any) {
|
|
92
|
+
console.warn("Failed to clear selections", e);
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
|
|
87
96
|
return (
|
|
88
97
|
<PdfDocumentContext.Provider
|
|
89
98
|
value={{
|
|
@@ -93,7 +102,8 @@ export const PdfDocumentProvider: React.FC<PdfDocumentProps> = ({
|
|
|
93
102
|
fileName,
|
|
94
103
|
pickFile,
|
|
95
104
|
loadPdf,
|
|
96
|
-
error
|
|
105
|
+
error,
|
|
106
|
+
clearAllSelections
|
|
97
107
|
}}
|
|
98
108
|
>
|
|
99
109
|
{/* Mount hidden manager view to initialize file picker */}
|
package/src/RnPdfKingModule.ts
CHANGED
|
@@ -11,6 +11,7 @@ declare class RnPdfKingModule extends NativeModule<RnPdfKingModuleEvents> {
|
|
|
11
11
|
getPageBitmapBase64(pageNo: number): Promise<string>;
|
|
12
12
|
getTextChars(pageNo: number): Promise<string>;
|
|
13
13
|
checkInitialIntent(): Promise<boolean>;
|
|
14
|
+
clearAllSelections(): Promise<void>;
|
|
14
15
|
}
|
|
15
16
|
|
|
16
17
|
// This call loads the native module object from the JSI.
|
|
@@ -19,6 +19,9 @@ class RnPdfKingModule extends NativeModule<RnPdfKingModuleEvents> {
|
|
|
19
19
|
async checkInitialIntent(): Promise<boolean> {
|
|
20
20
|
return false;
|
|
21
21
|
}
|
|
22
|
+
async clearAllSelections(): Promise<void> {
|
|
23
|
+
console.warn('clearAllSelections is not implemented on web');
|
|
24
|
+
}
|
|
22
25
|
}
|
|
23
26
|
|
|
24
27
|
export default registerWebModule(RnPdfKingModule, 'RnPdfKingModule');
|