@antscorp/antsomi-ui 1.3.7-beta.7 → 1.3.7-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 (302) hide show
  1. package/README.md +70 -0
  2. package/es/components/atoms/Input/Input.js +3 -1
  3. package/es/components/atoms/InputDynamic/InputDynamic.js +3 -3
  4. package/es/components/atoms/Tag/Tag.js +1 -1
  5. package/es/components/icons/LazyIcon/LazyIcon.d.ts +2 -0
  6. package/es/components/icons/LazyIcon/LazyIcon.js +2 -0
  7. package/es/components/icons/QRCodeManagementIcon.d.ts +3 -0
  8. package/es/components/icons/QRCodeManagementIcon.js +7 -0
  9. package/es/components/icons/QRSetDashboardIcon.d.ts +3 -0
  10. package/es/components/icons/QRSetDashboardIcon.js +7 -0
  11. package/es/components/icons/index.d.ts +2 -0
  12. package/es/components/icons/index.js +2 -0
  13. package/es/components/molecules/AddDynamicContent/AddDynamicContent.js +28 -2
  14. package/es/components/molecules/AddDynamicContent/components/DisplayFormat/DisplayFormat.d.ts +1 -0
  15. package/es/components/molecules/AddDynamicContent/constants.d.ts +2 -0
  16. package/es/components/molecules/AddDynamicContent/constants.js +2 -0
  17. package/es/components/molecules/ColorPicker/index.d.ts +2 -0
  18. package/es/components/molecules/ColorPicker/index.js +8 -3
  19. package/es/components/molecules/EmojiPopover/EmojiPopover.d.ts +1 -0
  20. package/es/components/molecules/EmojiPopover/EmojiPopover.js +2 -2
  21. package/es/components/molecules/EmojiPopover/styled.d.ts +2 -2
  22. package/es/components/molecules/EmojiPopover/styled.js +1 -1
  23. package/es/components/molecules/EmptyData/EmptyData.d.ts +1 -1
  24. package/es/components/molecules/EmptyData/EmptyData.js +4 -2
  25. package/es/components/molecules/HeaderV2/HeaderV2.d.ts +1 -1
  26. package/es/components/molecules/InputSearch/index.d.ts +1 -1
  27. package/es/components/molecules/InputSearch/index.js +2 -1
  28. package/es/components/molecules/Modal/Modal.js +7 -1
  29. package/es/components/molecules/ModalV2/ModalV2.js +2 -1
  30. package/es/components/molecules/SearchPopover/SearchPopover.js +2 -2
  31. package/es/components/molecules/SearchPopover/styled.d.ts +12 -1
  32. package/es/components/molecules/SearchPopover/styled.js +1 -2
  33. package/es/components/molecules/SearchPopover/types.d.ts +4 -3
  34. package/es/components/molecules/Select/Select.js +3 -3
  35. package/es/components/molecules/Select/styled.d.ts +3 -1
  36. package/es/components/molecules/Select/styled.js +50 -6
  37. package/es/components/molecules/ShareAccess/ShareAccess.d.ts +2 -1
  38. package/es/components/molecules/ShareAccess/ShareAccess.js +12 -9
  39. package/es/components/molecules/ShareAccess/components/LayoutContent/LayoutContent.js +5 -5
  40. package/es/components/molecules/ShareAccess/components/PeopleAccess/PeopleAccess.js +2 -2
  41. package/es/components/molecules/ShareAccess/hooks/useShareAccess.d.ts +2 -1
  42. package/es/components/molecules/ShareAccess/index.d.ts +1 -0
  43. package/es/components/molecules/ShareAccess/reducer.d.ts +1 -1
  44. package/es/components/molecules/ShareAccess/reducer.js +7 -4
  45. package/es/components/molecules/ShareAccess/types.d.ts +22 -0
  46. package/es/components/molecules/ShareAccess/utils.d.ts +3 -1
  47. package/es/components/molecules/ShareAccess/utils.js +35 -2
  48. package/es/components/molecules/TagifyInput/TagifyInput.js +48 -27
  49. package/es/components/molecules/TagifyInput/types.d.ts +14 -8
  50. package/es/components/molecules/TagifyInput/utils.d.ts +6 -1
  51. package/es/components/molecules/TagifyInput/utils.js +19 -0
  52. package/es/components/molecules/VirtualizedMenu/VirtualizedMenu.d.ts +1 -0
  53. package/es/components/molecules/VirtualizedMenu/components/Item/Item.js +3 -7
  54. package/es/components/molecules/VirtualizedMenu/components/MenuInline/MenuInline.d.ts +10 -10
  55. package/es/components/molecules/VirtualizedMenu/components/MenuInline/MenuInline.js +46 -327
  56. package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/index.d.ts +9 -0
  57. package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/index.js +5 -0
  58. package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useFocusManagement.d.ts +23 -0
  59. package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useFocusManagement.js +81 -0
  60. package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useItemInteraction.d.ts +24 -0
  61. package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useItemInteraction.js +32 -0
  62. package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useKeyboardNavigation.d.ts +26 -0
  63. package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useKeyboardNavigation.js +93 -0
  64. package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useTreeState.d.ts +24 -0
  65. package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useTreeState.js +94 -0
  66. package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useVisibleItems.d.ts +7 -0
  67. package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useVisibleItems.js +132 -0
  68. package/es/components/molecules/VirtualizedMenu/styled.js +14 -3
  69. package/es/components/molecules/VirtualizedMenu/types.d.ts +1 -0
  70. package/es/components/molecules/VirtualizedMenu/utils.d.ts +1 -0
  71. package/es/components/molecules/VirtualizedMenu/utils.js +1 -0
  72. package/es/components/molecules/index.d.ts +1 -0
  73. package/es/components/organism/AccountSharing/AccountSharing.d.ts +1 -0
  74. package/es/components/organism/AccountSharing/AccountSharing.js +17 -33
  75. package/es/components/organism/AccountSharing/styled.js +1 -1
  76. package/es/components/organism/ActivityTimeline/ActivityTimeline.js +3 -3
  77. package/es/components/organism/ActivityTimeline/constants.d.ts +9 -9
  78. package/es/components/organism/ActivityTimeline/constants.js +3 -3
  79. package/es/components/organism/ActivityTimeline/index.d.ts +530 -1
  80. package/es/components/organism/ActivityTimeline/index.js +9 -1
  81. package/es/components/organism/ActivityTimeline/utils.js +186 -15
  82. package/es/components/organism/LeftMenu/LeftMenu.js +6 -6
  83. package/es/components/organism/LeftMenu/hooks/usePermission.js +1 -1
  84. package/es/components/organism/LeftMenu/styled.js +2 -0
  85. package/es/components/organism/LeftMenu/types/index.d.ts +7 -0
  86. package/es/components/organism/LeftMenu/utils/index.js +1 -1
  87. package/es/components/organism/Login/Login.js +19 -36
  88. package/es/components/organism/Login/components/IconInfo/IconInfo.js +1 -1
  89. package/es/components/organism/Login/components/LoginSelectPortal/LoginSelectPortal.js +1 -1
  90. package/es/components/organism/Login/components/SignIn/SignIn.js +2 -2
  91. package/es/components/organism/Login/types/index.d.ts +2 -0
  92. package/es/components/organism/LoginV2/LoginV2.d.ts +3 -0
  93. package/es/components/organism/LoginV2/LoginV2.js +957 -0
  94. package/es/components/organism/LoginV2/components/Avatar/Avatar.d.ts +8 -0
  95. package/es/components/organism/LoginV2/components/Avatar/Avatar.js +11 -0
  96. package/es/components/organism/LoginV2/components/Avatar/index.d.ts +1 -0
  97. package/es/components/organism/LoginV2/components/Avatar/index.js +1 -0
  98. package/es/components/organism/LoginV2/components/ChooseMethod/ChooseMethod.d.ts +9 -0
  99. package/es/components/organism/LoginV2/components/ChooseMethod/ChooseMethod.js +54 -0
  100. package/es/components/organism/LoginV2/components/ChooseMethod/Method.d.ts +10 -0
  101. package/es/components/organism/LoginV2/components/ChooseMethod/Method.js +13 -0
  102. package/es/components/organism/LoginV2/components/ChooseMethod/index.d.ts +1 -0
  103. package/es/components/organism/LoginV2/components/ChooseMethod/index.js +1 -0
  104. package/es/components/organism/LoginV2/components/ChooseMethod/styled.d.ts +10 -0
  105. package/es/components/organism/LoginV2/components/ChooseMethod/styled.js +24 -0
  106. package/es/components/organism/LoginV2/components/ChooseMethod/utils.d.ts +1 -0
  107. package/es/components/organism/LoginV2/components/ChooseMethod/utils.js +1 -0
  108. package/es/components/organism/LoginV2/components/ForgotPassword/ForgotPassword.d.ts +14 -0
  109. package/es/components/organism/LoginV2/components/ForgotPassword/ForgotPassword.js +195 -0
  110. package/es/components/organism/LoginV2/components/ForgotPassword/index.d.ts +2 -0
  111. package/es/components/organism/LoginV2/components/ForgotPassword/index.js +2 -0
  112. package/es/components/organism/LoginV2/components/ForgotPassword/styled.d.ts +1 -0
  113. package/es/components/organism/LoginV2/components/ForgotPassword/styled.js +10 -0
  114. package/es/components/organism/LoginV2/components/IconInfo/IconInfo.d.ts +7 -0
  115. package/es/components/organism/LoginV2/components/IconInfo/IconInfo.js +18 -0
  116. package/es/components/organism/LoginV2/components/IconInfo/index.d.ts +1 -0
  117. package/es/components/organism/LoginV2/components/IconInfo/index.js +1 -0
  118. package/es/components/organism/LoginV2/components/LoginSelectPortal/Item/Item.d.ts +10 -0
  119. package/es/components/organism/LoginV2/components/LoginSelectPortal/Item/Item.js +12 -0
  120. package/es/components/organism/LoginV2/components/LoginSelectPortal/Item/index.d.ts +1 -0
  121. package/es/components/organism/LoginV2/components/LoginSelectPortal/Item/index.js +1 -0
  122. package/es/components/organism/LoginV2/components/LoginSelectPortal/Item/styled.d.ts +2 -0
  123. package/es/components/organism/LoginV2/components/LoginSelectPortal/Item/styled.js +34 -0
  124. package/es/components/organism/LoginV2/components/LoginSelectPortal/LoginSelectPortal.d.ts +19 -0
  125. package/es/components/organism/LoginV2/components/LoginSelectPortal/LoginSelectPortal.js +194 -0
  126. package/es/components/organism/LoginV2/components/LoginSelectPortal/index.d.ts +1 -0
  127. package/es/components/organism/LoginV2/components/LoginSelectPortal/index.js +1 -0
  128. package/es/components/organism/LoginV2/components/LoginSelectPortal/styled.d.ts +1 -0
  129. package/es/components/organism/LoginV2/components/LoginSelectPortal/styled.js +5 -0
  130. package/es/components/organism/LoginV2/components/LoginWithEmail/LoginWithEmail.d.ts +15 -0
  131. package/es/components/organism/LoginV2/components/LoginWithEmail/LoginWithEmail.js +211 -0
  132. package/es/components/organism/LoginV2/components/LoginWithEmail/index.d.ts +1 -0
  133. package/es/components/organism/LoginV2/components/LoginWithEmail/index.js +1 -0
  134. package/es/components/organism/LoginV2/components/LoginWithEmail/styled.d.ts +3 -0
  135. package/es/components/organism/LoginV2/components/LoginWithEmail/styled.js +5 -0
  136. package/es/components/organism/LoginV2/components/LoginWithGG/LoginWithGG.d.ts +14 -0
  137. package/es/components/organism/LoginV2/components/LoginWithGG/LoginWithGG.js +116 -0
  138. package/es/components/organism/LoginV2/components/LoginWithGG/index.d.ts +1 -0
  139. package/es/components/organism/LoginV2/components/LoginWithGG/index.js +1 -0
  140. package/es/components/organism/LoginV2/components/LoginWithGG/styled.d.ts +3 -0
  141. package/es/components/organism/LoginV2/components/LoginWithGG/styled.js +5 -0
  142. package/es/components/organism/LoginV2/components/Logo/Logo.d.ts +6 -0
  143. package/es/components/organism/LoginV2/components/Logo/Logo.js +9 -0
  144. package/es/components/organism/LoginV2/components/Logo/index.d.ts +1 -0
  145. package/es/components/organism/LoginV2/components/Logo/index.js +1 -0
  146. package/es/components/organism/LoginV2/components/OryConsent/OryAuthLayout.d.ts +9 -0
  147. package/es/components/organism/LoginV2/components/OryConsent/OryAuthLayout.js +4 -0
  148. package/es/components/organism/LoginV2/components/OryConsent/OryConsent.d.ts +17 -0
  149. package/es/components/organism/LoginV2/components/OryConsent/OryConsent.js +204 -0
  150. package/es/components/organism/LoginV2/components/OryConsent/OryThemeProvider.d.ts +8 -0
  151. package/es/components/organism/LoginV2/components/OryConsent/OryThemeProvider.js +10 -0
  152. package/es/components/organism/LoginV2/components/OryConsent/PortalSelect.d.ts +15 -0
  153. package/es/components/organism/LoginV2/components/OryConsent/PortalSelect.js +30 -0
  154. package/es/components/organism/LoginV2/components/OryConsent/ScopeConsent.d.ts +20 -0
  155. package/es/components/organism/LoginV2/components/OryConsent/ScopeConsent.js +29 -0
  156. package/es/components/organism/LoginV2/components/OryConsent/index.d.ts +2 -0
  157. package/es/components/organism/LoginV2/components/OryConsent/index.js +2 -0
  158. package/es/components/organism/LoginV2/components/OryConsent/styled.d.ts +31 -0
  159. package/es/components/organism/LoginV2/components/OryConsent/styled.js +292 -0
  160. package/es/components/organism/LoginV2/components/OrySignIn/OryFormShell.d.ts +9 -0
  161. package/es/components/organism/LoginV2/components/OrySignIn/OryFormShell.js +36 -0
  162. package/es/components/organism/LoginV2/components/OrySignIn/OryMfa.d.ts +11 -0
  163. package/es/components/organism/LoginV2/components/OrySignIn/OryMfa.js +144 -0
  164. package/es/components/organism/LoginV2/components/OrySignIn/OryRecovery.d.ts +9 -0
  165. package/es/components/organism/LoginV2/components/OrySignIn/OryRecovery.js +128 -0
  166. package/es/components/organism/LoginV2/components/OrySignIn/OryStatus.d.ts +17 -0
  167. package/es/components/organism/LoginV2/components/OrySignIn/OryStatus.js +33 -0
  168. package/es/components/organism/LoginV2/components/OrySignIn/index.d.ts +3 -0
  169. package/es/components/organism/LoginV2/components/OrySignIn/index.js +3 -0
  170. package/es/components/organism/LoginV2/components/SetupGGAuthenticator/SetupGGAuthenticator.d.ts +14 -0
  171. package/es/components/organism/LoginV2/components/SetupGGAuthenticator/SetupGGAuthenticator.js +100 -0
  172. package/es/components/organism/LoginV2/components/SetupGGAuthenticator/index.d.ts +2 -0
  173. package/es/components/organism/LoginV2/components/SetupGGAuthenticator/index.js +2 -0
  174. package/es/components/organism/LoginV2/components/SetupGGAuthenticator/styled.d.ts +4 -0
  175. package/es/components/organism/LoginV2/components/SetupGGAuthenticator/styled.js +10 -0
  176. package/es/components/organism/LoginV2/components/SignIn/SignIn.d.ts +22 -0
  177. package/es/components/organism/LoginV2/components/SignIn/SignIn.js +107 -0
  178. package/es/components/organism/LoginV2/components/SignIn/index.d.ts +1 -0
  179. package/es/components/organism/LoginV2/components/SignIn/index.js +1 -0
  180. package/es/components/organism/LoginV2/components/SignIn/styled.d.ts +3 -0
  181. package/es/components/organism/LoginV2/components/SignIn/styled.js +10 -0
  182. package/es/components/organism/LoginV2/components/VerifyAccount/VerifyAccount.d.ts +25 -0
  183. package/es/components/organism/LoginV2/components/VerifyAccount/VerifyAccount.js +42 -0
  184. package/es/components/organism/LoginV2/components/VerifyAccount/index.d.ts +1 -0
  185. package/es/components/organism/LoginV2/components/VerifyAccount/index.js +1 -0
  186. package/es/components/organism/LoginV2/components/VerifyAccount/styled.d.ts +22 -0
  187. package/es/components/organism/LoginV2/components/VerifyAccount/styled.js +17 -0
  188. package/es/components/organism/LoginV2/components/WidgetLayout/WidgetLayout.d.ts +13 -0
  189. package/es/components/organism/LoginV2/components/WidgetLayout/WidgetLayout.js +18 -0
  190. package/es/components/organism/LoginV2/components/WidgetLayout/index.d.ts +1 -0
  191. package/es/components/organism/LoginV2/components/WidgetLayout/index.js +1 -0
  192. package/es/components/organism/LoginV2/components/WidgetLayout/styled.d.ts +5 -0
  193. package/es/components/organism/LoginV2/components/WidgetLayout/styled.js +22 -0
  194. package/es/components/organism/LoginV2/components/index.d.ts +11 -0
  195. package/es/components/organism/LoginV2/components/index.js +11 -0
  196. package/es/components/organism/LoginV2/constants/index.d.ts +48 -0
  197. package/es/components/organism/LoginV2/constants/index.js +48 -0
  198. package/es/components/organism/LoginV2/hooks/index.d.ts +1 -0
  199. package/es/components/organism/LoginV2/hooks/index.js +1 -0
  200. package/es/components/organism/LoginV2/hooks/useResize.d.ts +7 -0
  201. package/es/components/organism/LoginV2/hooks/useResize.js +21 -0
  202. package/es/components/organism/LoginV2/index.d.ts +6 -0
  203. package/es/components/organism/LoginV2/index.js +4 -0
  204. package/es/components/organism/LoginV2/styled.d.ts +51 -0
  205. package/es/components/organism/LoginV2/styled.js +129 -0
  206. package/es/components/organism/LoginV2/types/index.d.ts +79 -0
  207. package/es/components/organism/LoginV2/types/index.js +1 -0
  208. package/es/components/organism/LoginV2/types/ory.d.ts +52 -0
  209. package/es/components/organism/LoginV2/types/ory.js +1 -0
  210. package/es/components/organism/LoginV2/utils/index.d.ts +14 -0
  211. package/es/components/organism/LoginV2/utils/index.js +49 -0
  212. package/es/components/organism/LoginV2/utils/ory.d.ts +138 -0
  213. package/es/components/organism/LoginV2/utils/ory.js +408 -0
  214. package/es/components/organism/LoginV2/utils/oryConsent.d.ts +52 -0
  215. package/es/components/organism/LoginV2/utils/oryConsent.js +174 -0
  216. package/es/components/organism/LoginV2/utils/oryFlows.d.ts +100 -0
  217. package/es/components/organism/LoginV2/utils/oryFlows.js +319 -0
  218. package/es/components/organism/TextEditor/TextEditor.d.ts +9 -2
  219. package/es/components/organism/TextEditor/TextEditor.js +203 -42
  220. package/es/components/organism/TextEditor/constants.d.ts +9 -0
  221. package/es/components/organism/TextEditor/constants.js +66 -0
  222. package/es/components/organism/TextEditor/extensions/BubbleMenu/bubble-menu-plugin.d.ts +6 -128
  223. package/es/components/organism/TextEditor/extensions/BubbleMenu/bubble-menu-plugin.js +7 -292
  224. package/es/components/organism/TextEditor/extensions/BubbleMenu/bubble-menu.d.ts +1 -1
  225. package/es/components/organism/TextEditor/extensions/BubbleMenu/bubble-menu.js +4 -0
  226. package/es/components/organism/TextEditor/extensions/Link.js +33 -14
  227. package/es/components/organism/TextEditor/extensions/ListItem.d.ts +10 -0
  228. package/es/components/organism/TextEditor/extensions/ListItem.js +93 -0
  229. package/es/components/organism/TextEditor/extensions/SmartTag.d.ts +5 -6
  230. package/es/components/organism/TextEditor/extensions/SmartTag.js +96 -4
  231. package/es/components/organism/TextEditor/hooks/useColorSet.js +7 -0
  232. package/es/components/organism/TextEditor/hooks/useMarkTracking.js +2 -1
  233. package/es/components/organism/TextEditor/index.d.ts +7 -5
  234. package/es/components/organism/TextEditor/index.scss +4 -7
  235. package/es/components/organism/TextEditor/provider.d.ts +1 -0
  236. package/es/components/organism/TextEditor/provider.js +6 -3
  237. package/es/components/organism/TextEditor/store.d.ts +11 -4
  238. package/es/components/organism/TextEditor/store.js +22 -2
  239. package/es/components/organism/TextEditor/stories/WithOldDynAndLink/froala-legacy-format.settings.json +95 -0
  240. package/es/components/organism/TextEditor/stories/WithOldDynAndLink/shared.d.ts +111 -0
  241. package/es/components/organism/TextEditor/stories/WithOldDynAndLink/shared.js +82 -0
  242. package/es/components/organism/TextEditor/stories/shared.d.ts +64 -0
  243. package/es/components/organism/TextEditor/stories/shared.js +57 -0
  244. package/es/components/organism/TextEditor/styled.d.ts +1 -1
  245. package/es/components/organism/TextEditor/styled.js +1 -0
  246. package/es/components/organism/TextEditor/types.d.ts +161 -11
  247. package/es/components/organism/TextEditor/types.js +1 -0
  248. package/es/components/organism/TextEditor/ui/BubbleMenu/BubbleMenu.d.ts +2 -1
  249. package/es/components/organism/TextEditor/ui/BubbleMenu/BubbleMenu.js +80 -51
  250. package/es/components/organism/TextEditor/ui/Emoji/EmojiList.js +1 -1
  251. package/es/components/organism/TextEditor/ui/Emoji/suggestion.d.ts +1 -1
  252. package/es/components/organism/TextEditor/ui/Emoji/suggestion.js +2 -2
  253. package/es/components/organism/TextEditor/ui/FontPopover/FontPopover.js +12 -2
  254. package/es/components/organism/TextEditor/ui/LinkInsertForm/LinkInsertForm.d.ts +16 -0
  255. package/es/components/organism/TextEditor/ui/LinkInsertForm/LinkInsertForm.js +61 -0
  256. package/es/components/organism/TextEditor/ui/LinkInsertForm/index.d.ts +2 -0
  257. package/es/components/organism/TextEditor/ui/LinkInsertForm/index.js +1 -0
  258. package/es/components/organism/TextEditor/ui/LinkPopover/LinkPopover.d.ts +9 -0
  259. package/es/components/organism/TextEditor/ui/LinkPopover/LinkPopover.js +126 -0
  260. package/es/components/organism/TextEditor/ui/LinkPopover/index.d.ts +2 -0
  261. package/es/components/organism/TextEditor/ui/LinkPopover/index.js +1 -0
  262. package/es/components/organism/TextEditor/ui/Popover/Popover.js +1 -1
  263. package/es/components/organism/TextEditor/ui/TextAlignSelect/TextAlignSelect.js +1 -3
  264. package/es/components/organism/TextEditor/ui/Toolbar/{Toolbar.d.ts → FormattingToolbar.d.ts} +3 -4
  265. package/es/components/organism/TextEditor/ui/Toolbar/FormattingToolbar.js +90 -0
  266. package/es/components/organism/TextEditor/ui/Toolbar/LinkPreviewToolbar.d.ts +10 -0
  267. package/es/components/organism/TextEditor/ui/Toolbar/LinkPreviewToolbar.js +39 -0
  268. package/es/components/organism/TextEditor/ui/Toolbar/actions/EmojiAction.js +4 -3
  269. package/es/components/organism/TextEditor/ui/Toolbar/actions/FontFamilyAction.d.ts +1 -0
  270. package/es/components/organism/TextEditor/ui/Toolbar/actions/FontFamilyAction.js +2 -2
  271. package/es/components/organism/TextEditor/ui/Toolbar/actions/FontSizeAction.js +6 -1
  272. package/es/components/organism/TextEditor/ui/Toolbar/index.d.ts +2 -1
  273. package/es/components/organism/TextEditor/ui/Toolbar/index.js +2 -1
  274. package/es/components/organism/TextEditor/utils/documentState.d.ts +14 -0
  275. package/es/components/organism/TextEditor/utils/documentState.js +25 -0
  276. package/es/components/organism/TextEditor/utils/htmlProcessing.js +60 -0
  277. package/es/components/organism/TextEditor/utils/link.d.ts +10 -1
  278. package/es/components/organism/TextEditor/utils/link.js +161 -7
  279. package/es/components/organism/TextEditor/utils/menu.js +2 -1
  280. package/es/components/organism/TextEditor/utils/selection.js +3 -2
  281. package/es/components/organism/TextEditor/utils/smartTag.js +2 -1
  282. package/es/components/organism/index.d.ts +3 -1
  283. package/es/components/organism/index.js +1 -0
  284. package/es/components/template/TemplateListing/Loadable.d.ts +1 -0
  285. package/es/hooks/index.d.ts +1 -1
  286. package/es/hooks/index.js +1 -1
  287. package/es/providers/ConfigProvider/ConfigProvider.d.ts +4 -0
  288. package/es/providers/ConfigProvider/ConfigProvider.js +2 -3
  289. package/es/providers/ConfigProvider/GlobalStyle.d.ts +2 -2
  290. package/es/providers/ConfigProvider/GlobalStyle.js +67 -64
  291. package/es/services/MediaTemplateDesign/UploadFile/index.js +4 -4
  292. package/es/utils/common.d.ts +1 -1
  293. package/es/utils/common.js +3 -3
  294. package/es/utils/cookie.js +2 -1
  295. package/es/utils/crossSubdomainCookieOptions.d.ts +14 -0
  296. package/es/utils/crossSubdomainCookieOptions.js +12 -0
  297. package/package.json +26 -30
  298. package/es/components/organism/TextEditor/ui/BubbleToolbar/BubbleToolbar.d.ts +0 -1
  299. package/es/components/organism/TextEditor/ui/BubbleToolbar/BubbleToolbar.js +0 -1
  300. package/es/components/organism/TextEditor/ui/BubbleToolbar/index.d.ts +0 -0
  301. package/es/components/organism/TextEditor/ui/BubbleToolbar/index.js +0 -1
  302. package/es/components/organism/TextEditor/ui/Toolbar/Toolbar.js +0 -39
