pds-dev-kit-web 1.4.25 → 1.4.28

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 (39) hide show
  1. package/dist/src/common/components/BoxLayout/Row.js +1 -1
  2. package/dist/src/common/components/Navigations/ContextTextLabelNav.d.ts +2 -2
  3. package/dist/src/common/components/Navigations/ContextTextLabelNav.js +9 -4
  4. package/dist/src/desktop/components/BasicChatListItem/BasicChatListItem.d.ts +3 -3
  5. package/dist/src/desktop/components/BasicChatListItem/BasicChatListItem.js +30 -43
  6. package/dist/src/desktop/components/BasicChatListItem/Popup.d.ts +19 -0
  7. package/dist/src/desktop/components/BasicChatListItem/Popup.js +238 -0
  8. package/dist/src/desktop/components/BodyTextGroup/BodyTextGroup.d.ts +4 -1
  9. package/dist/src/desktop/components/BodyTextGroup/BodyTextGroup.js +4 -4
  10. package/dist/src/desktop/components/ChatList/Body.d.ts +2 -2
  11. package/dist/src/desktop/components/ChatList/Body.js +11 -12
  12. package/dist/src/desktop/components/ChatList/ChatList.d.ts +6 -5
  13. package/dist/src/desktop/components/ChatList/ChatList.js +6 -6
  14. package/dist/src/desktop/components/ChatList/Header.d.ts +2 -2
  15. package/dist/src/desktop/components/ChatList/Header.js +2 -2
  16. package/dist/src/desktop/components/ContextMenu/ContextMenu.js +8 -2
  17. package/dist/src/desktop/components/ContextMenuItem/ContextMenuItem.js +1 -1
  18. package/dist/src/desktop/components/DynamicDesktopNavBar/components/ContextMenuNavs/ContextMenuItemNav.js +4 -38
  19. package/dist/src/desktop/layout/LayoutWS/Containers/ContentsContainer/ContentsContainer.d.ts +1 -1
  20. package/dist/src/desktop/layout/LayoutWS/Containers/ContentsContainer/ContentsContainer.js +2 -1
  21. package/dist/src/desktop/layout/LayoutWS/Containers/ContentsContainer/variation/WSG.d.ts +1 -1
  22. package/dist/src/desktop/layout/LayoutWS/Containers/ContentsContainer/variation/WSG.js +16 -10
  23. package/dist/src/desktop/layout/LayoutWS/ContainersBox/ContainersBox.d.ts +1 -1
  24. package/dist/src/mobile/components/BasicChatListItem/BasicChatListItem.d.ts +3 -3
  25. package/dist/src/mobile/components/BasicChatListItem/BasicChatListItem.js +30 -43
  26. package/dist/src/mobile/components/BasicChatListItem/Popup.d.ts +19 -0
  27. package/dist/src/mobile/components/BasicChatListItem/Popup.js +238 -0
  28. package/dist/src/mobile/components/BodyTextGroup/BodyTextGroup.d.ts +4 -1
  29. package/dist/src/mobile/components/BodyTextGroup/BodyTextGroup.js +4 -4
  30. package/dist/src/mobile/components/ChatList/Body.d.ts +2 -2
  31. package/dist/src/mobile/components/ChatList/Body.js +4 -3
  32. package/dist/src/mobile/components/ChatList/ChatList.d.ts +6 -5
  33. package/dist/src/mobile/components/ChatList/ChatList.js +7 -7
  34. package/dist/src/mobile/components/ChatList/Header.d.ts +2 -2
  35. package/dist/src/mobile/components/ChatList/Header.js +2 -2
  36. package/dist/src/mobile/components/ContextMenu/ContextMenu.js +8 -2
  37. package/dist/src/mobile/components/ContextMenuItem/ContextMenuItem.js +1 -1
  38. package/package.json +1 -1
  39. package/release-note.md +4 -7
@@ -23,14 +23,14 @@ var iconColors = {
23
23
  transparent: 'ui_cpnt_button_icon_white'
24
24
  };
25
25
  function Header(_a) {
26
- var styleTheme = _a.styleTheme, titleText = _a.titleText, captionText = _a.captionText, headerDisplayType = _a.headerDisplayType, iBtn1IconName = _a.iBtn1IconName, iBtn1IconFillType = _a.iBtn1IconFillType;
26
+ var styleTheme = _a.styleTheme, titleText = _a.titleText, captionText = _a.captionText, headerDisplayType = _a.headerDisplayType, headerIBtn1IconName = _a.headerIBtn1IconName, headerIBtn1IconFillType = _a.headerIBtn1IconFillType, onClickHeaderIBtn1 = _a.onClickHeaderIBtn1;
27
27
  return (react_1.default.createElement(S_HeaderContentWrapper, null,
28
28
  react_1.default.createElement(S_HeaderLeftBox, null,
29
29
  titleText && (react_1.default.createElement(TextLabel_1.TextLabel, { text: titleText, styleTheme: "body1Bold", colorTheme: titleTextColors[styleTheme] })),
30
30
  captionText && (react_1.default.createElement(react_1.default.Fragment, null,
31
31
  react_1.default.createElement(hybrid_1.Spacing, { size: "spacing_a" }),
32
32
  react_1.default.createElement(TextLabel_1.TextLabel, { text: captionText, styleTheme: "caption1Regular", colorTheme: "sysTextSecondary", colorOverride: styleTheme === 'translucent' ? 'ui_cpnt_list_text_caption_02' : undefined })))),
33
- headerDisplayType === 'ibtn1' && iBtn1IconName && (react_1.default.createElement(IconButton_1.IconButton, { iconName: iBtn1IconName, baseSize: "large", baseColorKey: "ui_cpnt_button_fill_base_transparent", iconColorKey: iconColors[styleTheme], iconSize: 24, iconFillType: iBtn1IconFillType }))));
33
+ headerDisplayType === 'ibtn1' && headerIBtn1IconName && (react_1.default.createElement(IconButton_1.IconButton, { iconName: headerIBtn1IconName, baseSize: "large", baseColorKey: "ui_cpnt_button_fill_base_transparent", iconColorKey: iconColors[styleTheme], iconSize: 24, iconFillType: headerIBtn1IconFillType, onClick: onClickHeaderIBtn1 }))));
34
34
  }
