pds-dev-kit-web-test 0.2.36 → 0.2.37

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 (31) hide show
  1. package/dist/src/common/styles/colorSet/PaletteColor_Dark.json +2 -1
  2. package/dist/src/common/styles/colorSet/PaletteColor_light.json +2 -1
  3. package/dist/src/common/styles/colorSet/UIColor.json +2 -1
  4. package/dist/src/common/styles/colorSet/index.d.ts +348 -345
  5. package/dist/src/common/styles/colorSet/index.js +3 -3
  6. package/dist/src/common/styles/colorSet/ui-type.d.ts +1 -0
  7. package/dist/src/desktop/common/components/TextFieldBase/TextFieldBase.js +4 -1
  8. package/dist/src/desktop/components/BasicChatListItem/BasicChatListItem.d.ts +4 -2
  9. package/dist/src/desktop/components/BasicChatListItem/BasicChatListItem.js +46 -15
  10. package/dist/src/desktop/components/BasicChatListItem/Popup.d.ts +1 -0
  11. package/dist/src/desktop/components/ChatBubbleListItem/ChatBubbleListItem.d.ts +3 -1
  12. package/dist/src/desktop/components/ChatBubbleListItem/ChatBubbleListItem.js +19 -3
  13. package/dist/src/desktop/components/ChatBubbleListItem/Popup.d.ts +1 -0
  14. package/dist/src/mobile/common/components/TextFieldBase/TextFieldBase.js +4 -1
  15. package/dist/src/mobile/components/BasicChatListItem/BasicChatListItem.d.ts +4 -2
  16. package/dist/src/mobile/components/BasicChatListItem/BasicChatListItem.js +59 -10
  17. package/dist/src/mobile/components/BasicChatListItem/Popup.d.ts +1 -0
  18. package/dist/src/mobile/components/ChatBubbleListItem/ChatBubbleListItem.d.ts +3 -1
  19. package/dist/src/mobile/components/ChatBubbleListItem/ChatBubbleListItem.js +21 -3
  20. package/dist/src/mobile/components/ChatBubbleListItem/Popup.d.ts +1 -0
  21. package/dist/src/mobile/components/ChatList/Body.js +1 -1
  22. package/dist/src/sub/DynamicLayout/DynamicLayout.d.ts +1 -1
  23. package/dist/src/sub/DynamicLayout/DynamicLayout.js +2 -3
  24. package/dist/src/sub/DynamicLayout/components/ComponentBlocks/RichText/RichText.js +1 -1
  25. package/dist/src/sub/DynamicLayout/components/desktop/Item/Item.js +1 -1
  26. package/dist/src/sub/DynamicLayout/components/mobile/Item/Item.js +1 -1
  27. package/dist/src/sub/DynamicLayout/sections/CustomSection/CustomSection.js +12 -23
  28. package/dist/src/sub/DynamicLayout/sections/CustomSection/newUtils/textUtil.js +1 -1
  29. package/dist/src/sub/DynamicLayout/types.d.ts +0 -4
  30. package/package.json +1 -1
  31. package/release-note.md +6 -6
@@ -6,12 +6,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  /* eslint-disable import/order */
7
7
  var SemanticColor_json_1 = __importDefault(require("./SemanticColor.json"));
8
8
  var PaletteColor_light_json_1 = __importDefault(require("./PaletteColor_light.json"));
9
- var PaletteColor_Dark_json_1 = __importDefault(require("./PaletteColor_Dark.json"));
10
9
  var UIColor_json_1 = __importDefault(require("./UIColor.json"));
10
+ var PaletteColor_Dark_json_1 = __importDefault(require("./PaletteColor_Dark.json"));
11
11
  var colorSet = {
12
12
  SemanticColor: SemanticColor_json_1.default,
13
13
  PaletteColor_light: PaletteColor_light_json_1.default,
14
- PaletteColor_Dark: PaletteColor_Dark_json_1.default,
15
- UIColor: UIColor_json_1.default
14
+ UIColor: UIColor_json_1.default,
15
+ PaletteColor_Dark: PaletteColor_Dark_json_1.default
16
16
  };
17
17
  exports.default = colorSet;
@@ -835,4 +835,5 @@ export interface UITheme {
835
835
  ui_cpnt_modalwithtab_sidetab_hover: string;
836
836
  ui_cpnt_modalwithtab_sidetab_pressed: string;
837
837
  ui_107: string;
838
+ ui_cpnt_textlabel_sys_white_02: string;
838
839
  }
@@ -454,7 +454,7 @@ var inputInnerSpinButtonStyle = (0, styled_components_1.css)(templateObject_14 |
454
454
  var innerSpinButtonSize = _a.innerSpinButtonSize;
455
455
  return innerSpinButtonSize && "".concat(innerSpinButtonSize, "px");
456
456
  });