@@ -1,7 +1,7 @@
1
1
  /* eslint-disable no-underscore-dangle */
2
2
  import { DATA_EVENT, mapTranslateCode } from './constants';
3
3
  import { get } from 'lodash';
4
- import { translate, translations } from '@antscorp/antsomi-ui/es/locales';
4
+ import { translate, translations } from '@antscorp/antsomi-locales';
5
5
  import { safeParse } from '@antscorp/antsomi-ui/es/utils';
6
6
  import { formatDate, formatUTCDateTZ } from '@antscorp/antsomi-ui/es/utils/date';
7
7
  import { getPortalFormatDateTimeLong, getPortalTimeZone, } from '@antscorp/antsomi-ui/es/utils/portal';
@@ -163,9 +163,9 @@ const handlePageEvent = (itemEvent, data) => {
163
163
  if (itemEvent.pageType === 'view') {
164
164
  const validateExtra = itemEvent.extra || {};
165
165
  const locationUrl = safeParse(validateExtra.location_url, '');
166
- const pageTitle = safeParse(validateExtra.page_title, '');
166
+ const pageType = safeParse(validateExtra.page_type, '');
167
167
  // Use page_title if available, otherwise fallback to location_url
168
- const pageTypeText = pageTitle.length > 0 ? pageTitle : locationUrl;
168
+ const pageTypeText = pageType.length > 0 ? pageType : locationUrl;
169
169
  // Build clickable link to location_url
170
170
  if (locationUrl.length > 0 && pageTypeText.length > 0) {
171
171
  data.page_type = `<a class="title-have-url" href="${encodeURI(locationUrl)}" target="_blank">${pageTypeText}</a>`;
@@ -222,22 +222,191 @@ const handleStoreEvent = (itemEvent, data) => {
222
222
  }
223
223
  };
224
224
  const handleScreenviewEvent = (itemEvent, validateExtra, data) => {
225
- if (itemEvent.pageType === 'view' && validateExtra.screen_type) {
226
- data.screen_type = validateExtra.screen_type;
227
- // Add event_source_name from insightPropertyName
225
+ if (itemEvent.pageType === 'view') {
228
226
  data.event_source_name = safeParse(itemEvent.insightPropertyName, 'N/A');
227
+ if (validateExtra.screen_type) {
228
+ data.screen_type = validateExtra.screen_type;
229
+ }
230
+ }
231
+ };
232
+ const handleLeadFormEvent = (validateExtra, valuesReplace, infoEvent) => {
233
+ delete valuesReplace.event_name;
234
+ if (validateExtra.form_name && validateExtra.lead_source) {
235
+ valuesReplace.form_name = validateExtra.form_name;
236
+ valuesReplace.lead_source = validateExtra.lead_source;
237
+ infoEvent.translateCode = translations._EVENT_DES_LEAD_3_INFO;
238
+ }
239
+ else if (validateExtra.lead_source) {
240
+ valuesReplace.lead_source = validateExtra.lead_source;
241
+ infoEvent.translateCode = translations._EVENT_DES_LEAD_2_INFO;
242
+ }
243
+ else {
244
+ infoEvent.translateCode = translations._EVENT_DES_LEAD_0_INFO;
245
+ }
246
+ };
247
+ const handleQrScanEvent = (validateExtra, valuesReplace, infoEvent) => {
248
+ delete valuesReplace.event_name;
249
+ valuesReplace.qr_code_id = validateExtra.qr_code?.id || 'N/A';
250
+ valuesReplace.status = validateExtra.status || 'N/A';
251
+ if (validateExtra.message_content) {
252
+ valuesReplace.message_content = validateExtra.message_content;
253
+ infoEvent.translateCode = translations._EVENT_DES_SCAN_FULL;
254
+ }
255
+ else {
256
+ infoEvent.translateCode = translations._EVENT_DES_SCAN_NO_ERR;
257
+ }
258
+ };
259
+ const handleClickBannerEvent = (validateExtra, valuesReplace, infoEvent) => {
260
+ delete valuesReplace.event_name;
261
+ valuesReplace.position = validateExtra.position || 'N/A';
262
+ infoEvent.translateCode = translations._EVENT_DES_CLICK_BANNER;
263
+ };
264
+ const handleClickButtonEvent = (validateExtra, valuesReplace, infoEvent) => {
265
+ delete valuesReplace.event_name;
266
+ valuesReplace.button_label = validateExtra.button_label || 'N/A';
267
+ valuesReplace.page_cate = validateExtra.page_cate || 'N/A';
268
+ infoEvent.translateCode = translations._EVENT_DES_CLICK_BUTTON;
269
+ };
270
+ const handleViewSchemeEvent = (validateExtra, valuesReplace, infoEvent) => {
271
+ delete valuesReplace.event_name;
272
+ valuesReplace.scheme_code =
273
+ validateExtra.scheme_marketing?.scheme_code ||
274
+ validateExtra.scheme_code ||
275
+ validateExtra.scheme_marketing?.id ||
276
+ 'N/A';
277
+ infoEvent.translateCode = translations._EVENT_DES_VIEW_SCHEME_DETAILS;
278
+ };
279
+ const handleRedeemPointEvent = (validateExtra, valuesReplace, infoEvent, isSuccess) => {
280
+ delete valuesReplace.event_name;
281
+ valuesReplace.scheme_code =
282
+ validateExtra.scheme_marketing?.scheme_code ||
283
+ validateExtra.scheme_code ||
284
+ validateExtra.scheme_marketing?.id ||
285
+ 'N/A';
286
+ if (isSuccess) {
287
+ infoEvent.translateCode = translations._EVENT_DES_REDEEM_SUCCESS;
288
+ }
289
+ else {
290
+ valuesReplace.reason_fail = validateExtra.reason_fail || 'N/A';
291
+ infoEvent.translateCode = translations._EVENT_DES_REDEEM_FAIL;
292
+ }
293
+ };
294
+ const handleUpdateRoleEvent = (validateExtra, valuesReplace, infoEvent, isVisitorProfile) => {
295
+ delete valuesReplace.event_name;
296
+ valuesReplace.visitor_name = isVisitorProfile
297
+ ? translate(translations._THIS_PERSON_UPPERCASE, 'This user')
298
+ : validateExtra.users?.name || valuesReplace.customer_name;
299
+ valuesReplace.name = validateExtra.user_update_name || 'N/A';
300
+ valuesReplace.role = validateExtra.user_update_role || 'N/A';
301
+ infoEvent.translateCode = translations._EVENT_DES_UPDATE_ROLE;
302
+ };
303
+ const handleApproveRequestEvent = (validateExtra, valuesReplace, infoEvent) => {
304
+ delete valuesReplace.event_name;
305
+ valuesReplace.visitor_name = validateExtra.users?.name || valuesReplace.customer_name;
306
+ valuesReplace.name = validateExtra.user_update_name || 'N/A';
307
+ valuesReplace.reason_fail = validateExtra.reason_fail || 'N/A';
308
+ infoEvent.translateCode = translations._EVENT_DES_APPROVE_REQ;
309
+ };
310
+ const handleAddMemberEvent = (validateExtra, valuesReplace, infoEvent) => {
311
+ delete valuesReplace.event_name;
312
+ valuesReplace.visitor_name = valuesReplace.customer_name;
313
+ valuesReplace.customer_name =
314
+ validateExtra.customers?.name || validateExtra.customer_name || 'N/A';
315
+ infoEvent.translateCode = translations._EVENT_DES_ADD_MEM;
316
+ };
317
+ const handleRemoveMemberEvent = (validateExtra, valuesReplace, infoEvent) => {
318
+ delete valuesReplace.event_name;
319
+ valuesReplace.name = validateExtra.user_update_name || 'N/A';
320
+ infoEvent.translateCode = translations._EVENT_DES_REMOVE_MEM;
321
+ };
322
+ const handleRequestAccessEvent = (validateExtra, valuesReplace, infoEvent, isVisitorProfile) => {
323
+ delete valuesReplace.event_name;
324
+ // Visitor page: "This user requested to join {customer_name}"
325
+ // Customer page: "{requester_name} requested to join {customer_name}"
326
+ valuesReplace.visitor_name = isVisitorProfile
327
+ ? valuesReplace.customer_name
328
+ : validateExtra.users?.name || 'A user';
329
+ valuesReplace.customer_name =
330
+ validateExtra.customer_name || validateExtra.customers?.name || valuesReplace.customer_name;
331
+ infoEvent.translateCode = translations._EVENT_DES_REQ_ACCESS;
332
+ };
333
+ const handleShareProgramEvent = (valuesReplace, infoEvent) => {
334
+ delete valuesReplace.event_name;
335
+ infoEvent.translateCode = translations._EVENT_DES_SHARE_PROGRAM;
336
+ };
337
+ const handleEarnRewardEvent = (validateExtra, valuesReplace, infoEvent, isReferrer) => {
338
+ delete valuesReplace.event_name;
339
+ valuesReplace.reward_value = validateExtra.reward_value || 'N/A';
340
+ valuesReplace.reward_type = validateExtra.reward_type || 'N/A';
341
+ if (isReferrer) {
342
+ infoEvent.translateCode = translations._EVENT_DES_EARN_REWARD_REFERRER;
343
+ }
344
+ else {
345
+ infoEvent.translateCode = translations._EVENT_DES_EARN_REWARD_REFEREE;
346
+ }
347
+ };
348
+ const handleCustomEventByEcEa = (eType, pageType, validateExtra, valuesReplace, infoEvent, isVisitorProfile) => {
349
+ if ((eType === 'lead_formated' && pageType === 'sync') ||
350
+ (eType === 'lead_form' && pageType === 'submit')) {
351
+ handleLeadFormEvent(validateExtra, valuesReplace, infoEvent);
352
+ }
353
+ else if (eType === 'qr_code' && pageType === 'scan') {
354
+ handleQrScanEvent(validateExtra, valuesReplace, infoEvent);
355
+ }
356
+ else if (eType === 'banner' && pageType === 'click') {
357
+ handleClickBannerEvent(validateExtra, valuesReplace, infoEvent);
358
+ }
359
+ else if (eType === 'button' && pageType === 'click') {
360
+ handleClickButtonEvent(validateExtra, valuesReplace, infoEvent);
361
+ }
362
+ else if (eType === 'scheme_marketing' && pageType === 'view') {
363
+ handleViewSchemeEvent(validateExtra, valuesReplace, infoEvent);
364
+ }
365
+ else if (eType === 'point' && pageType === 'redeem_point') {
366
+ handleRedeemPointEvent(validateExtra, valuesReplace, infoEvent, true);
367
+ }
368
+ else if (eType === 'point' && pageType === 'redeem_point_fail') {
369
+ handleRedeemPointEvent(validateExtra, valuesReplace, infoEvent, false);
370
+ }
371
+ else if (eType === 'role' && pageType === 'update') {
372
+ handleUpdateRoleEvent(validateExtra, valuesReplace, infoEvent, isVisitorProfile);
373
+ }
374
+ else if (eType === 'request' && pageType === 'approve') {
375
+ handleApproveRequestEvent(validateExtra, valuesReplace, infoEvent);
376
+ }
377
+ else if (eType === 'member' && pageType.toLowerCase() === 'add') {
378
+ handleAddMemberEvent(validateExtra, valuesReplace, infoEvent);
379
+ }
380
+ else if (eType === 'member' && pageType.toLowerCase() === 'remove') {
381
+ handleRemoveMemberEvent(validateExtra, valuesReplace, infoEvent);
382
+ }
383
+ else if (eType === 'access' && pageType === 'request') {
384
+ handleRequestAccessEvent(validateExtra, valuesReplace, infoEvent, isVisitorProfile);
385
+ }
386
+ else if (eType === 'program' && pageType === 'share') {
387
+ handleShareProgramEvent(valuesReplace, infoEvent);
388
+ }
389
+ else if (eType === 'referrer' && pageType === 'earn_reward') {
390
+ handleEarnRewardEvent(validateExtra, valuesReplace, infoEvent, true);
391
+ }
392
+ else if (eType === 'referee' && pageType === 'earn_reward') {
393
+ handleEarnRewardEvent(validateExtra, valuesReplace, infoEvent, false);
229
394
  }
230
395
  };
231
396
  const handleEventTrackingCode = (eventTracking, keyTitleEvent, validateExtra, valuesReplace, infoEvent, config) => {
232
397
  const { story = {} } = validateExtra;
233
398
  if (eventTracking.map[keyTitleEvent]?.eventTrackingCode === 'promotion_code_sent_tracking') {
234
- valuesReplace.promotion_code = valuesReplace.event_name;
235
- delete valuesReplace.event_name;
236
- valuesReplace.journey_name = `<a class="title-have-url" href=${urlJourney(validateExtra, config)} target="_blank">${story.storyName}</a>`;
237
- if (validateExtra.channel &&
238
- mapTranslateCode.promotion_code_sent_tracking[parseInt(validateExtra.channel.id)]) {
239
- infoEvent.translateCode =
240
- mapTranslateCode.promotion_code_sent_tracking[parseInt(validateExtra.channel.id)].translateLabel;
399
+ const sentTranslation = validateExtra.channel &&
400
+ mapTranslateCode.promotion_code_sent_tracking[parseInt(validateExtra.channel.id, 10)];
401
+ if (sentTranslation && story.storyName) {
402
+ valuesReplace.promotion_code = valuesReplace.event_name;
403
+ delete valuesReplace.event_name;
404
+ valuesReplace.journey_name = `<a class="title-have-url" href=${urlJourney(validateExtra, config)} target="_blank">${story.storyName}</a>`;
405
+ infoEvent.translateCode = sentTranslation.translateLabel;
406
+ }
407
+ else {
408
+ infoEvent.translateCode = translations._EVENT_DES_PERFORM_EVENT;
409
+ valuesReplace.event_name = `${eventTracking.map[keyTitleEvent].translateLabel || 'Promotion code sent'}: ${valuesReplace.event_name}`;
241
410
  }
242
411
  }
243
412
  else if (eventTracking.map[keyTitleEvent]?.eventTrackingCode === 'promotion_code_used_tracking') {
@@ -352,7 +521,7 @@ const processEventByType = (eType, itemEvent, validateExtra, data) => {
352
521
  handleScreenviewEvent(itemEvent, validateExtra, data);
353
522
  }
354
523
  };
355
- const buildInfoEvent = (infoEvent, eventTracking, keyTitleEvent, validateExtra, data, config) => {
524
+ const buildInfoEvent = (infoEvent, eventTracking, keyTitleEvent, validateExtra, data, config, eType, pageType, isVisitorProfile) => {
356
525
  let valuesReplace = {};
357
526
  if (infoEvent) {
358
527
  infoEvent.iconName = get(eventTracking, `map.${keyTitleEvent}.iconUrl`);
@@ -374,6 +543,7 @@ const buildInfoEvent = (infoEvent, eventTracking, keyTitleEvent, validateExtra,
374
543
  valuesReplace = getValuesReplace(infoEvent.objectReplace, data);
375
544
  handleEventTrackingCode(eventTracking, keyTitleEvent, validateExtra, valuesReplace, infoEvent, config);
376
545
  }
546
+ handleCustomEventByEcEa(eType, pageType, validateExtra, valuesReplace, infoEvent, isVisitorProfile);
377
547
  return { infoEvent, valuesReplace };
378
548
  };
379
549
  const buildFullContentEvent = (infoEvent, titleEvent, valuesReplace, data) => {
@@ -402,6 +572,7 @@ const calculateSlideSettings = (itemEvent, infoEvent) => {
402
572
  export const getInfoEvent = (params) => {
403
573
  const { eType, itemEvent, eventTracking, config, customerName: customerNameParam } = params;
404
574
  const customerName = customerNameParam || '_THIS_PERSON_UPPERCASE';
575
+ const isVisitorProfile = customerName === '_THIS_PERSON_UPPERCASE';
405
576
  // Step 1: Prepare initial data and extract common fields
406
577
  const { keyTitleEvent, validateExtra, titleEvent: initialTitleEvent, data, } = prepareInitialData(itemEvent, eType, eventTracking, customerName);
407
578
  // Step 2: Update titleEvent if eventTracking has a mapping
@@ -413,7 +584,7 @@ export const getInfoEvent = (params) => {
413
584
  processEventByType(eType, itemEvent, validateExtra, data);
414
585
  // Step 4: Build infoEvent and valuesReplace
415
586
  let infoEvent = DATA_EVENT.map[`${itemEvent.pageType} ${eType}`];
416
- const { infoEvent: processedInfoEvent, valuesReplace } = buildInfoEvent(infoEvent, eventTracking, keyTitleEvent, validateExtra, data, config);
587
+ const { infoEvent: processedInfoEvent, valuesReplace } = buildInfoEvent(infoEvent, eventTracking, keyTitleEvent, validateExtra, data, config, eType, itemEvent.pageType, isVisitorProfile);
417
588
  infoEvent = processedInfoEvent;
418
589
  // Step 5: Build full content event text
419
590
  const fullContentEvent = buildFullContentEvent(infoEvent, titleEvent, valuesReplace, data);
@@ -20,7 +20,7 @@ import { renderMenuIcon } from './utils';
20
20
  const SubLogoAntsomi = 'https://st-media-template.antsomi.com/icons/antsomi/antsomi.png';
21
21
  const homePermissionCode = 'DASHBOARD';
22
22
  export const LeftMenuComponent = memo(props => {
23
- const { show = true, style, className, customization, showLogo = true, onClickLogo } = props;
23
+ const { show = true, style, className, customization, showLogo = true, footer, onClickLogo, } = props;
24
24
  const { showMenuPopover = true, showButtonExpand = true, type, items = [], onMenuItemClick, } = customization || {};
25
25
  const appHoverMenuChildren = useLeftMenuContext(store => store.appHoverMenuChildren);
26
26
  const customHoverMenuChildren = useLeftMenuContext(store => store.customHoverMenuChildren);
@@ -59,21 +59,21 @@ export const LeftMenuComponent = memo(props => {
59
59
  const isActive = activeAppCode === menu_item_code;
60
60
  const isHover = state.hoverItem === menu_item_code;
61
61
  let Label = null;
62
- Label = (_jsxs("li", { role: "menuitem", className: classNames({ isActive, isHover }), children: [renderMenuIcon(component_icon_name || icon_name || ''), _jsx(Typography.Text, { children: menu_item_name }), showMenuPopover && _jsx("div", { className: "popup-triangle" })] }));
62
+ Label = (_jsxs("li", { role: "menuitem", className: classNames('menu_item', { isActive, isHover }), children: [renderMenuIcon(component_icon_name || icon_name || ''), _jsx(Typography.Text, { ellipsis: { tooltip: menu_item_name }, children: menu_item_name }), showMenuPopover && _jsx("div", { className: "popup-triangle" })] }));
63
63
  return (_jsx(FeatureMenuItem, { onClick: () => onClickFeatureMenuItem(item), onMouseEnter: () => onMouseEnter(menu_item_code), children: Label }, menu_item));
64
64
  }, [activeAppCode, state.hoverItem, showMenuPopover, onMouseEnter, onClickFeatureMenuItem]);
65
65
  const renderRecommendationMenuItem = useCallback((item) => {
66
66
  const { menu_item_name, menu_item, component_icon_name, icon_name, permission_code } = item;
67
67
  const isActive = customActiveAppKey === permission_code;
68
68
  const isHover = state.hoverItem === permission_code;
69
- const renderLabel = () => (_jsxs("li", { role: "menuitem", className: classNames({ isActive, isHover }), onClick: () => onMenuItemClick?.(permission_code || 'null', [permission_code || 'null']), children: [renderMenuIcon(component_icon_name || icon_name || ''), _jsx(Typography.Text, { children: menu_item_name })] }));
69
+ const renderLabel = () => (_jsxs("li", { role: "menuitem", className: classNames('menu_item', { isActive, isHover }), onClick: () => onMenuItemClick?.(permission_code || 'null', [permission_code || 'null']), children: [renderMenuIcon(component_icon_name || icon_name || ''), _jsx(Typography.Text, { ellipsis: { tooltip: menu_item_name }, children: menu_item_name })] }));
70
70
  return (_jsx(FeatureMenuItem, { onMouseEnter: () => onMouseEnter(permission_code || 'null'), children: renderLabel() }, menu_item));
71
71
  }, [customActiveAppKey, onMenuItemClick, onMouseEnter, state.hoverItem]);
72
72
  const renderCustomizedMenuItems = useCallback((items) => items?.map(item => {
73
73
  const { key, icon, label } = item;
74
74
  const isActive = key === customActiveAppKey;
75
75
  const isHover = key === state.hoverItem;
76
- return (_jsx(FeatureMenuItem, { onClick: () => onMenuItemClick?.(key, [key]), onMouseEnter: () => onMouseEnter(key), children: _jsxs("li", { role: "menuitem", className: classNames({ isActive, isHover }), children: [renderMenuIcon(icon || ''), _jsx(Typography.Text, { children: label }), showMenuPopover && _jsx("div", { className: "popup-triangle" })] }) }, key));
76
+ return (_jsx(FeatureMenuItem, { onClick: () => onMenuItemClick?.(key, [key]), onMouseEnter: () => onMouseEnter(key), children: _jsxs("li", { role: "menuitem", className: classNames('menu_item', { isActive, isHover }), children: [renderMenuIcon(icon || ''), _jsx(Typography.Text, { ellipsis: { tooltip: label }, children: label }), showMenuPopover && _jsx("div", { className: "popup-triangle" })] }) }, key));
77
77
  }), [customActiveAppKey, state.hoverItem, showMenuPopover, onMenuItemClick, onMouseEnter]);
78
78
  const renderAppMenuItems = useCallback(() => type === 'customization'
79
79
  ? renderCustomizedMenuItems(items)
@@ -99,9 +99,9 @@ export const LeftMenuComponent = memo(props => {
99
99
  }
100
100
  return null;
101
101
  };
102
- return (_jsxs(LeftMenuNavWrapper, { "$show": show, style: style, "$isExpandMenu": state.isExpandMenu, className: className, children: [_jsxs(LeftMenuNav, { className: "left-menu-nav", children: [_jsxs(FeatureMenuWrapper, { vertical: true, onMouseEnter: () => onShowPopover(), onMouseLeave: onMouseLeave, children: [showLogo && (_jsx(NavLogoWrapper, { align: "center", justify: "center", onMouseEnter: onHoverMenuBar, onClick: onClickLogo, children: _jsx("div", { className: "image-wrapper", children: _jsx("img", { src: SubLogoAntsomi, alt: "Antsomi sub logo" }) }) })), _jsxs(FeatureMenu, { role: "menu", className: "antsomi-scroll-box", children: [_jsx("div", { className: "menu-content scroll-content", children: renderAppMenuItems() }), _jsx("div", { className: "nav-blank", onMouseEnter: onHoverMenuBar }), showMenuPopover && (_jsx(PopoverWrapper, { show: state.isShowPopover && !isEmpty(hoverMenuChildren), hasMarginTop: type !== 'recommendation', className: "antsomi-scroll-box antsomi-child-menu-popover", children: _jsx("div", { className: "scroll-content", style: { width: '200px', maxHeight: '100%' }, children: childHoverMenu }) }))] }), _jsx("div", { style: { flexShrink: 0 }, children: renderSettings() })] }), showButtonExpand && (_jsx(ExpandWrapper, { onMouseEnter: onMouseLeave, children: _jsx(Icon, { type: "icon-ants-expand-more", style: {
102
+ return (_jsxs(LeftMenuNavWrapper, { "$show": show, style: style, "$isExpandMenu": state.isExpandMenu, className: className, children: [_jsxs(LeftMenuNav, { className: "left-menu-nav", children: [_jsxs(FeatureMenuWrapper, { vertical: true, onMouseEnter: () => onShowPopover(), onMouseLeave: onMouseLeave, children: [showLogo && (_jsx(NavLogoWrapper, { align: "center", justify: "center", onMouseEnter: onHoverMenuBar, onClick: onClickLogo, children: _jsx("div", { className: "image-wrapper", children: _jsx("img", { src: SubLogoAntsomi, alt: "Antsomi sub logo" }) }) })), _jsxs(FeatureMenu, { role: "menu", className: "antsomi-scroll-box", children: [_jsx("div", { className: "menu-content scroll-content", children: renderAppMenuItems() }), _jsx("div", { className: "nav-blank", onMouseEnter: onHoverMenuBar }), showMenuPopover && (_jsx(PopoverWrapper, { show: state.isShowPopover && !isEmpty(hoverMenuChildren), hasMarginTop: type !== 'recommendation', className: "antsomi-scroll-box antsomi-child-menu-popover", children: _jsx("div", { className: "scroll-content", style: { width: '200px', maxHeight: '100%' }, children: childHoverMenu }) }))] }), footer === undefined && _jsx("div", { style: { flexShrink: 0 }, children: renderSettings() })] }), footer !== undefined ? (_jsx("div", { style: { flexShrink: 0 }, children: footer })) : showButtonExpand ? (_jsx(ExpandWrapper, { onMouseEnter: onMouseLeave, children: _jsx(Icon, { type: "icon-ants-expand-more", style: {
103
103
  cursor: 'pointer',
104
104
  fontSize: '20px',
105
105
  transform: `rotate(${state.isExpandMenu ? '90deg' : '270deg'})`,
106
- }, onClick: onToggleChildMenu }) }))] }), _jsx(ChildMenuWrapper, { isExpand: state.isExpandMenu, isMarginTop: showLogo, className: "antsomi-scroll-box", children: _jsx("div", { className: "scroll-content", style: { width: '200px', maxHeight: '100%' }, children: childActiveMenu }) })] }));
106
+ }, onClick: onToggleChildMenu }) })) : null] }), _jsx(ChildMenuWrapper, { isExpand: state.isExpandMenu, isMarginTop: showLogo, className: "antsomi-scroll-box", children: _jsx("div", { className: "scroll-content", style: { width: '200px', maxHeight: '100%' }, children: childActiveMenu }) })] }));
107
107
  }, (prevProps, nextProps) => isEqual(prevProps, nextProps));
@@ -115,7 +115,7 @@ export const usePermission = () => {
115
115
  },
116
116
  });
117
117
  const flattenMenuPermission = flattenMenuArray(menuListPermission || [], 'childs');
118
- const permissionMenu = useMemo(() => recursivePermissionMenu(sortBy(menuList?.rows || [], ['level_position']), flattenMenuPermission), [menuList?.rows, flattenMenuPermission]);
118
+ const permissionMenu = useMemo(() => recursivePermissionMenu(sortBy(menuList?.rows || [], [item => Number(item?.level_position)]), flattenMenuPermission), [menuList?.rows, flattenMenuPermission]);
119
119
  const mappingChildrenMenu = useMemo(() => getMappingAppChildren({
120
120
  menuList: permissionMenu,
121
121
  auth,
@@ -163,6 +163,8 @@ export const FeatureMenuItem = styled.div `
163
163
  font-size: 11px !important;
164
164
  font-weight: 500;
165
165
  color: inherit;
166
+ width: 100%;
167
+ text-align: center;
166
168
  }
167
169
 
168
170
  .menu-item__icon {
@@ -1,3 +1,4 @@
1
+ import { ReactNode } from 'react';
1
2
  import { AppConfigProviderProps } from '@antscorp/antsomi-ui/es/providers';
2
3
  import { FeatureMenuPermission, TFeatureMenu } from '@antscorp/antsomi-ui/es/models/LeftMenu';
3
4
  export type TMenuItem = Omit<Partial<TFeatureMenu>, 'children' | keyof TRequireMenuItemKey> & {
@@ -37,6 +38,12 @@ export interface LeftMenuProps {
37
38
  style?: React.CSSProperties;
38
39
  className?: string;
39
40
  showLogo?: boolean;
41
+ /**
42
+ * Custom content rendered at the bottom of the primary menu rail.
43
+ * When provided, it replaces the default Settings item and Expand button.
44
+ * Pass `null` to hide the default footer without rendering a replacement.
45
+ */
46
+ footer?: ReactNode;
40
47
  customization?: {
41
48
  type?: TLeftMenuType;
42
49
  showButtonExpand?: boolean;
@@ -84,7 +84,7 @@ export const recursivePermissionMenu = (menuItems, menuPermissions) => {
84
84
  ...item,
85
85
  ...(isArray(item.children)
86
86
  ? {
87
- children: recursivePermissionMenu(sortBy(item.children || [], ['level_position']), menuPermissions),
87
+ children: recursivePermissionMenu(sortBy(item.children || [], [item => Number(item.level_position)]), menuPermissions),
88
88
  }
89
89
  : {}),
90
90
  }))
@@ -17,6 +17,7 @@ import { LoginSelectPortal, LoginWithGG, SignIn, VerifyAccount, SetupGGAuthentic
17
17
  import { useContainerDimensions } from './hooks';
18
18
  // Utils
19
19
  import { checkURL, navigateTo } from './utils';
20
+ import { createCrossSubdomainCookieOptions } from '@antscorp/antsomi-ui/es/utils/crossSubdomainCookieOptions';
20
21
  import { LOGIN_METHODS, STEPS } from './constants';
21
22
  import { LoginBannerZone, LoginMain, WrapperLogin } from './styled';
22
23
  export const Login = props => {
@@ -208,7 +209,10 @@ export const Login = props => {
208
209
  if (menus && menus.length) {
209
210
  handleLoginData(dataLogin, !isCallbackUrl && !isHomePageUrl, selectedNetworkRef.current && selectedNetworkRef.current.networkId);
210
211
  if (onLoginSuccess && typeof onLoginSuccess === 'function') {
211
- onLoginSuccess(dataLogin);
212
+ onLoginSuccess({
213
+ ...dataLogin,
214
+ networkId: selectedNetworkRef.current?.networkId ?? networkId,
215
+ });
212
216
  setLoadingSkip(false);
213
217
  }
214
218
  else if (isCallbackUrl && callbackUrl) {
@@ -242,7 +246,10 @@ export const Login = props => {
242
246
  handleLoginData(dataLogin, !isCallbackUrl && !isHomePageUrl, selectedNetworkRef.current && selectedNetworkRef.current.networkId);
243
247
  setLoadingSkip(false);
244
248
  if (onLoginSuccess && typeof onLoginSuccess === 'function') {
245
- onLoginSuccess(dataLogin);
249
+ onLoginSuccess({
250
+ ...dataLogin,
251
+ networkId: selectedNetworkRef.current?.networkId ?? networkId,
252
+ });
246
253
  }
247
254
  else if (isCallbackUrl && callbackUrl) {
248
255
  navigateTo(callbackUrl);
@@ -263,7 +270,10 @@ export const Login = props => {
263
270
  setLoadingSkip(false);
264
271
  handleLoginData(dataLogin, !isCallbackUrl && !isHomePageUrl, selectedNetworkRef.current && selectedNetworkRef.current.networkId);
265
272
  if (onLoginSuccess && typeof onLoginSuccess === 'function') {
266
- onLoginSuccess(dataLogin);
273
+ onLoginSuccess({
274
+ ...dataLogin,
275
+ networkId: selectedNetworkRef.current?.networkId ?? networkId,
276
+ });
267
277
  }
268
278
  else if (isCallbackUrl && callbackUrl) {
269
279
  navigateTo(callbackUrl);
@@ -430,7 +440,6 @@ export const Login = props => {
430
440
  if (postParam.error && postParam.error !== '') {
431
441
  }
432
442
  else {
433
- const arrTmp = window.location.hostname.split('.');
434
443
  if (postParam.action === 'ogs-authenticate') {
435
444
  const loginData = { ...postParam, type: 'all_account' };
436
445
  if (loginData.hasOwnProperty('full_name')) {
@@ -454,38 +463,12 @@ export const Login = props => {
454
463
  ? u_ogs
455
464
  : `${u_ogs}_${selectedNetworkRef.current?.networkId}`;
456
465
  const maxAge = 30 * 24 * 3600;
457
- if (window.location.protocol !== 'https:') {
458
- if (arrTmp.length < 4) {
459
- setCookie(cookieKey, JSON.stringify(loginData), {
460
- domain: arrTmp.slice(-2).join('.'),
461
- path: '/; samesite=None',
462
- maxAge,
463
- });
464
- }
465
- else {
466
- setCookie(cookieKey, JSON.stringify(loginData), {
467
- domain: arrTmp.slice(-3).join('.'),
468
- path: '/; samesite=None',
469
- maxAge,
470
- });
471
- }
472
- }
473
- else {
474
- if (arrTmp.length < 4) {
475
- setCookie(cookieKey, JSON.stringify(loginData), {
476
- domain: arrTmp.slice(-2).join('.'),
477
- path: '/; samesite=None; secure',
478
- maxAge,
479
- });
480
- }
481
- else {
482
- setCookie(cookieKey, JSON.stringify(loginData), {
483
- domain: arrTmp.slice(-3).join('.'),
484
- path: '/; samesite=None; secure',
485
- maxAge,
486
- });
487
- }
488
- }
466
+ const cookieOptions = createCrossSubdomainCookieOptions({
467
+ hostname: window.location.hostname,
468
+ protocol: window.location.protocol,
469
+ maxAge,
470
+ });
471
+ setCookie(cookieKey, JSON.stringify(loginData), cookieOptions);
489
472
  }
490
473
  }
491
474
  if (doPostEvent) {
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { ModalV2 } from '@antscorp/antsomi-ui/es/components/molecules';
2
+ import { ModalV2 } from '@antscorp/antsomi-ui/es/components/molecules/ModalV2';
3
3
  import Icon from '@antscorp/icons';
4
4
  import { Flex, Tooltip, Typography } from 'antd';
5
5
  import { useState } from 'react';
@@ -10,7 +10,7 @@ import { get, isEmpty } from 'lodash';
10
10
  import { WidgetLayout } from '../WidgetLayout';
11
11
  import { Item } from './Item';
12
12
  import { Avatar } from '../Avatar';
13
- import { Scrollbars } from '@antscorp/antsomi-ui/es/components/atoms';
13
+ import { Scrollbars } from '@antscorp/antsomi-ui/es/components/atoms/Scrollbars';
14
14
  import NoData from '../../../../../assets/images/components/Login/NoData.png';
15
15
  // Styled
16
16
  import { WrapperList } from './styled';
@@ -72,10 +72,10 @@ export const SignIn = props => {
72
72
  message: 'Please enter your email',
73
73
  pattern: /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,
74
74
  },
75
- ], children: _jsx(StyleInput, { isMobile: isMobile, placeholder: "Email" }) }), _jsx(Form.Item, { name: "password", rules: [
75
+ ], children: _jsx(StyleInput, { autoComplete: "username", name: "email", type: "text", isMobile: isMobile, placeholder: "Email" }) }), _jsx(Form.Item, { name: "password", rules: [
76
76
  { required: true, message: 'Please enter your password' },
77
77
  { min: 6, message: 'Password must be at least 6 characters long' },
78
- ], style: { marginTop: 15 }, children: _jsx(StyleInput.Password, { placeholder: "Password", iconRender: visible => visible ? (_jsx(Icon, { type: "icon-ants-eye", style: {
78
+ ], style: { marginTop: 15 }, children: _jsx(StyleInput.Password, { name: "password", autoComplete: "current-password", placeholder: "Password", iconRender: visible => visible ? (_jsx(Icon, { type: "icon-ants-eye", style: {
79
79
  color: '#595959',
80
80
  } })) : (_jsx(Icon, { type: "icon-ants-invisible", style: {
81
81
  color: '#595959',
@@ -19,6 +19,8 @@ export interface LoginData {
19
19
  G2FA: number;
20
20
  status: boolean;
21
21
  errorCode: string;
22
+ /** The networkId (portalId) of the network the user logged into */
23
+ networkId?: number | string;
22
24
  [key: string]: any;
23
25
  }
24
26
  export interface Account {
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import { LoginV2Props } from './types';
3
+ export declare const LoginV2: React.FC<LoginV2Props>;