35
35
  var S_HeaderContentWrapper = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n align-items: center;\n display: flex;\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n padding-top: ", ";\n"], ["\n align-items: center;\n display: flex;\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n padding-top: ", ";\n"])), function (_a) {
36
36
  var theme = _a.theme;
@@ -26,8 +26,14 @@ var S_ContextMenu = styled_components_1.default.ul(templateObject_1 || (template
26
26
  var theme = _a.theme;
27
27
  return theme.spacing.spacingB;
28
28
  }, function (_a) {
29
- var autoWidth = _a.autoWidth;
30
- return (autoWidth ? 'inherit' : 'auto');
29
+ var autoWidth = _a.autoWidth, customWidth = _a.customWidth;
30
+ if (autoWidth) {
31
+ return 'inherit';
32
+ }
33
+ if (customWidth) {
34
+ return 'auto';
35
+ }
36
+ return 'max-content';
31
37
  }, function (_a) {
32
38
  var maxHeight = _a.maxHeight;
33
39
  return (maxHeight ? maxHeight + "px" : 'none');
@@ -53,7 +53,7 @@ function ContextMenuItem(_a) {
53
53
  textColorTheme = 'sysTextTertiary';
54
54
  }
55
55
  return (react_1.default.createElement(S_ContextMenuItem, { size: size, onClick: handleClick, selected: isSelected, disabled: state === 'disabled' },
56
- react_1.default.createElement(TextLabel_1.TextLabel, { text: (option === null || option === void 0 ? void 0 : option.text) || text, styleTheme: "form2Regular", singleLineMode: "use", colorTheme: textColorTheme })));
56
+ react_1.default.createElement(TextLabel_1.TextLabel, { text: (option === null || option === void 0 ? void 0 : option.text) || text, styleTheme: "form2Regular", singleLineMode: "use", colorTheme: textColorTheme, lineLimit: 1, ellipsisMode: "use", wordBreak: "break_all" })));
57
57
  }
58
58
  var large = (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n height: 48px;\n padding: 0 ", ";\n"], ["\n height: 48px;\n padding: 0 ", ";\n"])), function (_a) {
59
59
  var theme = _a.theme;
@@ -14,64 +14,30 @@ var __assign = (this && this.__assign) || function () {
14
14
  };
15
15
  return __assign.apply(this, arguments);
16
16
  };
17
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
- if (k2 === undefined) k2 = k;
19
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
20
- }) : (function(o, m, k, k2) {
21
- if (k2 === undefined) k2 = k;
22
- o[k2] = m[k];
23
- }));
24
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
- Object.defineProperty(o, "default", { enumerable: true, value: v });
26
- }) : function(o, v) {
27
- o["default"] = v;
28
- });
29
- var __importStar = (this && this.__importStar) || function (mod) {
30
- if (mod && mod.__esModule) return mod;
31
- var result = {};
32
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
- __setModuleDefault(result, mod);
34
- return result;
35
- };
36
17
  var __importDefault = (this && this.__importDefault) || function (mod) {
37
18
  return (mod && mod.__esModule) ? mod : { "default": mod };
38
19
  };
39
20
  Object.defineProperty(exports, "__esModule", { value: true });
40
21
  var react_1 = __importDefault(require("react"));
41
- var styled_components_1 = __importStar(require("styled-components"));
22
+ var styled_components_1 = __importDefault(require("styled-components"));
42
23
  var DisplayOnlyMenuItemNav_1 = __importDefault(require("../MenuItemNav/components/DisplayOnlyMenuItemNav"));
43
24
  var InternalLinkMenuItemNav_1 = __importDefault(require("../MenuItemNav/components/InternalLinkMenuItemNav"));
44
25
  var PAppMenuItemNav_1 = __importDefault(require("../MenuItemNav/components/PAppMenuItemNav"));
45
26
  var WebMenuItemNav_1 = __importDefault(require("../MenuItemNav/components/WebMenuItemNav"));
