@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.
Files changed (255) hide show
  1. package/es/assets/css/main.scss +0 -2
  2. package/es/assets/images/background/skeleton-background.png +0 -0
  3. package/es/assets/images/skeleton_bg.png +0 -0
  4. package/es/assets/svg/mobile-frame.svg +3 -0
  5. package/es/components/atoms/Spin/Spin.js +2 -2
  6. package/es/components/common/ConfigProvider/ConfigProvider.js +8 -4
  7. package/es/components/common/ConfigProvider/GlobalStyle.js +85 -16
  8. package/es/components/molecules/CalendarSelection/CalendarSelection.d.ts +3 -0
  9. package/es/components/molecules/CalendarSelection/CalendarSelection.js +45 -0
  10. package/es/components/molecules/CalendarSelection/actions.d.ts +55 -0
  11. package/es/components/molecules/CalendarSelection/actions.js +39 -0
  12. package/es/components/molecules/CalendarSelection/components/AutoUpdateTo/AutoUpdateTo.d.ts +7 -0
  13. package/es/components/molecules/CalendarSelection/components/AutoUpdateTo/AutoUpdateTo.js +24 -0
  14. package/es/components/molecules/CalendarSelection/components/AutoUpdateTo/index.d.ts +1 -0
  15. package/es/components/molecules/CalendarSelection/components/AutoUpdateTo/index.js +1 -0
  16. package/es/components/molecules/CalendarSelection/components/AutoUpdateTo/styled.d.ts +1 -0
  17. package/es/components/molecules/CalendarSelection/components/AutoUpdateTo/styled.js +10 -0
  18. package/es/components/molecules/CalendarSelection/components/CustomPicker/CustomPicker.d.ts +3 -0
  19. package/es/components/molecules/CalendarSelection/components/CustomPicker/CustomPicker.js +96 -0
  20. package/es/components/molecules/CalendarSelection/components/CustomPicker/index.d.ts +1 -0
  21. package/es/components/molecules/CalendarSelection/components/CustomPicker/index.js +1 -0
  22. package/es/components/molecules/CalendarSelection/components/CustomPicker/styled.d.ts +6 -0
  23. package/es/components/molecules/CalendarSelection/components/CustomPicker/styled.js +152 -0
  24. package/es/components/molecules/CalendarSelection/components/CustomPicker/types.d.ts +1 -0
  25. package/es/components/molecules/CalendarSelection/components/Footer/Footer.d.ts +2 -0
  26. package/es/components/molecules/CalendarSelection/components/Footer/Footer.js +11 -0
  27. package/es/components/molecules/CalendarSelection/components/Footer/index.d.ts +1 -0
  28. package/es/components/molecules/CalendarSelection/components/Footer/index.js +1 -0
  29. package/es/components/molecules/CalendarSelection/components/Footer/styled.d.ts +1 -0
  30. package/es/components/molecules/CalendarSelection/components/Footer/styled.js +6 -0
  31. package/es/components/molecules/CalendarSelection/components/RangePicker/RangePicker.d.ts +5 -0
  32. package/es/components/molecules/CalendarSelection/components/RangePicker/RangePicker.js +4 -0
  33. package/es/components/molecules/CalendarSelection/components/RangePicker/index.d.ts +1 -0
  34. package/es/components/molecules/CalendarSelection/components/RangePicker/index.js +1 -0
  35. package/es/components/molecules/CalendarSelection/components/RangePicker/styled.d.ts +5 -0
  36. package/es/components/molecules/CalendarSelection/components/RangePicker/styled.js +13 -0
  37. package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/RangeSelectOptions.d.ts +3 -0
  38. package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/RangeSelectOptions.js +23 -0
  39. package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/components/NumOfDaysRanges/NumOfDaysRanges.d.ts +2 -0
  40. package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/components/NumOfDaysRanges/NumOfDaysRanges.js +41 -0
  41. package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/components/NumOfDaysRanges/index.d.ts +1 -0
  42. package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/components/NumOfDaysRanges/index.js +1 -0
  43. package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/components/Option/Option.d.ts +11 -0
  44. package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/components/Option/Option.js +40 -0
  45. package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/components/Option/index.d.ts +1 -0
  46. package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/components/Option/index.js +1 -0
  47. package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/components/Option/styled.d.ts +1 -0
  48. package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/components/Option/styled.js +29 -0
  49. package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/components/index.d.ts +2 -0
  50. package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/components/index.js +2 -0
  51. package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/index.d.ts +1 -0
  52. package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/index.js +1 -0
  53. package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/styled.d.ts +3 -0
  54. package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/styled.js +34 -0
  55. package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/types.d.ts +1 -0
  56. package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/types.js +1 -0
  57. package/es/components/molecules/CalendarSelection/components/TimeRangeDisplay/TimeRangeDisplay.d.ts +8 -0
  58. package/es/components/molecules/CalendarSelection/components/TimeRangeDisplay/TimeRangeDisplay.js +49 -0
  59. package/es/components/molecules/CalendarSelection/components/TimeRangeDisplay/index.d.ts +2 -0
  60. package/es/components/molecules/CalendarSelection/components/TimeRangeDisplay/index.js +2 -0
  61. package/es/components/molecules/CalendarSelection/components/TimeRangeDisplay/styled.d.ts +1 -0
  62. package/es/components/molecules/CalendarSelection/components/TimeRangeDisplay/styled.js +70 -0
  63. package/es/components/molecules/CalendarSelection/components/index.d.ts +5 -0
  64. package/es/components/molecules/CalendarSelection/components/index.js +5 -0
  65. package/es/components/molecules/CalendarSelection/constants.d.ts +97 -0
  66. package/es/components/molecules/CalendarSelection/constants.js +183 -0
  67. package/es/components/molecules/CalendarSelection/context.d.ts +4 -0
  68. package/es/components/molecules/CalendarSelection/context.js +6 -0
  69. package/es/components/molecules/CalendarSelection/hooks/index.d.ts +2 -0
  70. package/es/components/molecules/CalendarSelection/hooks/index.js +2 -0
  71. package/es/components/molecules/CalendarSelection/hooks/useStateContext.d.ts +4 -0
  72. package/es/components/molecules/CalendarSelection/hooks/useStateContext.js +13 -0
  73. package/es/components/molecules/CalendarSelection/hooks/useTriggerOut.d.ts +9 -0
  74. package/es/components/molecules/CalendarSelection/hooks/useTriggerOut.js +19 -0
  75. package/es/components/molecules/CalendarSelection/index.d.ts +25 -0
  76. package/es/components/molecules/CalendarSelection/index.js +6 -0
  77. package/es/components/molecules/CalendarSelection/reducer.d.ts +3 -0
  78. package/es/components/molecules/CalendarSelection/reducer.js +121 -0
  79. package/es/components/molecules/CalendarSelection/styled.d.ts +6 -0
  80. package/es/components/molecules/CalendarSelection/styled.js +13 -0
  81. package/es/components/molecules/CalendarSelection/types.d.ts +97 -0
  82. package/es/components/molecules/CalendarSelection/types.js +1 -0
  83. package/es/components/molecules/CalendarSelection/utils.d.ts +52 -0
  84. package/es/components/molecules/CalendarSelection/utils.js +304 -0
  85. package/es/components/molecules/ColorPicker/CustomPicker/index.js +3 -3
  86. package/es/components/molecules/ColorPicker/index.d.ts +1 -0
  87. package/es/components/molecules/ColorPicker/index.js +3 -2
  88. package/es/components/molecules/DatePicker/components/AdvancedPicker/AdvancedPicker.js +24 -16
  89. package/es/components/molecules/DatePicker/components/AdvancedPicker/styled.d.ts +5 -0
  90. package/es/components/molecules/DatePicker/components/AdvancedPicker/styled.js +31 -1
  91. package/es/components/molecules/DatePicker/components/AdvancedPicker/utils.d.ts +1 -1
  92. package/es/components/molecules/DatePicker/components/AdvancedRangePicker/AdvancedRangePicker.d.ts +3 -1
  93. package/es/components/molecules/DatePicker/components/AdvancedRangePicker/AdvancedRangePicker.js +5 -4
  94. package/es/components/molecules/ModalV2/styled.js +4 -0
  95. package/es/components/molecules/ResizeGrid/ResizeGrid.js +10 -2
  96. package/es/components/molecules/ResizeGrid/types.d.ts +1 -0
  97. package/es/components/molecules/RichMenu/RichMenuBlock/RichMenuBlock.d.ts +1 -0
  98. package/es/components/molecules/RichMenu/RichMenuBlock/RichMenuBlock.js +2 -2
  99. package/es/components/molecules/RichMenu/RichMenuMobileView/RichMenuMobileView.d.ts +1 -0
  100. package/es/components/molecules/RichMenu/RichMenuMobileView/RichMenuMobileView.js +2 -2
  101. package/es/components/molecules/ShareAccess/components/LayoutContent/LayoutContent.js +2 -2
  102. package/es/components/molecules/ShareAccess/index.d.ts +2 -3
  103. package/es/components/molecules/ShareAccess/index.js +2 -3
  104. package/es/components/molecules/ShareAccess/types.d.ts +1 -0
  105. package/es/components/molecules/TemplateSaveAs/TemplateSaveAs.d.ts +52 -0
  106. package/es/components/molecules/TemplateSaveAs/TemplateSaveAs.js +144 -0
  107. package/es/components/molecules/TemplateSaveAs/TemplateSaveAsModal.d.ts +10 -0
  108. package/es/components/molecules/TemplateSaveAs/TemplateSaveAsModal.js +38 -0
  109. package/es/components/molecules/TemplateSaveAs/components/ImageSlider/ImageSlider.d.ts +15 -0
  110. package/es/components/molecules/TemplateSaveAs/components/ImageSlider/ImageSlider.js +68 -0
  111. package/es/components/molecules/TemplateSaveAs/components/ImageSlider/index.d.ts +1 -0
  112. package/es/components/molecules/TemplateSaveAs/components/ImageSlider/index.js +1 -0
  113. package/es/components/molecules/TemplateSaveAs/components/ImageSlider/styled.d.ts +5 -0
  114. package/es/components/molecules/TemplateSaveAs/components/ImageSlider/styled.js +175 -0
  115. package/es/components/molecules/TemplateSaveAs/components/index.d.ts +1 -0
  116. package/es/components/molecules/TemplateSaveAs/components/index.js +1 -0
  117. package/es/components/molecules/TemplateSaveAs/index.d.ts +3 -0
  118. package/es/components/molecules/TemplateSaveAs/index.js +2 -0
  119. package/es/components/molecules/TemplateSaveAs/styled.d.ts +4 -0
  120. package/es/components/molecules/TemplateSaveAs/styled.js +70 -0
  121. package/es/components/molecules/ThumbnailCard/ThumbnailCard.d.ts +3 -0
  122. package/es/components/molecules/ThumbnailCard/ThumbnailCard.js +72 -0
  123. package/es/components/molecules/ThumbnailCard/constants.d.ts +3 -0
  124. package/es/components/molecules/ThumbnailCard/constants.js +3 -0
  125. package/es/components/molecules/ThumbnailCard/index.d.ts +2 -0
  126. package/es/components/molecules/ThumbnailCard/index.js +2 -0
  127. package/es/components/molecules/ThumbnailCard/styled.d.ts +1 -0
  128. package/es/components/{template/TemplateListing/components/TemplateItem → molecules/ThumbnailCard}/styled.js +14 -7
  129. package/es/components/molecules/ThumbnailCard/types.d.ts +21 -0
  130. package/es/components/molecules/ThumbnailCard/types.js +1 -0
  131. package/es/components/molecules/UploadImage/index.js +1 -1
  132. package/es/components/molecules/index.d.ts +5 -0
  133. package/es/components/molecules/index.js +3 -0
  134. package/es/components/organism/Help/Help.js +23 -1
  135. package/es/components/organism/Menu/Menu.d.ts +2 -0
  136. package/es/components/organism/Menu/Menu.js +3 -0
  137. package/es/components/organism/Menu/index.d.ts +1 -0
  138. package/es/components/organism/Menu/index.js +3 -0
  139. package/es/components/organism/PreviewTemplateModal/components/Banner/index.d.ts +3 -0
  140. package/es/components/organism/PreviewTemplateModal/components/Banner/index.js +12 -0
  141. package/es/components/organism/PreviewTemplateModal/components/Banner/styled.d.ts +4 -0
  142. package/es/components/organism/PreviewTemplateModal/components/Banner/styled.js +91 -0
  143. package/es/components/organism/PreviewTemplateModal/components/Information/index.d.ts +3 -0
  144. package/es/components/organism/PreviewTemplateModal/components/Information/index.js +29 -0
  145. package/es/components/organism/PreviewTemplateModal/components/Information/styled.d.ts +2 -0
  146. package/es/components/organism/PreviewTemplateModal/components/Information/styled.js +41 -0
  147. package/es/components/organism/PreviewTemplateModal/components/SimilarTemplate/index.d.ts +3 -0
  148. package/es/components/organism/PreviewTemplateModal/components/SimilarTemplate/index.js +29 -0
  149. package/es/components/organism/PreviewTemplateModal/components/SimilarTemplate/styled.d.ts +2 -0
  150. package/es/components/organism/PreviewTemplateModal/components/SimilarTemplate/styled.js +12 -0
  151. package/es/components/organism/PreviewTemplateModal/components/ThumbnailSlider/index.d.ts +6 -0
  152. package/es/components/organism/PreviewTemplateModal/components/ThumbnailSlider/index.js +77 -0
  153. package/es/components/organism/PreviewTemplateModal/components/ThumbnailSlider/styled.d.ts +3 -0
  154. package/es/components/organism/PreviewTemplateModal/components/ThumbnailSlider/styled.js +62 -0
  155. package/es/components/organism/PreviewTemplateModal/components/index.d.ts +4 -0
  156. package/es/components/organism/PreviewTemplateModal/components/index.js +4 -0
  157. package/es/components/organism/PreviewTemplateModal/constants/dataSample.d.ts +2 -0
  158. package/es/components/organism/PreviewTemplateModal/constants/dataSample.js +9 -0
  159. package/es/components/organism/PreviewTemplateModal/constants/defaultProps.d.ts +8 -0
  160. package/es/components/organism/PreviewTemplateModal/constants/defaultProps.js +11 -0
  161. package/es/components/organism/PreviewTemplateModal/constants/index.d.ts +3 -0
  162. package/es/components/organism/PreviewTemplateModal/constants/index.js +3 -0
  163. package/es/components/organism/PreviewTemplateModal/constants/variables.d.ts +12 -0
  164. package/es/components/organism/PreviewTemplateModal/constants/variables.js +12 -0
  165. package/es/components/organism/PreviewTemplateModal/index.d.ts +3 -0
  166. package/es/components/organism/PreviewTemplateModal/index.js +34 -0
  167. package/es/components/organism/PreviewTemplateModal/styled.d.ts +4 -0
  168. package/es/components/organism/PreviewTemplateModal/styled.js +26 -0
  169. package/es/components/organism/PreviewTemplateModal/types.d.ts +39 -0
  170. package/es/components/organism/PreviewTemplateModal/types.js +1 -0
  171. package/es/components/organism/index.d.ts +1 -0
  172. package/es/components/organism/index.js +1 -0
  173. package/es/components/template/TemplateListing/Loadable.d.ts +6 -0
  174. package/es/components/template/TemplateListing/Loadable.js +7 -0
  175. package/es/components/template/TemplateListing/components/BlankTemplate/index.js +9 -7
  176. package/es/components/template/TemplateListing/components/BlankTemplate/styled.js +2 -0
  177. package/es/components/template/TemplateListing/components/CategoryListing/index.js +19 -10
  178. package/es/components/template/TemplateListing/components/CategoryListing/styled.d.ts +2 -0
  179. package/es/components/template/TemplateListing/components/CategoryListing/styled.js +44 -7
  180. package/es/components/template/TemplateListing/components/CategoryListing/types.d.ts +2 -1
  181. package/es/components/template/TemplateListing/components/Empty/index.d.ts +3 -0
  182. package/es/components/template/TemplateListing/components/Empty/index.js +18 -0
  183. package/es/components/template/TemplateListing/components/Empty/styled.d.ts +3 -0
  184. package/es/components/template/TemplateListing/components/Empty/styled.js +35 -0
  185. package/es/components/template/TemplateListing/components/index.d.ts +1 -1
  186. package/es/components/template/TemplateListing/components/index.js +1 -1
  187. package/es/components/template/TemplateListing/constants/defaultProps.d.ts +8 -4
  188. package/es/components/template/TemplateListing/constants/defaultProps.js +9 -6
  189. package/es/components/template/TemplateListing/hooks/index.d.ts +1 -0
  190. package/es/components/template/TemplateListing/hooks/index.js +1 -0
  191. package/es/components/template/TemplateListing/hooks/useTemplateListing.d.ts +62 -0
  192. package/es/components/template/TemplateListing/hooks/useTemplateListing.js +206 -0
  193. package/es/components/template/TemplateListing/index.js +77 -13
  194. package/es/components/template/TemplateListing/styled/index.d.ts +2 -0
  195. package/es/components/template/TemplateListing/styled/index.js +29 -5
  196. package/es/components/template/TemplateListing/types/BlankTemplate.d.ts +3 -2
  197. package/es/components/template/TemplateListing/types/CategoryListing.d.ts +5 -2
  198. package/es/components/template/TemplateListing/types/Empty.d.ts +5 -0
  199. package/es/components/template/TemplateListing/types/Empty.js +1 -0
  200. package/es/components/template/TemplateListing/types/TemplateListing.d.ts +20 -9
  201. package/es/components/template/TemplateListing/types/index.d.ts +0 -1
  202. package/es/components/template/TemplateListing/types/index.js +0 -1
  203. package/es/components/template/index.d.ts +2 -1
  204. package/es/components/template/index.js +5 -1
  205. package/es/constants/datetime.d.ts +8 -0
  206. package/es/constants/datetime.js +1594 -0
  207. package/es/constants/index.d.ts +4 -1
  208. package/es/constants/index.js +4 -1
  209. package/es/constants/queries.d.ts +3 -0
  210. package/es/constants/queries.js +4 -0
  211. package/es/constants/templateListing.d.ts +58 -0
  212. package/es/constants/templateListing.js +58 -0
  213. package/es/hooks/index.d.ts +4 -0
  214. package/es/hooks/index.js +4 -0
  215. package/es/hooks/useEffectOnlyOnce.d.ts +2 -0
  216. package/es/hooks/useEffectOnlyOnce.js +12 -0
  217. package/es/hooks/useForceUpdate.d.ts +1 -0
  218. package/es/hooks/useForceUpdate.js +5 -0
  219. package/es/hooks/useIntersectionObserver.d.ts +57 -0
  220. package/es/hooks/useIntersectionObserver.js +97 -0
  221. package/es/hooks/useListingItemResize.d.ts +12 -0
  222. package/es/hooks/useListingItemResize.js +58 -0
  223. package/es/hooks/useScrollToEnd.d.ts +1 -0
  224. package/es/hooks/useScrollToEnd.js +30 -0
  225. package/es/index.d.ts +2 -0
  226. package/es/index.js +2 -0
  227. package/es/locales/en/translation.json +11 -3
  228. package/es/locales/i18n.d.ts +16 -0
  229. package/es/locales/translations.d.ts +8 -0
  230. package/es/locales/vi/translation.json +9 -1
  231. package/es/models/ObjectTemplate.d.ts +53 -0
  232. package/es/models/ObjectTemplate.js +80 -0
  233. package/es/models/TemplateCategory.d.ts +13 -0
  234. package/es/models/TemplateCategory.js +28 -0
  235. package/es/queries/TemplateListing/index.d.ts +47 -0
  236. package/es/queries/TemplateListing/index.js +93 -0
  237. package/es/queries/index.d.ts +1 -0
  238. package/es/queries/index.js +1 -0
  239. package/es/services/TemplateListing/index.d.ts +64 -0
  240. package/es/services/TemplateListing/index.js +149 -0
  241. package/es/test.js +62 -11
  242. package/es/types/index.d.ts +4 -0
  243. package/es/types/index.js +2 -0
  244. package/es/types/service.d.ts +22 -0
  245. package/es/types/service.js +1 -0
  246. package/es/types/templateListing.d.ts +11 -0
  247. package/es/types/templateListing.js +1 -0
  248. package/es/utils/common.d.ts +2 -0
  249. package/es/utils/common.js +12 -0
  250. package/package.json +6 -1
  251. package/es/components/template/TemplateListing/components/TemplateItem/index.d.ts +0 -3
  252. package/es/components/template/TemplateListing/components/TemplateItem/index.js +0 -53
  253. package/es/components/template/TemplateListing/components/TemplateItem/styled.d.ts +0 -1
  254. package/es/components/template/TemplateListing/types/TemplateItem.d.ts +0 -14
  255. /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,3 @@
