|
@@ -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, {});
|