pds-dev-kit-web-test 2.5.61 → 2.5.63

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.
@@ -86,6 +86,11 @@ type ActionHandlerPayload = {
86
86
  sectionId: number;
87
87
  e: React.MouseEvent;
88
88
  };
89
+ '@CUSTOMSECTION/GROUP_RIGHT_CLICKED': {
90
+ e: React.MouseEvent;
91
+ blockId: string;
92
+ isEditingGroup: boolean;
93
+ };
89
94
  '@CUSTOMSECTION/BULK_CREATED': {
90
95
  message: string;
91
96
  data: LayoutItem;
@@ -61,10 +61,8 @@ var styled_components_1 = __importDefault(require("styled-components"));
61
61
  var components_1 = require("../../components");
62
62
  var ComponentBlockMatcher_1 = __importDefault(require("./components/ComponentBlock/ComponentBlockMatcher"));
63
63
  var S_HiddenCover_1 = require("./components/ComponentBlock/componentBlocks/components/S_HiddenCover");
64
- var useGroupDrag_1 = require("./hooks/useGroupDrag");
65
- var useGroupDrag_2 = require("./hooks/useGroupDrag/useGroupDrag");
66
- var utils_1 = require("./hooks/useGroupDrag/utils");
67
- var _clsx_1 = require("./newUtils/\bclsx");
64
+ var clsx_1 = require("./newUtils/clsx");
65
+ var group_2 = require("./newUtils/group");
68
66
  var util_1 = require("./util");
69
67
  var parseSectionPadding_1 = __importDefault(require("./util/layoutPropParsers/parseSectionPadding"));
70
68
  var Responsive = (0, publ_echo_test_1.WidthProvider)(publ_echo_test_1.ResponsiveGridEditor);
@@ -99,17 +97,6 @@ var CustomSection = (0, react_1.forwardRef)(function CustomSection(props, ref) {
99
97
  sm: sm
100
98
  };
101
99
  }), layouts = _l[0], setLayouts = _l[1];
