From 218646a6fc173abb87764b9a05a5e1e8ccfd3702 Mon Sep 17 00:00:00 2001 From: Norserium Date: Sat, 2 Nov 2019 19:22:45 +0300 Subject: [PATCH] Add the possibility to move and resize background --- .../Examples/CircleExample/CircleStencil.vue | 8 +- .../.vuepress/components/algorithm-tester.vue | 257 ++++++++ .../docs/.vuepress/components/home-page.vue | 2 +- .../components/mobile-fixed-example.vue | 34 ++ .../components/set-coordinates-example.vue | 18 +- example/docs/.vuepress/styles/index.styl | 4 + example/docs/introduction/algorithm.md | 4 + example/docs/tutorials/recipes.md | 32 + package-lock.json | 48 +- package.json | 2 +- rollup.config.js | 4 +- src/Cropper.vue | 343 +++++++---- src/components/handlers/SimpleHandler.vue | 5 + src/components/lines/SimpleLine.vue | 7 +- src/components/service/BoundingBox.vue | 66 +-- src/components/service/CropperWrapper.vue | 192 ++++++ src/components/service/DraggableArea.vue | 111 ++-- src/components/service/HandlerWrapper.vue | 12 +- src/components/service/LineWrapper.vue | 10 +- src/components/service/PreviewResult.vue | 15 +- src/components/service/index.js | 1 + src/components/stencils/RectangleStencil.vue | 20 +- src/core/algorithms.js | 547 +++++++++++++----- src/core/constants.js | 2 + src/core/events.js | 11 +- src/core/utils.js | 6 + src/mixins/draggable.js | 20 +- src/mixins/index.js | 2 +- 28 files changed, 1342 insertions(+), 441 deletions(-) create mode 100644 example/docs/.vuepress/components/algorithm-tester.vue create mode 100644 example/docs/.vuepress/components/mobile-fixed-example.vue create mode 100644 example/docs/introduction/algorithm.md create mode 100644 src/components/service/CropperWrapper.vue diff --git a/example/docs/.vuepress/components/Home/Examples/CircleExample/CircleStencil.vue b/example/docs/.vuepress/components/Home/Examples/CircleExample/CircleStencil.vue index 1484f2c4..1619ef59 100644 --- a/example/docs/.vuepress/components/Home/Examples/CircleExample/CircleStencil.vue +++ b/example/docs/.vuepress/components/Home/Examples/CircleExample/CircleStencil.vue @@ -41,12 +41,9 @@ export default { }, onHandlerMove(dragEvent) { const shift = dragEvent.shift(); - const widthResize = shift.left/2; const heightResize = -shift.top/2; const { height, width, left, top, } = this.resultCoordinates; - const coefficient = width / this.stencilCoordinates.width; - this.$emit('resize', new ResizeEvent( dragEvent.nativeEvent, { @@ -54,8 +51,11 @@ export default { right: widthResize, top: heightResize, bottom: heightResize, + }, + { + compensate: true, } - )); + )) }, aspectRatios() { return { diff --git a/example/docs/.vuepress/components/algorithm-tester.vue b/example/docs/.vuepress/components/algorithm-tester.vue new file mode 100644 index 00000000..b594817d --- /dev/null +++ b/example/docs/.vuepress/components/algorithm-tester.vue @@ -0,0 +1,257 @@ + + +