pds-dev-kit-web-test 0.0.5 → 0.0.8

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 (218) hide show
  1. package/README.md +1 -1
  2. package/dist/index.d.ts +4 -4
  3. package/dist/index.js +9 -3
  4. package/dist/src/GlobalStyle.js +1 -1
  5. package/dist/src/common/assets/icons/line/Clip.d.ts +4 -0
  6. package/dist/src/common/assets/icons/line/Clip.js +36 -0
  7. package/dist/src/common/assets/icons/line/Coins.d.ts +4 -0
  8. package/dist/src/common/assets/icons/line/Coins.js +34 -0
  9. package/dist/src/common/assets/icons/line/Ghost.d.ts +4 -0
  10. package/dist/src/common/assets/icons/line/Ghost.js +36 -0
  11. package/dist/src/common/assets/icons/line/Home.d.ts +4 -0
  12. package/dist/src/common/assets/icons/line/Home.js +36 -0
  13. package/dist/src/common/assets/icons/line/Internal.d.ts +4 -0
  14. package/dist/src/common/assets/icons/line/Internal.js +36 -0
  15. package/dist/src/common/assets/icons/line/PaymentFreeTrial.d.ts +4 -0
  16. package/dist/src/common/assets/icons/line/PaymentFreeTrial.js +34 -0
  17. package/dist/src/common/assets/icons/line/PaymentOnetime.js +1 -1
  18. package/dist/src/common/assets/icons/line/PaymentRegularly.js +2 -1
  19. package/dist/src/common/assets/icons/line/PostColumn.d.ts +4 -0
  20. package/dist/src/common/assets/icons/line/PostColumn.js +34 -0
  21. package/dist/src/common/assets/icons/line/PostPaperPlane.d.ts +4 -0
  22. package/dist/src/common/assets/icons/line/PostPaperPlane.js +36 -0
  23. package/dist/src/common/assets/icons/line/index.d.ts +8 -0
  24. package/dist/src/common/assets/icons/line/index.js +16 -0
  25. package/dist/src/common/components/BoxLayout/Row.js +1 -1
  26. package/dist/src/common/components/Navigations/ContextTextLabelNav.d.ts +3 -2
  27. package/dist/src/common/components/Navigations/ContextTextLabelNav.js +10 -5
  28. package/dist/src/common/components/Navigations/NavLink.js +3 -1
  29. package/dist/src/common/components/Navigations/TextLabelNav.d.ts +2 -1
  30. package/dist/src/common/components/Navigations/TextLabelNav.js +3 -3
  31. package/dist/src/common/hooks/index.d.ts +1 -0
  32. package/dist/src/common/hooks/index.js +3 -1
  33. package/dist/src/common/hooks/useDetectOverflow.js +1 -1
  34. package/dist/src/common/hooks/usePrevious.d.ts +2 -0
  35. package/dist/src/common/hooks/usePrevious.js +11 -0
  36. package/dist/src/common/styles/colorSet/PaletteColor_Dark.json +9 -1
  37. package/dist/src/common/styles/colorSet/PaletteColor_light.json +9 -1
  38. package/dist/src/common/styles/colorSet/SemanticColor.json +2 -1
  39. package/dist/src/common/styles/colorSet/UIColor.json +30 -1
  40. package/dist/src/common/styles/colorSet/index.d.ts +218 -172
  41. package/dist/src/common/styles/colorSet/index.js +3 -3
  42. package/dist/src/common/styles/colorSet/ui-type.d.ts +29 -0
  43. package/dist/src/common/styles/theme.js +22 -22
  44. package/dist/src/desktop/common/components/TextFieldBase/TextFieldBase.d.ts +2 -1
  45. package/dist/src/desktop/common/components/TextFieldBase/TextFieldBase.js +6 -6
  46. package/dist/src/desktop/components/AdminList/AdminList.d.ts +20 -11
  47. package/dist/src/desktop/components/AdminList/AdminList.js +5 -28
  48. package/dist/src/desktop/components/AdminList/BulkActionBar.d.ts +7 -1
  49. package/dist/src/desktop/components/AdminList/BulkActionBar.js +4 -4
  50. package/dist/src/desktop/components/AdminListHeader/HeaderBar.js +1 -1
  51. package/dist/src/desktop/components/AdminListItem/AdminListItem.d.ts +2 -2
  52. package/dist/src/desktop/components/AdminListItem/AdminListItem.js +3 -3
  53. package/dist/src/desktop/components/BasicChatListItem/BasicChatListItem.d.ts +15 -0
  54. package/dist/src/desktop/components/BasicChatListItem/BasicChatListItem.js +121 -0
  55. package/dist/src/desktop/components/BasicChatListItem/Popup.d.ts +19 -0
  56. package/dist/src/desktop/components/BasicChatListItem/Popup.js +238 -0
  57. package/dist/src/desktop/components/BasicChatListItem/index.d.ts +1 -0
  58. package/dist/src/desktop/components/BasicChatListItem/index.js +8 -0
  59. package/dist/src/desktop/components/BasicList/BasicList.d.ts +3 -3
  60. package/dist/src/desktop/components/BodyTextGroup/BodyTextGroup.d.ts +4 -1
  61. package/dist/src/desktop/components/BodyTextGroup/BodyTextGroup.js +4 -4
  62. package/dist/src/desktop/components/ChatBubbleListItem/ChatBubble.d.ts +8 -0
  63. package/dist/src/desktop/components/ChatBubbleListItem/ChatBubble.js +76 -0
  64. package/dist/src/desktop/components/ChatBubbleListItem/ChatBubbleListItem.d.ts +17 -0
  65. package/dist/src/desktop/components/ChatBubbleListItem/ChatBubbleListItem.js +160 -0
  66. package/dist/src/desktop/components/ChatBubbleListItem/Popup.d.ts +19 -0
  67. package/dist/src/desktop/components/ChatBubbleListItem/Popup.js +238 -0
  68. package/dist/src/desktop/components/ChatBubbleListItem/index.d.ts +1 -0
  69. package/dist/src/desktop/components/ChatBubbleListItem/index.js +8 -0
  70. package/dist/src/desktop/components/ChatList/Body.d.ts +7 -0
  71. package/dist/src/desktop/components/ChatList/Body.js +108 -0
  72. package/dist/src/desktop/components/ChatList/ChatList.d.ts +45 -0
  73. package/dist/src/desktop/components/ChatList/ChatList.js +105 -0
  74. package/dist/src/desktop/components/ChatList/ChatTextField.d.ts +25 -0
  75. package/dist/src/desktop/components/ChatList/ChatTextField.js +59 -0
  76. package/dist/src/desktop/components/ChatList/Footer.d.ts +25 -0
  77. package/dist/src/desktop/components/ChatList/Footer.js +27 -0
  78. package/dist/src/desktop/components/ChatList/Header.d.ts +5 -0
  79. package/dist/src/desktop/components/ChatList/Header.js +53 -0
  80. package/dist/src/desktop/components/ChatList/index.d.ts +1 -0
  81. package/dist/src/desktop/components/ChatList/index.js +8 -0
  82. package/dist/src/desktop/components/ChatList/useAutoScrollToBottom.d.ts +10 -0
  83. package/dist/src/desktop/components/ChatList/useAutoScrollToBottom.js +53 -0
  84. package/dist/src/desktop/components/Chip/Chip.js +15 -15
  85. package/dist/src/desktop/components/ContextMenu/ContextMenu.d.ts +2 -1
  86. package/dist/src/desktop/components/ContextMenu/ContextMenu.js +14 -5
  87. package/dist/src/desktop/components/ContextMenuItem/ContextMenuItem.js +4 -4
  88. package/dist/src/desktop/components/DesktopAlertDialog/DesktopAlertDialog.d.ts +1 -1
  89. package/dist/src/desktop/components/DesktopTabBar/DesktopTabBar.js +41 -47
  90. package/dist/src/desktop/components/Dropdown/Dropdown.d.ts +4 -3
  91. package/dist/src/desktop/components/Dropdown/Dropdown.js +56 -16
  92. package/dist/src/desktop/components/DynamicDesktopNavBar/DynamicDesktopNavBar.d.ts +6 -2
  93. package/dist/src/desktop/components/DynamicDesktopNavBar/DynamicDesktopNavBar.js +25 -2
  94. package/dist/src/desktop/components/DynamicDesktopNavBar/components/ContextMenuNavs/ContextMenuItemNav.js +9 -39
  95. package/dist/src/desktop/components/DynamicDesktopNavBar/components/IconNav.d.ts +3 -1
  96. package/dist/src/desktop/components/DynamicDesktopNavBar/components/IconNav.js +2 -2
  97. package/dist/src/desktop/components/DynamicDesktopNavBar/components/ImageIconNav.d.ts +2 -1
  98. package/dist/src/desktop/components/DynamicDesktopNavBar/components/ImageIconNav.js +2 -2
  99. package/dist/src/desktop/components/DynamicDesktopNavBar/components/MenuItemNav/MenuItemNav.js +10 -3
  100. package/dist/src/desktop/components/DynamicDesktopNavBar/components/MenuItemNav/components/DisplayOnlyMenuItemNav.d.ts +12 -0
  101. package/dist/src/desktop/components/DynamicDesktopNavBar/components/MenuItemNav/components/DisplayOnlyMenuItemNav.js +31 -0
  102. package/dist/src/desktop/components/DynamicDesktopNavBar/components/MenuItemNav/components/InternalLinkMenuItemNav.d.ts +12 -0
  103. package/dist/src/desktop/components/DynamicDesktopNavBar/components/MenuItemNav/components/InternalLinkMenuItemNav.js +65 -0
  104. package/dist/src/desktop/components/DynamicDesktopNavBar/components/MenuItemNav/components/PAppMenuItemNav.js +8 -6
  105. package/dist/src/desktop/components/DynamicDesktopNavBar/components/MenuItemNav/components/WebMenuItemNav.d.ts +2 -1
  106. package/dist/src/desktop/components/DynamicDesktopNavBar/components/MenuItemNav/components/WebMenuItemNav.js +4 -4
  107. package/dist/src/desktop/components/DynamicDesktopNavBar/reducer.d.ts +16 -0
  108. package/dist/src/desktop/components/DynamicDesktopNavBar/reducer.js +23 -0
  109. package/dist/src/desktop/components/DynamicDesktopNavBar/types.d.ts +2 -1
  110. package/dist/src/desktop/components/EditApplyTextField/EditApplyTextField.d.ts +2 -1
  111. package/dist/src/desktop/components/EditApplyTextField/EditApplyTextField.js +13 -14
  112. package/dist/src/desktop/components/FilterBar/FilterBar.d.ts +1 -1
  113. package/dist/src/desktop/components/FilterBar/FilterBar.js +1 -1
  114. package/dist/src/desktop/components/MainButton/MainButton.js +17 -5
  115. package/dist/src/desktop/components/Select/Select.d.ts +9 -7
  116. package/dist/src/desktop/components/Select/Select.js +20 -15
  117. package/dist/src/desktop/components/StatusBlock/StatusBlock.js +11 -5
  118. package/dist/src/desktop/components/TextButton/TextButton.js +5 -5
  119. package/dist/src/desktop/components/TextField/TextField.d.ts +3 -1
  120. package/dist/src/desktop/components/TextField/TextField.js +18 -14
  121. package/dist/src/desktop/components/UploadMainButton/UploadMainButton.js +7 -7
  122. package/dist/src/desktop/components/UploadTextButton/UploadTextButton.js +5 -5
  123. package/dist/src/desktop/components/UserDesktopNavBar/UserDesktopNavBar.d.ts +1 -1
  124. package/dist/src/desktop/components/UserDesktopNavBar/UserDesktopNavBar.js +4 -1
  125. package/dist/src/desktop/components/index.d.ts +4 -1
  126. package/dist/src/desktop/components/index.js +7 -1
  127. package/dist/src/desktop/index.d.ts +2 -2
  128. package/dist/src/desktop/index.js +5 -2
  129. package/dist/src/desktop/layout/LayoutWF/Containers/ContentsContainer/ContentsContainer.d.ts +1 -1
  130. package/dist/src/desktop/layout/LayoutWF/Containers/ContentsContainer/ContentsContainer.js +2 -1
  131. package/dist/src/desktop/layout/LayoutWF/Containers/ContentsContainer/variation/WFE.d.ts +2 -1
  132. package/dist/src/desktop/layout/LayoutWF/Containers/ContentsContainer/variation/WFE.js +41 -11
  133. package/dist/src/desktop/layout/LayoutWF/ContainersBox/ContainersBox.d.ts +1 -1
  134. package/dist/src/desktop/layout/LayoutWF/ContainersBox/ContainersBox.js +2 -0
  135. package/dist/src/desktop/layout/LayoutWS/Containers/ContentsContainer/ContentsContainer.d.ts +1 -1
  136. package/dist/src/desktop/layout/LayoutWS/Containers/ContentsContainer/ContentsContainer.js +2 -1
  137. package/dist/src/desktop/layout/LayoutWS/Containers/ContentsContainer/variation/WSG.d.ts +1 -1
  138. package/dist/src/desktop/layout/LayoutWS/Containers/ContentsContainer/variation/WSG.js +16 -10
  139. package/dist/src/desktop/layout/LayoutWS/ContainersBox/ContainersBox.d.ts +1 -1
  140. package/dist/src/desktop/layout/LayoutWT/Containers/ContentsContainer/ContentsContainer.d.ts +1 -1
  141. package/dist/src/desktop/layout/LayoutWT/Containers/ContentsContainer/ContentsContainer.js +9 -6
  142. package/dist/src/desktop/layout/LayoutWT/Containers/ContentsContainer/variation/WTN.d.ts +3 -2
  143. package/dist/src/desktop/layout/LayoutWT/Containers/ContentsContainer/variation/WTN.js +2 -2
  144. package/dist/src/desktop/layout/LayoutWT/Containers/ContentsContainer/variation/WTO.d.ts +3 -2
  145. package/dist/src/desktop/layout/LayoutWT/Containers/ContentsContainer/variation/WTO.js +8 -10
  146. package/dist/src/desktop/layout/LayoutWT/Containers/ContentsContainer/variation/WTP.d.ts +3 -2
  147. package/dist/src/desktop/layout/LayoutWT/Containers/ContentsContainer/variation/WTP.js +8 -10
  148. package/dist/src/desktop/layout/LayoutWT/Containers/ContentsContainer/variation/WTQ.js +5 -5
  149. package/dist/src/desktop/layout/LayoutWT/Containers/ContentsContainer/variation/WTT.d.ts +11 -0
  150. package/dist/src/desktop/layout/LayoutWT/Containers/ContentsContainer/variation/WTT.js +65 -0
  151. package/dist/src/desktop/layout/LayoutWT/Containers/ContentsContainer/variation/WTU.d.ts +13 -0
  152. package/dist/src/desktop/layout/LayoutWT/Containers/ContentsContainer/variation/WTU.js +96 -0
  153. package/dist/src/desktop/layout/LayoutWT/Containers/ContentsContainer/variation/index.d.ts +2 -0
  154. package/dist/src/desktop/layout/LayoutWT/Containers/ContentsContainer/variation/index.js +5 -1
  155. package/dist/src/desktop/layout/LayoutWT/Containers/SubMenuContainer/variation/LeftSubMenu.js +1 -1
  156. package/dist/src/desktop/layout/LayoutWT/ContainersBox/ContainersBox.d.ts +1 -1
  157. package/dist/src/desktop/layout/LayoutWT/ContainersBox/ContainersBox.js +20 -11
  158. package/dist/src/desktop/panels/DesktopBasicModal/DesktopBasicModal.js +7 -4
  159. package/dist/src/hybrid/components/Divider/Divider.js +4 -1
  160. package/dist/src/hybrid/components/Spacing/Spacing.js +1 -1
  161. package/dist/src/hybrid/components/Switch/Switch.js +4 -1
  162. package/dist/src/mobile/common/components/TextFieldBase/TextFieldBase.d.ts +2 -1
  163. package/dist/src/mobile/common/components/TextFieldBase/TextFieldBase.js +6 -6
  164. package/dist/src/mobile/components/BasicChatListItem/BasicChatListItem.d.ts +15 -0
  165. package/dist/src/mobile/components/BasicChatListItem/BasicChatListItem.js +121 -0
  166. package/dist/src/mobile/components/BasicChatListItem/Popup.d.ts +19 -0
  167. package/dist/src/mobile/components/BasicChatListItem/Popup.js +238 -0
  168. package/dist/src/mobile/components/BasicChatListItem/index.d.ts +1 -0
  169. package/dist/src/mobile/components/BasicChatListItem/index.js +8 -0
  170. package/dist/src/mobile/components/BasicList/BasicList.d.ts +3 -3
  171. package/dist/src/mobile/components/BodyTextGroup/BodyTextGroup.d.ts +4 -1
  172. package/dist/src/mobile/components/BodyTextGroup/BodyTextGroup.js +4 -4
  173. package/dist/src/mobile/components/ChatBubbleListItem/ChatBubble.d.ts +8 -0
  174. package/dist/src/mobile/components/ChatBubbleListItem/ChatBubble.js +76 -0
  175. package/dist/src/mobile/components/ChatBubbleListItem/ChatBubbleListItem.d.ts +17 -0
  176. package/dist/src/mobile/components/ChatBubbleListItem/ChatBubbleListItem.js +160 -0
  177. package/dist/src/mobile/components/ChatBubbleListItem/Popup.d.ts +19 -0
  178. package/dist/src/mobile/components/ChatBubbleListItem/Popup.js +238 -0
  179. package/dist/src/mobile/components/ChatBubbleListItem/index.d.ts +1 -0
  180. package/dist/src/mobile/components/ChatBubbleListItem/index.js +8 -0
  181. package/dist/src/mobile/components/ChatList/Body.d.ts +7 -0
  182. package/dist/src/mobile/components/ChatList/Body.js +109 -0
  183. package/dist/src/mobile/components/ChatList/ChatList.d.ts +45 -0
  184. package/dist/src/mobile/components/ChatList/ChatList.js +105 -0
  185. package/dist/src/mobile/components/ChatList/ChatTextField.d.ts +25 -0
  186. package/dist/src/mobile/components/ChatList/ChatTextField.js +59 -0
  187. package/dist/src/mobile/components/ChatList/Footer.d.ts +25 -0
  188. package/dist/src/mobile/components/ChatList/Footer.js +27 -0
  189. package/dist/src/mobile/components/ChatList/Header.d.ts +5 -0
  190. package/dist/src/mobile/components/ChatList/Header.js +53 -0
  191. package/dist/src/mobile/components/ChatList/index.d.ts +1 -0
  192. package/dist/src/mobile/components/ChatList/index.js +8 -0
  193. package/dist/src/mobile/components/ChatList/useAutoScrollToBottom.d.ts +10 -0
  194. package/dist/src/mobile/components/ChatList/useAutoScrollToBottom.js +53 -0
  195. package/dist/src/mobile/components/Chip/Chip.js +15 -15
  196. package/dist/src/mobile/components/ContextMenu/ContextMenu.d.ts +2 -1
  197. package/dist/src/mobile/components/ContextMenu/ContextMenu.js +14 -5
  198. package/dist/src/mobile/components/ContextMenuItem/ContextMenuItem.js +4 -4
  199. package/dist/src/mobile/components/Dropdown/Dropdown.d.ts +3 -2
  200. package/dist/src/mobile/components/Dropdown/Dropdown.js +56 -16
  201. package/dist/src/mobile/components/MainButton/MainButton.js +17 -5
  202. package/dist/src/mobile/components/MobileAlertDialog/MobileAlertDialog.d.ts +1 -1
  203. package/dist/src/mobile/components/MobileHeaderBar/MobileHeaderBar.d.ts +2 -1
  204. package/dist/src/mobile/components/MobileHeaderBar/MobileHeaderBar.js +23 -13
  205. package/dist/src/mobile/components/Select/Select.d.ts +9 -7
  206. package/dist/src/mobile/components/Select/Select.js +19 -14
  207. package/dist/src/mobile/components/StatusBlock/StatusBlock.js +4 -4
  208. package/dist/src/mobile/components/TextButton/TextButton.js +4 -4
  209. package/dist/src/mobile/components/TextField/TextField.d.ts +3 -1
  210. package/dist/src/mobile/components/TextField/TextField.js +18 -14
  211. package/dist/src/mobile/components/UploadMainButton/UploadMainButton.js +7 -7
  212. package/dist/src/mobile/components/UploadTextButton/UploadTextButton.js +5 -5
  213. package/dist/src/mobile/components/index.d.ts +4 -1
  214. package/dist/src/mobile/components/index.js +7 -1
  215. package/dist/src/mobile/index.d.ts +2 -2
  216. package/dist/src/mobile/index.js +4 -1
  217. package/package.json +1 -1
  218. package/release-note.md +4 -2
