@antscorp/antsomi-ui 1.3.3-beta.7 → 1.3.3-beta.71

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 (378) hide show
  1. package/es/assets/images/iphone-top-bar.png +0 -0
  2. package/es/assets/images/iphone.png +0 -0
  3. package/es/assets/images/stars_slider.png +0 -0
  4. package/es/components/atoms/Button/index.d.ts +1 -8
  5. package/es/components/atoms/Empty/Empty.d.ts +6 -5
  6. package/es/components/atoms/Empty/Empty.js +7 -1
  7. package/es/components/atoms/Flex/Flex.d.ts +2 -0
  8. package/es/components/atoms/Flex/Flex.js +1 -0
  9. package/es/components/atoms/Flex/index.d.ts +1 -0
  10. package/es/components/atoms/Flex/index.js +1 -0
  11. package/es/components/atoms/Input/Input.d.ts +14 -3
  12. package/es/components/atoms/Input/Input.js +7 -3
  13. package/es/components/atoms/InputDynamic/EditCaretPositioning.d.ts +2 -0
  14. package/es/components/atoms/InputDynamic/EditCaretPositioning.js +89 -0
  15. package/es/components/atoms/InputDynamic/InputDynamic.d.ts +10 -0
  16. package/es/components/atoms/InputDynamic/InputDynamic.js +484 -0
  17. package/es/components/atoms/InputDynamic/PopupShortLink.d.ts +16 -0
  18. package/es/components/atoms/InputDynamic/PopupShortLink.js +85 -0
  19. package/es/components/atoms/InputDynamic/constants.d.ts +71 -0
  20. package/es/components/atoms/InputDynamic/constants.js +71 -0
  21. package/es/components/atoms/InputDynamic/index.d.ts +2 -0
  22. package/es/components/atoms/InputDynamic/index.js +1 -0
  23. package/es/components/atoms/InputDynamic/styled.d.ts +13 -0
  24. package/es/components/atoms/InputDynamic/styled.js +293 -0
  25. package/es/components/atoms/InputDynamic/types.d.ts +113 -0
  26. package/es/components/atoms/InputDynamic/types.js +1 -0
  27. package/es/components/atoms/InputDynamic/utils.d.ts +30 -0
  28. package/es/components/atoms/InputDynamic/utils.js +872 -0
  29. package/es/components/atoms/MobileFrame/MobileFrame.d.ts +4 -0
  30. package/es/components/atoms/MobileFrame/MobileFrame.js +22 -0
  31. package/es/components/atoms/MobileFrame/constants.d.ts +4 -0
  32. package/es/components/atoms/MobileFrame/constants.js +4 -0
  33. package/es/components/atoms/MobileFrame/index.d.ts +2 -0
  34. package/es/components/atoms/MobileFrame/index.js +1 -0
  35. package/es/components/atoms/MobileFrame/styled.d.ts +3 -0
  36. package/es/components/atoms/MobileFrame/styled.js +33 -0
  37. package/es/components/atoms/Pagination/index.d.ts +1 -0
  38. package/es/components/atoms/Popover/Popover.d.ts +1 -1
  39. package/es/components/atoms/Popover/styled.d.ts +1 -1
  40. package/es/components/atoms/PreviewTabs/PreviewTabs.d.ts +7 -0
  41. package/es/components/atoms/PreviewTabs/PreviewTabs.js +67 -0
  42. package/es/components/atoms/PreviewTabs/index.d.ts +2 -0
  43. package/es/components/atoms/PreviewTabs/index.js +1 -0
  44. package/es/components/atoms/PreviewTabs/styled.d.ts +6 -0
  45. package/es/components/atoms/PreviewTabs/styled.js +79 -0
  46. package/es/components/atoms/Progress/Progress.d.ts +1 -1
  47. package/es/components/atoms/Radio/index.d.ts +3 -3
  48. package/es/components/atoms/RateV2/RateV2.d.ts +18 -0
  49. package/es/components/atoms/RateV2/RateV2.js +73 -0
  50. package/es/components/atoms/RateV2/index.d.ts +1 -0
  51. package/es/components/atoms/RateV2/index.js +1 -0
  52. package/es/components/atoms/RequiredLabel/index.d.ts +1 -0
  53. package/es/components/atoms/RequiredLabel/index.js +4 -3
  54. package/es/components/atoms/Slider/index.d.ts +2 -1
  55. package/es/components/atoms/Slider/index.js +7 -14
  56. package/es/components/atoms/SliderV2/index.d.ts +6 -0
  57. package/es/components/atoms/SliderV2/index.js +21 -0
  58. package/es/components/atoms/Space/Space.d.ts +1 -1
  59. package/es/components/atoms/Spin/Spin.d.ts +2 -1
  60. package/es/components/atoms/Spin/styled.d.ts +1 -1
  61. package/es/components/atoms/Statistic/Statistic.d.ts +1 -4
  62. package/es/components/atoms/index.d.ts +8 -0
  63. package/es/components/atoms/index.js +6 -0
  64. package/es/components/common/ConfigProvider/ConfigProvider.js +6 -0
  65. package/es/components/common/ConfigProvider/GlobalStyle.js +281 -27
  66. package/es/components/icons/ArrowGrowIcon.d.ts +2 -1
  67. package/es/components/icons/AudioRecordIcon.d.ts +2 -1
  68. package/es/components/icons/BugIcon.d.ts +2 -1
  69. package/es/components/icons/CameraIcon.d.ts +2 -1
  70. package/es/components/icons/CaptureIcon.d.ts +2 -1
  71. package/es/components/icons/CheckSlimIcon.d.ts +2 -1
  72. package/es/components/icons/CloseIcon.d.ts +2 -1
  73. package/es/components/icons/CommentIcon.d.ts +2 -1
  74. package/es/components/icons/EventIcon.d.ts +2 -1
  75. package/es/components/icons/FreeDrawIcon.d.ts +2 -1
  76. package/es/components/icons/GPTIcon.d.ts +2 -1
  77. package/es/components/icons/GPTIconV2.d.ts +2 -1
  78. package/es/components/icons/GPTIconV3.d.ts +2 -1
  79. package/es/components/icons/HighlightIcon.d.ts +2 -1
  80. package/es/components/icons/IdeaIcon.d.ts +2 -1
  81. package/es/components/icons/InvisibleIcon.d.ts +2 -1
  82. package/es/components/icons/MuteIcon.d.ts +2 -1
  83. package/es/components/icons/OpenUrlIcon.d.ts +2 -1
  84. package/es/components/icons/PauseIcon.d.ts +2 -1
  85. package/es/components/icons/PlaneIcon.d.ts +2 -1
  86. package/es/components/icons/RequestIcon.d.ts +2 -1
  87. package/es/components/icons/StopRecordIcon.d.ts +2 -1
  88. package/es/components/icons/UserIcon.d.ts +2 -1
  89. package/es/components/icons/VerticalDotsIcon.d.ts +2 -1
  90. package/es/components/icons/WarningIcon.d.ts +2 -1
  91. package/es/components/molecules/AddDynamicContent/AddDynamicContent.d.ts +35 -0
  92. package/es/components/molecules/AddDynamicContent/AddDynamicContent.js +1248 -0
  93. package/es/components/molecules/AddDynamicContent/components/DisplayFormat/DisplayFormat.d.ts +12 -0
  94. package/es/components/molecules/AddDynamicContent/components/DisplayFormat/DisplayFormat.js +25 -0
  95. package/es/components/molecules/AddDynamicContent/components/DisplayFormat/index.d.ts +3 -0
  96. package/es/components/molecules/AddDynamicContent/components/DisplayFormat/index.js +3 -0
  97. package/es/components/molecules/AddDynamicContent/components/FormatDatetime/FormatDatetime.d.ts +19 -0
  98. package/es/components/molecules/AddDynamicContent/components/FormatDatetime/FormatDatetime.js +100 -0
  99. package/es/components/molecules/AddDynamicContent/components/FormatDatetime/index.d.ts +1 -0
  100. package/es/components/molecules/AddDynamicContent/components/FormatDatetime/index.js +1 -0
  101. package/es/components/molecules/AddDynamicContent/components/FormatNumber/FormatNumber.d.ts +52 -0
  102. package/es/components/molecules/AddDynamicContent/components/FormatNumber/FormatNumber.js +132 -0
  103. package/es/components/molecules/AddDynamicContent/components/FormatNumber/index.d.ts +1 -0
  104. package/es/components/molecules/AddDynamicContent/components/FormatNumber/index.js +1 -0
  105. package/es/components/molecules/AddDynamicContent/components/index.d.ts +3 -0
  106. package/es/components/molecules/AddDynamicContent/components/index.js +3 -0
  107. package/es/components/molecules/AddDynamicContent/constants.d.ts +101 -0
  108. package/es/components/molecules/AddDynamicContent/constants.js +152 -0
  109. package/es/components/molecules/AddDynamicContent/currencies.json +1523 -0
  110. package/es/components/molecules/AddDynamicContent/index.d.ts +2 -0
  111. package/es/components/molecules/AddDynamicContent/index.js +2 -0
  112. package/es/components/molecules/AddDynamicContent/styled.d.ts +12 -0
  113. package/es/components/molecules/AddDynamicContent/styled.js +30 -0
  114. package/es/components/molecules/AddDynamicContent/types.d.ts +13 -0
  115. package/es/components/molecules/AddDynamicContent/types.js +1 -0
  116. package/es/components/molecules/AddDynamicContent/utils.d.ts +41 -0
  117. package/es/components/molecules/AddDynamicContent/utils.js +396 -0
  118. package/es/components/molecules/CaptureScreen/CaptureScreen.d.ts +2 -1
  119. package/es/components/molecules/CaptureScreen/components/CommentBox/CommentBox.d.ts +2 -1
  120. package/es/components/molecules/CaptureScreen/components/Cursor/Cursor.d.ts +2 -1
  121. package/es/components/molecules/Collapse/Collapse.d.ts +3 -3
  122. package/es/components/molecules/Collapse/Collapse.js +9 -0
  123. package/es/components/molecules/ColorSetting/styled.d.ts +1 -8
  124. package/es/components/molecules/DatePicker/components/AdvancedPicker/AdvancedPicker.d.ts +2 -2
  125. package/es/components/molecules/DatePicker/components/AdvancedPicker/AdvancedPicker.js +260 -113
  126. package/es/components/molecules/DatePicker/components/AdvancedPicker/constants.d.ts +66 -25
  127. package/es/components/molecules/DatePicker/components/AdvancedPicker/constants.js +109 -0
  128. package/es/components/molecules/DatePicker/components/AdvancedPicker/styled.js +48 -4
  129. package/es/components/molecules/DatePicker/components/AdvancedPicker/types.d.ts +22 -0
  130. package/es/components/molecules/DatePicker/components/AdvancedPicker/utils.d.ts +20 -0
  131. package/es/components/molecules/DatePicker/components/AdvancedPicker/utils.js +90 -1
  132. package/es/components/molecules/Drawer/Drawer.d.ts +5 -1
  133. package/es/components/molecules/Drawer/Drawer.js +3 -1
  134. package/es/components/molecules/Drawer/index.d.ts +1 -0
  135. package/es/components/molecules/EditorScript/EditorScript.d.ts +14 -0
  136. package/es/components/molecules/EditorScript/EditorScript.js +89 -0
  137. package/es/components/molecules/EditorScript/index.d.ts +1 -0
  138. package/es/components/molecules/EditorScript/index.js +1 -0
  139. package/es/components/molecules/EditorScript/styled.d.ts +1 -0
  140. package/es/components/molecules/EditorScript/styled.js +3 -0
  141. package/es/components/molecules/Form/Form.d.ts +1 -0
  142. package/es/components/molecules/Form/Form.js +1 -0
  143. package/es/components/molecules/Form/index.d.ts +1 -0
  144. package/es/components/molecules/Form/index.js +1 -0
  145. package/es/components/molecules/IconSelection/styled.d.ts +1 -8
  146. package/es/components/molecules/Modal/Modal.d.ts +2 -2
  147. package/es/components/molecules/Modal/index.d.ts +1 -0
  148. package/es/components/molecules/Modal/styled.d.ts +1 -1
  149. package/es/components/molecules/Modal/styled.js +2 -0
  150. package/es/components/molecules/ModalV2/ModalV2.d.ts +5 -0
  151. package/es/components/molecules/ModalV2/ModalV2.js +26 -0
  152. package/es/components/molecules/ModalV2/index.d.ts +2 -0
  153. package/es/components/molecules/ModalV2/index.js +1 -0
  154. package/es/components/molecules/ModalV2/styled.d.ts +7 -0
  155. package/es/components/molecules/ModalV2/styled.js +22 -0
  156. package/es/components/molecules/Popconfirm/Popconfirm.d.ts +1 -1
  157. package/es/components/molecules/PreviewModal/PreviewModal.d.ts +7 -0
  158. package/es/components/molecules/PreviewModal/PreviewModal.js +30 -0
  159. package/es/components/molecules/PreviewModal/index.d.ts +2 -0
  160. package/es/components/molecules/PreviewModal/index.js +1 -0
  161. package/es/components/molecules/PreviewModal/styled.d.ts +4 -0
  162. package/es/components/molecules/PreviewModal/styled.js +39 -0
  163. package/es/components/molecules/ResizeGrid/ResizeGrid.d.ts +3 -0
  164. package/es/components/molecules/ResizeGrid/ResizeGrid.js +728 -0
  165. package/es/components/molecules/ResizeGrid/components/Cell/Cell.d.ts +3 -0
  166. package/es/components/molecules/ResizeGrid/components/Cell/Cell.js +87 -0
  167. package/es/components/molecules/ResizeGrid/components/Cell/index.d.ts +1 -0
  168. package/es/components/molecules/ResizeGrid/components/Cell/index.js +1 -0
  169. package/es/components/molecules/ResizeGrid/components/Cell/styled.d.ts +3 -0
  170. package/es/components/molecules/ResizeGrid/components/Cell/styled.js +80 -0
  171. package/es/components/molecules/ResizeGrid/constant.d.ts +35 -0
  172. package/es/components/molecules/ResizeGrid/constant.js +111 -0
  173. package/es/components/molecules/ResizeGrid/index.d.ts +2 -0
  174. package/es/components/molecules/ResizeGrid/index.js +1 -0
  175. package/es/components/molecules/ResizeGrid/styled.d.ts +10 -0
  176. package/es/components/molecules/ResizeGrid/styled.js +56 -0
  177. package/es/components/molecules/ResizeGrid/types.d.ts +147 -0
  178. package/es/components/molecules/ResizeGrid/types.js +1 -0
  179. package/es/components/molecules/RichMenu/RichMenuBlock/RichMenuBlock.d.ts +12 -0
  180. package/es/components/molecules/RichMenu/RichMenuBlock/RichMenuBlock.js +53 -0
  181. package/es/components/molecules/RichMenu/RichMenuBlock/RichMenuCell/index.d.ts +17 -0
  182. package/es/components/molecules/RichMenu/RichMenuBlock/RichMenuCell/index.js +108 -0
  183. package/es/components/molecules/RichMenu/RichMenuBlock/RichMenuCell/styled.d.ts +20 -0
  184. package/es/components/molecules/RichMenu/RichMenuBlock/RichMenuCell/styled.js +135 -0
  185. package/es/components/molecules/RichMenu/RichMenuBlock/constants.d.ts +2 -0
  186. package/es/components/molecules/RichMenu/RichMenuBlock/constants.js +765 -0
  187. package/es/components/molecules/RichMenu/RichMenuBlock/index.d.ts +3 -0
  188. package/es/components/molecules/RichMenu/RichMenuBlock/index.js +2 -0
  189. package/es/components/molecules/RichMenu/RichMenuBlock/styled.d.ts +9 -0
  190. package/es/components/molecules/RichMenu/RichMenuBlock/styled.js +17 -0
  191. package/es/components/molecules/RichMenu/RichMenuChatBar/RichMenuChatBar.d.ts +10 -0
  192. package/es/components/molecules/RichMenu/RichMenuChatBar/RichMenuChatBar.js +32 -0
  193. package/es/components/molecules/RichMenu/RichMenuChatBar/TypingChat/index.d.ts +6 -0
  194. package/es/components/molecules/RichMenu/RichMenuChatBar/TypingChat/index.js +15 -0
  195. package/es/components/molecules/RichMenu/RichMenuChatBar/TypingChat/styled.d.ts +4 -0
  196. package/es/components/molecules/RichMenu/RichMenuChatBar/TypingChat/styled.js +47 -0
  197. package/es/components/molecules/RichMenu/RichMenuChatBar/index.d.ts +2 -0
  198. package/es/components/molecules/RichMenu/RichMenuChatBar/index.js +1 -0
  199. package/es/components/molecules/RichMenu/RichMenuChatBar/styled.d.ts +9 -0
  200. package/es/components/molecules/RichMenu/RichMenuChatBar/styled.js +37 -0
  201. package/es/components/molecules/RichMenu/RichMenuMobileView/RichMenuMobileView.d.ts +10 -0
  202. package/es/components/molecules/RichMenu/RichMenuMobileView/RichMenuMobileView.js +37 -0
  203. package/es/components/molecules/RichMenu/RichMenuMobileView/index.d.ts +1 -0
  204. package/es/components/molecules/RichMenu/RichMenuMobileView/index.js +1 -0
  205. package/es/components/molecules/RichMenu/RichMenuMobileView/styled.d.ts +6 -0
  206. package/es/components/molecules/RichMenu/RichMenuMobileView/styled.js +20 -0
  207. package/es/components/molecules/RichMenu/index.d.ts +3 -0
  208. package/es/components/molecules/RichMenu/index.js +3 -0
  209. package/es/components/molecules/Select/Select.d.ts +6 -4
  210. package/es/components/molecules/Select/Select.js +23 -2
  211. package/es/components/molecules/Select/Test.d.ts +2 -1
  212. package/es/components/molecules/ShareAccess/ShareAccess.d.ts +3 -0
  213. package/es/components/molecules/ShareAccess/ShareAccess.js +23 -0
  214. package/es/components/molecules/ShareAccess/actions.d.ts +16 -0
  215. package/es/components/molecules/ShareAccess/actions.js +12 -0
  216. package/es/components/molecules/ShareAccess/components/GeneralAccess/GeneralAccess.d.ts +2 -0
  217. package/es/components/molecules/ShareAccess/components/GeneralAccess/GeneralAccess.js +78 -0
  218. package/es/components/molecules/ShareAccess/components/GeneralAccess/index.d.ts +1 -0
  219. package/es/components/molecules/ShareAccess/components/GeneralAccess/index.js +1 -0
  220. package/es/components/molecules/ShareAccess/components/GeneralAccess/styled.d.ts +1 -0
  221. package/es/components/molecules/ShareAccess/components/GeneralAccess/styled.js +57 -0
  222. package/es/components/molecules/ShareAccess/components/LayoutContent/LayoutContent.d.ts +3 -0
  223. package/es/components/molecules/ShareAccess/components/LayoutContent/LayoutContent.js +19 -0
  224. package/es/components/molecules/ShareAccess/components/LayoutContent/index.d.ts +1 -0
  225. package/es/components/molecules/ShareAccess/components/LayoutContent/index.js +1 -0
  226. package/es/components/molecules/ShareAccess/components/LayoutContent/styled.d.ts +1 -0
  227. package/es/components/molecules/ShareAccess/components/LayoutContent/styled.js +7 -0
  228. package/es/components/molecules/ShareAccess/components/ModalTransferOwnerShip/ModalTransferOwnerShip.d.ts +2 -0
  229. package/es/components/molecules/ShareAccess/components/ModalTransferOwnerShip/ModalTransferOwnerShip.js +43 -0
  230. package/es/components/molecules/ShareAccess/components/ModalTransferOwnerShip/index.d.ts +0 -0
  231. package/es/components/molecules/ShareAccess/components/ModalTransferOwnerShip/index.js +1 -0
  232. package/es/components/molecules/ShareAccess/components/ModalTransferOwnerShip/styled.d.ts +7 -0
  233. package/es/components/molecules/ShareAccess/components/ModalTransferOwnerShip/styled.js +18 -0
  234. package/es/components/molecules/ShareAccess/components/PeopleAccess/PeopleAccess.d.ts +5 -0
  235. package/es/components/molecules/ShareAccess/components/PeopleAccess/PeopleAccess.js +97 -0
  236. package/es/components/molecules/ShareAccess/components/PeopleAccess/index.d.ts +1 -0
  237. package/es/components/molecules/ShareAccess/components/PeopleAccess/index.js +1 -0
  238. package/es/components/molecules/ShareAccess/components/PeopleAccess/styled.d.ts +1 -0
  239. package/es/components/molecules/ShareAccess/components/PeopleAccess/styled.js +46 -0
  240. package/es/components/molecules/ShareAccess/components/SearchUser/SearchUser.d.ts +5 -0
  241. package/es/components/molecules/ShareAccess/components/SearchUser/SearchUser.js +73 -0
  242. package/es/components/molecules/ShareAccess/components/SearchUser/index.d.ts +1 -0
  243. package/es/components/molecules/ShareAccess/components/SearchUser/index.js +1 -0
  244. package/es/components/molecules/ShareAccess/components/SearchUser/styled.d.ts +2 -0
  245. package/es/components/molecules/ShareAccess/components/SearchUser/styled.js +29 -0
  246. package/es/components/molecules/ShareAccess/components/index.d.ts +1 -0
  247. package/es/components/molecules/ShareAccess/components/index.js +1 -0
  248. package/es/components/molecules/ShareAccess/constants.d.ts +67 -0
  249. package/es/components/molecules/ShareAccess/constants.js +85 -0
  250. package/es/components/molecules/ShareAccess/context.d.ts +4 -0
  251. package/es/components/molecules/ShareAccess/context.js +3 -0
  252. package/es/components/molecules/ShareAccess/hooks/index.d.ts +1 -0
  253. package/es/components/molecules/ShareAccess/hooks/index.js +1 -0
  254. package/es/components/molecules/ShareAccess/hooks/useShareAccess.d.ts +18 -0
  255. package/es/components/molecules/ShareAccess/hooks/useShareAccess.js +29 -0
  256. package/es/components/molecules/ShareAccess/index.d.ts +4 -0
  257. package/es/components/molecules/ShareAccess/index.js +4 -0
  258. package/es/components/molecules/ShareAccess/reducer.d.ts +2 -0
  259. package/es/components/molecules/ShareAccess/reducer.js +19 -0
  260. package/es/components/molecules/ShareAccess/types.d.ts +54 -0
  261. package/es/components/molecules/ShareAccess/types.js +1 -0
  262. package/es/components/molecules/ShareAccess/utils.d.ts +38 -0
  263. package/es/components/molecules/ShareAccess/utils.js +57 -0
  264. package/es/components/molecules/TreeSelect/TreeSelect.d.ts +4 -5
  265. package/es/components/molecules/UploadImage/MediaIcon.d.ts +2 -1
  266. package/es/components/molecules/UploadImage/MediaThumb.d.ts +11 -0
  267. package/es/components/molecules/UploadImage/MediaThumb.js +31 -0
  268. package/es/components/molecules/UploadImage/index.d.ts +6 -2
  269. package/es/components/molecules/UploadImage/index.js +111 -84
  270. package/es/components/molecules/UploadImage/styled.js +0 -4
  271. package/es/components/molecules/UploadImage/utils.d.ts +3 -0
  272. package/es/components/molecules/UploadImage/utils.js +24 -0
  273. package/es/components/molecules/index.d.ts +11 -3
  274. package/es/components/molecules/index.js +9 -3
  275. package/es/components/organism/Help/styled.d.ts +6 -16
  276. package/es/components/organism/Table/ExplorePivotTable/styled.d.ts +1 -0
  277. package/es/constants/index.d.ts +1 -0
  278. package/es/constants/index.js +1 -0
  279. package/es/constants/queries.d.ts +14 -0
  280. package/es/constants/queries.js +21 -0
  281. package/es/constants/richMenu.d.ts +19 -0
  282. package/es/constants/richMenu.js +19 -0
  283. package/es/constants/storybook.d.ts +7 -1
  284. package/es/constants/storybook.js +12 -0
  285. package/es/constants/theme.js +30 -3
  286. package/es/hooks/index.d.ts +1 -0
  287. package/es/hooks/index.js +1 -0
  288. package/es/hooks/useDebounceCallback.d.ts +1 -0
  289. package/es/hooks/useDebounceCallback.js +5 -0
  290. package/es/hooks/useDebounceV2.d.ts +1 -0
  291. package/es/hooks/useDebounceV2.js +11 -0
  292. package/es/hooks/useDeepCompareEffect.d.ts +1 -0
  293. package/es/hooks/useDeepCompareEffect.js +21 -0
  294. package/es/hooks/useDeepCompareMemo.d.ts +2 -0
  295. package/es/hooks/useDeepCompareMemo.js +21 -0
  296. package/es/hooks/usePrevious.d.ts +2 -0
  297. package/es/hooks/usePrevious.js +9 -0
  298. package/es/locales/en/translation.json +160 -3
  299. package/es/locales/i18n.d.ts +158 -0
  300. package/es/locales/translations.d.ts +157 -0
  301. package/es/locales/vi/translation.json +2 -1
  302. package/es/models/BusinessObject.d.ts +116 -0
  303. package/es/models/BusinessObject.js +113 -0
  304. package/es/models/Currency.d.ts +9 -0
  305. package/es/models/Currency.js +10 -0
  306. package/es/models/CustomFunction.d.ts +19 -0
  307. package/es/models/CustomFunction.js +25 -0
  308. package/es/models/DynamicContentAttribute.d.ts +34 -0
  309. package/es/models/DynamicContentAttribute.js +9 -0
  310. package/es/models/EventTrackingAttribute.d.ts +11 -0
  311. package/es/models/EventTrackingAttribute.js +13 -0
  312. package/es/models/PromotionPool.d.ts +11 -0
  313. package/es/models/PromotionPool.js +12 -0
  314. package/es/models/{SavedImage.d.ts → SavedMedia.d.ts} +5 -5
  315. package/es/models/{SavedImage.js → SavedMedia.js} +3 -3
  316. package/es/queries/BusinessObject/index.d.ts +6 -0
  317. package/es/queries/BusinessObject/index.js +6 -0
  318. package/es/queries/BusinessObject/useGetListAllEvents.d.ts +11 -0
  319. package/es/queries/BusinessObject/useGetListAllEvents.js +14 -0
  320. package/es/queries/BusinessObject/useGetListAttributeBO.d.ts +17 -0
  321. package/es/queries/BusinessObject/useGetListAttributeBO.js +41 -0
  322. package/es/queries/BusinessObject/useGetListBO.d.ts +6 -0
  323. package/es/queries/BusinessObject/useGetListBO.js +19 -0
  324. package/es/queries/BusinessObject/useGetListEventAttr.d.ts +4 -0
  325. package/es/queries/BusinessObject/useGetListEventAttr.js +15 -0
  326. package/es/queries/BusinessObject/useGetListPromotionCodeAttr.d.ts +6 -0
  327. package/es/queries/BusinessObject/useGetListPromotionCodeAttr.js +26 -0
  328. package/es/queries/BusinessObject/useGetListSourceByEvent.d.ts +13 -0
  329. package/es/queries/BusinessObject/useGetListSourceByEvent.js +11 -0
  330. package/es/queries/CustomFunction/index.d.ts +2 -0
  331. package/es/queries/CustomFunction/index.js +2 -0
  332. package/es/queries/CustomFunction/useCustomFunction.d.ts +19 -0
  333. package/es/queries/CustomFunction/useCustomFunction.js +53 -0
  334. package/es/queries/DynamicContentAttribute/index.d.ts +1 -0
  335. package/es/queries/DynamicContentAttribute/index.js +1 -0
  336. package/es/queries/DynamicContentAttribute/useGetDynamicContentAttr.d.ts +10 -0
  337. package/es/queries/DynamicContentAttribute/useGetDynamicContentAttr.js +21 -0
  338. package/es/queries/PromotionPool/index.d.ts +1 -0
  339. package/es/queries/PromotionPool/index.js +1 -0
  340. package/es/queries/PromotionPool/useGetListPromotionPool.d.ts +9 -0
  341. package/es/queries/PromotionPool/useGetListPromotionPool.js +62 -0
  342. package/es/queries/ThirdParty/index.d.ts +1 -0
  343. package/es/queries/ThirdParty/index.js +1 -0
  344. package/es/queries/ThirdParty/useGetEventTrackingAttributes.d.ts +14 -0
  345. package/es/queries/ThirdParty/useGetEventTrackingAttributes.js +15 -0
  346. package/es/queries/configs.d.ts +4 -0
  347. package/es/queries/configs.js +13 -0
  348. package/es/queries/index.d.ts +6 -0
  349. package/es/queries/index.js +6 -0
  350. package/es/services/MediaTemplateDesign/BusinessObject/index.d.ts +8 -0
  351. package/es/services/MediaTemplateDesign/BusinessObject/index.js +100 -0
  352. package/es/services/MediaTemplateDesign/CustomFunction/index.d.ts +15 -0
  353. package/es/services/MediaTemplateDesign/CustomFunction/index.js +135 -0
  354. package/es/services/MediaTemplateDesign/DynamicContentAttribute/index.d.ts +4 -0
  355. package/es/services/MediaTemplateDesign/DynamicContentAttribute/index.js +39 -0
  356. package/es/services/MediaTemplateDesign/ListCurrency/index.d.ts +6 -0
  357. package/es/services/MediaTemplateDesign/ListCurrency/index.js +34 -0
  358. package/es/services/MediaTemplateDesign/PromotionPool/index.d.ts +3 -0
  359. package/es/services/MediaTemplateDesign/PromotionPool/index.js +31 -0
  360. package/es/services/MediaTemplateDesign/UploadFile/index.d.ts +5 -5
  361. package/es/services/MediaTemplateDesign/UploadFile/index.js +36 -19
  362. package/es/services/ThirParty/index.d.ts +8 -0
  363. package/es/services/ThirParty/index.js +26 -0
  364. package/es/services/index.d.ts +14 -5
  365. package/es/services/index.js +45 -1
  366. package/es/test.d.ts +2 -1
  367. package/es/test.js +201 -63
  368. package/es/types/index.d.ts +17 -0
  369. package/es/types/index.js +2 -1
  370. package/es/types/richMenu.d.ts +214 -0
  371. package/es/types/richMenu.js +1 -0
  372. package/es/types/variables.d.ts +2 -0
  373. package/es/types/variables.js +1 -0
  374. package/es/utils/common.d.ts +4 -0
  375. package/es/utils/common.js +21 -0
  376. package/es/utils/handleError.d.ts +32 -2
  377. package/es/utils/handleError.js +42 -4
  378. package/package.json +18 -8
