Skip to content

Commit baf8cd0

Browse files
author
Mohamed Amdoun
committed
changed getValuesFromTransformedElement signature
removed createTransformReferenceElement
1 parent bd4e993 commit baf8cd0

File tree

4 files changed

+8
-25
lines changed

4 files changed

+8
-25
lines changed

src/dd-draggable.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,6 @@ export class DDDraggable extends DDBaseImplement implements HTMLElementExtendOpt
6464
/** @internal pause before we call the actual drag hit collision code */
6565
protected dragTimeout: number;
6666
/** @internal */
67-
protected transformReference: HTMLElement;
68-
/** @internal */
6967
protected dragTransform: DragTransform = {
7068
xScale: 1,
7169
yScale: 1,
@@ -81,7 +79,6 @@ export class DDDraggable extends DDBaseImplement implements HTMLElementExtendOpt
8179
// get the element that is actually supposed to be dragged by
8280
let handleName = option.handle.substring(1);
8381
this.dragEl = el.classList.contains(handleName) ? el : el.querySelector(option.handle) || el;
84-
this.transformReference = Utils.createTransformReferenceElement();
8582
// create var event binding so we can easily remove and still look like TS methods (unlike anonymous functions)
8683
this._mouseDown = this._mouseDown.bind(this);
8784
this._mouseMove = this._mouseMove.bind(this);
@@ -218,7 +215,6 @@ export class DDDraggable extends DDBaseImplement implements HTMLElementExtendOpt
218215
this.helper = this._createHelper(e);
219216
this._setupHelperContainmentStyle();
220217
this.dragTransform = Utils.getValuesFromTransformedElement(
221-
this.transformReference,
222218
this.helperContainment
223219
);
224220
this.dragOffset = this._getDragOffset(e, this.el, this.helperContainment);

src/dd-resizable.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,14 +57,11 @@ export class DDResizable extends DDBaseImplement implements HTMLElementExtendOpt
5757
protected parentOriginStylePosition: string;
5858
/** @internal */
5959
protected static _originStyleProp = ['width', 'height', 'position', 'left', 'top', 'opacity', 'zIndex'];
60-
/** @internal */
61-
protected transformReference: HTMLElement;
6260

6361
constructor(el: HTMLElement, opts: DDResizableOpt = {}) {
6462
super();
6563
this.el = el;
6664
this.option = opts;
67-
this.transformReference = Utils.createTransformReferenceElement();
6865
// create var event binding so we can easily remove and still look like TS methods (unlike anonymous functions)
6966
this._mouseOver = this._mouseOver.bind(this);
7067
this._mouseOut = this._mouseOut.bind(this);
@@ -229,7 +226,7 @@ export class DDResizable extends DDBaseImplement implements HTMLElementExtendOpt
229226
this.parentOriginStylePosition = this.el.parentElement.style.position;
230227

231228
const parent = this.el.parentElement;
232-
const transformValues = Utils.getValuesFromTransformedElement(this.transformReference, parent);
229+
const transformValues = Utils.getValuesFromTransformedElement(parent);
233230
this.rectScale = {
234231
x: transformValues.xScale,
235232
y: transformValues.yScale

src/gridstack.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2030,9 +2030,6 @@ export class GridStack {
20302030
// vars shared across all methods
20312031
let cellHeight: number, cellWidth: number;
20322032

2033-
// creates a reference element for tracking the right position after scaling
2034-
const transformReference = Utils.createTransformReferenceElement();
2035-
20362033
let onDrag = (event: DragEvent, el: GridItemHTMLElement, helper: GridItemHTMLElement) => {
20372034
let node = el.gridstackNode;
20382035
if (!node) return;
@@ -2042,13 +2039,13 @@ export class GridStack {
20422039
// if we are dragging an element in and out that is coming from a grid
20432040
// we get the transform values by using the helper attached to the grid
20442041
if (node.grid?.el) {
2045-
transformValues = Utils.getValuesFromTransformedElement(transformReference, helper)
2042+
transformValues = Utils.getValuesFromTransformedElement(helper)
20462043
}
20472044
// if the element is being dragged from outside (not from any grid)
20482045
// we use the grid as the transformation reference, since the helper is not subject to transformation
20492046
else if (this._placeholder && this._placeholder.closest('.grid-stack')) {
20502047
const gridEl = this._placeholder.closest('.grid-stack') as HTMLElement;
2051-
transformValues = Utils.getValuesFromTransformedElement(transformReference, gridEl);
2048+
transformValues = Utils.getValuesFromTransformedElement(gridEl);
20522049
// if the element is being dragged from outside, scale it down to match the grid's scale
20532050
helper.style.transform = `scale(${1 / transformValues.xScale},${1 / transformValues.yScale})`;
20542051
// this makes it so that the helper is well positioned relative to the mouse after scaling

src/utils.ts

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -563,10 +563,9 @@ export class Utils {
563563

564564
/**
565565
* defines an element that is used to get the offset and scale from grid transforms
566-
* has to be hooked to a helper
567-
* should be called once
566+
* returns the scale and offsets from said element
568567
*/
569-
public static createTransformReferenceElement(): HTMLElement {
568+
public static getValuesFromTransformedElement(parent: HTMLElement): DragTransform {
570569
const transformReference = document.createElement('div');
571570
Utils.addElStyles(transformReference, {
572571
opacity: '0',
@@ -577,16 +576,10 @@ export class Utils {
577576
height: '1px',
578577
zIndex: '-999999',
579578
});
580-
return transformReference;
581-
}
582-
583-
/**
584-
* can be used after setting the reference element from createTransformReferenceElement
585-
*/
586-
public static getValuesFromTransformedElement(transformReference: HTMLElement, helper: HTMLElement): DragTransform {
587-
helper.appendChild(transformReference);
579+
parent.appendChild(transformReference);
588580
const transformValues = transformReference.getBoundingClientRect();
589-
helper.removeChild(transformReference);
581+
parent.removeChild(transformReference);
582+
transformReference.remove();
590583
return {
591584
xScale: 1 / transformValues.width,
592585
yScale: 1 / transformValues.height,

0 commit comments

Comments
 (0)