pds-dev-kit-web 2.2.49 → 2.2.51

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.
Files changed (50) hide show
  1. package/dist/src/sub/DynamicLayout/DynamicLayout.d.ts +1 -1
  2. package/dist/src/sub/DynamicLayout/DynamicLayout.js +4 -3
  3. package/dist/src/sub/DynamicLayout/components/EditModeSectionMatcher/EditModeSectionMatcher.d.ts +3 -2
  4. package/dist/src/sub/DynamicLayout/components/EditModeSectionMatcher/EditModeSectionMatcher.js +18 -6
  5. package/dist/src/sub/DynamicLayout/components/Section/components/CustomSectionBackground.js +3 -2
  6. package/dist/src/sub/DynamicLayout/hooks/useCustomSectionShortcut/useCustomSectionShortcut.d.ts +6 -0
  7. package/dist/src/sub/DynamicLayout/hooks/useCustomSectionShortcut/useCustomSectionShortcut.js +50 -0
  8. package/dist/src/sub/DynamicLayout/pagesPreviewMock.d.ts +1236 -2
  9. package/dist/src/sub/DynamicLayout/pagesPreviewMock.js +2298 -6
  10. package/dist/src/sub/DynamicLayout/sectionActionTypes.d.ts +23 -1
  11. package/dist/src/sub/DynamicLayout/sections/CustomSection/CustomSection.d.ts +10 -2
  12. package/dist/src/sub/DynamicLayout/sections/CustomSection/CustomSection.js +287 -25
  13. package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/ComponentBlock.d.ts +2 -1
  14. package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/ComponentBlock.js +2 -2
  15. package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/ComponentBlockMatcher.d.ts +2 -1
  16. package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/ComponentBlockMatcher.js +11 -10
  17. package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/Button/Button.d.ts +2 -2
  18. package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/Button/Button.js +4 -2
  19. package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/Divider/Divider.d.ts +2 -2
  20. package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/Divider/Divider.js +4 -2
  21. package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/Image/Image.d.ts +2 -2
  22. package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/Image/Image.js +4 -2
  23. package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/RichText/RichText.d.ts +2 -2
  24. package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/RichText/RichText.js +4 -2
  25. package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/Text/Text.d.ts +2 -2
  26. package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/Text/Text.js +5 -2
  27. package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/Twitter/Twitter.d.ts +2 -2
  28. package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/Twitter/Twitter.js +4 -2
  29. package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/Youtube/Youtube.d.ts +2 -2
  30. package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/Youtube/Youtube.js +5 -3
  31. package/dist/src/sub/DynamicLayout/sections/CustomSection/hooks/useGroupDrag/index.d.ts +1 -0
  32. package/dist/src/sub/DynamicLayout/sections/CustomSection/hooks/useGroupDrag/index.js +8 -0
  33. package/dist/src/sub/DynamicLayout/sections/CustomSection/hooks/useGroupDrag/useGroupDrag.d.ts +22 -0
  34. package/dist/src/sub/DynamicLayout/sections/CustomSection/hooks/useGroupDrag/useGroupDrag.js +273 -0
  35. package/dist/src/sub/DynamicLayout/sections/CustomSection/hooks/useGroupDrag/utils.d.ts +13 -0
  36. package/dist/src/sub/DynamicLayout/sections/CustomSection/hooks/useGroupDrag/utils.js +127 -0
  37. package/dist/src/sub/DynamicLayout/sections/CustomSection/hooks/useIntersectionObserver.d.ts +1 -1
  38. package/dist/src/sub/DynamicLayout/sections/CustomSection/hooks/useIntersectionObserver.js +21 -9
  39. package/dist/src/sub/DynamicLayout/sections/CustomSection/types.d.ts +29 -7
  40. package/dist/src/sub/DynamicLayout/sections/CustomSection/util/parseJsonProperties.d.ts +1 -1
  41. package/dist/src/sub/DynamicLayout/sections/CustomSection/util/parsePlacement.js +2 -2
  42. package/dist/src/sub/DynamicLayout/sections/CustomSection/util/types.d.ts +3 -0
  43. package/dist/src/sub/DynamicLayout/types.d.ts +25 -19
  44. package/dist/src/sub/DynamicLayout/utils/deepCopy.d.ts +1 -0
  45. package/dist/src/sub/DynamicLayout/utils/deepCopy.js +15 -0
  46. package/package.json +2 -2
  47. package/release-note.md +9 -26
  48. package/dist/src/sub/DynamicLayout/mock_customSection.d.ts +0 -2
  49. package/dist/src/sub/DynamicLayout/mock_customSection.js +0 -840
  50. package/dist/src/sub/DynamicLayout/nakedMocks.json +0 -847
