publ-echo-test 0.0.279 → 0.0.280
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/dist/lib/GridItem/GridItem.js +138 -175
- package/package.json +1 -1
@@ -118,181 +118,144 @@ var GridItem = function (_a) {
|
|
118
118
|
observer.disconnect();
|
119
119
|
};
|
120
120
|
}, [autoResize, isSelected, isDragging, isResizing, props.w, props.h, x, y]);
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
// height: minHeight,
|
260
|
-
// },
|
261
|
-
// x,
|
262
|
-
// y,
|
263
|
-
// "e",
|
264
|
-
// props.w,
|
265
|
-
// props.h,
|
266
|
-
// true
|
267
|
-
// );
|
268
|
-
// if (keepWidth) {
|
269
|
-
// w = prevW;
|
270
|
-
// }
|
271
|
-
// if (prevH > h) {
|
272
|
-
// h = prevH;
|
273
|
-
// }
|
274
|
-
// const { newX, newY } = getResizableXYPosition("e", w, h, prevW, prevH);
|
275
|
-
// if (prevH === h && prevW === w && newX === x && newY === y) {
|
276
|
-
// return;
|
277
|
-
// }
|
278
|
-
// props.onFitToContent &&
|
279
|
-
// props.onFitToContent(i, w, h, newX, newY, { hasPaddingChanged });
|
280
|
-
// }
|
281
|
-
// };
|
282
|
-
// // MutationObserver 인스턴스 생성
|
283
|
-
// const observer = new MutationObserver(callback);
|
284
|
-
// // 관찰할 DOM 변이 설정
|
285
|
-
// const config = { attributes: true, characterData: true };
|
286
|
-
// // 대상 노드와 설정으로 관찰 시작
|
287
|
-
// observer.observe(targetNode, config);
|
288
|
-
// // 정리 함수에서 MutationObserver 해제
|
289
|
-
// return () => {
|
290
|
-
// if (targetNode.id !== "contentslist-box") {
|
291
|
-
// return;
|
292
|
-
// }
|
293
|
-
// observer.disconnect();
|
294
|
-
// };
|
295
|
-
// }, [autoResize, isSelected, isDragging, isResizing, props.w, props.h, x, y]);
|
121
|
+
useEffect(function () {
|
122
|
+
var _a;
|
123
|
+
if (!isSelected || !autoResize) {
|
124
|
+
return;
|
125
|
+
}
|
126
|
+
var targetNode = (_a = elementRef.current) === null || _a === void 0 ? void 0 : _a.children[0].children[0].children[0];
|
127
|
+
if (!targetNode || isDragging || isResizing) {
|
128
|
+
return;
|
129
|
+
}
|
130
|
+
if (targetNode.id !== "contentslist-box") {
|
131
|
+
return;
|
132
|
+
}
|
133
|
+
var prevPaddingL = parseFloat(getComputedStyle(targetNode).paddingLeft);
|
134
|
+
var prevPaddingR = parseFloat(getComputedStyle(targetNode).paddingRight);
|
135
|
+
var prevPaddingT = parseFloat(getComputedStyle(targetNode).paddingTop);
|
136
|
+
var prevPaddingB = parseFloat(getComputedStyle(targetNode).paddingBottom);
|
137
|
+
// MutationObserver 콜백 함수
|
138
|
+
var callback = function (mutationsList) {
|
139
|
+
for (var _i = 0, mutationsList_2 = mutationsList; _i < mutationsList_2.length; _i++) {
|
140
|
+
var mutation = mutationsList_2[_i];
|
141
|
+
var isSizeChanged = mutation.attributeName === "data-min-width" ||
|
142
|
+
mutation.attributeName === "data-min-height";
|
143
|
+
console.log("mutation", mutation);
|
144
|
+
var keepWidth = true;
|
145
|
+
var hasPaddingChanged = true;
|
146
|
+
var insetTop = Number(mutation.target.dataset.insetTop);
|
147
|
+
var insetBottom = Number(mutation.target.dataset.insetBottom);
|
148
|
+
var minWidth = Number(mutation.target.dataset.minWidth);
|
149
|
+
// const minHeight =
|
150
|
+
// Number(mutation.target.dataset.minHeight) + insetTop + insetBottom;
|
151
|
+
var contentsWrapper = mutation.target.querySelector(".cb-contentslist-wrapper");
|
152
|
+
var oneComposition = mutation.target.querySelector(".composition-container");
|
153
|
+
var minHeight = 0;
|
154
|
+
if (contentsWrapper && oneComposition) {
|
155
|
+
var minCellWidth = 10;
|
156
|
+
var minColHeight = 11;
|
157
|
+
var numberOfItems = Number(mutation.target.getAttribute("data-number-of-items"));
|
158
|
+
var numberOfColumns = Number(mutation.target.getAttribute("data-number-of-columns"));
|
159
|
+
var rowGap = Number(mutation.target.getAttribute("data-row-gap"));
|
160
|
+
var columnGap = Number(mutation.target.getAttribute("data-column-gap"));
|
161
|
+
var insetTop_1 = Number(mutation.target.getAttribute("data-inset-top"));
|
162
|
+
var insetBottom_1 = Number(mutation.target.getAttribute("data-inset-bottom"));
|
163
|
+
var compositionCols = Number(oneComposition.getAttribute("data-cols"));
|
164
|
+
var compositionRows = Number(oneComposition.getAttribute("data-rows"));
|
165
|
+
var oneCompositionMinWidth = minCellWidth * compositionCols + 20; /* 20px padding */
|
166
|
+
// let oneCompositionMinHeight =
|
167
|
+
// minColHeight * compositionRows + 20; /* 20px padding */
|
168
|
+
if (contentsWrapper) {
|
169
|
+
var gridWrapperInnerH = contentsWrapper.clientHeight;
|
170
|
+
var oneCompositionH = oneComposition.clientHeight;
|
171
|
+
var CompositionBGwrapperPaddingT = Number(oneComposition.getAttribute("data-wrapper-paddingT"));
|
172
|
+
var CompositionBGwrapperPaddingB = Number(oneComposition.getAttribute("data-wrapper-paddingB"));
|
173
|
+
var oneCompositionMinHeight = oneCompositionH +
|
174
|
+
CompositionBGwrapperPaddingT +
|
175
|
+
CompositionBGwrapperPaddingB;
|
176
|
+
var styles = getComputedStyle(mutation.target);
|
177
|
+
var paddingL = parseFloat(styles.paddingLeft);
|
178
|
+
var paddingR = parseFloat(styles.paddingRight);
|
179
|
+
var paddingT = parseFloat(styles.paddingTop);
|
180
|
+
var paddingB = parseFloat(styles.paddingBottom);
|
181
|
+
var paddingLR = paddingL + paddingR;
|
182
|
+
var paddingTB = paddingT + paddingB;
|
183
|
+
var listMinWidth = oneCompositionMinWidth * numberOfColumns +
|
184
|
+
(numberOfColumns - 1) * columnGap +
|
185
|
+
paddingLR;
|
186
|
+
var numberOfRows = Math.ceil(numberOfItems / numberOfColumns);
|
187
|
+
var gridWrapperTotalH = gridWrapperInnerH + insetTop_1 + insetBottom_1;
|
188
|
+
var listMinHeight = oneCompositionMinHeight * numberOfRows +
|
189
|
+
(numberOfRows - 1) * rowGap +
|
190
|
+
paddingTB +
|
191
|
+
insetTop_1 +
|
192
|
+
insetBottom_1;
|
193
|
+
console.log("minH", listMinHeight);
|
194
|
+
console.log("oneCompositionMinHeight", oneCompositionMinHeight);
|
195
|
+
console.log("insetTop, insetBottom", insetTop_1, insetBottom_1);
|
196
|
+
if (listMinHeight > gridWrapperTotalH) {
|
197
|
+
minHeight = listMinHeight;
|
198
|
+
}
|
199
|
+
// minWidth = listMinWidth;
|
200
|
+
}
|
201
|
+
}
|
202
|
+
// If minWidth or minHeight is NaN, return early to prevent errors
|
203
|
+
if (isNaN(minWidth) || isNaN(minHeight)) {
|
204
|
+
return;
|
205
|
+
}
|
206
|
+
var width = targetNode.clientWidth;
|
207
|
+
if (!isSizeChanged && mutation.target instanceof Element) {
|
208
|
+
var styles = getComputedStyle(mutation.target);
|
209
|
+
if (minWidth > width) {
|
210
|
+
keepWidth = false;
|
211
|
+
}
|
212
|
+
// NOTE: POC
|
213
|
+
var paddingL = parseFloat(styles.paddingLeft);
|
214
|
+
var paddingR = parseFloat(styles.paddingRight);
|
215
|
+
var paddingT = parseFloat(styles.paddingTop);
|
216
|
+
var paddingB = parseFloat(styles.paddingBottom);
|
217
|
+
if (prevPaddingL !== paddingL ||
|
218
|
+
prevPaddingR !== paddingR ||
|
219
|
+
prevPaddingT !== paddingT ||
|
220
|
+
prevPaddingB !== paddingB) {
|
221
|
+
hasPaddingChanged = true;
|
222
|
+
keepWidth = false;
|
223
|
+
}
|
224
|
+
}
|
225
|
+
var prevW = props.w;
|
226
|
+
var prevH = props.h;
|
227
|
+
var _a = calcWH(getPositionParams(), {
|
228
|
+
width: minWidth,
|
229
|
+
height: minHeight,
|
230
|
+
}, x, y, "e", props.w, props.h, true), w_2 = _a.w, h_2 = _a.h;
|
231
|
+
if (keepWidth) {
|
232
|
+
w_2 = prevW;
|
233
|
+
}
|
234
|
+
if (prevH > h_2) {
|
235
|
+
h_2 = prevH;
|
236
|
+
}
|
237
|
+
var _b = getResizableXYPosition("e", w_2, h_2, prevW, prevH), newX = _b.newX, newY = _b.newY;
|
238
|
+
if (prevH === h_2 && prevW === w_2 && newX === x && newY === y) {
|
239
|
+
return;
|
240
|
+
}
|
241
|
+
props.onFitToContent &&
|
242
|
+
props.onFitToContent(i, w_2, h_2, newX, newY, { hasPaddingChanged: hasPaddingChanged });
|
243
|
+
}
|
244
|
+
};
|
245
|
+
// MutationObserver 인스턴스 생성
|
246
|
+
var observer = new MutationObserver(callback);
|
247
|
+
// 관찰할 DOM 변이 설정
|
248
|
+
var config = { attributes: true, characterData: true };
|
249
|
+
// 대상 노드와 설정으로 관찰 시작
|
250
|
+
observer.observe(targetNode, config);
|
251
|
+
// 정리 함수에서 MutationObserver 해제
|
252
|
+
return function () {
|
253
|
+
if (targetNode.id !== "contentslist-box") {
|
254
|
+
return;
|
255
|
+
}
|
256
|
+
observer.disconnect();
|
257
|
+
};
|
258
|
+
}, [autoResize, isSelected, isDragging, isResizing, props.w, props.h, x, y]);
|
296
259
|
// useEffect(() => {
|
297
260
|
// if (!isSelected || !autoResize) {
|
298
261
|
// return;
|