46
27
  function ContextMenuItemNavBox(_a) {
47
28
  var menu = _a.menu;
48
- return (react_1.default.createElement(S_ContextMenuItem, { size: "small" },
29
+ return (react_1.default.createElement(S_ContextMenuItem, null,
49
30
  menu.menuItemType === 'NAV_P_APP' && menu.pAppCode && (react_1.default.createElement(PAppMenuItemNav_1.default, { menu: __assign(__assign({}, menu), { pAppCode: menu.pAppCode }), isContextMenu: true })),
50
31
  menu.menuItemType === 'WEB_LINK' && menu.conversionLinkSrc && (react_1.default.createElement(WebMenuItemNav_1.default, { openNewTab: true, isContextMenu: true, menu: __assign(__assign({}, menu), { conversionLinkSrc: menu.conversionLinkSrc }) })),
51
32
  menu.menuItemType === 'INTERNAL_LINK' && menu.conversionLinkSrc && (react_1.default.createElement(InternalLinkMenuItemNav_1.default, { isContextMenu: true, menu: __assign(__assign({}, menu), { conversionLinkSrc: menu.conversionLinkSrc }) })),
52
33
  menu.menuItemType === 'DISPLAY_ONLY' && (react_1.default.createElement(DisplayOnlyMenuItemNav_1.default, { menu: __assign(__assign({}, menu), { conversionLinkSrc: '' }) }))));
53
34
  }
54
- var large = (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n height: 48px;\n padding: 0 ", ";\n"], ["\n height: 48px;\n padding: 0 ", ";\n"])), function (_a) {
55
- var theme = _a.theme;
56
- return theme.spacing.spacingE;
57
- });
58
- var medium = (0, styled_components_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n height: 40px;\n padding: 0 ", ";\n"], ["\n height: 40px;\n padding: 0 ", ";\n"])), function (_a) {
59
- var theme = _a.theme;
60
- return theme.spacing.spacingD;
61
- });
62
- var small = (0, styled_components_1.css)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n height: 32px;\n padding: 0 ", ";\n"], ["\n height: 32px;\n padding: 0 ", ";\n"])), function (_a) {
63
- var theme = _a.theme;
64
- return theme.spacing.spacingD;
65
- });
66
- var S_ContextMenuItem = styled_components_1.default.li(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n align-items: center;\n background-color: ", ";\n cursor: pointer;\n display: flex;\n\n ", ";\n\n &:hover {\n background-color: ", ";\n }\n"], ["\n align-items: center;\n background-color: ", ";\n cursor: pointer;\n display: flex;\n\n ", ";\n\n &:hover {\n background-color: ", ";\n }\n"])), function (_a) {
35
+ var S_ContextMenuItem = styled_components_1.default.li(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n align-items: center;\n background-color: ", ";\n cursor: pointer;\n display: flex;\n height: 32px;\n\n &:hover {\n background-color: ", ";\n }\n"], ["\n align-items: center;\n background-color: ", ";\n cursor: pointer;\n display: flex;\n height: 32px;\n\n &:hover {\n background-color: ", ";\n }\n"])), function (_a) {
67
36
  var theme = _a.theme;
68
37
  return theme.ui_cpnt_contextmenu_menu_base_normal;
69
- }, function (_a) {
70
- var size = _a.size;
71
- return size && { large: large, medium: medium, small: small }[size];
72
38
  }, function (_a) {
73
39
  var theme = _a.theme;
74
40
  return theme.ui_cpnt_contextmenu_menu_base_hover;
75
41
  });
76
42
  exports.default = ContextMenuItemNavBox;
77
- var templateObject_1, templateObject_2, templateObject_3, templateObject_4;
43
+ var templateObject_1;
@@ -2,7 +2,7 @@
2
2
  export declare type ContentsContainerProps = {
3
3
  content1?: JSX.Element;
4
4
  content2?: JSX.Element;
5
- layoutType: 'WSA_1' | 'WSB_1' | 'WSC_1' | 'WSD_1' | 'WSE_1' | 'WSF_1' | 'WSF_2' | 'WSF_3' | 'WSF_4' | 'WSF_5' | 'WSF_6' | 'WSF_7' | 'WSG_1' | 'WSG_2' | 'WSG_3' | 'WSG_4';
5
+ layoutType: 'WSA_1' | 'WSB_1' | 'WSC_1' | 'WSD_1' | 'WSE_1' | 'WSF_1' | 'WSF_2' | 'WSF_3' | 'WSF_4' | 'WSF_5' | 'WSF_6' | 'WSF_7' | 'WSG_1' | 'WSG_2' | 'WSG_3' | 'WSG_4' | 'WSG_5';
6
6
  containerColor?: string;
7
7
  areaColor?: string;
8
8
  };
@@ -23,7 +23,8 @@ var ContentsContainer = function (_a) {
23
23
  WSG_1: (react_1.default.createElement(variation_1.WSG, { layoutType: "WSG_1", content1: content1, content2: content2, containerColor: containerColor, areaColor: areaColor })),
24
24
  WSG_2: (react_1.default.createElement(variation_1.WSG, { layoutType: "WSG_2", content1: content1, content2: content2, containerColor: containerColor, areaColor: areaColor })),
25
25
  WSG_3: (react_1.default.createElement(variation_1.WSG, { layoutType: "WSG_3", content1: content1, content2: content2, containerColor: containerColor, areaColor: areaColor })),
26
- WSG_4: (react_1.default.createElement(variation_1.WSG, { layoutType: "WSG_4", content1: content1, content2: content2, containerColor: containerColor, areaColor: areaColor }))
26
+ WSG_4: (react_1.default.createElement(variation_1.WSG, { layoutType: "WSG_4", content1: content1, content2: content2, containerColor: containerColor, areaColor: areaColor })),
27
+ WSG_5: (react_1.default.createElement(variation_1.WSG, { layoutType: "WSG_5", content1: content1, content2: content2, containerColor: containerColor, areaColor: areaColor }))
27
28
  }[layoutType]));
28
29
  };
29
30
  exports.default = ContentsContainer;
@@ -2,7 +2,7 @@
2
2
  export declare type WSGProps = {
3
3
  content1?: JSX.Element;
4
4
  content2?: JSX.Element;
5
- layoutType: 'WSG_1' | 'WSG_2' | 'WSG_3' | 'WSG_4';
5
+ layoutType: 'WSG_1' | 'WSG_2' | 'WSG_3' | 'WSG_4' | 'WSG_5';
6
6
  containerColor?: string;
7
7
  areaColor?: string;
8
8
  };
@@ -29,7 +29,8 @@ var S_ContentsContainer1 = styled_components_1.default.div(templateObject_2 || (
29
29
  WSG_1: 'height: 100%;',
30
30
  WSG_2: 'overflow-x: hidden;overflow-y: auto;',
31
31
  WSG_3: 'overflow-x: hidden;overflow-y: auto;',
32
- WSG_4: 'overflow-x: hidden;overflow-y: auto;width: 480px'
32
+ WSG_4: 'overflow-x: hidden;overflow-y: auto;width: 480px',
33
+ WSG_5: 'overflow-x: hidden;overflow-y: auto;width: 480px'
33
34
  }[layoutType]);