457
- var S_Input = styled_components_1.default.input(templateObject_15 || (templateObject_15 = __makeTemplateObject(["\n ", "\n flex: 1;\n line-height: ", ";\n position: relative;\n\n ::-webkit-inner-spin-button {\n ", "\n }\n ::-webkit-outer-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n"], ["\n ", "\n flex: 1;\n line-height: ", ";\n position: relative;\n\n ::-webkit-inner-spin-button {\n ", "\n }\n ::-webkit-outer-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n"])), basicStyle, function (_a) {
457
+ var S_Input = styled_components_1.default.input(templateObject_15 || (templateObject_15 = __makeTemplateObject(["\n ", "\n flex: 1;\n line-height: ", ";\n position: relative;\n\n ::-webkit-inner-spin-button {\n ", "\n }\n ::-webkit-outer-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n\n &:-webkit-autofill,\n &:-webkit-autofill:hover,\n &:-webkit-autofill:focus,\n &:-webkit-autofill:active {\n -webkit-text-fill-color: ", " !important;\n transition: background-color 9999s ease-in-out 0s !important;\n }\n"], ["\n ", "\n flex: 1;\n line-height: ", ";\n position: relative;\n\n ::-webkit-inner-spin-button {\n ", "\n }\n ::-webkit-outer-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n\n &:-webkit-autofill,\n &:-webkit-autofill:hover,\n &:-webkit-autofill:focus,\n &:-webkit-autofill:active {\n -webkit-text-fill-color: ", " !important;\n transition: background-color 9999s ease-in-out 0s !important;\n }\n"])), basicStyle, function (_a) {
458
458
  var theme = _a.theme;
459
459
  return theme.desktopLineHeight.singleLine;
460
460
  }, function (_a) {
@@ -462,6 +462,9 @@ var S_Input = styled_components_1.default.input(templateObject_15 || (templateOb
462
462
  return stepperMode === 'use' && type === 'number' && isFocused
463
463
  ? inputInnerSpinButtonStyle
464
464
  : '-webkit-appearance: none; margin: 0;';
465
+ }, function (_a) {
466
+ var theme = _a.theme;
467
+ return theme.ui_cpnt_textfield_text_typed;
465
468
  });
466
469
  var S_Auto = styled_components_1.default.textarea(templateObject_16 || (templateObject_16 = __makeTemplateObject(["\n ", "\n display: block;\n overflow-y: auto;\n resize: none;\n ", "\n ", ";\n"], ["\n ", "\n display: block;\n overflow-y: auto;\n resize: none;\n ", "\n ", ";\n"])), basicStyle, function (_a) {
467
470
  var autoMaxRows = _a.autoMaxRows, textSize = _a.textSize, fieldHeight = _a.fieldHeight;
@@ -1,4 +1,5 @@
1
1
  /// <reference types="react" />
2
+ import { PlacementTypes } from './Popup';
2
3
  import type { PDSTextType, PDSValueOption } from '../../../common';
3
4
  type Props = {
4
5
  titleText?: PDSTextType;
@@ -8,8 +9,9 @@ type Props = {
8
9
  hoverMode?: 'none' | 'use';
9
10
  contextMenuOptionArray?: PDSValueOption[];
10
11
  contextMenuState?: 'normal' | 'disabled';
11
- colorTheme?: 'seller' | 'subscriber' | 'seller_transparent' | 'subscriber_transparent';
12
+ colorTheme?: 'seller' | 'seller_transparent' | 'subscriber' | 'subscriber_transparent' | 'secondary_transparent_grey' | 'white_transparent_grey';
13
+ contextMenuPosition?: PlacementTypes;
12
14
  onClickContextMenuItem?: (option: PDSValueOption) => void;
13
15
  };
14
- declare function BasicChatListItem({ titleText, contentText, leftImageMode, imageSrc, hoverMode, contextMenuOptionArray, onClickContextMenuItem, contextMenuState, colorTheme }: Props): JSX.Element;
16
+ declare function BasicChatListItem({ titleText, contentText, leftImageMode, imageSrc, hoverMode, contextMenuOptionArray, contextMenuPosition, onClickContextMenuItem, contextMenuState, colorTheme }: Props): JSX.Element;
15
17
  export default BasicChatListItem;
@@ -29,34 +29,42 @@ var TextLabel_1 = require("../TextLabel");
29
29
  var Popup_1 = require("./Popup");
30
30
  var titleTextColors = {
31
31
  seller: 'usrTextBrandPrimary',
32
- subscriber: 'sysTextSecondary',
33
32
  seller_transparent: 'usrTextBrandPrimary',
34
- subscriber_transparent: 'sysTextWhite'
33
+ subscriber: 'sysTextSecondary',
34
+ subscriber_transparent: 'sysTextWhite',
35
+ secondary_transparent_grey: 'sysTextSecondary',
36
+ white_transparent_grey: 'sysTextWhite'
35
37
  };
36
38
  var backgroundColorTheme = {
37
39
  seller: 'ui_cpnt_list_base_area_seller',
38
- subscriber: 'ui_cpnt_list_base_area',
39
40
  seller_transparent: 'ui_cpnt_list_base_area_transparent_seller',
40
- subscriber_transparent: 'ui_cpnt_list_base_area_transparent'
41
+ subscriber: 'ui_cpnt_list_base_area',
42
+ subscriber_transparent: 'ui_cpnt_list_base_area_transparent',
43
+ secondary_transparent_grey: 'ui_cpnt_list_base_area',
44
+ white_transparent_grey: 'ui_cpnt_list_base_area_transparent'
41
45
  };
42
46
  function BasicChatListItem(_a) {
43
- var titleText = _a.titleText, contentText = _a.contentText, _b = _a.leftImageMode, leftImageMode = _b === void 0 ? 'none' : _b, imageSrc = _a.imageSrc, _c = _a.hoverMode, hoverMode = _c === void 0 ? 'use' : _c, contextMenuOptionArray = _a.contextMenuOptionArray, onClickContextMenuItem = _a.onClickContextMenuItem, _d = _a.contextMenuState, contextMenuState = _d === void 0 ? 'normal' : _d, _e = _a.colorTheme, colorTheme = _e === void 0 ? 'subscriber' : _e;
44
- var _f = (0, react_1.useState)(false), isContextMenuOpen = _f[0], setIsContextMenuOpen = _f[1];
47
+ var titleText = _a.titleText, contentText = _a.contentText, _b = _a.leftImageMode, leftImageMode = _b === void 0 ? 'none' : _b, imageSrc = _a.imageSrc, _c = _a.hoverMode, hoverMode = _c === void 0 ? 'use' : _c, contextMenuOptionArray = _a.contextMenuOptionArray, _d = _a.contextMenuPosition, contextMenuPosition = _d === void 0 ? 'v-auto' : _d, onClickContextMenuItem = _a.onClickContextMenuItem, _e = _a.contextMenuState, contextMenuState = _e === void 0 ? 'normal' : _e, _f = _a.colorTheme, colorTheme = _f === void 0 ? 'subscriber' : _f;
48
+ var _g = (0, react_1.useState)(false), isContextMenuOpen = _g[0], setIsContextMenuOpen = _g[1];
45
49
  var contextMenuRef = (0, react_1.useRef)(null);
46
50
  var chatBody = document.querySelector('#chatMessageBox');
47
51
  var chatBodyRect = chatBody === null || chatBody === void 0 ? void 0 : chatBody.getBoundingClientRect();
48
52
  /**
49
- * @when contextMenu가 열려 있을
50
- * @expected ChatList body의 스크롤을 숨기고, contextMenu 외부를 클릭하면 contextMenu가 닫히도록 합니다.
51
- * @clear document의 클릭 이벤트를 제거합니다.
53
+ * @when 스크롤, 이벤트 발생시
54
+ * @expected contextMenu 닫습니다.
55
+ * @clear 스크롤, 이벤트를 제거합니다.
52
56
  */
53
57
  (0, react_1.useEffect)(function () {
54
- // NOTE pop up 개념이 생기기 전까지의 임시 조치 방법입니다.
55
- if (!chatBody) {
56
- return;
58
+ function handleScrollEvent() {
59
+ setIsContextMenuOpen(false);
57
60
  }
58
- chatBody.style.overflowY = isContextMenuOpen ? 'hidden' : 'auto';
59
- }, [isContextMenuOpen, chatBody]);
61
+ window.addEventListener('scroll', handleScrollEvent);
62
+ window.addEventListener('wheel', handleScrollEvent);
63
+ return function () {
64
+ window.removeEventListener('scroll', handleScrollEvent);
65
+ window.removeEventListener('wheel', handleScrollEvent);
66
+ };
67
+ }, []);
60
68
  var handleMoreButtonClick = function (e) {
61
69
  e.stopPropagation();
62
70
  setIsContextMenuOpen(function (prev) { return !prev; });
@@ -67,7 +75,30 @@ function BasicChatListItem(_a) {
67
75
  }
68
76
  setIsContextMenuOpen(false);
69
77
  };
70
- return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsxs)(S_BasicChatListItem, __assign({ "x-pds-name": "BasicChatListItem", "x-pds-element-type": "component", "x-pds-device-type": "desktop", colorTheme: colorTheme }, { children: [leftImageMode === 'use' && ((0, jsx_runtime_1.jsx)(S_ImageViewWrapper, { children: (0, jsx_runtime_1.jsx)(hybrid_1.ImageView, { shapeType: "circular", ratio: "1_1", scaleType: "cover", src: imageSrc, width: "responsive" }) })), (0, jsx_runtime_1.jsx)(S_TitleTextWrapper, { children: (0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { text: titleText, styleTheme: "caption1Bold", wordBreak: "break_all", colorTheme: titleTextColors[colorTheme] }) }), (0, jsx_runtime_1.jsx)(S_ContentTextWrapper, { children: (0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { text: contentText, styleTheme: "caption1Regular", colorTheme: colorTheme === 'subscriber_transparent' ? 'sysTextWhite' : 'sysTextPrimary', wordBreak: "break_all" }) }), hoverMode === 'use' && ((0, jsx_runtime_1.jsx)(S_SeeMoreButton, __assign({ isContextMenuOpen: isContextMenuOpen, hoverMode: hoverMode, ref: contextMenuRef }, { children: (0, jsx_runtime_1.jsx)(IconButton_1.IconButton, { fillType: "fill", baseSize: "xsmall", iconFillType: "fill", iconSize: 20, iconName: "ic_more", baseColorKey: "ui_cpnt_button_fill_base_transparent", iconColorKey: "ui_cpnt_button_icon_enabled", onClick: handleMoreButtonClick }) }))), (0, jsx_runtime_1.jsx)(Popup_1.PopupProvider, { children: (0, jsx_runtime_1.jsx)(Popup_1.Popup, __assign({ targetRef: contextMenuRef, isOpen: isContextMenuOpen, placement: "v-auto", wrapperHeight: chatBodyRect === null || chatBodyRect === void 0 ? void 0 : chatBodyRect.height, onClickOutside: function () { return setIsContextMenuOpen(false); } }, { children: (0, jsx_runtime_1.jsx)(ContextMenu_1.ContextMenu, { children: contextMenuOptionArray === null || contextMenuOptionArray === void 0 ? void 0 : contextMenuOptionArray.map(function (el) { return ((0, jsx_runtime_1.jsx)(ContextMenuItem_1.ContextMenuItem, { option: el, onClick: handleContextMenuItemClick, state: contextMenuState }, el.value)); }) }) })) })] })) }));
78
+ var contentTextColorTheme = 'sysTextPrimary';
79
+ var contentTextColorOverride;
80
+ var iconColorKey;
81
+ switch (colorTheme) {
82
+ case 'subscriber_transparent': {
83
+ contentTextColorTheme = 'sysTextWhite';
84
+ iconColorKey = 'ui_cpnt_button_icon_white';
85
+ break;
86
+ }
87
+ case 'secondary_transparent_grey': {
88
+ contentTextColorTheme = 'sysTextSecondary';
89
+ break;
90
+ }
91
+ case 'white_transparent_grey': {
92
+ contentTextColorOverride = 'ui_cpnt_textlabel_sys_white_02';
93
+ iconColorKey = 'ui_cpnt_button_icon_white';
94
+ break;
95
+ }
96
+ default: {
97
+ contentTextColorTheme = 'sysTextPrimary';
98
+ iconColorKey = 'ui_cpnt_button_icon_enabled';
99
+ }
100
+ }
101
+ return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsxs)(S_BasicChatListItem, __assign({ "x-pds-name": "BasicChatListItem", "x-pds-element-type": "component", "x-pds-device-type": "desktop", colorTheme: colorTheme }, { children: [leftImageMode === 'use' && ((0, jsx_runtime_1.jsx)(S_ImageViewWrapper, { children: (0, jsx_runtime_1.jsx)(hybrid_1.ImageView, { shapeType: "circular", ratio: "1_1", scaleType: "cover", src: imageSrc, width: "responsive" }) })), (0, jsx_runtime_1.jsx)(S_TitleTextWrapper, { children: (0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { text: titleText, styleTheme: "caption1Bold", wordBreak: "break_all", colorTheme: titleTextColors[colorTheme] }) }), (0, jsx_runtime_1.jsx)(S_ContentTextWrapper, { children: (0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { text: contentText, styleTheme: "caption1Regular", colorTheme: contentTextColorTheme, colorOverride: contentTextColorOverride, wordBreak: "break_all" }) }), hoverMode === 'use' && ((0, jsx_runtime_1.jsx)(S_SeeMoreButton, __assign({ isContextMenuOpen: isContextMenuOpen, hoverMode: hoverMode, ref: contextMenuRef }, { children: (0, jsx_runtime_1.jsx)(IconButton_1.IconButton, { fillType: "fill", baseSize: "xsmall", iconFillType: "fill", iconSize: 20, iconName: "ic_more", baseColorKey: "ui_cpnt_button_fill_base_transparent", iconColorKey: iconColorKey, onClick: handleMoreButtonClick }) }))), (0, jsx_runtime_1.jsx)(Popup_1.PopupProvider, { children: (0, jsx_runtime_1.jsx)(Popup_1.Popup, __assign({ targetRef: contextMenuRef, isOpen: isContextMenuOpen, placement: contextMenuPosition, wrapperHeight: chatBodyRect === null || chatBodyRect === void 0 ? void 0 : chatBodyRect.height, onClickOutside: function () { return setIsContextMenuOpen(false); } }, { children: (0, jsx_runtime_1.jsx)("div", __assign({ onMouseLeave: function () { return setIsContextMenuOpen(false); } }, { children: (0, jsx_runtime_1.jsx)(ContextMenu_1.ContextMenu, { children: contextMenuOptionArray === null || contextMenuOptionArray === void 0 ? void 0 : contextMenuOptionArray.map(function (el) { return ((0, jsx_runtime_1.jsx)(ContextMenuItem_1.ContextMenuItem, { option: el, onClick: handleContextMenuItemClick, state: contextMenuState }, el.value)); }) }) })) })) })] })) }));
71
102
  }
72
103
  var S_BasicChatListItem = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n background-color: ", ";\n display: flex;\n height: fit-content;\n max-width: 100%;\n min-height: 24px;\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n padding-top: ", ";\n"], ["\n background-color: ", ";\n display: flex;\n height: fit-content;\n max-width: 100%;\n min-height: 24px;\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n padding-top: ", ";\n"])), function (_a) {
73
104
  var colorTheme = _a.colorTheme, theme = _a.theme;
