Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

cropperjs

fengyuanchen3.8mMIT2.0.0TypeScript support: included

JavaScript image cropper.

image, crop, move, zoom, rotate, scale, cropper, cropper.js, image-cropping, image-viewing, image-processing, cropper-element, custom-element, web-component, html, css, javascript, front-end, web

readme

Cropper.js

Coverage Status Downloads Version

JavaScript image cropper. This is the branch for v2.x, for v1.x, check out the v1 branch.

Versioning

Maintained under the Semantic Versioning guidelines.

Commit Message Guidelines

Git commits message follows the Conventional Commits guidelines.

License

MIT © Chen Fengyuan

changelog

2.0.0 (2025-03-01)

  • build: config issue template (649b2fa)
  • build: prepare v2 stable version (ae55bdf)
  • build: update dependencies (56cef09)
  • build: update issue template for bug reports (dc09c90)
  • build: update repo urls (2bee699)
  • ci: update action version (0bb45db)
  • docs(element-canvas): except the "scale" option for the event.detail.action of actionstart/move/ (c778cb6)

2.0.0-rc.2 (2024-08-18)

  • build: release v2.0.0-rc.2 (396f2c7)
  • fix(element-selection): disable keyboard control when input something (af97972), closes #1192

2.0.0-rc.1 (2024-07-06)

  • build: ignore docs/public/service-worker.js file (d9cff71)
  • build: release 2.0.0-rc.1 (1a290d5)
  • docs: add version info and changelog link (4281c7f)
  • docs: unregister service worker (236d155)
  • docs(element-selection): add dynamic changes example (3b853fb)
  • fix(element-image): zoom when the selection is both zoomable and dynamic (0193036)
  • fix(element-selection): backward compatible with linked="true" only (64e2714)
  • fix(element-selection): fix wrong action end listener (5f764a1)
  • refactor(cropperjs): disable zoomable by default (f63e55d)
  • feat(element-selection): pass zoom events down to image when selection is not zoomable (3aa7ff4), closes #1182

2.0.0-rc.0 (2024-06-22)

  • build: release 2.0.0-rc.0 (08368f1)
  • build: update dependencies (b9719fe)
  • refactor(element-selection): backward compatible with 2.0.0-rc for the linked property (0a931ed)
  • refactor(element-selection): simplify the $handleAction function (388c71a)
  • fix(element-selection): fix select action interaction (a0ad269), closes #1176
  • fix(element-selection): fix wrong event to read shiftKey (206d2b4)
  • fix(element-selection): reset the initialCoverage property to its initial value when creating new (57e2688)
  • perf(element-selection): Avoid repeatedly calling the $change method (a99a5bd)
  • refactor(element-selection)!: rename the linked property to dynamic and disable it by default (8a005ab), closes #1175
  • docs(element-handle): add example for toggling action on dblclick (1829c23)

2.0.0-rc (2024-05-26)

  • build: add --host argument to vitepress script (d8bd0dd)
  • build: add publish script (23bfd85)
  • build: release 2.0.0-rc (7027554)
  • build: update dependencies (8819476)
  • test: update test cases (b58ecd6)
  • fix: disable callout in webkit-based browsers (851bd70), closes #1108
  • fix(element-selection): observe the linked property (7075bfe)
  • fix(element-selection): resize when initial coverage change (2c75cd9)
  • docs: fix TypeError when cropperCanvas is null (6799b61)
  • docs: outline level 3 titles (9dbc0d8)
  • docs: outline level 3 titles for zh lang (f4f1ec9)
  • docs: replace withBase with BASE_URL (b8c8a51)
  • docs: update migration for the viewMode option (e3c7ab7)
  • docs(cropperjs): improve basic example (464d6ab)
  • docs(element-image): add limiting boundaries example (f022d68)
  • docs(element-selection): add example for limiting boundaries (d5068b8)
  • docs(element-selection): improve limiting boundaries example (4e09be6)
  • docs(element-shade): change the x property values in the demo (1c004a3)
  • feat(element-image): add new initial-center-size property (daccbfb), closes #1105
  • feat(element-selection): add new linked property (1851f25), closes #1133
  • feat(element-selection): make the x, y, width, height, aspect-ratio, `initial-aspect-ratio (ce3c6d3), closes #1124 #1163 #1164 #1165
  • refactor: drop unnecessary type definitions (7fc90e7)
  • refactor(element-grid): render grid in next tick (aad0bde)
  • refactor(element-image): change the default value of the rotatable, scalable, skewable, `trans (1b5992e)
  • refactor(element-image): use a copy of the internal matrix for avoiding side effects (9761125)

