publ-echo-test 0.0.214 → 0.0.217

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,6 +47,9 @@ var GridItem = function (_a) {
47
47
  if (!targetNode || isDragging || isResizing) {
48
48
  return;
49
49
  }
50
+ if (targetNode.id === 'contentslist-box') {
51
+ return;
52
+ }
50
53
  var prevPaddingL = parseFloat(getComputedStyle(targetNode).paddingLeft);
51
54
  var prevPaddingR = parseFloat(getComputedStyle(targetNode).paddingRight);
52
55
  var prevPaddingT = parseFloat(getComputedStyle(targetNode).paddingTop);
@@ -112,6 +115,84 @@ var GridItem = function (_a) {
112
115
  observer.disconnect();
113
116
  };
114
117
  }, [autoResize, isSelected, isDragging, isResizing, props.w, props.h, x, y]);
118
+ useEffect(function () {
119
+ var _a;
120
+ if (!isSelected || !autoResize) {
121
+ return;
122
+ }
123
+ var targetNode = (_a = elementRef.current) === null || _a === void 0 ? void 0 : _a.children[0].children[0].children[0];
124
+ if (!targetNode || isDragging || isResizing) {
125
+ return;
126
+ }
127
+ if (targetNode.id !== 'contentslist-box') {
128
+ return;
129
+ }
130
+ var prevPaddingL = parseFloat(getComputedStyle(targetNode).paddingLeft);
131
+ var prevPaddingR = parseFloat(getComputedStyle(targetNode).paddingRight);
132
+ var prevPaddingT = parseFloat(getComputedStyle(targetNode).paddingTop);
133
+ var prevPaddingB = parseFloat(getComputedStyle(targetNode).paddingBottom);
134
+ // MutationObserver 콜백 함수
135
+ var callback = function (mutationsList) {
136
+ for (var _i = 0, mutationsList_2 = mutationsList; _i < mutationsList_2.length; _i++) {
137
+ var mutation = mutationsList_2[_i];
138
+ var isCharacterChanged = mutation.type === 'characterData';
139
+ console.log('mutation', mutation);
140
+ var keepWidth = true;
141
+ var hasPaddingChanged = false;
142
+ var height = isCharacterChanged
143
+ ? mutation.target.parentNode.clientHeight
144
+ : mutation.target.clientHeight;
145
+ var width = targetNode.clientWidth;
146
+ if (!isCharacterChanged && mutation.target instanceof Element) {
147
+ var styles = getComputedStyle(mutation.target);
148
+ var minWidth = parseFloat(styles.minWidth);
149
+ if (minWidth > width) {
150
+ keepWidth = false;
151
+ }
152
+ // NOTE: POC
153
+ var paddingL = parseFloat(styles.paddingLeft);
154
+ var paddingR = parseFloat(styles.paddingRight);
155
+ var paddingT = parseFloat(styles.paddingTop);
156
+ var paddingB = parseFloat(styles.paddingBottom);
157
+ if (prevPaddingL !== paddingL ||
158
+ prevPaddingR !== paddingR ||
159
+ prevPaddingT !== paddingT ||
160
+ prevPaddingB !== paddingB) {
161
+ hasPaddingChanged = true;
162
+ keepWidth = false;
163
+ }
164
+ }
165
+ var prevW = props.w;
166
+ var prevH = props.h;
167
+ var _a = calcWH(getPositionParams(), {
168
+ width: width,
169
+ height: height,
170
+ }, x, y, 'e', props.w, props.h, false), w_2 = _a.w, h_2 = _a.h;
171
+ if (keepWidth) {
172
+ w_2 = prevW;
173
+ }
174
+ if (prevH > h_2) {
175
+ h_2 = prevH;
176
+ }
177
+ var _b = getResizableXYPosition('e', w_2, h_2, prevW, prevH), newX = _b.newX, newY = _b.newY;
178
+ if (prevH === h_2 && prevW === w_2 && newX === x && newY === y) {
179
+ return;
180
+ }
181
+ props.onFitToContent &&
182
+ props.onFitToContent(i, w_2, h_2, newX, newY, { hasPaddingChanged: hasPaddingChanged });
183
+ }
184
+ };
185
+ // MutationObserver 인스턴스 생성
186
+ var observer = new MutationObserver(callback);
187
+ // 관찰할 DOM 변이 설정
188
+ var config = { characterData: true, attributes: true, subtree: true };
189
+ // 대상 노드와 설정으로 관찰 시작
190
+ observer.observe(targetNode, config);
191
+ // 정리 함수에서 MutationObserver 해제
192
+ return function () {
193
+ observer.disconnect();
194
+ };
195
+ }, [autoResize, isSelected, isDragging, isResizing, props.w, props.h, x, y]);
115
196
  // const moveDroppingItem = (prevProps: GridItemProps) => {
116
197
  // const { droppingPosition } = props;
117
198
  // if (!droppingPosition) return;
@@ -95,15 +95,18 @@ var Resizable = function (_a) {
95
95
  // const compositionColWidth = Number(oneComposition.getAttribute('data-col-width')!);
96
96
  var oneCompositionMinWidth = minCellWidth * compositionCols + 20 /* 20px padding */;
97
97
  var oneCompositionMinHeight = minCollHeight * compositionRows + 20 /* 20px padding */;
98
- var listMinWidth = Math.max(oneCompositionMinWidth * numberOfColumns + (numberOfColumns - 1) * columnGap, 0);
98
+ var styles = getComputedStyle(target);
99
+ var paddingL = parseFloat(styles.paddingLeft);
100
+ var paddingR = parseFloat(styles.paddingRight);
101
+ var paddingT = parseFloat(styles.paddingTop);
102
+ var paddingB = parseFloat(styles.paddingBottom);
103
+ var paddingLR = paddingL + paddingR;
104
+ var paddingTB = paddingT + paddingB;
105
+ var listMinWidth = oneCompositionMinWidth * numberOfColumns + (numberOfColumns - 1) * columnGap + paddingLR;
99
106
  var numberOfRows = Math.ceil(numberOfItems / numberOfColumns);
100
- var listMinHeight = Math.max(oneCompositionMinHeight * numberOfRows + (numberOfRows - 1) * rowGap, 0);
107
+ var listMinHeight = oneCompositionMinHeight * numberOfRows + (numberOfRows - 1) * rowGap + paddingTB;
101
108
  minWidth.current = listMinWidth;
102
109
  minHeight.current = listMinHeight;
103
- console.log('compositionMinWidth', oneCompositionMinWidth);
104
- console.log('compositionMinHeight', oneCompositionMinHeight);
105
- console.log('minWidth.current', minWidth.current);
106
- console.log('minHeight.current', minHeight.current);
107
110
  return;
108
111
  }
109
112
  // target.clientHeight -> 실제 "노드"의 height. (gridItem아닌)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "publ-echo-test",
3
- "version": "0.0.214",
3
+ "version": "0.0.217",
4
4
  "private": false,
5
5
  "main": "dist/lib/index.js",
6
6
  "types": "dist/lib/index.d.js",