"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var node_parser_1 = require("./node-parser"); var logger_1 = require("../core/logger"); var parser_1 = require("../css/syntax/parser"); var tokenizer_1 = require("../css/syntax/tokenizer"); var counter_1 = require("../css/types/functions/counter"); var list_style_type_1 = require("../css/property-descriptors/list-style-type"); var index_1 = require("../css/index"); var quotes_1 = require("../css/property-descriptors/quotes"); var IGNORE_ATTRIBUTE = 'data-html2canvas-ignore'; var DocumentCloner = /** @class */ (function () { function DocumentCloner(element, options) { this.options = options; this.scrolledElements = []; this.referenceElement = element; this.counters = new counter_1.CounterState(); this.quoteDepth = 0; if (!element.ownerDocument) { throw new Error('Cloned element does not have an owner document'); } this.documentElement = this.cloneNode(element.ownerDocument.documentElement); } DocumentCloner.prototype.toIFrame = function (ownerDocument, windowSize) { var _this = this; var iframe = createIFrameContainer(ownerDocument, windowSize); if (!iframe.contentWindow) { return Promise.reject("Unable to find iframe window"); } var scrollX = ownerDocument.defaultView.pageXOffset; var scrollY = ownerDocument.defaultView.pageYOffset; var cloneWindow = iframe.contentWindow; var documentClone = cloneWindow.document; /* Chrome doesn't detect relative background-images assigned in inline