/*! Cropper.js v2.0.0-rc.2 | (c) 2015-present Chen Fengyuan | MIT */
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@cropper/utils'), require('@cropper/elements')) :
typeof define === 'function' && define.amd ? define(['exports', '@cropper/utils', '@cropper/elements'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.Cropper = {}, global.CropperUtils, global.CropperElements));
})(this, (function (exports, utils, elements) { 'use strict';
var DEFAULT_TEMPLATE = (''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ '');
const REGEXP_ALLOWED_ELEMENTS = /^img|canvas$/;
const REGEXP_BLOCKED_TAGS = /<(\/?(?:script|style)[^>]*)>/gi;
const DEFAULT_OPTIONS = {
template: DEFAULT_TEMPLATE,
};
elements.CropperCanvas.$define();
elements.CropperCrosshair.$define();
elements.CropperGrid.$define();
elements.CropperHandle.$define();
elements.CropperImage.$define();
elements.CropperSelection.$define();
elements.CropperShade.$define();
elements.CropperViewer.$define();
class Cropper {
constructor(element, options) {
this.options = DEFAULT_OPTIONS;
if (utils.isString(element)) {
element = document.querySelector(element);
}
if (!utils.isElement(element) || !REGEXP_ALLOWED_ELEMENTS.test(element.localName)) {
throw new Error('The first argument is required and must be an
or