@@ -1,4 +1,5 @@
1
1
  import { MutableRefObject } from 'react';
2
+ export type PlacementTypes = 'v-auto' | 'h-auto' | 'v-center' | 'h-center' | 'top' | 'top-start' | 'top-end' | 'top-both' | 'top-center' | 'bottom' | 'bottom-start' | 'bottom-end' | 'bottom-both' | 'bottom-center' | 'left' | 'left-start' | 'left-end' | 'left-center' | 'right' | 'right-start' | 'right-end' | 'right-center';
2
3
  type Props = {
3
4
  targetRef: MutableRefObject<HTMLElement | null>;
4
5
  isOpen: boolean;
@@ -1,4 +1,5 @@
1
1
  /// <reference types="react" />
2
+ import { PlacementTypes } from './Popup';
2
3
  import type { PDSTextType, PDSValueOption } from '../../../common';
3
4
  type ColorThemeType = 'grey' | 'brand_primary' | 'translucent_white' | 'translucent_black';
4
5
  export type ChatBubbleListItemProps = {
@@ -11,8 +12,9 @@ export type ChatBubbleListItemProps = {
11
12
  timeText?: PDSTextType;
12
13
  contextMenuOptionArray?: PDSValueOption[];
13
14
  contextMenuState?: 'normal' | 'disabled';
15
+ contextMenuPosition?: PlacementTypes;
14
16
  children?: React.ReactNode;
15
17
  onClickContextMenuItem?: (option: PDSValueOption) => void;
16
18
  };
17
- declare function ChatBubbleListItem({ titleText, imageSrc, hoverMode, styleTheme, colorTheme, timeMode, timeText, contextMenuOptionArray, contextMenuState, children, onClickContextMenuItem }: ChatBubbleListItemProps): JSX.Element;
19
+ declare function ChatBubbleListItem({ titleText, imageSrc, hoverMode, styleTheme, colorTheme, timeMode, timeText, contextMenuOptionArray, contextMenuState, contextMenuPosition, children, onClickContextMenuItem }: ChatBubbleListItemProps): JSX.Element;
18
20
  export default ChatBubbleListItem;
@@ -67,9 +67,9 @@ var profileImageBorderColorTheme = {
67
67
  translucent_black: 'ui_avatar_border_translucent_black'
68
68
  };
69
69
  function ChatBubbleListItem(_a) {
70
- var titleText = _a.titleText, imageSrc = _a.imageSrc, _b = _a.hoverMode, hoverMode = _b === void 0 ? 'use' : _b, styleTheme = _a.styleTheme, _c = _a.colorTheme, colorTheme = _c === void 0 ? 'grey' : _c, _d = _a.timeMode, timeMode = _d === void 0 ? 'use' : _d, timeText = _a.timeText, contextMenuOptionArray = _a.contextMenuOptionArray, _e = _a.contextMenuState, contextMenuState = _e === void 0 ? 'normal' : _e, children = _a.children, onClickContextMenuItem = _a.onClickContextMenuItem;
70
+ var titleText = _a.titleText, imageSrc = _a.imageSrc, _b = _a.hoverMode, hoverMode = _b === void 0 ? 'use' : _b, styleTheme = _a.styleTheme, _c = _a.colorTheme, colorTheme = _c === void 0 ? 'grey' : _c, _d = _a.timeMode, timeMode = _d === void 0 ? 'use' : _d, timeText = _a.timeText, contextMenuOptionArray = _a.contextMenuOptionArray, _e = _a.contextMenuState, contextMenuState = _e === void 0 ? 'normal' : _e, _f = _a.contextMenuPosition, contextMenuPosition = _f === void 0 ? 'v-auto' : _f, children = _a.children, onClickContextMenuItem = _a.onClickContextMenuItem;
71
71
  var isMe = styleTheme.includes('me');
72
- var _f = (0, react_1.useState)(false), isContextMenuOpen = _f[0], setIsContextMenuOpen = _f[1];
72
+ var _g = (0, react_1.useState)(false), isContextMenuOpen = _g[0], setIsContextMenuOpen = _g[1];
73
73
  var contextMenuRef = (0, react_1.useRef)(null);
74
74
  var chatBody = document.querySelector('#chatMessageBox');
75
75
  var rect = chatBody === null || chatBody === void 0 ? void 0 : chatBody.getBoundingClientRect();
@@ -85,6 +85,22 @@ function ChatBubbleListItem(_a) {
85
85
  }
86
86
  chatBody.style.overflowY = isContextMenuOpen ? 'hidden' : 'auto';
87
87
  }, [isContextMenuOpen, chatBody]);
88
+ /**
89
+ * @when 스크롤, 휠 이벤트 발생시
90
+ * @expected contextMenu를 닫습니다.
91
+ * @clear 스크롤, 휠 이벤트를 제거합니다.
92
+ */
93
+ (0, react_1.useEffect)(function () {
94
+ function handleScrollEvent() {
95
+ setIsContextMenuOpen(false);
96
+ }
97
+ window.addEventListener('scroll', handleScrollEvent);
98
+ window.addEventListener('wheel', handleScrollEvent);
99
+ return function () {
100
+ window.removeEventListener('scroll', handleScrollEvent);
101
+ window.removeEventListener('wheel', handleScrollEvent);
102
+ };
103
+ }, []);
88
104
  var handleMoreButtonClick = function (e) {
89
105
  e.stopPropagation();
90
106
  setIsContextMenuOpen(function (prev) { return !prev; });
@@ -136,7 +152,7 @@ function ChatBubbleListItem(_a) {
136
152
  }
137
153
  return false;
138
154
  };
139
- return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsxs)(S_ChatBubbleListItem, __assign({ "x-pds-name": "ChatBubbleListItem", "x-pds-element-type": "component", "x-pds-device-type": "desktop", isMe: isMe }, { children: [isLeftSpacingChecker() ? ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: isShowProfileImage() ? ((0, jsx_runtime_1.jsx)(S_ImageViewWrapper, __assign({ isOtherAvatarImpact: styleTheme === 'other_avatar_impact', colorTheme: colorTheme }, { children: (0, jsx_runtime_1.jsx)(hybrid_1.ImageView, { shapeType: "circular", ratio: "1_1", scaleType: "cover", src: imageSrc, width: styleTheme === 'other_avatar_impact' ? 36 : 38 }) }))) : ((0, jsx_runtime_1.jsx)(hybrid_1.Spacing, { size: "spacing_g", spacingType: "width" })) })) : ((0, jsx_runtime_1.jsx)(hybrid_1.Spacing, { size: "spacing_a", spacingType: "width" })), (0, jsx_runtime_1.jsxs)(S_RightBox, { children: [isShowTitleText() && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { text: titleText, styleTheme: "caption1Bold", colorTheme: colorTheme && checkTextColorTheme() }), (0, jsx_runtime_1.jsx)(hybrid_1.Spacing, { size: "spacing_b" })] })), (0, jsx_runtime_1.jsxs)(S_ChatBubbleBox, { children: [(0, jsx_runtime_1.jsxs)(S_ChatBubbleWrapper, __assign({ isMe: isMe }, { children: [timeMode === 'use' && timeText && isMe && ((0, jsx_runtime_1.jsxs)(S_TimeWrapper, { children: [(0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { text: timeText, styleTheme: "caption2Regular", colorTheme: "sysTextTertiary", singleLineMode: "use" }), (0, jsx_runtime_1.jsx)(hybrid_1.Spacing, { size: "spacing_a", spacingType: "width" })] })), (0, jsx_runtime_1.jsx)(ChatBubble_1.default, __assign({ colorTheme: colorTheme, tailType: chatBubbleTailType[styleTheme] }, { children: children })), timeMode === 'use' && timeText && !isMe && ((0, jsx_runtime_1.jsxs)(S_TimeWrapper, { children: [(0, jsx_runtime_1.jsx)(hybrid_1.Spacing, { size: "spacing_a", spacingType: "width" }), (0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { text: timeText, styleTheme: "caption2Regular", colorTheme: "sysTextTertiary", singleLineMode: "use" })] }))] })), hoverMode === 'use' && !isMe && ((0, jsx_runtime_1.jsx)(S_SeeMoreButton, __assign({ isContextMenuOpen: isContextMenuOpen, hoverMode: hoverMode, ref: contextMenuRef }, { children: (0, jsx_runtime_1.jsx)(IconButton_1.IconButton, { fillType: "fill", baseSize: "xsmall", iconFillType: "fill", iconSize: 20, iconName: "ic_more", baseColorKey: "ui_cpnt_button_fill_base_transparent", iconColorKey: "ui_cpnt_button_icon_enabled", onClick: handleMoreButtonClick }) })))] })] }), (0, jsx_runtime_1.jsx)(Popup_1.PopupProvider, { children: (0, jsx_runtime_1.jsx)(Popup_1.Popup, __assign({ targetRef: contextMenuRef, isOpen: isContextMenuOpen, placement: "v-auto", wrapperHeight: rect === null || rect === void 0 ? void 0 : rect.height, onClickOutside: function () { return setIsContextMenuOpen(false); } }, { children: (0, jsx_runtime_1.jsx)(ContextMenu_1.ContextMenu, { children: contextMenuOptionArray === null || contextMenuOptionArray === void 0 ? void 0 : contextMenuOptionArray.map(function (el) { return ((0, jsx_runtime_1.jsx)(ContextMenuItem_1.ContextMenuItem, { option: el, onClick: handleContextMenuItemClick, state: contextMenuState }, el.value)); }) }) })) })] })) }));
155
+ return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsxs)(S_ChatBubbleListItem, __assign({ "x-pds-name": "ChatBubbleListItem", "x-pds-element-type": "component", "x-pds-device-type": "desktop", isMe: isMe }, { children: [isLeftSpacingChecker() ? ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: isShowProfileImage() ? ((0, jsx_runtime_1.jsx)(S_ImageViewWrapper, __assign({ isOtherAvatarImpact: styleTheme === 'other_avatar_impact', colorTheme: colorTheme }, { children: (0, jsx_runtime_1.jsx)(hybrid_1.ImageView, { shapeType: "circular", ratio: "1_1", scaleType: "cover", src: imageSrc, width: styleTheme === 'other_avatar_impact' ? 36 : 38 }) }))) : ((0, jsx_runtime_1.jsx)(hybrid_1.Spacing, { size: "spacing_g", spacingType: "width" })) })) : ((0, jsx_runtime_1.jsx)(hybrid_1.Spacing, { size: "spacing_a", spacingType: "width" })), (0, jsx_runtime_1.jsxs)(S_RightBox, { children: [isShowTitleText() && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { text: titleText, styleTheme: "caption1Bold", colorTheme: colorTheme && checkTextColorTheme() }), (0, jsx_runtime_1.jsx)(hybrid_1.Spacing, { size: "spacing_b" })] })), (0, jsx_runtime_1.jsxs)(S_ChatBubbleBox, { children: [(0, jsx_runtime_1.jsxs)(S_ChatBubbleWrapper, __assign({ isMe: isMe }, { children: [timeMode === 'use' && timeText && isMe && ((0, jsx_runtime_1.jsxs)(S_TimeWrapper, { children: [(0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { text: timeText, styleTheme: "caption2Regular", colorTheme: "sysTextTertiary", singleLineMode: "use" }), (0, jsx_runtime_1.jsx)(hybrid_1.Spacing, { size: "spacing_a", spacingType: "width" })] })), (0, jsx_runtime_1.jsx)(ChatBubble_1.default, __assign({ colorTheme: colorTheme, tailType: chatBubbleTailType[styleTheme] }, { children: children })), timeMode === 'use' && timeText && !isMe && ((0, jsx_runtime_1.jsxs)(S_TimeWrapper, { children: [(0, jsx_runtime_1.jsx)(hybrid_1.Spacing, { size: "spacing_a", spacingType: "width" }), (0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { text: timeText, styleTheme: "caption2Regular", colorTheme: "sysTextTertiary", singleLineMode: "use" })] }))] })), hoverMode === 'use' && !isMe && ((0, jsx_runtime_1.jsx)(S_SeeMoreButton, __assign({ isContextMenuOpen: isContextMenuOpen, hoverMode: hoverMode, ref: contextMenuRef }, { children: (0, jsx_runtime_1.jsx)(IconButton_1.IconButton, { fillType: "fill", baseSize: "xsmall", iconFillType: "fill", iconSize: 20, iconName: "ic_more", baseColorKey: "ui_cpnt_button_fill_base_transparent", iconColorKey: "ui_cpnt_button_icon_enabled", onClick: handleMoreButtonClick }) })))] })] }), (0, jsx_runtime_1.jsx)(Popup_1.PopupProvider, { children: (0, jsx_runtime_1.jsx)(Popup_1.Popup, __assign({ targetRef: contextMenuRef, isOpen: isContextMenuOpen, placement: contextMenuPosition, wrapperHeight: rect === null || rect === void 0 ? void 0 : rect.height, onClickOutside: function () { return setIsContextMenuOpen(false); } }, { children: (0, jsx_runtime_1.jsx)(ContextMenu_1.ContextMenu, { children: contextMenuOptionArray === null || contextMenuOptionArray === void 0 ? void 0 : contextMenuOptionArray.map(function (el) { return ((0, jsx_runtime_1.jsx)(ContextMenuItem_1.ContextMenuItem, { option: el, onClick: handleContextMenuItemClick, state: contextMenuState }, el.value)); }) }) })) })] })) }));
140
156
  }
