pds-dev-kit-web 2.2.49 → 2.2.50

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 +273 -26
  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 +19 -25
  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.50",
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,22 @@
1
1
  # PDS-DEV-KIT-WEB Release Notes
2
- ## [v2.2.49]
2
+ ## [v2.2.50]
3
3
  ## daily|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
+ * DATA_STRUCTURE
8
+ * 데이터 구조 서버와 일치 (jsonproperties.data) parser 삭제를 위해.
9
+ * BULK SELECT & ACTIONS
10
+ * 벌크 이동
11
+ * 벌크 복제 (+ shortcut)
12
+ * 벌크 삭제 (+ shortcut)
13
+ * 전체 선택
14
+ * 선택
15
+ * 벌크 내 요소 개별 선택해제
16
+ * 벌크 선택 해제
17
+ * 새로 복제된 CB / BULK - CB를 상위에서 선택할 수 있는 handler
18
+ * UX 개선
19
+ * 튕김 현상 개선 (ECHO 업데이트)
20
+ * 실효성 없는 변화 (제자리 drop, resize) 액션 제한
21
+ * 애니메이션 포함된 요소가 사라지는 현상
22
+ * 벌크 선택 시 1px차이로 움찔 거리는 이슈의 중요부분 (ECHO 업데이트)
@@ -1,2 +0,0 @@
1
- import type { ISection } from './types';
2
- export declare const customSectionMock1: ISection;