34
35
  }, function (_a) {
35
36
  var containerColor = _a.containerColor;
@@ -47,7 +48,8 @@ var S_ContentsContainer2 = styled_components_1.default.div(templateObject_3 || (
47
48
  WSG_1: 'height: 100%;',
48
49
  WSG_2: 'overflow-x: hidden;overflow-y: auto;',
49
50
  WSG_3: 'height: 100%;',
50
- WSG_4: 'height: 100%; flex: 1'
51
+ WSG_4: 'height: 100%; flex: 1',
52
+ WSG_5: 'height: 100%; flex: 1'
51
53
  }[layoutType]);
52
54
  }, function (_a) {
53
55
  var containerColor = _a.containerColor;
@@ -59,19 +61,21 @@ var S_ContentsArea1 = styled_components_1.default.div(templateObject_4 || (templ
59
61
  WSG_1: 'height: 100%;',
60
62
  WSG_2: 'padding-left: 24px;padding-right: 24px;padding-bottom: 88px;',
61
63
  WSG_3: 'padding-left: 24px;padding-right: 24px;padding-bottom: 88px;',
62
- WSG_4: 'padding-left: 24px;padding-right: 24px;padding-bottom: 88px;'
64
+ WSG_4: 'padding-left: 24px;padding-right: 24px;padding-bottom: 88px;',
65
+ WSG_5: 'padding-left: 24px;padding-right: 24px;padding-bottom: 88px;'
63
66
  }[layoutType]);
64
67
  }, function (_a) {
65
68
  var areaColor = _a.areaColor;
66
69
  return "background-color: " + areaColor;
67
70
  });
68
- var S_ContentsArea2 = styled_components_1.default.div(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n box-sizing: border-box;\n padding-top: 24px;\n ", ";\n ", ";\n"], ["\n box-sizing: border-box;\n padding-top: 24px;\n ", ";\n ", ";\n"])), function (_a) {
71
+ var S_ContentsArea2 = styled_components_1.default.div(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n box-sizing: border-box;\n ", ";\n ", ";\n"], ["\n box-sizing: border-box;\n ", ";\n ", ";\n"])), function (_a) {
69
72
  var layoutType = _a.layoutType;
70
73
  return ({
71
- WSG_1: 'height: 100%;',
72
- WSG_2: 'padding-left: 24px;padding-right: 24px;padding-bottom: 88px;',
73
- WSG_3: 'height: 100%;',
74
- WSG_4: 'height: 100%;'
74
+ WSG_1: 'height: 100%;padding-top: 24px;',
75
+ WSG_2: 'padding-left: 24px;padding-right: 24px;padding-bottom: 88px;padding-top: 24px;',
76
+ WSG_3: 'height: 100%;padding-top: 24px;',
77
+ WSG_4: 'height: 100%;padding-top: 24px;',
78
+ WSG_5: 'height: 100%;'
75
79
  }[layoutType]);
76
80
  }, function (_a) {
77
81
  var areaColor = _a.areaColor;
@@ -83,7 +87,8 @@ var S_Content1 = styled_components_1.default.div(templateObject_6 || (templateOb
83
87
  WSG_1: 'height: 100%;overflow: hidden;',
84
88
  WSG_2: '',
85
89
  WSG_3: '',
86
- WSG_4: ''
90
+ WSG_4: '',
91
+ WSG_5: ''
87
92
  }[layoutType]);
88
93
  });
89
94
  var S_Content2 = styled_components_1.default.div(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n ", ";\n"], ["\n ", ";\n"])), function (_a) {
@@ -92,7 +97,8 @@ var S_Content2 = styled_components_1.default.div(templateObject_7 || (templateOb
92
97
  WSG_1: 'height: 100%;overflow: hidden;',
93
98
  WSG_2: '',
94
99
  WSG_3: 'height: 100%;overflow: hidden;',
95
- WSG_4: 'height: 100%;overflow: hidden;'
100
+ WSG_4: 'height: 100%;overflow: hidden;',
101
+ WSG_5: 'height: 100%;overflow: hidden;'
96
102
  }[layoutType]);
97
103
  });