@@ -0,0 +1,484 @@
1
+ /* eslint-disable @typescript-eslint/no-unused-expressions */
2
+ // Libraries
3
+ import React, { useState, useLayoutEffect, useEffect, useRef, useCallback, useMemo, } from 'react';
4
+ import classnames from 'classnames';
5
+ import { has, isEmpty, omit } from 'lodash';
6
+ // Components
7
+ import CaretPositioning from './EditCaretPositioning';
8
+ import { WrapperInputStyle, TooltipHover, DynamicItem } from './styled';
9
+ import { Popover } from 'antd';
10
+ import { AddDynamicContent } from '../../molecules/AddDynamicContent';
11
+ import { PopupShortLink } from './PopupShortLink';
12
+ import Icon from '@antscorp/icons';
13
+ // Utils
14
+ import { getObjectPropSafely, random, safeParse } from '@antscorp/antsomi-ui/es/utils';
15
+ import { convertBreakTag, convertDivToBreakTag, convertHtmlText, genShortLinkValue, getInsertLinkPatternWithAppendSpaceEnd, getInsertPatternWithAppendSpaceEnd, handleUpdateInputPersonalization, initialValue, mapLabelPersonalization, pasteHtmlAtCaret, removeHtmlTag, spacingNonTracking, validateHTMLTags, createElement, getBgColorByContentSourceType, } from './utils';
16
+ // Hooks
17
+ import { useDebounce } from '@antscorp/antsomi-ui/es/hooks/useDebounce';
18
+ const PATH = 'src/components/atoms/InputDynamic/InputDynamic.tsx';
19
+ export const AllowDynamicType = {
20
+ SHORTLINK: 'shortlink',
21
+ ADDPERSONALIZATION: 'addPersonalization',
22
+ };
23
+ const defaultProps = {
24
+ value: '',
25
+ isViewMode: false,
26
+ errors: [],
27
+ canMultipleLine: false,
28
+ apiConfig: {
29
+ domain: 'https://sandbox-media-template.antsomi.com/cdp',
30
+ slug: '/api/v1',
31
+ token: '5474r2x214z2a4b403e4y446p4b4t2b4t474j4t2i5',
32
+ accountId: '1600085679',
33
+ userId: '1600085679',
34
+ },
35
+ showIndex: true,
36
+ showDisplayFormat: true,
37
+ isShowCustomFunction: true,
38
+ onError: () => { },
39
+ onChange: () => { },
40
+ addMessageToQueue: () => { },
41
+ };
42
+ export const InputDynamic = (props) => {
43
+ const { value, isViewMode, errors, disabledOpts, canMultipleLine, allowDynamicOptions, showIndex, showDisplayFormat, isShowCustomFunction, apiConfig, onError, onChange, addMessageToQueue, } = props;
44
+ // States
45
+ const [textValue, setTextValue] = useState(initialValue(value));
46
+ const [initSelectedProperties, setInitSelectedProperties] = useState({
47
+ keyTag: 'shortlink_static',
48
+ link: '',
49
+ urlDetected: '',
50
+ });
51
+ const [isShowPopover, setIsShowPopover] = useState(false);
52
+ const [dynamicContent, setDynamicContent] = useState({
53
+ visible: false,
54
+ defaultData: {},
55
+ activeTagId: '',
56
+ contentSources: {
57
+ groups: [],
58
+ expanded: [],
59
+ isLoadingDataBO: false,
60
+ },
61
+ journeySettings: {
62
+ unsubscribeSegmentType: 'customer',
63
+ triggerType: 'event_based',
64
+ triggerEvent: {
65
+ eventActionId: '',
66
+ eventCategoryId: '',
67
+ insightPropertyIds: [],
68
+ },
69
+ },
70
+ });
71
+ const [popoverOpenShortLink, setPopoverOpenShortLink] = useState(false);
72
+ const [tooltipHoverDebounce, _tooltipHover, setTooltipHover] = useDebounce({ x: 0, y: 0 }, 200);
73
+ // Refs
74
+ const caretPositionRef = useRef(null);
75
+ const personalizationInputRef = useRef(null);
76
+ const isRenderAddDynamicContent = useMemo(() => {
77
+ if (isEmpty(apiConfig) ||
78
+ isEmpty(allowDynamicOptions) ||
79
+ (allowDynamicOptions &&
80
+ allowDynamicOptions.findIndex(dynamicKey => dynamicKey === AllowDynamicType.ADDPERSONALIZATION) === -1))
81
+ return false;
82
+ return true;
83
+ }, [apiConfig, allowDynamicOptions]);
84
+ const onTriggerChange = (event = null) => {
85
+ var _a;
86
+ try {
87
+ let tmp = (_a = personalizationInputRef.current) === null || _a === void 0 ? void 0 : _a.innerHTML;
88
+ if (event !== null) {
89
+ caretPositionRef.current = CaretPositioning.saveSelection(event.currentTarget);
90
+ tmp = event.currentTarget.innerHTML;
91
+ }
92
+ tmp = tmp === null || tmp === void 0 ? void 0 : tmp.replace(
93
+ // replace old non tracking url to detect url
94
+ /<button(?=[^>]*class="insert-word")[^>]*value=['"]#(?:{nontrackurl\()?(https?:\/\/[0-9a-zA-Z-{}|"\./?_=&%:#*@;]+)(?:\)})?['"][^>]*>.*?<\/button>/g, match => {
95
+ const url = match.match(/(https?:\/\/[0-9a-zA-Z-\./?_=&%:#*@;]+)/);
96
+ if (url) {
97
+ return `<span id="${random(5)}" class="detect-url">${url[1]}</span>`;
98
+ }
99
+ return match; // If no match found, return the original string
100
+ }).replace(
101
+ // replace url to detect url
102
+ /((?<!class="detect-url">|#{shortlink(?:_static)?\(|<span style="line-height: 20px;margin-right: 8px;pointer-events:none;">)\bhttps*:\/\/[0-9a-zA-Z-{}|"\./?_=&%:#*@;]+)/g, match => `<span id="${random(5)}" class="detect-url">${match}</span>`);
103
+ tmp = convertDivToBreakTag(tmp);
104
+ setTextValue(tmp);
105
+ const text = convertHtmlText(tmp, 'raw', {}, {}, 'input', 'add');
106
+ const textConverted = convertBreakTag(text);
107
+ onChange(removeHtmlTag(textConverted));
108
+ }
109
+ catch (error) {
110
+ if (typeof addMessageToQueue === 'function') {
111
+ addMessageToQueue({
112
+ path: 'app/containers/UIDev/UIEditorPersonalization/Input/index.jsx',
113
+ func: 'onTriggerChange',
114
+ data: error,
115
+ });
116
+ }
117
+ // eslint-disable-next-line no-console
118
+ console.error(error);
119
+ }
120
+ };
121
+ const handleHidePopover = () => {
122
+ setIsShowPopover(false);
123
+ };
124
+ const handleOpenChangeAddDynamicContent = useCallback((newChange) => {
125
+ setDynamicContent(prev => (Object.assign(Object.assign({}, prev), { visible: newChange })));
126
+ }, []);
127
+ const handleOpenChange = (newOpen) => {
128
+ setDynamicContent(prev => (Object.assign(Object.assign({}, prev), { activeTagId: '' })));
129
+ setIsShowPopover(newOpen);
130
+ };
131
+ const callback = (type, data) => {
132
+ var _a, _b;
133
+ switch (type) {
134
+ case 'REPLACE_DETECTED_URL': {
135
+ const innerHTML = getObjectPropSafely(() => { var _a; return (_a = personalizationInputRef.current) === null || _a === void 0 ? void 0 : _a.innerHTML; }, '');
136
+ if (innerHTML) {
137
+ // remove span url và focus vào vị trí remove để add tag shortlink vào vị trí này.
138
+ const index = Array.from((_a = personalizationInputRef.current) === null || _a === void 0 ? void 0 : _a.childNodes).findIndex((element) => element.id === data.id);
139
+ const range = document.createRange(); // Tạo một đối tượng Range
140
+ const sel = window.getSelection(); // Lấy đối tượng Selection hiện tại
141
+ range.setStart((_b = personalizationInputRef.current) === null || _b === void 0 ? void 0 : _b.childNodes[index], 0); // Đặt điểm bắt đầu của Range
142
+ range.collapse(true); // Thu gọn Range để tập trung vào điểm bắt đầu
143
+ sel === null || sel === void 0 ? void 0 : sel.removeAllRanges(); // Xóa tất cả các Range hiện có
144
+ sel === null || sel === void 0 ? void 0 : sel.addRange(range); // Thêm Range mới vào Selection
145
+ caretPositionRef.current = CaretPositioning.saveSelection(personalizationInputRef.current);
146
+ const newDataUpdate = innerHTML.replace(data.outerHTML, '');
147
+ personalizationInputRef.current.innerHTML = newDataUpdate;
148
+ }
149
+ break;
150
+ }
151
+ default:
152
+ break;
153
+ }
154
+ };
155
+ const onPaste = (e) => {
156
+ // cancel paste
157
+ e.preventDefault();
158
+ // get text representation of clipboard
159
+ const text = (e.originalEvent || e).clipboardData.getData('text/plain');
160
+ // insert text manually
161
+ document.execCommand('insertHTML', false, text);
162
+ };
163
+ const handleInsertSortLink = (url, type) => {
164
+ try {
165
+ const { id, value: linkValue, label: linkLabel } = genShortLinkValue(url, type);
166
+ setPopoverOpenShortLink(false);
167
+ if (personalizationInputRef.current instanceof HTMLElement) {
168
+ CaretPositioning.restoreSelection(personalizationInputRef.current, caretPositionRef.current);
169
+ pasteHtmlAtCaret(getInsertLinkPatternWithAppendSpaceEnd(id, linkValue, linkLabel), null);
170
+ onTriggerChange();
171
+ caretPositionRef.current = CaretPositioning.saveSelection(personalizationInputRef.current);
172
+ }
173
+ setInitSelectedProperties({ link: '', keyTag: 'shortlink_static', urlDetected: '' });
174
+ }
175
+ catch (err) {
176
+ if (typeof addMessageToQueue === 'function') {
177
+ addMessageToQueue({
178
+ path: 'app/containers/UIDev/UIEditorPersonalization/Input/index.jsx',
179
+ func: 'handleInsertText',
180
+ data: err,
181
+ });
182
+ }
183
+ }
184
+ };
185
+ const handleCloseAddDynamicContent = () => {
186
+ setDynamicContent(Object.assign(Object.assign({}, dynamicContent), { visible: false }));
187
+ };
188
+ const handleInsertText = (dataObj) => {
189
+ try {
190
+ const id = random(5);
191
+ const { mappingFields = '', type = '', attribute = {}, customFunction = {} } = dataObj;
192
+ const isCustom = type === 'custom';
193
+ const personalizationCode = isCustom ? mappingFields : `#{${mappingFields}||""}`;
194
+ const bgColor = getBgColorByContentSourceType(type);
195
+ const label = getObjectPropSafely(() => isCustom ? customFunction.templateName : attribute.label);
196
+ if (personalizationInputRef.current instanceof HTMLElement) {
197
+ if (dynamicContent.activeTagId) {
198
+ // for case update
199
+ const element = document.getElementById(dynamicContent.activeTagId);
200
+ const child = createElement('em', {
201
+ class: 'editor-icon-remove',
202
+ style: 'color: white;font-style: normal;',
203
+ }, ['x']);
204
+ const newElement = createElement('button', {
205
+ id,
206
+ class: 'insert-word',
207
+ style: `color: white; font-size: inherit; outline: none;border: 1px solid transparent; border-radius: 1.2rem; max-height: 30px; cursor: pointer; backgroundColor: ${bgColor}`,
208
+ contentEditable: 'false',
209
+ value: `${personalizationCode.replace(/\s/gm, '&nbsp;')}`,
210
+ }, [
211
+ `${getObjectPropSafely(() => isCustom ? customFunction.templateName : attribute.label)} `,
212
+ child,
213
+ ]);
214
+ if (element && element.parentNode) {
215
+ element.parentNode.replaceChild(newElement, element);
216
+ }
217
+ setDynamicContent(prev => (Object.assign(Object.assign({}, prev), { activeTagId: dynamicContent.activeTagId, defaultData: Object.assign(Object.assign({}, (prev.defaultData || {})), { [dynamicContent.activeTagId]: dataObj }), visible: false })));
218
+ onTriggerChange();
219
+ return;
220
+ }
221
+ personalizationInputRef.current.focus();
222
+ CaretPositioning.restoreSelection(personalizationInputRef.current, caretPositionRef.current);
223
+ pasteHtmlAtCaret(getInsertPatternWithAppendSpaceEnd(id, personalizationCode, label, bgColor), null, () => {
224
+ caretPositionRef.current = CaretPositioning.saveSelection(personalizationInputRef.current);
225
+ onTriggerChange();
226
+ });
227
+ setDynamicContent(prev => (Object.assign(Object.assign({}, prev), { activeTagId: id, defaultData: Object.assign(Object.assign({}, (prev.defaultData || {})), { [id]: dataObj }), visible: false })));
228
+ }
229
+ }
230
+ catch (error) {
231
+ if (typeof addMessageToQueue === 'function') {
232
+ addMessageToQueue({
233
+ path: PATH,
234
+ func: 'handleInsertText',
235
+ data: error,
236
+ });
237
+ }
238
+ // eslint-disable-next-line no-console
239
+ console.log(error);
240
+ }
241
+ };
242
+ const handleKeyPress = (e) => {
243
+ if (canMultipleLine)
244
+ return;
245
+ if (+e.charCode === 13) {
246
+ e.preventDefault();
247
+ }
248
+ };
249
+ const getDangerouslySetInnerHTML = (text) => {
250
+ if (text) {
251
+ const regex = /<[^<>]+>/g;
252
+ let tag;
253
+ // eslint-disable-next-line no-cond-assign
254
+ while ((tag = regex.exec(text))) {
255
+ if (!validateHTMLTags.isValidTag(tag[0])) {
256
+ const finalTag = tag[0].replace('<', '&#60').replace('>', '&#62');
257
+ text = text.replace(tag[0], finalTag);
258
+ }
259
+ }
260
+ text = text.replaceAll('\n', '<br>');
261
+ if (spacingNonTracking(text)) {
262
+ return text;
263
+ }
264
+ return safeParse(text, '').concat('<br />');
265
+ }
266
+ return '';
267
+ };
268
+ const toggleShortLinkModal = useCallback(() => {
269
+ setPopoverOpenShortLink(!popoverOpenShortLink);
270
+ }, [popoverOpenShortLink]);
271
+ const handleClickDynamicItem = (e, dynamicKey) => {
272
+ e.stopPropagation();
273
+ handleHidePopover();
274
+ if (dynamicKey === AllowDynamicType.SHORTLINK) {
275
+ toggleShortLinkModal();
276
+ }
277
+ if (dynamicKey === AllowDynamicType.ADDPERSONALIZATION) {
278
+ handleOpenChangeAddDynamicContent(true);
279
+ }
280
+ };
281
+ /**
282
+ * [NOTE:open modal to edit]
283
+ */
284
+ useEffect(() => {
285
+ const handleClickTag = (e) => {
286
+ try {
287
+ e.stopPropagation();
288
+ if (e.target) {
289
+ const { value = '', id = '' } = e.target;
290
+ const shortLink = value.replace(/#|{|}|/g, '').split('(');
291
+ if (shortLink && shortLink.length >= 2) {
292
+ const link = shortLink[1].substring(0, shortLink[1].length - 1) || '';
293
+ setInitSelectedProperties(prev => (Object.assign(Object.assign({}, prev), { link, keyTag: shortLink[0], urlDetected: e.currentTarget })));
294
+ toggleShortLinkModal();
295
+ }
296
+ else {
297
+ setDynamicContent(prev => (Object.assign(Object.assign({}, prev), { activeTagId: id })));
298
+ handleOpenChangeAddDynamicContent(true);
299
+ }
300
+ }
301
+ }
302
+ catch (err) {
303
+ // eslint-disable-next-line no-console
304
+ console.log('err', err);
305
+ }
306
+ };
307
+ const listTags = Array.from(document.querySelectorAll('#ants-ui-input-personalization .input-personal .insert-word'));
308
+ if (listTags && listTags.length > 0) {
309
+ listTags.forEach((tag) => {
310
+ tag.addEventListener('click', handleClickTag);
311
+ });
312
+ }
313
+ return () => {
314
+ listTags.forEach((tag) => {
315
+ tag.removeEventListener('click', handleClickTag);
316
+ });
317
+ };
318
+ }, [handleOpenChangeAddDynamicContent, textValue, toggleShortLinkModal]);
319
+ /** Anchor tooltip */
320
+ useEffect(() => {
321
+ let listElement = [];
322
+ const handleMouseOver = (e, targetRect) => {
323
+ e === null || e === void 0 ? void 0 : e.stopPropagation();
324
+ const viewportTop = window.pageYOffset;
325
+ const viewportLeft = window.pageXOffset;
326
+ const offsetWidth = targetRect.width / 2;
327
+ const offsetHeight = targetRect.height / 2;
328
+ const tooltipHeight = 16;
329
+ const x = targetRect.left - viewportLeft + offsetWidth;
330
+ const y = targetRect.top - viewportTop - offsetHeight - tooltipHeight;
331
+ setTooltipHover({
332
+ x,
333
+ y,
334
+ });
335
+ };
336
+ const handleMouseOut = (e) => {
337
+ e === null || e === void 0 ? void 0 : e.stopPropagation();
338
+ setTooltipHover({ x: 0, y: 0 });
339
+ };
340
+ const handleClickDetectUrl = (e) => {
341
+ e === null || e === void 0 ? void 0 : e.stopPropagation();
342
+ setInitSelectedProperties(prev => {
343
+ var _a;
344
+ return (Object.assign(Object.assign({}, prev), { link: ((_a = e === null || e === void 0 ? void 0 : e.currentTarget) === null || _a === void 0 ? void 0 : _a.textContent) || '', urlDetected: e === null || e === void 0 ? void 0 : e.currentTarget }));
345
+ });
346
+ toggleShortLinkModal();
347
+ };
348
+ if (!isViewMode) {
349
+ const elements = document.querySelectorAll('#ants-ui-input-personalization .detect-url');
350
+ listElement = Array.from(elements);
351
+ if (listElement.length) {
352
+ listElement.forEach((element) => {
353
+ element.addEventListener('mouseover', e => handleMouseOver(e, element.getBoundingClientRect()));
354
+ element.addEventListener('mouseout', handleMouseOut);
355
+ /** Open shortlink modal */
356
+ element.addEventListener('click', handleClickDetectUrl);
357
+ });
358
+ }
359
+ }
360
+ return () => {
361
+ listElement.forEach((element) => {
362
+ element.removeEventListener('mouseover', handleMouseOver);
363
+ element.removeEventListener('mouseout', handleMouseOut);
364
+ });
365
+ };
366
+ }, [textValue, isViewMode, setTooltipHover, toggleShortLinkModal]);
367
+ /** Style & remove for tag shortlink button & icon remove */
368
+ useLayoutEffect(() => {
369
+ // get button Els [x] to create hover and style it
370
+ const iconRemoveEls = document.querySelectorAll('.editor-icon-remove');
371
+ const listIconRemove = iconRemoveEls && Array.from(iconRemoveEls);
372
+ // get button elements
373
+ const buttonElement = document.querySelectorAll('.insert-word');
374
+ const listBtnElement = buttonElement && Array.from(buttonElement);
375
+ const handleRemoveTag = (e) => {
376
+ var _a, _b, _c, _d, _e, _f, _g, _h;
377
+ if (e && ((_a = e.target) === null || _a === void 0 ? void 0 : _a.nodeName) === 'EM' && ((_b = e.target) === null || _b === void 0 ? void 0 : _b.className) === 'editor-icon-remove') {
378
+ e.stopPropagation();
379
+ if (((_c = e.target) === null || _c === void 0 ? void 0 : _c.parentElement) &&
380
+ has(dynamicContent.defaultData, [(_e = (_d = e.target) === null || _d === void 0 ? void 0 : _d.parentElement) === null || _e === void 0 ? void 0 : _e.id])) {
381
+ setDynamicContent(prev => {
382
+ var _a, _b;
383
+ return (Object.assign(Object.assign({}, prev), { activeTagId: '', defaultData: omit(prev.defaultData, [(_b = (_a = e.target) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.id]) }));
384
+ });
385
+ }
386
+ (_g = (_f = e.target) === null || _f === void 0 ? void 0 : _f.parentElement) === null || _g === void 0 ? void 0 : _g.remove();
387
+ setTextValue(personalizationInputRef && ((_h = personalizationInputRef.current) === null || _h === void 0 ? void 0 : _h.innerHTML));
388
+ }
389
+ };
390
+ listIconRemove.forEach(eachIcon => {
391
+ eachIcon.addEventListener('click', handleRemoveTag);
392
+ });
393
+ handleUpdateInputPersonalization(listIconRemove, listBtnElement);
394
+ return () => {
395
+ listIconRemove.forEach(eachIcon => {
396
+ eachIcon.removeEventListener('click', handleRemoveTag);
397
+ });
398
+ };
399
+ }, [dynamicContent.defaultData, textValue]);
400
+ useLayoutEffect(() => {
401
+ try {
402
+ // save caret position
403
+ if (!personalizationInputRef.current) {
404
+ return;
405
+ }
406
+ // Perhaps React (whose VDOM gets outdated because we often prevent
407
+ // rerendering) did not update the DOM. So we update it manually now.
408
+ if (caretPositionRef && caretPositionRef.current) {
409
+ CaretPositioning.restoreSelection(personalizationInputRef.current, caretPositionRef.current);
410
+ }
411
+ }
412
+ catch (error) {
413
+ if (typeof addMessageToQueue === 'function') {
414
+ addMessageToQueue({
415
+ path: PATH,
416
+ func: 'useLayoutEffect',
417
+ data: error,
418
+ });
419
+ }
420
+ if (typeof onError === 'function') {
421
+ onError(error, {
422
+ component: PATH,
423
+ action: 'useLayoutEffect saved caret position',
424
+ args: {},
425
+ });
426
+ }
427
+ }
428
+ }, [addMessageToQueue, onError, textValue]);
429
+ const renderContentDynamicOptions = () => {
430
+ if (!(allowDynamicOptions === null || allowDynamicOptions === void 0 ? void 0 : allowDynamicOptions.length)) {
431
+ return null;
432
+ }
433
+ return allowDynamicOptions.map((dynamicKey) => (React.createElement(DynamicItem, { key: dynamicKey, onClick: e => handleClickDynamicItem(e, dynamicKey) }, mapLabelPersonalization(dynamicKey))));
434
+ };
435
+ const renderAddPersonalizationView = () => {
436
+ if (isViewMode) {
437
+ return null;
438
+ }
439
+ const isRenderPopover = allowDynamicOptions && (allowDynamicOptions === null || allowDynamicOptions === void 0 ? void 0 : allowDynamicOptions.length) > 1;
440
+ const isOnlyOneOpt = allowDynamicOptions && (allowDynamicOptions === null || allowDynamicOptions === void 0 ? void 0 : allowDynamicOptions.length) === 1;
441
+ const hasOnlyPersonalization = isOnlyOneOpt && (allowDynamicOptions === null || allowDynamicOptions === void 0 ? void 0 : allowDynamicOptions.includes(AllowDynamicType.ADDPERSONALIZATION));
442
+ const hasOnlyShortlink = isOnlyOneOpt && (allowDynamicOptions === null || allowDynamicOptions === void 0 ? void 0 : allowDynamicOptions.includes(AllowDynamicType.SHORTLINK));
443
+ const iconPersonalization = (React.createElement(Icon, { type: "icon-ants-person-alt", onClick: e => {
444
+ e.stopPropagation();
445
+ // Open short link modal
446
+ if (hasOnlyShortlink) {
447
+ toggleShortLinkModal();
448
+ }
449
+ // Open Personalization modal
450
+ if (hasOnlyPersonalization) {
451
+ setDynamicContent(prev => (Object.assign(Object.assign({}, prev), { activeTagId: '', visible: true })));
452
+ }
453
+ }, className: "customize-antsomi-profile", style: { width: 24, height: 24 } }));
454
+ if (!isRenderPopover) {
455
+ return iconPersonalization;
456
+ }
457
+ return (React.createElement(Popover, { content: renderContentDynamicOptions(), placement: "bottomLeft", rootClassName: "no-padding-content", trigger: "click", open: isShowPopover, onOpenChange: handleOpenChange }, iconPersonalization));
458
+ };
459
+ return (React.createElement(WrapperInputStyle, { id: "ants-ui-input-personalization" },
460
+ React.createElement("div", { className: classnames({
461
+ 'input-wrapper-outter': true,
462
+ 'styles-input-wrapper': !isViewMode,
463
+ 'input-error': (errors === null || errors === void 0 ? void 0 : errors.length) && (errors === null || errors === void 0 ? void 0 : errors.length) > 0,
464
+ }), style: Object.assign(Object.assign({}, (isViewMode && {
465
+ padding: 0,
466
+ minHeight: 0,
467
+ fontSize: 12,
468
+ border: 'none',
469
+ })), { width: '100%' }), onClick: () => { var _a; return (_a = personalizationInputRef.current) === null || _a === void 0 ? void 0 : _a.focus(); } },
470
+ React.createElement("div", { className: "input-personal", style: {
471
+ display: textValue && textValue !== '<br>' ? 'inline-block' : undefined,
472
+ }, contentEditable: !isViewMode, onBlur: onTriggerChange, onKeyPress: handleKeyPress, ref: personalizationInputRef,
473
+ // eslint-disable-next-line react/no-danger
474
+ dangerouslySetInnerHTML: {
475
+ __html: getDangerouslySetInnerHTML(textValue),
476
+ }, onPaste: onPaste }),
477
+ renderAddPersonalizationView()),
478
+ React.createElement(TooltipHover, { isShow: tooltipHoverDebounce.x > 0 && tooltipHoverDebounce.y > 0, top: tooltipHoverDebounce.y, left: tooltipHoverDebounce.x }, "Click on the link to convert it to a shortlink"),
479
+ popoverOpenShortLink && (React.createElement(PopupShortLink, { open: popoverOpenShortLink, disabledOpts: disabledOpts, onOk: handleInsertSortLink, onClose: toggleShortLinkModal, initSelectedProperties: initSelectedProperties, callback: callback })),
480
+ isRenderAddDynamicContent && (React.createElement(AddDynamicContent, { APIConfig: apiConfig, defaultDynamicIndex: 1, showIndex: showIndex, showDisplayFormat: showDisplayFormat, isShowCustomFunction: isShowCustomFunction, visible: dynamicContent.visible, defaultData: dynamicContent.defaultData[dynamicContent.activeTagId] || {}, journeySettings: dynamicContent.journeySettings, contentSources: dynamicContent.contentSources, onOk: (value) => {
481
+ handleInsertText(value);
482
+ }, onCancel: () => handleCloseAddDynamicContent() }))));
483
+ };
484
+ InputDynamic.defaultProps = defaultProps;
@@ -0,0 +1,16 @@
1
+ import { FC } from 'react';
2
+ import type { SelectedPropertiesProps } from './types';
3
+ type PopupShortLinkProps = {
4
+ open: any;
5
+ onClose: Function;
6
+ onOk: Function;
7
+ disabledOpts?: DisableShortLinkTypeProps;
8
+ initSelectedProperties: SelectedPropertiesProps;
9
+ callback: Function;
10
+ };
11
+ export type ShortLinkType = 'individual' | 'general';
12
+ export type DisableShortLinkTypeProps = {
13
+ [key in ShortLinkType]?: boolean;
14
+ };
15
+ export declare const PopupShortLink: FC<PopupShortLinkProps>;
16
+ export {};
@@ -0,0 +1,85 @@
1
+ // Libraries
2
+ import React, { useEffect, useState } from 'react';
3
+ import { Col, Row } from 'antd';
4
+ // Molecules
5
+ import { Modal } from '../../molecules';
6
+ // Components
7
+ import { Radio } from '../Radio';
8
+ // Styled
9
+ import { InputShortLink, InputWrapper } from './styled';
10
+ // Utils
11
+ import { validateURL } from './utils';
12
+ const OPTIONS = [
13
+ {
14
+ value: 'individual',
15
+ label: 'Individual',
16
+ },
17
+ {
18
+ value: 'general',
19
+ label: 'General',
20
+ },
21
+ ];
22
+ export const PopupShortLink = props => {
23
+ const { open, onClose, onOk, disabledOpts, initSelectedProperties, callback } = props;
24
+ const [state, setState] = useState({
25
+ link: '',
26
+ type: 'individual',
27
+ error: '',
28
+ });
29
+ useEffect(() => {
30
+ let type = 'individual';
31
+ if (initSelectedProperties && initSelectedProperties.keyTag) {
32
+ type = initSelectedProperties.keyTag === 'shortlink' ? 'individual' : 'general';
33
+ }
34
+ setState(prev => (Object.assign(Object.assign({}, prev), { link: initSelectedProperties.link, type: type })));
35
+ }, [initSelectedProperties, setState]);
36
+ const handleClose = () => {
37
+ setState(prev => (Object.assign(Object.assign({}, prev), { link: '', error: '' })));
38
+ if (onClose)
39
+ onClose();
40
+ };
41
+ const handleValidate = ({ urlString = state.link, afterValidate }) => {
42
+ const isValid = validateURL(urlString);
43
+ setState(prev => (Object.assign(Object.assign({}, prev), { error: isValid ? '' : 'Invalid URL' })));
44
+ if (typeof afterValidate === 'function')
45
+ afterValidate(isValid);
46
+ };
47
+ const handleOnChange = (value) => {
48
+ if (state.error)
49
+ handleValidate({ urlString: value });
50
+ setState(prev => (Object.assign(Object.assign({}, prev), { link: value })));
51
+ };
52
+ const handleOnOK = () => {
53
+ handleValidate({
54
+ afterValidate: (isValid) => {
55
+ if (isValid && onOk) {
56
+ if (initSelectedProperties.urlDetected) {
57
+ callback('REPLACE_DETECTED_URL', initSelectedProperties.urlDetected);
58
+ }
59
+ onOk(state.link, state.type);
60
+ handleClose();
61
+ }
62
+ },
63
+ });
64
+ };
65
+ const onChangeType = (event) => {
66
+ setState(prev => (Object.assign(Object.assign({}, prev), { type: event.target.value })));
67
+ };
68
+ return (React.createElement(Modal, { open: open, onCancel: handleClose, title: React.createElement("div", { style: { color: 'rgba(0, 0, 0, 0.87)', fontWeight: 'normal', fontSize: '16px' } }, "Add Short Link"), okText: "OK", cancelText: "Cancel", closable: false, onOk: handleOnOK, okButtonProps: {
69
+ disabled: !validateURL(state.link),
70
+ type: !validateURL(state.link) ? 'default' : 'primary',
71
+ } },
72
+ React.createElement(Row, null,
73
+ React.createElement(Col, { span: 6 },
74
+ React.createElement("span", { style: { fontSize: 12, color: '#000' } }, "Short link type")),
75
+ React.createElement(Col, { span: 18 },
76
+ React.createElement(Radio.Group, { onChange: onChangeType, value: state.type }, OPTIONS.map(each => (React.createElement(Radio, { key: each.value, disabled: disabledOpts && disabledOpts[each.value], name: "shortlink-type", value: each.value }, each.label)))))),
77
+ React.createElement(Row, null,
78
+ React.createElement(Col, { span: 24 },
79
+ React.createElement(InputWrapper, null,
80
+ React.createElement(InputShortLink, { required: true, isReverseMask: true, isHideErrMessage: true, labelColor: "#000000", id: "input-short-link-url", label: "Your URL", value: state.link, onAfterChange: handleOnChange })))),
81
+ !!state.error && (React.createElement(Row, null,
82
+ React.createElement(Col, { span: 6 }),
83
+ React.createElement(Col, { span: 18 },
84
+ React.createElement("div", null, state.error))))));
85
+ };
@@ -0,0 +1,71 @@
1
+ export declare const DATE_AND_TIME_DEFAULT: {
2
+ type: string;
3
+ config: {
4
+ format: string;
5
+ date: {
6
+ check: boolean;
7
+ value: string;
8
+ };
9
+ time: {
10
+ check: boolean;
11
+ value: string;
12
+ timeFormat: string;
13
+ };
14
+ };
15
+ };
16
+ export declare const MAP_DATA_TYPE: {
17
+ number: {
18
+ name: string;
19
+ label: string;
20
+ translateCode: string;
21
+ value: string;
22
+ };
23
+ string: {
24
+ name: string;
25
+ label: string;
26
+ translateCode: string;
27
+ value: string;
28
+ };
29
+ text: {
30
+ name: string;
31
+ label: string;
32
+ translateCode: string;
33
+ value: string;
34
+ };
35
+ datetime: {
36
+ name: string;
37
+ label: string;
38
+ translateCode: string;
39
+ value: string;
40
+ };
41
+ boolean: {
42
+ name: string;
43
+ label: string;
44
+ translateCode: string;
45
+ value: string;
46
+ };
47
+ array_number: {
48
+ name: string;
49
+ label: string;
50
+ translateCode: string;
51
+ value: string;
52
+ };
53
+ array_string: {
54
+ name: string;
55
+ label: string;
56
+ translateCode: string;
57
+ value: string;
58
+ };
59
+ array_datetime: {
60
+ name: string;
61
+ label: string;
62
+ translateCode: string;
63
+ value: string;
64
+ };
65
+ object: {
66
+ name: string;
67
+ label: string;
68
+ translateCode: string;
69
+ value: string;
70
+ };
71
+ };