@@ -0,0 +1,127 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.splitComponentBlocksByGroup = exports.getGroupForMultiple = exports.recalculatedGroup = exports.getGroupData = void 0;
24
+ function getGroupData(elem1, elem2) {
25
+ var _a, _b;
26
+ var minX = Math.min(elem1.x, elem2.x);
27
+ var minY = Math.min(elem1.y, elem2.y);
28
+ var elem1W = elem1.x - minX + elem1.w;
29
+ var elem2W = elem2.x - minX + elem2.w;
30
+ var elem1H = elem1.y - minY + elem1.h;
31
+ var elem2H = elem2.y - minY + elem2.h;
32
+ // NOTE: maxW, maxH 이름 변경 필요.
33
+ var maxW = Math.max(elem1W, elem2W);
34
+ var maxH = Math.max(elem1H, elem2H);
35
+ var maxZ = Math.max((_a = elem1 === null || elem1 === void 0 ? void 0 : elem1.z) !== null && _a !== void 0 ? _a : 0, (_b = elem2 === null || elem2 === void 0 ? void 0 : elem2.z) !== null && _b !== void 0 ? _b : 0);
36
+ var elem1InnerData = __assign(__assign({}, elem1), { x: elem1.x - minX, y: elem1.y - minY });
37
+ var elem2InnerData = __assign(__assign({}, elem2), { x: elem2.x - minX, y: elem2.y - minY });
38
+ var groupLayouts = elem1.groupLayouts
39
+ ? getAdaptedGroupLayouts(elem1.groupLayouts, elem2InnerData, elem1, minX, minY)
40
+ : [elem1InnerData, elem2InnerData];
41
+ var childrenIds = elem1.groupLayouts ? __spreadArray(__spreadArray([], elem1.childrenIds, true), [elem2.i], false) : [elem1.i, elem2.i];
42
+ return {
43
+ i: 'group',
44
+ x: minX,
45
+ y: minY,
46
+ w: maxW,
47
+ h: maxH,
48
+ z: maxZ,
49
+ groupLayouts: groupLayouts,
50
+ childrenIds: childrenIds
51
+ };
52
+ }
53
+ exports.getGroupData = getGroupData;
54
+ function recalculatedGroup(group) {
55
+ var _a;
56
+ if (!group.groupLayouts) {
57
+ return group;
58
+ }
59
+ var groupItemsWithOrgPlacement = (_a = group.groupLayouts.map(function (each) { return (__assign(__assign({}, each), { x: group.x + each.x, y: group.y + each.y })); })) !== null && _a !== void 0 ? _a : [];
60
+ return getGroupForMultiple(groupItemsWithOrgPlacement);
61
+ }
62
+ exports.recalculatedGroup = recalculatedGroup;
63
+ function getGroupForMultiple(elems) {
64
+ if (elems.length === 0) {
65
+ throw new Error('Array must contain at least one element.');
66
+ }
67
+ var _a = elems.reduce(function (acc, elem, idx, arr) {
68
+ var _a, _b;
69
+ if (idx === arr.length - 1) {
70
+ return acc;
71
+ }
72
+ var elem1 = idx === 0 ? elem : acc;
73
+ var elem2 = arr[idx + 1];
74
+ var minX = Math.min(elem1.x, elem2.x);
75
+ var minY = Math.min(elem1.y, elem2.y);
76
+ var elem1W = elem1.x - minX + elem1.w;
77
+ var elem2W = elem2.x - minX + elem2.w;
78
+ var elem1H = elem1.y - minY + elem1.h;
79
+ var elem2H = elem2.y - minY + elem2.h;
80
+ var maxZ = Math.max((_a = elem1 === null || elem1 === void 0 ? void 0 : elem1.z) !== null && _a !== void 0 ? _a : 0, (_b = elem2 === null || elem2 === void 0 ? void 0 : elem2.z) !== null && _b !== void 0 ? _b : 0);
81
+ return {
82
+ x: Math.min(elem1.x, elem2.x),
83
+ y: Math.min(elem1.y, elem2.y),
84
+ w: Math.max(elem1W, elem2W),
85
+ h: Math.max(elem1H, elem2H),
86
+ z: maxZ
87
+ };
88
+ }, { x: 0, y: 0, w: 0, h: 0, z: 0 }), minX = _a.x, minY = _a.y, maxW = _a.w, maxH = _a.h, maxZ = _a.z;
89
+ var groupLayouts = elems.map(function (elem) { return (__assign(__assign({}, elem), { x: elem.x - minX, y: elem.y - minY })); });
90
+ var childrenIds = elems.map(function (elem) { return elem.i; });
91
+ return {
92
+ i: 'group',
93
+ x: minX,
94
+ y: minY,
95
+ w: maxW,
96
+ h: maxH,
97
+ z: maxZ,
98
+ groupLayouts: groupLayouts,
99
+ childrenIds: childrenIds
100
+ };
101
+ }
102
+ exports.getGroupForMultiple = getGroupForMultiple;
103
+ function getAdaptedGroupLayouts(originals, comming, ogWrapper, minX, minY) {
104
+ var ogs = originals.map(function (og) {
105
+ var xNagativeGap = Math.max(0, ogWrapper.x - minX);
106
+ var yNagativeGap = Math.max(0, ogWrapper.y - minY);
107
+ return __assign(__assign({}, og), { x: og.x + xNagativeGap, y: og.y + yNagativeGap });
108
+ });
109
+ return __spreadArray(__spreadArray([], ogs, true), [comming], false);
110
+ }
111
+ function splitComponentBlocksByGroup(componentBlocks, groupIds) {
112
+ var inGroup = [];
113
+ var notInGroup = [];
114
+ componentBlocks.forEach(function (cb) {
115
+ if (groupIds.includes(cb.id.toString())) {
116
+ inGroup.push(cb);
117
+ }
118
+ else {
119
+ notInGroup.push(cb);
120
+ }
121
+ });
122
+ return {
123
+ inGroup: inGroup,
124
+ notInGroup: notInGroup
125
+ };
126
+ }
127
+ exports.splitComponentBlocksByGroup = splitComponentBlocksByGroup;
@@ -2,5 +2,5 @@ import { RefObject } from 'react';
2
2
  interface Args extends IntersectionObserverInit {
3
3
  freezeOnceVisible?: boolean;
4
4
  }
