|
|
@@ -26,6 +26,7 @@ this.docHelper = this.docHelper || (() => {
|
|
|
const PRESERVED_SPACE_ELEMENT_ATTRIBUTE_NAME = "data-single-file-preserved-space-element";
|
|
|
const WIN_ID_ATTRIBUTE_NAME = "data-frame-tree-win-id";
|
|
|
const RESPONSIVE_IMAGE_ATTRIBUTE_NAME = "data-single-file-responsive-image";
|
|
|
+ const IMAGE_ATTRIBUTE_NAME = "data-single-file-image";
|
|
|
const INPUT_VALUE_ATTRIBUTE_NAME = "data-single-file-value";
|
|
|
|
|
|
return {
|
|
|
@@ -36,6 +37,7 @@ this.docHelper = this.docHelper || (() => {
|
|
|
preservedSpaceAttributeName,
|
|
|
removedContentAttributeName,
|
|
|
responsiveImagesAttributeName,
|
|
|
+ imagesAttributeName,
|
|
|
inputValueAttributeName
|
|
|
};
|
|
|
|
|
|
@@ -69,6 +71,7 @@ this.docHelper = this.docHelper || (() => {
|
|
|
canvasData: getCanvasData(doc),
|
|
|
fontsData: getFontsData(doc),
|
|
|
stylesheetContents: getStylesheetContents(doc),
|
|
|
+ responsiveImageData: getResponsiveImageData(doc, options),
|
|
|
imageData: getImageData(doc, options),
|
|
|
postersData: getPostersData(doc)
|
|
|
};
|
|
|
@@ -88,6 +91,7 @@ this.docHelper = this.docHelper || (() => {
|
|
|
doc.querySelectorAll("[" + preservedSpaceAttributeName(options.sessionId) + "]").forEach(element => element.removeAttribute(preservedSpaceAttributeName(options.sessionId)));
|
|
|
}
|
|
|
doc.querySelectorAll("[" + responsiveImagesAttributeName(options.sessionId) + "]").forEach(element => element.removeAttribute(responsiveImagesAttributeName(options.sessionId)));
|
|
|
+ doc.querySelectorAll("[" + imagesAttributeName(options.sessionId) + "]").forEach(element => element.removeAttribute(imagesAttributeName(options.sessionId)));
|
|
|
doc.querySelectorAll("[" + inputValueAttributeName(options.sessionId) + "]").forEach(element => element.removeAttribute(inputValueAttributeName(options.sessionId)));
|
|
|
}
|
|
|
|
|
|
@@ -95,6 +99,10 @@ this.docHelper = this.docHelper || (() => {
|
|
|
return RESPONSIVE_IMAGE_ATTRIBUTE_NAME + (sessionId ? "-" + sessionId : "");
|
|
|
}
|
|
|
|
|
|
+ function imagesAttributeName(sessionId) {
|
|
|
+ return IMAGE_ATTRIBUTE_NAME + (sessionId ? "-" + sessionId : "");
|
|
|
+ }
|
|
|
+
|
|
|
function preservedSpaceAttributeName(sessionId) {
|
|
|
return PRESERVED_SPACE_ELEMENT_ATTRIBUTE_NAME + (sessionId ? "-" + sessionId : "");
|
|
|
}
|
|
|
@@ -148,6 +156,28 @@ this.docHelper = this.docHelper || (() => {
|
|
|
}
|
|
|
|
|
|
function getImageData(doc, options) {
|
|
|
+ if (doc) {
|
|
|
+ const data = [];
|
|
|
+ doc.querySelectorAll("img[src]").forEach((imageElement, imageElementIndex) => {
|
|
|
+ imageElement.setAttribute(imagesAttributeName(options.sessionId), imageElementIndex);
|
|
|
+ let imageData;
|
|
|
+ if (imageElement.src) {
|
|
|
+ imageData = {
|
|
|
+ width: imageElement.width,
|
|
|
+ height: imageElement.height,
|
|
|
+ clientWidth: imageElement.clientWidth,
|
|
|
+ clientHeight: imageElement.clientHeight,
|
|
|
+ naturalWidth: imageElement.naturalWidth,
|
|
|
+ naturalHeight: imageElement.naturalHeight
|
|
|
+ };
|
|
|
+ }
|
|
|
+ data.push(imageData);
|
|
|
+ });
|
|
|
+ return data;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ function getResponsiveImageData(doc, options) {
|
|
|
if (doc) {
|
|
|
const data = [];
|
|
|
doc.querySelectorAll("picture, img[srcset]").forEach((element, elementIndex) => {
|