141
157
  var MyChatBubbleListItem = (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n margin-right: ", ";\n"], ["\n margin-right: ", ";\n"])), function (_a) {
142
158
  var theme = _a.theme;
@@ -1,4 +1,5 @@
1
1
  import { MutableRefObject } from 'react';
2
+ export type PlacementTypes = 'v-auto' | 'h-auto' | 'v-center' | 'h-center' | 'top' | 'top-start' | 'top-end' | 'top-both' | 'top-center' | 'bottom' | 'bottom-start' | 'bottom-end' | 'bottom-both' | 'bottom-center' | 'left' | 'left-start' | 'left-end' | 'left-center' | 'right' | 'right-start' | 'right-end' | 'right-center';
2
3
  type Props = {
3
4
  targetRef: MutableRefObject<HTMLElement | null>;
4
5
  isOpen: boolean;
@@ -436,7 +436,7 @@ var inputInnerSpinButtonStyle = (0, styled_components_1.css)(templateObject_14 |
436
436
  var innerSpinButtonSize = _a.innerSpinButtonSize;
437
437
  return innerSpinButtonSize && "".concat(innerSpinButtonSize, "px");
438
438
  });
439
- var S_Input = styled_components_1.default.input(templateObject_15 || (templateObject_15 = __makeTemplateObject(["\n ", "\n line-height: ", ";\n position: relative;\n\n ::-webkit-inner-spin-button {\n ", "\n }\n ::-webkit-outer-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n"], ["\n ", "\n line-height: ", ";\n position: relative;\n\n ::-webkit-inner-spin-button {\n ", "\n }\n ::-webkit-outer-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n"])), basicStyle, function (_a) {
439
+ var S_Input = styled_components_1.default.input(templateObject_15 || (templateObject_15 = __makeTemplateObject(["\n ", "\n line-height: ", ";\n position: relative;\n\n ::-webkit-inner-spin-button {\n ", "\n }\n ::-webkit-outer-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n\n &:-webkit-autofill,\n &:-webkit-autofill:hover,\n &:-webkit-autofill:focus,\n &:-webkit-autofill:active {\n -webkit-text-fill-color: ", " !important;\n transition: background-color 9999s ease-in-out 0s !important;\n }\n"], ["\n ", "\n line-height: ", ";\n position: relative;\n\n ::-webkit-inner-spin-button {\n ", "\n }\n ::-webkit-outer-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n\n &:-webkit-autofill,\n &:-webkit-autofill:hover,\n &:-webkit-autofill:focus,\n &:-webkit-autofill:active {\n -webkit-text-fill-color: ", " !important;\n transition: background-color 9999s ease-in-out 0s !important;\n }\n"])), basicStyle, function (_a) {
440
440
  var theme = _a.theme;
441
441
  return theme.desktopLineHeight.singleLine;
442
442
  }, function (_a) {
@@ -444,6 +444,9 @@ var S_Input = styled_components_1.default.input(templateObject_15 || (templateOb
444
444
  return stepperMode === 'use' && type === 'number' && isFocused
445
445
  ? inputInnerSpinButtonStyle
446
446
  : '-webkit-appearance: none; margin: 0;';
447
+ }, function (_a) {
448
+ var theme = _a.theme;
449
+ return theme.ui_cpnt_textfield_text_typed;
447
450
  });
448
451
  var S_Auto = styled_components_1.default.textarea(templateObject_16 || (templateObject_16 = __makeTemplateObject(["\n ", "\n display: block;\n overflow-y: auto;\n resize: none;\n ", "\n ", ";\n"], ["\n ", "\n display: block;\n overflow-y: auto;\n resize: none;\n ", "\n ", ";\n"])), basicStyle, function (_a) {
449
452
  var autoMaxRows = _a.autoMaxRows, textSize = _a.textSize, fieldHeight = _a.fieldHeight;
@@ -1,4 +1,5 @@
1
1
  /// <reference types="react" />
2
+ import { PlacementTypes } from './Popup';
2
3
  import type { PDSTextType, PDSValueOption } from '../../../common';
3
4
  type Props = {
4
5
  titleText?: PDSTextType;
@@ -8,8 +9,9 @@ type Props = {
8
9
  hoverMode?: 'none' | 'use';
9
10
  contextMenuOptionArray?: PDSValueOption[];
10
11
  contextMenuState?: 'normal' | 'disabled';
11
- colorTheme?: 'seller' | 'subscriber' | 'seller_transparent' | 'subscriber_transparent';
12
+ colorTheme?: 'seller' | 'seller_transparent' | 'subscriber' | 'subscriber_transparent' | 'secondary_transparent_grey' | 'white_transparent_grey';
13
+ contextMenuPosition?: PlacementTypes;
12
14
  onClickContextMenuItem?: (option: PDSValueOption) => void;
13
15
  };
14
- declare function BasicChatListItem({ titleText, contentText, leftImageMode, imageSrc, hoverMode, contextMenuOptionArray, onClickContextMenuItem, contextMenuState, colorTheme }: Props): JSX.Element;
16
+ declare function BasicChatListItem({ titleText, contentText, leftImageMode, imageSrc, hoverMode, contextMenuOptionArray, contextMenuPosition, onClickContextMenuItem, contextMenuState, colorTheme }: Props): JSX.Element;
15
17
  export default BasicChatListItem;
@@ -29,19 +29,23 @@ var TextLabel_1 = require("../TextLabel");
29
29
  var Popup_1 = require("./Popup");
30
30
  var titleTextColors = {
31
31
  seller: 'usrTextBrandPrimary',
32
- subscriber: 'sysTextSecondary',
33
32
  seller_transparent: 'usrTextBrandPrimary',
34
- subscriber_transparent: 'sysTextWhite'
33
+ subscriber: 'sysTextSecondary',
34
+ subscriber_transparent: 'sysTextWhite',
35
+ secondary_transparent_grey: 'sysTextSecondary',
36
+ white_transparent_grey: 'sysTextWhite'
35
37
  };
36
38
  var backgroundColorTheme = {
37
39
  seller: 'ui_cpnt_list_base_area_seller',
38
- subscriber: 'ui_cpnt_list_base_area',
39
40
  seller_transparent: 'ui_cpnt_list_base_area_transparent_seller',
40
- subscriber_transparent: 'ui_cpnt_list_base_area_transparent'
41
+ subscriber: 'ui_cpnt_list_base_area',
42
+ subscriber_transparent: 'ui_cpnt_list_base_area_transparent',
43
+ secondary_transparent_grey: 'ui_cpnt_list_base_area',
44
+ white_transparent_grey: 'ui_cpnt_list_base_area_transparent'
41
45
  };
42
46
  function BasicChatListItem(_a) {
43
- var titleText = _a.titleText, contentText = _a.contentText, _b = _a.leftImageMode, leftImageMode = _b === void 0 ? 'none' : _b, imageSrc = _a.imageSrc, _c = _a.hoverMode, hoverMode = _c === void 0 ? 'use' : _c, contextMenuOptionArray = _a.contextMenuOptionArray, onClickContextMenuItem = _a.onClickContextMenuItem, _d = _a.contextMenuState, contextMenuState = _d === void 0 ? 'normal' : _d, _e = _a.colorTheme, colorTheme = _e === void 0 ? 'subscriber' : _e;
44
- var _f = (0, react_1.useState)(false), isContextMenuOpen = _f[0], setIsContextMenuOpen = _f[1];
47
+ var titleText = _a.titleText, contentText = _a.contentText, _b = _a.leftImageMode, leftImageMode = _b === void 0 ? 'none' : _b, imageSrc = _a.imageSrc, _c = _a.hoverMode, hoverMode = _c === void 0 ? 'use' : _c, contextMenuOptionArray = _a.contextMenuOptionArray, _d = _a.contextMenuPosition, contextMenuPosition = _d === void 0 ? 'v-auto' : _d, onClickContextMenuItem = _a.onClickContextMenuItem, _e = _a.contextMenuState, contextMenuState = _e === void 0 ? 'normal' : _e, _f = _a.colorTheme, colorTheme = _f === void 0 ? 'subscriber' : _f;
48
+ var _g = (0, react_1.useState)(false), isContextMenuOpen = _g[0], setIsContextMenuOpen = _g[1];
45
49
  var contextMenuRef = (0, react_1.useRef)(null);
46
50
  var chatBody = document.querySelector('#chatMessageBox');
47
51
  var chatBodyRect = chatBody === null || chatBody === void 0 ? void 0 : chatBody.getBoundingClientRect();
@@ -57,6 +61,24 @@ function BasicChatListItem(_a) {
57
61
  }
58
62
  chatBody.style.overflowY = isContextMenuOpen ? 'hidden' : 'auto';
59
63
  }, [isContextMenuOpen, chatBody]);
64
+ /**
65
+ * @when contextMenu가 열려 있을 때
66
+ * @expected touchmove 이벤트 발생시 contextMenu를 닫습니다.
67
+ * @clear touchmove 이벤트를 제거합니다.
68
+ */
69
+ (0, react_1.useEffect)(function () {
70
+ function handleScrollEvent() {
71
+ setIsContextMenuOpen(false);
72
+ }
73
+ window.addEventListener('touchmove', handleScrollEvent);
74
+ window.addEventListener('scroll', handleScrollEvent);
75
+ window.addEventListener('wheel', handleScrollEvent);
76
+ return function () {
77
+ window.removeEventListener('touchmove', handleScrollEvent);
78
+ window.removeEventListener('scroll', handleScrollEvent);
79
+ window.removeEventListener('wheel', handleScrollEvent);
80
+ };
81
+ }, []);
60
82
  var handleMoreButtonClick = function (e) {
61
83
  e.stopPropagation();
62
84
  setIsContextMenuOpen(function (prev) { return !prev; });
@@ -67,7 +89,33 @@ function BasicChatListItem(_a) {
67
89
  }
68
90
  setIsContextMenuOpen(false);
69
91
  };
70
- return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsxs)(S_BasicChatListItem, __assign({ "x-pds-name": "BasicChatListItem", "x-pds-element-type": "component", "x-pds-device-type": "mobile", colorTheme: colorTheme }, { children: [leftImageMode === 'use' && ((0, jsx_runtime_1.jsx)(S_ImageViewWrapper, { children: (0, jsx_runtime_1.jsx)(hybrid_1.ImageView, { shapeType: "circular", ratio: "1_1", scaleType: "cover", src: imageSrc, width: "responsive" }) })), (0, jsx_runtime_1.jsx)(S_TitleTextWrapper, { children: (0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { text: titleText, styleTheme: "caption1Bold", wordBreak: "break_all", colorTheme: titleTextColors[colorTheme] }) }), (0, jsx_runtime_1.jsx)(S_ContentTextWrapper, { children: (0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { text: contentText, styleTheme: "caption1Regular", colorTheme: colorTheme === 'subscriber_transparent' ? 'sysTextWhite' : 'sysTextPrimary', wordBreak: "break_all" }) }), hoverMode === 'use' && ((0, jsx_runtime_1.jsx)(S_SeeMoreButton, __assign({ isContextMenuOpen: isContextMenuOpen, hoverMode: hoverMode, ref: contextMenuRef }, { children: (0, jsx_runtime_1.jsx)(IconButton_1.IconButton, { fillType: "fill", baseSize: "xsmall", iconFillType: "fill", iconSize: 20, iconName: "ic_more", baseColorKey: "ui_cpnt_button_fill_base_transparent", iconColorKey: "ui_cpnt_button_icon_enabled", onClick: handleMoreButtonClick }) }))), (0, jsx_runtime_1.jsx)(Popup_1.PopupProvider, { children: (0, jsx_runtime_1.jsx)(Popup_1.Popup, __assign({ targetRef: contextMenuRef, isOpen: isContextMenuOpen, placement: "v-auto", wrapperHeight: chatBodyRect === null || chatBodyRect === void 0 ? void 0 : chatBodyRect.height, onClickOutside: function () { return setIsContextMenuOpen(false); } }, { children: (0, jsx_runtime_1.jsx)(ContextMenu_1.ContextMenu, { children: contextMenuOptionArray === null || contextMenuOptionArray === void 0 ? void 0 : contextMenuOptionArray.map(function (el) { return ((0, jsx_runtime_1.jsx)(ContextMenuItem_1.ContextMenuItem, { option: el, onClick: handleContextMenuItemClick, state: contextMenuState }, el.value)); }) }) })) })] })) }));
92
+ var handleContextMenuOutsideClick = function () {
93
+ setIsContextMenuOpen(false);
94
+ };
95
+ var contentTextColorTheme;
96
+ var contentTextColorOverride;
97
+ var iconColorKey;
98
+ switch (colorTheme) {
99
+ case 'subscriber_transparent': {
100
+ contentTextColorTheme = 'sysTextWhite';
101
+ iconColorKey = 'ui_cpnt_button_icon_white';
102
+ break;
103
+ }
104
+ case 'secondary_transparent_grey': {
105
+ contentTextColorTheme = 'sysTextSecondary';
106
+ break;
107
+ }
108
+ case 'white_transparent_grey': {
109
+ contentTextColorOverride = 'ui_cpnt_textlabel_sys_white_02';
110
+ iconColorKey = 'ui_cpnt_button_icon_white';
111
+ break;
112
+ }
113
+ default: {
114
+ contentTextColorTheme = 'sysTextPrimary';
115
+ iconColorKey = 'ui_cpnt_button_icon_enabled';
116
+ }
117
+ }
118
+ return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsxs)(S_BasicChatListItem, __assign({ "x-pds-name": "BasicChatListItem", "x-pds-element-type": "component", "x-pds-device-type": "mobile", colorTheme: colorTheme }, { children: [leftImageMode === 'use' && ((0, jsx_runtime_1.jsx)(S_ImageViewWrapper, { children: (0, jsx_runtime_1.jsx)(hybrid_1.ImageView, { shapeType: "circular", ratio: "1_1", scaleType: "cover", src: imageSrc, width: "responsive" }) })), (0, jsx_runtime_1.jsx)(S_TitleTextWrapper, { children: (0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { text: titleText, styleTheme: "caption1Bold", wordBreak: "break_all", colorTheme: titleTextColors[colorTheme] }) }), (0, jsx_runtime_1.jsx)(S_ContentTextWrapper, { children: (0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { text: contentText, styleTheme: "caption1Regular", colorTheme: contentTextColorTheme, colorOverride: contentTextColorOverride, wordBreak: "break_all" }) }), hoverMode === 'use' && ((0, jsx_runtime_1.jsx)(S_MoreButtonWrapper, { children: (0, jsx_runtime_1.jsx)(S_SeeMoreButton, __assign({ isContextMenuOpen: isContextMenuOpen, hoverMode: hoverMode, ref: contextMenuRef }, { children: (0, jsx_runtime_1.jsx)(IconButton_1.IconButton, { fillType: "fill", baseSize: "xsmall", iconFillType: "fill", iconSize: 20, iconName: "ic_more", baseColorKey: "ui_cpnt_button_fill_base_transparent", iconColorKey: iconColorKey, onClick: handleMoreButtonClick }) })) })), (0, jsx_runtime_1.jsx)(Popup_1.PopupProvider, { children: (0, jsx_runtime_1.jsx)(Popup_1.Popup, __assign({ targetRef: contextMenuRef, isOpen: isContextMenuOpen, placement: contextMenuPosition, wrapperHeight: chatBodyRect === null || chatBodyRect === void 0 ? void 0 : chatBodyRect.height, onClickOutside: handleContextMenuOutsideClick }, { children: (0, jsx_runtime_1.jsx)(ContextMenu_1.ContextMenu, { children: contextMenuOptionArray === null || contextMenuOptionArray === void 0 ? void 0 : contextMenuOptionArray.map(function (el) { return ((0, jsx_runtime_1.jsx)(ContextMenuItem_1.ContextMenuItem, { option: el, onClick: handleContextMenuItemClick, state: contextMenuState }, el.value)); }) }) })) })] })) }));
71
119
  }
