pds-dev-kit-web-test 0.3.18 → 0.3.20
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/src/sub/DynamicLayout/sectionActionTypes.d.ts +6 -0
- package/dist/src/sub/DynamicLayout/sections/CustomSection/CustomSection.js +17 -1
- package/dist/src/sub/DynamicLayout/sections/CustomSection/hooks/useGroupDrag/useGroupDrag.js +26 -18
- package/dist/src/sub/DynamicLayout/sections/CustomSection/hooks/useGroupDrag/utils.js +2 -14
- package/package.json +1 -1
- package/release-note.md +3 -3
|
@@ -47,6 +47,12 @@ type ActionHandlerPayload = {
|
|
|
47
47
|
'@CUSTOMSECTION/SECTION_CLICKED': {
|
|
48
48
|
sectionId: number;
|
|
49
49
|
};
|
|
50
|
+
'@CUSTOMSECTION/GROUP_CREATED': {
|
|
51
|
+
message: string;
|
|
52
|
+
};
|
|
53
|
+
'@CUSTOMSECTION/GROUP_DISMISSED': {
|
|
54
|
+
message: string;
|
|
55
|
+
};
|
|
50
56
|
};
|
|
51
57
|
type ActionMap<M extends {
|
|
52
58
|
[index: string]: any;
|
|
@@ -115,6 +115,13 @@ function CustomSection(props) {
|
|
|
115
115
|
id: 'group'
|
|
116
116
|
}
|
|
117
117
|
});
|
|
118
|
+
sectionActionHandler &&
|
|
119
|
+
sectionActionHandler({
|
|
120
|
+
type: '@CUSTOMSECTION/GROUP_CREATED',
|
|
121
|
+
payload: {
|
|
122
|
+
message: 'group created'
|
|
123
|
+
}
|
|
124
|
+
});
|
|
118
125
|
setSelectedCB('group');
|
|
119
126
|
return;
|
|
120
127
|
}
|
|
@@ -203,7 +210,16 @@ function CustomSection(props) {
|
|
|
203
210
|
if (!isEditMode) {
|
|
204
211
|
return;
|
|
205
212
|
}
|
|
206
|
-
|
|
213
|
+
if (selectedCB === 'group') {
|
|
214
|
+
breakGroupCB();
|
|
215
|
+
sectionActionHandler &&
|
|
216
|
+
sectionActionHandler({
|
|
217
|
+
type: '@CUSTOMSECTION/GROUP_DISMISSED',
|
|
218
|
+
payload: {
|
|
219
|
+
message: 'group dismissed'
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
}
|
|
207
223
|
setSelectedCB(null);
|
|
208
224
|
sectionActionHandler &&
|
|
209
225
|
sectionActionHandler({
|
package/dist/src/sub/DynamicLayout/sections/CustomSection/hooks/useGroupDrag/useGroupDrag.js
CHANGED
|
@@ -17,32 +17,40 @@ function useGroupDrag(_a) {
|
|
|
17
17
|
var layoutByDevice = device === 'DESKTOP' ? 'lg' : 'sm';
|
|
18
18
|
function setGroupCB(selectedId, newId) {
|
|
19
19
|
setLayouts(function (prev) {
|
|
20
|
-
var
|
|
21
|
-
|
|
22
|
-
var
|
|
23
|
-
var
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
20
|
+
var _a;
|
|
21
|
+
// TODO: 임시용 카피
|
|
22
|
+
var currentLayoutCopy = JSON.parse(JSON.stringify(prev[layoutByDevice]));
|
|
23
|
+
var firstIdx = currentLayoutCopy.findIndex(function (item) {
|
|
24
|
+
if (selectedId === 'group') {
|
|
25
|
+
return item.i === 'group';
|
|
26
|
+
}
|
|
27
|
+
if (Number(item.i) === selectedId) {
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
return false;
|
|
31
|
+
});
|
|
32
|
+
var firstElem = currentLayoutCopy.splice(firstIdx, 1)[0];
|
|
33
|
+
var secondIdx = currentLayoutCopy.findIndex(function (item) { return Number(item.i) === newId; });
|
|
34
|
+
var secondElem = currentLayoutCopy.splice(secondIdx, 1)[0];
|
|
29
35
|
var group = (0, utils_1.getGroupData)(firstElem, secondElem);
|
|
30
|
-
|
|
31
|
-
return __assign({}, prev);
|
|
36
|
+
currentLayoutCopy.push(group);
|
|
37
|
+
return __assign(__assign({}, prev), (_a = {}, _a[layoutByDevice] = currentLayoutCopy, _a));
|
|
32
38
|
});
|
|
33
39
|
}
|
|
34
40
|
function breakGroupCB() {
|
|
35
41
|
setLayouts(function (prev) {
|
|
36
|
-
var _a
|
|
37
|
-
var
|
|
38
|
-
|
|
42
|
+
var _a;
|
|
43
|
+
var _b, _c;
|
|
44
|
+
// TODO: 임시용 카피
|
|
45
|
+
var currentLayoutCopy = JSON.parse(JSON.stringify(prev[layoutByDevice]));
|
|
46
|
+
var groupIdx = currentLayoutCopy.findIndex(function (item) { return item.i === 'group'; });
|
|
39
47
|
if (groupIdx < 0) {
|
|
40
48
|
return prev;
|
|
41
49
|
}
|
|
42
|
-
var groupItem =
|
|
43
|
-
var groupItems = (
|
|
44
|
-
|
|
45
|
-
return __assign({}, prev);
|
|
50
|
+
var groupItem = currentLayoutCopy.splice(groupIdx, 1)[0];
|
|
51
|
+
var groupItems = (_c = (_b = groupItem === null || groupItem === void 0 ? void 0 : groupItem.groupLayouts) === null || _b === void 0 ? void 0 : _b.map(function (each) { return (__assign(__assign({}, each), { x: groupItem.x + each.x, y: groupItem.y + each.y })); })) !== null && _c !== void 0 ? _c : [];
|
|
52
|
+
currentLayoutCopy.push.apply(currentLayoutCopy, groupItems);
|
|
53
|
+
return __assign(__assign({}, prev), (_a = {}, _a[layoutByDevice] = currentLayoutCopy, _a));
|
|
46
54
|
});
|
|
47
55
|
}
|
|
48
56
|
function getGroupCB(layout) {
|
|
@@ -30,20 +30,8 @@ function getGroupData(elem1, elem2) {
|
|
|
30
30
|
var elem2H = elem2.y - minY + elem2.h;
|
|
31
31
|
var maxW = Math.max(elem1W, elem2W);
|
|
32
32
|
var maxH = Math.max(elem1H, elem2H);
|
|
33
|
-
var elem1InnerData = {
|
|
34
|
-
|
|
35
|
-
x: elem1.x - minX,
|
|
36
|
-
y: elem1.y - minY,
|
|
37
|
-
w: elem1.w,
|
|
38
|
-
h: elem1.h
|
|
39
|
-
};
|
|
40
|
-
var elem2InnerData = {
|
|
41
|
-
i: elem2.i,
|
|
42
|
-
x: elem2.x - minX,
|
|
43
|
-
y: elem2.y - minY,
|
|
44
|
-
w: elem2.w,
|
|
45
|
-
h: elem2.h
|
|
46
|
-
};
|
|
33
|
+
var elem1InnerData = __assign(__assign({}, elem1), { x: elem1.x - minX, y: elem1.y - minY });
|
|
34
|
+
var elem2InnerData = __assign(__assign({}, elem2), { x: elem2.x - minX, y: elem2.y - minY });
|
|
47
35
|
var groupLayouts = elem1.groupLayouts
|
|
48
36
|
? getAdaptedGroupLayouts(elem1.groupLayouts, elem2InnerData, elem1, minX, minY)
|
|
49
37
|
: [elem1InnerData, elem2InnerData];
|
package/package.json
CHANGED
package/release-note.md
CHANGED