@antscorp/antsomi-ui 1.3.4 → 1.3.5-beta.2

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