From 9f8d0ed0ee41a476d51e92f96b387b0ae3d92408 Mon Sep 17 00:00:00 2001 From: Pdf Bot Date: Thu, 25 Feb 2016 09:50:15 +0000 Subject: [PATCH] PDF.js version 1.4.93 - See mozilla/pdf.js@05917b65d50153c33173361f15a5074252d7fe71 --- bower.json | 2 +- build/pdf.combined.js | 157 ++++++++++++++++++++++++++---------------- build/pdf.js | 104 ++++++++++++++++++---------- build/pdf.worker.js | 57 +++++++-------- package.json | 2 +- 5 files changed, 196 insertions(+), 126 deletions(-) diff --git a/bower.json b/bower.json index 6db58a146..1e72268dc 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "pdfjs-dist", - "version": "1.4.91", + "version": "1.4.93", "main": [ "build/pdf.js", "build/pdf.worker.js" diff --git a/build/pdf.combined.js b/build/pdf.combined.js index f808111a8..fa4a6fcf1 100644 --- a/build/pdf.combined.js +++ b/build/pdf.combined.js @@ -28,8 +28,8 @@ factory((root.pdfjsDistBuildPdfCombined = {})); // Use strict in our context only - users might not want it 'use strict'; -var pdfjsVersion = '1.4.91'; -var pdfjsBuild = '41efb92'; +var pdfjsVersion = '1.4.93'; +var pdfjsBuild = '05917b6'; var pdfjsFilePath = typeof document !== 'undefined' && document.currentScript ? @@ -18597,6 +18597,43 @@ var AnnotationElement = (function AnnotationElementClosure() { return container; }, + /** + * Create a popup for the annotation's HTML element. This is used for + * annotations that do not have a Popup entry in the dictionary, but + * are of a type that works with popups (such as Highlight annotations). + * + * @private + * @param {HTMLSectionElement} container + * @param {HTMLDivElement|HTMLImageElement|null} trigger + * @param {Object} data + * @memberof AnnotationElement + */ + _createPopup: + function AnnotationElement_createPopup(container, trigger, data) { + // If no trigger element is specified, create it. + if (!trigger) { + trigger = document.createElement('div'); + trigger.style.height = container.style.height; + trigger.style.width = container.style.width; + container.appendChild(trigger); + } + + var popupElement = new PopupElement({ + container: container, + trigger: trigger, + color: data.color, + title: data.title, + contents: data.contents, + hideWrapper: true + }); + var popup = popupElement.render(); + + // Position the popup next to the annotation's container. + popup.style.left = container.style.width; + + container.appendChild(popup); + }, + /** * Render the annotation's HTML element in the empty container. * @@ -18725,20 +18762,7 @@ var TextAnnotationElement = (function TextAnnotationElementClosure() { image.dataset.l10nArgs = JSON.stringify({type: this.data.name}); if (!this.data.hasPopup) { - var popupElement = new PopupElement({ - container: this.container, - trigger: image, - color: this.data.color, - title: this.data.title, - contents: this.data.contents, - hideWrapper: true - }); - var popup = popupElement.render(); - - // Position the popup next to the Text annotation's container. - popup.style.left = image.style.width; - - this.container.appendChild(popup); + this._createPopup(this.container, image, this.data); } this.container.appendChild(image); @@ -19015,7 +19039,8 @@ var PopupElement = (function PopupElementClosure() { var HighlightAnnotationElement = ( function HighlightAnnotationElementClosure() { function HighlightAnnotationElement(parameters) { - var isRenderable = parameters.data.hasPopup; + var isRenderable = !!(parameters.data.hasPopup || + parameters.data.title || parameters.data.contents); AnnotationElement.call(this, parameters, isRenderable); } @@ -19029,6 +19054,11 @@ var HighlightAnnotationElement = ( */ render: function HighlightAnnotationElement_render() { this.container.className = 'highlightAnnotation'; + + if (!this.data.hasPopup) { + this._createPopup(this.container, null, this.data); + } + return this.container; } }); @@ -19043,7 +19073,8 @@ var HighlightAnnotationElement = ( var UnderlineAnnotationElement = ( function UnderlineAnnotationElementClosure() { function UnderlineAnnotationElement(parameters) { - var isRenderable = parameters.data.hasPopup; + var isRenderable = !!(parameters.data.hasPopup || + parameters.data.title || parameters.data.contents); AnnotationElement.call(this, parameters, isRenderable); } @@ -19057,6 +19088,11 @@ var UnderlineAnnotationElement = ( */ render: function UnderlineAnnotationElement_render() { this.container.className = 'underlineAnnotation'; + + if (!this.data.hasPopup) { + this._createPopup(this.container, null, this.data); + } + return this.container; } }); @@ -19070,7 +19106,8 @@ var UnderlineAnnotationElement = ( */ var SquigglyAnnotationElement = (function SquigglyAnnotationElementClosure() { function SquigglyAnnotationElement(parameters) { - var isRenderable = parameters.data.hasPopup; + var isRenderable = !!(parameters.data.hasPopup || + parameters.data.title || parameters.data.contents); AnnotationElement.call(this, parameters, isRenderable); } @@ -19084,6 +19121,11 @@ var SquigglyAnnotationElement = (function SquigglyAnnotationElementClosure() { */ render: function SquigglyAnnotationElement_render() { this.container.className = 'squigglyAnnotation'; + + if (!this.data.hasPopup) { + this._createPopup(this.container, null, this.data); + } + return this.container; } }); @@ -19098,7 +19140,8 @@ var SquigglyAnnotationElement = (function SquigglyAnnotationElementClosure() { var StrikeOutAnnotationElement = ( function StrikeOutAnnotationElementClosure() { function StrikeOutAnnotationElement(parameters) { - var isRenderable = parameters.data.hasPopup; + var isRenderable = !!(parameters.data.hasPopup || + parameters.data.title || parameters.data.contents); AnnotationElement.call(this, parameters, isRenderable); } @@ -19112,6 +19155,11 @@ var StrikeOutAnnotationElement = ( */ render: function StrikeOutAnnotationElement_render() { this.container.className = 'strikeoutAnnotation'; + + if (!this.data.hasPopup) { + this._createPopup(this.container, null, this.data); + } + return this.container; } }); @@ -19150,21 +19198,7 @@ var FileAttachmentAnnotationElement = ( trigger.addEventListener('dblclick', this._download.bind(this)); if (!this.data.hasPopup && (this.data.title || this.data.contents)) { - var popupElement = new PopupElement({ - container: this.container, - trigger: trigger, - color: this.data.color, - title: this.data.title, - contents: this.data.contents, - hideWrapper: true - }); - var popup = popupElement.render(); - - // Position the popup next to the FileAttachment annotation's - // container. - popup.style.left = this.container.style.width; - - this.container.appendChild(popup); + this._createPopup(this.container, trigger, this.data); } this.container.appendChild(trigger); @@ -48248,6 +48282,24 @@ var Annotation = (function AnnotationClosure() { } }, + /** + * Prepare the annotation for working with a popup in the display layer. + * + * @private + * @memberof Annotation + * @param {Dict} dict - The annotation's data dictionary + */ + _preparePopup: function Annotation_preparePopup(dict) { + if (!dict.has('C')) { + // Fall back to the default background color. + this.data.color = null; + } + + this.data.hasPopup = dict.has('Popup'); + this.data.title = stringToPDFString(dict.get('T') || ''); + this.data.contents = stringToPDFString(dict.get('Contents') || ''); + }, + loadResources: function Annotation_loadResources(keys) { return new Promise(function (resolve, reject) { this.appearance.dict.getAsync('Resources').then(function (resources) { @@ -48565,23 +48617,15 @@ var TextAnnotation = (function TextAnnotationClosure() { this.data.annotationType = AnnotationType.TEXT; - var dict = parameters.dict; if (this.data.hasAppearance) { this.data.name = 'NoIcon'; } else { this.data.rect[1] = this.data.rect[3] - DEFAULT_ICON_SIZE; this.data.rect[2] = this.data.rect[0] + DEFAULT_ICON_SIZE; - this.data.name = dict.has('Name') ? dict.get('Name').name : 'Note'; - } - - if (!dict.has('C')) { - // Fall back to the default background color. - this.data.color = null; + this.data.name = parameters.dict.has('Name') ? + parameters.dict.get('Name').name : 'Note'; } - - this.data.hasPopup = dict.has('Popup'); - this.data.title = stringToPDFString(dict.get('T') || ''); - this.data.contents = stringToPDFString(dict.get('Contents') || ''); + this._preparePopup(parameters.dict); } Util.inherit(TextAnnotation, Annotation, {}); @@ -48700,7 +48744,7 @@ var HighlightAnnotation = (function HighlightAnnotationClosure() { Annotation.call(this, parameters); this.data.annotationType = AnnotationType.HIGHLIGHT; - this.data.hasPopup = parameters.dict.has('Popup'); + this._preparePopup(parameters.dict); // PDF viewers completely ignore any border styles. this.data.borderStyle.setWidth(0); @@ -48716,7 +48760,7 @@ var UnderlineAnnotation = (function UnderlineAnnotationClosure() { Annotation.call(this, parameters); this.data.annotationType = AnnotationType.UNDERLINE; - this.data.hasPopup = parameters.dict.has('Popup'); + this._preparePopup(parameters.dict); // PDF viewers completely ignore any border styles. this.data.borderStyle.setWidth(0); @@ -48732,7 +48776,7 @@ var SquigglyAnnotation = (function SquigglyAnnotationClosure() { Annotation.call(this, parameters); this.data.annotationType = AnnotationType.SQUIGGLY; - this.data.hasPopup = parameters.dict.has('Popup'); + this._preparePopup(parameters.dict); // PDF viewers completely ignore any border styles. this.data.borderStyle.setWidth(0); @@ -48748,7 +48792,7 @@ var StrikeOutAnnotation = (function StrikeOutAnnotationClosure() { Annotation.call(this, parameters); this.data.annotationType = AnnotationType.STRIKEOUT; - this.data.hasPopup = parameters.dict.has('Popup'); + this._preparePopup(parameters.dict); // PDF viewers completely ignore any border styles. this.data.borderStyle.setWidth(0); @@ -48763,20 +48807,11 @@ var FileAttachmentAnnotation = (function FileAttachmentAnnotationClosure() { function FileAttachmentAnnotation(parameters) { Annotation.call(this, parameters); - var dict = parameters.dict; - var file = new FileSpec(dict.get('FS'), parameters.xref); + var file = new FileSpec(parameters.dict.get('FS'), parameters.xref); this.data.annotationType = AnnotationType.FILEATTACHMENT; this.data.file = file.serializable; - - if (!dict.has('C')) { - // Fall back to the default background color. - this.data.color = null; - } - - this.data.hasPopup = dict.has('Popup'); - this.data.title = stringToPDFString(dict.get('T') || ''); - this.data.contents = stringToPDFString(dict.get('Contents') || ''); + this._preparePopup(parameters.dict); } Util.inherit(FileAttachmentAnnotation, Annotation, {}); diff --git a/build/pdf.js b/build/pdf.js index d015e7043..292f7a31d 100644 --- a/build/pdf.js +++ b/build/pdf.js @@ -28,8 +28,8 @@ factory((root.pdfjsDistBuildPdf = {})); // Use strict in our context only - users might not want it 'use strict'; -var pdfjsVersion = '1.4.91'; -var pdfjsBuild = '41efb92'; +var pdfjsVersion = '1.4.93'; +var pdfjsBuild = '05917b6'; var pdfjsFilePath = typeof document !== 'undefined' && document.currentScript ? @@ -2703,6 +2703,43 @@ var AnnotationElement = (function AnnotationElementClosure() { return container; }, + /** + * Create a popup for the annotation's HTML element. This is used for + * annotations that do not have a Popup entry in the dictionary, but + * are of a type that works with popups (such as Highlight annotations). + * + * @private + * @param {HTMLSectionElement} container + * @param {HTMLDivElement|HTMLImageElement|null} trigger + * @param {Object} data + * @memberof AnnotationElement + */ + _createPopup: + function AnnotationElement_createPopup(container, trigger, data) { + // If no trigger element is specified, create it. + if (!trigger) { + trigger = document.createElement('div'); + trigger.style.height = container.style.height; + trigger.style.width = container.style.width; + container.appendChild(trigger); + } + + var popupElement = new PopupElement({ + container: container, + trigger: trigger, + color: data.color, + title: data.title, + contents: data.contents, + hideWrapper: true + }); + var popup = popupElement.render(); + + // Position the popup next to the annotation's container. + popup.style.left = container.style.width; + + container.appendChild(popup); + }, + /** * Render the annotation's HTML element in the empty container. * @@ -2831,20 +2868,7 @@ var TextAnnotationElement = (function TextAnnotationElementClosure() { image.dataset.l10nArgs = JSON.stringify({type: this.data.name}); if (!this.data.hasPopup) { - var popupElement = new PopupElement({ - container: this.container, - trigger: image, - color: this.data.color, - title: this.data.title, - contents: this.data.contents, - hideWrapper: true - }); - var popup = popupElement.render(); - - // Position the popup next to the Text annotation's container. - popup.style.left = image.style.width; - - this.container.appendChild(popup); + this._createPopup(this.container, image, this.data); } this.container.appendChild(image); @@ -3121,7 +3145,8 @@ var PopupElement = (function PopupElementClosure() { var HighlightAnnotationElement = ( function HighlightAnnotationElementClosure() { function HighlightAnnotationElement(parameters) { - var isRenderable = parameters.data.hasPopup; + var isRenderable = !!(parameters.data.hasPopup || + parameters.data.title || parameters.data.contents); AnnotationElement.call(this, parameters, isRenderable); } @@ -3135,6 +3160,11 @@ var HighlightAnnotationElement = ( */ render: function HighlightAnnotationElement_render() { this.container.className = 'highlightAnnotation'; + + if (!this.data.hasPopup) { + this._createPopup(this.container, null, this.data); + } + return this.container; } }); @@ -3149,7 +3179,8 @@ var HighlightAnnotationElement = ( var UnderlineAnnotationElement = ( function UnderlineAnnotationElementClosure() { function UnderlineAnnotationElement(parameters) { - var isRenderable = parameters.data.hasPopup; + var isRenderable = !!(parameters.data.hasPopup || + parameters.data.title || parameters.data.contents); AnnotationElement.call(this, parameters, isRenderable); } @@ -3163,6 +3194,11 @@ var UnderlineAnnotationElement = ( */ render: function UnderlineAnnotationElement_render() { this.container.className = 'underlineAnnotation'; + + if (!this.data.hasPopup) { + this._createPopup(this.container, null, this.data); + } + return this.container; } }); @@ -3176,7 +3212,8 @@ var UnderlineAnnotationElement = ( */ var SquigglyAnnotationElement = (function SquigglyAnnotationElementClosure() { function SquigglyAnnotationElement(parameters) { - var isRenderable = parameters.data.hasPopup; + var isRenderable = !!(parameters.data.hasPopup || + parameters.data.title || parameters.data.contents); AnnotationElement.call(this, parameters, isRenderable); } @@ -3190,6 +3227,11 @@ var SquigglyAnnotationElement = (function SquigglyAnnotationElementClosure() { */ render: function SquigglyAnnotationElement_render() { this.container.className = 'squigglyAnnotation'; + + if (!this.data.hasPopup) { + this._createPopup(this.container, null, this.data); + } + return this.container; } }); @@ -3204,7 +3246,8 @@ var SquigglyAnnotationElement = (function SquigglyAnnotationElementClosure() { var StrikeOutAnnotationElement = ( function StrikeOutAnnotationElementClosure() { function StrikeOutAnnotationElement(parameters) { - var isRenderable = parameters.data.hasPopup; + var isRenderable = !!(parameters.data.hasPopup || + parameters.data.title || parameters.data.contents); AnnotationElement.call(this, parameters, isRenderable); } @@ -3218,6 +3261,11 @@ var StrikeOutAnnotationElement = ( */ render: function StrikeOutAnnotationElement_render() { this.container.className = 'strikeoutAnnotation'; + + if (!this.data.hasPopup) { + this._createPopup(this.container, null, this.data); + } + return this.container; } }); @@ -3256,21 +3304,7 @@ var FileAttachmentAnnotationElement = ( trigger.addEventListener('dblclick', this._download.bind(this)); if (!this.data.hasPopup && (this.data.title || this.data.contents)) { - var popupElement = new PopupElement({ - container: this.container, - trigger: trigger, - color: this.data.color, - title: this.data.title, - contents: this.data.contents, - hideWrapper: true - }); - var popup = popupElement.render(); - - // Position the popup next to the FileAttachment annotation's - // container. - popup.style.left = this.container.style.width; - - this.container.appendChild(popup); + this._createPopup(this.container, trigger, this.data); } this.container.appendChild(trigger); diff --git a/build/pdf.worker.js b/build/pdf.worker.js index 89613e0a2..3f406b0d9 100644 --- a/build/pdf.worker.js +++ b/build/pdf.worker.js @@ -28,8 +28,8 @@ factory((root.pdfjsDistBuildPdfWorker = {})); // Use strict in our context only - users might not want it 'use strict'; -var pdfjsVersion = '1.4.91'; -var pdfjsBuild = '41efb92'; +var pdfjsVersion = '1.4.93'; +var pdfjsBuild = '05917b6'; var pdfjsFilePath = typeof document !== 'undefined' && document.currentScript ? @@ -40306,6 +40306,24 @@ var Annotation = (function AnnotationClosure() { } }, + /** + * Prepare the annotation for working with a popup in the display layer. + * + * @private + * @memberof Annotation + * @param {Dict} dict - The annotation's data dictionary + */ + _preparePopup: function Annotation_preparePopup(dict) { + if (!dict.has('C')) { + // Fall back to the default background color. + this.data.color = null; + } + + this.data.hasPopup = dict.has('Popup'); + this.data.title = stringToPDFString(dict.get('T') || ''); + this.data.contents = stringToPDFString(dict.get('Contents') || ''); + }, + loadResources: function Annotation_loadResources(keys) { return new Promise(function (resolve, reject) { this.appearance.dict.getAsync('Resources').then(function (resources) { @@ -40623,23 +40641,15 @@ var TextAnnotation = (function TextAnnotationClosure() { this.data.annotationType = AnnotationType.TEXT; - var dict = parameters.dict; if (this.data.hasAppearance) { this.data.name = 'NoIcon'; } else { this.data.rect[1] = this.data.rect[3] - DEFAULT_ICON_SIZE; this.data.rect[2] = this.data.rect[0] + DEFAULT_ICON_SIZE; - this.data.name = dict.has('Name') ? dict.get('Name').name : 'Note'; - } - - if (!dict.has('C')) { - // Fall back to the default background color. - this.data.color = null; + this.data.name = parameters.dict.has('Name') ? + parameters.dict.get('Name').name : 'Note'; } - - this.data.hasPopup = dict.has('Popup'); - this.data.title = stringToPDFString(dict.get('T') || ''); - this.data.contents = stringToPDFString(dict.get('Contents') || ''); + this._preparePopup(parameters.dict); } Util.inherit(TextAnnotation, Annotation, {}); @@ -40758,7 +40768,7 @@ var HighlightAnnotation = (function HighlightAnnotationClosure() { Annotation.call(this, parameters); this.data.annotationType = AnnotationType.HIGHLIGHT; - this.data.hasPopup = parameters.dict.has('Popup'); + this._preparePopup(parameters.dict); // PDF viewers completely ignore any border styles. this.data.borderStyle.setWidth(0); @@ -40774,7 +40784,7 @@ var UnderlineAnnotation = (function UnderlineAnnotationClosure() { Annotation.call(this, parameters); this.data.annotationType = AnnotationType.UNDERLINE; - this.data.hasPopup = parameters.dict.has('Popup'); + this._preparePopup(parameters.dict); // PDF viewers completely ignore any border styles. this.data.borderStyle.setWidth(0); @@ -40790,7 +40800,7 @@ var SquigglyAnnotation = (function SquigglyAnnotationClosure() { Annotation.call(this, parameters); this.data.annotationType = AnnotationType.SQUIGGLY; - this.data.hasPopup = parameters.dict.has('Popup'); + this._preparePopup(parameters.dict); // PDF viewers completely ignore any border styles. this.data.borderStyle.setWidth(0); @@ -40806,7 +40816,7 @@ var StrikeOutAnnotation = (function StrikeOutAnnotationClosure() { Annotation.call(this, parameters); this.data.annotationType = AnnotationType.STRIKEOUT; - this.data.hasPopup = parameters.dict.has('Popup'); + this._preparePopup(parameters.dict); // PDF viewers completely ignore any border styles. this.data.borderStyle.setWidth(0); @@ -40821,20 +40831,11 @@ var FileAttachmentAnnotation = (function FileAttachmentAnnotationClosure() { function FileAttachmentAnnotation(parameters) { Annotation.call(this, parameters); - var dict = parameters.dict; - var file = new FileSpec(dict.get('FS'), parameters.xref); + var file = new FileSpec(parameters.dict.get('FS'), parameters.xref); this.data.annotationType = AnnotationType.FILEATTACHMENT; this.data.file = file.serializable; - - if (!dict.has('C')) { - // Fall back to the default background color. - this.data.color = null; - } - - this.data.hasPopup = dict.has('Popup'); - this.data.title = stringToPDFString(dict.get('T') || ''); - this.data.contents = stringToPDFString(dict.get('Contents') || ''); + this._preparePopup(parameters.dict); } Util.inherit(FileAttachmentAnnotation, Annotation, {}); diff --git a/package.json b/package.json index f7e72d4b6..8d5abe8ed 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "pdfjs-dist", - "version": "1.4.91", + "version": "1.4.93", "main": "build/pdf.js", "description": "Generic build of Mozilla's PDF.js library.", "keywords": [