72
120
  var S_BasicChatListItem = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n background-color: ", ";\n display: flex;\n height: fit-content;\n max-width: 100%;\n min-height: 24px;\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n padding-top: ", ";\n"], ["\n background-color: ", ";\n display: flex;\n height: fit-content;\n max-width: 100%;\n min-height: 24px;\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n padding-top: ", ";\n"])), function (_a) {
73
121
  var colorTheme = _a.colorTheme, theme = _a.theme;
@@ -93,7 +141,8 @@ var S_ContentTextWrapper = styled_components_1.default.div(templateObject_3 || (
93
141
  var theme = _a.theme;
94
142
  return theme.spacing.spacingC;
95
143
  });
96
- var S_SeeMoreButton = styled_components_1.default.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n margin-left: ", ";\n opacity: ", ";\n position: relative;\n\n ", ":hover & {\n opacity: ", ";\n }\n"], ["\n margin-left: ", ";\n opacity: ", ";\n position: relative;\n\n ", ":hover & {\n opacity: ", ";\n }\n"])), function (_a) {
144
+ var S_MoreButtonWrapper = styled_components_1.default.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n height: 24px;\n width: 24px;\n"], ["\n height: 24px;\n width: 24px;\n"])));
145
+ var S_SeeMoreButton = styled_components_1.default.div(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n margin-left: ", ";\n opacity: ", ";\n position: relative;\n\n ", ":hover & {\n opacity: ", ";\n }\n"], ["\n margin-left: ", ";\n opacity: ", ";\n position: relative;\n\n ", ":hover & {\n opacity: ", ";\n }\n"])), function (_a) {
97
146
  var theme = _a.theme;
98
147
  return theme.spacing.spacingA;
99
148
  }, function (_a) {
@@ -103,6 +152,6 @@ var S_SeeMoreButton = styled_components_1.default.div(templateObject_4 || (templ
103
152
  var hoverMode = _a.hoverMode;
104
153
  return hoverMode === 'use' && '1';
105
154
  });
106
- var S_TitleTextWrapper = styled_components_1.default.div(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n max-width: 120px;\n min-width: 56px;\n"], ["\n max-width: 120px;\n min-width: 56px;\n"])));
155
+ var S_TitleTextWrapper = styled_components_1.default.div(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n max-width: 120px;\n min-width: 56px;\n"], ["\n max-width: 120px;\n min-width: 56px;\n"])));
107
156
  exports.default = BasicChatListItem;
108
- var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
157
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6;
@@ -1,4 +1,5 @@
1
1
  import { MutableRefObject } from 'react';
2
+ export type PlacementTypes = 'v-auto' | 'h-auto' | 'v-center' | 'h-center' | 'top' | 'top-start' | 'top-end' | 'top-both' | 'top-center' | 'bottom' | 'bottom-start' | 'bottom-end' | 'bottom-both' | 'bottom-center' | 'left' | 'left-start' | 'left-end' | 'left-center' | 'right' | 'right-start' | 'right-end' | 'right-center';
2
3
  type Props = {
3
4
  targetRef: MutableRefObject<HTMLElement | null>;
4
5
  isOpen: boolean;
@@ -1,4 +1,5 @@
1
1
  /// <reference types="react" />
2
+ import { PlacementTypes } from './Popup';
2
3
  import type { PDSTextType, PDSValueOption } from '../../../common';
3
4
  type ColorThemeType = 'grey' | 'brand_primary' | 'translucent_white' | 'translucent_black';
4
5
  export type ChatBubbleListItemProps = {
@@ -11,8 +12,9 @@ export type ChatBubbleListItemProps = {
11
12
  timeText?: PDSTextType;
12
13
  contextMenuOptionArray?: PDSValueOption[];
13
14
  contextMenuState?: 'normal' | 'disabled';
15
+ contextMenuPosition?: PlacementTypes;
14
16
  children?: React.ReactNode;
15
17
  onClickContextMenuItem?: (option: PDSValueOption) => void;
16
18
  };
17
- declare function ChatBubbleListItem({ titleText, imageSrc, hoverMode, styleTheme, colorTheme, timeMode, timeText, contextMenuOptionArray, contextMenuState, children, onClickContextMenuItem }: ChatBubbleListItemProps): JSX.Element;
19
+ declare function ChatBubbleListItem({ titleText, imageSrc, hoverMode, styleTheme, colorTheme, timeMode, timeText, contextMenuOptionArray, contextMenuState, contextMenuPosition, children, onClickContextMenuItem }: ChatBubbleListItemProps): JSX.Element;
18
20
  export default ChatBubbleListItem;
@@ -67,9 +67,9 @@ var profileImageBorderColorTheme = {
67
67
  translucent_black: 'ui_avatar_border_translucent_black'
68
68
  };
69
69
  function ChatBubbleListItem(_a) {
70
- var titleText = _a.titleText, imageSrc = _a.imageSrc, _b = _a.hoverMode, hoverMode = _b === void 0 ? 'use' : _b, styleTheme = _a.styleTheme, _c = _a.colorTheme, colorTheme = _c === void 0 ? 'grey' : _c, _d = _a.timeMode, timeMode = _d === void 0 ? 'use' : _d, timeText = _a.timeText, contextMenuOptionArray = _a.contextMenuOptionArray, _e = _a.contextMenuState, contextMenuState = _e === void 0 ? 'normal' : _e, children = _a.children, onClickContextMenuItem = _a.onClickContextMenuItem;
70
+ var titleText = _a.titleText, imageSrc = _a.imageSrc, _b = _a.hoverMode, hoverMode = _b === void 0 ? 'use' : _b, styleTheme = _a.styleTheme, _c = _a.colorTheme, colorTheme = _c === void 0 ? 'grey' : _c, _d = _a.timeMode, timeMode = _d === void 0 ? 'use' : _d, timeText = _a.timeText, contextMenuOptionArray = _a.contextMenuOptionArray, _e = _a.contextMenuState, contextMenuState = _e === void 0 ? 'normal' : _e, _f = _a.contextMenuPosition, contextMenuPosition = _f === void 0 ? 'v-auto' : _f, children = _a.children, onClickContextMenuItem = _a.onClickContextMenuItem;
71
71
  var isMe = styleTheme.includes('me');
72
- var _f = (0, react_1.useState)(false), isContextMenuOpen = _f[0], setIsContextMenuOpen = _f[1];
72
+ var _g = (0, react_1.useState)(false), isContextMenuOpen = _g[0], setIsContextMenuOpen = _g[1];
73
73
  var contextMenuRef = (0, react_1.useRef)(null);
74
74
  var chatBody = document.querySelector('#chatMessageBox');
75
75
  var rect = chatBody === null || chatBody === void 0 ? void 0 : chatBody.getBoundingClientRect();
@@ -85,6 +85,24 @@ function ChatBubbleListItem(_a) {
85
85
  }
86
86
  chatBody.style.overflowY = isContextMenuOpen ? 'hidden' : 'auto';
87
87
  }, [isContextMenuOpen, chatBody]);
88
+ /**
89
+ * @when contextMenu가 열려 있을 때
90
+ * @expected touchmove 이벤트 발생시 contextMenu를 닫습니다.
91
+ * @clear touchmove 이벤트를 제거합니다.
92
+ */
93
+ (0, react_1.useEffect)(function () {
94
+ function handleScrollEvent() {
95
+ setIsContextMenuOpen(false);
96
+ }
97
+ window.addEventListener('touchmove', handleScrollEvent);
98
+ window.addEventListener('scroll', handleScrollEvent);
99
+ window.addEventListener('wheel', handleScrollEvent);
100
+ return function () {
101
+ window.removeEventListener('touchmove', handleScrollEvent);
102
+ window.removeEventListener('scroll', handleScrollEvent);
103
+ window.removeEventListener('wheel', handleScrollEvent);
104
+ };
105
+ }, []);
88
106
  var handleMoreButtonClick = function (e) {
89
107
  e.stopPropagation();
90
108
  setIsContextMenuOpen(function (prev) { return !prev; });
@@ -136,7 +154,7 @@ function ChatBubbleListItem(_a) {
136
154
  }
137
155
  return false;
138
156
  };
139
- return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsxs)(S_ChatBubbleListItem, __assign({ "x-pds-name": "ChatBubbleListItem", "x-pds-element-type": "component", "x-pds-device-type": "mobile", isMe: isMe }, { children: [isLeftSpacingChecker() ? ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: isShowProfileImage() ? ((0, jsx_runtime_1.jsx)(S_ImageViewWrapper, __assign({ isOtherAvatarImpact: styleTheme === 'other_avatar_impact', colorTheme: colorTheme }, { children: (0, jsx_runtime_1.jsx)(hybrid_1.ImageView, { shapeType: "circular", ratio: "1_1", scaleType: "cover", src: imageSrc, width: styleTheme === 'other_avatar_impact' ? 36 : 38 }) }))) : ((0, jsx_runtime_1.jsx)(hybrid_1.Spacing, { size: "spacing_g", spacingType: "width" })) })) : ((0, jsx_runtime_1.jsx)(hybrid_1.Spacing, { size: "spacing_a", spacingType: "width" })), (0, jsx_runtime_1.jsxs)(S_RightBox, { children: [isShowTitleText() && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { text: titleText, styleTheme: "caption1Bold", colorTheme: colorTheme && checkTextColorTheme() }), (0, jsx_runtime_1.jsx)(hybrid_1.Spacing, { size: "spacing_b" })] })), (0, jsx_runtime_1.jsxs)(S_ChatBubbleBox, { children: [(0, jsx_runtime_1.jsxs)(S_ChatBubbleWrapper, __assign({ isMe: isMe }, { children: [timeMode === 'use' && timeText && isMe && ((0, jsx_runtime_1.jsxs)(S_TimeWrapper, { children: [(0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { text: timeText, styleTheme: "caption2Regular", colorTheme: "sysTextTertiary", singleLineMode: "use" }), (0, jsx_runtime_1.jsx)(hybrid_1.Spacing, { size: "spacing_a", spacingType: "width" })] })), (0, jsx_runtime_1.jsx)(ChatBubble_1.default, __assign({ colorTheme: colorTheme, tailType: chatBubbleTailType[styleTheme] }, { children: children })), timeMode === 'use' && timeText && !isMe && ((0, jsx_runtime_1.jsxs)(S_TimeWrapper, { children: [(0, jsx_runtime_1.jsx)(hybrid_1.Spacing, { size: "spacing_a", spacingType: "width" }), (0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { text: timeText, styleTheme: "caption2Regular", colorTheme: "sysTextTertiary", singleLineMode: "use" })] }))] })), hoverMode === 'use' && !isMe && ((0, jsx_runtime_1.jsx)(S_SeeMoreButton, __assign({ isContextMenuOpen: isContextMenuOpen, hoverMode: hoverMode, ref: contextMenuRef }, { children: (0, jsx_runtime_1.jsx)(IconButton_1.IconButton, { fillType: "fill", baseSize: "xsmall", iconFillType: "fill", iconSize: 20, iconName: "ic_more", baseColorKey: "ui_cpnt_button_fill_base_transparent", iconColorKey: "ui_cpnt_button_icon_enabled", onClick: handleMoreButtonClick }) })))] })] }), (0, jsx_runtime_1.jsx)(Popup_1.PopupProvider, { children: (0, jsx_runtime_1.jsx)(Popup_1.Popup, __assign({ targetRef: contextMenuRef, isOpen: isContextMenuOpen, placement: "v-auto", wrapperHeight: rect === null || rect === void 0 ? void 0 : rect.height, onClickOutside: function () { return setIsContextMenuOpen(false); } }, { children: (0, jsx_runtime_1.jsx)(ContextMenu_1.ContextMenu, { children: contextMenuOptionArray === null || contextMenuOptionArray === void 0 ? void 0 : contextMenuOptionArray.map(function (el) { return ((0, jsx_runtime_1.jsx)(ContextMenuItem_1.ContextMenuItem, { option: el, onClick: handleContextMenuItemClick, state: contextMenuState }, el.value)); }) }) })) })] })) }));
157
+ return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsxs)(S_ChatBubbleListItem, __assign({ "x-pds-name": "ChatBubbleListItem", "x-pds-element-type": "component", "x-pds-device-type": "mobile", isMe: isMe }, { children: [isLeftSpacingChecker() ? ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: isShowProfileImage() ? ((0, jsx_runtime_1.jsx)(S_ImageViewWrapper, __assign({ isOtherAvatarImpact: styleTheme === 'other_avatar_impact', colorTheme: colorTheme }, { children: (0, jsx_runtime_1.jsx)(hybrid_1.ImageView, { shapeType: "circular", ratio: "1_1", scaleType: "cover", src: imageSrc, width: styleTheme === 'other_avatar_impact' ? 36 : 38 }) }))) : ((0, jsx_runtime_1.jsx)(hybrid_1.Spacing, { size: "spacing_g", spacingType: "width" })) })) : ((0, jsx_runtime_1.jsx)(hybrid_1.Spacing, { size: "spacing_a", spacingType: "width" })), (0, jsx_runtime_1.jsxs)(S_RightBox, { children: [isShowTitleText() && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { text: titleText, styleTheme: "caption1Bold", colorTheme: colorTheme && checkTextColorTheme() }), (0, jsx_runtime_1.jsx)(hybrid_1.Spacing, { size: "spacing_b" })] })), (0, jsx_runtime_1.jsxs)(S_ChatBubbleBox, { children: [(0, jsx_runtime_1.jsxs)(S_ChatBubbleWrapper, __assign({ isMe: isMe }, { children: [timeMode === 'use' && timeText && isMe && ((0, jsx_runtime_1.jsxs)(S_TimeWrapper, { children: [(0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { text: timeText, styleTheme: "caption2Regular", colorTheme: "sysTextTertiary", singleLineMode: "use" }), (0, jsx_runtime_1.jsx)(hybrid_1.Spacing, { size: "spacing_a", spacingType: "width" })] })), (0, jsx_runtime_1.jsx)(ChatBubble_1.default, __assign({ colorTheme: colorTheme, tailType: chatBubbleTailType[styleTheme] }, { children: children })), timeMode === 'use' && timeText && !isMe && ((0, jsx_runtime_1.jsxs)(S_TimeWrapper, { children: [(0, jsx_runtime_1.jsx)(hybrid_1.Spacing, { size: "spacing_a", spacingType: "width" }), (0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { text: timeText, styleTheme: "caption2Regular", colorTheme: "sysTextTertiary", singleLineMode: "use" })] }))] })), hoverMode === 'use' && !isMe && ((0, jsx_runtime_1.jsx)(S_SeeMoreButton, __assign({ isContextMenuOpen: isContextMenuOpen, hoverMode: hoverMode, ref: contextMenuRef }, { children: (0, jsx_runtime_1.jsx)(IconButton_1.IconButton, { fillType: "fill", baseSize: "xsmall", iconFillType: "fill", iconSize: 20, iconName: "ic_more", baseColorKey: "ui_cpnt_button_fill_base_transparent", iconColorKey: "ui_cpnt_button_icon_enabled", onClick: handleMoreButtonClick }) })))] })] }), (0, jsx_runtime_1.jsx)(Popup_1.PopupProvider, { children: (0, jsx_runtime_1.jsx)(Popup_1.Popup, __assign({ targetRef: contextMenuRef, isOpen: isContextMenuOpen, placement: contextMenuPosition, wrapperHeight: rect === null || rect === void 0 ? void 0 : rect.height, onClickOutside: function () { return setIsContextMenuOpen(false); } }, { children: (0, jsx_runtime_1.jsx)(ContextMenu_1.ContextMenu, { children: contextMenuOptionArray === null || contextMenuOptionArray === void 0 ? void 0 : contextMenuOptionArray.map(function (el) { return ((0, jsx_runtime_1.jsx)(ContextMenuItem_1.ContextMenuItem, { option: el, onClick: handleContextMenuItemClick, state: contextMenuState }, el.value)); }) }) })) })] })) }));
140
158
  }
