publ-echo 0.0.92 → 0.0.94
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.
|
@@ -47,25 +47,34 @@ var GridItem = function (_a) {
|
|
|
47
47
|
if (!targetNode || isDragging || isResizing) {
|
|
48
48
|
return;
|
|
49
49
|
}
|
|
50
|
+
var prevPaddingL = parseFloat(getComputedStyle(targetNode).paddingLeft);
|
|
51
|
+
var prevPaddingR = parseFloat(getComputedStyle(targetNode).paddingRight);
|
|
52
|
+
var prevPaddingT = parseFloat(getComputedStyle(targetNode).paddingTop);
|
|
53
|
+
var prevPaddingB = parseFloat(getComputedStyle(targetNode).paddingBottom);
|
|
50
54
|
// MutationObserver 콜백 함수
|
|
51
55
|
var callback = function (mutationsList) {
|
|
52
56
|
for (var _i = 0, mutationsList_1 = mutationsList; _i < mutationsList_1.length; _i++) {
|
|
53
57
|
var mutation = mutationsList_1[_i];
|
|
54
58
|
var isCharacterChanged = mutation.type === 'characterData';
|
|
55
59
|
var keepWidth = true;
|
|
60
|
+
var hasPaddingChanged = false;
|
|
56
61
|
var height = isCharacterChanged ? mutation.target.parentNode.clientHeight : mutation.target.clientHeight;
|
|
57
62
|
var width = targetNode.clientWidth;
|
|
58
63
|
if (!isCharacterChanged && mutation.target instanceof Element) {
|
|
59
|
-
var
|
|
60
|
-
var
|
|
61
|
-
if (
|
|
64
|
+
var styles = getComputedStyle(mutation.target);
|
|
65
|
+
var minWidth = parseFloat(styles.minWidth);
|
|
66
|
+
if (minWidth > width) {
|
|
62
67
|
keepWidth = false;
|
|
63
68
|
}
|
|
69
|
+
// NOTE: POC
|
|
70
|
+
var paddingL = parseFloat(styles.paddingLeft);
|
|
71
|
+
var paddingR = parseFloat(styles.paddingRight);
|
|
72
|
+
var paddingT = parseFloat(styles.paddingTop);
|
|
73
|
+
var paddingB = parseFloat(styles.paddingBottom);
|
|
74
|
+
if (prevPaddingL !== paddingL || prevPaddingR !== paddingR || prevPaddingT !== paddingT || prevPaddingB !== paddingB) {
|
|
75
|
+
hasPaddingChanged = true;
|
|
76
|
+
}
|
|
64
77
|
}
|
|
65
|
-
var styles = getComputedStyle(mutation.target);
|
|
66
|
-
var minWidth = parseFloat(styles.minWidth);
|
|
67
|
-
console.log('out loop - width', width);
|
|
68
|
-
console.log('minwidth', styles.minWidth);
|
|
69
78
|
var prevW = props.w;
|
|
70
79
|
var prevH = props.h;
|
|
71
80
|
var _a = calcWH(getPositionParams(), {
|
|
@@ -82,7 +91,7 @@ var GridItem = function (_a) {
|
|
|
82
91
|
if (prevH === h_1 && prevW === w_1 && newX === x && newY === y) {
|
|
83
92
|
return;
|
|
84
93
|
}
|
|
85
|
-
props.onFitToContent && props.onFitToContent(i, w_1, h_1, newX, newY);
|
|
94
|
+
props.onFitToContent && props.onFitToContent(i, w_1, h_1, newX, newY, { hasPaddingChanged: hasPaddingChanged });
|
|
86
95
|
}
|
|
87
96
|
};
|
|
88
97
|
// MutationObserver 인스턴스 생성
|
|
@@ -75,7 +75,9 @@ export type GridItemProps = {
|
|
|
75
75
|
onResize?: ResizeGridItemCallback<GridResizeEvent>;
|
|
76
76
|
onResizeStart?: ResizeGridItemCallback<GridResizeEvent>;
|
|
77
77
|
onResizeStop?: ResizeGridItemCallback<GridResizeEvent>;
|
|
78
|
-
onFitToContent?: (i: string, w: number, h: number, x: number, y: number
|
|
78
|
+
onFitToContent?: (i: string, w: number, h: number, x: number, y: number, { hasPaddingChanged }: {
|
|
79
|
+
hasPaddingChanged: boolean;
|
|
80
|
+
}) => void;
|
|
79
81
|
isHiddenVisibility?: boolean;
|
|
80
82
|
customColWidth?: number;
|
|
81
83
|
autoResize: boolean;
|
|
@@ -333,8 +333,9 @@ var ReactGridLayout = function (_a) {
|
|
|
333
333
|
setOldLayout(undefined);
|
|
334
334
|
onLayoutMaybeChanged(newLayout, oldLayout);
|
|
335
335
|
};
|
|
336
|
-
var onFitToContentHandler = function (i, w, h, x, y) {
|
|
337
|
-
var
|
|
336
|
+
var onFitToContentHandler = function (i, w, h, x, y, _a) {
|
|
337
|
+
var hasPaddingChanged = _a.hasPaddingChanged;
|
|
338
|
+
var _b = withLayoutItem(layout, i, function (l) {
|
|
338
339
|
var hasCollisions;
|
|
339
340
|
if (preventCollision && !allowOverlap) {
|
|
340
341
|
var collisions = getAllCollisions(layout, __assign(__assign({}, l), { w: x, h: y })).filter(function (layoutItem) { return layoutItem.i !== l.i; });
|
|
@@ -362,7 +363,7 @@ var ReactGridLayout = function (_a) {
|
|
|
362
363
|
l.minH = h;
|
|
363
364
|
}
|
|
364
365
|
return l;
|
|
365
|
-
}), newLayout =
|
|
366
|
+
}), newLayout = _b[0], l = _b[1];
|
|
366
367
|
if (!l)
|
|
367
368
|
return;
|
|
368
369
|
props.onFitToContent &&
|
|
@@ -370,6 +371,7 @@ var ReactGridLayout = function (_a) {
|
|
|
370
371
|
layout: newLayout,
|
|
371
372
|
prev: oldResizeItem,
|
|
372
373
|
item: l,
|
|
374
|
+
hasPaddingChanged: hasPaddingChanged
|
|
373
375
|
});
|
|
374
376
|
setLayout(allowOverlap ? newLayout : compact(newLayout, compactType, cols));
|
|
375
377
|
};
|
|
@@ -71,7 +71,7 @@ export type ReactGridLayoutProps = {
|
|
|
71
71
|
innerRef?: RefObject<HTMLDivElement>;
|
|
72
72
|
minNbRow?: number;
|
|
73
73
|
customColWidth?: number;
|
|
74
|
-
onFitToContent?:
|
|
74
|
+
onFitToContent?: OnFitContentCallBack;
|
|
75
75
|
};
|
|
76
76
|
export type DragOverEvent = MouseEvent & {
|
|
77
77
|
nativeEvent: {
|
|
@@ -79,6 +79,15 @@ export type DragOverEvent = MouseEvent & {
|
|
|
79
79
|
layerY: number;
|
|
80
80
|
} & Event;
|
|
81
81
|
};
|
|
82
|
+
export type OnFitContentCallBack = (properties: {
|
|
83
|
+
layout: Layout;
|
|
84
|
+
prev?: LayoutItem;
|
|
85
|
+
item?: LayoutItem;
|
|
86
|
+
placeholder?: LayoutItem;
|
|
87
|
+
e?: ResizeEventType;
|
|
88
|
+
node?: HTMLElement;
|
|
89
|
+
hasPaddingChanged: boolean;
|
|
90
|
+
}) => void;
|
|
82
91
|
export type EventCallback = (properties: {
|
|
83
92
|
layout: Layout;
|
|
84
93
|
prev?: LayoutItem;
|