pds-dev-kit-web-test 2.7.607 → 2.7.608

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 (18) hide show
  1. package/dist/src/sub/DynamicLayout/CompositionRenderer/FlexGridItem.d.ts +1 -1
  2. package/dist/src/sub/DynamicLayout/CompositionRenderer/FlexGridItem.js +17 -0
  3. package/dist/src/sub/DynamicLayout/DynamicLayout.js +4 -3
  4. package/dist/src/sub/DynamicLayout/IntersectionObserverContext.d.ts +15 -0
  5. package/dist/src/sub/DynamicLayout/IntersectionObserverContext.js +96 -0
  6. package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/Button/Button.js +1 -1
  7. package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsCarousel/ContentsCarousel.js +9 -2
  8. package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsList/ContentsList.js +9 -2
  9. package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/Image/Image.js +1 -1
  10. package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/SlideBanner/SlideBanner.js +9 -2
  11. package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/Text/Text.js +1 -1
  12. package/dist/src/sub/DynamicLayout/sections/CustomSection/components/fallbacks/EmptyTextForRender.d.ts +2 -0
  13. package/dist/src/sub/DynamicLayout/sections/CustomSection/components/fallbacks/EmptyTextForRender.js +20 -0
  14. package/dist/src/sub/DynamicLayout/sections/CustomSection/hooks/useIntersectionObserver.js +8 -0
  15. package/dist/src/sub/DynamicLayout/utils/groupUtils.d.ts +1 -1
  16. package/dist/src/sub/DynamicLayout/utils/groupUtils.js +1 -1
  17. package/package.json +1 -1
  18. package/release-note.md +2 -3
@@ -10,7 +10,7 @@ type Props = {
10
10
  zIndex: number;
11
11
  showPinned?: boolean;
12
12
  style?: React.CSSProperties;
13
- isParentGroupHeightVariable: boolean;
13
+ isParentGroupHeightVariable: boolean | null;
14
14
  block: Block;
15
15
  };
16
16
  declare function FlexGridItem({ cb, index, device, rowHeight, zIndex, showPinned, block, style, isParentGroupHeightVariable }: Props): JSX.Element;
@@ -20,11 +20,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
20
20
  Object.defineProperty(exports, "__esModule", { value: true });
21
21
  exports.getGridAreaFromCB = void 0;
22
22
  var jsx_runtime_1 = require("react/jsx-runtime");
23
+ var react_1 = require("react");
23
24
  var styled_components_1 = __importDefault(require("styled-components"));
25
+ var dynamicLayoutContext_1 = require("../dynamicLayoutContext");
24
26
  var ComponentBlockMatcherWithCCB_1 = __importDefault(require("../sections/CustomSection/components/ComponentBlock/ComponentBlockMatcherWithCCB"));
25
27
  var gap = 10;
26
28
  function FlexGridItem(_a) {
27
29
  var cb = _a.cb, index = _a.index, device = _a.device, rowHeight = _a.rowHeight, zIndex = _a.zIndex, showPinned = _a.showPinned, block = _a.block, style = _a.style, isParentGroupHeightVariable = _a.isParentGroupHeightVariable;
30
+ var queryData = (0, react_1.useContext)(dynamicLayoutContext_1.dynamicLayoutContext).queryData;
28
31
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
29
32
  var defaultHeight = getMaxHeight(cb.jsonProperties.data.CB_PLACEMENT_PROP_PLACEMENT, device, rowHeight);
30
33
  var gridArea = getGridAreaFromCB(cb.jsonProperties.data.CB_PLACEMENT_PROP_PLACEMENT, device);
@@ -43,6 +46,10 @@ function FlexGridItem(_a) {
43
46
  }
44
47
  }