5
- export declare function useIntersectionObserver(elementRef: RefObject<Element>, { threshold, root, rootMargin, freezeOnceVisible }: Args): IntersectionObserverEntry | undefined;
5
+ export declare function useIntersectionObserver(elementRef: RefObject<Element>, { threshold, root, rootMargin, freezeOnceVisible }: Args, deps: any[]): IntersectionObserverEntry | undefined;
6
6
  export {};
@@ -1,26 +1,38 @@
1
1
  "use strict";
2
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
3
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4
+ if (ar || !(i in from)) {
5
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6
+ ar[i] = from[i];
7
+ }
8
+ }
9
+ return to.concat(ar || Array.prototype.slice.call(from));
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.useIntersectionObserver = void 0;
4
13
  var react_1 = require("react");
5
- function useIntersectionObserver(elementRef, _a) {
14
+ function useIntersectionObserver(elementRef, _a, deps) {
6
15
  var _b = _a.threshold, threshold = _b === void 0 ? 0 : _b, _c = _a.root, root = _c === void 0 ? null : _c, _d = _a.rootMargin, rootMargin = _d === void 0 ? '0%' : _d, _e = _a.freezeOnceVisible, freezeOnceVisible = _e === void 0 ? false : _e;
7
16
  var _f = (0, react_1.useState)(), entry = _f[0], setEntry = _f[1];
8
17
  var frozen = (entry === null || entry === void 0 ? void 0 : entry.isIntersecting) && freezeOnceVisible;
9
- var updateEntry = function (_a) {
10
- var entry = _a[0];
11
- setEntry(entry);
12
- };
13
- (0, react_1.useEffect)(function () {
18
+ (0, react_1.useLayoutEffect)(function () {
19
+ var updateEntry = function (_a) {
20
+ var entry = _a[0];
21
+ setEntry(entry);
22
+ };
14
23
  var node = elementRef === null || elementRef === void 0 ? void 0 : elementRef.current; // DOM Ref
15
24
  var hasIOSupport = !!window.IntersectionObserver;
16
- if (!hasIOSupport || frozen || !node)
25
+ if (!hasIOSupport || frozen || !node) {
17
26
  return;
27
+ }
18
28
  var observerParams = { threshold: threshold, root: root, rootMargin: rootMargin };
19
29
  var observer = new IntersectionObserver(updateEntry, observerParams);
20
30
  observer.observe(node);
21
- return function () { return observer.disconnect(); };
31
+ return function () {
32
+ observer.disconnect();
33
+ };
22
34
  // eslint-disable-next-line react-hooks/exhaustive-deps
23
- }, [elementRef === null || elementRef === void 0 ? void 0 : elementRef.current, JSON.stringify(threshold), root, rootMargin, frozen]);
35
+ }, __spreadArray([elementRef === null || elementRef === void 0 ? void 0 : elementRef.current, JSON.stringify(threshold), root, rootMargin, frozen], deps, true));
24
36
  return entry;
25
37
  }
26
38
  exports.useIntersectionObserver = useIntersectionObserver;
@@ -9,34 +9,56 @@ type GeneralCustomSectionType = {
9
9
  queryableDefinitionPreset: string;
10
10
  dynamicLayoutSectionId: number;
11
11
  };
12
+ export type GroupCustomSectionType = {
13
+ id: 'group';
14
+ type: 'GROUP';
15
+ availablePlugins: Array<string>;
16
+ queryableTapSrc: string;
17
+ queryableDefinitionPreset: string;
18
+ dynamicLayoutSectionId: number;
19
+ };
12
20
  export type AllCBProperties = CB_TEXT_PROPERTIES_TYPE | CB_BTN_PROPERTIES_TYPE | CB_RICHTEXT_PROPERTIES_TYPE | CB_RICHTEXT_PROPERTIES_TYPE | CB_DIVIDER_PROPERTIES_TYPE | CB_YOUTUBE_PROPERTIES_TYPE | CB_IMG_PROPERTIES_TYPE | CB_TWITTER_PROPERTIES_TYPE;
13
21
  export type CB_TEXT_TYPE = GeneralCustomSectionType & {
14
22
  componentBlockCode: CB_ALL_CODES.CB_TEXT;
15
- properties: CB_TEXT_PROPERTIES_TYPE;
23
+ jsonProperties: {
24
+ data: CB_TEXT_PROPERTIES_TYPE;
25
+ };
16
26
  };
17
27
  export type CB_BTN_TYPE = GeneralCustomSectionType & {
18
28
  componentBlockCode: CB_ALL_CODES.CB_BTN;
19
- properties: CB_BTN_PROPERTIES_TYPE;
29
+ jsonProperties: {
30
+ data: CB_BTN_PROPERTIES_TYPE;
31
+ };
20
32
  };
21
33
  export type CB_RICHTEXT = GeneralCustomSectionType & {
22
34
  componentBlockCode: CB_ALL_CODES.CB_RICHTEXT;
23
- properties: CB_RICHTEXT_PROPERTIES_TYPE;
35
+ jsonProperties: {
36
+ data: CB_RICHTEXT_PROPERTIES_TYPE;
37
+ };
24
38
  };
25
39
  export type CB_DIVIDER = GeneralCustomSectionType & {
26
40
  componentBlockCode: CB_ALL_CODES.CB_DIVIDER;
27
- properties: CB_DIVIDER_PROPERTIES_TYPE;
41
+ jsonProperties: {
42
+ data: CB_DIVIDER_PROPERTIES_TYPE;
43
+ };
28
44
  };
29
45
  export type CB_IMG = GeneralCustomSectionType & {
30
46
  componentBlockCode: CB_ALL_CODES.CB_IMG;
31
- properties: CB_IMG_PROPERTIES_TYPE;
47
+ jsonProperties: {
48
+ data: CB_IMG_PROPERTIES_TYPE;
49
+ };
32
50
  };
33
51
  export type CB_YOUTUBE = GeneralCustomSectionType & {
34
52
  componentBlockCode: CB_ALL_CODES.CB_YOUTUBE;
35
- properties: CB_YOUTUBE_PROPERTIES_TYPE;
53
+ jsonProperties: {
54
+ data: CB_YOUTUBE_PROPERTIES_TYPE;
55
+ };
36
56
  };
37
57
  export type CB_TWITTER = GeneralCustomSectionType & {
38
58
  componentBlockCode: CB_ALL_CODES.CB_TWITTER;
39
- properties: CB_TWITTER_PROPERTIES_TYPE;
59
+ jsonProperties: {
60
+ data: CB_TWITTER_PROPERTIES_TYPE;
61
+ };
40
62
  };
41
63
  export declare enum CB_ALL_CODES {
42
64
  CB_TEXT = "CB_TEXT",
@@ -1,3 +1,3 @@
1
1
  import type { Device, JsonPropertiesParserResult } from './types';
2
2
  import type { ISectionJsonProperties } from '../../../../DynamicLayout/types';
3
- export default function parseJsonProperties(properties: ISectionJsonProperties | undefined, device: Device): JsonPropertiesParserResult;
3
+ export default function parseJsonProperties(properties: ISectionJsonProperties['data'] | undefined, device: Device): JsonPropertiesParserResult;
@@ -12,8 +12,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.parsePlacement = void 0;
13
13
  function parsePlacement(components) {
14
14
  return components.reduce(function (acc, cur) {
15
- var id = cur.id, properties = cur.properties;
16
- var _a = parsePropPlacement(properties.CB_PLACEMENT_PROP_PLACEMENT, id), mobileLayout = _a.mobileLayout, desktopLayout = _a.desktopLayout;
15
+ var id = cur.id, jsonProperties = cur.jsonProperties;
16
+ var _a = parsePropPlacement(jsonProperties.data.CB_PLACEMENT_PROP_PLACEMENT, id), mobileLayout = _a.mobileLayout, desktopLayout = _a.desktopLayout;
17
17
  return {
18
18
  sm: __spreadArray(__spreadArray([], acc.sm, true), [mobileLayout], false),
19
19
  lg: __spreadArray(__spreadArray([], acc.lg, true), [desktopLayout], false)
@@ -132,3 +132,6 @@ export type ParserResult = {
132
132
  };
133
133
  export type JsonPropertiesParserResult = Omit<ParserResult, 'hoverStyle'> & OverlayStyle;
134
134
  export type NamedPropAllTypes = NamedStylePropType | NamedLayoutPropType;
135
+ export type IndexForIntersection = {
136
+ index: number;
137
+ };
@@ -1,11 +1,12 @@
1
- /// <reference types="react" />
2
1
  import type { TypeOfSectionAction } from './sectionActionTypes';
2
+ import type { CustomSectionImperativeHandleRef } from './sections/CustomSection/CustomSection';
3
3
  import type { ComponentBlock } from './sections/CustomSection/types';
4
4
  import type { CB_CONTENT_PROP_VISIBILITY_SPECS } from './sections/CustomSection/util/contentPropParsers/parseContentVisibility';
5
5
  import type { CB_EFFECT_PROP_ENTANIM_SPECS } from './sections/CustomSection/util/effectPropParsers/parseEffectPropEntAnim';
6
6
  import type { CB_LAYOUT_PROP_PADDING_SPECS } from './sections/CustomSection/util/layoutPropParsers/parseLayoutPropPadding';
7
7
  import type { CB_STYLE_PROP_BGCOLOR_SPECS } from './sections/CustomSection/util/stylePropParsers/parseStylePropBgColor';
8
8
  import type { CB_STYLE_PROP_BGOVERLAY_SPECS } from './sections/CustomSection/util/stylePropParsers/parseStylePropBgOverlay';
9
+ import type { Ref } from 'react';
9
10
  export { TypeOfSectionAction };
10
11
  export type TypeOfSectionManifestSchema = 'BASE_INTRO' | 'BASE_CONTENTS' | 'BASE_CONTENTS_CAROUSEL' | 'BASE_FOOTER' | 'BASE_INFO_BOX' | 'EXP_IFRAME' | 'PRG_MEMBERSHIP_DISPLAY' | 'CUSTOM';
11
12
  export type TypeofSectionTemplate = 'BASE_INTRO_A' | 'BASE_INTRO_B' | 'BASE_INTRO_C' | 'BASE_INTRO_D' | 'BASE_CONTENTS_A' | 'BASE_CONTENTS_B' | 'BASE_CONTENTS_CAROUSEL_A' | 'BASE_CONTENTS_CAROUSEL_B' | 'BASE_FOOTER_A' | 'BASE_FOOTER_B' | 'BASE_INFO_BOX_A' | 'EXP_IFRAME_A' | 'PRG_MEMBERSHIP_DISPLAY_A' | 'PRG_MEMBERSHIP_DISPLAY_B' | null | undefined;
@@ -210,6 +211,7 @@ export interface IItemDescription extends IDescription {
210
211
  text: string;
211
212
  color?: string;
212
213
  }
214
+ export type CustomSectionShortcutKeysType = 'BULK_SELECT' | 'COLLISION_SELECT' | 'SELECT_ALL' | 'MANUAL_COLLISION_SELECT' | 'MANUAL_BULK_BREAK' | null;
213
215
  export type DynamicLayoutProps = {
214
216
  device: 'DESKTOP' | 'MOBILE';
215
217
  /** @default 'NORMAL */
@@ -224,6 +226,8 @@ export type DynamicLayoutProps = {
224
226
  sectionActionHandler?: (action: TypeOfSectionAction) => void;
225
227
  programmedSectionComponents?: IProgrammedSectionComponents;
226
228
  width?: number;
229
+ shortcutKeyMode?: CustomSectionShortcutKeysType;
230
+ dynamicLayoutRef?: Ref<CustomSectionImperativeHandleRef>;
227
231
  };
228
232
  export type NavHandlerAction = {
229
233
  openNewTab: boolean;
@@ -295,25 +299,27 @@ export type IMembershipDisplay = {
295
299
  connectedMemberships: IConnectedMembership[];
296
300
  };
297
301
  export type ISectionJsonProperties = {
298
- CB_CONTENT_PROP_SECTION: {
299
- CB_CONTENT_PROP_SECTION_SPEC_VARIABLEROOTFONTSIZE: boolean;
300
- };
301
- CB_CONTENT_PROP_VISIBILITY: CB_CONTENT_PROP_VISIBILITY_SPECS;
302
- CB_EFFECT_PROP_ENTANIM: CB_EFFECT_PROP_ENTANIM_SPECS;
303
- CB_LAYOUT_PROP_PADDING?: CB_LAYOUT_PROP_PADDING_SPECS;
304
- CB_PLACEMENT_PROP_SECTION: {
305
- CB_PLACEMENT_PROP_SECTION_SPEC_FULLWIDTH: boolean;
306
- 'CB_PLACEMENT_PROP_SECTION_SPEC_FULLWIDTH:MOBILE': boolean | null | undefined;
307
- CB_PLACEMENT_PROP_SECTION_SPEC_MINHEIGHT: number;
308
- 'CB_PLACEMENT_PROP_SECTION_SPEC_MINHEIGHT:MOBILE': number | null | undefined;
309
- CB_PLACEMENT_PROP_SECTION_SPEC_ROWS: number;
310
- 'CB_PLACEMENT_PROP_SECTION_SPEC_ROWS:MOBILE': number | null | undefined;
311
- CB_PLACEMENT_PROP_SECTION_SPEC_WIDTH: number;
312
- 'CB_PLACEMENT_PROP_SECTION_SPEC_WIDTH:MOBILE': number | null | undefined;
302
+ data: {
303
+ CB_CONTENT_PROP_SECTION: {
304
+ CB_CONTENT_PROP_SECTION_SPEC_VARIABLEROOTFONTSIZE: boolean;
305
+ };
306
+ CB_CONTENT_PROP_VISIBILITY: CB_CONTENT_PROP_VISIBILITY_SPECS;
307
+ CB_EFFECT_PROP_ENTANIM: CB_EFFECT_PROP_ENTANIM_SPECS;
308
+ CB_LAYOUT_PROP_PADDING?: CB_LAYOUT_PROP_PADDING_SPECS;
309
+ CB_PLACEMENT_PROP_SECTION: {
310
+ CB_PLACEMENT_PROP_SECTION_SPEC_FULLWIDTH: boolean;
311
+ 'CB_PLACEMENT_PROP_SECTION_SPEC_FULLWIDTH:MOBILE': boolean | null | undefined;
312
+ CB_PLACEMENT_PROP_SECTION_SPEC_MINHEIGHT: number;
313
+ 'CB_PLACEMENT_PROP_SECTION_SPEC_MINHEIGHT:MOBILE': number | null | undefined;
314
+ CB_PLACEMENT_PROP_SECTION_SPEC_ROWS: number;
315
+ 'CB_PLACEMENT_PROP_SECTION_SPEC_ROWS:MOBILE': number | null | undefined;
316
+ CB_PLACEMENT_PROP_SECTION_SPEC_WIDTH: number;
317
+ 'CB_PLACEMENT_PROP_SECTION_SPEC_WIDTH:MOBILE': number | null | undefined;
318
+ };
319
+ CB_STYLE_PROP_BGCOLOR?: CB_STYLE_PROP_BGCOLOR_SPECS;
320
+ CB_STYLE_PROP_BGMEDIA?: CB_STYLE_PROP_BGMEDIA_SPECS;
321
+ CB_STYLE_PROP_BGOVERLAY?: CB_STYLE_PROP_BGOVERLAY_SPECS;
313
322
  };
314
- CB_STYLE_PROP_BGCOLOR?: CB_STYLE_PROP_BGCOLOR_SPECS;
315
- CB_STYLE_PROP_BGMEDIA?: CB_STYLE_PROP_BGMEDIA_SPECS;
316
- CB_STYLE_PROP_BGOVERLAY?: CB_STYLE_PROP_BGOVERLAY_SPECS;
317
323
  };
318
324
  export type CB_STYLE_PROP_BGMEDIA_SPECS_BASE = {
319
325
  CB_STYLE_PROP_BGMEDIA_SPEC_YSRC: string;
@@ -0,0 +1 @@
1
+ export default function deepCopy<T>(obj: T): T;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function deepCopy(obj) {
4
+ if (typeof obj !== 'object' || obj === null) {
5
+ return obj;
6
+ }
7
+ var result = Array.isArray(obj) ? [] : {};
8
+ for (var key in obj) {
9
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
10
+ result[key] = deepCopy(obj[key]);
11
+ }
12
+ }
13
+ return result;
14
+ }
15
+ exports.default = deepCopy;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pds-dev-kit-web",
3
- "version": "2.2.49",
3
+ "version": "2.2.51",
4
4
  "license": "MIT",
5
5
  "private": false,
6
6
  "main": "dist/index.js",
@@ -22,7 +22,7 @@
22
22
  "i18next-intervalplural-postprocessor": "^3.0.0",
23
23
  "lottie-react": "^2.3.1",
24
24
  "nuka-carousel": "^4.8.4",
25
- "publ-echo": "^0.0.25",
25
+ "publ-echo": "^0.0.45",
26
26
  "react-hook-form": "^7.28.1",
27
27
  "react-i18next": "^11.12.0",
28
28
  "react-router-dom": "^5.2.0",
package/release-note.md CHANGED
@@ -1,28 +1,11 @@
1
1
  # PDS-DEV-KIT-WEB Release Notes
2
- ## [v2.2.49]
3
- ## daily|https://design.storybook.publ.biz/
2
+ ## [v2.2.51]
3
+ ## urgent|https://design.storybook.publ.biz/
4
4
 
5
- ### Component
6
- * Icon
7
- * ic_home
8
- * fill 추가
9
- * ic_papp_type
10
- * fill 추가
11
- * ic_plan
12
- * fill 추가
13
- * ic_sales
14
- * fill 추가
15
- * ic_selle_intro
16
- * fill 추가
17
- * ic_shoppingbag
18
- * fill 추가
19
- * ic_site
20
- * line, fill 추가
21
- * ic_target
22
- * fill 추가
23
- * ic_user
24
- * line, fill 추가
25
- * TextFieldBase
26
- * enter관련하여 e.code를 사용하던 부분을 e.key로 변경
27
- ### Color
28
- * 컬러 키 값 24.02.21 11시 42분 기준 싱크
5
+ ### sub
6
+ * DynamicLayout
7
+ * BULK SELECT & ACTIONS 관련 UX개선
8
+ * 남은 CB가 1개일 때 전체선택 -> 이상하게 됨 -> 하나만 선택되도록
9
+ * shift 없이 우클릭 시 기존 벌크 해제
10
+ * 다른 CustomSection 클릭시 벌크 해제
11
+ * SHIFT 누른 채로 다른 CB제자리 드롭 시 → 클릭으로 판정하여 벌크에 포함
@@ -1,2 +0,0 @@
1
- import type { ISection } from './types';
2
- export declare const customSectionMock1: ISection;