102
- var _m = (0, useGroupDrag_1.useGroupDrag)({
103
- layouts: layouts,
104
- setLayouts: setLayouts,
105
- device: device,
106
- sectionActionHandler: sectionActionHandler
107
- }), setGroupCB = _m.setGroupCB,
108
- // breakGroupCB,
109
- // escapeFromGroup,
110
- // makeAllInOneGroup,
111
- // makeCollisionGroup,
112
- makeCollisionOfBulk = _m.makeCollisionOfBulk, getCollisionGroupIds = _m.getCollisionGroupIds;
113
100
  (0, react_1.useImperativeHandle)(ref, function () {
114
101
  return {
115
102
  selectCB: function (cbId) {
@@ -130,21 +117,21 @@ var CustomSection = (0, react_1.forwardRef)(function CustomSection(props, ref) {
130
117
  setLayouts(function (prev) {
131
118
  var _a;
132
119
  var _b;
133
- var group = (0, useGroupDrag_2.getGroupCB)(prev[layoutByDevice]);
120
+ var group = (0, group_2.getGroupCB)(prev[layoutByDevice]);
134
121
  var groupedCBIds = (_b = group === null || group === void 0 ? void 0 : group.childrenIds) !== null && _b !== void 0 ? _b : [];
135
- var filteredLayout = (0, useGroupDrag_2.filterItemsById)(parsedLayouts[layoutByDevice], groupedCBIds);
122
+ var filteredLayout = (0, group_2.filterItemsById)(parsedLayouts[layoutByDevice], groupedCBIds);
136
123
  if (group === null || group === void 0 ? void 0 : group.groupLayouts) {
137
124
  var groupCbs = parsedLayouts[layoutByDevice].filter(function (each) {
138
125
  return groupedCBIds.includes(each.i);
139
126
  });
140
127
  if (groupCbs.length > 0) {
141
- var newGroupLayout = (0, utils_1.getGroupForMultiple)(groupCbs);
128
+ var newGroupLayout = (0, group_2.getGroupForMultiple)(groupCbs);
142
129
  filteredLayout.push(newGroupLayout);
143
130
  }
144
131
  }
145
132
  return __assign(__assign({}, prev), (_a = {}, _a[layoutByDevice] = filteredLayout, _a));
146
133
  });
147
- }, [componentBlocks, useGroupDrag_2.getGroupCB, layoutByDevice]);
134
+ }, [componentBlocks, group_2.getGroupCB, layoutByDevice]);
148
135
  (0, react_1.useEffect)(function () {
149
136
  if (editingSectionId !== props.id) {
150
137
  setSelectedBlockId(null);
@@ -187,27 +174,29 @@ var CustomSection = (0, react_1.forwardRef)(function CustomSection(props, ref) {
187
174
  if (!selectedCBId) {
188
175
  return;
189
176
  }
190
- var bulks = getCollisionGroupIds(selectedCBId).map(function (cbid) { return blockIdMap.CB_ID[Number(cbid)]; });
191
- var bulkIds = (0, group_1.findAccessibleChildrenBlocks)(pedigreeState, editingGroupBlock, bulks);
192
- setBulkBlockIds(bulkIds);
193
- sectionActionHandler &&
194
- sectionActionHandler({
195
- type: '@CUSTOMSECTION/BLOCK_CLICKED',
196
- payload: {
197
- block: { type: 'BULK', blockId: 'BULK', childrenBlockIds: bulks }
198
- }
199
- });
177
+ // const bulks = getCollisionGroupIds(selectedCBId).map(
178
+ // (cbid) => blockIdMap.CB_ID[Number(cbid)]
179
+ // );
180
+ // const bulkIds = findAccessibleChildrenBlocks(pedigreeState, editingGroupBlock, bulks);
181
+ // setBulkBlockIds(bulkIds);
182
+ // sectionActionHandler &&
183
+ // sectionActionHandler({
184
+ // type: '@CUSTOMSECTION/BLOCK_CLICKED',
185
+ // payload: {
186
+ // block: { type: 'BULK', blockId: 'BULK', childrenBlockIds: bulks }
187
+ // }
188
+ // });
200
189
  setSelectedBlockId('BULK');
201
190
  }
202
- }, [selectedBlockId, shortcutKeyMode, getCollisionGroupIds, sectionActionHandler, setSelectedBlockId]);
191
+ }, [selectedBlockId, shortcutKeyMode, sectionActionHandler, setSelectedBlockId]);
203
192
  var makeAllInOneGroup = function () {
204
193
  var allRootChildIds = (0, group_1.findAllChildrenIds)(pedigreeState, editingGroupBlock, 'current');
205
194
  setBulkBlockIds(allRootChildIds);
206
195
  };
207
- var _o = (0, util_1.parseCustomSectionPlacement)({
196
+ var _m = (0, util_1.parseCustomSectionPlacement)({
208
197
  isMobile: isMobile,
209
198
  customSectionProps: CB_PLACEMENT_PROP_SECTION
210
- }), rows = _o.rows, width = _o.width, minHeight = _o.minHeight, isFullWidth = _o.isFullWidth;
199
+ }), rows = _m.rows, width = _m.width, minHeight = _m.minHeight, isFullWidth = _m.isFullWidth;
211
200
  var customSectionStyles = {
212
201
  minHeight: "".concat(minHeight, "vh"),
213
202
  width: '100%',
@@ -248,21 +237,23 @@ var CustomSection = (0, react_1.forwardRef)(function CustomSection(props, ref) {
248
237
  }
249
238
  if (shortcutKeyMode === 'COLLISION_SELECT') {
250
239
  var selectedCBId = selectedBlockId ? blockIdMap.BLOCK_ID[selectedBlockId] : undefined;
251
- var bulks = getCollisionGroupIds(id, selectedCBId).map(function (cbid) { return blockIdMap.CB_ID[Number(cbid)]; });
252
- var bulkIds = (0, group_1.findAccessibleChildrenBlocks)(pedigreeState, editingGroupBlock, bulks);
253
- setBulkBlockIds(bulkIds);
254
- sectionActionHandler &&
255
- sectionActionHandler({
256
- type: '@CUSTOMSECTION/BLOCK_CLICKED',
257
- payload: {
258
- block: {
259
- type: 'BULK',
260
- blockId: 'BULK',
261
- childrenBlockIds: bulkIds
262
- }
263
- }
264
- });
265
- setSelectedBlockId('BULK');
240
+ // const bulks = getCollisionGroupIds(id, selectedCBId).map(
241
+ // (cbid) => blockIdMap.CB_ID[Number(cbid)]
242
+ // );
243
+ // const bulkIds = findAccessibleChildrenBlocks(pedigreeState, editingGroupBlock, bulks);
244
+ // setBulkBlockIds(bulkIds);
245
+ // sectionActionHandler &&
246
+ // sectionActionHandler({
247
+ // type: '@CUSTOMSECTION/BLOCK_CLICKED',
248
+ // payload: {
249
+ // block: {
250
+ // type: 'BULK',
251
+ // blockId: 'BULK',
252
+ // childrenBlockIds: bulkIds
253
+ // }
254
+ // }
255
+ // });
256
+ // setSelectedBlockId('BULK');
266
257
  return;
267
258
  }
268
259
  setSelectedBlockId(blockId);
@@ -346,7 +337,7 @@ var CustomSection = (0, react_1.forwardRef)(function CustomSection(props, ref) {
346
337
  var blockId = blockIdMap.CB_ID[numberId];
347
338
  var isIdNumber = !Number.isNaN(numberId);
348
339
  if (blockId) {
349
- if ((0, useGroupDrag_2.getGroupCB)(layouts[layoutByDevice])) {
340
+ if ((0, group_2.getGroupCB)(layouts[layoutByDevice])) {
350
341
  setTimeout(function () {
351
342
  setBulkBlockIds([]);
352
343
  }, 100);
@@ -431,11 +422,24 @@ var CustomSection = (0, react_1.forwardRef)(function CustomSection(props, ref) {
431
422
  }
432
423
  });
433
424
  };
425
+ var onContextGroup = function (e, blockId, isEditingGroup) {
426
+ console.log(e, blockId, isEditingGroup);
427
+ setSelectedBlockId(blockId);
428
+ sectionActionHandler &&
429
+ sectionActionHandler({
430
+ type: '@CUSTOMSECTION/GROUP_RIGHT_CLICKED',
431
+ payload: {
432
+ blockId: blockId,
433
+ e: e,
434
+ isEditingGroup: isEditingGroup
435
+ }
436
+ });
437
+ };
434
438
  var onContextSection = function (e) {
435
439
  if (!isEditMode) {
436
440
  return;
437
441
  }
438
- if ((0, useGroupDrag_2.getGroupCB)(layouts[layoutByDevice])) {
442
+ if ((0, group_2.getGroupCB)(layouts[layoutByDevice])) {
439
443
  setBulkBlockIds([]);
440
444
  }
441
445
  setSelectedBlockId(null);
@@ -469,7 +473,7 @@ var CustomSection = (0, react_1.forwardRef)(function CustomSection(props, ref) {
469
473
  var clickOneCBInBulk = function (id) {
470
474
  var blockId = blockIdMap.CB_ID[id];
471
475
  if (shortcutKeyMode === 'COLLISION_SELECT') {
472
- makeCollisionOfBulk();
476
+ // makeCollisionOfBulk();
473
477
  return;
474
478
  }
475
479
  if (shortcutKeyMode === 'BULK_SELECT') {
@@ -501,7 +505,7 @@ var CustomSection = (0, react_1.forwardRef)(function CustomSection(props, ref) {
501
505
  if (shortcutKeyMode !== 'COLLISION_SELECT') {
502
506
  return;
503
507
  }
504
- makeCollisionOfBulk();
508
+ // makeCollisionOfBulk();
505
509
  };
506
510
  var showSectionHiddenCover = (function () {
507
511
  if (mode === 'EDIT') {
@@ -515,8 +519,8 @@ var CustomSection = (0, react_1.forwardRef)(function CustomSection(props, ref) {
515
519
  }
516
520
  return false;
517
521
  })();
518
- var _p = (0, react_1.useState)('ROOT'), editingGroupBlock = _p[0], setEditingGroupBlock = _p[1];
519
- var _q = (0, react_1.useState)([]), bulkBlockIds = _q[0], setBulkBlockIds = _q[1];
522
+ var _o = (0, react_1.useState)('ROOT'), editingGroupBlock = _o[0], setEditingGroupBlock = _o[1];
523
+ var _p = (0, react_1.useState)([]), bulkBlockIds = _p[0], setBulkBlockIds = _p[1];
520
524
  var newblock = bulkBlockIds.length > 0
521
525
  ? (0, group_1.addBulkToTarget)(pedigreeState, editingGroupBlock, bulkBlockIds)
522
526
  : pedigreeState;
@@ -631,13 +635,13 @@ var CustomSection = (0, react_1.forwardRef)(function CustomSection(props, ref) {
631
635
  fontSize: "".concat(baseFontSize, "px")
632
636
  }, onLayoutChange: onLayoutChange, onDragStart: onDragStart, onDragStop: onDragStop, onResizeStop: onResizeStop, onDragStopForGroup: onGroupDragStop, onFitToContent: onAutoFitContent, onWidthChange: onWidthChange, minNbRow: rows, isDraggable: isEditMode, isResizable: isEditMode,
633
637
  // GROUP
634
- selectedGroupBlock: (_c = selectedBlockId === null || selectedBlockId === void 0 ? void 0 : selectedBlockId.toString()) !== null && _c !== void 0 ? _c : 'ROOT', editingGroupBlock: editingGroupBlock, blockStructure: newblock, bulkIds: bulkBlockIds, onDoubleClickGroup: onDoubleClickGroup, onClickGroup: onClickGroup, onDoubleClickOutsideGroup: onDoubleClickOutsideGroup }, { children: layouts[layoutByDevice].map(function (each, index) {
638
+ selectedGroupBlock: (_c = selectedBlockId === null || selectedBlockId === void 0 ? void 0 : selectedBlockId.toString()) !== null && _c !== void 0 ? _c : 'ROOT', editingGroupBlock: editingGroupBlock, blockStructure: newblock, bulkIds: bulkBlockIds, onDoubleClickGroup: onDoubleClickGroup, onClickGroup: onClickGroup, onDoubleClickOutsideGroup: onDoubleClickOutsideGroup, onContextGroup: onContextGroup }, { children: layouts[layoutByDevice].map(function (each, index) {
635
639
  var matchedCB = componentBlocks === null || componentBlocks === void 0 ? void 0 : componentBlocks.find(function (cb) { return cb.id.toString() === each.i; });
636
640
  var isInBulk = bulkBlockIds.includes((0, group_1.getBlockIdByComponentId)(pedigreeState, Number(each.i)));
637
641
  if (!matchedCB) {
638
642
  return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
639
643
  }
640
- return ((0, jsx_runtime_1.jsx)("div", __assign({ className: (0, _clsx_1.clsx)({
644
+ return ((0, jsx_runtime_1.jsx)("div", __assign({ className: (0, clsx_1.clsx)({
641
645
  'react-grid-item-selected': selectedBlockId === blockIdMap.CB_ID[matchedCB.id]
642
646
  }) }, { children: (0, jsx_runtime_1.jsx)("div", __assign({ className: "grid-item-child", style: {
643
647
  width: '100%',
@@ -42,6 +42,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
42
42
  };
43
43
  Object.defineProperty(exports, "__esModule", { value: true });
44
44
  var jsx_runtime_1 = require("react/jsx-runtime");
45
+ /* eslint-disable @typescript-eslint/no-unused-vars */
45
46
  var react_1 = __importStar(require("react"));
46
47
  var ErrorBoundary_1 = require("../../../DynamicLayout/components/Section/ErrorBoundary");
47
48
  var dynamicLayoutContext_1 = require("../../../DynamicLayout/dynamicLayoutContext");
@@ -49,8 +50,6 @@ var styled_components_1 = __importDefault(require("styled-components"));
49
50
  var components_1 = require("../../components");
50
51
  var CustomSection_1 = require("./CustomSection");
51
52
  var FlexGridItem_1 = __importDefault(require("./FlexGridItem"));
52
- var useGroupDrag_1 = require("./hooks/useGroupDrag/useGroupDrag");
53
- var utils_1 = require("./hooks/useGroupDrag/utils");
54
53
  var useResizableObserver_1 = require("./hooks/useResizableObserver");
55
54
  var util_1 = require("./util");
56
55
  var parseSectionPadding_1 = __importDefault(require("./util/layoutPropParsers/parseSectionPadding"));
@@ -70,51 +69,14 @@ var CustomSection = (0, react_1.forwardRef)(function CustomSection(props, ref) {
70
69
  var gleRef = (0, react_1.useRef)(null);
71
70
  var isMobile = device === 'MOBILE';
72
71
  var isEditMode = mode === 'EDIT';
73
- var layoutByDevice = device === 'DESKTOP' ? 'lg' : 'sm';
74
- var _e = (0, react_1.useState)(function () {
75
- var _a = (0, util_1.parsePlacement)(componentBlocks !== null && componentBlocks !== void 0 ? componentBlocks : []), lg = _a.lg, sm = _a.sm;
76
- return {
77
- lg: lg,
78
- sm: sm
79
- };
80
- }), layouts = _e[0], setLayouts = _e[1];
81
- (0, react_1.useImperativeHandle)(ref, function () {
82
- return {
83
- selectCB: function (cbId) {
84
- setSelectedCB(cbId);
85
- },
86
- selectCBInBulk: function (cbIds) {
87
- var parsedLayouts = (0, util_1.parsePlacement)(componentBlocks !== null && componentBlocks !== void 0 ? componentBlocks : []);
88
- setLayouts(function (prev) {
89
- var _a;
90
- var filteredLayout = (0, useGroupDrag_1.filterItemsById)(parsedLayouts[layoutByDevice], cbIds);
91
- var newGroupLayout = (0, utils_1.getGroupForMultiple)(parsedLayouts[layoutByDevice].filter(function (each) { return cbIds.includes(each.i); }));
92
- filteredLayout.push(newGroupLayout);
93
- return __assign(__assign({}, prev), (_a = {}, _a[layoutByDevice] = filteredLayout, _a));
94
- });
95
- }
96
- };
97
- }, [componentBlocks]);
98
- (0, react_1.useLayoutEffect)(function () {
99
- var parsedLayouts = (0, util_1.parsePlacement)(componentBlocks !== null && componentBlocks !== void 0 ? componentBlocks : []);
100
- setLayouts(function (prev) {
101
- var _a;
102
- var _b;
103
- var group = (0, useGroupDrag_1.getGroupCB)(prev[layoutByDevice]);
104
- var groupedCBIds = (_b = group === null || group === void 0 ? void 0 : group.childrenIds) !== null && _b !== void 0 ? _b : [];
105
- var filteredLayout = (0, useGroupDrag_1.filterItemsById)(parsedLayouts[layoutByDevice], groupedCBIds);
106
- if (group === null || group === void 0 ? void 0 : group.groupLayouts) {
107
- var groupCbs = parsedLayouts[layoutByDevice].filter(function (each) {
108
- return groupedCBIds.includes(each.i);
109
- });
110
- if (groupCbs.length > 0) {
111
- var newGroupLayout = (0, utils_1.getGroupForMultiple)(groupCbs);
112
- filteredLayout.push(newGroupLayout);
113
- }
114
- }
115
- return __assign(__assign({}, prev), (_a = {}, _a[layoutByDevice] = filteredLayout, _a));
116
- });
117
- }, [componentBlocks, useGroupDrag_1.getGroupCB, layoutByDevice]);
72
+ // const layoutByDevice = device === 'DESKTOP' ? 'lg' : 'sm';
73
+ // const [layouts] = useState<LayoutsType>(() => {
74
+ // const { lg, sm } = parsePlacement(componentBlocks ?? []);
75
+ // return {
76
+ // lg,
77
+ // sm
78
+ // };
79
+ // });
118
80
  (0, react_1.useEffect)(function () {
119
81
  if (editingSectionId !== props.id) {
120
82
  setSelectedCB(null);
@@ -162,10 +124,10 @@ var CustomSection = (0, react_1.forwardRef)(function CustomSection(props, ref) {
162
124
  setSelectedCB('BULK');
163
125
  }
164
126
  }, [selectedCB, shortcutKeyMode, sectionActionHandler, setSelectedCB]);
165
- var _f = (0, util_1.parseCustomSectionPlacement)({
127
+ var _e = (0, util_1.parseCustomSectionPlacement)({
166
128
  isMobile: isMobile,
167
129
  customSectionProps: CB_PLACEMENT_PROP_SECTION
168
- }), width = _f.width, minHeight = _f.minHeight, isFullWidth = _f.isFullWidth;
130
+ }), width = _e.width, minHeight = _e.minHeight, isFullWidth = _e.isFullWidth;
169
131
  var customSectionStyles = {
170
132
  minHeight: "".concat(minHeight, "vh"),
171
133
  width: '100%',
@@ -175,9 +137,6 @@ var CustomSection = (0, react_1.forwardRef)(function CustomSection(props, ref) {
175
137
  if (!isEditMode) {
176
138
  return;
177
139
  }
178
- if ((0, useGroupDrag_1.getGroupCB)(layouts[layoutByDevice])) {
179
- // breakGroupCB();
180
- }
181
140
  setSelectedCB(null);
182
141
  sectionActionHandler &&
183
142
  sectionActionHandler({
@@ -1,4 +1,5 @@
1
- import type { ComponentBlock } from '../../types';
1
+ import type { ComponentBlock } from '../types';
2
+ import type { Layout } from 'publ-echo-test/dist/lib';
2
3
  import type { LayoutItem } from 'publ-echo/dist/lib';
3
4
  export interface LayoutItemWithGroupType extends LayoutItem {
4
5
  childrenIds: string[];
@@ -11,3 +12,5 @@ export declare function splitComponentBlocksByGroup(componentBlocks: ComponentBl
11
12
  inGroup: ComponentBlock[];
12
13
  notInGroup: ComponentBlock[];
13
14
  };
15
+ export declare function getGroupCB(layout: Layout): LayoutItemWithGroupType | null;
16
+ export declare const filterItemsById: (layout: Layout, idsToRemove: Array<string>) => import("publ-echo-test/dist/lib").LayoutItem[];
@@ -20,7 +20,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
20
20
  return to.concat(ar || Array.prototype.slice.call(from));
21
21
  };
22
22
  Object.defineProperty(exports, "__esModule", { value: true });
23
- exports.splitComponentBlocksByGroup = exports.getGroupForMultiple = exports.recalculatedGroup = exports.getGroupData = void 0;
23
+ exports.filterItemsById = exports.getGroupCB = exports.splitComponentBlocksByGroup = exports.getGroupForMultiple = exports.recalculatedGroup = exports.getGroupData = void 0;
24
24
  function getGroupData(elem1, elem2) {
25
25
  var _a, _b;
26
26
  var minX = Math.min(elem1.x, elem2.x);
@@ -125,3 +125,16 @@ function splitComponentBlocksByGroup(componentBlocks, groupIds) {
125
125
  };
126
126
  }
127
127
  exports.splitComponentBlocksByGroup = splitComponentBlocksByGroup;
128
+ function getGroupCB(layout) {
129
+ var groupIdx = layout.findIndex(function (item) { return item.i === 'group'; });
130
+ if (groupIdx < 0) {
131
+ return null;
132
+ }
133
+ var groupItem = layout[groupIdx];
134
+ return groupItem;
135
+ }
136
+ exports.getGroupCB = getGroupCB;
137
+ var filterItemsById = function (layout, idsToRemove) {
138
+ return layout.filter(function (item) { return !idsToRemove.includes(item.i); });
139
+ };
140
+ exports.filterItemsById = filterItemsById;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pds-dev-kit-web-test",
3
- "version": "2.5.61",
3
+ "version": "2.5.63",
4
4
  "license": "MIT",
5
5
  "private": false,
6
6
  "main": "dist/index.js",
@@ -23,7 +23,7 @@
23
23
  "lottie-react": "^2.3.1",
24
24
  "nuka-carousel": "^4.8.4",
25
25
  "publ-echo": "^0.0.99",
26
- "publ-echo-test": "^0.0.106",
26
+ "publ-echo-test": "^0.0.108",
27
27
  "react-hook-form": "^7.28.1",
28
28
  "react-i18next": "^11.12.0",
29
29
  "react-router-dom": "^5.2.0",
@@ -1 +0,0 @@
1
- export { default as useGroupDrag } from './useGroupDrag';
@@ -1,8 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.useGroupDrag = void 0;
7
- var useGroupDrag_1 = require("./useGroupDrag");
8
- Object.defineProperty(exports, "useGroupDrag", { enumerable: true, get: function () { return __importDefault(useGroupDrag_1).default; } });
@@ -1,24 +0,0 @@
1
- /// <reference types="react" />
2
- import { LayoutItemWithGroupType } from './utils';
3
- import type { LayoutsType } from '../../CustomSection';
4
- import type { Device } from '../../util/types';
5
- import type { DynamicLayoutProps } from '../../../../../DynamicLayout/types';
6
- import type { Layout, LayoutItem } from 'publ-echo/dist/lib';
7
- type Props = {
8
- device: Device;
9
- layouts: LayoutsType;
10
- setLayouts: React.Dispatch<React.SetStateAction<LayoutsType>>;
11
- sectionActionHandler: DynamicLayoutProps['sectionActionHandler'];
12
- };
13
- declare function useGroupDrag({ device, setLayouts, sectionActionHandler, layouts }: Props): {
14
- setGroupCB: (selectedId: number | 'group', newId: number) => void;
15
- breakGroupCB: () => void;
16
- makeAllInOneGroup: () => void;
17
- escapeFromGroup: (id: string) => void;
18
- makeCollisionGroup: (id: number, selectedCBId?: number) => void;
19
- makeCollisionOfBulk: () => void;
20
- getCollisionGroupIds: (id: number, selectedCBId?: number) => string[];
21
- };
22
- export declare function getGroupCB(layout: Layout): LayoutItemWithGroupType | null;
23
- export declare const filterItemsById: (layout: Layout, idsToRemove: Array<string>) => LayoutItem[];
24
- export default useGroupDrag;
@@ -1,297 +0,0 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
14
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
15
- if (ar || !(i in from)) {
16
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
17
- ar[i] = from[i];
18
- }
19
- }
20
- return to.concat(ar || Array.prototype.slice.call(from));
21
- };
22
- var __importDefault = (this && this.__importDefault) || function (mod) {
23
- return (mod && mod.__esModule) ? mod : { "default": mod };
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.filterItemsById = exports.getGroupCB = void 0;
27
- // eslint-disable-next-line import/no-extraneous-dependencies
28
- var renderHelpers_1 = require("publ-echo/dist/lib/GridLayoutEditor/utils/renderHelpers");
29
- var react_1 = require("react");
30
- var deepCopy_1 = __importDefault(require("../../../../../DynamicLayout/utils/deepCopy"));
31
- var utils_1 = require("./utils");
32
- function useGroupDrag(_a) {
33
- var device = _a.device, setLayouts = _a.setLayouts, sectionActionHandler = _a.sectionActionHandler, layouts = _a.layouts;
34
- var layoutByDevice = device === 'DESKTOP' ? 'lg' : 'sm';
35
- function makeAllInOneGroup() {
36
- setLayouts(function (prev) {
37
- var _a, _b;
38
- var _c;
39
- // TODO: 임시용 카피
40
- var currentLayoutCopy = (0, deepCopy_1.default)(prev[layoutByDevice]);
41
- if (currentLayoutCopy.length === 0) {
42
- return prev;
43
- }
44
- var groupIdx = currentLayoutCopy.findIndex(function (item) { return item.i === 'group'; });
45
- // NOTE: 그룹이 없는 경우
46
- if (groupIdx < 0) {
47
- var group_1 = (0, utils_1.getGroupForMultiple)(currentLayoutCopy);
48
- sectionActionHandler &&
49
- sectionActionHandler({
50
- type: '@CUSTOMSECTION/BULK_CREATED',
51
- payload: {
52
- message: 'group generated',
53
- data: group_1
54
- }
55
- });
56
- return __assign(__assign({}, prev), (_a = {}, _a[layoutByDevice] = [group_1], _a));
57
- }
58
- // NOTE: 그룹이 이미 있는경우
59
- var groupItem = currentLayoutCopy.splice(groupIdx, 1)[0];
60
- if (!groupItem.groupLayouts) {
61
- return prev;
62
- }
63
- var groupItems = (_c = groupItem.groupLayouts.map(function (each) { return (__assign(__assign({}, each), { x: groupItem.x + each.x, y: groupItem.y + each.y })); })) !== null && _c !== void 0 ? _c : [];
64
- currentLayoutCopy.push.apply(currentLayoutCopy, groupItems);
65
- var group = (0, utils_1.getGroupForMultiple)(currentLayoutCopy);
66
- sectionActionHandler &&
67
- sectionActionHandler({
68
- type: '@CUSTOMSECTION/BULK_CREATED',
69
- payload: {
70
- message: 'group generated',
71
- data: group
72
- }
73
- });
74
- return __assign(__assign({}, prev), (_b = {}, _b[layoutByDevice] = [group], _b));
75
- });
76
- }
77
- function escapeFromGroup(id) {
78
- setLayouts(function (prev) {
79
- var _a;
80
- // TODO: 임시용 카피
81
- var currentLayoutCopy = (0, deepCopy_1.default)(prev[layoutByDevice]);
82
- var groupIdx = currentLayoutCopy.findIndex(function (item) { return item.i === 'group'; });
83
- var group = currentLayoutCopy[groupIdx];
84
- if (!group || !group.groupLayouts) {
85
- return prev;
86
- }
87
- var escapeIndex = group.groupLayouts.findIndex(function (each) { return each.i === id; });
88
- if (escapeIndex < 0) {
89
- return prev;
90
- }
91
- var escapedItem = group.groupLayouts.splice(escapeIndex, 1)[0];
92
- escapedItem.x += group.x;
93
- escapedItem.y += group.y;
94
- currentLayoutCopy.push(escapedItem);
95
- var newGroup = (0, utils_1.recalculatedGroup)(group);
96
- currentLayoutCopy.splice(groupIdx, 1, newGroup);
97
- sectionActionHandler &&
98
- sectionActionHandler({
99
- type: '@CUSTOMSECTION/ESCAPE_ONE_FROM_BULK',
100
- payload: {
101
- id: id
102
- }
103
- });
104
- return __assign(__assign({}, prev), (_a = {}, _a[layoutByDevice] = currentLayoutCopy, _a));
105
- });
106
- }
107
- function setGroupCB(selectedId, newId) {
108
- setLayouts(function (prev) {
109
- var _a;
110
- var currentLayoutCopy = (0, deepCopy_1.default)(prev[layoutByDevice]);
111
- var firstIdx = currentLayoutCopy.findIndex(function (item) {
112
- if (selectedId === 'group') {
113
- return item.i === 'group';
114
- }
115
- if (Number(item.i) === selectedId) {
116
- return true;
117
- }
118
- return false;
119
- });
120
- var firstElem = currentLayoutCopy.splice(firstIdx, 1)[0];
121
- var secondIdx = currentLayoutCopy.findIndex(function (item) { return Number(item.i) === newId; });
122
- var secondElem = currentLayoutCopy.splice(secondIdx, 1)[0];
123
- var group = (0, utils_1.getGroupData)(firstElem, secondElem);
124
- currentLayoutCopy.unshift(group);
125
- sectionActionHandler &&
126
- sectionActionHandler({
127
- type: '@CUSTOMSECTION/BULK_CREATED',
128
- payload: {
129
- message: 'group generated',
130
- data: group
131
- }
132
- });
133
- return __assign(__assign({}, prev), (_a = {}, _a[layoutByDevice] = currentLayoutCopy, _a));
134
- });
135
- }
136
- var breakGroupCB = (0, react_1.useCallback)(function () {
137
- setLayouts(function (prev) {
138
- var _a;
139
- var _b;
140
- // TODO: 임시용 카피
141
- var currentLayoutCopy = (0, deepCopy_1.default)(prev[layoutByDevice]);
142
- var groupIdx = currentLayoutCopy.findIndex(function (item) { return item.i === 'group'; });
143
- if (groupIdx < 0) {
144
- return prev;
145
- }
146
- var groupItem = currentLayoutCopy.splice(groupIdx, 1)[0];
147
- if (!groupItem.groupLayouts) {
148
- return prev;
149
- }
150
- var groupItems = (_b = groupItem.groupLayouts.map(function (each) { return (__assign(__assign({}, each), { x: groupItem.x + each.x, y: groupItem.y + each.y })); })) !== null && _b !== void 0 ? _b : [];
151
- currentLayoutCopy.push.apply(currentLayoutCopy, groupItems);
152
- return __assign(__assign({}, prev), (_a = {}, _a[layoutByDevice] = currentLayoutCopy, _a));
153
- });
154
- sectionActionHandler &&
155
- sectionActionHandler({
156
- type: '@CUSTOMSECTION/BULK_DISMISSED',
157
- payload: {
158
- message: 'group dismissed'
159
- }
160
- });
161
- }, []);
162
- function getCollisionGroupIds(id, selectedCBId) {
163
- var currentLayoutCopy = (0, deepCopy_1.default)(layouts[layoutByDevice]); // 현재 레이아웃 복사
164
- var additionalSelectedCBLayout = (function () {
165
- if (selectedCBId === undefined || id === selectedCBId) {
166
- return null;
167
- }
168
- return (0, renderHelpers_1.getLayoutItem)(currentLayoutCopy, selectedCBId.toString());
169
- })();
170
- var layout = (0, renderHelpers_1.getLayoutItem)(currentLayoutCopy, id.toString());
171
- if (!layout) {
172
- return []; // 해당 id에 대한 layout이 없으면 빈 배열 반환
173
- }
174
- var collisions = (0, renderHelpers_1.getAllCollisions)(currentLayoutCopy, layout);
175
- var groupLayouts = __spreadArray([layout], collisions, true);
176
- if (additionalSelectedCBLayout) {
177
- var alreadyHas = collisions.some(function (each) { return each.i === additionalSelectedCBLayout.i; });
178
- if (!alreadyHas) {
179
- groupLayouts.push(additionalSelectedCBLayout);
180
- }
181
- }
182
- // 충돌 그룹 내의 layout 아이템의 id만 반환
183
- return groupLayouts.map(function (item) { return item.i; });
184
- }
185
- function makeCollisionGroup(id, selectedCBId) {
186
- setLayouts(function (prev) {
187
- var _a, _b;
188
- var _c, _d;
189
- var currentLayoutCopy = (0, deepCopy_1.default)(prev[layoutByDevice]);
190
- var additionalSelectedCBLayout = (function () {
191
- if (selectedCBId === undefined) {
192
- return null;
193
- }
194
- if (id === selectedCBId) {
195
- return null;
196
- }
197
- return (0, renderHelpers_1.getLayoutItem)(currentLayoutCopy, selectedCBId.toString());
198
- })();
199
- var layout = (0, renderHelpers_1.getLayoutItem)(currentLayoutCopy, id.toString());
200
- if (!layout) {
201
- return prev;
202
- }
203
- var prevGroupIdx = currentLayoutCopy.findIndex(function (item) { return item.i === 'group'; });
204
- if (prevGroupIdx < 0) {
205
- var collisions = (0, renderHelpers_1.getAllCollisions)(currentLayoutCopy, layout);
206
- var groupLayouts = __spreadArray([layout], collisions, true);
207
- if (collisions.length === 0 && !additionalSelectedCBLayout) {
208
- sectionActionHandler &&
209
- sectionActionHandler({
210
- type: '@CUSTOMSECTION/COLLISION_NOT_FOUND',
211
- payload: {
212
- message: '겹치는 부분이 없어, 아무련 변화가 없습니다.'
213
- }
214
- });
215
- return prev;
216
- }
217
- if (additionalSelectedCBLayout) {
218
- var alreadyHas = collisions.some(function (each) { return each.i === additionalSelectedCBLayout.i; });
219
- !alreadyHas && groupLayouts.push(additionalSelectedCBLayout);
220
- }
221
- var group_2 = (0, utils_1.getGroupForMultiple)(groupLayouts);
222
- var filtered = currentLayoutCopy.filter(function (layout) { return !group_2.childrenIds.includes(layout.i); });
223
- sectionActionHandler &&
224
- sectionActionHandler({
225
- type: '@CUSTOMSECTION/BULK_CREATED',
226
- payload: {
227
- message: 'group generated with collision detect',
228
- data: group_2
229
- }
230
- });
231
- return __assign(__assign({}, prev), (_a = {}, _a[layoutByDevice] = __spreadArray([group_2], filtered, true), _a));
232
- }
233
- var groupItem = currentLayoutCopy.splice(prevGroupIdx, 1)[0];
234
- if (groupItem) {
235
- var collisions = (0, renderHelpers_1.getAllCollisions)(currentLayoutCopy, layout);
236
- var groupItems = (_d = (_c = groupItem.groupLayouts) === null || _c === void 0 ? void 0 : _c.map(function (each) { return (__assign(__assign({}, each), { x: groupItem.x + each.x, y: groupItem.y + each.y })); })) !== null && _d !== void 0 ? _d : [];
237
- var newGroup_1 = (0, utils_1.getGroupForMultiple)([layout].concat(collisions).concat(groupItems));
238
- var filtered = currentLayoutCopy.filter(function (layout) { return !newGroup_1.childrenIds.includes(layout.i); });
239
- sectionActionHandler &&
240
- sectionActionHandler({
241
- type: '@CUSTOMSECTION/BULK_CREATED',
242
- payload: {
243
- message: 'group generated with collision detect',
244
- data: newGroup_1
245
- }
246
- });
247
- return __assign(__assign({}, prev), (_b = {}, _b[layoutByDevice] = __spreadArray([newGroup_1], filtered, true), _b));
248
- }
249
- return prev;
250
- });
251
- }
252
- function makeCollisionOfBulk() {
253
- setLayouts(function (prev) {
254
- var _a;
255
- var _b, _c;
256
- var currentLayoutCopy = (0, deepCopy_1.default)(prev[layoutByDevice]);
257
- var prevGroupIdx = currentLayoutCopy.findIndex(function (item) { return item.i === 'group'; });
258
- var groupItem = currentLayoutCopy.splice(prevGroupIdx, 1)[0];
259
- var collisions = (0, renderHelpers_1.getAllCollisions)(currentLayoutCopy, groupItem);
260
- var groupItems = (_c = (_b = 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 : [];
261
- var newGroup = (0, utils_1.getGroupForMultiple)(groupItems.concat(collisions));
262
- var filtered = currentLayoutCopy.filter(function (layout) { return !newGroup.childrenIds.includes(layout.i); });
263
- sectionActionHandler &&
264
- sectionActionHandler({
265
- type: '@CUSTOMSECTION/BULK_CREATED',
266
- payload: {
267
- message: 'group generated with collision detect',
268
- data: newGroup
269
- }
270
- });
271
- return __assign(__assign({}, prev), (_a = {}, _a[layoutByDevice] = __spreadArray([newGroup], filtered, true), _a));
272
- });
273
- }
274
- return {
275
- setGroupCB: setGroupCB,
276
- breakGroupCB: breakGroupCB,
277
- makeAllInOneGroup: makeAllInOneGroup,
278
- escapeFromGroup: escapeFromGroup,
279
- makeCollisionGroup: makeCollisionGroup,
280
- makeCollisionOfBulk: makeCollisionOfBulk,
281
- getCollisionGroupIds: getCollisionGroupIds
282
- };
283
- }
284
- function getGroupCB(layout) {
285
- var groupIdx = layout.findIndex(function (item) { return item.i === 'group'; });
286
- if (groupIdx < 0) {
287
- return null;
288
- }
289
- var groupItem = layout[groupIdx];
290
- return groupItem;
291
- }
292
- exports.getGroupCB = getGroupCB;
293
- var filterItemsById = function (layout, idsToRemove) {
294
- return layout.filter(function (item) { return !idsToRemove.includes(item.i); });
295
- };
296
- exports.filterItemsById = filterItemsById;
297
- exports.default = useGroupDrag;