UNPKG

forked-pdf-viewer

Version:

Angular 5+ component for rendering PDF

117 lines 17.3 kB
export function _createEventBus(pdfJsViewer) { const globalEventBus = new pdfJsViewer.EventBus(true); attachDOMEventsToEventBus(globalEventBus); return globalEventBus; } function attachDOMEventsToEventBus(eventBus) { eventBus.on('documentload', function () { const event = document.createEvent('CustomEvent'); event.initCustomEvent('documentload', true, true, {}); window.dispatchEvent(event); }); eventBus.on('pagerendered', function (evt) { const event = document.createEvent('CustomEvent'); event.initCustomEvent('pagerendered', true, true, { pageNumber: evt.pageNumber, cssTransform: evt.cssTransform }); evt.source.div.dispatchEvent(event); }); eventBus.on('textlayerrendered', function (evt) { const event = document.createEvent('CustomEvent'); event.initCustomEvent('textlayerrendered', true, true, { pageNumber: evt.pageNumber }); evt.source.textLayerDiv.dispatchEvent(event); }); eventBus.on('pagechanging', function (evt) { const event = document.createEvent('UIEvents'); event.initEvent('pagechanging', true, true); event['pageNumber'] = evt.pageNumber; evt.source.container.dispatchEvent(event); }); eventBus.on('pagesinit', function (evt) { const event = document.createEvent('CustomEvent'); event.initCustomEvent('pagesinit', true, true, null); evt.source.container.dispatchEvent(event); }); eventBus.on('pagesloaded', function (evt) { const event = document.createEvent('CustomEvent'); event.initCustomEvent('pagesloaded', true, true, { pagesCount: evt.pagesCount }); evt.source.container.dispatchEvent(event); }); eventBus.on('scalechange', function (evt) { const event = document.createEvent('UIEvents'); event.initEvent('scalechange', true, true); event['scale'] = evt.scale; event['presetValue'] = evt.presetValue; evt.source.container.dispatchEvent(event); }); eventBus.on('updateviewarea', function (evt) { const event = document.createEvent('UIEvents'); event.initEvent('updateviewarea', true, true); event['location'] = evt.location; evt.source.container.dispatchEvent(event); }); eventBus.on('find', function (evt) { if (evt.source === window) { return; // event comes from FirefoxCom, no need to replicate } const event = document.createEvent('CustomEvent'); event.initCustomEvent('find' + evt.type, true, true, { query: evt.query, phraseSearch: evt.phraseSearch, caseSensitive: evt.caseSensitive, highlightAll: evt.highlightAll, findPrevious: evt.findPrevious }); window.dispatchEvent(event); }); eventBus.on('attachmentsloaded', function (evt) { const event = document.createEvent('CustomEvent'); event.initCustomEvent('attachmentsloaded', true, true, { attachmentsCount: evt.attachmentsCount }); evt.source.container.dispatchEvent(event); }); eventBus.on('sidebarviewchanged', function (evt) { const event = document.createEvent('CustomEvent'); event.initCustomEvent('sidebarviewchanged', true, true, { view: evt.view }); evt.source.outerContainer.dispatchEvent(event); }); eventBus.on('pagemode', function (evt) { const event = document.createEvent('CustomEvent'); event.initCustomEvent('pagemode', true, true, { mode: evt.mode }); evt.source.pdfViewer.container.dispatchEvent(event); }); eventBus.on('namedaction', function (evt) { const event = document.createEvent('CustomEvent'); event.initCustomEvent('namedaction', true, true, { action: evt.action }); evt.source.pdfViewer.container.dispatchEvent(event); }); eventBus.on('presentationmodechanged', function (evt) { const event = document.createEvent('CustomEvent'); event.initCustomEvent('presentationmodechanged', true, true, { active: evt.active, switchInProgress: evt.switchInProgress }); window.dispatchEvent(event); }); eventBus.on('outlineloaded', function (evt) { const event = document.createEvent('CustomEvent'); event.initCustomEvent('outlineloaded', true, true, { outlineCount: evt.outlineCount }); evt.source.container.dispatchEvent(event); }); } export const createEventBus = _createEventBus; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtYnVzLXV0aWxzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vZm9ya2VkLXBkZi12aWV3ZXIvIiwic291cmNlcyI6WyJzcmMvYXBwL3V0aWxzL2V2ZW50LWJ1cy11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsZUFBZSxDQUFDLFdBQWdCO0lBQzlDLE1BQU0sY0FBYyxHQUFHLElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0RCx5QkFBeUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUUxQyxPQUFPLGNBQWMsQ0FBQztBQUN4QixDQUFDO0FBRUQsU0FBUyx5QkFBeUIsQ0FBQyxRQUFhO0lBQzlDLFFBQVEsQ0FBQyxFQUFFLENBQUMsY0FBYyxFQUFFO1FBQzFCLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbEQsS0FBSyxDQUFDLGVBQWUsQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN0RCxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ0gsUUFBUSxDQUFDLEVBQUUsQ0FBQyxjQUFjLEVBQUUsVUFBUyxHQUFHO1FBQ3RDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbEQsS0FBSyxDQUFDLGVBQWUsQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtZQUNoRCxVQUFVLEVBQUUsR0FBRyxDQUFDLFVBQVU7WUFDMUIsWUFBWSxFQUFFLEdBQUcsQ0FBQyxZQUFZO1NBQy9CLENBQUMsQ0FBQztRQUNILEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDLENBQUMsQ0FBQztJQUNILFFBQVEsQ0FBQyxFQUFFLENBQUMs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LEdBQUcsQ0FBQyxnQkFBZ0I7U0FDdkMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDLENBQUMsQ0FBQztJQUNILFFBQVEsQ0FBQyxFQUFFLENBQUMsZUFBZSxFQUFFLFVBQVMsR0FBRztRQUN2QyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2xELEtBQUssQ0FBQyxlQUFlLENBQUMsZUFBZSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7WUFDakQsWUFBWSxFQUFFLEdBQUcsQ0FBQyxZQUFZO1NBQy9CLENBQUMsQ0FBQztRQUNILEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIF9jcmVhdGVFdmVudEJ1cyhwZGZKc1ZpZXdlcjogYW55KTogYW55IHtcbiAgY29uc3QgZ2xvYmFsRXZlbnRCdXMgPSBuZXcgcGRmSnNWaWV3ZXIuRXZlbnRCdXModHJ1ZSk7XG4gIGF0dGFjaERPTUV2ZW50c1RvRXZlbnRCdXMoZ2xvYmFsRXZlbnRCdXMpO1xuXG4gIHJldHVybiBnbG9iYWxFdmVudEJ1cztcbn1cblxuZnVuY3Rpb24gYXR0YWNoRE9NRXZlbnRzVG9FdmVudEJ1cyhldmVudEJ1czogYW55KSB7XG4gIGV2ZW50QnVzLm9uKCdkb2N1bWVudGxvYWQnLCBmdW5jdGlvbigpIHtcbiAgICBjb25zdCBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdDdXN0b21FdmVudCcpO1xuICAgIGV2ZW50LmluaXRDdXN0b21FdmVudCgnZG9jdW1lbnRsb2FkJywgdHJ1ZSwgdHJ1ZSwge30pO1xuICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgfSk7XG4gIGV2ZW50QnVzLm9uKCdwYWdlcmVuZGVyZWQnLCBmdW5jdGlvbihldnQpIHtcbiAgICBjb25zdCBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdDdXN0b21FdmVudCcpO1xuICAgIGV2ZW50LmluaXRDdXN0b21FdmVudCgncGFnZXJlbmRlcmVkJywgdHJ1ZSwgdHJ1ZSwge1xuICAgICAgcGFnZU51bWJlcjogZXZ0LnBhZ2VOdW1iZXIsXG4gICAgICBjc3NUcmFuc2Zvcm06IGV2dC5jc3NUcmFuc2Zvcm1cbiAgICB9KTtcbiAgICBldnQuc291cmNlLmRpdi5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgfSk7XG4gIGV2ZW50QnVzLm9uKCd0ZXh0bGF5ZXJyZW5kZXJlZCcsIGZ1bmN0aW9uKGV2dCkge1xuICAgIGNvbnN0IGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0N1c3RvbUV2ZW50Jyk7XG4gICAgZXZlbnQuaW5pdEN1c3RvbUV2ZW50KCd0ZXh0bGF5ZXJyZW5kZXJlZCcsIHRydWUsIHRydWUsIHtcbiAgICAgIHBhZ2VOdW1iZXI6IGV2dC5wYWdlTnVtYmVyXG4gICAgfSk7XG4gICAgZXZ0LnNvdXJjZS50ZXh0TGF5ZXJEaXYuZGlzcGF0Y2hFdmVudChldmVudCk7XG4gIH0pO1xuICBldmVudEJ1cy5vbigncGFnZWNoYW5naW5nJywgZnVuY3Rpb24oZXZ0KSB7XG4gICAgY29uc3QgZXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnVUlFdmVudHMnKTtcbiAgICBldmVudC5pbml0RXZlbnQoJ3BhZ2VjaGFuZ2luZycsIHRydWUsIHRydWUpO1xuICAgIGV2ZW50WydwYWdlTnVtYmVyJ10gPSBldnQucGFnZU51bWJlcjtcbiAgICBldnQuc291cmNlLmNvbnRhaW5lci5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgfSk7XG4gIGV2ZW50QnVzLm9uKCdwYWdlc2luaXQnLCBmdW5jdGlvbihldnQpIHtcbiAgICBjb25zdCBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdDdXN0b21FdmVudCcpO1xuICAgIGV2ZW50LmluaXRDdXN0b21FdmVudCgncGFnZXNpbml0JywgdHJ1ZSwgdHJ1ZSwgbnVsbCk7XG4gICAgZXZ0LnNvdXJjZS5jb250YWluZXIuZGlzcGF0Y2hFdmVudChldmVudCk7XG4gIH0pO1xuICBldmVudEJ1cy5vbigncGFnZXNsb2FkZWQnLCBmdW5jdGlvbihldnQpIHtcbiAgICBjb25zdCBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdDdXN0b21FdmVudCcpO1xuICAgIGV2ZW50LmluaXRDdXN0b21FdmVudCgncGFnZXNsb2FkZWQnLCB0cnVlLCB0cnVlLCB7XG4gICAgICBwYWdlc0NvdW50OiBldnQucGFnZXNDb3VudFxuICAgIH0pO1xuICAgIGV2dC5zb3VyY2UuY29udGFpbmVyLmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICB9KTtcbiAgZXZlbnRCdXMub24oJ3NjYWxlY2hhbmdlJywgZnVuY3Rpb24oZXZ0KSB7XG4gICAgY29uc3QgZXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnVUlFdmVudHMnKTtcbiAgICBldmVudC5pbml0RXZlbnQoJ3NjYWxlY2hhbmdlJywgdHJ1ZSwgdHJ1ZSk7XG4gICAgZXZlbnRbJ3NjYWxlJ10gPSBldnQuc2NhbGU7XG4gICAgZXZlbnRbJ3ByZXNldFZhbHVlJ10gPSBldnQucHJlc2V0VmFsdWU7XG4gICAgZXZ0LnNvdXJjZS5jb250YWluZXIuZGlzcGF0Y2hFdmVudChldmVudCk7XG4gIH0pO1xuICBldmVudEJ1cy5vbigndXBkYXRldmlld2FyZWEnLCBmdW5jdGlvbihldnQpIHtcbiAgICBjb25zdCBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdVSUV2ZW50cycpO1xuICAgIGV2ZW50LmluaXRFdmVudCgndXBkYXRldmlld2FyZWEnLCB0cnVlLCB0cnVlKTtcbiAgICBldmVudFsnbG9jYXRpb24nXSA9IGV2dC5sb2NhdGlvbjtcbiAgICBldnQuc291cmNlLmNvbnRhaW5lci5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgfSk7XG4gIGV2ZW50QnVzLm9uKCdmaW5kJywgZnVuY3Rpb24oZXZ0KSB7XG4gICAgaWYgKGV2dC5zb3VyY2UgPT09IHdpbmRvdykge1xuICAgICAgcmV0dXJuOyAvLyBldmVudCBjb21lcyBmcm9tIEZpcmVmb3hDb20sIG5vIG5lZWQgdG8gcmVwbGljYXRlXG4gICAgfVxuICAgIGNvbnN0IGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0N1c3RvbUV2ZW50Jyk7XG4gICAgZXZlbnQuaW5pdEN1c3RvbUV2ZW50KCdmaW5kJyArIGV2dC50eXBlLCB0cnVlLCB0cnVlLCB7XG4gICAgICBxdWVyeTogZXZ0LnF1ZXJ5LFxuICAgICAgcGhyYXNlU2VhcmNoOiBldnQucGhyYXNlU2VhcmNoLFxuICAgICAgY2FzZVNlbnNpdGl2ZTogZXZ0LmNhc2VTZW5zaXRpdmUsXG4gICAgICBoaWdobGlnaHRBbGw6IGV2dC5oaWdobGlnaHRBbGwsXG4gICAgICBmaW5kUHJldmlvdXM6IGV2dC5maW5kUHJldmlvdXNcbiAgICB9KTtcbiAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChldmVudCk7XG4gIH0pO1xuICBldmVudEJ1cy5vbignYXR0YWNobWVudHNsb2FkZWQnLCBmdW5jdGlvbihldnQpIHtcbiAgICBjb25zdCBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdDdXN0b21FdmVudCcpO1xuICAgIGV2ZW50LmluaXRDdXN0b21FdmVudCgnYXR0YWNobWVudHNsb2FkZWQnLCB0cnVlLCB0cnVlLCB7XG4gICAgICBhdHRhY2htZW50c0NvdW50OiBldnQuYXR0YWNobWVudHNDb3VudFxuICAgIH0pO1xuICAgIGV2dC5zb3VyY2UuY29udGFpbmVyLmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICB9KTtcbiAgZXZlbnRCdXMub24oJ3NpZGViYXJ2aWV3Y2hhbmdlZCcsIGZ1bmN0aW9uKGV2dCkge1xuICAgIGNvbnN0IGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0N1c3RvbUV2ZW50Jyk7XG4gICAgZXZlbnQuaW5pdEN1c3RvbUV2ZW50KCdzaWRlYmFydmlld2NoYW5nZWQnLCB0cnVlLCB0cnVlLCB7XG4gICAgICB2aWV3OiBldnQudmlld1xuICAgIH0pO1xuICAgIGV2dC5zb3VyY2Uub3V0ZXJDb250YWluZXIuZGlzcGF0Y2hFdmVudChldmVudCk7XG4gIH0pO1xuICBldmVudEJ1cy5vbigncGFnZW1vZGUnLCBmdW5jdGlvbihldnQpIHtcbiAgICBjb25zdCBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdDdXN0b21FdmVudCcpO1xuICAgIGV2ZW50LmluaXRDdXN0b21FdmVudCgncGFnZW1vZGUnLCB0cnVlLCB0cnVlLCB7XG4gICAgICBtb2RlOiBldnQubW9kZVxuICAgIH0pO1xuICAgIGV2dC5zb3VyY2UucGRmVmlld2VyLmNvbnRhaW5lci5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgfSk7XG4gIGV2ZW50QnVzLm9uKCduYW1lZGFjdGlvbicsIGZ1bmN0aW9uKGV2dCkge1xuICAgIGNvbnN0IGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0N1c3RvbUV2ZW50Jyk7XG4gICAgZXZlbnQuaW5pdEN1c3RvbUV2ZW50KCduYW1lZGFjdGlvbicsIHRydWUsIHRydWUsIHtcbiAgICAgIGFjdGlvbjogZXZ0LmFjdGlvblxuICAgIH0pO1xuICAgIGV2dC5zb3VyY2UucGRmVmlld2VyLmNvbnRhaW5lci5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgfSk7XG4gIGV2ZW50QnVzLm9uKCdwcmVzZW50YXRpb25tb2RlY2hhbmdlZCcsIGZ1bmN0aW9uKGV2dCkge1xuICAgIGNvbnN0IGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0N1c3RvbUV2ZW50Jyk7XG4gICAgZXZlbnQuaW5pdEN1c3RvbUV2ZW50KCdwcmVzZW50YXRpb25tb2RlY2hhbmdlZCcsIHRydWUsIHRydWUsIHtcbiAgICAgIGFjdGl2ZTogZXZ0LmFjdGl2ZSxcbiAgICAgIHN3aXRjaEluUHJvZ3Jlc3M6IGV2dC5zd2l0Y2hJblByb2dyZXNzXG4gICAgfSk7XG4gICAgd2luZG93LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICB9KTtcbiAgZXZlbnRCdXMub24oJ291dGxpbmVsb2FkZWQnLCBmdW5jdGlvbihldnQpIHtcbiAgICBjb25zdCBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdDdXN0b21FdmVudCcpO1xuICAgIGV2ZW50LmluaXRDdXN0b21FdmVudCgnb3V0bGluZWxvYWRlZCcsIHRydWUsIHRydWUsIHtcbiAgICAgIG91dGxpbmVDb3VudDogZXZ0Lm91dGxpbmVDb3VudFxuICAgIH0pO1xuICAgIGV2dC5zb3VyY2UuY29udGFpbmVyLmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICB9KTtcbn1cblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUV2ZW50QnVzID0gX2NyZWF0ZUV2ZW50QnVzO1xuIl19