45
48
  if ('CB_STYLE_PROP_CONTENTSLISTDESIGN' in cb.jsonProperties.data) {
49
+ var isEmptyTextShowing = isContentsListShowingEmptyText(cb.jsonProperties.data.CB_CONTENT_PROP_CONTENTSLIST, queryData);
50
+ if (isEmptyTextShowing) {
51
+ return false;
52
+ }
46
53
  var desktopValue = (_f = (_e = cb.jsonProperties.data.CB_LAYOUT_PROP_HEIGHTADJUSTMENT) === null || _e === void 0 ? void 0 : _e.CB_LAYOUT_PROP_HEIGHTADJUSTMENT_SPEC_HEIGHTFITCONTENT) !== null && _f !== void 0 ? _f : true;
47
54
  if (device === 'DESKTOP') {
48
55
  return desktopValue;
@@ -116,4 +123,14 @@ function getGridAreaFromCB(props, device) {
116
123
  }
117
124
  exports.getGridAreaFromCB = getGridAreaFromCB;
118
125
  exports.default = FlexGridItem;
126
+ function isContentsListShowingEmptyText(props, queryData) {
127
+ var queryPath = "".concat(props.CB_CONTENT_PROP_CONTENTSLIST_SPEC_CONNECTDATA, "/").concat(props.CB_CONTENT_PROP_CONTENTSLIST_SPEC_DATASORTING, "/").concat(props.CB_CONTENT_PROP_CONTENTSLIST_SPEC_DATAOFFSET);
128
+ if (props.CB_CONTENT_PROP_CONTENTSLIST_SPEC_CONNECTDATA === 'NONE' || !queryPath || !queryData) {
129
+ return true;
130
+ }
131
+ var queryDataValue = queryData === null || queryData === void 0 ? void 0 : queryData[queryPath];
132
+ if (!(queryDataValue === null || queryDataValue === void 0 ? void 0 : queryDataValue.length)) {
133
+ return true;
134
+ }
135
+ }
119
136
  var templateObject_1;
@@ -24,6 +24,7 @@ var jsx_runtime_1 = require("react/jsx-runtime");
24
24
  var EditModeSectionMatcher_1 = require("./components/EditModeSectionMatcher");
25
25
  var SectionMatcher_1 = require("./components/SectionMatcher");
26
26
  var dynamicLayoutContext_1 = require("./dynamicLayoutContext");
27
+ var IntersectionObserverContext_1 = require("./IntersectionObserverContext");
27
28
  function DynamicLayout(_a) {
28
29
  var device = _a.device, _b = _a.mode, mode = _b === void 0 ? 'NORMAL' : _b, isPreview = _a.isPreview, sections = _a.sections, scrollDownTargetSectionId = _a.scrollDownTargetSectionId, editingSectionId = _a.editingSectionId, navigationHandler = _a.navigationHandler, sectionActionHandler = _a.sectionActionHandler, onClickEditSection = _a.onClickEditSection, programmedSectionComponents = _a.programmedSectionComponents, shortcutKeyMode = _a.shortcutKeyMode, dynamicLayoutRef = _a.dynamicLayoutRef, zoomScale = _a.zoomScale, queryData = _a.queryData, placementRestriction = _a.placementRestriction;
29
30
  var filteredSortedSection = __spreadArray([], sections, true).filter(function (section) {
@@ -43,7 +44,7 @@ function DynamicLayout(_a) {
43
44
  .sort(function (a, b) { return a.order - b.order; });
44
45
  var iframeSection = filteredSortedSection.find(function (section) { return section.manifest.schema === 'EXP_IFRAME' && section.display; });
45
46
  var editorType = 'DYNAMIC_LAYOUT_EDITOR';
46
- return ((0, jsx_runtime_1.jsxs)(dynamicLayoutContext_1.dynamicLayoutContext.Provider, __assign({ value: {
47
+ return ((0, jsx_runtime_1.jsx)(dynamicLayoutContext_1.dynamicLayoutContext.Provider, __assign({ value: {
47
48
  device: device,
48
49
  mode: mode,
49
50
  isPreview: isPreview,
@@ -56,7 +57,7 @@ function DynamicLayout(_a) {
56
57
  queryData: queryData,
57
58
  placementRestriction: placementRestriction,
58
59
  editorType: editorType
59
- } }, { children: [mode === 'EDIT' && onClickEditSection && ((0, jsx_runtime_1.jsx)(EditModeSectionMatcher_1.EditModeSectionMatcher, { dynamicLayoutRef: dynamicLayoutRef, editingSectionId: editingSectionId, scrollDownTargetSectionId: scrollDownTargetSectionId, filteredSortedSection: filteredSortedSection, onClickEditSection: onClickEditSection })), mode !== 'EDIT' &&
60
- (iframeSection ? ((0, jsx_runtime_1.jsx)(SectionMatcher_1.SectionMatcher, __assign({}, iframeSection), iframeSection.id)) : (filteredSortedSection.map(function (section) { return (0, jsx_runtime_1.jsx)(SectionMatcher_1.SectionMatcher, __assign({}, section), section.id); })))] })));
60
+ } }, { children: (0, jsx_runtime_1.jsxs)(IntersectionObserverContext_1.IntersectionObserverProvider, { children: [mode === 'EDIT' && onClickEditSection && ((0, jsx_runtime_1.jsx)(EditModeSectionMatcher_1.EditModeSectionMatcher, { dynamicLayoutRef: dynamicLayoutRef, editingSectionId: editingSectionId, scrollDownTargetSectionId: scrollDownTargetSectionId, filteredSortedSection: filteredSortedSection, onClickEditSection: onClickEditSection })), mode !== 'EDIT' &&
61
+ (iframeSection ? ((0, jsx_runtime_1.jsx)(SectionMatcher_1.SectionMatcher, __assign({}, iframeSection), iframeSection.id)) : (filteredSortedSection.map(function (section) { return (0, jsx_runtime_1.jsx)(SectionMatcher_1.SectionMatcher, __assign({}, section), section.id); })))] }) })));
61
62
  }
62
63
  exports.default = DynamicLayout;
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ type ObservationOptions = {
3
+ root?: Element | Document | null;
4
+ rootMargin?: string;
5
+ threshold?: number | number[];
6
+ };
7
+ type IntersectionObserverContextType = {
8
+ observe: (element: Element, callback: IntersectionObserverCallback, options?: ObservationOptions) => void;
9
+ unobserve: (element: Element, options?: ObservationOptions) => void;
10
+ };
11
+ export declare const useIntersectionObserverContext: () => IntersectionObserverContextType | null;
12
+ export declare function IntersectionObserverProvider({ children }: {
13
+ children: React.ReactNode;
14
+ }): JSX.Element;
15
+ export {};
@@ -0,0 +1,96 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.IntersectionObserverProvider = exports.useIntersectionObserverContext = void 0;
15
+ var jsx_runtime_1 = require("react/jsx-runtime");
16
+ var react_1 = require("react");
17
+ var IntersectionObserverContext = (0, react_1.createContext)(null);
18
+ var useIntersectionObserverContext = function () { return (0, react_1.useContext)(IntersectionObserverContext); };
19
+ exports.useIntersectionObserverContext = useIntersectionObserverContext;
20
+ function IntersectionObserverProvider(_a) {
21
+ var children = _a.children;
22
+ // Map of options hash -> IntersectionObserver instance
23
+ var observers = (0, react_1.useRef)(new Map());
24
+ // Map of options hash -> Map of Element -> Callback
25
+ var callbacks = (0, react_1.useRef)(new Map());
26
+ var getOptionsHash = function (options) {
27
+ var _a = options || {}, _b = _a.root, root = _b === void 0 ? null : _b, _c = _a.rootMargin, rootMargin = _c === void 0 ? '0px' : _c, _d = _a.threshold, threshold = _d === void 0 ? 0 : _d;
28
+ // Note: 'root' element reference cannot be easily hashed if it's not null/window.
29
+ // Ideally we assume root is usually viewport (null). If root is an element, this simplistic hashing might fail if we have multiple roots.
30
+ // For this specific use case (DynamicLayout), root is usually viewport.
31
+ // If specific root handling is needed, we need a better way to map it.
32
+ // For now, let's treat root object as 'null' in hash if it is object, or use a WeakMap if strictness is needed.
33
+ // However, typical usage here is viewport.
34
+ return JSON.stringify({
35
+ root: root ? 'element' : 'null',
36
+ rootMargin: rootMargin,
37
+ threshold: threshold
38
+ });
39
+ };
40
+ var observe = function (element, callback, options) {
41
+ var hash = getOptionsHash(options);
42
+ if (!observers.current.has(hash)) {
43
+ var observerCallback = function (entries, observer) {
44
+ var hashCallbacks = callbacks.current.get(hash);
45
+ if (!hashCallbacks)
46
+ return;
47
+ entries.forEach(function (entry) {
48
+ var cb = hashCallbacks.get(entry.target);
49
+ if (cb) {
50
+ cb([entry], observer);
51
+ }
52
+ });
53
+ };
54
+ var newObserver = new IntersectionObserver(observerCallback, options);
55
+ observers.current.set(hash, newObserver);
56
+ callbacks.current.set(hash, new Map());
57
+ }
58
+ var observer = observers.current.get(hash);
59
+ var hashCallbacks = callbacks.current.get(hash);
60
+ if (!hashCallbacks.has(element)) {
61
+ hashCallbacks.set(element, callback);
62
+ observer.observe(element);
63
+ }
64
+ };
65
+ var unobserve = function (element, options) {
66
+ var hash = getOptionsHash(options);
67
+ var observer = observers.current.get(hash);
68
+ var hashCallbacks = callbacks.current.get(hash);
69
+ if (observer && hashCallbacks) {
70
+ if (hashCallbacks.has(element)) {
71
+ hashCallbacks.delete(element);
72
+ observer.unobserve(element);
73
+ }
74
+ // Optional: Cleanup observer if no elements
75
+ if (hashCallbacks.size === 0) {
76
+ observer.disconnect();
77
+ observers.current.delete(hash);
78
+ callbacks.current.delete(hash);
79
+ }
80
+ }
81
+ };
82
+ var value = (0, react_1.useMemo)(function () { return ({
83
+ observe: observe,
84
+ unobserve: unobserve
85
+ }); }, []);
86
+ (0, react_1.useEffect)(function () {
87
+ return function () {
88
+ // Cleanup all observers on unmount
89
+ observers.current.forEach(function (observer) { return observer.disconnect(); });
90
+ observers.current.clear();
91
+ callbacks.current.clear();
92
+ };
93
+ }, []);
94
+ return ((0, jsx_runtime_1.jsx)(IntersectionObserverContext.Provider, __assign({ value: value }, { children: children })));
95
+ }
96
+ exports.IntersectionObserverProvider = IntersectionObserverProvider;
@@ -137,7 +137,7 @@ function Button(props) {
137
137
  });
138
138
  }
139
139
  if (mode === 'EDIT') {
140
- return (0, jsx_runtime_1.jsx)(DataNotFound_1.default, { stringKey: "str_10478" });
140
+ return (0, jsx_runtime_1.jsx)(DataNotFound_1.default, { stringKey: "str_10597" });
141
141
  }
142
142
  return '';
143
143
  }
@@ -38,6 +38,7 @@ var types_1 = require("../../../../../../../DynamicLayout/sections/CustomSection
38
38
  var util_1 = require("../../../../../../../DynamicLayout/sections/CustomSection/util");
39
39
  var isNullOrUndefined_1 = __importDefault(require("../../../../../../../DynamicLayout/sections/CustomSection/util/isNullOrUndefined"));
40
40
  var styled_components_1 = __importDefault(require("styled-components"));
41
+ var EmptyTextForRender_1 = __importDefault(require("../../../fallbacks/EmptyTextForRender"));
41
42
  var S_CB_AnimationObserverBox_1 = require("../components/S_CB_AnimationObserverBox");
42
43
  var S_CB_BoxWithShadow_1 = require("../components/S_CB_BoxWithShadow");
43
44
  var S_HiddenCover_1 = require("../components/S_HiddenCover");
@@ -207,12 +208,18 @@ function ContentsCarousel(props) {
207
208
  }
208
209
  // 데이터 연결
209
210
  if (CB_CONTENT_PROP_CONTENTSCAROUSEL_SPEC_CONNECTDATA === 'NONE' || !queryPath || !queryData) {
210
- return (0, jsx_runtime_1.jsx)(EmptyString, { stringKey: "str_10477" }, "no-query");
211
+ if (mode === 'EDIT') {
212
+ return (0, jsx_runtime_1.jsx)(EmptyString, { stringKey: "str_10477" }, "no-query");
213
+ }
214
+ return (0, jsx_runtime_1.jsx)(EmptyTextForRender_1.default, {});
211
215
  }
212
216
  var queryDataValue = queryData[queryPath];
213
217
  // 쿼리 데이터와 키가 있으나, 쿼리 데이터에 결과가 빈 경우
214
218
  if (!(queryDataValue === null || queryDataValue === void 0 ? void 0 : queryDataValue.length)) {
215
- return (0, jsx_runtime_1.jsx)(EmptyString, { stringKey: "str_10478" }, "empty-item");
219
+ if (mode === 'EDIT') {
220
+ return (0, jsx_runtime_1.jsx)(EmptyString, { stringKey: "str_10660" }, "empty-item");
221
+ }
222
+ return (0, jsx_runtime_1.jsx)(EmptyTextForRender_1.default, {});
216
223
  }
217
224
  return renderSwiper(compositions);
218
225
  };
@@ -39,6 +39,7 @@ var types_1 = require("../../../../../../../DynamicLayout/sections/CustomSection
39
39
  var util_1 = require("../../../../../../../DynamicLayout/sections/CustomSection/util");
40
40
  var isNullOrUndefined_1 = __importDefault(require("../../../../../../../DynamicLayout/sections/CustomSection/util/isNullOrUndefined"));
41
41
  var styled_components_1 = __importDefault(require("styled-components"));
42
+ var EmptyTextForRender_1 = __importDefault(require("../../../fallbacks/EmptyTextForRender"));
42
43
  var S_CB_AnimationObserverBox_1 = require("../components/S_CB_AnimationObserverBox");
43
44
  var S_CB_BoxWithShadow_1 = require("../components/S_CB_BoxWithShadow");
44
45
  var S_HeightFitContentCover_1 = require("../components/S_HeightFitContentCover");
@@ -204,12 +205,18 @@ function ContentsList(props) {
204
205
  }
205
206
  // 데이터 연결
206
207
  if (CB_CONTENT_PROP_CONTENTSLIST_SPEC_CONNECTDATA === 'NONE' || !queryPath || !queryData) {
207
- return (0, jsx_runtime_1.jsx)(EmptyString, { stringKey: "str_10477" }, "no-query");
208
+ if (mode === 'EDIT') {
209
+ return (0, jsx_runtime_1.jsx)(EmptyString, { stringKey: "str_10477" }, "no-query");
210
+ }
211
+ return (0, jsx_runtime_1.jsx)(EmptyTextForRender_1.default, {});
208
212
  }
209
213
  var queryDataValue = queryData[queryPath];
210
214
  // 쿼리 데이터와 키가 있으나, 쿼리 데이터에 결과가 빈 경우
211
215
  if (!(queryDataValue === null || queryDataValue === void 0 ? void 0 : queryDataValue.length)) {
212
- return (0, jsx_runtime_1.jsx)(EmptyString, { stringKey: "str_10478" }, "empty-item");
216
+ if (mode === 'EDIT') {
217
+ return (0, jsx_runtime_1.jsx)(EmptyString, { stringKey: "str_10660" }, "empty-item");
218
+ }
219
+ return (0, jsx_runtime_1.jsx)(EmptyTextForRender_1.default, {});
213
220
  }
214
221
  return renderList(compositions);
215
222
  };
@@ -112,7 +112,7 @@ function Image(props) {
112
112
  if (CB_CONTENT_PROP_IMAGE.CB_CONTENT_PROP_IMAGE_SPEC_VALUETYPE === 'DATA' ||
113
113
  CB_CONTENT_PROP_IMAGE.CB_CONTENT_PROP_IMAGE_SPEC_VALUETYPE === 'DELEGATEDDATA') {
114
114
  if (!(queryContext === null || queryContext === void 0 ? void 0 : queryContext.queryData)) {
115
- return (0, jsx_runtime_1.jsx)(DataNotFound_1.default, { stringKey: "str_10477" });
115
+ return (0, jsx_runtime_1.jsx)(DataNotFound_1.default, { stringKey: "str_10597" });
116
116
  }
117
117
  if (CB_CONTENT_PROP_IMAGE.CB_CONTENT_PROP_IMAGE_SPEC_CONNECTDATA === 'NONE') {
118
118
  return (0, jsx_runtime_1.jsx)(DataNotFound_1.default, { stringKey: "str_10477" });
@@ -38,6 +38,7 @@ var types_1 = require("../../../../../../../DynamicLayout/sections/CustomSection
38
38
  var util_1 = require("../../../../../../../DynamicLayout/sections/CustomSection/util");
39
39
  var isNullOrUndefined_1 = __importDefault(require("../../../../../../../DynamicLayout/sections/CustomSection/util/isNullOrUndefined"));
40
40
  var styled_components_1 = __importDefault(require("styled-components"));
41
+ var EmptyTextForRender_1 = __importDefault(require("../../../fallbacks/EmptyTextForRender"));
41
42
  var S_CB_AnimationObserverBox_1 = require("../components/S_CB_AnimationObserverBox");
42
43
  var S_CB_BoxWithShadow_1 = require("../components/S_CB_BoxWithShadow");
43
44
  var S_HiddenCover_1 = require("../components/S_HiddenCover");
@@ -187,12 +188,18 @@ function SlideBanner(props) {
187
188
  }
188
189
  // 데이터 연결
189
190
  if (CB_CONTENT_PROP_SLIDEBANNER_SPEC_CONNECTDATA === 'NONE' || !queryPath || !queryData) {
190
- return (0, jsx_runtime_1.jsx)(EmptyString, { stringKey: "str_10477" }, "no-query");
191
+ if (mode === 'EDIT') {
192
+ return (0, jsx_runtime_1.jsx)(EmptyString, { stringKey: "str_10477" }, "no-query");
193
+ }
194
+ return (0, jsx_runtime_1.jsx)(EmptyTextForRender_1.default, {});
191
195
  }
192
196
  var queryDataValue = queryData[queryPath];
193
197
  // 쿼리 데이터와 키가 있으나, 쿼리 데이터에 결과가 빈 경우
194
198
  if (!(queryDataValue === null || queryDataValue === void 0 ? void 0 : queryDataValue.length)) {
195
- return (0, jsx_runtime_1.jsx)(EmptyString, { stringKey: "str_10478" }, "empty-item");
199
+ if (mode === 'EDIT') {
200
+ return (0, jsx_runtime_1.jsx)(EmptyString, { stringKey: "str_10660" }, "empty-item");
201
+ }
202
+ return (0, jsx_runtime_1.jsx)(EmptyTextForRender_1.default, {});
196
203
  }
197
204
  return renderSwiper(compositions);
198
205
  };
@@ -125,7 +125,7 @@ function Text(props) {
125
125
  });
126
126
  }
127
127
  if (mode === 'EDIT') {
128
- return (0, jsx_runtime_1.jsx)(DataNotFound_1.default, { stringKey: "str_10478" });
128
+ return (0, jsx_runtime_1.jsx)(DataNotFound_1.default, { stringKey: "str_10597" });
129
129
  }
130
130
  return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
131
131
  }
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export default function EmptyTextForRender(): JSX.Element;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ var jsx_runtime_1 = require("react/jsx-runtime");
11
+ var react_i18next_1 = require("react-i18next");
12
+ var TextLabel_1 = require("../../../../../DynamicLayout/components/pdsOriginal/desktop/TextLabel");
13
+ var styled_components_1 = __importDefault(require("styled-components"));
14
+ function EmptyTextForRender() {
15
+ var t = (0, react_i18next_1.useTranslation)('translation').t;
16
+ return ((0, jsx_runtime_1.jsx)(S_Wrapper, { children: (0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { text: t('str_10663'), styleTheme: "body2Regular", colorTheme: "sysTextTertiary" }) }));
17
+ }
18
+ exports.default = EmptyTextForRender;
19
+ var S_Wrapper = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n align-items: center;\n bottom: 0;\n display: flex;\n height: 100%;\n justify-content: center;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n width: 100%;\n"], ["\n align-items: center;\n bottom: 0;\n display: flex;\n height: 100%;\n justify-content: center;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n width: 100%;\n"])));
20
+ var templateObject_1;
@@ -11,9 +11,11 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.useIntersectionObserver = void 0;
13
13
  var react_1 = require("react");
14
+ var IntersectionObserverContext_1 = require("../../../IntersectionObserverContext");
14
15
  function useIntersectionObserver(elementRef, _a, deps) {
15
16
  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;
16
17
  var _f = (0, react_1.useState)(), entry = _f[0], setEntry = _f[1];
18
+ var context = (0, IntersectionObserverContext_1.useIntersectionObserverContext)();
17
19
  var frozen = (entry === null || entry === void 0 ? void 0 : entry.isIntersecting) && freezeOnceVisible;
18
20
  (0, react_1.useLayoutEffect)(function () {
19
21
  var updateEntry = function (_a) {
@@ -26,6 +28,12 @@ function useIntersectionObserver(elementRef, _a, deps) {
26
28
  return;
27
29
  }
28
30
  var observerParams = { threshold: threshold, root: root, rootMargin: rootMargin };
31
+ if (context) {
32
+ context.observe(node, updateEntry, observerParams);
33
+ return function () {
34
+ context.unobserve(node, observerParams);
35
+ };
36
+ }
29
37
  var observer = new IntersectionObserver(updateEntry, observerParams);
30
38
  observer.observe(node);
31
39
  return function () {
@@ -11,7 +11,7 @@ export default function RenderPedigreeRecursively({ isEditMode, block, layoutIte
11
11
  rowHeight: number;
12
12
  device: Device;
13
13
  selectedRows: number[];
14
- isParentGroupHeightVariable?: boolean;
14
+ isParentGroupHeightVariable?: boolean | null;
15
15
  parentGroupArea?: {
16
16
  rowStart: number;
17
17
  colStart: number;
@@ -59,7 +59,7 @@ function RenderPedigreeRecursively(_a) {
59
59
  ? block.zOrderDesktopInternal
60
60
  : block.zOrderMobileInternal,
61
61
  maxHeight: gbMaxHeight
62
- }, className: "flex-grid-item", "data-show-pinned": isEditMode }, { children: block.children.map(function (child) { return ((0, jsx_runtime_1.jsx)(RenderPedigreeRecursively, { rowHeight: rowHeight, block: child, layoutItems: layoutItems, cbs: cbs, parentGroupArea: gridArea_1, device: device, selectedRows: relativeSelectedRows_1, isEditMode: isEditMode, isParentGroupHeightVariable: isGBHeightVariable_1 !== null && isGBHeightVariable_1 !== void 0 ? isGBHeightVariable_1 : true }, child.blockId)); }) })));
62
+ }, className: "flex-grid-item", "data-show-pinned": isEditMode }, { children: block.children.map(function (child) { return ((0, jsx_runtime_1.jsx)(RenderPedigreeRecursively, { rowHeight: rowHeight, block: child, layoutItems: layoutItems, cbs: cbs, parentGroupArea: gridArea_1, device: device, selectedRows: relativeSelectedRows_1, isEditMode: isEditMode, isParentGroupHeightVariable: isGBHeightVariable_1 }, child.blockId)); }) })));
63
63
  }
64
64
  var cbIndex = cbs.findIndex(function (c) {
65
65
  if (c.blockId) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pds-dev-kit-web-test",
3
- "version": "2.7.607",
3
+ "version": "2.7.608",
4
4
  "license": "MIT",
5
5
  "private": false,
6
6
  "main": "dist/index.js",
package/release-note.md CHANGED
@@ -1,7 +1,6 @@
1
1
  # PDS-DEV-KIT-WEB Release Notes
2
- ## [v2.2.303]
2
+ ## [v2.2.306]
3
3
  ## daily|https://design.storybook.publ.biz/
4
4
 
5
5
  ### 업데이트 사항
6
- * filter 아이콘 수정 fill 추가
7
- * 컬러 시트 최신화
6
+ * [PDS-1420] CCB 이펙트에 따라 전환링크가 해당 항목으로 이동하지 않는 이슈