@antscorp/antsomi-ui 1.3.5-beta.2 → 1.3.5-beta.21
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/es/assets/css/main.scss +0 -2
- package/es/assets/images/background/skeleton-background.png +0 -0
- package/es/assets/images/skeleton_bg.png +0 -0
- package/es/assets/svg/mobile-frame.svg +3 -0
- package/es/components/atoms/Spin/Spin.js +2 -2
- package/es/components/common/ConfigProvider/ConfigProvider.js +8 -4
- package/es/components/common/ConfigProvider/GlobalStyle.js +85 -16
- package/es/components/molecules/CalendarSelection/CalendarSelection.d.ts +3 -0
- package/es/components/molecules/CalendarSelection/CalendarSelection.js +45 -0
- package/es/components/molecules/CalendarSelection/actions.d.ts +55 -0
- package/es/components/molecules/CalendarSelection/actions.js +39 -0
- package/es/components/molecules/CalendarSelection/components/AutoUpdateTo/AutoUpdateTo.d.ts +7 -0
- package/es/components/molecules/CalendarSelection/components/AutoUpdateTo/AutoUpdateTo.js +24 -0
- package/es/components/molecules/CalendarSelection/components/AutoUpdateTo/index.d.ts +1 -0
- package/es/components/molecules/CalendarSelection/components/AutoUpdateTo/index.js +1 -0
- package/es/components/molecules/CalendarSelection/components/AutoUpdateTo/styled.d.ts +1 -0
- package/es/components/molecules/CalendarSelection/components/AutoUpdateTo/styled.js +10 -0
- package/es/components/molecules/CalendarSelection/components/CustomPicker/CustomPicker.d.ts +3 -0
- package/es/components/molecules/CalendarSelection/components/CustomPicker/CustomPicker.js +96 -0
- package/es/components/molecules/CalendarSelection/components/CustomPicker/index.d.ts +1 -0
- package/es/components/molecules/CalendarSelection/components/CustomPicker/index.js +1 -0
- package/es/components/molecules/CalendarSelection/components/CustomPicker/styled.d.ts +6 -0
- package/es/components/molecules/CalendarSelection/components/CustomPicker/styled.js +152 -0
- package/es/components/molecules/CalendarSelection/components/CustomPicker/types.d.ts +1 -0
- package/es/components/molecules/CalendarSelection/components/Footer/Footer.d.ts +2 -0
- package/es/components/molecules/CalendarSelection/components/Footer/Footer.js +11 -0
- package/es/components/molecules/CalendarSelection/components/Footer/index.d.ts +1 -0
- package/es/components/molecules/CalendarSelection/components/Footer/index.js +1 -0
- package/es/components/molecules/CalendarSelection/components/Footer/styled.d.ts +1 -0
- package/es/components/molecules/CalendarSelection/components/Footer/styled.js +6 -0
- package/es/components/molecules/CalendarSelection/components/RangePicker/RangePicker.d.ts +5 -0
- package/es/components/molecules/CalendarSelection/components/RangePicker/RangePicker.js +4 -0
- package/es/components/molecules/CalendarSelection/components/RangePicker/index.d.ts +1 -0
- package/es/components/molecules/CalendarSelection/components/RangePicker/index.js +1 -0
- package/es/components/molecules/CalendarSelection/components/RangePicker/styled.d.ts +5 -0
- package/es/components/molecules/CalendarSelection/components/RangePicker/styled.js +13 -0
- package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/RangeSelectOptions.d.ts +3 -0
- package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/RangeSelectOptions.js +23 -0
- package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/components/NumOfDaysRanges/NumOfDaysRanges.d.ts +2 -0
- package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/components/NumOfDaysRanges/NumOfDaysRanges.js +41 -0
- package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/components/NumOfDaysRanges/index.d.ts +1 -0
- package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/components/NumOfDaysRanges/index.js +1 -0
- package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/components/Option/Option.d.ts +11 -0
- package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/components/Option/Option.js +40 -0
- package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/components/Option/index.d.ts +1 -0
- package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/components/Option/index.js +1 -0
- package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/components/Option/styled.d.ts +1 -0
- package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/components/Option/styled.js +29 -0
- package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/components/index.d.ts +2 -0
- package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/components/index.js +2 -0
- package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/index.d.ts +1 -0
- package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/index.js +1 -0
- package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/styled.d.ts +3 -0
- package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/styled.js +34 -0
- package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/types.d.ts +1 -0
- package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/types.js +1 -0
- package/es/components/molecules/CalendarSelection/components/TimeRangeDisplay/TimeRangeDisplay.d.ts +8 -0
- package/es/components/molecules/CalendarSelection/components/TimeRangeDisplay/TimeRangeDisplay.js +49 -0
- package/es/components/molecules/CalendarSelection/components/TimeRangeDisplay/index.d.ts +2 -0
- package/es/components/molecules/CalendarSelection/components/TimeRangeDisplay/index.js +2 -0
- package/es/components/molecules/CalendarSelection/components/TimeRangeDisplay/styled.d.ts +1 -0
- package/es/components/molecules/CalendarSelection/components/TimeRangeDisplay/styled.js +70 -0
- package/es/components/molecules/CalendarSelection/components/index.d.ts +5 -0
- package/es/components/molecules/CalendarSelection/components/index.js +5 -0
- package/es/components/molecules/CalendarSelection/constants.d.ts +97 -0
- package/es/components/molecules/CalendarSelection/constants.js +183 -0
- package/es/components/molecules/CalendarSelection/context.d.ts +4 -0
- package/es/components/molecules/CalendarSelection/context.js +6 -0
- package/es/components/molecules/CalendarSelection/hooks/index.d.ts +2 -0
- package/es/components/molecules/CalendarSelection/hooks/index.js +2 -0
- package/es/components/molecules/CalendarSelection/hooks/useStateContext.d.ts +4 -0
- package/es/components/molecules/CalendarSelection/hooks/useStateContext.js +13 -0
- package/es/components/molecules/CalendarSelection/hooks/useTriggerOut.d.ts +9 -0
- package/es/components/molecules/CalendarSelection/hooks/useTriggerOut.js +19 -0
- package/es/components/molecules/CalendarSelection/index.d.ts +25 -0
- package/es/components/molecules/CalendarSelection/index.js +6 -0
- package/es/components/molecules/CalendarSelection/reducer.d.ts +3 -0
- package/es/components/molecules/CalendarSelection/reducer.js +121 -0
- package/es/components/molecules/CalendarSelection/styled.d.ts +6 -0
- package/es/components/molecules/CalendarSelection/styled.js +13 -0
- package/es/components/molecules/CalendarSelection/types.d.ts +97 -0
- package/es/components/molecules/CalendarSelection/types.js +1 -0
- package/es/components/molecules/CalendarSelection/utils.d.ts +52 -0
- package/es/components/molecules/CalendarSelection/utils.js +304 -0
- package/es/components/molecules/ColorPicker/CustomPicker/index.js +3 -3
- package/es/components/molecules/ColorPicker/index.d.ts +1 -0
- package/es/components/molecules/ColorPicker/index.js +3 -2
- package/es/components/molecules/DatePicker/components/AdvancedPicker/AdvancedPicker.js +24 -16
- package/es/components/molecules/DatePicker/components/AdvancedPicker/styled.d.ts +5 -0
- package/es/components/molecules/DatePicker/components/AdvancedPicker/styled.js +31 -1
- package/es/components/molecules/DatePicker/components/AdvancedPicker/utils.d.ts +1 -1
- package/es/components/molecules/DatePicker/components/AdvancedRangePicker/AdvancedRangePicker.d.ts +3 -1
- package/es/components/molecules/DatePicker/components/AdvancedRangePicker/AdvancedRangePicker.js +5 -4
- package/es/components/molecules/ModalV2/styled.js +4 -0
- package/es/components/molecules/ResizeGrid/ResizeGrid.js +10 -2
- package/es/components/molecules/ResizeGrid/types.d.ts +1 -0
- package/es/components/molecules/RichMenu/RichMenuBlock/RichMenuBlock.d.ts +1 -0
- package/es/components/molecules/RichMenu/RichMenuBlock/RichMenuBlock.js +2 -2
- package/es/components/molecules/RichMenu/RichMenuMobileView/RichMenuMobileView.d.ts +1 -0
- package/es/components/molecules/RichMenu/RichMenuMobileView/RichMenuMobileView.js +2 -2
- package/es/components/molecules/ShareAccess/components/LayoutContent/LayoutContent.js +2 -2
- package/es/components/molecules/ShareAccess/index.d.ts +2 -3
- package/es/components/molecules/ShareAccess/index.js +2 -3
- package/es/components/molecules/ShareAccess/types.d.ts +1 -0
- package/es/components/molecules/TemplateSaveAs/TemplateSaveAs.d.ts +52 -0
- package/es/components/molecules/TemplateSaveAs/TemplateSaveAs.js +144 -0
- package/es/components/molecules/TemplateSaveAs/TemplateSaveAsModal.d.ts +10 -0
- package/es/components/molecules/TemplateSaveAs/TemplateSaveAsModal.js +38 -0
- package/es/components/molecules/TemplateSaveAs/components/ImageSlider/ImageSlider.d.ts +15 -0
- package/es/components/molecules/TemplateSaveAs/components/ImageSlider/ImageSlider.js +68 -0
- package/es/components/molecules/TemplateSaveAs/components/ImageSlider/index.d.ts +1 -0
- package/es/components/molecules/TemplateSaveAs/components/ImageSlider/index.js +1 -0
- package/es/components/molecules/TemplateSaveAs/components/ImageSlider/styled.d.ts +5 -0
- package/es/components/molecules/TemplateSaveAs/components/ImageSlider/styled.js +175 -0
- package/es/components/molecules/TemplateSaveAs/components/index.d.ts +1 -0
- package/es/components/molecules/TemplateSaveAs/components/index.js +1 -0
- package/es/components/molecules/TemplateSaveAs/index.d.ts +3 -0
- package/es/components/molecules/TemplateSaveAs/index.js +2 -0
- package/es/components/molecules/TemplateSaveAs/styled.d.ts +4 -0
- package/es/components/molecules/TemplateSaveAs/styled.js +70 -0
- package/es/components/molecules/ThumbnailCard/ThumbnailCard.d.ts +3 -0
- package/es/components/molecules/ThumbnailCard/ThumbnailCard.js +72 -0
- package/es/components/molecules/ThumbnailCard/constants.d.ts +3 -0
- package/es/components/molecules/ThumbnailCard/constants.js +3 -0
- package/es/components/molecules/ThumbnailCard/index.d.ts +2 -0
- package/es/components/molecules/ThumbnailCard/index.js +2 -0
- package/es/components/molecules/ThumbnailCard/styled.d.ts +1 -0
- package/es/components/{template/TemplateListing/components/TemplateItem → molecules/ThumbnailCard}/styled.js +14 -7
- package/es/components/molecules/ThumbnailCard/types.d.ts +21 -0
- package/es/components/molecules/ThumbnailCard/types.js +1 -0
- package/es/components/molecules/UploadImage/index.js +1 -1
- package/es/components/molecules/index.d.ts +5 -0
- package/es/components/molecules/index.js +3 -0
- package/es/components/organism/Help/Help.js +23 -1
- package/es/components/organism/Menu/Menu.d.ts +2 -0
- package/es/components/organism/Menu/Menu.js +3 -0
- package/es/components/organism/Menu/index.d.ts +1 -0
- package/es/components/organism/Menu/index.js +3 -0
- package/es/components/organism/PreviewTemplateModal/components/Banner/index.d.ts +3 -0
- package/es/components/organism/PreviewTemplateModal/components/Banner/index.js +12 -0
- package/es/components/organism/PreviewTemplateModal/components/Banner/styled.d.ts +4 -0
- package/es/components/organism/PreviewTemplateModal/components/Banner/styled.js +91 -0
- package/es/components/organism/PreviewTemplateModal/components/Information/index.d.ts +3 -0
- package/es/components/organism/PreviewTemplateModal/components/Information/index.js +29 -0
- package/es/components/organism/PreviewTemplateModal/components/Information/styled.d.ts +2 -0
- package/es/components/organism/PreviewTemplateModal/components/Information/styled.js +41 -0
- package/es/components/organism/PreviewTemplateModal/components/SimilarTemplate/index.d.ts +3 -0
- package/es/components/organism/PreviewTemplateModal/components/SimilarTemplate/index.js +29 -0
- package/es/components/organism/PreviewTemplateModal/components/SimilarTemplate/styled.d.ts +2 -0
- package/es/components/organism/PreviewTemplateModal/components/SimilarTemplate/styled.js +12 -0
- package/es/components/organism/PreviewTemplateModal/components/ThumbnailSlider/index.d.ts +6 -0
- package/es/components/organism/PreviewTemplateModal/components/ThumbnailSlider/index.js +77 -0
- package/es/components/organism/PreviewTemplateModal/components/ThumbnailSlider/styled.d.ts +3 -0
- package/es/components/organism/PreviewTemplateModal/components/ThumbnailSlider/styled.js +62 -0
- package/es/components/organism/PreviewTemplateModal/components/index.d.ts +4 -0
- package/es/components/organism/PreviewTemplateModal/components/index.js +4 -0
- package/es/components/organism/PreviewTemplateModal/constants/dataSample.d.ts +2 -0
- package/es/components/organism/PreviewTemplateModal/constants/dataSample.js +9 -0
- package/es/components/organism/PreviewTemplateModal/constants/defaultProps.d.ts +8 -0
- package/es/components/organism/PreviewTemplateModal/constants/defaultProps.js +11 -0
- package/es/components/organism/PreviewTemplateModal/constants/index.d.ts +3 -0
- package/es/components/organism/PreviewTemplateModal/constants/index.js +3 -0
- package/es/components/organism/PreviewTemplateModal/constants/variables.d.ts +12 -0
- package/es/components/organism/PreviewTemplateModal/constants/variables.js +12 -0
- package/es/components/organism/PreviewTemplateModal/index.d.ts +3 -0
- package/es/components/organism/PreviewTemplateModal/index.js +34 -0
- package/es/components/organism/PreviewTemplateModal/styled.d.ts +4 -0
- package/es/components/organism/PreviewTemplateModal/styled.js +26 -0
- package/es/components/organism/PreviewTemplateModal/types.d.ts +39 -0
- package/es/components/organism/PreviewTemplateModal/types.js +1 -0
- package/es/components/organism/index.d.ts +1 -0
- package/es/components/organism/index.js +1 -0
- package/es/components/template/TemplateListing/Loadable.d.ts +6 -0
- package/es/components/template/TemplateListing/Loadable.js +7 -0
- package/es/components/template/TemplateListing/components/BlankTemplate/index.js +9 -7
- package/es/components/template/TemplateListing/components/BlankTemplate/styled.js +2 -0
- package/es/components/template/TemplateListing/components/CategoryListing/index.js +19 -10
- package/es/components/template/TemplateListing/components/CategoryListing/styled.d.ts +2 -0
- package/es/components/template/TemplateListing/components/CategoryListing/styled.js +44 -7
- package/es/components/template/TemplateListing/components/CategoryListing/types.d.ts +2 -1
- package/es/components/template/TemplateListing/components/Empty/index.d.ts +3 -0
- package/es/components/template/TemplateListing/components/Empty/index.js +18 -0
- package/es/components/template/TemplateListing/components/Empty/styled.d.ts +3 -0
- package/es/components/template/TemplateListing/components/Empty/styled.js +35 -0
- package/es/components/template/TemplateListing/components/index.d.ts +1 -1
- package/es/components/template/TemplateListing/components/index.js +1 -1
- package/es/components/template/TemplateListing/constants/defaultProps.d.ts +8 -4
- package/es/components/template/TemplateListing/constants/defaultProps.js +9 -6
- package/es/components/template/TemplateListing/hooks/index.d.ts +1 -0
- package/es/components/template/TemplateListing/hooks/index.js +1 -0
- package/es/components/template/TemplateListing/hooks/useTemplateListing.d.ts +62 -0
- package/es/components/template/TemplateListing/hooks/useTemplateListing.js +206 -0
- package/es/components/template/TemplateListing/index.js +77 -13
- package/es/components/template/TemplateListing/styled/index.d.ts +2 -0
- package/es/components/template/TemplateListing/styled/index.js +29 -5
- package/es/components/template/TemplateListing/types/BlankTemplate.d.ts +3 -2
- package/es/components/template/TemplateListing/types/CategoryListing.d.ts +5 -2
- package/es/components/template/TemplateListing/types/Empty.d.ts +5 -0
- package/es/components/template/TemplateListing/types/Empty.js +1 -0
- package/es/components/template/TemplateListing/types/TemplateListing.d.ts +20 -9
- package/es/components/template/TemplateListing/types/index.d.ts +0 -1
- package/es/components/template/TemplateListing/types/index.js +0 -1
- package/es/components/template/index.d.ts +2 -1
- package/es/components/template/index.js +5 -1
- package/es/constants/datetime.d.ts +8 -0
- package/es/constants/datetime.js +1594 -0
- package/es/constants/index.d.ts +4 -1
- package/es/constants/index.js +4 -1
- package/es/constants/queries.d.ts +3 -0
- package/es/constants/queries.js +4 -0
- package/es/constants/templateListing.d.ts +58 -0
- package/es/constants/templateListing.js +58 -0
- package/es/hooks/index.d.ts +4 -0
- package/es/hooks/index.js +4 -0
- package/es/hooks/useEffectOnlyOnce.d.ts +2 -0
- package/es/hooks/useEffectOnlyOnce.js +12 -0
- package/es/hooks/useForceUpdate.d.ts +1 -0
- package/es/hooks/useForceUpdate.js +5 -0
- package/es/hooks/useIntersectionObserver.d.ts +57 -0
- package/es/hooks/useIntersectionObserver.js +97 -0
- package/es/hooks/useListingItemResize.d.ts +12 -0
- package/es/hooks/useListingItemResize.js +58 -0
- package/es/hooks/useScrollToEnd.d.ts +1 -0
- package/es/hooks/useScrollToEnd.js +30 -0
- package/es/index.d.ts +2 -0
- package/es/index.js +2 -0
- package/es/locales/en/translation.json +11 -3
- package/es/locales/i18n.d.ts +16 -0
- package/es/locales/translations.d.ts +8 -0
- package/es/locales/vi/translation.json +9 -1
- package/es/models/ObjectTemplate.d.ts +53 -0
- package/es/models/ObjectTemplate.js +80 -0
- package/es/models/TemplateCategory.d.ts +13 -0
- package/es/models/TemplateCategory.js +28 -0
- package/es/queries/TemplateListing/index.d.ts +47 -0
- package/es/queries/TemplateListing/index.js +93 -0
- package/es/queries/index.d.ts +1 -0
- package/es/queries/index.js +1 -0
- package/es/services/TemplateListing/index.d.ts +64 -0
- package/es/services/TemplateListing/index.js +149 -0
- package/es/test.js +62 -11
- package/es/types/index.d.ts +4 -0
- package/es/types/index.js +2 -0
- package/es/types/service.d.ts +22 -0
- package/es/types/service.js +1 -0
- package/es/types/templateListing.d.ts +11 -0
- package/es/types/templateListing.js +1 -0
- package/es/utils/common.d.ts +2 -0
- package/es/utils/common.js +12 -0
- package/package.json +6 -1
- package/es/components/template/TemplateListing/components/TemplateItem/index.d.ts +0 -3
- package/es/components/template/TemplateListing/components/TemplateItem/index.js +0 -53
- package/es/components/template/TemplateListing/components/TemplateItem/styled.d.ts +0 -1
- package/es/components/template/TemplateListing/types/TemplateItem.d.ts +0 -14
- /package/es/components/{template/TemplateListing/types/TemplateItem.js → molecules/CalendarSelection/components/CustomPicker/types.js} +0 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// Libraries
|
|
2
|
+
import React, { memo } from 'react';
|
|
3
|
+
import Icon from '@antscorp/icons';
|
|
4
|
+
// Styled
|
|
5
|
+
import { InformationWrapper } from './styled';
|
|
6
|
+
// Components
|
|
7
|
+
import { Button, Radio, Typography, Flex } from '../../../../atoms';
|
|
8
|
+
// Constants
|
|
9
|
+
import { DEVICE_TYPE } from '../../constants';
|
|
10
|
+
export const Information = memo(props => {
|
|
11
|
+
const { deviceType, itemName = 'Template name', buttonText = 'Use template', description = 'Description show here', categoryListing, showDeviceRadios = true, onButtonClick, onDeviceTypeChange, } = props;
|
|
12
|
+
return (React.createElement(InformationWrapper, { gap: 20, vertical: true },
|
|
13
|
+
React.createElement("div", { style: { flexShrink: 0 }, className: "title" }, itemName),
|
|
14
|
+
React.createElement(Flex, { gap: 20, vertical: true, className: "content-information" },
|
|
15
|
+
React.createElement("div", null, description), categoryListing === null || categoryListing === void 0 ? void 0 :
|
|
16
|
+
categoryListing.map(({ key, label, children }) => (React.createElement("div", { key: key },
|
|
17
|
+
React.createElement("div", null,
|
|
18
|
+
label,
|
|
19
|
+
":"),
|
|
20
|
+
React.createElement("div", { style: { fontWeight: 'bold' } }, children === null || children === void 0 ? void 0 : children.map(({ label }) => label).join(', ')))))),
|
|
21
|
+
showDeviceRadios && (React.createElement(Radio.Group, { options: Object.values(DEVICE_TYPE).map(({ value, label, icon }) => ({
|
|
22
|
+
label: (React.createElement(Flex, { gap: 5, align: "center" },
|
|
23
|
+
React.createElement(Icon, { type: icon }),
|
|
24
|
+
label)),
|
|
25
|
+
value,
|
|
26
|
+
})), onChange: e => onDeviceTypeChange(e.target.value), value: deviceType, optionType: "button", style: { flexShrink: 0 } })),
|
|
27
|
+
React.createElement(Button, { type: "primary", style: { width: '100%', flexShrink: 0 }, onClick: onButtonClick },
|
|
28
|
+
React.createElement(Typography.Text, { ellipsis: { tooltip: buttonText }, style: { maxWidth: '100%', color: 'inherit' } }, buttonText))));
|
|
29
|
+
});
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare const InformationWrapper: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("antd/es/flex/interface").FlexProps<import("antd/es/_util/type").AnyObject> & import("react").RefAttributes<HTMLElement>>, any, {}, never>;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// Libraries
|
|
2
|
+
import styled from 'styled-components';
|
|
3
|
+
// Components
|
|
4
|
+
import { Flex } from '../../../../atoms';
|
|
5
|
+
export const InformationWrapper = styled(Flex) `
|
|
6
|
+
width: 350px;
|
|
7
|
+
flex-shrink: 0;
|
|
8
|
+
font-size: 12px;
|
|
9
|
+
max-height: 762px;
|
|
10
|
+
|
|
11
|
+
.title {
|
|
12
|
+
font-size: 16px;
|
|
13
|
+
font-weight: 700;
|
|
14
|
+
max-width: 100%;
|
|
15
|
+
color: inherit;
|
|
16
|
+
padding-right: 20px;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.antsomi-radio-group {
|
|
20
|
+
width: 100%;
|
|
21
|
+
display: flex;
|
|
22
|
+
|
|
23
|
+
.antsomi-radio-button-wrapper {
|
|
24
|
+
flex: 1 1 0%;
|
|
25
|
+
display: flex;
|
|
26
|
+
justify-content: center;
|
|
27
|
+
align-items: center;
|
|
28
|
+
height: 30px;
|
|
29
|
+
|
|
30
|
+
i {
|
|
31
|
+
height: fit-content;
|
|
32
|
+
font-size: 24px;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.content-information {
|
|
37
|
+
flex: 1 1 0%;
|
|
38
|
+
overflow-y: auto;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
`;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
+
var t = {};
|
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
+
t[p] = s[p];
|
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
+
t[p[i]] = s[p[i]];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
// Libraries
|
|
13
|
+
import React, { memo } from 'react';
|
|
14
|
+
// Components
|
|
15
|
+
import { ThumbnailCard } from '../../../../molecules';
|
|
16
|
+
import { Empty, Flex } from '../../../../atoms';
|
|
17
|
+
// Styled
|
|
18
|
+
import { SimilarTemplateWrapper } from './styled';
|
|
19
|
+
// Constants
|
|
20
|
+
import { SIMILAR_CARD_HEIGHT_DEFAULT, SIMILAR_CARD_WIDTH_DEFAULT } from '../../constants';
|
|
21
|
+
const MAX_QUANTITY_TEMPLATES = 4;
|
|
22
|
+
export const SimilarTemplate = memo(props => {
|
|
23
|
+
var _a;
|
|
24
|
+
const { show = true, similarTemplates = [], similarCardProps } = props;
|
|
25
|
+
const _b = similarCardProps || {}, { width = SIMILAR_CARD_WIDTH_DEFAULT, height = SIMILAR_CARD_HEIGHT_DEFAULT } = _b, restOfSimilarCardProps = __rest(_b, ["width", "height"]);
|
|
26
|
+
return show ? (React.createElement(SimilarTemplateWrapper, { gap: 15, vertical: true },
|
|
27
|
+
React.createElement("div", { className: "title" }, "Similar templates"),
|
|
28
|
+
React.createElement(Flex, { gap: 30 }, ((_a = similarTemplates === null || similarTemplates === void 0 ? void 0 : similarTemplates.slice(0, MAX_QUANTITY_TEMPLATES)) === null || _a === void 0 ? void 0 : _a.map(({ id, name, thumbnail }) => (React.createElement(ThumbnailCard, Object.assign({ key: id, id: id, name: name, width: width, height: height, thumbnail: thumbnail, actionAvailable: false }, restOfSimilarCardProps))))) || React.createElement(Empty, null)))) : null;
|
|
29
|
+
});
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare const SimilarTemplateWrapper: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("antd/es/flex/interface").FlexProps<import("antd/es/_util/type").AnyObject> & import("react").RefAttributes<HTMLElement>>, any, {}, never>;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
+
var t = {};
|
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
+
t[p] = s[p];
|
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
+
t[p[i]] = s[p[i]];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
// Libraries
|
|
13
|
+
import React, { memo, useMemo, useRef, useState } from 'react';
|
|
14
|
+
import Icon from '@antscorp/icons';
|
|
15
|
+
import { Swiper } from 'swiper/react';
|
|
16
|
+
import 'swiper/swiper-bundle.css';
|
|
17
|
+
import { Navigation, A11y, Thumbs } from 'swiper/modules';
|
|
18
|
+
import { isEmpty } from 'lodash';
|
|
19
|
+
// Styled
|
|
20
|
+
import { SwiperSlideWrapper, ThumbnailSliderWrapper } from './styled';
|
|
21
|
+
// Components
|
|
22
|
+
import { Button, Flex } from '../../../../atoms';
|
|
23
|
+
import { ThumbnailCard } from '../../../../molecules';
|
|
24
|
+
// Constants
|
|
25
|
+
import { THUMBNAIL_HEIGHT_DEFAULT, THUMBNAIL_WIDTH_DEFAULT } from '../../constants';
|
|
26
|
+
/** Max width of list thumbnail's wrapper, it is used to show swiper if the width is greater than 990 */
|
|
27
|
+
const WRAPPER_WIDTH = 990;
|
|
28
|
+
const GAP_X = 10;
|
|
29
|
+
const ICON_SIZE = 24;
|
|
30
|
+
export const ThumbnailSlider = memo(props => {
|
|
31
|
+
const { thumbnails, width = THUMBNAIL_WIDTH_DEFAULT, height = THUMBNAIL_HEIGHT_DEFAULT, onClickThumbnail } = props, restOfThumbnailProps = __rest(props, ["thumbnails", "width", "height", "onClickThumbnail"]);
|
|
32
|
+
// States
|
|
33
|
+
const [isSlideBeginning, setSlideBeginning] = useState(false);
|
|
34
|
+
const [isSlideEnd, setSlideEnd] = useState(false);
|
|
35
|
+
// Refs
|
|
36
|
+
const navigationPrevRef = useRef(null);
|
|
37
|
+
const navigationNextRef = useRef(null);
|
|
38
|
+
// Variables
|
|
39
|
+
/** The width of per thumbnail wrapper including thumbnail card's size, icon's size and gap */
|
|
40
|
+
const thumbnailWrapperWidth = useMemo(() => width + GAP_X * 2 + ICON_SIZE, [width]);
|
|
41
|
+
// Memo
|
|
42
|
+
const isShowSwiper = useMemo(() => {
|
|
43
|
+
const calculate = ((thumbnails === null || thumbnails === void 0 ? void 0 : thumbnails.length) || 0) * thumbnailWrapperWidth;
|
|
44
|
+
return calculate > WRAPPER_WIDTH;
|
|
45
|
+
}, [thumbnails === null || thumbnails === void 0 ? void 0 : thumbnails.length, thumbnailWrapperWidth]);
|
|
46
|
+
// Renders
|
|
47
|
+
const renderThumbnail = (args) => {
|
|
48
|
+
const { thumbnail, index } = args;
|
|
49
|
+
const { id, url } = thumbnail;
|
|
50
|
+
return (React.createElement(Flex, { gap: GAP_X },
|
|
51
|
+
!!index && (React.createElement(Flex, { align: "center" },
|
|
52
|
+
React.createElement(Icon, { type: "icon-ants-expand-more", style: { fontSize: ICON_SIZE, transform: 'rotate(270deg)' } }))),
|
|
53
|
+
React.createElement(ThumbnailCard, Object.assign({ key: id, id: id, width: width, height: height, thumbnail: url, style: { flexShrink: 0 }, actionAvailable: false, onClickWrapper: () => onClickThumbnail === null || onClickThumbnail === void 0 ? void 0 : onClickThumbnail(thumbnail) }, restOfThumbnailProps))));
|
|
54
|
+
};
|
|
55
|
+
return thumbnails && !isEmpty(thumbnails) ? (React.createElement(ThumbnailSliderWrapper, null, isShowSwiper ? (React.createElement(React.Fragment, null,
|
|
56
|
+
React.createElement(Swiper, { slidesPerView: Math.floor(WRAPPER_WIDTH / thumbnailWrapperWidth), spaceBetween: GAP_X, modules: [Navigation, A11y, Thumbs], navigation: {
|
|
57
|
+
prevEl: navigationPrevRef.current,
|
|
58
|
+
nextEl: navigationNextRef.current,
|
|
59
|
+
}, onBeforeInit: swiper => {
|
|
60
|
+
setTimeout(() => {
|
|
61
|
+
// Override prevEl & nextEl now that refs are defined
|
|
62
|
+
swiper.params.navigation.prevEl = navigationPrevRef.current;
|
|
63
|
+
swiper.params.navigation.nextEl = navigationNextRef.current;
|
|
64
|
+
// Re-init navigation
|
|
65
|
+
swiper.navigation.destroy();
|
|
66
|
+
swiper.navigation.init();
|
|
67
|
+
swiper.navigation.update();
|
|
68
|
+
});
|
|
69
|
+
}, onSlideChange: ({ isBeginning, isEnd }) => {
|
|
70
|
+
setSlideBeginning(isBeginning);
|
|
71
|
+
setSlideEnd(isEnd);
|
|
72
|
+
} }, thumbnails.map((thumbnail, index) => (React.createElement(SwiperSlideWrapper, { key: `slide-${thumbnail.id}` }, renderThumbnail({ thumbnail, index }))))),
|
|
73
|
+
React.createElement(Button, { ref: navigationPrevRef, className: "custom-button-prev", disabled: isSlideBeginning },
|
|
74
|
+
React.createElement(Icon, { type: "icon-ants-expand-more" })),
|
|
75
|
+
React.createElement(Button, { ref: navigationNextRef, className: "custom-button-next", disabled: isSlideEnd },
|
|
76
|
+
React.createElement(Icon, { type: "icon-ants-expand-more" })))) : (React.createElement(Flex, { gap: GAP_X, style: { width: 'fit-content' } }, thumbnails === null || thumbnails === void 0 ? void 0 : thumbnails.map((thumbnail, index) => (React.createElement(React.Fragment, { key: thumbnail.id }, renderThumbnail({ thumbnail, index })))))))) : null;
|
|
77
|
+
});
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare const ThumbnailSliderWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
3
|
+
export declare const SwiperSlideWrapper: import("styled-components").StyledComponent<import("react").FunctionComponent<import("swiper/react").SwiperSlideProps>, any, {}, never>;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
var _a;
|
|
2
|
+
import { THEME } from '@antscorp/antsomi-ui/es/constants';
|
|
3
|
+
import styled from 'styled-components';
|
|
4
|
+
import { SwiperSlide } from 'swiper/react';
|
|
5
|
+
export const ThumbnailSliderWrapper = styled.div `
|
|
6
|
+
width: 100%;
|
|
7
|
+
display: flex;
|
|
8
|
+
justify-content: center;
|
|
9
|
+
align-items: center;
|
|
10
|
+
position: relative;
|
|
11
|
+
|
|
12
|
+
.swiper {
|
|
13
|
+
max-width: 1030px;
|
|
14
|
+
.swiper-slide {
|
|
15
|
+
width: fit-content !important;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.custom-button-prev,
|
|
20
|
+
.custom-button-next {
|
|
21
|
+
z-index: 10;
|
|
22
|
+
position: absolute;
|
|
23
|
+
width: 24px;
|
|
24
|
+
height: 24px;
|
|
25
|
+
background-color: #ffffff;
|
|
26
|
+
box-shadow: 0px 3px 3px 0px #002e591a;
|
|
27
|
+
border-radius: 999px;
|
|
28
|
+
display: flex;
|
|
29
|
+
align-items: center;
|
|
30
|
+
justify-content: center;
|
|
31
|
+
|
|
32
|
+
/* Remove default style of Antd button */
|
|
33
|
+
border-color: white !important;
|
|
34
|
+
|
|
35
|
+
&.antsomi-btn-default:not(:disabled):hover {
|
|
36
|
+
border-color: white !important;
|
|
37
|
+
background-color: #ffffff !important;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.custom-button-prev {
|
|
42
|
+
left: 0px;
|
|
43
|
+
transform: rotate(90deg);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.custom-button-next {
|
|
47
|
+
right: 0px;
|
|
48
|
+
transform: rotate(-90deg);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
i {
|
|
52
|
+
font-size: 20px;
|
|
53
|
+
color: ${(_a = THEME === null || THEME === void 0 ? void 0 : THEME.token) === null || _a === void 0 ? void 0 : _a.bw8};
|
|
54
|
+
}
|
|
55
|
+
`;
|
|
56
|
+
export const SwiperSlideWrapper = styled(SwiperSlide) `
|
|
57
|
+
list-style: none;
|
|
58
|
+
display: flex;
|
|
59
|
+
justify-content: center;
|
|
60
|
+
align-items: center;
|
|
61
|
+
width: fit-content;
|
|
62
|
+
`;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export const THUMBNAIL_SAMPLES = [
|
|
2
|
+
{ id: 1, url: 'https://sandbox-st-media-template.antsomi.com/base64-img/20110.png' },
|
|
3
|
+
{ id: 2, url: 'https://sandbox-st-media-template.antsomi.com/base64-img/19759.png' },
|
|
4
|
+
{ id: 3, url: 'https://sandbox-st-media-template.antsomi.com/base64-img/19641.png' },
|
|
5
|
+
{ id: 4, url: 'https://sandbox-st-media-template.antsomi.com/base64-img/19641.png' },
|
|
6
|
+
{ id: 5, url: 'https://sandbox-st-media-template.antsomi.com/base64-img/19641.png' },
|
|
7
|
+
{ id: 6, url: 'https://sandbox-st-media-template.antsomi.com/base64-img/19641.png' },
|
|
8
|
+
{ id: 7, url: 'https://sandbox-st-media-template.antsomi.com/base64-img/19641.png' },
|
|
9
|
+
];
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { SimilarTemplateProps, ThumbnailProps } from '../types';
|
|
2
|
+
export declare const THUMBNAIL_WIDTH_DEFAULT = 180;
|
|
3
|
+
export declare const THUMBNAIL_HEIGHT_DEFAULT = 126;
|
|
4
|
+
export declare const SIMILAR_CARD_WIDTH_DEFAULT = 330;
|
|
5
|
+
export declare const SIMILAR_CARD_HEIGHT_DEFAULT = 230;
|
|
6
|
+
export declare const THUMBNAIL_URL = "https://st-media-template.antsomi.com/base64-img/37563.png";
|
|
7
|
+
export declare const SIMILAR_TEMPLATE_DEFAULT: SimilarTemplateProps;
|
|
8
|
+
export declare const THUMBNAIL_DEFAULT: ThumbnailProps;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export const THUMBNAIL_WIDTH_DEFAULT = 180;
|
|
2
|
+
export const THUMBNAIL_HEIGHT_DEFAULT = 126;
|
|
3
|
+
export const SIMILAR_CARD_WIDTH_DEFAULT = 330;
|
|
4
|
+
export const SIMILAR_CARD_HEIGHT_DEFAULT = 230;
|
|
5
|
+
export const THUMBNAIL_URL = 'https://st-media-template.antsomi.com/base64-img/37563.png';
|
|
6
|
+
export const SIMILAR_TEMPLATE_DEFAULT = {
|
|
7
|
+
show: false,
|
|
8
|
+
};
|
|
9
|
+
export const THUMBNAIL_DEFAULT = {
|
|
10
|
+
thumbnails: [],
|
|
11
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
+
var t = {};
|
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
+
t[p] = s[p];
|
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
+
t[p[i]] = s[p[i]];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
// Libraries
|
|
13
|
+
import React, { memo, useState } from 'react';
|
|
14
|
+
// Components
|
|
15
|
+
import { Flex, Spin } from '../../atoms';
|
|
16
|
+
import { Banner, Information, SimilarTemplate, ThumbnailSlider } from './components';
|
|
17
|
+
// Styled
|
|
18
|
+
import { ModalContainer, ModalWrapper } from './styled';
|
|
19
|
+
// Constants
|
|
20
|
+
import { DEVICE_TYPE, SIMILAR_TEMPLATE_DEFAULT, THUMBNAIL_DEFAULT } from './constants';
|
|
21
|
+
export const PreviewTemplateModal = memo(props => {
|
|
22
|
+
const { bannerProps, thumbnailProps = THUMBNAIL_DEFAULT, similarTemplateProps = SIMILAR_TEMPLATE_DEFAULT, informationProps, loading = false } = props, restOfProps = __rest(props, ["bannerProps", "thumbnailProps", "similarTemplateProps", "informationProps", "loading"]);
|
|
23
|
+
// States
|
|
24
|
+
const [deviceType, setDeviceType] = useState(DEVICE_TYPE.DESKTOP.value);
|
|
25
|
+
return (React.createElement(ModalContainer, Object.assign({ footer: null, centered: true, modalRender: node => React.createElement(ModalWrapper, null, node) }, restOfProps),
|
|
26
|
+
React.createElement(Spin, { spinning: loading },
|
|
27
|
+
React.createElement(Flex, { gap: 20 },
|
|
28
|
+
React.createElement("div", { className: "overview" },
|
|
29
|
+
React.createElement(Flex, { gap: 20, vertical: true, style: { width: '100%' } },
|
|
30
|
+
React.createElement(Banner, Object.assign({ deviceType: deviceType }, bannerProps)),
|
|
31
|
+
React.createElement(ThumbnailSlider, Object.assign({}, thumbnailProps)))),
|
|
32
|
+
React.createElement(Information, Object.assign({ deviceType: deviceType, onDeviceTypeChange: value => setDeviceType(value) }, informationProps))),
|
|
33
|
+
React.createElement(SimilarTemplate, Object.assign({}, similarTemplateProps)))));
|
|
34
|
+
});
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare const ModalContainer: import("styled-components").StyledComponent<import("react").ComponentType<any> | keyof import("react").JSX.IntrinsicElements, any, import("../../molecules/Modal/styled").CustomModalProps, any>;
|
|
3
|
+
export declare const ModalWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
4
|
+
export declare const ImageWrapper: import("styled-components").StyledComponent<"img", any, {}, never>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import styled from 'styled-components';
|
|
2
|
+
import { Modal } from '../../molecules';
|
|
3
|
+
export const ModalContainer = styled(Modal) `
|
|
4
|
+
&.antsomi-modal {
|
|
5
|
+
width: fit-content !important;
|
|
6
|
+
|
|
7
|
+
.antsomi-modal-content {
|
|
8
|
+
width: 1440px;
|
|
9
|
+
height: auto;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.overview {
|
|
14
|
+
flex: 1 1 0%;
|
|
15
|
+
}
|
|
16
|
+
`;
|
|
17
|
+
export const ModalWrapper = styled.div `
|
|
18
|
+
padding: 20px;
|
|
19
|
+
width: fit-content;
|
|
20
|
+
box-sizing: border-box;
|
|
21
|
+
`;
|
|
22
|
+
export const ImageWrapper = styled.img `
|
|
23
|
+
width: 100%;
|
|
24
|
+
height: 100%;
|
|
25
|
+
object-fit: contain;
|
|
26
|
+
`;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ThumbnailCardProps } from '../../molecules';
|
|
3
|
+
import { ModalProps } from '../../molecules/Modal';
|
|
4
|
+
import { TTemplateItem, TCategoryItem } from '../../template';
|
|
5
|
+
export type TThumbnail = {
|
|
6
|
+
id: string | number;
|
|
7
|
+
url: string;
|
|
8
|
+
};
|
|
9
|
+
export interface PreviewTemplateModalProps extends ModalProps {
|
|
10
|
+
bannerProps?: Omit<BannerProps, 'deviceType'>;
|
|
11
|
+
thumbnailProps?: ThumbnailProps;
|
|
12
|
+
similarTemplateProps?: SimilarTemplateProps;
|
|
13
|
+
informationProps?: Omit<InformationProps, 'deviceType' | 'onDeviceTypeChange'>;
|
|
14
|
+
}
|
|
15
|
+
export interface BannerProps {
|
|
16
|
+
deviceType: InformationProps['deviceType'];
|
|
17
|
+
showBackgroundSkeleton?: boolean;
|
|
18
|
+
children?: React.ReactNode;
|
|
19
|
+
}
|
|
20
|
+
export type ThumbnailProps = Omit<ThumbnailCardProps, keyof TTemplateItem | 'onClickWrapper'> & {
|
|
21
|
+
thumbnails?: TThumbnail[];
|
|
22
|
+
onClickThumbnail?: (value: TThumbnail) => void;
|
|
23
|
+
};
|
|
24
|
+
export interface SimilarTemplateProps {
|
|
25
|
+
show?: boolean;
|
|
26
|
+
similarTemplates?: TTemplateItem[];
|
|
27
|
+
similarCardProps?: Omit<ThumbnailCardProps, keyof TTemplateItem>;
|
|
28
|
+
}
|
|
29
|
+
export interface InformationProps {
|
|
30
|
+
deviceType: string;
|
|
31
|
+
itemName?: string;
|
|
32
|
+
categoryListing?: TCategoryItem[];
|
|
33
|
+
buttonText?: string;
|
|
34
|
+
description?: string;
|
|
35
|
+
showDeviceRadios?: boolean;
|
|
36
|
+
loading?: boolean;
|
|
37
|
+
onDeviceTypeChange: (value: string) => void;
|
|
38
|
+
onButtonClick?: React.MouseEventHandler<HTMLElement>;
|
|
39
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { Help } from './Help';
|
|
2
|
+
export { Menu } from './Menu';
|
|
2
3
|
export { PositionSetting, PositionSettingPopover } from './PositionSetting';
|
|
3
4
|
export { Table, ExplorePivotTable, EXPLORE_PIVOT_TABLE_TEST_DATA } from './Table';
|
|
4
5
|
export { GenerativeInsights } from './GenerativeInsights';
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { Help } from './Help';
|
|
2
|
+
export { Menu } from './Menu';
|
|
2
3
|
export { PositionSetting, PositionSettingPopover } from './PositionSetting';
|
|
3
4
|
export { Table, ExplorePivotTable, EXPLORE_PIVOT_TABLE_TEST_DATA } from './Table';
|
|
4
5
|
export { GenerativeInsights } from './GenerativeInsights';
|
|
@@ -2,16 +2,18 @@
|
|
|
2
2
|
import React, { memo } from 'react';
|
|
3
3
|
import Icon from '@antscorp/icons';
|
|
4
4
|
// Components
|
|
5
|
-
import { Button, Flex } from '../../../../atoms';
|
|
5
|
+
import { Button, Flex, Typography } from '../../../../atoms';
|
|
6
6
|
// Styled
|
|
7
7
|
import { BlankTemplateWrapper } from './styled';
|
|
8
|
+
// Constants
|
|
9
|
+
import { THUMBNAIL_CARD_DEFAULT_HEIGHT, THUMBNAIL_CARD_DEFAULT_WIDTH, } from '@antscorp/antsomi-ui/es/components/molecules/ThumbnailCard/constants';
|
|
8
10
|
export const BlankTemplate = memo(props => {
|
|
9
|
-
const { width, height, show, description,
|
|
10
|
-
|
|
11
|
-
React.createElement(Flex, { align: "center", justify: "center", gap: 10, vertical: true },
|
|
12
|
-
React.createElement(Button, { type: "text", className: "add-blank-btn", icon: React.createElement(Icon, { type: "icon-ants-plus-slim", style: { fontSize: 24 } })
|
|
11
|
+
const { width = THUMBNAIL_CARD_DEFAULT_WIDTH, height = THUMBNAIL_CARD_DEFAULT_HEIGHT, show, description = 'Blank Template', blankTemplateRender, onClick, } = props;
|
|
12
|
+
const BlankTemplateNode = (React.createElement(BlankTemplateWrapper, { style: { width, height }, align: "center", justify: "center", onClick: onClick },
|
|
13
|
+
React.createElement(Flex, { align: "center", justify: "center", gap: 10, vertical: true, style: { width: '100%' } },
|
|
14
|
+
React.createElement(Button, { type: "text", className: "add-blank-btn", icon: React.createElement(Icon, { type: "icon-ants-plus-slim", style: { fontSize: 24 } }) }),
|
|
13
15
|
React.createElement("div", { className: "description" },
|
|
14
|
-
|
|
15
|
-
|
|
16
|
+
React.createElement(Typography.Text, { ellipsis: { tooltip: description }, style: { maxWidth: '100%', color: 'inherit' } }, description)))));
|
|
17
|
+
return show ? (blankTemplateRender ? (React.createElement(React.Fragment, null, blankTemplateRender(BlankTemplateNode))) : (BlankTemplateNode)) : null;
|
|
16
18
|
});
|
|
17
19
|
BlankTemplate.displayName = 'BlankTemplate';
|
|
@@ -6,6 +6,7 @@ export const BlankTemplateWrapper = styled(Flex) `
|
|
|
6
6
|
box-sizing: border-box;
|
|
7
7
|
border: 1px solid #b8cfe6;
|
|
8
8
|
border-radius: 5px;
|
|
9
|
+
cursor: pointer;
|
|
9
10
|
|
|
10
11
|
.add-blank-btn {
|
|
11
12
|
width: 50px !important;
|
|
@@ -20,5 +21,6 @@ export const BlankTemplateWrapper = styled(Flex) `
|
|
|
20
21
|
|
|
21
22
|
.description {
|
|
22
23
|
font-weight: 700;
|
|
24
|
+
max-width: 90%;
|
|
23
25
|
}
|
|
24
26
|
`;
|
|
@@ -13,18 +13,21 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
13
13
|
import React, { memo, useCallback, useMemo } from 'react';
|
|
14
14
|
import { isEmpty, isNumber } from 'lodash';
|
|
15
15
|
import Icon from '@antscorp/icons';
|
|
16
|
-
import {
|
|
16
|
+
import { THEME } from '@antscorp/antsomi-ui/es/constants';
|
|
17
17
|
// Styled
|
|
18
|
-
import { CustomLabelStyled, CustomRootLabel, MenuWrapper } from './styled';
|
|
18
|
+
import { CustomLabelStyled, CustomRootLabel, MenuWrapper, TextWrapper } from './styled';
|
|
19
19
|
// Components
|
|
20
|
-
import { Checkbox,
|
|
20
|
+
import { Checkbox, Spin } from '../../../../atoms';
|
|
21
|
+
import { Menu } from '../../../../organism';
|
|
22
|
+
import { Empty } from '../Empty';
|
|
21
23
|
// Utils
|
|
22
24
|
import { handleError } from '@antscorp/antsomi-ui/es/utils';
|
|
23
25
|
// Constants
|
|
24
26
|
import { CATEGORY_LISTING_WITH } from '../../constants';
|
|
25
27
|
const PATH = 'src/components/template/TemplateListing/components/CategoryListing/index.tsx';
|
|
26
28
|
export const CategoryListing = memo(props => {
|
|
27
|
-
|
|
29
|
+
var _a;
|
|
30
|
+
const { width = CATEGORY_LISTING_WITH, items = [], loading = false, show = true, checkedCategories = {}, onMenuChange } = props, restOfProps = __rest(props, ["width", "items", "loading", "show", "checkedCategories", "onMenuChange"]);
|
|
28
31
|
// Handlers
|
|
29
32
|
const handleClickMenu = e => {
|
|
30
33
|
var _a;
|
|
@@ -51,11 +54,11 @@ export const CategoryListing = memo(props => {
|
|
|
51
54
|
try {
|
|
52
55
|
const { key, parentId, label, total } = args;
|
|
53
56
|
const isChecked = !!(!!parentId && ((_a = checkedCategories === null || checkedCategories === void 0 ? void 0 : checkedCategories[parentId]) === null || _a === void 0 ? void 0 : _a.includes(key)));
|
|
54
|
-
return (React.createElement(CustomLabelStyled,
|
|
57
|
+
return (React.createElement(CustomLabelStyled, { onClick: e => e.preventDefault() },
|
|
55
58
|
React.createElement("div", { className: "label" },
|
|
56
59
|
React.createElement(Checkbox, { checked: isChecked },
|
|
57
|
-
React.createElement(
|
|
58
|
-
React.createElement("
|
|
60
|
+
React.createElement(TextWrapper, { ellipsis: { tooltip: label } }, label))),
|
|
61
|
+
React.createElement("span", { className: "total" }, isNumber(total) ? total : '')));
|
|
59
62
|
}
|
|
60
63
|
catch (error) {
|
|
61
64
|
handleError(error, {
|
|
@@ -69,7 +72,12 @@ export const CategoryListing = memo(props => {
|
|
|
69
72
|
const getItem = useCallback((item, isRoot) => {
|
|
70
73
|
try {
|
|
71
74
|
const { key, label, children } = item;
|
|
72
|
-
return Object.assign(Object.assign(Object.assign({}, item), (isRoot
|
|
75
|
+
return Object.assign(Object.assign(Object.assign({}, item), (isRoot
|
|
76
|
+
? {
|
|
77
|
+
label: (React.createElement(CustomRootLabel, null,
|
|
78
|
+
React.createElement(TextWrapper, { ellipsis: { tooltip: label } }, label))),
|
|
79
|
+
}
|
|
80
|
+
: {})), { children: !!children && !isEmpty(children)
|
|
73
81
|
? children === null || children === void 0 ? void 0 : children.map(child => {
|
|
74
82
|
const childItem = Object.assign(Object.assign({}, child), { parentId: key });
|
|
75
83
|
return getItem(Object.assign(Object.assign({}, childItem), { label: renderCustomLabel(childItem) }));
|
|
@@ -97,7 +105,8 @@ export const CategoryListing = memo(props => {
|
|
|
97
105
|
});
|
|
98
106
|
return menuItems;
|
|
99
107
|
}, [getItem, items]);
|
|
100
|
-
return (React.createElement(MenuWrapper, { "$width": width },
|
|
101
|
-
React.createElement(
|
|
108
|
+
return show ? (React.createElement(MenuWrapper, { "$width": width },
|
|
109
|
+
React.createElement(Spin, { spinning: loading, wrapperClassName: "template-listing__loading" }, isEmpty(menuItems) ? (React.createElement("div", { className: "empty-wrapper" },
|
|
110
|
+
React.createElement(Empty, null))) : (React.createElement(Menu, Object.assign({ items: menuItems, inlineIndent: 0, mode: "inline", defaultOpenKeys: items === null || items === void 0 ? void 0 : items.map(item => String(item.key)), expandIcon: React.createElement(Icon, { type: "icon-ants-expand-more", style: { fontSize: 20, color: (_a = THEME === null || THEME === void 0 ? void 0 : THEME.token) === null || _a === void 0 ? void 0 : _a.bw8 } }), onClick: handleClickMenu }, restOfProps)))))) : null;
|
|
102
111
|
});
|
|
103
112
|
CategoryListing.displayName = 'CategoryListing';
|