98
104
  exports.default = WSG;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  export declare type ContainersBoxProps = {
3
- layoutType: 'WSA_1' | 'WSB_1' | 'WSC_1' | 'WSD_1' | 'WSE_1' | 'WSF_1' | 'WSF_2' | 'WSF_3' | 'WSF_4' | 'WSF_5' | 'WSF_6' | 'WSF_7' | 'WSG_1' | 'WSG_2' | 'WSG_3' | 'WSG_4';
3
+ layoutType: 'WSA_1' | 'WSB_1' | 'WSC_1' | 'WSD_1' | 'WSE_1' | 'WSF_1' | 'WSF_2' | 'WSF_3' | 'WSF_4' | 'WSF_5' | 'WSF_6' | 'WSF_7' | 'WSG_1' | 'WSG_2' | 'WSG_3' | 'WSG_4' | 'WSG_5';
4
4
  pageMenuContent?: JSX.Element;
5
5
  tabMenuContent?: JSX.Element;
6
6
  content1?: JSX.Element;
@@ -5,11 +5,11 @@ declare type Props = {
5
5
  contentText?: PDSTextType;
6
6
  leftImageMode?: 'none' | 'use';
7
7
  imageSrc?: string;
8
- hoverBtnMode?: 'none' | 'use';
8
+ hoverMode?: 'none' | 'use';
9
9
  contextMenuOptionArray?: PDSValueOption[];
10
10
  contextMenuState?: 'normal' | 'disabled';
11
11
  colorTheme?: 'seller' | 'subscriber';
12
- onClickContextMenu?: (option: PDSValueOption) => void;
12
+ onClickContextMenuItem?: (option: PDSValueOption) => void;
13
13
  };
14
- declare function BasicChatListItem({ titleText, contentText, leftImageMode, imageSrc, hoverBtnMode, contextMenuOptionArray, onClickContextMenu, contextMenuState, colorTheme }: Props): JSX.Element;
14
+ declare function BasicChatListItem({ titleText, contentText, leftImageMode, imageSrc, hoverMode, contextMenuOptionArray, onClickContextMenuItem, contextMenuState, colorTheme }: Props): JSX.Element;
15
15
  export default BasicChatListItem;
@@ -33,6 +33,7 @@ var ContextMenu_1 = require("../ContextMenu");
33
33
  var ContextMenuItem_1 = require("../ContextMenuItem");
34
34
  var IconButton_1 = require("../IconButton");
35
35
  var TextLabel_1 = require("../TextLabel");
36
+ var Popup_1 = require("./Popup");
36
37
  var titleTextColors = {
37
38
  seller: 'usrTextBrandPrimary',
38
39
  subscriber: 'sysTextSecondary'
@@ -42,9 +43,11 @@ var backgroundColorTheme = {
42
43
  subscriber: 'ui_cpnt_list_base_area'
43
44
  };
44
45
  function BasicChatListItem(_a) {
45
- var titleText = _a.titleText, contentText = _a.contentText, _b = _a.leftImageMode, leftImageMode = _b === void 0 ? 'none' : _b, imageSrc = _a.imageSrc, _c = _a.hoverBtnMode, hoverBtnMode = _c === void 0 ? 'use' : _c, contextMenuOptionArray = _a.contextMenuOptionArray, onClickContextMenu = _a.onClickContextMenu, _d = _a.contextMenuState, contextMenuState = _d === void 0 ? 'normal' : _d, _e = _a.colorTheme, colorTheme = _e === void 0 ? 'subscriber' : _e;
46
+ 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;
46
47
  var _f = (0, react_1.useState)(false), isContextMenuOpen = _f[0], setIsContextMenuOpen = _f[1];
47
48
  var contextMenuRef = (0, react_1.useRef)(null);
49
+ var chatBody = document.querySelector('#chatMessageBox');
50
+ var rect = chatBody === null || chatBody === void 0 ? void 0 : chatBody.getBoundingClientRect();
48
51
  /**
49
52
  * @when contextMenu가 열려 있을 때
50
53
  * @expected ChatList body의 스크롤을 숨기고, contextMenu의 외부를 클릭하면 contextMenu가 닫히도록 합니다.
@@ -52,57 +55,45 @@ function BasicChatListItem(_a) {
52
55
  */
53
56
  (0, react_1.useEffect)(function () {
54
57
  // NOTE pop up 개념이 생기기 전까지의 임시 조치 방법입니다.
55
- var chatBody = document.querySelector('#chatMessageBox');
56
- if (chatBody) {
57
- if (isContextMenuOpen) {
58
- chatBody.style.overflowY = 'hidden';
59
- }
60
- else {
61
- chatBody.style.overflowY = 'auto';
62
- }
58
+ if (!chatBody) {
59
+ return;
63
60
  }
64
- function handleClickOutside(e) {
65
- if (contextMenuRef.current && !contextMenuRef.current.contains(e.target)) {
66
- if (isContextMenuOpen) {
67
- e.stopPropagation();
68
- setIsContextMenuOpen(false);
69
- }
70
- }
71
- }
72
- document.addEventListener('click', handleClickOutside);
73
- return function () {
74
- document.removeEventListener('click', handleClickOutside);
75
- };
76
- }, [isContextMenuOpen]);
77
- var handleClickMoreButton = function () {
61
+ chatBody.style.overflowY = isContextMenuOpen ? 'hidden' : 'auto';
62
+ }, [isContextMenuOpen, chatBody]);
63
+ var handleMoreButtonClick = function (e) {
64
+ e.stopPropagation();
78
65
  setIsContextMenuOpen(function (prev) { return !prev; });
79
66
  };
80
- var handleClickContextMenuItem = function (option) {
81
- if (onClickContextMenu) {
82
- onClickContextMenu(option);
67
+ var handleContextMenuItemClick = function (option) {
68
+ if (onClickContextMenuItem) {
69
+ onClickContextMenuItem(option);
83
70
  }
84
71
  setIsContextMenuOpen(false);
85
72
  };
86
73
  return (react_1.default.createElement(react_1.default.Fragment, null,
87
- react_1.default.createElement(S_BasicChatListItem, { colorTheme: colorTheme, hoverBtnMode: hoverBtnMode },
74
+ react_1.default.createElement(S_BasicChatListItem, { colorTheme: colorTheme, hoverMode: hoverMode },
88
75
  leftImageMode === 'use' && (react_1.default.createElement(S_ImageViewWrapper, null,
89
76
  react_1.default.createElement(hybrid_1.ImageView, { shapeType: "circular", ratio: "1_1", scaleType: "cover", src: imageSrc, width: "responsive" }))),
90
77
  react_1.default.createElement(TextLabel_1.TextLabel, { text: titleText, styleTheme: "caption1Bold", colorTheme: titleTextColors[colorTheme] }),
91
78
  react_1.default.createElement(S_ContentTextWrapper, null,
92
79
  react_1.default.createElement(TextLabel_1.TextLabel, { text: contentText, styleTheme: "caption1Regular", colorTheme: "sysTextPrimary", wordBreak: "break_all" })),
93
- react_1.default.createElement(S_SeeMoreButton, { isContextMenuOpen: isContextMenuOpen },
94
- react_1.default.createElement(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_on_primary", onClick: handleClickMoreButton }),
95
- isContextMenuOpen && (react_1.default.createElement(S_ContextMenuWrapper, { ref: contextMenuRef },
96
- react_1.default.createElement(ContextMenu_1.ContextMenu, null, contextMenuOptionArray === null || contextMenuOptionArray === void 0 ? void 0 : contextMenuOptionArray.map(function (el) { return (react_1.default.createElement(ContextMenuItem_1.ContextMenuItem, { key: el.value, option: el, onClick: handleClickContextMenuItem, state: contextMenuState })); }))))))));
80
+ hoverMode === 'use' && (react_1.default.createElement(S_SeeMoreButton, { isContextMenuOpen: isContextMenuOpen, ref: contextMenuRef },
81
+ react_1.default.createElement(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 }))),
82
+ react_1.default.createElement(Popup_1.PopupProvider, null,
83
+ react_1.default.createElement(Popup_1.Popup, { targetRef: contextMenuRef, isOpen: isContextMenuOpen, placement: "v-auto", wrapperHeight: rect === null || rect === void 0 ? void 0 : rect.height, onClickOutside: function () { return setIsContextMenuOpen(false); } },
84
+ react_1.default.createElement(ContextMenu_1.ContextMenu, null, contextMenuOptionArray === null || contextMenuOptionArray === void 0 ? void 0 : contextMenuOptionArray.map(function (el) { return (react_1.default.createElement(ContextMenuItem_1.ContextMenuItem, { key: el.value, option: el, onClick: handleContextMenuItemClick, state: contextMenuState })); })))))));
97
85
  }
98
- var S_SeeMoreButton = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: ", ";\n margin-left: ", ";\n position: relative;\n"], ["\n display: ", ";\n margin-left: ", ";\n position: relative;\n"])), function (_a) {
99
- var isContextMenuOpen = _a.isContextMenuOpen;
100
- return (isContextMenuOpen ? 'block' : 'none');
101
- }, function (_a) {
86
+ var S_SeeMoreButton = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n margin-left: ", ";\n position: relative;\n visibility: ", ";\n"], ["\n margin-left: ", ";\n position: relative;\n visibility: ", ";\n"])), function (_a) {
102
87
  var theme = _a.theme;
103
88
  return theme.spacing.spacingA;
89
+ }, function (_a) {
90
+ var isContextMenuOpen = _a.isContextMenuOpen;
91
+ return (isContextMenuOpen ? 'visible' : 'hidden');
104
92
  });
