# Changelog

## 1.5.7 (May 23, 2020)

- Improve container resizing (#636).
- Improve touch device detection (#614).

## 1.5.6 (Oct 4, 2019)

- Improve event type determining for iOS 13+ (#571).

## 1.5.5 (Aug 3, 2019)

- Clone the image's `crossOrigin` attribute always even though the `checkCrossOrigin` is set to `false` (#535).
- Improve browser environment detecting (#554).

## 1.5.4 (Jul 20, 2019)

- Avoid removing the events of the original image.
- Avoid requesting any Data URLs by XMLHttpRequest for better performance (#526).
- Add an `alt` attribute to all internal images for better accessibility (#548).
- Transform `enum`s to `type`s from the definition files for TypeScript (#550).

## 1.5.3 (Jul 10, 2019)

- Compute the size of the image for all browsers that use WebKit as the layout engine in iOS devices, such as Safari and in-app browsers (#544).

## 1.5.2 (Jun 30, 2019)

- Alway add a timestamp to the URL of a cross-origin image (#519).

## 1.5.1 (Mar 10, 2019)

- Revert the minimum container width from `300` to `200`.
- Revert the minimum container height from `150` to `100`.

## 1.5.0 (Mar 10, 2019)

- Add `passive: false` and `capture: true` to wheel event for better performance.
- Improve touch event binding.
- Ignore the pointer events are not triggered by the primary button.
- Fix typed array spreading error in IE or Safari 9.
- Fix the RegExp for the Safari browser detecting to ignore Chrome (#478).

## 1.4.3 (Oct 24, 2018)

- Ignore range error when the image does not have correct Exif information

## 1.4.2 (Oct 15, 2018)

- Read orientation only when it is a JPEG image.
- Improve cropper instance storage to avoid side effect (#394).
- Fix parameter error of `Object.assign` in iOS devices (#432).
- Improve typed array loop for better performance (#435).

## 1.4.1 (Jul 15, 2018)

- Not to restrict the canvas position when it is not cropped.
- Fix wrong crop box size in view mode 1 and 2 (#381).

## 1.4.0 (Jun 1, 2018)

- Added 1 new option: `initialAspectRatio`.
- Improve the smoothness of crop box resizing.

## 1.3.6 (May 20, 2018)

- Check orientation only when both the `rotatable` and `scalable` options are set to `true`.
- In case rounding off leads to extra 1px in right or bottom border we should round the top-left corner and the dimension (#343).

## 1.3.5 (Apr 15, 2018)

- Ensure the cloned image loads completely before trigger the `ready` event to avoid side effect (#303).
- Add namespace to data attribute names (from `data-*` to `data-cropper-*`) to avoid side effect (#319).

## 1.3.4 (Mar 31, 2018)

- Compute destination sizes with image's aspect ratio when draw image (#326).

## 1.3.3 (Mar 18, 2018)

- Improve event binding.
- Add missing `pivot` definition to `zoomTo` method (#320)

## 1.3.2 (Mar 3, 2018)

- Fix the bug of cropping image with orientation (#313).

## 1.3.1 (Feb 28, 2018)

- Add missing `width` and `height` definitions (#302).
- Fix incorrect behavior of `viewMode: 2` (#304).
- Fix the bug of multiple starts (#306).
- Remove `browser` field from the `package.json` file (#307).

## 1.3.0 (Feb 25, 2018)

- Add type definition files for TypeScript.
- Enhance the `preview` option to support `Array` and `NodeList`.
- Fix incorrect cropped canvas sizes when max/min sizes provided.

## 1.2.2 (Jan 3, 2018)

- Fix incorrect image natural sizes in iOS Safari (#279).

## 1.2.1 (Dec 17, 2017)

- Add `style` field to `package.json`.
- Fix size error when load SVG image (#256).

## 1.2.0 (Dec 17, 2017)

- Allow to set the pivot of zoom (#144).
- Fixed a bug of rotation (#260).

## 1.1.3 (Oct 21, 2017)

- Fixed a bug of render when disable one of `rotatable` and `scalable` options (#241).

## 1.1.2 (Oct 18, 2017)

- Normalize related decimal numbers when crop an image with canvas.

## 1.1.1 (Oct 11, 2017)

- Supports to load in node environment (#237).
- Fixed a bug of event binding (#238).

## 1.1.0 (Oct 8, 2017)

- Added 4 new options to `getCroppedCanvas` method:  `minWidth`, `minHeight`, `maxWidth` and `maxHeight`.
- Enhanced image scaling: the `scaleX` and `scaleY` values should only be `1` or `-1` before, but now they can be any numbers.
- Improved crop box resizing behavior in the northeast, northwest, southeast and southwest directions. (#222).

## 1.0.0 (Sep 3, 2017)

- Fixed a bug of zoom out after cleared the crop box in view mode 1, 2 and 3 (#209).
- Improve crop box resizing behavior in the east, west, south and north directions (#222).

## 1.0.0-rc.3 (Jul 7, 2017)

- Added two new options (`imageSmoothingEnabled` and `imageSmoothingQuality`) to `getCroppedCanvas` method.
- Fixed a bug of RegExp using (#195 by @arusakov).

## 1.0.0-rc.2 (May 30, 2017)

- Fixed the issue of canvas box initialization (#179).

## 1.0.0-rc.1 (Apr 30, 2017)

- Change the `main` field value from `dist/cropper.js` (UMD) to `dist/cropper.common.js` (CommonJS).
- Added `module` and `browser` fields to `package.json`.

## 1.0.0-rc (Mar 25, 2017)

- Fixed the bug of touch zoom (#161).
- Fixed the bug of window resize (#162).
- Improve the `toggleDragModeOnDblclick` option (only available when the `dragMode` option is set to `crop` or `move`)

## 1.0.0-beta.2 (Feb 25, 2017)

- Fixed the bug of rotate square image lead image shrink (#155).
- Improved RegExps for DataURL processing (#156).

## 1.0.0-beta.1 (Jan 21, 2017)

- Use CSS3 2D Transforms instead of `left` and `top` for better performance (#138).
- Set `withCredentials` attribute when read the image data by XMLHttpRequest (#141).

## 1.0.0-beta (Jan 1, 2017)

- Supports to set an element for preview (#113).
- Improved event handler for Pointer Events (#127).

## 1.0.0-alpha (Dec 4, 2016)

- Built JavaScript with Rollup.
- Build CSS with PostCSS.
- Fixed a bug of auto crop when replace the image (#83).

## 0.8.1 (Sep 3, 2016)

- Fixed the bug of cropping (#80).
- Fixed the bug of calling `ready` event twice when call `replace` method (#81).
- Fixed the bug of `getCroppedCanvas` when set `scalable` or `rotatable` to `false` (#82).

## 0.8.0 (Aug 18, 2016)

- Removed `build` event.
- Renamed `built` event to `ready`.
- Fixed the error of orientation transform.
- Ported code to ECMAScript 6.

## 0.7.2 (Jun 8, 2016)

- Fixed a bug of `data-*` attributes setting and getting.
- Fixed the calling order of `scale` and `rotate`.

## 0.7.1 (May 28, 2016)

- Improved the rotate and scale transform behavior.
- Improved the `getCroppedCanvas` method (returns the whole canvas if it is not cropped).
- Check cross origin setting when load image by XMLHTTPRequest.

## 0.7.0 (Mar 20, 2016)

- Supports 7 custom events: `build`, `built`, `cropstart`, `cropmove`, `cropend`, `crop` and `zoom`.
- The original callback options become shortcuts of these events now.
- IE8 is no longer supported after added these custom events.

## 0.6.0 (Feb 22, 2016)

- Added a new parameter to the `replace` method for applying filters.
- Improved the image initializing for Safari.
- Fixed incorrect size limitation of the crop box (#30).
- Fixed incorrect cropped canvas when scaleX or scaleY great than 1.

## 0.5.6 (Jan 18, 2016)

- Fixed crossOriginUrl undefined error when exists the `crossOrigin` property.
- Fixed the issue in the "destroy" method (#24).
- Optimized tests.

## 0.5.5 (Jan 1, 2016)

- Fixed a dimension bug in the "getCroppedCanvas" method.
- Added an example for cropping round image.

## 0.5.4 (Dec 28, 2015)

- Supports to zoom from event triggering point.

## 0.5.3 (Dec 24, 2015)

- Limit wheel speed to prevent zoom too fast (#21)
- Improve the `setCropBoxData` method (#22)

## 0.5.2 (Dec 15, 2015)

- Fix event handlers

## 0.5.1 (Dec 12, 2015)

- Handle Data URL (avoid to use XMLHttpRequest to open a Data URL)
- Handle ajax error when load ArrayBuffer
- Not to transform the image to base64 when Orientation equals to `1`
- Fix some typos

## 0.5.0 (Dec 5, 2015)

- Added a new option: `checkOrientation`
- Added a timestamp to the url of preview image

## 0.4.0 (Dec 2, 2015)

- Added a new option: `restore`
- Fixed #12: Added vendor prefixes to CSS `transform`

## 0.3.3 (Nov 30, 2015)

- Floor the numerical parameters for `CanvasRenderingContext2D.drawImage`

## 0.3.2 (Nov 18, 2015)

- Fixed #10: improve new crop box creating

## 0.3.1 (Nov 11, 2015)

- Fixed #7: reset the `crossOrigin` when call the `replace` method

## 0.3.0 (Oct 28, 2015)

- Supports four view modes
- Supports three drag modes
- Makes the crop box's borders and handlers visible when overflow
- Added some examples
- Fixed some issues

### Options

- Added `viewMode`
- Added `dragMode`
- Renamed `touchDragZoom` to `zoomOnTouch`
- Renamed `mouseWheelZoom` to `zoomOnWheel`
- Renamed `doubleClickToggle` to `toggleDragModeOnDblclick`
- Renamed `checkImageOrigin` to `checkCrossOrigin`
- Removed `strict` (supported by `viewMode: 1`)
- Removed `dragCrop` (supported by `dragMode: 'crop'`)

## 0.2.1 (Oct 28, 2015)

- Fix the error jQuery reference on the `setCanvasData` method
- Fix typo on the `destroy` method

## 0.2.0 (Oct 25, 2015)

- Added 5 new methods: `moveTo`, `zoomTo`, `rotateTo`, `scaleX` and `scaleY`
- Improved 4 methods:  `move`, `zoom`, `rotate` and `getCanvasData`
- Improved cropping

## 0.1.1 (Oct 10, 2015)

- Improved canvas limitation
- Improved crop box limitation
- Improved preview for cross origin image

## 0.1.0 (Sep 25, 2015)

- Supports touch (mobile)
- Supports zoom
- Supports rotation
- Supports scale (flip)
- Supports canvas
- Supports multiple croppers
- Cross-browser support
- Supports 37 options: `aspectRatio`, `data`, `preview`, `strict`, `responsive`, `checkImageOrigin`, `modal`, `guides`, `center`, `highlight`, `background`, `autoCrop`, `autoCropArea`, `dragCrop`, `movable`, `rotatable`, `scalable`, `zoomable`, `mouseWheelZoom`, `wheelZoomRatio`, `touchDragZoom`, `cropBoxMovable`, `cropBoxResizable`, `doubleClickToggle`, `minCanvasWidth`, `minCanvasHeight`, `minCropBoxWidth`, `minCropBoxHeight`, `minContainerWidth`, `minContainerHeight`, `build`, `built`, `cropstart`, `cropmove`, `cropend`, `crop`, `zoom`.
- Support 22 methods: `crop`, `reset`, `clear`, `replace`, `enable`, `disable`, `destroy`, `move`, `zoom`, `rotate`, `scale`, `getData`, `setData`, `getContainerData`, `getImageData`, `getCanvasData`, `setCanvasData`, `getCropBoxData`, `setCropBoxData`, `getCroppedCanvas`, `setAspectRatio`, `setDragMode`.