1
+ import React from 'react';
2
+ import { SimilarTemplateProps } from '../../types';
3
+ export declare const SimilarTemplate: React.FC<SimilarTemplateProps>;
@@ -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,12 @@
1
+ // Libraries
2
+ import styled from 'styled-components';
3
+ // Components
4
+ import { Flex } from '../../../../atoms';
5
+ export const SimilarTemplateWrapper = styled(Flex) `
6
+ margin-top: 15px;
7
+
8
+ .title {
9
+ font-weight: 700;
10
+ font-size: 16px;
11
+ }
12
+ `;
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import 'swiper/swiper-bundle.css';
3
+ import { ThumbnailProps } from '../../types';
4
+ export interface ThumbnailSliderProps extends ThumbnailProps {
5
+ }
6
+ export declare const ThumbnailSlider: React.FC<ThumbnailSliderProps>;
@@ -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,4 @@
1
+ export { Information } from './Information';
2
+ export { Banner } from './Banner';
3
+ export { ThumbnailSlider } from './ThumbnailSlider';
4
+ export { SimilarTemplate } from './SimilarTemplate';
@@ -0,0 +1,4 @@
1
+ export { Information } from './Information';
2
+ export { Banner } from './Banner';
3
+ export { ThumbnailSlider } from './ThumbnailSlider';
4
+ export { SimilarTemplate } from './SimilarTemplate';
@@ -0,0 +1,2 @@
1
+ import { TThumbnail } from '../types';
2
+ export declare const THUMBNAIL_SAMPLES: TThumbnail[];
@@ -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,3 @@
1
+ export * from './dataSample';
2
+ export * from './defaultProps';
3
+ export * from './variables';
@@ -0,0 +1,3 @@
1
+ export * from './dataSample';
2
+ export * from './defaultProps';
3
+ export * from './variables';
@@ -0,0 +1,12 @@
1
+ export declare const DEVICE_TYPE: {
2
+ DESKTOP: {
3
+ value: string;
4
+ label: string;
5
+ icon: string;
6
+ };
7
+ MOBILE: {
8
+ value: string;
9
+ label: string;
10
+ icon: string;
11
+ };
12
+ };
@@ -0,0 +1,12 @@
1
+ export const DEVICE_TYPE = {
2
+ DESKTOP: {
3
+ value: 'desktop',
4
+ label: 'Desktop',
5
+ icon: 'icon-ants-laptop',
6
+ },
7
+ MOBILE: {
8
+ value: 'mobile',
9
+ label: 'Mobile',
10
+ icon: 'icon-ants-smart-phone',
11
+ },
12
+ };
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import { PreviewTemplateModalProps } from './types';
3
+ export declare const PreviewTemplateModal: React.FC<PreviewTemplateModalProps>;
@@ -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
+ }
@@ -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';
@@ -0,0 +1,6 @@
1
+ /**
2
+ *
3
+ * Asynchronously loads the component for TemplateListing
4
+ *
5
+ */
6
+ export declare const TemplateListing: (props: import("./types").TemplateListingProps<{}>) => JSX.Element;
@@ -0,0 +1,7 @@
1
+ /**
2
+ *
3
+ * Asynchronously loads the component for TemplateListing
4
+ *
5
+ */
6
+ import { lazyLoad } from '../../../utils/loadable';
7
+ export const TemplateListing = lazyLoad(() => import('./index'), module => module.TemplateListing);
@@ -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, onButtonClick } = props;
10
- return show ? (React.createElement(BlankTemplateWrapper, { style: { width, height }, align: "center", justify: "center" },
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 } }), onClick: onButtonClick }),
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
- description || 'Blank Template')))) : null;
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 { Menu } from 'antd';
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, Typography } from '../../../../atoms';
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
- const { width = CATEGORY_LISTING_WITH, items, checkedCategories = {}, onMenuChange } = props, restOfProps = __rest(props, ["width", "items", "checkedCategories", "onMenuChange"]);
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, null,
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(Typography.Text, { style: { maxWidth: '100%' }, ellipsis: { tooltip: label } }, label))),
58
- React.createElement("div", { className: "total" }, isNumber(total) ? total : '')));
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 ? { label: React.createElement(CustomRootLabel, null, label) } : {})), { children: !!children && !isEmpty(children)
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(Menu, Object.assign({ items: menuItems, inlineIndent: 0, mode: "inline", expandIcon: React.createElement(Icon, { type: "icon-ants-expand-more", style: { fontSize: 20, color: '#595959' } }), onClick: handleClickMenu }, restOfProps))));
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';