141
159
  var MyChatBubbleListItem = (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n margin-right: ", ";\n"], ["\n margin-right: ", ";\n"])), function (_a) {
142
160
  var theme = _a.theme;
@@ -1,4 +1,5 @@
1
1
  import { MutableRefObject } from 'react';
2
+ export type PlacementTypes = 'v-auto' | 'h-auto' | 'v-center' | 'h-center' | 'top' | 'top-start' | 'top-end' | 'top-both' | 'top-center' | 'bottom' | 'bottom-start' | 'bottom-end' | 'bottom-both' | 'bottom-center' | 'left' | 'left-start' | 'left-end' | 'left-center' | 'right' | 'right-start' | 'right-end' | 'right-center';
2
3
  type Props = {
3
4
  targetRef: MutableRefObject<HTMLElement | null>;
4
5
  isOpen: boolean;
@@ -86,7 +86,7 @@ var Body = react_1.default.forwardRef(function (_a, ref) {
86
86
  }
87
87
  setIsButtonShow(true);
88
88
  };
89
- return ((0, jsx_runtime_1.jsxs)(S_Body, __assign({ bodySpacingMode: bodySpacingMode }, { children: [(0, jsx_runtime_1.jsxs)(S_ChatMessageBox, __assign({ onScroll: handleScroll, ref: ref, scrollVisibleType: scrollVisibleType }, { children: [children, (0, jsx_runtime_1.jsx)(EndOfList, {})] })), bodyChildren, isButtonShow && ((0, jsx_runtime_1.jsx)(S_BottomButtonWrapper, { children: (0, jsx_runtime_1.jsx)(MainButton_1.MainButton, { text: bodyMBtnText, size: "small", onClick: handleClickMBtn }) }))] })));
89
+ return ((0, jsx_runtime_1.jsxs)(S_Body, __assign({ bodySpacingMode: bodySpacingMode }, { children: [(0, jsx_runtime_1.jsxs)(S_ChatMessageBox, __assign({ id: "chatMessageBox", onScroll: handleScroll, ref: ref, scrollVisibleType: scrollVisibleType }, { children: [children, (0, jsx_runtime_1.jsx)(EndOfList, {})] })), bodyChildren, isButtonShow && ((0, jsx_runtime_1.jsx)(S_BottomButtonWrapper, { children: (0, jsx_runtime_1.jsx)(MainButton_1.MainButton, { text: bodyMBtnText, size: "small", onClick: handleClickMBtn }) }))] })));
90
90
  });