@@ -7,14 +7,14 @@ var react_1 = __importDefault(require("react"));
7
7
  var hybrid_1 = require("../../../hybrid");
8
8
  var TextLabel_1 = require("../TextLabel");
9
9
  function BodyTextGroup(_a) {
10
- var titleText = _a.titleText, descText = _a.descText, contentText = _a.contentText, _b = _a.contentFontWeight, contentFontWeight = _b === void 0 ? 'regular' : _b;
10
+ var titleText = _a.titleText, descText = _a.descText, contentText = _a.contentText, _b = _a.titleTextWordBreak, titleTextWordBreak = _b === void 0 ? 'keep_all' : _b, _c = _a.descTextWordBreak, descTextWordBreak = _c === void 0 ? 'keep_all' : _c, _d = _a.contentTextWordBreak, contentTextWordBreak = _d === void 0 ? 'keep_all' : _d, _e = _a.contentFontWeight, contentFontWeight = _e === void 0 ? 'regular' : _e;
11
11
  return (react_1.default.createElement("div", null,
12
- react_1.default.createElement(TextLabel_1.TextLabel, { text: titleText, styleTheme: "subTitleBold", colorTheme: "sysTextPrimary" }),
12
+ react_1.default.createElement(TextLabel_1.TextLabel, { text: titleText, wordBreak: titleTextWordBreak, styleTheme: "subTitleBold", colorTheme: "sysTextPrimary" }),
13
13
  descText && (react_1.default.createElement(react_1.default.Fragment, null,
14
14
  react_1.default.createElement(hybrid_1.Spacing, { size: "spacing_d" }),
15
- react_1.default.createElement(TextLabel_1.TextLabel, { text: descText, styleTheme: "caption1Regular", colorTheme: "sysTextSecondary" }))),
15
+ react_1.default.createElement(TextLabel_1.TextLabel, { text: descText, wordBreak: descTextWordBreak, styleTheme: "caption1Regular", colorTheme: "sysTextSecondary" }))),
16
16
  contentText && (react_1.default.createElement(react_1.default.Fragment, null,
17
17
  react_1.default.createElement(hybrid_1.Spacing, { size: "spacing_d" }),
18
- react_1.default.createElement(TextLabel_1.TextLabel, { text: contentText, styleTheme: contentFontWeight === 'regular' ? 'body2Regular' : 'body2Bold', colorTheme: "sysTextPrimary" })))));
18
+ react_1.default.createElement(TextLabel_1.TextLabel, { text: contentText, wordBreak: contentTextWordBreak, styleTheme: contentFontWeight === 'regular' ? 'body2Regular' : 'body2Bold', colorTheme: "sysTextPrimary" })))));
19
19
  }
