Skip to content

Commit

Permalink
Merge pull request #138 from VadimDez/feature/#94
Browse files Browse the repository at this point in the history
Closes #94, added on-progress callback
  • Loading branch information
VadimDez authored Aug 16, 2017
2 parents 5cae5d6 + 8651716 commit 1ec394f
Show file tree
Hide file tree
Showing 15 changed files with 130 additions and 10 deletions.
19 changes: 19 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ export class AppComponent {
* [show-all](#show-all)
* [after-load-complete](#after-load-complete)
* [error](#error)
* [on-progress](#on-progress)

#### [src]
*accepts: string, object, UInt8Array*
Expand Down Expand Up @@ -197,6 +198,24 @@ Then add it to `pdf-component` in component's template
(error)="onError($event)"
```

#### (on-progress)

Loading progress callback - provides progress information `total` and `loaded` bytes. Is called several times during pdf loading phase.

Define callback in your component's class

```ts
onProgress(progressData: PDFProgressData) {
// do anything with progress data. For example progress indicator
}
```

Then add it to `pdf-component` in component's template

```html
(on-progress)="onProgress($event)"
```

## Contribute

Clone the project
Expand Down
23 changes: 22 additions & 1 deletion build/app/app.component.css
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,25 @@ pdf-viewer {

.error {
color: #ff4146;
}
}

#progress {
margin-top: 50px;
width: 100px;
text-align: center;
margin-left: auto;
margin-right: auto;
}
#progress .bar,
#progress .bg {
height: 20px;
}
#progress .bg {
background-color: #e3e3e3;
}
#progress .bar {
width: 0;
max-width: 100%;
background-color: #3f51b5;
transition: .5s width;
}
4 changes: 4 additions & 0 deletions build/app/app.component.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,14 @@ export declare class AppComponent {
showAll: boolean;
pdf: any;
renderText: boolean;
progressData: PDFProgressData;
isLoaded: boolean;
incrementPage(amount: number): void;
incrementZoom(amount: number): void;
rotate(angle: number): void;
onFileSelected(): void;
afterLoadComplete(pdf: PDFDocumentProxy): void;
onError(error: any): void;
onProgress(progressData: PDFProgressData): void;
getInt(value: number): number;
}
8 changes: 8 additions & 0 deletions build/app/app.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,13 @@ <h2>Angular 2 PDF Viewer</h2>
<button (click)="rotate(90)" class="mdl-button mdl-js-button">Rotate right</button>
</div>

<div *ngIf="!isLoaded && !error && progressData" id="progress">
<div class="bg">
<div class="bar" [style.width]="progressData.loaded / progressData.total * 100 + '%'"></div>
</div>
<span>{{ getInt(progressData.loaded / progressData.total * 100) }}%</span>
</div>

<pdf-viewer [src]="pdfSrc"
[(page)]="page"
[rotation]="rotation"
Expand All @@ -118,6 +125,7 @@ <h2>Angular 2 PDF Viewer</h2>
[zoom]="zoom"
[render-text]="renderText"
(error)="onError($event)"
(on-progress)="onProgress($event)"
></pdf-viewer>

</div>
Expand Down
11 changes: 10 additions & 1 deletion build/app/app.component.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion build/app/app.component.js.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion build/app/app.component.metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
[{"__symbolic":"module","version":3,"metadata":{"AppComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"moduleId":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"module"},"member":"id"},"selector":"pdf-viewer-app","templateUrl":"./app.component.html","styleUrls":["./app.component.css"]}]}],"members":{"incrementPage":[{"__symbolic":"method"}],"incrementZoom":[{"__symbolic":"method"}],"rotate":[{"__symbolic":"method"}],"onFileSelected":[{"__symbolic":"method"}],"afterLoadComplete":[{"__symbolic":"method"}],"onError":[{"__symbolic":"method"}]}}}},{"__symbolic":"module","version":1,"metadata":{"AppComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"moduleId":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"module"},"member":"id"},"selector":"pdf-viewer-app","templateUrl":"./app.component.html","styleUrls":["./app.component.css"]}]}],"members":{"incrementPage":[{"__symbolic":"method"}],"incrementZoom":[{"__symbolic":"method"}],"rotate":[{"__symbolic":"method"}],"onFileSelected":[{"__symbolic":"method"}],"afterLoadComplete":[{"__symbolic":"method"}],"onError":[{"__symbolic":"method"}]}}}}]
[{"__symbolic":"module","version":3,"metadata":{"AppComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"moduleId":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"module"},"member":"id"},"selector":"pdf-viewer-app","templateUrl":"./app.component.html","styleUrls":["./app.component.css"]}]}],"members":{"incrementPage":[{"__symbolic":"method"}],"incrementZoom":[{"__symbolic":"method"}],"rotate":[{"__symbolic":"method"}],"onFileSelected":[{"__symbolic":"method"}],"afterLoadComplete":[{"__symbolic":"method"}],"onError":[{"__symbolic":"method"}],"onProgress":[{"__symbolic":"method"}],"getInt":[{"__symbolic":"method"}]}}}},{"__symbolic":"module","version":1,"metadata":{"AppComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"moduleId":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"module"},"member":"id"},"selector":"pdf-viewer-app","templateUrl":"./app.component.html","styleUrls":["./app.component.css"]}]}],"members":{"incrementPage":[{"__symbolic":"method"}],"incrementZoom":[{"__symbolic":"method"}],"rotate":[{"__symbolic":"method"}],"onFileSelected":[{"__symbolic":"method"}],"afterLoadComplete":[{"__symbolic":"method"}],"onError":[{"__symbolic":"method"}],"onProgress":[{"__symbolic":"method"}],"getInt":[{"__symbolic":"method"}]}}}}]
1 change: 1 addition & 0 deletions build/pdf-viewer/pdf-viewer.component.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ export declare class PdfViewerComponent implements OnChanges {
private resizeTimeout;
afterLoadComplete: EventEmitter<PDFDocumentProxy>;
onError: EventEmitter<any>;
onProgress: EventEmitter<PDFProgressData>;
constructor(element: ElementRef);
src: string | Uint8Array | PDFSource;
page: any;
Expand Down
8 changes: 7 additions & 1 deletion build/pdf-viewer/pdf-viewer.component.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 1ec394f

Please sign in to comment.