'use strict'; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _CanvasRenderer = require('./renderer/CanvasRenderer'); var _CanvasRenderer2 = _interopRequireDefault(_CanvasRenderer); var _Logger = require('./Logger'); var _Logger2 = _interopRequireDefault(_Logger); var _Window = require('./Window'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var html2canvas = function html2canvas(element, conf) { var config = conf || {}; var logger = new _Logger2.default(typeof config.logging === 'boolean' ? config.logging : true); logger.log('html2canvas ' + "$npm_package_version"); if (process.env.NODE_ENV !== 'production' && typeof config.onrendered === 'function') { logger.error('onrendered option is deprecated, html2canvas returns a Promise with the canvas as the value'); } var ownerDocument = element.ownerDocument; if (!ownerDocument) { return Promise.reject('Provided element is not within a Document'); } var defaultView = ownerDocument.defaultView; var defaultOptions = { async: true, allowTaint: false, backgroundColor: '#ffffff', imageTimeout: 15000, logging: true, proxy: null, removeContainer: true, foreignObjectRendering: false, scale: defaultView.devicePixelRatio || 1, target: new _CanvasRenderer2.default(config.canvas), useCORS: false, windowWidth: defaultView.innerWidth, windowHeight: defaultView.innerHeight, scrollX: defaultView.pageXOffset, scrollY: defaultView.pageYOffset }; var result = (0, _Window.renderElement)(element, _extends({}, defaultOptions, config), logger); if (process.env.NODE_ENV !== 'production') { return result.catch(function (e) { logger.error(e); throw e; }); } return result; }; html2canvas.CanvasRenderer = _CanvasRenderer2.default; module.exports = html2canvas;