20
20
  exports.default = BodyTextGroup;
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ export declare type ChatBubbleProps = {
3
+ colorTheme?: 'my' | 'seller' | 'subscriber';
4
+ tailType?: 'none' | 'left_top' | 'right_top';
5
+ children?: React.ReactNode;
6
+ };
7
+ declare function ChatBubble({ colorTheme, tailType, children }: ChatBubbleProps): JSX.Element;
8
+ export default ChatBubble;
@@ -0,0 +1,76 @@
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
+ var react_1 = __importDefault(require("react"));
30
+ var styled_components_1 = __importStar(require("styled-components"));
31
+ var backgroundColorTheme = {
32
+ my: 'ui_cpnt_list_chatbubble_base_area_my',
33
+ seller: 'ui_cpnt_list_chatbubble_base_area_seller',
34
+ subscriber: 'ui_cpnt_list_chatbubble_base_area_subscriber'
35
+ };
36
+ function ChatBubble(_a) {
37
+ var _b = _a.colorTheme, colorTheme = _b === void 0 ? 'seller' : _b, _c = _a.tailType, tailType = _c === void 0 ? 'left_top' : _c, children = _a.children;
38
+ return (react_1.default.createElement(S_ChatBubbleWrapper, null,
39
+ react_1.default.createElement(S_Tail, { width: "8", height: "11", viewBox: "0 0 8 11", tailType: tailType, colorTheme: colorTheme },
40
+ react_1.default.createElement("path", { d: "M1107,336.800385 C1107,341.257979 1107.46413,342.87441 1108.33566,344.50404 C1108.99708,345.740772 1109.89313,346.775532 1110.99903,347.583527 L1111,347.618755 L1110.99894,347.618755 C1108.35845,347.618755 1105.83748,347.107028 1103.52979,346.177337 C1104.54074,345.507794 1105.3496,344.61519 1105.93147,343.527194 C1106.6287,342.22349 1107,340.8866 1107,337.582996 L1107,337.582996 Z", transform: "rotate(180 555.765 173.81)" })),
41
+ react_1.default.createElement(S_ChatBubble, { colorTheme: colorTheme }, children)));
42
+ }
43
+ var none = (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: none;\n"], ["\n display: none;\n"])));
44
+ var left_top = (0, styled_components_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n left: -4px;\n top: 0;\n"], ["\n left: -4px;\n top: 0;\n"])));
45
+ var right_top = (0, styled_components_1.css)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n transform: scaleX(-1);\n right: -4px;\n top: 0;\n"], ["\n transform: scaleX(-1);\n right: -4px;\n top: 0;\n"])));
46
+ var S_ChatBubbleWrapper = styled_components_1.default.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n display: inline-block;\n position: relative;\n"], ["\n display: inline-block;\n position: relative;\n"])));
47
+ var S_ChatBubble = styled_components_1.default.div(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n box-sizing: border-box;\n padding-top: ", ";\n padding-right: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n\n background-color: ", ";\n border-radius: 8px;\n position: relative;\n max-width: 960px;\n min-width: 32px;\n"], ["\n box-sizing: border-box;\n padding-top: ", ";\n padding-right: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n\n background-color: ", ";\n border-radius: 8px;\n position: relative;\n max-width: 960px;\n min-width: 32px;\n"])), function (_a) {
48
+ var theme = _a.theme;
49
+ return theme.spacing.spacingB;
50
+ }, function (_a) {
51
+ var theme = _a.theme;
52
+ return theme.spacing.spacingC;
53
+ }, function (_a) {
54
+ var theme = _a.theme;
55
+ return theme.spacing.spacingB;
56
+ }, function (_a) {
57
+ var theme = _a.theme;
58
+ return theme.spacing.spacingC;
59
+ }, function (_a) {
60
+ var colorTheme = _a.colorTheme, theme = _a.theme;
61
+ return colorTheme && theme[backgroundColorTheme[colorTheme]];
62
+ });
63
+ var S_Tail = styled_components_1.default.svg(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n position: absolute;\n fill: ", ";\n\n ", ";\n"], ["\n position: absolute;\n fill: ", ";\n\n ", ";\n"])), function (_a) {
64
+ var colorTheme = _a.colorTheme, theme = _a.theme;
65
+ return colorTheme && theme[backgroundColorTheme[colorTheme]];
66
+ }, function (_a) {
67
+ var tailType = _a.tailType;
68
+ return tailType &&
69
+ {
70
+ none: none,
71
+ left_top: left_top,
72
+ right_top: right_top
73
+ }[tailType];
74
+ });
75
+ exports.default = ChatBubble;
76
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6;
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import { PDSTextType, PDSValueOption } from '../../../common';
3
+ export declare type ChatBubbleListItemProps = {
4
+ titleText?: PDSTextType;
5
+ imageMode?: 'none' | 'use';
6
+ imageSrc?: string;
7
+ hoverMode?: 'none' | 'use';
8
+ styleTheme?: 'seller_tail' | 'seller' | 'subscriber_tail' | 'subscriber' | 'my_tail' | 'my';
9
+ timeMode?: 'none' | 'use';
10
+ timeText?: PDSTextType;
11
+ contextMenuOptionArray?: PDSValueOption[];
12
+ contextMenuState?: 'normal' | 'disabled';
13
+ children?: React.ReactNode;
14
+ onClickContextMenuItem?: (option: PDSValueOption) => void;
15
+ };
16
+ declare function ChatBubbleListItem({ titleText, imageMode, imageSrc, hoverMode, styleTheme, timeMode, timeText, contextMenuOptionArray, contextMenuState, children, onClickContextMenuItem }: ChatBubbleListItemProps): JSX.Element;
17
+ export default ChatBubbleListItem;
@@ -0,0 +1,160 @@
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
+ var react_1 = __importStar(require("react"));
30
+ var styled_components_1 = __importStar(require("styled-components"));
31
+ var hybrid_1 = require("../../../hybrid");
32
+ var ContextMenu_1 = require("../ContextMenu");
33
+ var ContextMenuItem_1 = require("../ContextMenuItem");
34
+ var IconButton_1 = require("../IconButton");
35
+ var TextLabel_1 = require("../TextLabel");
36
+ var ChatBubble_1 = __importDefault(require("./ChatBubble"));
37
+ var Popup_1 = require("./Popup");
38
+ var ChatBubbleColorTheme = {
39
+ seller_tail: 'seller',
40
+ seller: 'seller',
41
+ subscriber_tail: 'subscriber',
42
+ subscriber: 'subscriber',
43
+ my_tail: 'my',
44
+ my: 'my'
45
+ };
46
+ var ChatBubbleTailType = {
47
+ seller_tail: 'left_top',
48
+ seller: 'none',
49
+ subscriber_tail: 'left_top',
50
+ subscriber: 'none',
51
+ my_tail: 'right_top',
52
+ my: 'none'
53
+ };
54
+ function ChatBubbleListItem(_a) {
55
+ var titleText = _a.titleText, _b = _a.imageMode, imageMode = _b === void 0 ? 'use' : _b, imageSrc = _a.imageSrc, _c = _a.hoverMode, hoverMode = _c === void 0 ? 'use' : _c, _d = _a.styleTheme, styleTheme = _d === void 0 ? 'seller_tail' : _d, _e = _a.timeMode, timeMode = _e === void 0 ? 'use' : _e, timeText = _a.timeText, contextMenuOptionArray = _a.contextMenuOptionArray, _f = _a.contextMenuState, contextMenuState = _f === void 0 ? 'normal' : _f, children = _a.children, onClickContextMenuItem = _a.onClickContextMenuItem;
56
+ var isMy = styleTheme.includes('my');
57
+ var isSeller = styleTheme.includes('seller');
58
+ var isTail = styleTheme.includes('tail');
59
+ var _g = (0, react_1.useState)(false), isContextMenuOpen = _g[0], setIsContextMenuOpen = _g[1];
60
+ var contextMenuRef = (0, react_1.useRef)(null);
61
+ var chatBody = document.querySelector('#chatMessageBox');
62
+ var rect = chatBody === null || chatBody === void 0 ? void 0 : chatBody.getBoundingClientRect();
63
+ /**
64
+ * @when contextMenu가 열려 있을 때
65
+ * @expected ChatList body의 스크롤을 숨기고, contextMenu의 외부를 클릭하면 contextMenu가 닫히도록 합니다.
66
+ * @clear document의 클릭 이벤트를 제거합니다.
67
+ */
68
+ (0, react_1.useEffect)(function () {
69
+ // NOTE pop up 개념이 생기기 전까지의 임시 조치 방법입니다.
70
+ if (!chatBody) {
71
+ return;
72
+ }
73
+ chatBody.style.overflowY = isContextMenuOpen ? 'hidden' : 'auto';
74
+ }, [isContextMenuOpen, chatBody]);
75
+ var handleMoreButtonClick = function (e) {
76
+ e.stopPropagation();
77
+ setIsContextMenuOpen(function (prev) { return !prev; });
78
+ };
79
+ var handleContextMenuItemClick = function (option) {
80
+ if (onClickContextMenuItem) {
81
+ onClickContextMenuItem(option);
82
+ }
83
+ setIsContextMenuOpen(false);
84
+ };
85
+ return (react_1.default.createElement(react_1.default.Fragment, null,
86
+ react_1.default.createElement(S_ChatBubbleListItem, { isMy: isMy, imageMode: imageMode },
87
+ imageMode === 'use' && (react_1.default.createElement(react_1.default.Fragment, null, isTail && !isMy ? (react_1.default.createElement(S_ImageViewWrapper, { isSeller: isSeller },
88
+ react_1.default.createElement(hybrid_1.ImageView, { shapeType: "circular", ratio: "1_1", scaleType: "cover", src: imageSrc, width: isSeller ? 36 : 38 }))) : (react_1.default.createElement(hybrid_1.Spacing, { size: "spacing_g", spacingType: "width" })))),
89
+ react_1.default.createElement(S_RightBox, null,
90
+ isTail && !isMy && (react_1.default.createElement(react_1.default.Fragment, null,
91
+ react_1.default.createElement(TextLabel_1.TextLabel, { text: titleText, styleTheme: "caption1Bold", colorTheme: isSeller ? 'usrTextBrandPrimary' : 'sysTextPrimary' }),
92
+ react_1.default.createElement(hybrid_1.Spacing, { size: "spacing_b" }))),
93
+ react_1.default.createElement(S_ChatBubbleBox, null,
94
+ react_1.default.createElement(S_ChatBubbleWrapper, { isMy: isMy },
95
+ timeMode === 'use' && timeText && isMy && (react_1.default.createElement(S_TimeWrapper, null,
96
+ react_1.default.createElement(TextLabel_1.TextLabel, { text: timeText, styleTheme: "caption2Regular", colorTheme: "sysTextTertiary", singleLineMode: "use" }),
97
+ react_1.default.createElement(hybrid_1.Spacing, { size: "spacing_a", spacingType: "width" }))),
98
+ react_1.default.createElement(ChatBubble_1.default, { colorTheme: ChatBubbleColorTheme[styleTheme], tailType: ChatBubbleTailType[styleTheme] }, children),
99
+ timeMode === 'use' && timeText && !isMy && (react_1.default.createElement(S_TimeWrapper, null,
100
+ react_1.default.createElement(hybrid_1.Spacing, { size: "spacing_a", spacingType: "width" }),
101
+ react_1.default.createElement(TextLabel_1.TextLabel, { text: timeText, styleTheme: "caption2Regular", colorTheme: "sysTextTertiary", singleLineMode: "use" })))),
102
+ hoverMode === 'use' && !isMy && (react_1.default.createElement(S_SeeMoreButton, { isContextMenuOpen: isContextMenuOpen, hoverMode: hoverMode, ref: contextMenuRef },
103
+ 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 }))))),
104
+ react_1.default.createElement(Popup_1.PopupProvider, null,
105
+ 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); } },
106
+ 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 })); })))))));
107
+ }
108
+ var MyChatBubbleListItem = (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n margin-right: ", ";\n"], ["\n margin-right: ", ";\n"])), function (_a) {
109
+ var theme = _a.theme;
110
+ return theme.spacing.spacingA;
111
+ });
112
+ var NoImageChatBubbleListItem = (0, styled_components_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n margin-left: ", ";\n"], ["\n margin-left: ", ";\n"])), function (_a) {
113
+ var theme = _a.theme;
114
+ return theme.spacing.spacingA;
115
+ });
116
+ var S_ChatBubbleListItem = styled_components_1.default.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n display: flex;\n height: fit-content;\n max-width: 100%;\n\n ", ";\n ", ";\n"], ["\n display: flex;\n height: fit-content;\n max-width: 100%;\n\n ", ";\n ", ";\n"])), function (_a) {
117
+ var isMy = _a.isMy;
118
+ return isMy && MyChatBubbleListItem;
119
+ }, function (_a) {
120
+ var imageMode = _a.imageMode;
121
+ return imageMode === 'none' && NoImageChatBubbleListItem;
122
+ });
123
+ var ImageViewSeller = (0, styled_components_1.css)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n border: 2px solid ", ";\n"], ["\n border: 2px solid ", ";\n"])), function (_a) {
124
+ var theme = _a.theme;
125
+ return theme.ui_profile_image_border_brandprimary;
126
+ });
127
+ var ImageViewDefault = (0, styled_components_1.css)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n border: 1px solid ", ";\n"], ["\n border: 1px solid ", ";\n"])), function (_a) {
128
+ var theme = _a.theme;
129
+ return theme.ui_profile_image_border;
130
+ });
131
+ var S_ImageViewWrapper = styled_components_1.default.div(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n box-sizing: border-box;\n border-radius: 50%;\n height: fit-content;\n min-width: fit-content;\n width: fit-content;\n margin-right: ", ";\n position: relative;\n\n ", ";\n"], ["\n box-sizing: border-box;\n border-radius: 50%;\n height: fit-content;\n min-width: fit-content;\n width: fit-content;\n margin-right: ", ";\n position: relative;\n\n ", ";\n"])), function (_a) {
132
+ var theme = _a.theme;
133
+ return theme.spacing.spacingB;
134
+ }, function (_a) {
135
+ var isSeller = _a.isSeller;
136
+ return (isSeller ? ImageViewSeller : ImageViewDefault);
137
+ });
138
+ var S_RightBox = styled_components_1.default.div(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n flex: 1;\n"], ["\n flex: 1;\n"])));
139
+ var S_ChatBubbleBox = styled_components_1.default.div(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n display: flex;\n justify-content: space-between;\n"], ["\n display: flex;\n justify-content: space-between;\n"])));
140
+ var MyChatBubble = (0, styled_components_1.css)(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n justify-content: flex-end;\n"], ["\n justify-content: flex-end;\n"])));
141
+ var S_ChatBubbleWrapper = styled_components_1.default.div(templateObject_10 || (templateObject_10 = __makeTemplateObject(["\n flex: 1;\n display: flex;\n\n ", ";\n"], ["\n flex: 1;\n display: flex;\n\n ", ";\n"])), function (_a) {
142
+ var isMy = _a.isMy;
143
+ return isMy && MyChatBubble;
144
+ });
145
+ var S_TimeWrapper = styled_components_1.default.div(templateObject_11 || (templateObject_11 = __makeTemplateObject(["\n align-self: flex-end;\n display: flex;\n"], ["\n align-self: flex-end;\n display: flex;\n"])));
146
+ var S_SeeMoreButton = styled_components_1.default.div(templateObject_12 || (templateObject_12 = __makeTemplateObject(["\n box-sizing: border-box;\n display: flex;\n width: 48px;\n height: 24px;\n min-width: 48px;\n padding-right: ", ";\n margin-top: ", ";\n position: relative;\n opacity: ", ";\n justify-content: right;\n\n ", ":hover & {\n opacity: ", ";\n }\n"], ["\n box-sizing: border-box;\n display: flex;\n width: 48px;\n height: 24px;\n min-width: 48px;\n padding-right: ", ";\n margin-top: ", ";\n position: relative;\n opacity: ", ";\n justify-content: right;\n\n ", ":hover & {\n opacity: ", ";\n }\n"])), function (_a) {
147
+ var theme = _a.theme;
148
+ return theme.spacing.spacingB;
149
+ }, function (_a) {
150
+ var theme = _a.theme;
151
+ return theme.spacing.spacingB;
152
+ }, function (_a) {
153
+ var isContextMenuOpen = _a.isContextMenuOpen;
154
+ return (isContextMenuOpen ? '1' : '0');
155
+ }, S_ChatBubbleListItem, function (_a) {
156
+ var hoverMode = _a.hoverMode;
157
+ return hoverMode === 'use' && '1';
158
+ });
159
+ exports.default = ChatBubbleListItem;
160
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11, templateObject_12;
@@ -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;
@@ -0,0 +1 @@
1
+ export { default as ChatBubbleListItem } from './ChatBubbleListItem';
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ChatBubbleListItem = void 0;
7
+ var ChatBubbleListItem_1 = require("./ChatBubbleListItem");
8
+ Object.defineProperty(exports, "ChatBubbleListItem", { enumerable: true, get: function () { return __importDefault(ChatBubbleListItem_1).default; } });
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import type { Props as ChatListProps } from './ChatList';
3
+ declare const Body: React.ForwardRefExoticComponent<Pick<ChatListProps, "children" | "scrollVisibleType" | "bodyMBtnText" | "bodySpacingMode"> & {
4
+ isSubmitted: boolean;
5
+ callBackAfterScrollToBottom: () => void;
6
+ } & React.RefAttributes<HTMLDivElement>>;
7
+ export default Body;