91
91
  var bodySpacing = (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n box-sizing: border-box;\n padding-left: ", ";\n padding-right: ", ";\n"], ["\n box-sizing: border-box;\n padding-left: ", ";\n padding-right: ", ";\n"])), function (_a) {
92
92
  var theme = _a.theme;
@@ -1,4 +1,4 @@
1
1
  /// <reference types="react" />
2
2
  import type { DynamicLayoutProps } from './types';
3
- declare function DynamicLayout({ device, mode, isPreview, sections, scrollDownTargetSectionId, editingSectionId, navigationHandler, sectionActionHandler, onClickEditSection, programmedSectionComponents, customGridRows }: DynamicLayoutProps): JSX.Element;
3
+ declare function DynamicLayout({ device, mode, isPreview, sections, scrollDownTargetSectionId, editingSectionId, navigationHandler, sectionActionHandler, onClickEditSection, programmedSectionComponents }: DynamicLayoutProps): JSX.Element;
4
4
  export default DynamicLayout;
@@ -25,7 +25,7 @@ var EditModeSectionMatcher_1 = require("./components/EditModeSectionMatcher");
25
25
  var SectionMatcher_1 = require("./components/SectionMatcher");
26
26
  var dynamicLayoutContext_1 = require("./dynamicLayoutContext");
27
27
  function DynamicLayout(_a) {
28
- 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, customGridRows = _a.customGridRows;
28
+ 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;
29
29
  var filteredSortedSection = __spreadArray([], sections, true).filter(function (section) { return section.display; })
30
30
  .sort(function (a, b) { return a.order - b.order; });
31
31
  var iframeSection = filteredSortedSection.find(function (section) { return section.manifest.schema === 'EXP_IFRAME' && section.display; });
@@ -36,8 +36,7 @@ function DynamicLayout(_a) {
36
36
  navigationHandler: navigationHandler,
37
37
  sectionActionHandler: sectionActionHandler,
38
38
  editingSectionId: editingSectionId,
39
- programmedSectionComponents: programmedSectionComponents,
40
- customGridRows: customGridRows
39
+ programmedSectionComponents: programmedSectionComponents
41
40
  } }, { children: [mode === 'EDIT' && onClickEditSection && ((0, jsx_runtime_1.jsx)(EditModeSectionMatcher_1.EditModeSectionMatcher, { editingSectionId: editingSectionId, scrollDownTargetSectionId: scrollDownTargetSectionId, filteredSortedSection: filteredSortedSection, onClickEditSection: onClickEditSection })), mode !== 'EDIT' &&
42
41
  (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); })))] })));
