@innovastudio/contentbuilder 1.5.193 → 1.5.194
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -46991,11 +46991,17 @@ class Image$1 {
|
|
|
46991
46991
|
}
|
|
46992
46992
|
const newPos = util.getElementPosition(elm);
|
|
46993
46993
|
let scaleX = newPos.scaleX;
|
|
46994
|
+
let extraScaleX = this.getScale(elm).scaleX;
|
|
46995
|
+
let extraScaleY = this.getScale(elm).scaleX;
|
|
46994
46996
|
imageTool.style.display = 'flex';
|
|
46995
46997
|
let _toolwidth = imageTool.offsetWidth; //to get value, element must not hidden (display:none). So set display:flex before this.
|
|
46996
46998
|
|
|
46997
|
-
let w = elm.offsetWidth * scaleX * this.builder.opts.zoom;
|
|
46998
|
-
let
|
|
46999
|
+
let w = elm.offsetWidth * extraScaleX * scaleX * this.builder.opts.zoom;
|
|
47000
|
+
let h = elm.offsetHeight * extraScaleY * scaleX * this.builder.opts.zoom;
|
|
47001
|
+
|
|
47002
|
+
// Compensate for the vertical shift caused by scaling
|
|
47003
|
+
let scaleShiftY = (h - elm.offsetHeight * scaleX * this.builder.opts.zoom) / 2;
|
|
47004
|
+
let top = newPos.top + window.pageYOffset + scaleShiftY;
|
|
46999
47005
|
let left = newPos.left + window.pageXOffset;
|
|
47000
47006
|
let toolLeft = left + (w / 2 - _toolwidth / 2);
|
|
47001
47007
|
|
|
@@ -47009,7 +47015,10 @@ class Image$1 {
|
|
|
47009
47015
|
}
|
|
47010
47016
|
imageTool.style.top = top + 'px';
|
|
47011
47017
|
imageTool.style.left = toolLeft + 'px';
|
|
47012
|
-
|
|
47018
|
+
const parent = elm.parentNode;
|
|
47019
|
+
const grandparent = parent && parent.parentNode;
|
|
47020
|
+
const hasWrapper = parent && parent.classList.contains('overflow-hidden') || grandparent && grandparent.classList.contains('overflow-hidden');
|
|
47021
|
+
if (!hasWrapper && !this.builder.activeImage.hasAttribute('data-noresize') && (this.builder.imageResizeOnBlock || !this.builder.activeImage.closest('.is-block'))) {
|
|
47013
47022
|
let imageResizer = this.imageResizer;
|
|
47014
47023
|
imageResizer.style.top = top + 'px';
|
|
47015
47024
|
imageResizer.style.left = left + 'px';
|
|
@@ -47045,6 +47054,21 @@ class Image$1 {
|
|
|
47045
47054
|
if (imageTool) imageTool.style.display = '';
|
|
47046
47055
|
this.hideImageResizer();
|
|
47047
47056
|
}
|
|
47057
|
+
getScale(element) {
|
|
47058
|
+
const computedStyle = window.getComputedStyle(element);
|
|
47059
|
+
const transform = computedStyle.transform;
|
|
47060
|
+
if (!transform || transform === 'none') {
|
|
47061
|
+
return {
|
|
47062
|
+
scaleX: 1,
|
|
47063
|
+
scaleY: 1
|
|
47064
|
+
};
|
|
47065
|
+
}
|
|
47066
|
+
const matrix = new DOMMatrix(transform);
|
|
47067
|
+
return {
|
|
47068
|
+
scaleX: matrix.a,
|
|
47069
|
+
scaleY: matrix.d
|
|
47070
|
+
};
|
|
47071
|
+
}
|
|
47048
47072
|
click(e) {
|
|
47049
47073
|
const util = this.builder.util;
|
|
47050
47074
|
const dom = this.builder.dom;
|
|
@@ -47070,13 +47094,19 @@ class Image$1 {
|
|
|
47070
47094
|
}
|
|
47071
47095
|
const newPos = util.getElementPosition(elm);
|
|
47072
47096
|
let scaleX = newPos.scaleX;
|
|
47097
|
+
let extraScaleX = this.getScale(elm).scaleX;
|
|
47098
|
+
let extraScaleY = this.getScale(elm).scaleX;
|
|
47073
47099
|
this.renderTool();
|
|
47074
47100
|
let imageTool = this.imageTool;
|
|
47075
47101
|
imageTool.style.display = 'flex';
|
|
47076
47102
|
let _toolwidth = imageTool.offsetWidth; //to get value, element must not hidden (display:none). So set display:flex before this.
|
|
47077
47103
|
|
|
47078
|
-
let w = elm.offsetWidth * scaleX * this.builder.opts.zoom;
|
|
47079
|
-
let
|
|
47104
|
+
let w = elm.offsetWidth * extraScaleX * scaleX * this.builder.opts.zoom;
|
|
47105
|
+
let h = elm.offsetHeight * extraScaleY * scaleX * this.builder.opts.zoom;
|
|
47106
|
+
|
|
47107
|
+
// Compensate for the vertical shift caused by scaling
|
|
47108
|
+
let scaleShiftY = (h - elm.offsetHeight * scaleX * this.builder.opts.zoom) / 2;
|
|
47109
|
+
let top = newPos.top + window.pageYOffset + scaleShiftY;
|
|
47080
47110
|
let left = newPos.left + window.pageXOffset;
|
|
47081
47111
|
let toolLeft = left + (w / 2 - _toolwidth / 2);
|
|
47082
47112
|
|
|
@@ -47090,9 +47120,12 @@ class Image$1 {
|
|
|
47090
47120
|
}
|
|
47091
47121
|
imageTool.style.top = top + 'px';
|
|
47092
47122
|
imageTool.style.left = toolLeft + 'px';
|
|
47123
|
+
const parent = elm.parentNode;
|
|
47124
|
+
const grandparent = parent && parent.parentNode;
|
|
47125
|
+
const hasWrapper = parent && parent.classList.contains('overflow-hidden') || grandparent && grandparent.classList.contains('overflow-hidden');
|
|
47093
47126
|
|
|
47094
47127
|
// Image Resizer
|
|
47095
|
-
if (!elm.hasAttribute('data-noresize') && (this.builder.imageResizeOnBlock || !elm.closest('.is-block'))) {
|
|
47128
|
+
if (!hasWrapper && !elm.hasAttribute('data-noresize') && (this.builder.imageResizeOnBlock || !elm.closest('.is-block'))) {
|
|
47096
47129
|
let imageResizer = this.imageResizer;
|
|
47097
47130
|
const newPos = util.getElementPosition(elm);
|
|
47098
47131
|
let top = newPos.top + window.pageYOffset;
|
|
@@ -47121,33 +47154,6 @@ class Image$1 {
|
|
|
47121
47154
|
if (this.builder.moveable) this.builder.moveable.updateRect();
|
|
47122
47155
|
const movControlBox = document.querySelector('.moveable-control-box');
|
|
47123
47156
|
if (movControlBox && !this.builder.hideImageResizer) movControlBox.style.display = 'block';
|
|
47124
|
-
|
|
47125
|
-
/*
|
|
47126
|
-
const handleImageToolClickOut = e =>{
|
|
47127
|
-
let elm = e.target;
|
|
47128
|
-
if(!elm) return;
|
|
47129
|
-
if(!elm.closest('#divImageResizer') && !elm.closest('#divImageTool') &&
|
|
47130
|
-
!elm.closest('.is-modal') && !elm.closest('.keep-selection') &&
|
|
47131
|
-
!elm.closest('.sl-wrapper') && !elm.closest('.sl-overlay') && !elm.closest('.sl-close') &&
|
|
47132
|
-
!elm.closest('img')) { // click outside
|
|
47133
|
-
|
|
47134
|
-
// hide
|
|
47135
|
-
this.hideImageTool();
|
|
47136
|
-
document.removeEventListener('click', handleImageToolClickOut);
|
|
47137
|
-
if(this.builder.iframeDocument) {
|
|
47138
|
-
this.builder.doc.removeEventListener('click', handleImageToolClickOut);
|
|
47139
|
-
}
|
|
47140
|
-
this.builder.handleImageToolClickOut_=false;
|
|
47141
|
-
}
|
|
47142
|
-
};
|
|
47143
|
-
if(!this.builder.handleImageToolClickOut_) {
|
|
47144
|
-
document.addEventListener('click', handleImageToolClickOut);
|
|
47145
|
-
if(this.builder.iframeDocument) {
|
|
47146
|
-
this.builder.doc.addEventListener('click', handleImageToolClickOut);
|
|
47147
|
-
}
|
|
47148
|
-
this.builder.handleImageToolClickOut_=true;
|
|
47149
|
-
}
|
|
47150
|
-
*/
|
|
47151
47157
|
} else {
|
|
47152
47158
|
let imageResizer = this.imageResizer;
|
|
47153
47159
|
imageResizer.style.display = 'none';
|