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.
- package/dist/src/sub/DynamicLayout/CompositionRenderer/FlexGridItem.d.ts +1 -1
- package/dist/src/sub/DynamicLayout/CompositionRenderer/FlexGridItem.js +17 -0
- package/dist/src/sub/DynamicLayout/DynamicLayout.js +4 -3
- package/dist/src/sub/DynamicLayout/IntersectionObserverContext.d.ts +15 -0
- package/dist/src/sub/DynamicLayout/IntersectionObserverContext.js +96 -0
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/Button/Button.js +1 -1
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsCarousel/ContentsCarousel.js +9 -2
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsList/ContentsList.js +9 -2
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/Image/Image.js +1 -1
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/SlideBanner/SlideBanner.js +9 -2
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/Text/Text.js +1 -1
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/fallbacks/EmptyTextForRender.d.ts +2 -0
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/fallbacks/EmptyTextForRender.js +20 -0
- package/dist/src/sub/DynamicLayout/sections/CustomSection/hooks/useIntersectionObserver.js +8 -0
- package/dist/src/sub/DynamicLayout/utils/groupUtils.d.ts +1 -1
- package/dist/src/sub/DynamicLayout/utils/groupUtils.js +1 -1
- package/package.json +1 -1
- 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.
|
|
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
|
-
|
|
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: "
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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: "
|
|
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
|
-
|
|
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
|
-
|
|
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: "
|
|
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
|
}
|
package/dist/src/sub/DynamicLayout/sections/CustomSection/components/fallbacks/EmptyTextForRender.js
ADDED
|
@@ -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
|
|
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