43
42
  }
@@ -13,7 +13,7 @@ function RichText(_a) {
13
13
  var text = _a.text;
14
14
  return (0, jsx_runtime_1.jsx)(S_RichText, { dangerouslySetInnerHTML: { __html: text } });
15
15
  }
16
- var S_RichText = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n line-height: 1.5;\n text-align: left;\n white-space: pre-wrap;\n width: 100%;\n word-break: break-word;\n\n a {\n color: ", ";\n }\n\n img {\n width: 100%;\n }\n\n figure {\n margin: 0;\n max-width: 100%;\n\n img {\n width: 100%;\n }\n }\n\n blockquote {\n border-left: 4px solid ", ";\n margin: 4px;\n padding: 4px;\n\n p {\n font-style: oblique;\n margin: 0;\n }\n }\n\n iframe {\n border: none;\n }\n"], ["\n line-height: 1.5;\n text-align: left;\n white-space: pre-wrap;\n width: 100%;\n word-break: break-word;\n\n a {\n color: ", ";\n }\n\n img {\n width: 100%;\n }\n\n figure {\n margin: 0;\n max-width: 100%;\n\n img {\n width: 100%;\n }\n }\n\n blockquote {\n border-left: 4px solid ", ";\n margin: 4px;\n padding: 4px;\n\n p {\n font-style: oblique;\n margin: 0;\n }\n }\n\n iframe {\n border: none;\n }\n"])), function (_a) {
16
+ var S_RichText = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n line-height: 1.5;\n text-align: left;\n white-space: pre-wrap;\n width: 100%;\n word-break: break-word;\n\n & pre {\n white-space: pre-wrap;\n }\n\n div,\n p {\n overflow: hidden;\n }\n\n a {\n color: ", ";\n }\n\n img {\n max-width: 100%;\n height: auto;\n }\n\n figure {\n margin: 0;\n max-width: 100%;\n\n img {\n max-width: 100%;\n height: auto;\n }\n }\n\n blockquote {\n border-left: 4px solid ", ";\n margin: 4px;\n padding: 4px;\n\n p {\n font-style: oblique;\n margin: 0;\n }\n }\n\n iframe {\n border: none;\n }\n"], ["\n line-height: 1.5;\n text-align: left;\n white-space: pre-wrap;\n width: 100%;\n word-break: break-word;\n\n & pre {\n white-space: pre-wrap;\n }\n\n div,\n p {\n overflow: hidden;\n }\n\n a {\n color: ", ";\n }\n\n img {\n max-width: 100%;\n height: auto;\n }\n\n figure {\n margin: 0;\n max-width: 100%;\n\n img {\n max-width: 100%;\n height: auto;\n }\n }\n\n blockquote {\n border-left: 4px solid ", ";\n margin: 4px;\n padding: 4px;\n\n p {\n font-style: oblique;\n margin: 0;\n }\n }\n\n iframe {\n border: none;\n }\n"])), function (_a) {
17
17
  var theme = _a.theme;
18
18
  return theme.ui_papp_post_notice_link;
19
19
  }, function (_a) {
@@ -185,7 +185,7 @@ function HTMLReader(_a) {
185
185
  }, [data]);
186
186
  return ((0, jsx_runtime_1.jsx)(S_Content, { ref: contentRef, styleTheme: styleTheme, colorTheme: colorTheme, color: color, textAlign: textAlign, isPreview: isPreview !== null && isPreview !== void 0 ? isPreview : mode === 'PREVIEW' }));
187
187
  }
188
- var S_Content = styled_components_1.default.div(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n color: ", ";\n line-height: 1.5;\n text-align: ", ";\n white-space: pre-wrap;\n width: 100%;\n word-break: break-word;\n\n ", "\n\n a {\n color: ", ";\n }\n\n img {\n width: 100%;\n }\n\n figure {\n margin: 0;\n max-width: 100%;\n\n img {\n width: 100%;\n }\n }\n\n blockquote {\n border-left: 4px solid ", ";\n margin: 4px;\n padding: 4px;\n\n p {\n font-style: oblique;\n margin: 0;\n }\n }\n\n ", ";\n\n ", ";\n\n ", "\n"], ["\n color: ", ";\n line-height: 1.5;\n text-align: ", ";\n white-space: pre-wrap;\n width: 100%;\n word-break: break-word;\n\n ", "\n\n a {\n color: ", ";\n }\n\n img {\n width: 100%;\n }\n\n figure {\n margin: 0;\n max-width: 100%;\n\n img {\n width: 100%;\n }\n }\n\n blockquote {\n border-left: 4px solid ", ";\n margin: 4px;\n padding: 4px;\n\n p {\n font-style: oblique;\n margin: 0;\n }\n }\n\n ", ";\n\n ", ";\n\n ", "\n"])), function (_a) {
188
+ var S_Content = styled_components_1.default.div(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n color: ", ";\n line-height: 1.5;\n text-align: ", ";\n white-space: pre-wrap;\n width: 100%;\n word-break: break-word;\n\n ", "\n\n & pre {\n white-space: pre-wrap;\n }\n\n div,\n p {\n overflow: hidden;\n }\n\n a {\n color: ", ";\n }\n\n img {\n max-width: 100%;\n height: auto;\n }\n\n figure {\n margin: 0;\n max-width: 100%;\n\n img {\n max-width: 100%;\n height: auto;\n }\n }\n\n blockquote {\n border-left: 4px solid ", ";\n margin: 4px;\n padding: 4px;\n\n p {\n font-style: oblique;\n margin: 0;\n }\n }\n\n iframe {\n border: none;\n }\n\n ", ";\n\n ", ";\n\n ", "\n"], ["\n color: ", ";\n line-height: 1.5;\n text-align: ", ";\n white-space: pre-wrap;\n width: 100%;\n word-break: break-word;\n\n ", "\n\n & pre {\n white-space: pre-wrap;\n }\n\n div,\n p {\n overflow: hidden;\n }\n\n a {\n color: ", ";\n }\n\n img {\n max-width: 100%;\n height: auto;\n }\n\n figure {\n margin: 0;\n max-width: 100%;\n\n img {\n max-width: 100%;\n height: auto;\n }\n }\n\n blockquote {\n border-left: 4px solid ", ";\n margin: 4px;\n padding: 4px;\n\n p {\n font-style: oblique;\n margin: 0;\n }\n }\n\n iframe {\n border: none;\n }\n\n ", ";\n\n ", ";\n\n ", "\n"])), function (_a) {
189
189
  var theme = _a.theme;
190
190
  return theme.ui_temp_grey_01;
191
191
  }, function (_a) {
@@ -182,7 +182,7 @@ function HTMLReader(_a) {
182
182
  }, [data]);
183
183
  return ((0, jsx_runtime_1.jsx)(S_Content, { ref: contentRef, styleTheme: styleTheme, colorTheme: colorTheme, color: color, textAlign: textAlign, isPreview: isPreview !== null && isPreview !== void 0 ? isPreview : mode === 'PREVIEW' }));
184
184
  }
185
- var S_Content = styled_components_1.default.div(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n color: ", ";\n line-height: 1.5;\n text-align: ", ";\n white-space: pre-wrap;\n width: 100%;\n word-break: break-word;\n\n ", "\n\n a {\n color: ", ";\n }\n\n img {\n width: 100%;\n }\n\n figure {\n margin: 0;\n max-width: 100%;\n\n img {\n width: 100%;\n }\n }\n\n blockquote {\n border-left: 4px solid ", ";\n margin: 4px;\n padding: 4px;\n\n p {\n font-style: oblique;\n margin: 0;\n }\n }\n\n ", ";\n\n ", ";\n\n ", "\n"], ["\n color: ", ";\n line-height: 1.5;\n text-align: ", ";\n white-space: pre-wrap;\n width: 100%;\n word-break: break-word;\n\n ", "\n\n a {\n color: ", ";\n }\n\n img {\n width: 100%;\n }\n\n figure {\n margin: 0;\n max-width: 100%;\n\n img {\n width: 100%;\n }\n }\n\n blockquote {\n border-left: 4px solid ", ";\n margin: 4px;\n padding: 4px;\n\n p {\n font-style: oblique;\n margin: 0;\n }\n }\n\n ", ";\n\n ", ";\n\n ", "\n"])), function (_a) {
185
+ var S_Content = styled_components_1.default.div(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n color: ", ";\n line-height: 1.5;\n text-align: ", ";\n white-space: pre-wrap;\n width: 100%;\n word-break: break-word;\n\n ", "\n\n & pre {\n white-space: pre-wrap;\n }\n\n div,\n p {\n overflow: hidden;\n }\n\n a {\n color: ", ";\n }\n\n img {\n max-width: 100%;\n height: auto;\n }\n\n figure {\n margin: 0;\n max-width: 100%;\n\n img {\n max-width: 100%;\n height: auto;\n }\n }\n\n blockquote {\n border-left: 4px solid ", ";\n margin: 4px;\n padding: 4px;\n\n p {\n font-style: oblique;\n margin: 0;\n }\n }\n\n iframe {\n border: none;\n }\n\n ", ";\n\n ", ";\n\n ", "\n"], ["\n color: ", ";\n line-height: 1.5;\n text-align: ", ";\n white-space: pre-wrap;\n width: 100%;\n word-break: break-word;\n\n ", "\n\n & pre {\n white-space: pre-wrap;\n }\n\n div,\n p {\n overflow: hidden;\n }\n\n a {\n color: ", ";\n }\n\n img {\n max-width: 100%;\n height: auto;\n }\n\n figure {\n margin: 0;\n max-width: 100%;\n\n img {\n max-width: 100%;\n height: auto;\n }\n }\n\n blockquote {\n border-left: 4px solid ", ";\n margin: 4px;\n padding: 4px;\n\n p {\n font-style: oblique;\n margin: 0;\n }\n }\n\n iframe {\n border: none;\n }\n\n ", ";\n\n ", ";\n\n ", "\n"])), function (_a) {
186
186
  var theme = _a.theme;
187
187
  return theme.ui_temp_grey_01;
188
188
  }, function (_a) {