pds-dev-kit-web-test 0.2.54 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/common/assets/icons/fill/BellOff.d.ts +4 -0
- package/dist/src/common/assets/icons/fill/BellOff.js +30 -0
- package/dist/src/common/assets/icons/fill/VideocallPro.js +1 -1
- package/dist/src/common/assets/icons/fill/Vodplus.js +1 -1
- package/dist/src/common/assets/icons/fill/index.d.ts +1 -0
- package/dist/src/common/assets/icons/fill/index.js +2 -0
- package/dist/src/common/assets/icons/line/BellOff.d.ts +4 -0
- package/dist/src/common/assets/icons/line/BellOff.js +30 -0
- package/dist/src/common/assets/icons/line/ChatRoom11.d.ts +4 -0
- package/dist/src/common/assets/icons/line/ChatRoom11.js +30 -0
- package/dist/src/common/assets/icons/line/ChatRoomFree.d.ts +4 -0
- package/dist/src/common/assets/icons/line/ChatRoomFree.js +30 -0
- package/dist/src/common/assets/icons/line/ChatRoomGroup.d.ts +4 -0
- package/dist/src/common/assets/icons/line/ChatRoomGroup.js +30 -0
- package/dist/src/common/assets/icons/line/ChatRoomPaid.d.ts +4 -0
- package/dist/src/common/assets/icons/line/ChatRoomPaid.js +30 -0
- package/dist/src/common/assets/icons/line/DesignPreference.js +1 -1
- package/dist/src/common/assets/icons/line/PappType.js +1 -1
- package/dist/src/common/assets/icons/line/PaymentRegularly.js +1 -1
- package/dist/src/common/assets/icons/line/PostVote.js +1 -1
- package/dist/src/common/assets/icons/line/Target.js +1 -1
- package/dist/src/common/assets/icons/line/TypefaceDisplay20.d.ts +4 -0
- package/dist/src/common/assets/icons/line/TypefaceDisplay20.js +30 -0
- package/dist/src/common/assets/icons/line/TypefaceHand20.d.ts +4 -0
- package/dist/src/common/assets/icons/line/TypefaceHand20.js +30 -0
- package/dist/src/common/assets/icons/line/TypefaceMonospace20.d.ts +4 -0
- package/dist/src/common/assets/icons/line/TypefaceMonospace20.js +30 -0
- package/dist/src/common/assets/icons/line/TypefaceSansSerif20.d.ts +4 -0
- package/dist/src/common/assets/icons/line/TypefaceSansSerif20.js +30 -0
- package/dist/src/common/assets/icons/line/TypefaceSerif20.d.ts +4 -0
- package/dist/src/common/assets/icons/line/TypefaceSerif20.js +30 -0
- package/dist/src/common/assets/icons/line/index.d.ts +10 -0
- package/dist/src/common/assets/icons/line/index.js +20 -0
- package/dist/src/common/hooks/index.d.ts +1 -0
- package/dist/src/common/hooks/index.js +3 -1
- package/dist/src/common/hooks/useAbsolutePositioner.d.ts +13 -0
- package/dist/src/common/hooks/useAbsolutePositioner.js +54 -0
- package/dist/src/common/hooks/useTooltip.d.ts +17 -0
- package/dist/src/common/hooks/useTooltip.js +76 -0
- package/dist/src/common/styles/colorSet/PaletteColor_Dark.json +2 -1
- package/dist/src/common/styles/colorSet/PaletteColor_light.json +2 -1
- package/dist/src/common/styles/colorSet/UIColor.json +2 -1
- package/dist/src/common/styles/colorSet/index.d.ts +963 -960
- package/dist/src/common/styles/colorSet/index.js +5 -5
- package/dist/src/common/styles/colorSet/ui-type.d.ts +1 -0
- package/dist/src/common/styles/systemUI/index.d.ts +1 -0
- package/dist/src/common/styles/systemUI/index.js +5 -0
- package/dist/src/common/styles/systemUI/tooltipStyle.d.ts +1 -0
- package/dist/src/common/styles/systemUI/tooltipStyle.js +28 -0
- package/dist/src/common/types/components.d.ts +3 -2
- package/dist/src/common/types/systemUI.d.ts +13 -0
- package/dist/src/common/types/systemUI.js +2 -0
- package/dist/src/common/utils/SystemUIPositionGenerator/clickTypeSystemUICssGenerator.d.ts +13 -0
- package/dist/src/common/utils/SystemUIPositionGenerator/clickTypeSystemUICssGenerator.js +20 -0
- package/dist/src/common/utils/SystemUIPositionGenerator/hoverTypeSystemUICssGenerator.d.ts +17 -0
- package/dist/src/common/utils/SystemUIPositionGenerator/hoverTypeSystemUICssGenerator.js +71 -0
- package/dist/src/common/utils/SystemUIPositionGenerator/index.d.ts +1 -0
- package/dist/src/common/utils/SystemUIPositionGenerator/index.js +8 -0
- package/dist/src/desktop/components/BasicButtonGroup/BasicButtonGroup.js +54 -42
- package/dist/src/desktop/components/BasicButtonGroup/constants.d.ts +0 -6
- package/dist/src/desktop/components/BasicButtonGroup/constants.js +1 -8
- package/dist/src/desktop/components/BasicChatListItem/BasicChatListItem.d.ts +2 -4
- package/dist/src/desktop/components/BasicChatListItem/BasicChatListItem.js +14 -5
- package/dist/src/desktop/components/ChatBubbleListItem/ChatBubbleListItem.d.ts +3 -3
- package/dist/src/desktop/components/ChatBubbleListItem/ChatBubbleListItem.js +41 -45
- package/dist/src/desktop/components/ContextMenu/ContextMenu.js +1 -1
- package/dist/src/desktop/components/Dropdown/Dropdown.js +48 -9
- package/dist/src/desktop/components/IconButton/IconButton.d.ts +3 -1
- package/dist/src/desktop/components/IconButton/IconButton.js +48 -44
- package/dist/src/desktop/components/SegmentedButtonGroup/SegmentedButtonGroup.js +54 -42
- package/dist/src/desktop/components/SegmentedButtonGroup/constants.d.ts +0 -6
- package/dist/src/desktop/components/SegmentedButtonGroup/constants.js +1 -8
- package/dist/src/desktop/components/TextLabel/TextLabel.d.ts +3 -1
- package/dist/src/desktop/components/TextLabel/TextLabel.js +33 -63
- package/dist/src/desktop/components/UploadIconButton/UploadIconButton.d.ts +3 -1
- package/dist/src/desktop/components/UploadIconButton/UploadIconButton.js +49 -45
- package/dist/src/desktop/components/UploadIconButton/constants.d.ts +7 -0
- package/dist/src/desktop/components/UploadIconButton/constants.js +10 -0
- package/dist/src/desktop/layout/LayoutWT/Containers/ContentsContainer/ContentsContainer.d.ts +1 -1
- package/dist/src/desktop/layout/LayoutWT/Containers/ContentsContainer/ContentsContainer.js +2 -1
- package/dist/src/desktop/layout/LayoutWT/Containers/ContentsContainer/variation/WTW.d.ts +18 -0
- package/dist/src/desktop/layout/LayoutWT/Containers/ContentsContainer/variation/WTW.js +112 -0
- package/dist/src/desktop/layout/LayoutWT/Containers/ContentsContainer/variation/index.d.ts +1 -0
- package/dist/src/desktop/layout/LayoutWT/Containers/ContentsContainer/variation/index.js +3 -1
- package/dist/src/desktop/layout/LayoutWT/ContainersBox/ContainersBox.d.ts +1 -1
- package/dist/src/desktop/layout/LayoutWT/ContainersBox/ContainersBox.js +8 -4
- package/dist/src/hybrid/components/Icon/Icon.js +2 -1
- package/dist/src/mobile/components/BasicChatListItem/BasicChatListItem.d.ts +2 -4
- package/dist/src/mobile/components/BasicChatListItem/BasicChatListItem.js +14 -5
- package/dist/src/mobile/components/ChatBubbleListItem/ChatBubbleListItem.d.ts +3 -3
- package/dist/src/mobile/components/ChatBubbleListItem/ChatBubbleListItem.js +41 -45
- package/dist/src/mobile/components/ContextMenu/ContextMenu.js +1 -1
- package/dist/src/mobile/components/Dropdown/Dropdown.js +48 -9
- package/dist/src/sub/DynamicLayout/components/pdsOriginal/common/assets/icons/fill/VideocallPro.js +1 -1
- package/dist/src/sub/DynamicLayout/components/pdsOriginal/common/assets/icons/fill/Vodplus.js +1 -1
- package/dist/src/sub/DynamicLayout/components/pdsOriginal/common/assets/icons/line/DesignPreference.js +1 -1
- package/dist/src/sub/DynamicLayout/components/pdsOriginal/common/assets/icons/line/PappType.js +1 -1
- package/dist/src/sub/DynamicLayout/components/pdsOriginal/common/assets/icons/line/PaymentRegularly.js +1 -1
- package/dist/src/sub/DynamicLayout/components/pdsOriginal/common/assets/icons/line/PostVote.js +1 -1
- package/dist/src/sub/DynamicLayout/pagesPreviewMock.js +1 -1
- package/dist/src/sub/DynamicLayout/sectionActionTypes.d.ts +4 -0
- package/dist/src/sub/DynamicLayout/sections/CustomSection/CustomSection.js +19 -1
- package/dist/src/sub/DynamicLayout/sections/CustomSection/newUtils/textUtil.js +1 -1
- package/dist/src/sub/DynamicLayout/sections/CustomSection/util/parsePlacement.js +2 -2
- package/dist/src/sub/GoogleFontkit/headless/GoogleFontItem.js +0 -6
- package/dist/src/sub/GoogleFontkit/headless/GoogleFontsList.js +17 -37
- package/dist/src/sub/GoogleFontkit/types.d.ts +1 -1
- package/dist/src/sub/GoogleFontkit/utils/applyActiveFont.d.ts +0 -3
- package/dist/src/sub/GoogleFontkit/utils/applyActiveFont.js +0 -3
- package/dist/src/sub/GoogleFontkit/utils/createStyleSheet.d.ts +0 -3
- package/dist/src/sub/GoogleFontkit/utils/createStyleSheet.js +0 -3
- package/dist/src/sub/GoogleFontkit/utils/extractFontStyles.js +0 -4
- package/dist/src/sub/GoogleFontkit/utils/fillStyleSheet.d.ts +0 -3
- package/dist/src/sub/GoogleFontkit/utils/fillStyleSheet.js +0 -4
- package/dist/src/sub/GoogleFontkit/utils/getActiveFontStylesheet.d.ts +0 -3
- package/dist/src/sub/GoogleFontkit/utils/getActiveFontStylesheet.js +0 -3
- package/dist/src/sub/GoogleFontkit/utils/getFontId.d.ts +0 -3
- package/dist/src/sub/GoogleFontkit/utils/getFontId.js +0 -3
- package/dist/src/sub/GoogleFontkit/utils/isStyleSheetExists.d.ts +0 -3
- package/dist/src/sub/GoogleFontkit/utils/isStyleSheetExists.js +0 -3
- package/dist/src/sub/GoogleFontkit/utils/setStyleSheetType.d.ts +0 -3
- package/dist/src/sub/GoogleFontkit/utils/setStyleSheetType.js +0 -3
- package/package.json +1 -1
- package/release-note.md +3 -3
|
@@ -4,14 +4,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
/* eslint-disable import/order */
|
|
7
|
-
var SemanticColor_json_1 = __importDefault(require("./SemanticColor.json"));
|
|
8
7
|
var PaletteColor_light_json_1 = __importDefault(require("./PaletteColor_light.json"));
|
|
9
|
-
var UIColor_json_1 = __importDefault(require("./UIColor.json"));
|
|
10
8
|
var PaletteColor_Dark_json_1 = __importDefault(require("./PaletteColor_Dark.json"));
|
|
9
|
+
var SemanticColor_json_1 = __importDefault(require("./SemanticColor.json"));
|
|
10
|
+
var UIColor_json_1 = __importDefault(require("./UIColor.json"));
|
|
11
11
|
var colorSet = {
|
|
12
|
-
SemanticColor: SemanticColor_json_1.default,
|
|
13
12
|
PaletteColor_light: PaletteColor_light_json_1.default,
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
PaletteColor_Dark: PaletteColor_Dark_json_1.default,
|
|
14
|
+
SemanticColor: SemanticColor_json_1.default,
|
|
15
|
+
UIColor: UIColor_json_1.default
|
|
16
16
|
};
|
|
17
17
|
exports.default = colorSet;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { TooltipWrapperStyle } from './tooltipStyle';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TooltipWrapperStyle = void 0;
|
|
4
|
+
var tooltipStyle_1 = require("./tooltipStyle");
|
|
5
|
+
Object.defineProperty(exports, "TooltipWrapperStyle", { enumerable: true, get: function () { return tooltipStyle_1.TooltipWrapperStyle; } });
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const TooltipWrapperStyle: import("styled-components").FlattenInterpolation<import("styled-components").ThemeProps<import("styled-components").DefaultTheme>>;
|
|
@@ -0,0 +1,28 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.TooltipWrapperStyle = void 0;
|
|
8
|
+
var styled_components_1 = require("styled-components");
|
|
9
|
+
exports.TooltipWrapperStyle = (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n align-items: center;\n background-color: ", ";\n border-radius: ", ";\n box-sizing: border-box;\n color: ", ";\n display: flex;\n font-size: ", ";\n font-weight: ", ";\n justify-content: center;\n line-height: 1.2;\n max-width: 240px;\n overflow-wrap: break-word;\n padding: ", ";\n position: absolute;\n text-align: left;\n white-space: pre-wrap;\n width: max-content;\n word-break: keep-all;\n z-index: 400;\n"], ["\n align-items: center;\n background-color: ", ";\n border-radius: ", ";\n box-sizing: border-box;\n color: ", ";\n display: flex;\n font-size: ", ";\n font-weight: ", ";\n justify-content: center;\n line-height: 1.2;\n max-width: 240px;\n overflow-wrap: break-word;\n padding: ", ";\n position: absolute;\n text-align: left;\n white-space: pre-wrap;\n width: max-content;\n word-break: keep-all;\n z-index: 400;\n"])), function (_a) {
|
|
10
|
+
var theme = _a.theme;
|
|
11
|
+
return theme.ui_cpnt_button_tooltip_base;
|
|
12
|
+
}, function (_a) {
|
|
13
|
+
var theme = _a.theme;
|
|
14
|
+
return theme.spacing.spacingA;
|
|
15
|
+
}, function (_a) {
|
|
16
|
+
var theme = _a.theme;
|
|
17
|
+
return theme.ui_cpnt_textlabel_button_tooltip;
|
|
18
|
+
}, function (_a) {
|
|
19
|
+
var theme = _a.theme;
|
|
20
|
+
return theme.desktopFontSize.caption2;
|
|
21
|
+
}, function (_a) {
|
|
22
|
+
var theme = _a.theme;
|
|
23
|
+
return theme.fontWeight.normal;
|
|
24
|
+
}, function (_a) {
|
|
25
|
+
var theme = _a.theme;
|
|
26
|
+
return "".concat(theme.spacing.spacingA, " ").concat(theme.spacing.spacingB);
|
|
27
|
+
});
|
|
28
|
+
var templateObject_1;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { FillIconNameKeys, LineIconNameKeys } from './icon';
|
|
2
|
+
import type { IconCaseTooltipPositionType } from './systemUI';
|
|
2
3
|
import type { PDSTextType } from './text';
|
|
3
4
|
import type { ForwardedRef } from 'react';
|
|
4
5
|
export type PDSValueOption = {
|
|
@@ -29,7 +30,7 @@ export type BasicButtonGroupValueOption = {
|
|
|
29
30
|
iconFillType?: 'fill' | 'line';
|
|
30
31
|
state?: 'normal' | 'disabled';
|
|
31
32
|
tooltipText?: PDSTextType;
|
|
32
|
-
tooltipPosition?:
|
|
33
|
+
tooltipPosition?: IconCaseTooltipPositionType;
|
|
33
34
|
iconColorTheme?: 'none' | 'red';
|
|
34
35
|
onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;
|
|
35
36
|
onMouseDown?: (e: React.MouseEvent<HTMLButtonElement>) => void;
|
|
@@ -40,6 +41,6 @@ export type SegmentedButtonGroupValueOption = Pick<PDSValueOption, 'value'> & {
|
|
|
40
41
|
state?: 'normal' | 'disabled';
|
|
41
42
|
iconColorTheme?: 'none' | 'red';
|
|
42
43
|
tooltipText?: PDSTextType;
|
|
43
|
-
tooltipPosition?:
|
|
44
|
+
tooltipPosition?: IconCaseTooltipPositionType;
|
|
44
45
|
};
|
|
45
46
|
export type ForwardedRefType<T> = ForwardedRef<T | null>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type SystemUIPositionType = 'top' | 'bottom' | 'start_top' | 'start_bottom' | 'end_top' | 'end_bottom' | 'left_top' | 'left_bottom' | 'center_top' | 'center_bottom' | 'right_top' | 'right_bottom';
|
|
2
|
+
export type IconCaseTooltipPositionType = Exclude<SystemUIPositionType, 'start_top' | 'start_bottom' | 'end_top' | 'end_bottom'>;
|
|
3
|
+
export type TextCaseTooltipPositionType = Exclude<IconCaseTooltipPositionType, 'center_top' | 'center_bottom'>;
|
|
4
|
+
export type SystemUIPositionOffsetType = {
|
|
5
|
+
top: number;
|
|
6
|
+
right: number;
|
|
7
|
+
bottom: number;
|
|
8
|
+
left: number;
|
|
9
|
+
} | null;
|
|
10
|
+
export type SystemUISizeOffsetType = {
|
|
11
|
+
height: number;
|
|
12
|
+
width: number;
|
|
13
|
+
} | null;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { SystemUIPositionOffsetType, SystemUISizeOffsetType } from '../../types/systemUI';
|
|
2
|
+
type Props = {
|
|
3
|
+
sizeOffset: SystemUISizeOffsetType;
|
|
4
|
+
positionOffset: SystemUIPositionOffsetType;
|
|
5
|
+
distance?: number;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* @property {sizeOffset} systemUI의 sizeOffset입니다.
|
|
9
|
+
* @property {positionOffset} 타겟의 positionOffset입니다.
|
|
10
|
+
* @property {distance} systemUI와 타겟간의 거리입니다. 기본값은 8이며 단위는 px입니다.
|
|
11
|
+
*/
|
|
12
|
+
export default function clickTypeSystemUICssGenerator({ sizeOffset, positionOffset, distance }: Props): string;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/**
|
|
4
|
+
* @property {sizeOffset} systemUI의 sizeOffset입니다.
|
|
5
|
+
* @property {positionOffset} 타겟의 positionOffset입니다.
|
|
6
|
+
* @property {distance} systemUI와 타겟간의 거리입니다. 기본값은 8이며 단위는 px입니다.
|
|
7
|
+
*/
|
|
8
|
+
function clickTypeSystemUICssGenerator(_a) {
|
|
9
|
+
var sizeOffset = _a.sizeOffset, positionOffset = _a.positionOffset, _b = _a.distance, distance = _b === void 0 ? 8 : _b;
|
|
10
|
+
if (!sizeOffset || !positionOffset) {
|
|
11
|
+
return '';
|
|
12
|
+
}
|
|
13
|
+
var height = sizeOffset.height;
|
|
14
|
+
var left = positionOffset.left, bottom = positionOffset.bottom, top = positionOffset.top;
|
|
15
|
+
var bottomDirectionCssValueByPx = bottom + distance;
|
|
16
|
+
var topDirectionCssValueByPx = top - distance - height;
|
|
17
|
+
var isOverBottom = window.innerHeight < bottomDirectionCssValueByPx + height;
|
|
18
|
+
return "left: ".concat(left, "px; top: ").concat(isOverBottom ? topDirectionCssValueByPx : bottomDirectionCssValueByPx, "px;");
|
|
19
|
+
}
|
|
20
|
+
exports.default = clickTypeSystemUICssGenerator;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { SystemUIPositionOffsetType, SystemUISizeOffsetType, SystemUIPositionType } from '../../types/systemUI';
|
|
2
|
+
type Props = {
|
|
3
|
+
baseSize: number;
|
|
4
|
+
sizeOffset: SystemUISizeOffsetType;
|
|
5
|
+
positionOffset: SystemUIPositionOffsetType;
|
|
6
|
+
systemUIPosition: SystemUIPositionType;
|
|
7
|
+
distance?: number;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* @property {baseSize} 타겟의 사이즈입니다.
|
|
11
|
+
* @property {sizeOffset} systemUI의 sizeOffset입니다.
|
|
12
|
+
* @property {positionOffset} 타겟의 positionOffset입니다.
|
|
13
|
+
* @property {systemUIPosition} systemUI의 위치를 결정합니다.
|
|
14
|
+
* @property {distance} systemUI가 화면의 벗어날 경우에 조정되는 position이 가질 화면 limit과의 간격값입니다. 기본값은 8이며 단위는 px입니다.
|
|
15
|
+
*/
|
|
16
|
+
export default function hoverTypeSystemUICssGenerator({ baseSize, sizeOffset, positionOffset, systemUIPosition, distance }: Props): string;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/**
|
|
4
|
+
* @property {baseSize} 타겟의 사이즈입니다.
|
|
5
|
+
* @property {sizeOffset} systemUI의 sizeOffset입니다.
|
|
6
|
+
* @property {positionOffset} 타겟의 positionOffset입니다.
|
|
7
|
+
* @property {systemUIPosition} systemUI의 위치를 결정합니다.
|
|
8
|
+
* @property {distance} systemUI가 화면의 벗어날 경우에 조정되는 position이 가질 화면 limit과의 간격값입니다. 기본값은 8이며 단위는 px입니다.
|
|
9
|
+
*/
|
|
10
|
+
function hoverTypeSystemUICssGenerator(_a) {
|
|
11
|
+
var baseSize = _a.baseSize, sizeOffset = _a.sizeOffset, positionOffset = _a.positionOffset, systemUIPosition = _a.systemUIPosition, _b = _a.distance, distance = _b === void 0 ? 8 : _b;
|
|
12
|
+
if (!sizeOffset || !positionOffset) {
|
|
13
|
+
return '';
|
|
14
|
+
}
|
|
15
|
+
var end = positionOffset.left, bottom = positionOffset.bottom, top = positionOffset.top;
|
|
16
|
+
var width = sizeOffset.width, height = sizeOffset.height;
|
|
17
|
+
var centerSpotCssValueByPx = end - (width - baseSize) / 2; // 'center'의 위치 값 -> 자신의 left 위치 - (아이콘 버튼과의 길이차 / 2)
|
|
18
|
+
var overEndLimitCssValueByPx = end - width + baseSize; // 자신의 'left'에서 자기 자신의 'width'만큼 돌아온 뒤 버튼의 크기만큼 더해주어 끝선을 맞춥니다.
|
|
19
|
+
var overBottomLimitCssValueByPx = bottom + distance;
|
|
20
|
+
var overTopLimitCssValueByPx = top - height - distance;
|
|
21
|
+
var isOverEndLimit = overEndLimitCssValueByPx < 0;
|
|
22
|
+
var isOverEndLimitWhenCenterPosition = centerSpotCssValueByPx < 0;
|
|
23
|
+
var isOverStartLimit = window.innerWidth < end + width;
|
|
24
|
+
var isOverBottomLimit = window.innerHeight < overBottomLimitCssValueByPx + height;
|
|
25
|
+
var isOverTopLimit = overTopLimitCssValueByPx < 0;
|
|
26
|
+
var endDirectionCssProp = "left: ".concat(isOverEndLimit ? distance : overEndLimitCssValueByPx, "px;");
|
|
27
|
+
var startDirectionCssProp = isOverStartLimit
|
|
28
|
+
? "right: ".concat(distance, "px;")
|
|
29
|
+
: "left: ".concat(isOverStartLimit ? distance : end, "px;");
|
|
30
|
+
var bottomDirectionCssProp = isOverBottomLimit
|
|
31
|
+
? "bottom: ".concat(distance, "px;")
|
|
32
|
+
: "top: ".concat(overBottomLimitCssValueByPx, "px;");
|
|
33
|
+
var topDirectionCssProp = "top: ".concat(isOverTopLimit ? distance : overTopLimitCssValueByPx, "px;");
|
|
34
|
+
var centerCssPropGenerator = function () {
|
|
35
|
+
if (!isOverEndLimitWhenCenterPosition && !isOverStartLimit) {
|
|
36
|
+
return "left: ".concat(centerSpotCssValueByPx, "px;");
|
|
37
|
+
}
|
|
38
|
+
if (isOverEndLimitWhenCenterPosition) {
|
|
39
|
+
return "left: ".concat(distance, "px;");
|
|
40
|
+
}
|
|
41
|
+
if (isOverStartLimit) {
|
|
42
|
+
return "right: ".concat(distance, "px;");
|
|
43
|
+
}
|
|
44
|
+
return '';
|
|
45
|
+
};
|
|
46
|
+
switch (systemUIPosition) {
|
|
47
|
+
case 'top':
|
|
48
|
+
return "".concat(topDirectionCssProp);
|
|
49
|
+
case 'bottom':
|
|
50
|
+
return "".concat(bottomDirectionCssProp);
|
|
51
|
+
case 'end_top':
|
|
52
|
+
case 'left_top':
|
|
53
|
+
return "".concat(endDirectionCssProp, " ").concat(topDirectionCssProp);
|
|
54
|
+
case 'end_bottom':
|
|
55
|
+
case 'left_bottom':
|
|
56
|
+
return "".concat(endDirectionCssProp, " ").concat(bottomDirectionCssProp);
|
|
57
|
+
case 'center_top':
|
|
58
|
+
return "".concat(centerCssPropGenerator(), " ").concat(topDirectionCssProp);
|
|
59
|
+
case 'center_bottom':
|
|
60
|
+
return "".concat(centerCssPropGenerator(), " ").concat(bottomDirectionCssProp);
|
|
61
|
+
case 'start_top':
|
|
62
|
+
case 'right_top':
|
|
63
|
+
return "".concat(startDirectionCssProp, " ").concat(topDirectionCssProp);
|
|
64
|
+
case 'start_bottom':
|
|
65
|
+
case 'right_bottom':
|
|
66
|
+
return "".concat(startDirectionCssProp, " ").concat(bottomDirectionCssProp);
|
|
67
|
+
default:
|
|
68
|
+
return '';
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
exports.default = hoverTypeSystemUICssGenerator;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as hoverTypeSystemUICssGenerator } from './hoverTypeSystemUICssGenerator';
|
|
@@ -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.hoverTypeSystemUICssGenerator = void 0;
|
|
7
|
+
var hoverTypeSystemUICssGenerator_1 = require("./hoverTypeSystemUICssGenerator");
|
|
8
|
+
Object.defineProperty(exports, "hoverTypeSystemUICssGenerator", { enumerable: true, get: function () { return __importDefault(hoverTypeSystemUICssGenerator_1).default; } });
|
|
@@ -40,6 +40,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
40
40
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
41
|
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
42
42
|
var react_1 = require("react");
|
|
43
|
+
var react_dom_1 = require("react-dom");
|
|
44
|
+
var systemUI_1 = require("../../../common/styles/systemUI");
|
|
45
|
+
var SystemUIPositionGenerator_1 = require("../../../common/utils/SystemUIPositionGenerator");
|
|
43
46
|
var components_1 = require("../../../hybrid/components");
|
|
44
47
|
var styled_components_1 = __importStar(require("styled-components"));
|
|
45
48
|
var TextLabel_1 = require("../TextLabel");
|
|
@@ -47,6 +50,39 @@ var constants_1 = require("./constants");
|
|
|
47
50
|
function BasicButtonGroup(_a) {
|
|
48
51
|
var _b = _a.size, size = _b === void 0 ? 'medium' : _b, valueArray = _a.valueArray, _c = _a.state, state = _c === void 0 ? 'normal' : _c;
|
|
49
52
|
var _d = (0, react_1.useState)(null), hoveredButtonIndex = _d[0], setHoveredButtonIndex = _d[1];
|
|
53
|
+
var _e = (0, react_1.useState)(null), tooltipSizeOffset = _e[0], setTooltipSizeOffset = _e[1];
|
|
54
|
+
var _f = (0, react_1.useState)(null), tooltipPositionOffset = _f[0], setTooltipPositionOffset = _f[1];
|
|
55
|
+
var tooltipRef = (0, react_1.useRef)(null);
|
|
56
|
+
var tooltipPositionTargetRef = (0, react_1.useRef)(null);
|
|
57
|
+
/**
|
|
58
|
+
* @when : hoveredButtonIndex 변경되었을 때
|
|
59
|
+
* @expected : tooltipPositionTargetRef, tooltipRef 의 위치를 업데이트합니다.
|
|
60
|
+
* @clear :
|
|
61
|
+
*/
|
|
62
|
+
(0, react_1.useEffect)(function () {
|
|
63
|
+
if (hoveredButtonIndex === null) {
|
|
64
|
+
setTooltipSizeOffset(null);
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
if (tooltipPositionTargetRef.current) {
|
|
68
|
+
var _a = tooltipPositionTargetRef.current.getBoundingClientRect(), top_1 = _a.top, right = _a.right, left = _a.left, bottom = _a.bottom;
|
|
69
|
+
var countFromLeft = hoveredButtonIndex;
|
|
70
|
+
var countFromRight = valueArray.length - (hoveredButtonIndex + 1);
|
|
71
|
+
var itemSizeWithGap = constants_1.ICON_BUTTON_SIZE[size] + 4;
|
|
72
|
+
setTooltipPositionOffset({
|
|
73
|
+
top: top_1 + window.scrollY,
|
|
74
|
+
right: right + window.scrollX - itemSizeWithGap * countFromRight,
|
|
75
|
+
bottom: bottom + window.scrollY,
|
|
76
|
+
left: left + window.scrollX + itemSizeWithGap * countFromLeft
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
if (tooltipRef.current) {
|
|
80
|
+
setTooltipSizeOffset({
|
|
81
|
+
height: tooltipRef.current.offsetHeight,
|
|
82
|
+
width: tooltipRef.current.offsetWidth
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
}, [hoveredButtonIndex]);
|
|
50
86
|
var getColorKey = function (buttonState, iconColorTheme) {
|
|
51
87
|
if (state === 'disabled' || buttonState === 'disabled') {
|
|
52
88
|
return 'ui_cpnt_button_icon_disabled';
|
|
@@ -56,9 +92,20 @@ function BasicButtonGroup(_a) {
|
|
|
56
92
|
}
|
|
57
93
|
return 'ui_cpnt_button_icon_enabled';
|
|
58
94
|
};
|
|
59
|
-
return ((0, jsx_runtime_1.jsx)(S_BasicButtonGroup, __assign({ "x-pds-name": "BasicButtonGroup", "x-pds-element-type": "component", "x-pds-device-type": "desktop" }, { children: valueArray.map(function (_a, index) {
|
|
60
|
-
var iconName = _a.iconName, _b = _a.iconFillType, iconFillType = _b === void 0 ? 'line' : _b, _c = _a.state, buttonState = _c === void 0 ? 'normal' : _c, onClick = _a.onClick, onMouseDown = _a.onMouseDown, tooltipText = _a.tooltipText, _d = _a.tooltipPosition, tooltipPosition = _d === void 0 ? '
|
|
61
|
-
|
|
95
|
+
return ((0, jsx_runtime_1.jsx)(S_BasicButtonGroup, __assign({ "x-pds-name": "BasicButtonGroup", "x-pds-element-type": "component", "x-pds-device-type": "desktop", ref: tooltipPositionTargetRef }, { children: valueArray.map(function (_a, index) {
|
|
96
|
+
var iconName = _a.iconName, _b = _a.iconFillType, iconFillType = _b === void 0 ? 'line' : _b, _c = _a.state, buttonState = _c === void 0 ? 'normal' : _c, onClick = _a.onClick, onMouseDown = _a.onMouseDown, tooltipText = _a.tooltipText, _d = _a.tooltipPosition, tooltipPosition = _d === void 0 ? 'bottom' : _d, _e = _a.iconColorTheme, iconColorTheme = _e === void 0 ? 'none' : _e;
|
|
97
|
+
var tooltipPositionCss = (0, SystemUIPositionGenerator_1.hoverTypeSystemUICssGenerator)({
|
|
98
|
+
baseSize: constants_1.ICON_BUTTON_SIZE[size],
|
|
99
|
+
sizeOffset: tooltipSizeOffset,
|
|
100
|
+
positionOffset: tooltipPositionOffset,
|
|
101
|
+
systemUIPosition: tooltipPosition.includes('_')
|
|
102
|
+
? tooltipPosition
|
|
103
|
+
: "center_".concat(tooltipPosition)
|
|
104
|
+
});
|
|
105
|
+
var isHoveredButton = index === hoveredButtonIndex;
|
|
106
|
+
return ((0, jsx_runtime_1.jsxs)(S_BasicButton, __assign({ size: size, onClick: function (e) { return onClick && onClick(e); }, onMouseDown: function (e) { return onMouseDown && onMouseDown(e); }, onPointerEnter: function () { return setHoveredButtonIndex(index); }, onPointerLeave: function () { return setHoveredButtonIndex(null); }, disabled: state === 'disabled' || buttonState === 'disabled' }, { children: [(0, jsx_runtime_1.jsx)(components_1.Icon, { iconName: iconName, size: size === 'small' ? 20 : 24, fillType: iconFillType, colorKey: getColorKey(buttonState, iconColorTheme) }), tooltipText &&
|
|
107
|
+
isHoveredButton &&
|
|
108
|
+
(0, react_dom_1.createPortal)((0, jsx_runtime_1.jsx)(S_TooltipWrapper, __assign({ className: "TooltipWrapper", ref: tooltipRef, tooltipPositionCss: tooltipPositionCss, size: size }, { children: (0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { text: tooltipText, colorOverride: "ui_cpnt_textlabel_button_tooltip", styleTheme: "caption2Regular", colorTheme: "sysTextSecondary" }) })), document.body)] }), iconName + index));
|
|
62
109
|
}) })));
|
|
63
110
|
}
|
|
64
111
|
var S_BasicButtonGroup = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n align-items: center;\n display: flex;\n width: max-content;\n\n & > button:not(:last-child) {\n margin-right: ", ";\n }\n"], ["\n align-items: center;\n display: flex;\n width: max-content;\n\n & > button:not(:last-child) {\n margin-right: ", ";\n }\n"])), function (_a) {
|
|
@@ -84,44 +131,9 @@ var S_BasicButton = styled_components_1.default.button(templateObject_5 || (temp
|
|
|
84
131
|
var theme = _a.theme;
|
|
85
132
|
return theme.ui_cpnt_basicbuttongroup_base_disabled;
|
|
86
133
|
});
|
|
87
|
-
var
|
|
88
|
-
var
|
|
89
|
-
return
|
|
90
|
-
{
|
|
91
|
-
large: constants_1.TOOLTIP_POSITION_SPACING.large,
|
|
92
|
-
medium: constants_1.TOOLTIP_POSITION_SPACING.medium,
|
|
93
|
-
small: constants_1.TOOLTIP_POSITION_SPACING.small
|
|
94
|
-
}[size];
|
|
95
|
-
});
|
|
96
|
-
var tooltipLeftTop = (0, styled_components_1.css)(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n bottom: ", ";\n right: 0;\n"], ["\n bottom: ", ";\n right: 0;\n"])), tooltipPositionSpacing);
|
|
97
|
-
var tooltipLeftBottom = (0, styled_components_1.css)(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n right: 0;\n top: ", ";\n"], ["\n right: 0;\n top: ", ";\n"])), tooltipPositionSpacing);
|
|
98
|
-
var tooltipCenterTop = (0, styled_components_1.css)(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n bottom: ", ";\n"], ["\n bottom: ", ";\n"])), tooltipPositionSpacing);
|
|
99
|
-
var tooltipCenterBottom = (0, styled_components_1.css)(templateObject_10 || (templateObject_10 = __makeTemplateObject(["\n top: ", ";\n"], ["\n top: ", ";\n"])), tooltipPositionSpacing);
|
|
100
|
-
var tooltipRightTop = (0, styled_components_1.css)(templateObject_11 || (templateObject_11 = __makeTemplateObject(["\n bottom: ", ";\n left: 0;\n"], ["\n bottom: ", ";\n left: 0;\n"])), tooltipPositionSpacing);
|
|
101
|
-
var tooltipRightBottom = (0, styled_components_1.css)(templateObject_12 || (templateObject_12 = __makeTemplateObject(["\n left: 0;\n top: ", ";\n"], ["\n left: 0;\n top: ", ";\n"])), tooltipPositionSpacing);
|
|
102
|
-
var S_TooltipWrapper = styled_components_1.default.div(templateObject_13 || (templateObject_13 = __makeTemplateObject(["\n align-items: center;\n background-color: ", ";\n border-radius: ", ";\n box-sizing: border-box;\n display: flex;\n justify-content: center;\n padding: ", ";\n position: absolute;\n width: max-content;\n z-index: 400;\n\n ", ";\n\n ", "\n"], ["\n align-items: center;\n background-color: ", ";\n border-radius: ", ";\n box-sizing: border-box;\n display: flex;\n justify-content: center;\n padding: ", ";\n position: absolute;\n width: max-content;\n z-index: 400;\n\n ", ";\n\n ", "\n"])), function (_a) {
|
|
103
|
-
var theme = _a.theme;
|
|
104
|
-
return theme.ui_cpnt_button_tooltip_base;
|
|
105
|
-
}, function (_a) {
|
|
106
|
-
var theme = _a.theme;
|
|
107
|
-
return theme.spacing.spacingA;
|
|
108
|
-
}, function (_a) {
|
|
109
|
-
var theme = _a.theme;
|
|
110
|
-
return "".concat(theme.spacing.spacingA, " ").concat(theme.spacing.spacingB);
|
|
111
|
-
}, function (_a) {
|
|
112
|
-
var isTooltipOpen = _a.isTooltipOpen;
|
|
113
|
-
return !isTooltipOpen && 'display: none';
|
|
114
|
-
}, function (_a) {
|
|
115
|
-
var tooltipPosition = _a.tooltipPosition;
|
|
116
|
-
return tooltipPosition &&
|
|
117
|
-
{
|
|
118
|
-
left_top: tooltipLeftTop,
|
|
119
|
-
left_bottom: tooltipLeftBottom,
|
|
120
|
-
center_top: tooltipCenterTop,
|
|
121
|
-
center_bottom: tooltipCenterBottom,
|
|
122
|
-
right_top: tooltipRightTop,
|
|
123
|
-
right_bottom: tooltipRightBottom
|
|
124
|
-
}[tooltipPosition];
|
|
134
|
+
var S_TooltipWrapper = styled_components_1.default.div(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n ", "\n\n ", ";\n"], ["\n ", "\n\n ", ";\n"])), systemUI_1.TooltipWrapperStyle, function (_a) {
|
|
135
|
+
var tooltipPositionCss = _a.tooltipPositionCss;
|
|
136
|
+
return tooltipPositionCss;
|
|
125
137
|
});
|
|
126
138
|
exports.default = BasicButtonGroup;
|
|
127
|
-
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6
|
|
139
|
+
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6;
|
|
@@ -1,15 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.ICON_BUTTON_SIZE = void 0;
|
|
4
4
|
exports.ICON_BUTTON_SIZE = {
|
|
5
5
|
large: 48,
|
|
6
6
|
medium: 40,
|
|
7
7
|
small: 32
|
|
8
8
|
};
|
|
9
|
-
exports.ICON_BUTTON_TOOLTIP_SPACING = 8;
|
|
10
|
-
// NOTE - iconSize 크기에 따라 위치를 이동시켜주고, iconButtonSize에 간격까지 8px을 추가해준 값입니다.(IconButton과 tooltip의 간격)
|
|
11
|
-
exports.TOOLTIP_POSITION_SPACING = {
|
|
12
|
-
large: "calc(".concat(exports.ICON_BUTTON_SIZE.large, "px + ").concat(exports.ICON_BUTTON_TOOLTIP_SPACING, "px)"),
|
|
13
|
-
medium: "calc(".concat(exports.ICON_BUTTON_SIZE.medium, "px + ").concat(exports.ICON_BUTTON_TOOLTIP_SPACING, "px)"),
|
|
14
|
-
small: "calc(".concat(exports.ICON_BUTTON_SIZE.small, "px + ").concat(exports.ICON_BUTTON_TOOLTIP_SPACING, "px)")
|
|
15
|
-
};
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { PlacementTypes } from './Popup';
|
|
3
2
|
import type { PDSTextType, PDSValueOption } from '../../../common';
|
|
4
3
|
type Props = {
|
|
5
4
|
titleText?: PDSTextType;
|
|
@@ -9,9 +8,8 @@ type Props = {
|
|
|
9
8
|
hoverMode?: 'none' | 'use';
|
|
10
9
|
contextMenuOptionArray?: PDSValueOption[];
|
|
11
10
|
contextMenuState?: 'normal' | 'disabled';
|
|
12
|
-
colorTheme?: 'seller' | 'seller_transparent' | 'subscriber' | 'subscriber_transparent' | 'secondary_transparent_grey' | 'white_transparent_grey';
|
|
13
|
-
contextMenuPosition?: PlacementTypes;
|
|
11
|
+
colorTheme?: 'seller' | 'seller_transparent' | 'subscriber' | 'subscriber_transparent' | 'secondary_transparent_grey' | 'white_transparent_grey' | 'brand_primary_solid' | 'brand_primary_translucent' | 'secondary_transparent' | 'white_transparent';
|
|
14
12
|
onClickContextMenuItem?: (option: PDSValueOption) => void;
|
|
15
13
|
};
|
|
16
|
-
declare function BasicChatListItem({ titleText, contentText, leftImageMode, imageSrc, hoverMode, contextMenuOptionArray,
|
|
14
|
+
declare function BasicChatListItem({ titleText, contentText, leftImageMode, imageSrc, hoverMode, contextMenuOptionArray, onClickContextMenuItem, contextMenuState, colorTheme }: Props): JSX.Element;
|
|
17
15
|
export default BasicChatListItem;
|
|
@@ -33,7 +33,11 @@ var titleTextColors = {
|
|
|
33
33
|
subscriber: 'sysTextSecondary',
|
|
34
34
|
subscriber_transparent: 'sysTextWhite',
|
|
35
35
|
secondary_transparent_grey: 'sysTextSecondary',
|
|
36
|
-
white_transparent_grey: 'sysTextWhite'
|
|
36
|
+
white_transparent_grey: 'sysTextWhite',
|
|
37
|
+
brand_primary_solid: 'usrTextBrandPrimary',
|
|
38
|
+
brand_primary_translucent: 'usrTextBrandPrimary',
|
|
39
|
+
secondary_transparent: 'sysTextSecondary',
|
|
40
|
+
white_transparent: 'sysTextWhite'
|
|
37
41
|
};
|
|
38
42
|
var backgroundColorTheme = {
|
|
39
43
|
seller: 'ui_cpnt_list_base_area_seller',
|
|
@@ -41,11 +45,15 @@ var backgroundColorTheme = {
|
|
|
41
45
|
subscriber: 'ui_cpnt_list_base_area',
|
|
42
46
|
subscriber_transparent: 'ui_cpnt_list_base_area_transparent',
|
|
43
47
|
secondary_transparent_grey: 'ui_cpnt_list_base_area',
|
|
44
|
-
white_transparent_grey: 'ui_cpnt_list_base_area_transparent'
|
|
48
|
+
white_transparent_grey: 'ui_cpnt_list_base_area_transparent',
|
|
49
|
+
brand_primary_solid: 'ui_cpnt_list_base_area_seller',
|
|
50
|
+
brand_primary_translucent: 'ui_cpnt_list_base_area_transparent_seller',
|
|
51
|
+
secondary_transparent: 'ui_cpnt_list_base_area',
|
|
52
|
+
white_transparent: 'ui_cpnt_list_base_area_transparent'
|
|
45
53
|
};
|
|
46
54
|
function BasicChatListItem(_a) {
|
|
47
|
-
var titleText = _a.titleText, contentText = _a.contentText, _b = _a.leftImageMode, leftImageMode = _b === void 0 ? 'none' : _b, imageSrc = _a.imageSrc, _c = _a.hoverMode, hoverMode = _c === void 0 ? 'use' : _c, contextMenuOptionArray = _a.contextMenuOptionArray,
|
|
48
|
-
var
|
|
55
|
+
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 ? 'secondary_transparent' : _e;
|
|
56
|
+
var _f = (0, react_1.useState)(false), isContextMenuOpen = _f[0], setIsContextMenuOpen = _f[1];
|
|
49
57
|
var contextMenuRef = (0, react_1.useRef)(null);
|
|
50
58
|
var chatBody = document.querySelector('#chatMessageBox');
|
|
51
59
|
var chatBodyRect = chatBody === null || chatBody === void 0 ? void 0 : chatBody.getBoundingClientRect();
|
|
@@ -79,6 +87,7 @@ function BasicChatListItem(_a) {
|
|
|
79
87
|
var contentTextColorOverride;
|
|
80
88
|
var iconColorKey;
|
|
81
89
|
switch (colorTheme) {
|
|
90
|
+
case 'white_transparent':
|
|
82
91
|
case 'subscriber_transparent': {
|
|
83
92
|
contentTextColorTheme = 'sysTextWhite';
|
|
84
93
|
iconColorKey = 'ui_cpnt_button_icon_white';
|
|
@@ -98,7 +107,7 @@ function BasicChatListItem(_a) {
|
|
|
98
107
|
iconColorKey = 'ui_cpnt_button_icon_enabled';
|
|
99
108
|
}
|
|
100
109
|
}
|
|
101
|
-
return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsxs)(S_BasicChatListItem, __assign({ "x-pds-name": "BasicChatListItem", "x-pds-element-type": "component", "x-pds-device-type": "desktop", colorTheme: colorTheme }, { children: [leftImageMode === 'use' && ((0, jsx_runtime_1.jsx)(S_ImageViewWrapper, { children: (0, jsx_runtime_1.jsx)(hybrid_1.ImageView, { shapeType: "circular", ratio: "1_1", scaleType: "cover", src: imageSrc, width: "responsive" }) })), (0, jsx_runtime_1.jsx)(S_TitleTextWrapper, { children: (0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { text: titleText, styleTheme: "caption1Bold", wordBreak: "break_all", colorTheme: titleTextColors[colorTheme] }) }), (0, jsx_runtime_1.jsx)(S_ContentTextWrapper, { children: (0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { text: contentText, styleTheme: "caption1Regular", colorTheme: contentTextColorTheme, colorOverride: contentTextColorOverride, wordBreak: "break_all" }) }), hoverMode === 'use' && ((0, jsx_runtime_1.jsx)(S_SeeMoreButton, __assign({ isContextMenuOpen: isContextMenuOpen, hoverMode: hoverMode, ref: contextMenuRef }, { children: (0, jsx_runtime_1.jsx)(IconButton_1.IconButton, { fillType: "fill", baseSize: "xsmall", iconFillType: "fill", iconSize: 20, iconName: "ic_more", baseColorKey: "ui_cpnt_button_fill_base_transparent", iconColorKey: iconColorKey, onClick: handleMoreButtonClick }) }))), (0, jsx_runtime_1.jsx)(Popup_1.PopupProvider, { children: (0, jsx_runtime_1.jsx)(Popup_1.Popup, __assign({ targetRef: contextMenuRef, isOpen: isContextMenuOpen, placement:
|
|
110
|
+
return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsxs)(S_BasicChatListItem, __assign({ "x-pds-name": "BasicChatListItem", "x-pds-element-type": "component", "x-pds-device-type": "desktop", colorTheme: colorTheme }, { children: [leftImageMode === 'use' && ((0, jsx_runtime_1.jsx)(S_ImageViewWrapper, { children: (0, jsx_runtime_1.jsx)(hybrid_1.ImageView, { shapeType: "circular", ratio: "1_1", scaleType: "cover", src: imageSrc, width: "responsive" }) })), (0, jsx_runtime_1.jsx)(S_TitleTextWrapper, { children: (0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { text: titleText, styleTheme: "caption1Bold", wordBreak: "break_all", colorTheme: titleTextColors[colorTheme] }) }), (0, jsx_runtime_1.jsx)(S_ContentTextWrapper, { children: (0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { text: contentText, styleTheme: "caption1Regular", colorTheme: contentTextColorTheme, colorOverride: contentTextColorOverride, wordBreak: "break_all" }) }), hoverMode === 'use' && ((0, jsx_runtime_1.jsx)(S_SeeMoreButton, __assign({ isContextMenuOpen: isContextMenuOpen, hoverMode: hoverMode, ref: contextMenuRef }, { children: (0, jsx_runtime_1.jsx)(IconButton_1.IconButton, { fillType: "fill", baseSize: "xsmall", iconFillType: "fill", iconSize: 20, iconName: "ic_more", baseColorKey: "ui_cpnt_button_fill_base_transparent", iconColorKey: iconColorKey, onClick: handleMoreButtonClick }) }))), (0, jsx_runtime_1.jsx)(Popup_1.PopupProvider, { children: (0, jsx_runtime_1.jsx)(Popup_1.Popup, __assign({ targetRef: contextMenuRef, isOpen: isContextMenuOpen, placement: "top-end", wrapperHeight: chatBodyRect === null || chatBodyRect === void 0 ? void 0 : chatBodyRect.height, onClickOutside: function () { return setIsContextMenuOpen(false); } }, { children: (0, jsx_runtime_1.jsx)("div", __assign({ onMouseLeave: function () { return setIsContextMenuOpen(false); } }, { children: (0, jsx_runtime_1.jsx)(ContextMenu_1.ContextMenu, { children: contextMenuOptionArray === null || contextMenuOptionArray === void 0 ? void 0 : contextMenuOptionArray.map(function (el) { return ((0, jsx_runtime_1.jsx)(ContextMenuItem_1.ContextMenuItem, { option: el, onClick: handleContextMenuItemClick, state: contextMenuState }, el.value)); }) }) })) })) })] })) }));
|
|
102
111
|
}
|
|
103
112
|
var S_BasicChatListItem = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n background-color: ", ";\n display: flex;\n height: fit-content;\n max-width: 100%;\n min-height: 24px;\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n padding-top: ", ";\n"], ["\n background-color: ", ";\n display: flex;\n height: fit-content;\n max-width: 100%;\n min-height: 24px;\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n padding-top: ", ";\n"])), function (_a) {
|
|
104
113
|
var colorTheme = _a.colorTheme, theme = _a.theme;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { PlacementTypes } from './Popup';
|
|
3
2
|
import type { PDSTextType, PDSValueOption } from '../../../common';
|
|
4
3
|
type ColorThemeType = 'grey' | 'brand_primary' | 'translucent_white' | 'translucent_black';
|
|
5
4
|
export type ChatBubbleListItemProps = {
|
|
@@ -10,11 +9,12 @@ export type ChatBubbleListItemProps = {
|
|
|
10
9
|
colorTheme?: ColorThemeType;
|
|
11
10
|
timeMode?: 'none' | 'use';
|
|
12
11
|
timeText?: PDSTextType;
|
|
12
|
+
countMode?: 'none' | 'use';
|
|
13
|
+
countText?: PDSTextType;
|
|
13
14
|
contextMenuOptionArray?: PDSValueOption[];
|
|
14
15
|
contextMenuState?: 'normal' | 'disabled';
|
|
15
|
-
contextMenuPosition?: PlacementTypes;
|
|
16
16
|
children?: React.ReactNode;
|
|
17
17
|
onClickContextMenuItem?: (option: PDSValueOption) => void;
|
|
18
18
|
};
|
|
19
|
-
declare function ChatBubbleListItem({ titleText, imageSrc, hoverMode, styleTheme, colorTheme, timeMode, timeText, contextMenuOptionArray, contextMenuState,
|
|
19
|
+
declare function ChatBubbleListItem({ titleText, imageSrc, hoverMode, styleTheme, colorTheme, timeMode, timeText, countMode, countText, contextMenuOptionArray, contextMenuState, children, onClickContextMenuItem }: ChatBubbleListItemProps): JSX.Element;
|
|
20
20
|
export default ChatBubbleListItem;
|