105
- var S_BasicChatListItem = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n display: flex;\n height: fit-content;\n min-height: 24px;\n max-width: 100%;\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n padding-top: ", ";\n\n ", ";\n\n :hover {\n ", " {\n display: ", ";\n }\n }\n"], ["\n display: flex;\n height: fit-content;\n min-height: 24px;\n max-width: 100%;\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n padding-top: ", ";\n\n ", ";\n\n :hover {\n ", " {\n display: ", ";\n }\n }\n"])), function (_a) {
93
+ var S_BasicChatListItem = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __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 :hover {\n ", " {\n visibility: ", ";\n }\n }\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\n :hover {\n ", " {\n visibility: ", ";\n }\n }\n"])), function (_a) {
94
+ var colorTheme = _a.colorTheme, theme = _a.theme;
95
+ return colorTheme && theme[backgroundColorTheme[colorTheme]];
96
+ }, function (_a) {
106
97
  var theme = _a.theme;
107
98
  return theme.spacing.spacingA;
108
99
  }, function (_a) {
@@ -114,12 +105,9 @@ var S_BasicChatListItem = styled_components_1.default.div(templateObject_2 || (t
114
105
  }, function (_a) {
115
106
  var theme = _a.theme;
116
107
  return theme.spacing.spacingA;
117
- }, function (_a) {
118
- var colorTheme = _a.colorTheme, theme = _a.theme;
119
- return colorTheme && theme[backgroundColorTheme[colorTheme]];
120
108
  }, S_SeeMoreButton, function (_a) {
121
- var hoverBtnMode = _a.hoverBtnMode;
122
- return hoverBtnMode === 'use' && 'block';
109
+ var hoverMode = _a.hoverMode;
110
+ return hoverMode === 'use' && 'visible';
123
111
  });
124
112
  var S_ImageViewWrapper = styled_components_1.default.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n height: 24px;\n margin-right: ", ";\n min-width: 24px;\n width: 24px;\n"], ["\n height: 24px;\n margin-right: ", ";\n min-width: 24px;\n width: 24px;\n"])), function (_a) {
125
113
  var theme = _a.theme;
@@ -129,6 +117,5 @@ var S_ContentTextWrapper = styled_components_1.default.div(templateObject_4 || (
129
117
  var theme = _a.theme;
130
118
  return theme.spacing.spacingC;
131
119
  });
132
- var S_ContextMenuWrapper = styled_components_1.default.div(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n position: absolute;\n right: -4px;\n z-index: 10;\n"], ["\n position: absolute;\n right: -4px;\n z-index: 10;\n"])));
133
120
  exports.default = BasicChatListItem;
134
- var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
121
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4;
@@ -0,0 +1,19 @@
1
+ import React, { MutableRefObject } from 'react';
2
+ declare type Props = {
3
+ targetRef: MutableRefObject<HTMLElement | null>;
4
+ isOpen: boolean;
5
+ onClickOutside?: () => void;
6
+ onClick?: (e: React.MouseEvent<HTMLDivElement>) => void;
7
+ placement: string;
8
+ wrapperHeight?: number;
9
+ children: React.ReactNode;
10
+ };
11
+ declare function Popup({ targetRef, isOpen, onClickOutside, onClick, placement, wrapperHeight, children }: Props): JSX.Element;
12
+ /**
13
+ * 팝업 루트 프로바이더
14
+ * 팝업을 사용하기 위해서는 팝업 프로바이더가 상위 컴포넌트로 있어야 합니다.
15
+ */
16
+ declare function PopupProvider({ children }: {
17
+ children: React.ReactNode;
18
+ }): JSX.Element;
19
+ export { PopupProvider, Popup };
@@ -0,0 +1,238 @@
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 __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.Popup = exports.PopupProvider = void 0;
30
+ var react_1 = __importStar(require("react"));
31
+ var react_dom_1 = require("react-dom");
32
+ var styled_components_1 = __importDefault(require("styled-components"));
33
+ var PopupContext = (0, react_1.createContext)({
34
+ current: null
35
+ });
36
+ function getHAutoPlacement(_a) {
37
+ var targetRect = _a.targetRect, popupRect = _a.popupRect;
38
+ var leftSpaced = targetRect.right + popupRect.width > window.innerWidth;
39
+ var topSpaced = targetRect.bottom + popupRect.height > window.innerHeight;
40
+ return (leftSpaced ? 'left' : 'right') + "-" + (topSpaced ? 'end' : 'start');
41
+ }
42
+ function getVAutoPlacement(_a) {
43
+ var targetRect = _a.targetRect, popupRect = _a.popupRect, wrapperHeight = _a.wrapperHeight;
44
+ var leftSpaced = targetRect.right + popupRect.width > window.innerWidth;
45
+ var topSpaced = targetRect.bottom + popupRect.height > (wrapperHeight || window.innerWidth);
46
+ return (topSpaced ? 'top' : 'bottom') + "-" + (leftSpaced ? 'end' : 'start');
47
+ }
48
+ function getVCenterPlacement(_a) {
49
+ var targetRect = _a.targetRect, popupRect = _a.popupRect;
50
+ var leftSpaced = targetRect.right + popupRect.width > window.innerWidth;
51
+ return leftSpaced ? 'left-center' : 'right-center';
52
+ }
53
+ function getHCenterPlacement(_a) {
54
+ var targetRect = _a.targetRect, popupRect = _a.popupRect;
55
+ var topSpaced = targetRect.bottom + popupRect.height > window.innerHeight;
56
+ return topSpaced ? 'top-center' : 'bottom-center';
57
+ }
58
+ /**
59
+ * 위치 정규화
60
+ */
61
+ function getNormalizedPlacement(_a) {
62
+ var placement = _a.placement, targetRect = _a.targetRect, popupRect = _a.popupRect, wrapperHeight = _a.wrapperHeight;
63
+ switch (placement) {
64
+ case 'v-auto':
65
+ return getVAutoPlacement({ targetRect: targetRect, popupRect: popupRect, wrapperHeight: wrapperHeight });
66
+ case 'h-auto':
67
+ return getHAutoPlacement({ targetRect: targetRect, popupRect: popupRect, wrapperHeight: wrapperHeight });
68
+ case 'v-center':
69
+ return getVCenterPlacement({ targetRect: targetRect, popupRect: popupRect, wrapperHeight: wrapperHeight });
70
+ case 'h-center':
71
+ return getHCenterPlacement({ targetRect: targetRect, popupRect: popupRect, wrapperHeight: wrapperHeight });
72
+ default:
73
+ return placement;
74
+ }
75
+ }
76
+ function updatePosition(_a) {
77
+ var targetElem = _a.targetElem, popupElem = _a.popupElem, placement = _a.placement, wrapperHeight = _a.wrapperHeight;
78
+ var targetRect = targetElem.getBoundingClientRect();
79
+ var popupRect = popupElem.getBoundingClientRect();
80
+ var normPlacement = getNormalizedPlacement({ placement: placement, targetRect: targetRect, popupRect: popupRect, wrapperHeight: wrapperHeight });
81
+ switch (normPlacement) {
82
+ case 'top':
83
+ popupElem.style.top = targetRect.top - popupRect.height + "px";
84
+ popupElem.style.left = targetRect.left - (popupRect.width - targetRect.width) / 2 + "px";
85
+ popupElem.style.width = 'auto';
86
+ break;
87
+ case 'top-start':
88
+ popupElem.style.top = targetRect.top - popupRect.height + "px";
89
+ popupElem.style.left = targetRect.left + "px";
90
+ popupElem.style.width = 'auto';
91
+ break;
92
+ case 'top-end':
93
+ popupElem.style.top = targetRect.top - popupRect.height + "px";
94
+ popupElem.style.left = targetRect.left + targetRect.width - popupRect.width + "px";
95
+ popupElem.style.width = 'auto';
96
+ break;
97
+ case 'top-both':
98
+ popupElem.style.top = targetRect.top - popupRect.height + "px";
99
+ popupElem.style.left = targetRect.left + "px";
100
+ popupElem.style.width = targetRect.width + "px";
101
+ break;
102
+ case 'top-center':
103
+ popupElem.style.top = targetRect.top - popupRect.height + "px";
104
+ popupElem.style.left = targetRect.left - (popupRect.width - targetRect.width) / 2 + "px";
105
+ popupElem.style.width = 'auto';
106
+ break;
107
+ case 'bottom':
108
+ popupElem.style.top = targetRect.bottom + "px";
109
+ popupElem.style.left = targetRect.left - (popupRect.width - targetRect.width) / 2 + "px";
110
+ popupElem.style.width = 'auto';
111
+ break;
112
+ case 'bottom-start':
113
+ popupElem.style.top = targetRect.bottom + "px";
114
+ popupElem.style.left = targetRect.left + "px";
115
+ popupElem.style.width = 'auto';
116
+ break;
117
+ case 'bottom-end':
118
+ popupElem.style.top = targetRect.bottom + "px";
119
+ popupElem.style.left = targetRect.right - popupRect.width + "px";
120
+ popupElem.style.width = 'auto';
121
+ break;
122
+ case 'bottom-both':
123
+ popupElem.style.top = targetRect.bottom + "px";
124
+ popupElem.style.left = targetRect.left + "px";
125
+ popupElem.style.width = targetRect.width + "px";
126
+ break;
127
+ case 'bottom-center':
128
+ popupElem.style.top = targetRect.bottom + "px";
129
+ popupElem.style.left = targetRect.left - (popupRect.width - targetRect.width) / 2 + "px";
130
+ popupElem.style.width = 'auto';
131
+ break;
132
+ case 'left':
133
+ popupElem.style.top = targetRect.top - (popupRect.height - targetRect.height) / 2 + "px";
134
+ popupElem.style.left = targetRect.left - popupRect.width + "px";
135
+ popupElem.style.width = 'auto';
136
+ break;
137
+ case 'left-start':
138
+ popupElem.style.top = targetRect.top + "px";
139
+ popupElem.style.left = targetRect.left - popupRect.width + "px";
140
+ popupElem.style.width = 'auto';
141
+ break;
142
+ case 'left-end':
143
+ popupElem.style.top = targetRect.top - (popupRect.height - targetRect.height) + "px";
144
+ popupElem.style.left = targetRect.left - popupRect.width + "px";
145
+ popupElem.style.width = 'auto';
146
+ break;
147
+ case 'left-center':
148
+ popupElem.style.top = targetRect.top - (popupRect.height - targetRect.height) / 2 + "px";
149
+ popupElem.style.left = targetRect.left - popupRect.width + "px";
150
+ popupElem.style.width = 'auto';
151
+ break;
152
+ case 'right':
153
+ popupElem.style.top = targetRect.top - (popupRect.height - targetRect.height) / 2 + "px";
154
+ popupElem.style.left = targetRect.left + targetRect.width + "px";
155
+ popupElem.style.width = 'auto';
156
+ break;
157
+ case 'right-start':
158
+ popupElem.style.top = targetRect.top + "px";
159
+ popupElem.style.left = targetRect.left + targetRect.width + "px";
160
+ popupElem.style.width = 'auto';
161
+ break;
162
+ case 'right-end':
163
+ popupElem.style.top = targetRect.top - (popupRect.height - targetRect.height) + "px";
164
+ popupElem.style.left = targetRect.left + targetRect.width + "px";
165
+ popupElem.style.width = 'auto';
166
+ break;
167
+ case 'right-center':
168
+ popupElem.style.top = targetRect.top - (popupRect.height - targetRect.height) / 2 + "px";
169
+ popupElem.style.left = targetRect.left + targetRect.width + "px";
170
+ popupElem.style.width = 'auto';
171
+ break;
172
+ default:
173
+ break;
174
+ }
175
+ return normPlacement;
176
+ }
177
+ function Popup(_a) {
178
+ var targetRef = _a.targetRef, _b = _a.isOpen, isOpen = _b === void 0 ? false : _b, onClickOutside = _a.onClickOutside, onClick = _a.onClick, _c = _a.placement, placement = _c === void 0 ? 'bottom-start' : _c, wrapperHeight = _a.wrapperHeight, children = _a.children;
179
+ var popupRootRef = (0, react_1.useContext)(PopupContext);
180
+ var _d = (0, react_1.useState)('bottom'), normPlacement = _d[0], setNormPlacement = _d[1];
181
+ var popupRef = (0, react_1.useRef)(null);
182
+ /**
183
+ * 팝업 외의 다른 요소 클릭시 팝업이 닫히도록 합니다.
184
+ */
185
+ (0, react_1.useEffect)(function () {
186
+ function handleClickOutside(e) {
187
+ if (popupRootRef.current && !popupRootRef.current.contains(e.target)) {
188
+ if (onClickOutside) {
189
+ onClickOutside();
190
+ }
191
+ }
192
+ }
193
+ window.document.addEventListener('mousedown', handleClickOutside);
194
+ return function () {
195
+ window.document.removeEventListener('mousedown', handleClickOutside);
196
+ };
197
+ }, [popupRootRef, onClickOutside]);
198
+ /**
199
+ * 전체 UI 렌더링이 한 프레임 완료된 후에 팝업 위치를 결정합니다.
200
+ */
201
+ (0, react_1.useEffect)(function () {
202
+ window.requestAnimationFrame(function () {
203
+ if (!targetRef.current || !popupRef.current) {
204
+ return;
205
+ }
206
+ var targetElem = targetRef.current;
207
+ var popupElem = popupRef.current;
208
+ var updatedPlacement = updatePosition({ targetElem: targetElem, popupElem: popupElem, placement: placement, wrapperHeight: wrapperHeight });
209
+ setNormPlacement(updatedPlacement);
210
+ });
211
+ }, [isOpen, placement, wrapperHeight, targetRef, popupRef]);
212
+ function handlePopupClick(e) {
213
+ e.stopPropagation();
214
+ if (onClick) {
215
+ onClick(e);
216
+ }
217
+ }
218
+ if (!popupRootRef || !popupRootRef.current || !isOpen) {
219
+ return react_1.default.createElement(react_1.default.Fragment, null);
220
+ }
221
+ var popupComponent = (react_1.default.createElement(S_Popup, { ref: popupRef, onClick: function (e) { return handlePopupClick(e); } }, typeof children === 'function' ? children(normPlacement) : children));
222
+ return (0, react_dom_1.createPortal)(popupComponent, popupRootRef.current);
223
+ }
224
+ exports.Popup = Popup;
225
+ var S_Popup = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n left: -1000px;\n position: fixed;\n top: -1000px;\n z-index: 1000;\n"], ["\n left: -1000px;\n position: fixed;\n top: -1000px;\n z-index: 1000;\n"])));
226
+ /**
227
+ * 팝업 루트 프로바이더
228
+ * 팝업을 사용하기 위해서는 팝업 프로바이더가 상위 컴포넌트로 있어야 합니다.
229
+ */
230
+ function PopupProvider(_a) {
231
+ var children = _a.children;
232
+ var ref = (0, react_1.useRef)();
233
+ return (react_1.default.createElement(react_1.default.Fragment, null,
234
+ react_1.default.createElement(PopupContext.Provider, { value: ref }, children),
235
+ react_1.default.createElement("div", { ref: ref })));
236
+ }
237
+ exports.PopupProvider = PopupProvider;
238
+ var templateObject_1;