ngAfterViewInit method
Implementation
@override
void ngAfterViewInit() {
_disposeBrowserListeners();
_keyDownSub = _hostElement.onKeyDown.listen(_handleKeyDown);
_lastScrollTop = viewerContainer?.scrollTop ?? 0;
_scrollSub =
viewerContainer?.onScroll.listen((_) => _scheduleScrollUpdate());
_resizeObserver = html.ResizeObserver((entries, observer) {
_updateToolbarResponsiveState();
if (viewerContainer?.clientWidth != null &&
viewerContainer!.clientWidth > 0 &&
<String>{'page-width', 'page-fit', 'auto'}
.contains(_currentScaleValue)) {
_setScale(_currentScaleValue);
}
});
if (toolbarContainer != null) {
_resizeObserver!.observe(toolbarContainer!);
}
if (viewerContainer != null) {
_resizeObserver!.observe(viewerContainer!);
}
_updateToolbarResponsiveState();
_wheelSub = viewerContainer?.onWheel.listen((event) {
final container = viewerContainer;
if (container == null) {
return;
}
if (!event.ctrlKey) {
return;
}
event.preventDefault();
final delta = event.deltaY < 0 ? 1.1 : 1 / 1.1;
final next =
(_scale * delta).clamp(liPdfViewerMinScale, liPdfViewerMaxScale);
_scheduleZoom(next, Point<num>(event.client.x, event.client.y));
});
_pointerDownSub = viewerContainer?.on['pointerdown']
.cast<html.PointerEvent>()
.listen(_handlePointerDown);
_pointerMoveSub = viewerContainer?.on['pointermove']
.cast<html.PointerEvent>()
.listen(_handlePointerMove);
_pointerUpSub = viewerContainer?.on['pointerup']
.cast<html.PointerEvent>()
.listen(_handlePointerEnd);
_pointerCancelSub = viewerContainer?.on['pointercancel']
.cast<html.PointerEvent>()
.listen(_handlePointerEnd);
_touchStartSub = viewerContainer?.onTouchStart.listen(_handleTouchStart);
_touchMoveSub = viewerContainer?.onTouchMove.listen(_handleTouchMove);
_touchEndSub = viewerContainer?.onTouchEnd.listen(_handleTouchEnd);
_touchCancelSub = viewerContainer?.onTouchCancel.listen(_handleTouchEnd);
_fullscreenChangeSub = html.document.on['fullscreenchange']
.cast<html.Event>()
.listen((_) => _syncFullscreenState());
_webkitFullscreenChangeSub = html.document.on['webkitfullscreenchange']
.cast<html.Event>()
.listen((_) => _syncFullscreenState());
_windowResizeSub = html.window.onResize.listen((_) {
_syncSidePanelPresentationState();
_changeDetectorRef.markForCheck();
});
_syncSidePanelPresentationState();
if (_pendingPdfLoad && _pdfSource != null) {
_pendingPdfLoad = false;
scheduleMicrotask(_loadPdf);
}
}