2.0.0-beta.5 (2024-04-21)

  • build: release 2.0.0-beta.5 (8e1b201)
  • build: update dependencies (739ceb1)
  • build: upgrade to vitepress 1.1.3 (37e48d2)
  • docs: add reset all feature (7a204ae)
  • docs: drop useless images (7b69e39)
  • docs: update theme variables (3a6e2f4)
  • docs(cropperjs): add exported modules section (5b6ed96)
  • feat: export DEFAULT_TEMPLATE (#1156) (2208e73), closes #1156
  • feat(cropper-selection): add $clear method and improve $reset method (#1157) (8e6dbb0), closes #1157
  • refactor: change the translateY calculation to avoid side effects (4d2665e), closes #1152
  • refactor(cropper-viewer): fallback to canvas if the selection is invalid (4e4ce43)
  • refactor(cropperjs): add missing semicolon and move position (003ffa0)
  • fix(cropper-viewer): calculate translateY correctly when rotated 90deg (#1152) (2dea551), closes #1152 #1031

2.0.0-beta.4 (2023-08-20)

  • build: release 2.0.0-beta.4 (163b419)
  • build: update dependencies (76f9874)
  • refactor(cropper-selection): improve selection switching UX (e440638)
  • docs: drop the manifest.webmanifest.json file (684bbe4)
  • docs(cropper-selection): improve multiple selections demo (8460a97)
  • ci: remove v2 directory before copy files (25d64bf)
  • ci: use node 18 (6f27efa)
  • fix(cropper-image): make it a block element to avoid side effects (c3d94fc), closes #1074
  • fix(cropper-selection): change inactive selections synchronously when scaling (2e8d67f)
  • fix(cropper-selection): improve interaction between multiple selections (f2bd525), closes #1044 #1061

2.0.0-beta.3 (2023-06-18)

  • build: release 2.0.0-beta.3 (3bbcba4)
  • build: update dependencies (c015559)
  • build: update dependencies (f69579c)
  • style: fix jsdoc comments (16447cf)
  • style: sort order by stylelint (3698074)
  • docs: add missing page title (b9bc75c)
  • docs: migrate Vuepress to Vitepress (cb1425d)
  • fix: blur the removing selection to avoid side-effects (0a334d9), closes #1022

2.0.0-beta.2 (2022-12-04)

  • build: add missing config for eslint (0dbf411)
  • build: release 2.0.0-beta.2 (78de561)
  • build: update config files (5a71ee5)
  • build: update dependencies (2ca9013)
  • refactor: extract matrices multiplying as a utility function (d21e093)
  • refactor: fix an eslint error (c7c786a)
  • refactor: improve the $toCanvas method for better image quality (6365ab7)
  • refactor(element-select): improve move interaction (91907d8)
  • refactor(element-selection): improve code style (0164109)
  • test: add test cases for multiplyMatrices function (8b327f5)
  • fix(element-image): ignore selection move action (c2aa7d9), closes #985
  • docs: add missing slash (888f001)
  • docs: add zh locale (fb227b3)
  • docs: improve colors in drak mode (b0f6f9e)

2.0.0-beta.1 (2022-06-19)

  • build: add entry file for unpkg and jsdelivr (7303dad)
  • build: release 2.0.0-beta.1 (f9b7e9f)
  • fix: refresh viewer when the source image changed (ab866e4), closes #940
  • fix(element-canvas): correct the opposite scale direction (9616427)
  • fix(element-selection): correct canvas drawing position (2604d15), closes #939
  • docs: drop unbubbled load events (e2cc34c)

2.0.0-beta (2022-05-01)

  • build: add jsdoc plugin for eslint (5dfd4fc)
  • build: clean up files for next version (ae5733a)
  • build: collect elements and helpers (d38171d)
  • build: correct repo name (1c89d5e)
  • build: improve bundled files (851afff)
  • build: improve config (a4de3d4)
  • build: init (0e279f7)
  • build: migrate VuePress from v1 to v2 (25d4437)
  • build: move isCustomElement into compilerOptions (213151e)
  • build: move up the version field (4c55115)
  • build: process inline css with postcss (67156c1)
  • build: release 2.0.0-beta (f13e2bd)
  • build: separate config into files (3dd7146)
  • build: simplify config (9a7f8c9)
  • build: simplify configurations (134558c)
  • build: update (83bd87f)
  • build: update (609a28e)
  • build: update (b9ff6fd)
  • build: update (6f9bcb3)
  • build: update (7118faa)
  • build: update (406a552)
  • build: update (c70464b)
  • build: update (3caf1cb)
  • build: update (97b08c2)
  • build: update (d436531)
  • build: update (d924b38)
  • build: update (cf2b11d)
  • build: update (c9bb962)
  • build: update (77aac17)
  • build: update building temp folder (cef7b20)
  • build: update dependencies (a76bb77)
  • build: update dependencies (f7a60c5)
  • build: update dependencies (9c0d861)
  • build: update dependencies (dcc47ca)
  • build: update dependencies (f4c2cfc)
  • build: update dependencies (b66aeaa)
  • build: update dependencies (3dc8045)
  • build: update dependencies (b4315fe)
  • build: update dependencies (4e2e5e0)
  • build: update dependencies (e073100)
  • build: update dependencies (69f28ab)
  • build: update dev dependencies (3cc1bbc)
  • build: update huksy commands (c9db707)
  • build: upgrade husky from v4 to v6 (c597d90)
  • build: upgrade jest to v27 (b9d9e84)
  • build: upgrade vuepress (526b3fa)
  • build: upgrade vuepress to v2.0.0-beta.18 (15b9e8a)
  • build: use jsdom as test environment (4f5e8b8)
  • build: 简化 husky 命令 (eaf868a)
  • build(docs): use webpack as bundler (5b836b6)
  • fix: import type only (590b83e)
  • fix: improve size adjusting (abbdb54)
  • fix: make the focusing in selection actionable (a20c30b)
  • fix: remove event listeners when disconnected (d712947)
  • fix(cropperjs): add missing initial attribute (81c6d49)
  • fix(element-canvas): add missing attribute to observe (87fed15)
  • fix(element-canvas): fix type and add missing doc (af831eb)
  • fix(element-selection): drop incorrect code (039700f)
  • fix(element-selection): update active when multiple changed (c36b026)
  • fix(element-shade): toggle only when the action is select (34775ff)
  • fix(element): drop $name's value to avoid side effects (97c0c60)
  • docs: add base URL (8f47524)
  • docs: add logo, icons, and PWA support (3759090)
  • docs: add specifications for implementing CropperElement (cd9376a)
  • docs: change the status of the cropper library (d5ec64e)
  • docs: drop build status badge (cac5340)
  • docs: drop examples (c3552bf)
  • docs: drop examples links (129be1a)
  • docs: fix brand colors (17553de)
  • docs: fix paths of the images (618dcfd)
  • docs: fix site link and add branch hint (95db2de)
  • docs: fix typo (5052de9)
  • docs: fix typos (bc50442)
  • docs: fix typos (cbf4691)
  • docs: improve (062c65a)
  • docs: improve components and cofigurations (6cf6573)
  • docs: improve content (d5d1d57)
  • docs: improve demo code (8a2f374)
  • docs: improve distribution files title (9a67f46)
  • docs: improve playground (662acfc)
  • docs: integrate Google Analytics (62128b4)
  • docs: keep the attributes the same as the template's (1b5e5e9)
  • docs: resolve console error messages (a8c1177)
  • docs: simplify folders and content (a82f30c)
  • docs: update repo settings (5dfa12d)
  • feat: add $getTagNameOf method to get real tag name (cfc3a41)
  • feat: add some methods to Cropper interface (1428e8c)
  • feat: allow to zoom image and selection together (a8dcbe7)
  • feat: support two-finger touch rotation (0b3f262)
  • feat(cropper-image): support to rotate by offset (1993e2e)
  • feat(element-canvas): add 2 options to $toCanvas (8f9e21e)
  • feat(element-selection): add 2 options to $toCanvas (e3cdfd9)
  • feat(types): add Selection interface (51855c4)
  • ci: add deploy.yml (05762c1)
  • ci: add v2 dir only (c7b6b1c)
  • ci: exclude v2.0.0-alpha* (33ed5de)
  • ci: improve ci workflow (9755862)
  • style: add note comment (7af366f)
  • style: drop useless parameter (7f6a2eb)
  • style: fix eslint errors (44b867c)
  • style: fix eslint errors (cd04646)
  • style: fix stylelint errors (0730dec)
  • ci: create directory first if it does not exist (52871bb)
  • refactor!: rename CropperCanvas's scale property to scaleStep (bafa533)
  • refactor: drop the $setTransformByOffset method (241640a)
  • refactor: improve (55a5905)
  • refactor: improve code, docs, and playground (d243243)
  • refactor: improve Cropper (17d07ef)
  • refactor: improve dependents (f3cdadc)
  • refactor: improve elements and documentation (5c370c7)
  • refactor: improve events binding (aa6be90)
  • refactor: improve properties observing (018c0ef)
  • refactor: improve selection operating (fa88586)
  • refactor: improve the nextTick utility function (903e7a9)
  • refactor: improve the move action behaviour (bdd43ab)
  • refactor: merge autoSelect and autoSelectArea properties into initialCoverage property (2582aed)
  • refactor: merge all helpers in the utils package (f54228a)
  • refactor: rename precision to precise (b654108)
  • test: fix style property (da86c43)
  • test(cropperjs): improve test case (52c2a80)
  • refacror: improve the $center and $fit methods (21039d7)
  • perf: use transform for better performance (23ab36b)
  • chore: sort element packages (c1b8af7)

2.0.0-alpha.2 (2021-12-25)

  • build: add postcss dependency (ca45f09)
  • build: exports default module for CommonJS (5836c46)
  • build: fix wrong file match pattern (515bc81)
  • build: improve config (edde79c)
  • build: release 2.0.0-alpha.2 (a4378d5)
  • build: simplify husky config (20f70de)
  • build: update dependencies (b2bd7ba)
  • build: update dependencies (2f1e322)
  • build: update dependencies (9ed8dc5)
  • build: upgrade to husky 6 from 4 (f0dab99)
  • style: drop .scss extension (b4481f4)
  • style: fix eslint errors (6466797)
  • style: fix stylelint errors (0830355)
  • style: remove useless variable (1f17255)
  • docs: add missing type of original event for the zoom event (be89c55)
  • docs: add note about upload errors (072220e), closes #820
  • docs: add note for limiting max zoom ratio (e3b8571)
  • docs: disable zoomable to avoid side-effect (d360b12), closes #837
  • docs: fix grammar errors (852d743)
  • docs: fix quotes (b05b0e4)
  • docs: fix typos (ef0447e)
  • docs: fix wrong closing tag (4604233)
  • docs: improove notice for image styles (b5e0ae8)
  • docs: improve demo layout (3bcc9ca)
  • docs: improve event description (ca6b79d)
  • docs: improve image importing (72510a0), closes #724
  • docs: remove redundant HTML tags (#821) (fccca8a), closes #821
  • docs: rename master branch to main (a773503)
  • docs: replace "ratio" with "scale" for zooming feature (9786c5f)
  • docs: simplify changelog (6bc40d6)
  • docs: update links of the external dependencies (1605410)
  • docs: update react-cropper repo url (#698) (ecc5125), closes #698
  • ci: move to GitHub Actions (cc3154c)
  • ci: use LTS version of Node.js (104d914)
  • fix: add $cropper-image-path variable into the SCSS file for Sass users (#498) (086f260), closes #498
  • fix: check if the preview image is ready (38c3f67), closes #654
  • fix: improve container resizing (d9e3f76), closes #636
  • fix: improve ratio comparsion for negative value (a165bf1), closes #726
  • fix: IS_TOUCH_DEVICE (#614) (2ebf9ec), closes #614
  • fix: keep back compatibility (#799) (2f939db), closes #799
  • fix: move initial image data storing to a reasonable place (bbdc758)
  • fix: set the request to be asynchronous explicitly (9ac4738), closes #682
  • fix: support to set the minContainerWidth/Height to 0 (db8b851), closes #683
  • fix: typescript typing (#791) (7db38ce), closes #791
  • fix: use the max ratio of the X/Y-axis for resizing (1c822ef), closes #835
  • fix(types): add missing MouseEvent to the original event of the zoom event (5018357)
  • fix(types): improve the types for the preview option (#731) (1f4f3f9), closes #731
  • test: improve test cases for wheelZoomRatio (f33734c)
  • test: make wheelZoomRatio test check less strict (round up to tenths) (#814) (b5b9a4f), closes #814
  • feat(types): add TypeScript declarations for the events (68200c0)
  • perf: simplify max zoom ratio computing (6039b12)
  • chore: add notes (46d4d4f)
  • chore: update external links (02dc521)
  • refactor: export additional types (#715) (9fa2d00), closes #715

2.0.0-alpha.1 (2019-11-09)

  • build: move to root (5a0c068)
  • build: release 2.0.0-alpha (a334dd3)
  • build: release 2.0.0-alpha.1 (0ad96bb)
  • build: update dependencies (cd3fc8e)
  • build: update dependencies (1999357)
  • build(deps): bump lodash.template from 4.4.0 to 4.5.0 (#601) (66da1fc), closes #601
  • test: add test suties for new options (259359e)
  • test: update some suites (2b4a528)
  • fix: drop limited property (d04b9c8)
  • fix: improve crop box changing (ea86afb)
  • fix: improve first cropping when there is aspect ratio (99e6b54)
  • refactor: improve crop experience (a71b38e)
  • refactor: simplify styles (5de75a1)
  • feat: add 4 new options for the canvas and crop box (e2273fd)
  • docs: add crossOrigin attribute to links (48f653a)

1.5.6 (2019-10-04)

  • build: release 1.5.6 (89f0b50)
  • style: fix eslint errors (70918dc)
  • fix: improve event type determining for iOS 13+ (7f7422c), closes #571
  • docs: improve comments (8fa586f)

1.5.5 (2019-08-04)

  • build: release 1.5.5 (819bff4)
  • fix: clone the image's crossOrigin attribute always (8d89392), closes #535 #552
  • fix: improve browser detecting (#554) (54b30e5), closes #554

1.5.4 (2019-07-20)

  • build: release 1.5.4 (6f9218d)
  • fix: add alt attribute to all internal images for better accessibility (5036473), closes #548
  • fix: avoid removing the events of the original image (76d5949)
  • fix: avoid requesting Data URLs by XMLHttpRequest for better performance (1eae10c), closes #526
  • fix: transform the TS types for the drag mode, smoothing quality and view mode options (#550) (f4e306f), closes #550
  • fix: transform the ViewMode enum too (153f9e3)

1.5.3 (2019-07-10)

  • build: fix vulnerabilities (64e9a9e)
  • build: release 1.5.3 (abc0c2a)
  • style: improve comment (a034294)
  • chore: update ignoring rules (ecfa89f)
  • fix: check all browsers use WebKit as the layout engine in iOS devices (c9a83d3), closes #544 #545
  • docs: add lossy compression description (921aaf5)
  • docs: fix typos (da5cc9c)

1.5.2 (2019-06-30)

  • build: release 1.5.2 (006cc50)
  • docs: fix typos (38e24ac)
  • docs: update the version of the dependencies (6101952)
  • test: update test for cross origin image (8c937ff)
  • fix: alway add a timestamp to the url of a cross origin image (f4b22b4), closes #519
  • Update Changelog (#493) (4e3634e), closes #493

1.5.1 (2019-03-10)

  • build: release 1.5.1 (a45ff7b)
  • fix: revert the min container width and height (3184327)
  • docs: update travis badge url (6b0bc56)

1.5.0 (2019-03-10)

  • build: add stylelint (0f7e746)
  • build: merge config (4ed2e5f)
  • build: merge config into package.json (12b1970)
  • build: release 1.5.0 (2df11cc)
  • build: update dependencies (f5424ef)
  • docs: add v2.x link (ab1a2ba)
  • docs: fix assets links (24325ab)
  • docs: improve (c78d938)
  • docs: improve demo code (6759d59)
  • docs: improve GitHub templates (e314fd6)
  • docs: move examples into docs folder (8eb84de)
  • docs: update dependencies (ee4adf5)
  • docs: update issue templates (3f254cf)
  • docs: update pull request template (c5f07fb)
  • fix: avoid typed array spreading error in IE or Safari 9 (fff0a8d)
  • fix: correct Safari detecting (9db59b9), closes #478
  • fix: ignore the pointer events are not triggered by the primary button (a0e1e32)
  • perf: add options to wheel event for better performance (4cbf6e4)
  • perf: improve utilities (61738ec)
  • perf: simplify url checking (c8182db)
  • refactor: improve code (b78625f)
  • refactor: sort properties (746f98d)
  • test: add test suites for class and static methods (04bd847)
  • test: improve helpers (d537060)
  • ci: cache dependencies (1826ecc)

1.4.3 (2018-10-24)

  • build: release 1.4.3 (ed45be1)
  • refactor: move try...catch into utility function (3bb44c7)
  • fix: avoid range error (5fb1774)
  • fix: ignore range error when the image has incorrect Exif information (2ca48d4)

1.4.2 (2018-10-15)

  • build: add test coverage and upgrde Babel to 7 (7df905c)
  • build: release 1.4.2 (b795bb9)
  • fix: add missing static methods (78a0ba5)
  • fix: fall back first parameter to empty object to avoid error (dcfc79c), closes #432
  • fix: improve cropper instance storage to avoid side effect (9f30bc7), closes #394
  • fix: remove useless modifier (f218cb8)
  • fix: reset abort event handler before abort (bf938d1)
  • test: simplify config (1aa00b6)
  • chore: change request method to upper case (7bbb8b5)
  • docs: add donate on patron badge (c1a98fd)
  • docs: add download note for outdated browsers (313c56b)
  • docs: add filename to form data to aviod side effect (47b7654), closes #425
  • docs: add minimum and maximum cropped dimensions example (23b2e6c)
  • docs: add more explanation for checkCrossOrigin option (d274c4e), closes #413
  • docs: add reason for cache busting (c5dcb87)
  • refactor: use more semantic function name (bebd89d), closes #422
  • perf: add characters in chunks in dataURLToArrayBuffer (ac54c61)
  • perf: check mime type in progress event insted of load event (dc1da14)
  • perf: don't recompute the DataUrl if it is already known (#422) (af3a300), closes #422
  • perf: grow chunk size and reduce typed array (d51a7c1)
  • perf: read orientation only when it is a JPEG image (c644e0b)
  • perf: simplify code (aa0ea3d)
  • revert: always generate a new Data URL to avoid side effect (089f9b3), closes #422

1.4.1 (2018-07-15)

  • build: release 1.4.1 (f8a2da3)
  • build: update (152dd88), closes #376
  • docs: add 1:1 crop box example (9bc1716)
  • docs: improve examples styles (e57cb0b)
  • docs: only handle key down events of self (93ab538)
  • docs: update (aa78728)
  • fix: correct calc usage (eee2153)
  • fix: crop box overflows in "viewMode" 1 and 2 (#381) (44f50a3), closes #381
  • fix: not to restrict the canvas position when it is not croppe (e1b015b)
  • fix: revert missing case of #381 (21e14ea), closes #381
  • perf: simplify code from #381 (086a568), closes #381
  • perf: use native forEach first for better performance (e2ae655)
  • Fix a typo in a classname (#383) (d88d757), closes #383
  • refactor: simplify styles (8251882)
  • refactor: update code examples to es6 (#382) (e436780), closes #382
  • style: improve (8ea8549)
  • style: remove comment (785f479)
  • feat: add scss files (37c998a), closes #360
  • test: fix wrong file name (87e2f68)
  • test: improve style (ab096d6)

1.4.0 (2018-06-01)

  • build: release 1.4.0 (26a1268)
  • fix: improve the smoothness of crop box resizing (2b606c9)
  • feat: add new option initialAspectRatio (cc35974)
  • perf: unnecessary to compute ratio again (5fde17e)

1.3.6 (2018-05-20)

  • build: improve banner generating (243056b)
  • build: release 1.3.6 (1b1a0c0)
  • build: simplify config (ebbb6dd)
  • MIT (665cc77)
  • fix: cancel enums exporting (92331e8), closes #336
  • fix: check orientation only when it is rotatable and scalable (b277a18)
  • fix: rounding off problem of getData (1e19cd2), closes #343
  • fix: set checkOrientation to false when it is unnecessary (d828952)
  • test: improve (2e8d15e)
  • test: refactor test suite for rounded data (10fe559)
  • style: reference related issue in comment (3abaa2f)

1.3.5 (2018-04-15)

  • build: release 1.3.5 (a5f8f3f)
  • build: set timeout value (4ca670b)
  • test: change the cross origin image url (c1a9cfe)
  • test: fix dataset property keys (ead1fa7)
  • refactor: add namespace to data attribute names (ad20faf), closes #319
  • fix: ensure the cloned image loads completely before ready (acfa14c), closes #303

1.3.4 (2018-03-31)

  • build: release 1.3.4 (bc201ff)
  • style: improve (34c24ea)
  • Revert "fix: export const enum for runtime" (1edfd73)
  • fix: compute destination size with image's aspect ratio (3dbbbf4), closes #326

1.3.3 (2018-03-18)

  • build: release 1.3.3 (08c517d)
  • fix: add browser env checking for using in node.js (f2f1172)
  • fix: add missing pivot to zoomTo (#320) (de843e1), closes #320
  • fix: avoid a TypeError in strict mode (a456d69)
  • fix: export const enum for runtime (58e3c3c), closes #308
  • docs: update (260a431)
  • style: add comment for timeout (5db0ebe)
  • perf: improve event utils (8d005d0)

1.3.2 (2018-03-03)

  • build: release 1.3.2 (26a9287)
  • fix: draw with image's natural sizes (2c13262), closes #313
  • docs: fix vars name of mask-an-image example: (#314) (64d8a82), closes #314

1.3.1 (2018-02-28)

  • build: lint code before commit (88ee482)
  • build: release 1.3.1 (204e19f)
  • test: fix typo (8a3117e)
  • docs: fix typos (cbb3150)
  • fix: add missing width and height definitions (06f6b36), closes #302
  • fix: correct view mode 2 (38f418f), closes #304
  • fix: should only trigger start handler once (0090b1e), closes #306
  • fix(package): remove browser field (#307) (d679bc3), closes #307

1.3.0 (2018-02-25)

  • build: add commit message linter (83786bf)
  • build: add indexes files (9b7b151)
  • build: add the root field (e3afb11)
  • build: change enum properties to PascalCase (49d7e88)
  • build: release 1.3.0 (ae88c17)
  • build: simplify banner sharing (23d059e)
  • refactor: change the second parameter name of replace method (8f25400)
  • refactor: crop after ready (4a0c638)
  • refactor: not allow to crop again when it is already cropped (56fc9d2)
  • refactor: optimize image sizing (92f1f88)
  • refactor: optimize the build process (2d48734)
  • refactor: trigger crop event before ready event when auto crop (63ed4b5)
  • style: add comment (61fc266)
  • style: fix eslint errors (bdd239f)
  • test: fix typos (2fd7fcc)
  • test: refactor test suites (ef8fd5e)
  • perf: improve async process (375cd51)
  • perf: improve some methods (a89e0f5)
  • perf: improve utilities (a0777bd)
  • perf: improve XMLHTTPRequest abort (4495b31)
  • docs: add description for timestamp (8068a0e)
  • docs: add example for uploading cropped image to server (b8bf1a2)
  • docs: add note for data option (5ac334d)
  • docs: add notes for crop event (3daf2b0)
  • docs: change parameter name (e0af88a)
  • docs: detail cropper class arguments (5a1eddf)
  • docs: keep the same image name when download (0068a67)
  • docs: perfect contributing documentations (0e9735f)
  • docs: upgrade Bootstrap stable version (a2a80ce)
  • docs: upgrade Bootstrap to v4.0.0-beta.3 (7edf9cb)
  • feat: add type definitions file for TypeScript (3a079ad)
  • feat: enhance the preview option (9f235ff)
  • fix: correct cropped sizes when provide max/min sizes (187fa61)
  • fix: the setDragMode method only available when it is ready (2b70af4)
  • pref: improve regexps (0902077)
  • Added touch-action attribute to template to accomodate pointer event polyfills (#299) (7a4a705), closes #299

1.2.2 (2018-01-03)

  • release: 1.2.2 (583b763)
  • build: upgrade rollup (553fe5b)
  • MIT (cb4f3a9)
  • fix: incorrect image natual sizes in iOS Safari (5e3cdc4), closes #279
  • fix: override max-* and min-* styles (2ff231e)
  • docs: add example for cross origin image (6e298d6)

1.2.1 (2017-12-17)

  • release: 1.2.1 (b9de338)
  • feat: add style field to package.json (98abdd2)
  • fix: append image to dom to get correct size (4ec5062), closes #256
  • fix: fall back to documentElement if body is not existing (fea4b72)

1.2.0 (2017-12-17)

  • chore: release 1.2.0 (0d66566)
  • build: update scripts and dependencies (0508d18)
  • build(rollup): add external helpers (e33e595)
  • fix: correct rotated size computing (572c0e2), closes #260
  • fix: fallback for deleting property in element (c84d3ce)
  • fix: improve event binding (662c945)
  • fix: simplify event binding (6fdfcb4)
  • Changed document to element.ownerDocument. This so cropper will work within an iframe (#201) (1930e2b), closes #201
  • Grammar correction (#271) (6c64c31), closes #271
  • use bidirectional resize cursor (#169) (e1f8ddc), closes #169
  • docs: add angular-cropperjs project (1f6275f), closes #230
  • docs: add some badges (9c048cb)
  • docs: improve demo (c1cdd71)
  • feat: add pivot to zoomTo method (2d99d2c), closes #144
  • style: fix eslint error (565f4db)
  • style: remove redundant space (382dc08)

1.1.3 (2017-10-21)

  • build: release 1.1.3 (f6aff44)
  • fix: error when disable one of rotatable and scalable options (bdbc456), closes #241
  • refactor: simplify window reference (4da21d1)

1.1.2 (2017-10-18)

  • build: add release script (fe6ad77)
  • build: release 1.1.2 (fa03501)
  • build: use files field instead of .npmignore file (595d027)
  • ci: add scripts (adffe3e)
  • fix: normalize decimal numbers when crop an image (43df5f3)

1.1.1 (2017-10-11)

  • build: release 1.1.1 (d80c92d)
  • docs: improve close button accessiblity (91ba743)
  • docs: update author name (4447625)
  • fix: event listener should be a function (0fe0c8f), closes #238
  • fix: fix the originalUrl when src is not present (#234) (2498140), closes #234
  • fix: supports to load in node environment (86a42c6), closes #237

1.1.0 (2017-10-08)

  • build: add banner with plugin (39f0a90)
  • build: format generated css (e66bbdb), closes #231
  • build: release 1.1.0 (779ffd8)
  • build: remove bower.json file (c7d7355)
  • build: remove external helpers (a6aba19)
  • build: update config (c386793)
  • docs: add parameter to getCroppedCanvas (24740bd)
  • docs: add steps to crop on server-side (a146f74)
  • docs: improve layout and styles (5ec5f80)
  • docs: improve rotate behaviour (bde0d35)
  • docs: improve style and layout (50e6633)
  • docs: remove blank lines (93bff67)
  • perf: remove window detecting as window is required (5a86608)
  • perf: simplify element query (c2a6bb5)
  • test: enable orientation checking (0fbec21)
  • test: improve event dispatching (f4afb4e)
  • built: add eslint rules (618c373)
  • refactor: separate contants and simplify utilities (f17a7cb)
  • fix: improve action changing condition (5a7c4f2)
  • fix: improve event adding and removing (720f3a9)
  • fix: improve resizing condition (ad379ce), closes #229
  • fix: output clone to avoid side effect (3d99679)
  • fix: set the default value of imageSmoothingEnabled (2f3a5d4), closes #232
  • fix: throw error is the first argument is invalid (04cbf0a), closes #227
  • style: fix eslint errors (3cb8677)
  • style: remove unused variable (eddb57e)
  • feat: add 4 new options to getCroppedCanvas method (2e8f7a5)
  • feat: enhance scale (cbfe15d)
  • Improved crop box resizing (b15aa83), closes #222

1.0.0 (2017-09-03)

  • build: release 1.0.0 (2365789)
  • build: rename file and update config (2479ef6)
  • build: simplify configs (ed396c0)
  • build: update dependencies (6d75a95)
  • perl: simplify calculation (85c508b)
  • fix: improve crop box resizing (9257e06), closes #222
  • fix: zoom out bug after clear in view mode 1, 2, 3 (7276d7b), closes #209
  • test: upgrade QUnit to v2.4.0 (4b4edcf)
  • style: fix eslint errors (39befb9)
  • style: sort css properties (67ee879)
  • style: sort css properties (8ceb5af)
  • docs: add notes to getCroppedCanvas method (cab3f2a)
  • docs: upgrade to Bootstrap v4.0.0-beta (1bc877f)
  • Add ember-cropperjs in the related projects (86901dd)

1.0.0-rc.3 (2017-07-07)

  • add related - iron-coropper (web component) (1969fa9)
  • Added a new option to getCroppedCanvas method (2e0eea0)
  • Added new options to getCroppedCanvas method (fa409c3)
  • Demo using cropper to mask an image (4c8230c)
  • Fix REGEXP_DATA_URL_JPEG using (f38ba8a)
  • Fix typo (00fd364)
  • Fixed boolean assigning (b8cd3bb)
  • Improved playground demo (5dd1174)
  • Release v1.0.0-rc.3 (ddd2c2c)
  • Rephrase documentation on viewMode in README (1bd7118)

1.0.0-rc.2 (2017-05-30)

1.0.0-rc.1 (2017-04-30)

1.0.0-rc (2017-03-25)

1.0.0-beta.2 (2017-02-25)

1.0.0-beta.1 (2017-01-21)

1.0.0-beta (2017-01-01)

1.0.0-alpha (2016-12-04)

0.8.1 (2016-09-03)

0.8.0 (2016-08-18)

0.7.2 (2016-06-08)

  • Console event type directly (1e42c5c)
  • Convert data attribute name to hypen case (61dd740)
  • Fixed the order of scale and rotate (d0f185c)
  • Improve (073d5ec)
  • Improve browser detection (5ad736c)
  • Release v0.7.2 (59076d7)

0.7.1 (2016-05-28)

0.7.0 (2016-03-20)

0.6.0 (2016-02-22)

  • Add notes for minCropBoxWidth/Height (3603289)
  • Added a new parameter to the replace method (f3bf720)
  • Avoid to use the natualWidth/Height in Safari (913d9ce)
  • Cache the image in the view box (3bc7f07)
  • Fix incorrect cropped canvas when scaleX/Y > 1 (5f89114)
  • Fix incorrent size limitation of the crop box (9e33cce), closes #30
  • Fixed timestamp (5383534)
  • Improve replace method (2297459)
  • Not to override Orientation value to avoid side effect (94328c9)
  • Override the Orientation value for Safari (97c59f3)
  • Release v0.6.0 (712af0f)
  • Removed Gitter badge (bccbb38)
  • Typo (d074ecd)
  • Update jQuery (fdd28dc)

0.5.6 (2016-01-18)

0.5.5 (2016-01-01)

  • Add related projects (59b966b)
  • Added an example for cropping round image (967a48d)
  • Floor canvas width/height instead of round (e5dcf65)
  • Happy Year of the Monkey :monkey: (3e2e8d0)
  • Release v0.5.5 (d5daeef)
  • Update banner (4476f4a)
  • Updated "getByTag/Class" utilities (9d30741)

0.5.4 (2015-12-28)

0.5.3 (2015-12-24)

  • Cancel to check property value (533e708), closes #22
  • Fix parameter for getCroppedCanvas (1f9fe21)
  • Fixed #21: Limit wheel zoom speed (7a28cef), closes #21
  • Improve class utilities (7230754)
  • Improve utilities (b3c6bed)
  • Inserts cropper after to target image (1cbc7d7)
  • Release v0.5.3 (9383b78)
  • Rename "wheeled" to "wheeling" (0264f59)
  • Simplify prototype assignment (7510870)

0.5.2 (2015-12-15)

0.5.1 (2015-12-12)

0.5.0 (2015-12-05)

0.4.0 (2015-12-02)

  • Add "restore" option (0fe878c)
  • Added full crop box example (46468a3)
  • Added new "restore" option (70c74bd)
  • Fix links (397030b)
  • Fixed #12: Added vendor prefixes (cdb658d), closes #12
  • Release v0.4.0 (0c15da0)
  • The image should be full width (16b70cd)
  • Update Bootstrap from v3.3.5 to v3.3.6 (81a0f7c)
  • Update dev dependencies (3f89838)
  • Update Font Awesome from v4.4.0 to v4.4.5 (6bba180)
  • Update QUnit from v1.19.0 to v1.20.0 (4ffee9e)

0.3.3 (2015-11-30)

  • Add "cropper" as keyword (3829018)
  • Change document title (6d4db9c)
  • Change the position of .cropper-bg (a73208d)
  • Floor the numerical parameters for drawImage (ee056cf)
  • Release v0.3.3 (b65292d)
  • Remove optional extension (d4267b1)

0.3.2 (2015-11-18)

0.3.1 (2015-11-11)

0.2.1 (2015-10-28)

  • Fix typo (2a1f21f)
  • Released v0.2.1 (0dbf95d)
  • remove jQuery reference in getCanvasData using existing each method (ffde250)

0.2.0 (2015-10-25)

  • Add tests for new methods (83b19de)
  • Added move/zoom/rotateTo and scaleX/Y (9bd6b4e)
  • Added naturalWidth/Height to canvasData (f5f94eb)
  • Added CSS files (3367262)
  • Export naturalWidth/Height with getCanvasData (d6ae1d2)
  • Fix variable mistake (fb57e5a)
  • Improved the experience of cropping (1dc67e4)
  • Optimized tests (76bbdbc)
  • Parse numeric string by Number constructor (bda377f)
  • Released v0.2.0 (6d959df)
  • Round canvas size (6a1aaed)
  • The aspectRatio should be a positive number (3d97343)
  • Update (c0cc90f)
  • Update demo (a580e1e)
  • Update tests with new changes (e4a0893)

0.1.1 (2015-10-10)

0.1.0 (2015-09-25)

  • Added .gitattributes & .gitignore files (3d5f69d)
  • Released v0.1.0 (7d34674)