diff --git a/types/pdf-viewer-reactjs/index.d.ts b/types/pdf-viewer-reactjs/index.d.ts new file mode 100755 index 0000000000..37c7488353 --- /dev/null +++ b/types/pdf-viewer-reactjs/index.d.ts @@ -0,0 +1,64 @@ +// Type definitions for pdf-viewer-reactjs 2.0 +// Project: https://github.com/ansu5555/pdf-viewer-reactjs#readme +// Definitions by: Ansuman Ghosh +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.8 + +import { Component, Props } from 'react'; + +interface Document { + url?: string; + base64?: string; +} + +interface Watermark { + text?: string; + diagonal?: boolean; + opacity?: string; + size?: string; + color?: string; +} + +interface Err { + message: string; +} + +type DocClickHandler = () => void; +type BtnClickHandler = (page: number) => void; +type ZoomClickHandler = (scale: number) => void; +type RotationClickHandler = (angle: number) => void; +type AlertHandler = (err: Err) => React.ReactNode; + +interface PDFViewerProps extends Props { + document: Document; + loader?: React.ReactNode; + page?: number; + scale?: number; + defaultScale?: number; + scaleStep?: number; + maxScale?: number; + minScale?: number; + css?: string; + canvasCss?: string; + rotationAngle?: number; + onDocumentClick?: DocClickHandler; + onPrevBtnClick?: BtnClickHandler; + onNextBtnClick?: BtnClickHandler; + onZoom?: ZoomClickHandler; + onRotation?: RotationClickHandler; + hideNavbar?: boolean; + navbarOnTop?: boolean; + hideZoom?: boolean; + hideRotation?: boolean; + protectContent?: boolean; + watermark?: Watermark; + alert?: AlertHandler; + navigation?: any; +} + +declare class PDFViewer extends Component { + static defaultProps: Partial; + static propTypes: PDFViewerProps; +} + +export = PDFViewer; diff --git a/types/pdf-viewer-reactjs/pdf-viewer-reactjs-tests.tsx b/types/pdf-viewer-reactjs/pdf-viewer-reactjs-tests.tsx new file mode 100755 index 0000000000..95fb8b5ab9 --- /dev/null +++ b/types/pdf-viewer-reactjs/pdf-viewer-reactjs-tests.tsx @@ -0,0 +1,169 @@ +import * as React from 'react'; +import * as ReactDOM from 'react-dom'; +import PDFViewer = require('pdf-viewer-reactjs'); + +const sources = { + url: 'https://arxiv.org/pdf/quant-ph/0410100.pdf', + base64: 'FtDWVuZG9iag1zdGFydHhyZWYNCjExNg0KJSVFT0YNCg==', +}; + +class Example extends React.Component { + render() { + return ( +
+
+ +
+
+ +
+
+ +
+
+ ( +
+

Failed To load !!!

+
{err.message}
+
+ )} + /> +
+
+ Custom loader element} + /> +
+
+ +
+
+ +
+
+ +
+
+ -
} + /> +
+
+ alert('Document was clicked')} + onPrevBtnClick={page => alert(`Page ${page} selected`)} + onNextBtnClick={page => alert(`Page ${page} selected`)} + onZoom={scale => alert(`Zoom scale is ${scale}`)} + onRotation={angle => alert(`Page angle is ${angle}`)} + /> +
+
+ +
+
+ +
+
+ +
+
+ +
+ + ); + } +} + +ReactDOM.render(, document.getElementById('root')); diff --git a/types/pdf-viewer-reactjs/tsconfig.json b/types/pdf-viewer-reactjs/tsconfig.json new file mode 100755 index 0000000000..2dbd5012a3 --- /dev/null +++ b/types/pdf-viewer-reactjs/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6", + "dom" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true, + "jsx": "react" + }, + "files": [ + "index.d.ts", + "pdf-viewer-reactjs-tests.tsx" + ] +} diff --git a/types/pdf-viewer-reactjs/tslint.json b/types/pdf-viewer-reactjs/tslint.json new file mode 100755 index 0000000000..3db14f85ea --- /dev/null +++ b/types/pdf-viewer-reactjs/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }