-
Notifications
You must be signed in to change notification settings - Fork 2
/
srcissors.js.map
1 lines (1 loc) · 55 KB
/
srcissors.js.map
1
{"version":3,"file":"./srcissors.js","mappings":"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","sources":["webpack://srcissors/webpack/universalModuleDefinition","webpack://srcissors/./src/crop.js","webpack://srcissors/./src/events.js","webpack://srcissors/./src/preview.js","webpack://srcissors/./src/srcissors.js","webpack://srcissors/external umd {\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\",\"amd\":\"jquery\",\"root\":\"jQuery\"}","webpack://srcissors/webpack/bootstrap","webpack://srcissors/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"srcissors\"] = factory(require(\"jquery\"));\n\telse\n\t\troot[\"srcissors\"] = factory(root[\"jQuery\"]);\n})(self, (__WEBPACK_EXTERNAL_MODULE__47__) => {\nreturn ","'use strict'\nconst $ = require('jquery')\nconst Preview = require('./preview')\nconst Events = require('./events')\n\nmodule.exports = class Crop {\n constructor ({\n arena, view, img, outline, url, fixedWidth, fixedHeight,\n minViewWidth, minViewHeight, minViewRatio, maxViewRatio, originalSize, crop,\n zoomStep, maxArea, actions, minResolution, surroundingImageOpacity,\n showSurroundingImage\n }) {\n // CSS classes\n this.onPreviewReady = this.onPreviewReady.bind(this)\n this.arena = arena\n this.view = view\n this.img = img\n this.outline = outline\n this.fixedWidth = fixedWidth\n this.fixedHeight = fixedHeight\n this.minViewWidth = minViewWidth\n this.minViewHeight = minViewHeight\n this.minViewRatio = minViewRatio\n this.maxViewRatio = maxViewRatio\n this.originalSize = originalSize\n this.actions = actions\n this.minResolution = minResolution\n this.surroundingImageOpacity = surroundingImageOpacity\n this.loadingCssClass = 'crop-view--is-loading'\n this.panningCssClass = 'crop-view--is-panning'\n this.outlineCssClass = 'crop-outline--active'\n\n // State\n this.isPanning = false\n this.initialCrop = crop\n\n // Events\n this.loadEvent = $.Callbacks()\n this.changeEvent = $.Callbacks()\n\n // Sets up the ready event and state\n this.initializeReadyState()\n\n // Confguration\n this.zoomInStep = zoomStep\n this.zoomOutStep = 1 / this.zoomInStep\n\n this.arenaWidth = this.arena.width()\n this.arenaHeight = this.arena.height()\n\n // todo: consider to calculate maxArea with regards to the\n // maximum space an image can within the area. That should\n // be more reliable.\n if (maxArea) this.maxArea = (this.arenaWidth * this.arenaHeight) * maxArea\n\n if (this.outline) this.setSurroundingImageVisibility(showSurroundingImage)\n\n this.preview = new Preview({\n onReady: this.onPreviewReady,\n img: this.img,\n outline: this.outline,\n opacity: this.surroundingImageOpacity\n })\n\n this.setImage(url)\n }\n\n initializeReadyState () {\n this.isReady = false\n if (this.readyEvent != null) {\n this.readyEvent.empty()\n }\n this.readyEvent = $.Callbacks('memory once')\n }\n\n setImage (url) {\n if (url === this.preview.url) return\n\n if (this.isInitialized) this.preview.reset()\n this.initializeReadyState()\n this.view.addClass(this.loadingCssClass)\n this.preview.setImage({url})\n }\n\n setSurroundingImageVisibility (visibility) {\n // visibility: always|panning|never\n // override opacity in crop-outline--active css class\n this.surroundingImageOpacity = parseFloat(this.surroundingImageOpacity || 0.2)\n\n if (visibility === 'always') {\n this.outline.css('opacity', 1.0)\n } else if (visibility === 'panning') {\n this.outline.css('opacity', null)\n } else { // 'never' default\n this.outline.css('opacity', 0)\n this.surroundingImageOpacity = 0\n }\n }\n\n reset () {\n if (!this.isReady) return\n\n this.resize({width: this.imageWidth, height: this.imageHeight})\n this.zoomAllOut()\n }\n\n onPreviewReady (previewImageSize) {\n this.checkRatio(previewImageSize)\n const {width, height} = this.originalSize || previewImageSize\n\n // console.log(this.originalSize, previewImageSize, {width, height})\n this.preview.updateImageDimensions({width, height})\n\n let keepDimension\n if (!this.isInitialized) {\n this.events = new Events({\n parent: this,\n view: this.view,\n actions: this.actions\n })\n }\n\n this.imageWidth = width\n this.imageHeight = height\n this.imageRatio = this.imageWidth / this.imageHeight\n const imageResolution = this.imageWidth * this.imageHeight\n\n if (this.minResolution && (this.minResolution > imageResolution)) {\n // If the minimal required resolution is bigger than the actual image\n // resolution, we ignore the configuration\n delete this.minResolution\n }\n\n if (this.minResolution) {\n // For any given image resolution with a minimal required resolution\n // we can calculate both, a minimal resolution and a maximal resolution\n const minRatioForResolution = this.minResolution / (this.imageHeight * this.imageHeight)\n if (!this.minViewRatio || (this.minViewRatio < minRatioForResolution)) {\n this.minViewRatio = minRatioForResolution\n }\n const maxRatioForResolution = (this.imageWidth * this.imageWidth) / this.minResolution\n if (!this.maxViewRatio || (this.maxViewRatio > maxRatioForResolution)) {\n this.maxViewRatio = maxRatioForResolution\n }\n }\n\n this.calcMaxMinDimensions()\n\n if (this.fixedWidth) { keepDimension = 'width' }\n if (this.fixedHeight) { keepDimension = 'height' }\n this.setViewDimensions({\n width: this.imageWidth,\n height: this.imageHeight,\n keepDimension\n })\n\n // ready state\n this.isReady = true\n this.view.removeClass(this.loadingCssClass)\n\n if (!this.isInitialized && (this.initialCrop != null)) {\n this.setCrop(this.initialCrop)\n } else {\n this.zoomAllOut()\n this.center()\n }\n\n this.isInitialized = true\n this.readyEvent.fire()\n this.loadEvent.fire()\n }\n\n setCrop ({x, y, width, height}) {\n if (!this.isReady) {\n this.on('ready', () => this.setCrop({x, y, width, height}))\n return\n }\n\n this.resize({width, height})\n\n const factor = this.viewWidth / width\n const previewWidth = this.imageWidth * factor\n\n this.zoom({width: previewWidth})\n this.pan({x: x * factor, y: y * factor})\n }\n\n getCrop () {\n const factor = this.preview.width / this.imageWidth\n const crop = {\n x: this.preview.x / factor,\n y: this.preview.y / factor,\n width: this.viewWidth / factor,\n height: this.viewHeight / factor\n }\n\n this.roundCrop(crop)\n this.validateCrop(crop)\n return crop\n }\n\n roundCrop (crop) {\n for (const name in crop) {\n const value = crop[name]\n crop[name] = Math.round(value)\n }\n }\n\n validateCrop (crop) {\n const {x, y, width, height} = crop\n if (x < 0) crop.x = 0\n if (y < 0) crop.y = 0\n\n if ((x + width) > this.imageWidth) {\n crop.width = this.imageWidth - x\n }\n\n if ((y + height) > this.imageHeight) {\n crop.height = this.imageHeight - y\n }\n\n return crop\n }\n\n setRatio (ratio, keepDimension) {\n let height, width\n if (!this.isReady) {\n this.on('ready', () => this.setRatio(ratio, keepDimension))\n return\n }\n\n ratio = this.enforceValidRatio(ratio)\n\n if (keepDimension === 'height') {\n height = this.viewHeight\n width = height * ratio\n } else {\n width = this.viewWidth\n height = width / ratio\n }\n\n this.resizeFocusPoint = this.getFocusPoint()\n return this.resize({width, height})\n }\n\n // Event handling\n // --------------\n\n onPan (data) {\n if (!this.isPanning) {\n this.isPanning = true\n this.arena.addClass(this.panningCssClass)\n this.outline.addClass(this.outlineCssClass)\n }\n\n const newX = data.startX - data.dx\n const newY = data.startY - data.dy\n this.pan({x: newX, y: newY})\n }\n\n onPanEnd () {\n this.isPanning = false\n this.arena.removeClass(this.panningCssClass)\n return this.outline.removeClass(this.outlineCssClass)\n }\n\n onDoubleClick ({pageX, pageY}) {\n const {left, top} = this.view[0].getBoundingClientRect()\n const viewX = pageX - left\n const viewY = pageY - top\n this.zoomIn({viewX, viewY})\n }\n\n onResize ({position, dx, dy}) {\n if (!this.isResizing) {\n this.isResizing = true\n this.resizeFocusPoint = this.getFocusPoint()\n }\n\n if (['top', 'bottom'].includes(position)) {\n dy = 2 * dy // Because it's centered we need to change width by factor two\n this.resize({width: this.viewWidth, height: this.viewHeight + dy, keepDimension: 'height'})\n } else if (['left', 'right'].includes(position)) {\n dx = 2 * dx\n this.resize({width: this.viewWidth + dx, height: this.viewHeight, keepDimension: 'width'})\n }\n }\n\n onResizeEnd () {\n this.isResizing = false\n this.resizeFocusPoint = undefined\n }\n\n resize ({width, height, keepDimension}) {\n this.setViewDimensions({width, height, keepDimension})\n\n // Update view center of focus point\n if (this.resizeFocusPoint) {\n this.resizeFocusPoint.viewX = this.viewWidth / 2\n this.resizeFocusPoint.viewY = this.viewHeight / 2\n }\n\n // Ensure dimensions and focus\n this.zoom({\n width: this.preview.width,\n height: this.preview.height,\n focusPoint: this.resizeFocusPoint\n })\n }\n\n setViewDimensions ({width, height, keepDimension}) {\n if (this.maxArea) {\n ({width, height} = this.enforceMaxArea({width, height, keepDimension}))\n }\n\n ({width, height} = this.enforceViewDimensions({width, height, keepDimension}))\n\n this.view.css({width, height})\n this.viewWidth = width\n this.viewHeight = height\n this.viewRatio = width / height\n\n if (this.minResolution) {\n const minZoomPixelWidth = Math.sqrt(this.minResolution * this.viewRatio)\n const minZoomPixelHeight = Math.sqrt(this.minResolution / this.viewRatio)\n this.maxImageWidth = (this.viewWidth / minZoomPixelWidth) * this.imageWidth\n this.maxImageHeight = (this.viewHeight / minZoomPixelHeight) * this.imageHeight\n }\n\n this.fireChange()\n }\n\n // Update view\n // -----------\n\n zoomAllOut () {\n if (this.isWidthRestricting()) {\n this.zoom({width: this.viewWidth})\n } else {\n this.zoom({height: this.viewHeight})\n }\n }\n\n zoomIn (params) {\n if (params == null) { params = {} }\n if (this.isWidthRestricting()) {\n params.width = this.preview.width * this.zoomInStep\n } else {\n params.height = this.preview.height * this.zoomInStep\n }\n\n this.zoom(params)\n }\n\n zoomOut (params) {\n if (params == null) { params = {} }\n if (this.isWidthRestricting()) {\n params.width = this.preview.width * this.zoomOutStep\n } else {\n params.height = this.preview.height * this.zoomOutStep\n }\n\n this.zoom(params)\n }\n\n zoom ({width, height, viewX, viewY, focusPoint}) {\n if (focusPoint == null) { focusPoint = this.getFocusPoint({viewX, viewY}) }\n\n ({width, height} = this.enforceZoom({width, height}))\n if (width != null) {\n this.preview.setWidth(width)\n this.fireChange()\n } else if (height != null) {\n this.preview.setHeight(height)\n this.fireChange()\n }\n\n this.focus(focusPoint)\n }\n\n // returns {Object} e.g. percentX: 0.2, percentY: 0.5\n getFocusPoint (param) {\n if (param == null) { param = {} }\n let {viewX, viewY} = param\n if (viewX == null) { viewX = this.viewWidth / 2 }\n if (viewY == null) { viewY = this.viewHeight / 2 }\n const x = this.preview.x + viewX\n const y = this.preview.y + viewY\n const percentX = x / this.preview.width\n const percentY = y / this.preview.height\n return {percentX, percentY, viewX, viewY}\n }\n\n focus ({percentX, percentY, viewX, viewY}) {\n let x = this.preview.width * percentX\n let y = this.preview.height * percentY\n x = x - viewX\n y = y - viewY\n\n this.pan({x, y})\n }\n\n center () {\n const newX = (this.preview.width - this.viewWidth) / 2\n const newY = (this.preview.height - this.viewHeight) / 2\n this.pan({x: newX, y: newY})\n }\n\n // @param { Object }\n // - x {Number} pixel to pan to the left\n // - y {Number} pixels to pan to the top\n pan (data) {\n data = this.enforceXy(data)\n this.preview.pan(data.x, data.y)\n this.fireChange()\n }\n\n // Validations\n // -----------\n\n enforceXy ({x, y}) {\n if (x > (this.preview.width - this.viewWidth)) {\n x = this.preview.width - this.viewWidth\n }\n\n if (x < 0) x = 0\n\n\n if (y > (this.preview.height - this.viewHeight)) {\n y = this.preview.height - this.viewHeight\n }\n\n if (y < 0) y = 0\n\n return {x, y}\n }\n\n enforceZoom ({width, height}) {\n\n if ((width != null) && this.maxImageWidth && (width > this.maxImageWidth)) {\n // prevent zooming in past the required resolution defined by minResolution\n return {width: this.maxImageWidth}\n }\n\n if ((width != null) && (width < this.viewWidth)) {\n // prevent zooming out past covering the view completely\n return {width: this.viewWidth}\n }\n\n if ((height != null) && this.maxImageHeight && (height > this.maxImageHeight)) {\n // prevent zooming in past the required resolution defined by minResolution\n return {height: this.maxImageHeight}\n }\n\n if ((height != null) && (height < this.viewHeight)) {\n // prevent zooming out past covering the view completely\n return {height: this.viewHeight}\n }\n\n return {width, height}\n }\n\n calcMaxMinDimensions () {\n this.maxWidth = this.min([this.arenaWidth, this.imageWidth])\n this.maxHeight = this.min([this.arenaHeight, this.imageHeight])\n this.minWidth = this.minViewWidth || 0\n this.minHeight = this.minViewHeight || 0\n\n if (this.fixedWidth) this.maxWidth = (this.minWidth = this.fixedWidth)\n if (this.fixedHeight) this.maxHeight = (this.minHeight = this.fixedHeight)\n }\n\n areDimensionsValid ({width, height, keepDimension}) {\n const ratio = width / height\n\n const invalid =\n (width < this.minWidth) ||\n (width > this.maxWidth) ||\n (height < this.minHeight) ||\n (height > this.maxHeight) ||\n (ratio < this.minViewRatio) ||\n (ratio > this.maxViewRatio)\n\n return !invalid\n }\n\n isValidRatio (ratio) {\n return !((ratio < this.minViewRatio) || (ratio > this.maxViewRatio))\n }\n\n enforceValidRatio (ratio) {\n if (ratio < this.minViewRatio) return this.minViewRatio\n if (ratio > this.maxViewRatio) return this.maxViewRatio\n return ratio\n }\n\n enforceViewDimensions ({width, height, keepDimension}) {\n let newHeight, newWidth, ratio\n if (width < this.minWidth) newWidth = this.minWidth\n if (width > this.maxWidth) newWidth = this.maxWidth\n if (height < this.minHeight) newHeight = this.minHeight\n if (height > this.maxHeight) newHeight = this.maxHeight\n\n if (keepDimension) {\n if (newWidth) width = newWidth\n if (newHeight) height = newHeight\n\n // check max/min ratios\n ratio = width / height\n if (!this.isValidRatio(ratio)) {\n ratio = this.enforceValidRatio(ratio);\n ({width, height} = this.getRatioBox({ratio, width, height, keepDimension}))\n if ((width > this.arenaWidth) || (height > this.arenaHeight)) {\n ({width, height} = this.centerAlign(this.maxWidth, this.maxHeight, ratio))\n }\n }\n\n } else if (newWidth || newHeight) {\n ratio = this.enforceValidRatio(width / height);\n ({width, height} = this.centerAlign(this.maxWidth, this.maxHeight, ratio))\n }\n\n return {width, height}\n }\n\n enforceMaxArea ({width, height, keepDimension}) {\n let ratio = width / height\n\n if (keepDimension === 'width') {\n height = this.maxArea / width\n ratio = width / height\n } else if (keepDimension === 'height') {\n width = this.maxArea / height\n ratio = width / height\n } else { // keep ratio\n width = Math.sqrt(this.maxArea * ratio)\n height = width / ratio\n }\n\n if (!this.isValidRatio(ratio)) {\n ratio = this.enforceValidRatio(ratio)\n width = Math.sqrt(this.maxArea * ratio)\n height = width / ratio\n }\n\n return {width, height}\n }\n\n checkRatio (previewImageSize) {\n if (this.originalSize) {\n const expectedRatio = this.originalSize.width / this.originalSize.height\n const actualRatio = previewImageSize.width / previewImageSize.height\n const percentageChange = ((actualRatio - expectedRatio) / expectedRatio) * 100\n if (Math.abs(percentageChange) > 1) {\n throw new Error(`srcissors: Displayed image has a different image ratio than the ` +\n `one configured in 'originalRatio': ${expectedRatio} vs ${actualRatio}`)\n }\n }\n }\n\n // Calculations\n // ------------\n //\n // Ratio: width / height\n // Tall < 1 (Square) < Wide\n // (A ratio less than one is a tall image format and\n // a ratio greater than one is a wide image format)\n\n // Check if the width or height is restricting\n isWidthRestricting () {\n return this.viewRatio >= this.imageRatio\n }\n\n getRatioBox ({ratio, width, height, keepDimension}) {\n if ((keepDimension === 'width') || (height == null)) {\n height = width / ratio\n } else if ((keepDimension === 'height') || (width == null)) {\n width = height * ratio\n } else {\n height = width / ratio\n }\n\n return {width, height}\n }\n\n centerAlign (areaWidth, areaHeight, ratio) {\n let height, width, x, y\n if ((areaWidth / areaHeight) > ratio) {\n width = areaHeight * ratio\n x = (areaWidth - width) / 2\n } else {\n height = areaWidth / ratio\n y = (areaHeight - height) / 2\n }\n\n // return\n return {\n x: x || 0,\n y: y || 0,\n width: width || areaWidth,\n height: height || areaHeight\n }\n }\n\n min (array) {\n let min = array[0]\n for (const number of array) {\n if (number < min) min = number\n }\n\n return min\n }\n\n // Events\n // ------\n\n on (name, callback) {\n return this[`${name}Event`].add(callback)\n }\n\n off (name, callback) {\n return this[`${name}Event`].remove(callback)\n }\n\n // Debounce change events so they are not fired more\n // than once per tick.\n fireChange () {\n if (this.changeDispatch != null) return\n\n this.changeDispatch = setTimeout(() => {\n this.changeDispatch = undefined\n this.changeEvent.fire(this.getCrop())\n }, 0)\n }\n\n // Development helpers\n // -------------------\n\n debug () {\n const r = num => Math.round(num * 10) / 10\n\n const obj = {\n arena: `${r(this.arenaWidth)}x${r(this.arenaHeight)}`,\n view: `${r(this.viewWidth)}x${r(this.viewHeight)}`,\n image: `${r(this.imageWidth)}x${r(this.imageHeight)}`,\n preview: `${r(this.preview.width)}x${r(this.preview.height)}`,\n previewXy: `${r(this.preview.x)}x${r(this.preview.y)}`\n }\n\n console.log(obj) // eslint-disable-line no-console\n return obj\n }\n}\n","'use strict'\nconst $ = require('jquery')\n\nconst getPageCoordinates = function (event) {\n if (event.type.includes('touch')) {\n return {\n pageX: event.originalEvent.changedTouches[0].pageX,\n pageY: event.originalEvent.changedTouches[0].pageY\n }\n }\n return {pageX: event.pageX, pageY: event.pageY}\n}\n\nmodule.exports = class Events {\n constructor ({parent, view, horizontal, vertical, actions}) {\n this.parent = parent\n this.view = view\n this.doubleClickThreshold = 300\n\n // setup events\n if (actions.pan) { this.pan() }\n if (actions.zoomOnDoubleClick) { this.doubleClick() }\n if (actions.resize) {\n this.resizeView({\n horizontal: actions.resizeHorizontal,\n vertical: actions.resizeVertical\n })\n }\n\n this.preventBrowserDragDrop()\n this.responsiveArena()\n }\n\n pan () {\n const $doc = $(document)\n this.view.on('mousedown.srcissors touchstart.srcissors', (e1) => {\n const panData = {\n startX: this.parent.preview.x,\n startY: this.parent.preview.y\n }\n\n e1.preventDefault()\n $doc.on('mousemove.srcissors-pan touchmove.srcissors-pan', (e2) => {\n const {pageX, pageY} = getPageCoordinates(e2)\n const {pageX: prevPageX, pageY: prevPageY} = getPageCoordinates(e1)\n panData.dx = pageX - prevPageX\n panData.dy = pageY - prevPageY\n this.parent.onPan(panData)\n }).on('mouseup.srcissors-pan touchend.srcissors-pan', () => {\n $doc.off('mouseup.srcissors-pan touchend.srcissors-pan')\n $doc.off('mousemove.srcissors-pan touchmove.srcissors-pan')\n\n // only trigger panEnd if pan has been called\n if (panData.dx != null) this.parent.onPanEnd()\n })\n })\n }\n\n doubleClick () {\n let lastClick\n\n this.view.on('mousedown.srcissors touchstart.srcissors', event => {\n const now = new Date().getTime()\n if (lastClick && (lastClick > (now - this.doubleClickThreshold))) {\n this.parent.onDoubleClick(getPageCoordinates(event))\n }\n lastClick = now\n })\n }\n\n preventBrowserDragDrop () {\n this.view.on('dragstart.srcissors', () => false)\n }\n\n // Resize View\n // -----------\n\n resizeView ({horizontal, vertical}) {\n const $template = $('<div>')\n $template.addClass('resize-handler')\n\n let positions = []\n if (horizontal) positions = positions.concat(['right', 'left'])\n if (vertical) positions = positions.concat(['top', 'bottom'])\n\n positions.forEach(position => {\n const $handler = $template.clone()\n $handler.addClass(`resize-handler-${position}`)\n $handler.on('mousedown.srcissors touchstart.srcissors', this.getResizeMouseDown(position))\n\n this.view.append($handler)\n })\n }\n\n getResizeMouseDown (position) {\n const $doc = $(document)\n\n return (event) => {\n let {pageX: lastX, pageY: lastY} = getPageCoordinates(event)\n event.stopPropagation()\n\n $doc.on('mousemove.srcissors-resize touchmove.srcissors-resize', e2 => {\n let dx, dy\n const {pageX, pageY} = getPageCoordinates(e2)\n switch (position) {\n case 'top': case 'bottom':\n dy = pageY - lastY\n if (position === 'top') { dy = -dy }\n lastY = pageY\n break\n case 'left': case 'right':\n dx = pageX - lastX\n if (position === 'left') { dx = -dx }\n lastX = pageX\n break\n }\n\n this.parent.onResize({position, dx, dy})\n }).on('mouseup.srcissors-resize touchend.srcissors-resize', () => {\n $doc.off('mouseup.srcissors-resize touchmove.srcissors-resize')\n $doc.off('mousemove.srcissors-resize touchend.srcissors-resize')\n\n // only trigger panEnd if pan has been called\n this.parent.onResizeEnd({position})\n })\n }\n }\n\n responsiveArena () {}\n}\n\n// $(window).on('resize', (event) => console.log 'on window resize')\n","'use strict'\nconst $ = require('jquery')\n\nmodule.exports = class Preview {\n\n constructor ({onReady, img, opacity, outline}) {\n this.onReady = onReady\n this.img = img\n this.opacity = opacity\n this.outline = outline\n this.x = (this.y = 0)\n this.width = (this.height = 0)\n\n this.img.on('load', () => {\n const width = this.img.width()\n const height = this.img.height()\n this.ratio = width / height\n\n this.onReady({width, height})\n this.img.show()\n })\n }\n\n setImage ({url}) {\n this.url = url\n this.img.attr('src', this.url)\n if (this.outline) this.setBackgroundImage({url: this.url})\n }\n\n setBackgroundImage ({url}) {\n if (this.opacity > 0) {\n const bgImg = $('<img>').css({opacity: this.opacity}).attr('src', url)\n this.outline.append(bgImg)\n }\n }\n\n reset () {\n this.url = undefined\n this.x = (this.y = 0)\n this.width = (this.height = 0)\n this.img.attr('src', '')\n this.img.css({width: '', height: '', transform: ''})\n if (this.outline) this.outline.css({transform: ''}).html('')\n }\n\n setWidth (width) {\n this.img.css({width: `${width}px`, height: 'auto'})\n const height = width / this.ratio\n this.updateImageDimensions({width, height})\n }\n\n setHeight (height) {\n this.img.css({width: 'auto', height: `${height}px`})\n const width = height * this.ratio\n this.updateImageDimensions({width, height})\n }\n\n updateImageDimensions ({width, height}) {\n this.width = width\n this.height = height\n if (this.outline) this.outline.css({width: `${this.width}px`, height: `${this.height}px`})\n }\n\n pan (x1, y1) {\n // Without rounding some numbers would not be set to css.\n // e.g: '-5.14957320384e-14'\n this.x = x1\n this.y = y1\n const x = Math.round(this.x)\n const y = Math.round(this.y)\n this.img.css({transform: `translate(-${x}px, -${y}px)`})\n if (this.outline) this.outline.css({transform: `translate(-${x}px, -${y}px)`})\n }\n}\n\n","'use strict'\nconst $ = require('jquery')\nconst Crop = require('./crop')\n\nmodule.exports = {\n new ({\n arena, url, fixedWidth, fixedHeight, minWidth, minHeight,\n minRatio, maxRatio, maxArea, originalSize, zoomStep, crop, actions, minResolution,\n surroundingImageOpacity, showSurroundingImage\n }) {\n arena = $(arena)\n const view = arena.find('.crop-view')\n const preview = view.find('.crop-preview')\n const img = $('<img>')\n preview.append(img)\n let outline = view.find('.crop-outline')\n if (!outline.length) { outline = undefined }\n\n const allowedActions = {\n pan: true,\n zoomOnDoubleClick: true,\n resize: true,\n resizeHorizontal: !fixedWidth,\n resizeVertical: !fixedHeight\n }\n\n $.extend(allowedActions, actions)\n\n if (zoomStep == null) { zoomStep = 1.25 }\n\n if (minWidth == null) { minWidth = 50 }\n if (minHeight == null) { minHeight = 50 }\n\n return new Crop({\n url, // {String}\n crop, // {Object} Set an inital crop. This is the same as calling setCrop()\n arena, // {jQuery Element}\n view, // {jQuery Element}\n img, // {jQuery Element}\n outline, // {jQuery Element or undefined}\n showSurroundingImage, // {String} always|panning|never\n surroundingImageOpacity, // {Number} e.g. in the 0.0 - 1.0 range\n fixedWidth, // {Number} e.g. 300\n fixedHeight, // {Number} e.g. 500\n minViewWidth: minWidth, // {Number} e.g. 100\n minViewHeight: minHeight, // {Number} e.g. 100\n minViewRatio: minRatio, // {Number} e.g. 1.5/2\n maxViewRatio: maxRatio, // {Number} e.g. 2/1\n maxArea, // {Number} 0.8 -> max 80% of arena area are covered by the preview\n originalSize, // {Object} Original image size, can be used to display a downscaled\n // version of the image in the cropping interface, but use the original\n // size for crop attributes; e.g. {width: 4000, height: 3000}\n zoomStep, // {Number} e.g. 1.25 -> 125%\n actions: allowedActions,\n minResolution\n })\n }\n}\n","module.exports = __WEBPACK_EXTERNAL_MODULE__47__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(505);\n"],"names":["root","factory","exports","module","require","define","amd","self","__WEBPACK_EXTERNAL_MODULE__47__","_typeof","obj","Symbol","iterator","constructor","prototype","_arrayLikeToArray","arr","len","length","i","arr2","Array","_defineProperties","target","props","descriptor","enumerable","configurable","writable","Object","defineProperty","key","input","hint","prim","toPrimitive","undefined","res","call","TypeError","String","_toPrimitive","$","Preview","Events","Crop","_ref","arena","view","img","outline","url","fixedWidth","fixedHeight","minViewWidth","minViewHeight","minViewRatio","maxViewRatio","originalSize","crop","zoomStep","maxArea","actions","minResolution","surroundingImageOpacity","showSurroundingImage","instance","Constructor","_classCallCheck","this","onPreviewReady","bind","loadingCssClass","panningCssClass","outlineCssClass","isPanning","initialCrop","loadEvent","Callbacks","changeEvent","initializeReadyState","zoomInStep","zoomOutStep","arenaWidth","width","arenaHeight","height","setSurroundingImageVisibility","preview","onReady","opacity","setImage","protoProps","value","isReady","readyEvent","empty","isInitialized","reset","addClass","visibility","parseFloat","css","resize","imageWidth","imageHeight","zoomAllOut","previewImageSize","checkRatio","keepDimension","_ref2","updateImageDimensions","events","parent","imageRatio","imageResolution","minRatioForResolution","maxRatioForResolution","calcMaxMinDimensions","setViewDimensions","removeClass","center","setCrop","fire","_ref3","_this","x","y","factor","viewWidth","previewWidth","zoom","pan","on","viewHeight","roundCrop","validateCrop","name","Math","round","ratio","_this2","enforceValidRatio","resizeFocusPoint","getFocusPoint","setRatio","data","newX","startX","dx","newY","startY","dy","_ref4","pageX","pageY","_this$view$0$getBound","getBoundingClientRect","viewX","left","viewY","top","zoomIn","_ref5","position","isResizing","includes","_ref6","focusPoint","_ref7","_this$enforceMaxArea","enforceMaxArea","_this$enforceViewDime","enforceViewDimensions","viewRatio","minZoomPixelWidth","sqrt","minZoomPixelHeight","maxImageWidth","maxImageHeight","fireChange","isWidthRestricting","params","_ref8","_this$enforceZoom","enforceZoom","setWidth","setHeight","focus","param","_param","percentX","percentY","_ref9","enforceXy","_ref10","_ref11","maxWidth","min","maxHeight","minWidth","minHeight","_ref12","_ref13","newHeight","newWidth","isValidRatio","_this$getRatioBox","getRatioBox","_this$centerAlign","centerAlign","_this$centerAlign2","_ref14","expectedRatio","actualRatio","percentageChange","abs","Error","concat","_ref15","areaWidth","areaHeight","array","_step","_iterator","o","allowArrayLike","it","isArray","minLen","n","toString","slice","from","test","_unsupportedIterableToArray","F","s","done","e","_e","f","err","normalCompletion","didErr","step","next","_e2","return","_createForOfIteratorHelper","number","callback","add","remove","_this3","changeDispatch","setTimeout","getCrop","r","num","image","previewXy","console","log","getPageCoordinates","event","type","originalEvent","changedTouches","horizontal","vertical","doubleClickThreshold","zoomOnDoubleClick","doubleClick","resizeView","resizeHorizontal","resizeVertical","preventBrowserDragDrop","responsiveArena","$doc","document","e1","panData","preventDefault","e2","_getPageCoordinates","_getPageCoordinates2","prevPageX","prevPageY","onPan","off","onPanEnd","lastClick","now","Date","getTime","onDoubleClick","$template","positions","forEach","$handler","clone","getResizeMouseDown","append","_this4","_getPageCoordinates3","lastX","lastY","stopPropagation","_getPageCoordinates4","onResize","onResizeEnd","show","attr","setBackgroundImage","bgImg","transform","html","x1","y1","new","minRatio","maxRatio","find","allowedActions","extend","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__"],"sourceRoot":""}