@antscorp/antsomi-ui 1.3.7-beta.7 → 1.3.7-beta.70

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 (405) hide show
  1. package/README.md +78 -78
  2. package/es/__mocks__/1000_city.json +802 -802
  3. package/es/__mocks__/sql-query.json +56 -56
  4. package/es/assets/css/main.scss +8 -8
  5. package/es/assets/images/feedback.svg +3 -3
  6. package/es/assets/svg/mobile-frame.svg +3 -3
  7. package/es/assets/svg/warning-icon.svg +5 -5
  8. package/es/components/atoms/Alert/Alert.js +28 -28
  9. package/es/components/atoms/ContentEditable/styled.js +16 -16
  10. package/es/components/atoms/DividerPure/styled.js +35 -35
  11. package/es/components/atoms/Eyedropper/styled.js +39 -39
  12. package/es/components/atoms/Icon/index.js +19 -19
  13. package/es/components/atoms/Iframe/Iframe.js +18 -18
  14. package/es/components/atoms/Input/Input.js +3 -1
  15. package/es/components/atoms/Input/styled.js +104 -104
  16. package/es/components/atoms/InputDynamic/InputDynamic.js +3 -3
  17. package/es/components/atoms/InputDynamic/styled.js +284 -284
  18. package/es/components/atoms/MobileBrandingBar/styled.js +21 -21
  19. package/es/components/atoms/MobileFrame/styled.js +30 -30
  20. package/es/components/atoms/MobileFrameV2/styled.js +42 -42
  21. package/es/components/atoms/MobileFrameV3/styled.js +31 -31
  22. package/es/components/atoms/NotificationStatus/styled.js +10 -10
  23. package/es/components/atoms/PreviewTabs/styled.js +69 -69
  24. package/es/components/atoms/Radio/index.js +16 -16
  25. package/es/components/atoms/ReactIframe/ReactIframe.js +5 -5
  26. package/es/components/atoms/ReactIframe/styled.js +9 -9
  27. package/es/components/atoms/RequiredLabel/styled.js +3 -3
  28. package/es/components/atoms/ScrollBox/index.js +5 -5
  29. package/es/components/atoms/Scrollbars/styled.js +21 -21
  30. package/es/components/atoms/SelectAssociatedTag/styled.js +51 -51
  31. package/es/components/atoms/SlideBar/styled.js +194 -194
  32. package/es/components/atoms/Slider/styled.js +31 -31
  33. package/es/components/atoms/Space/Space.js +4 -4
  34. package/es/components/atoms/Spin/styled.js +11 -11
  35. package/es/components/atoms/Steps/styled.js +244 -244
  36. package/es/components/atoms/Switch/styled.js +56 -56
  37. package/es/components/atoms/Tag/Tag.js +10 -10
  38. package/es/components/atoms/Text/styled.js +34 -34
  39. package/es/components/icons/DomainManagementIcon.js +1 -1
  40. package/es/components/icons/LazyIcon/LazyIcon.d.ts +2 -0
  41. package/es/components/icons/LazyIcon/LazyIcon.js +2 -0
  42. package/es/components/icons/LoadingIcon.js +33 -33
  43. package/es/components/icons/QRCodeManagementIcon.d.ts +3 -0
  44. package/es/components/icons/QRCodeManagementIcon.js +7 -0
  45. package/es/components/icons/QRSetDashboardIcon.d.ts +3 -0
  46. package/es/components/icons/QRSetDashboardIcon.js +7 -0
  47. package/es/components/icons/document/styled.js +43 -43
  48. package/es/components/icons/index.d.ts +2 -0
  49. package/es/components/icons/index.js +2 -0
  50. package/es/components/index.scss +2 -2
  51. package/es/components/molecules/AccessDenied/styled.js +28 -28
  52. package/es/components/molecules/AccountSelection/styled.js +110 -110
  53. package/es/components/molecules/AddDynamicContent/AddDynamicContent.js +28 -2
  54. package/es/components/molecules/AddDynamicContent/components/DisplayFormat/DisplayFormat.d.ts +1 -0
  55. package/es/components/molecules/AddDynamicContent/constants.d.ts +2 -0
  56. package/es/components/molecules/AddDynamicContent/constants.js +2 -0
  57. package/es/components/molecules/AddDynamicContent/styled.js +23 -23
  58. package/es/components/molecules/AlignSetting/styled.js +4 -4
  59. package/es/components/molecules/ApplyPopupContent/styled.js +32 -32
  60. package/es/components/molecules/CalendarSelection/components/AutoUpdateTo/styled.js +8 -8
  61. package/es/components/molecules/CalendarSelection/components/CustomPicker/styled.js +79 -79
  62. package/es/components/molecules/CalendarSelection/components/Footer/styled.js +4 -4
  63. package/es/components/molecules/CalendarSelection/components/RangePicker/styled.js +21 -21
  64. package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/components/Option/Option.js +26 -26
  65. package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/styled.js +30 -30
  66. package/es/components/molecules/CalendarSelection/components/TimeRangeDisplay/styled.js +26 -26
  67. package/es/components/molecules/CalendarSelection/styled.js +8 -8
  68. package/es/components/molecules/CaptureScreen/components/CommentBox/styled.js +119 -119
  69. package/es/components/molecules/CaptureScreen/components/Cursor/styled.js +67 -67
  70. package/es/components/molecules/CaptureScreen/styled.js +240 -240
  71. package/es/components/molecules/ChartTab/components/styled.js +24 -24
  72. package/es/components/molecules/ChartTab/styled.js +20 -20
  73. package/es/components/molecules/ChatBox/AntsomiAI.js +8 -8
  74. package/es/components/molecules/ChatBox/ChatBoxInsight/QuestionItem.js +9 -9
  75. package/es/components/molecules/ChatBox/ChatBoxInsight/styled.js +365 -365
  76. package/es/components/molecules/ChatBox/styled.js +324 -324
  77. package/es/components/molecules/CodeStructure/styled.js +5 -5
  78. package/es/components/molecules/ColorPicker/ChromePicker/styled.js +10 -10
  79. package/es/components/molecules/ColorPicker/CustomPicker/styled.js +89 -89
  80. package/es/components/molecules/ColorPicker/SketchPicker/styled.js +5 -5
  81. package/es/components/molecules/ColorPicker/index.d.ts +2 -0
  82. package/es/components/molecules/ColorPicker/index.js +8 -3
  83. package/es/components/molecules/ColorPicker/styled.js +7 -7
  84. package/es/components/molecules/ColorSetting/styled.js +39 -39
  85. package/es/components/molecules/DatePicker/components/AdvancedPicker/styled.js +110 -110
  86. package/es/components/molecules/DatePickerV2/styled.js +6 -6
  87. package/es/components/molecules/DisplayFormat/styled.js +12 -12
  88. package/es/components/molecules/DrawerDetail/components/ToggleDrawerSizeButton.js +24 -24
  89. package/es/components/molecules/DrawerDetail/styled.js +109 -109
  90. package/es/components/molecules/Dropdown/style.scss +11 -11
  91. package/es/components/molecules/Dropdown/styled.js +28 -28
  92. package/es/components/molecules/EdgeSetting/styled.js +10 -10
  93. package/es/components/molecules/EditableName/styled.js +70 -70
  94. package/es/components/molecules/EditingList/styled.js +29 -29
  95. package/es/components/molecules/EditingListV2/components/List/List.js +9 -9
  96. package/es/components/molecules/EditorTab/styled.js +156 -156
  97. package/es/components/molecules/EmojiCollections/styled.js +22 -22
  98. package/es/components/molecules/EmojiPopover/EmojiPopover.d.ts +1 -0
  99. package/es/components/molecules/EmojiPopover/EmojiPopover.js +2 -2
  100. package/es/components/molecules/EmojiPopover/styled.d.ts +2 -2
  101. package/es/components/molecules/EmojiPopover/styled.js +5 -5
  102. package/es/components/molecules/EmptyData/styled.js +53 -53
  103. package/es/components/molecules/EyedropperButton/styled.js +19 -19
  104. package/es/components/molecules/FontSizeInput/index.scss +15 -15
  105. package/es/components/molecules/FontSizeInput/styled.js +31 -31
  106. package/es/components/molecules/GradientSetting/styled.js +57 -57
  107. package/es/components/molecules/HeaderV2/HeaderV2.d.ts +1 -1
  108. package/es/components/molecules/HeaderV2/styled.js +70 -70
  109. package/es/components/molecules/IconSelection/styled.js +69 -69
  110. package/es/components/molecules/ImageEditor/components/ModalShortcut.js +21 -21
  111. package/es/components/molecules/ImageEditor/styled.js +5 -5
  112. package/es/components/molecules/ImagePreview/styled.js +3 -3
  113. package/es/components/molecules/InputNumberWithUnit/styled.js +14 -14
  114. package/es/components/molecules/InputSearch/styled.js +41 -41
  115. package/es/components/molecules/InputSelectAttribute/styled.js +22 -22
  116. package/es/components/molecules/ItemNotFound/styled.js +26 -26
  117. package/es/components/molecules/MatchAnySelect/components/ExtendValuePopup.js +8 -8
  118. package/es/components/molecules/MatchAnySelect/styled.js +247 -247
  119. package/es/components/molecules/Modal/Modal.js +7 -1
  120. package/es/components/molecules/Modal/styled.js +63 -63
  121. package/es/components/molecules/ModalSelect/styled.js +152 -152
  122. package/es/components/molecules/ModalV2/styled.js +27 -27
  123. package/es/components/molecules/PopupDraggable/styled.js +57 -57
  124. package/es/components/molecules/PreviewModal/styled.js +26 -26
  125. package/es/components/molecules/ProcessLoading/styled.js +2 -2
  126. package/es/components/molecules/QuillEditor/CustomToolbar.js +3165 -3165
  127. package/es/components/molecules/QuillEditor/EditorToolbar.js +7 -7
  128. package/es/components/molecules/QuillEditor/styled.js +25 -25
  129. package/es/components/molecules/RadioGroup/styled.js +9 -9
  130. package/es/components/molecules/RequestAccess/styled.js +38 -38
  131. package/es/components/molecules/ResizeGrid/components/Cell/styled.js +77 -77
  132. package/es/components/molecules/ResizeGrid/styled.js +50 -50
  133. package/es/components/molecules/RichMenu/RichMenuBlock/RichMenuCell/styled.js +118 -118
  134. package/es/components/molecules/RichMenu/RichMenuBlock/styled.js +13 -13
  135. package/es/components/molecules/RichMenu/RichMenuChatBar/TypingChat/styled.js +40 -40
  136. package/es/components/molecules/RichMenu/RichMenuChatBar/styled.js +27 -27
  137. package/es/components/molecules/RichMenu/RichMenuMobileView/RichMenuMobileView.js +2 -2
  138. package/es/components/molecules/RichMenu/RichMenuMobileView/styled.js +38 -38
  139. package/es/components/molecules/SearchPopover/SearchPopover.js +2 -2
  140. package/es/components/molecules/SearchPopover/components/PopoverSelect/styled.js +36 -36
  141. package/es/components/molecules/SearchPopover/components/PopoverSelect/styles.scss +7 -7
  142. package/es/components/molecules/SearchPopover/styled.d.ts +12 -1
  143. package/es/components/molecules/SearchPopover/styled.js +32 -33
  144. package/es/components/molecules/SearchPopover/types.d.ts +4 -3
  145. package/es/components/molecules/Select/Select.js +3 -3
  146. package/es/components/molecules/Select/styled.d.ts +3 -1
  147. package/es/components/molecules/Select/styled.js +76 -32
  148. package/es/components/molecules/SelectAccount/styled.js +147 -147
  149. package/es/components/molecules/SelectEventAttribute/styled.js +8 -8
  150. package/es/components/molecules/SelectMulti/styled.js +62 -62
  151. package/es/components/molecules/SelectV2/styled.js +124 -124
  152. package/es/components/molecules/SettingWrapper/styled.js +12 -12
  153. package/es/components/molecules/ShareAccess/ShareAccess.d.ts +2 -1
  154. package/es/components/molecules/ShareAccess/ShareAccess.js +12 -9
  155. package/es/components/molecules/ShareAccess/components/GeneralAccess/styled.js +56 -56
  156. package/es/components/molecules/ShareAccess/components/LayoutContent/LayoutContent.js +5 -5
  157. package/es/components/molecules/ShareAccess/components/LayoutContent/styled.js +5 -5
  158. package/es/components/molecules/ShareAccess/components/ModalTransferOwnerShip/styled.js +15 -15
  159. package/es/components/molecules/ShareAccess/components/PeopleAccess/PeopleAccess.js +2 -2
  160. package/es/components/molecules/ShareAccess/components/PeopleAccess/styled.js +63 -63
  161. package/es/components/molecules/ShareAccess/components/SearchUser/styled.js +31 -31
  162. package/es/components/molecules/ShareAccess/hooks/useShareAccess.d.ts +2 -1
  163. package/es/components/molecules/ShareAccess/index.d.ts +1 -0
  164. package/es/components/molecules/ShareAccess/reducer.d.ts +1 -1
  165. package/es/components/molecules/ShareAccess/reducer.js +7 -4
  166. package/es/components/molecules/ShareAccess/types.d.ts +22 -0
  167. package/es/components/molecules/ShareAccess/utils.d.ts +3 -1
  168. package/es/components/molecules/ShareAccess/utils.js +35 -2
  169. package/es/components/molecules/SliderWithInputNumber/styled.js +2 -2
  170. package/es/components/molecules/Tabs/Tabs.js +11 -11
  171. package/es/components/molecules/TagifyInput/TagifyInput.js +98 -77
  172. package/es/components/molecules/TagifyInput/styled.js +37 -37
  173. package/es/components/molecules/TagifyInput/types.d.ts +14 -8
  174. package/es/components/molecules/TagifyInput/utils.d.ts +6 -1
  175. package/es/components/molecules/TagifyInput/utils.js +32 -13
  176. package/es/components/molecules/TagifyInput/utils.style.js +208 -208
  177. package/es/components/molecules/TemplateSaveAs/components/Category/Category.js +5 -5
  178. package/es/components/molecules/TemplateSaveAs/components/ImageSlider/styled.js +276 -276
  179. package/es/components/molecules/TemplateSaveAs/styled.js +134 -134
  180. package/es/components/molecules/ThumbnailCard/styled.js +92 -92
  181. package/es/components/molecules/Tree/styled.js +38 -38
  182. package/es/components/molecules/UnsubscribePreferences/styled.js +7 -7
  183. package/es/components/molecules/UnsubscribePreview/components/styled.js +53 -53
  184. package/es/components/molecules/UnsubscribePreview/styled.js +48 -48
  185. package/es/components/molecules/UploadImage/styled.js +114 -114
  186. package/es/components/molecules/VirtualizedMenu/VirtualizedMenu.d.ts +1 -0
  187. package/es/components/molecules/VirtualizedMenu/components/Item/Item.js +3 -7
  188. package/es/components/molecules/VirtualizedMenu/components/MenuInline/MenuInline.d.ts +10 -10
  189. package/es/components/molecules/VirtualizedMenu/components/MenuInline/MenuInline.js +46 -327
  190. package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/index.d.ts +9 -0
  191. package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/index.js +5 -0
  192. package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useFocusManagement.d.ts +23 -0
  193. package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useFocusManagement.js +81 -0
  194. package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useItemInteraction.d.ts +24 -0
  195. package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useItemInteraction.js +32 -0
  196. package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useKeyboardNavigation.d.ts +26 -0
  197. package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useKeyboardNavigation.js +93 -0
  198. package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useTreeState.d.ts +24 -0
  199. package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useTreeState.js +94 -0
  200. package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useVisibleItems.d.ts +7 -0
  201. package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useVisibleItems.js +132 -0
  202. package/es/components/molecules/VirtualizedMenu/styled.js +103 -92
  203. package/es/components/molecules/VirtualizedMenu/types.d.ts +1 -0
  204. package/es/components/molecules/VirtualizedMenu/utils.d.ts +1 -0
  205. package/es/components/molecules/VirtualizedMenu/utils.js +1 -0
  206. package/es/components/molecules/index.d.ts +1 -0
  207. package/es/components/molecules/index.scss +1 -1
  208. package/es/components/organism/AccountProfile/components/AccountSetting/components/EditableInput/styles.js +98 -98
  209. package/es/components/organism/AccountProfile/components/AccountSetting/components/LanguageSelector/styles.js +18 -18
  210. package/es/components/organism/AccountProfile/components/AccountSetting/styled.js +543 -543
  211. package/es/components/organism/AccountProfile/components/AccountSetting/styles.scss +39 -39
  212. package/es/components/organism/AccountSharing/AccountSharing.d.ts +1 -0
  213. package/es/components/organism/AccountSharing/AccountSharing.js +17 -33
  214. package/es/components/organism/AccountSharing/styled.js +346 -346
  215. package/es/components/organism/ActivityTimeline/ActivityTimeline.js +3 -3
  216. package/es/components/organism/ActivityTimeline/__mocks__/event_tracking.json +1290 -1290
  217. package/es/components/organism/ActivityTimeline/__mocks__/timeline.json +1896 -1896
  218. package/es/components/organism/ActivityTimeline/components/ActionHistory/styled.js +28 -28
  219. package/es/components/organism/ActivityTimeline/components/CardMember/styled.js +60 -60
  220. package/es/components/organism/ActivityTimeline/components/ItemGroupEvent/styled.js +4 -4
  221. package/es/components/organism/ActivityTimeline/components/List/styled.js +77 -77
  222. package/es/components/organism/ActivityTimeline/components/ListItem/styled.js +37 -37
  223. package/es/components/organism/ActivityTimeline/components/ProductCard/styled.js +92 -92
  224. package/es/components/organism/ActivityTimeline/components/Redeem/styled.js +7 -7
  225. package/es/components/organism/ActivityTimeline/components/Slide/styled.js +20 -20
  226. package/es/components/organism/ActivityTimeline/components/TimeLineTitle/styled.js +7 -7
  227. package/es/components/organism/ActivityTimeline/components/TimelineSection/styled.js +69 -69
  228. package/es/components/organism/ActivityTimeline/constants.d.ts +9 -9
  229. package/es/components/organism/ActivityTimeline/constants.js +3 -3
  230. package/es/components/organism/ActivityTimeline/index.d.ts +530 -1
  231. package/es/components/organism/ActivityTimeline/index.js +9 -1
  232. package/es/components/organism/ActivityTimeline/styled.js +43 -43
  233. package/es/components/organism/ActivityTimeline/utils.js +186 -15
  234. package/es/components/organism/AlgorithmsSetting/styled.js +35 -35
  235. package/es/components/organism/BasicLogin/components/ChooseMethod/styled.js +19 -19
  236. package/es/components/organism/BasicLogin/components/LoginWithEmail/styled.js +3 -3
  237. package/es/components/organism/BasicLogin/components/LoginWithGG/styled.js +3 -3
  238. package/es/components/organism/BasicLogin/components/SignIn/styled.js +8 -8
  239. package/es/components/organism/BasicLogin/components/WidgetLayout/styled.js +18 -18
  240. package/es/components/organism/BasicLogin/styled.js +107 -107
  241. package/es/components/organism/ContentSources/styled.js +50 -50
  242. package/es/components/organism/DataTable/components/AddButton/index.js +8 -8
  243. package/es/components/organism/DataTable/components/ModifyColumn/styled.js +18 -18
  244. package/es/components/organism/DataTable/components/Pagination/styled.js +26 -26
  245. package/es/components/organism/DataTable/components/Table/styled.js +135 -135
  246. package/es/components/organism/DataTable/components/Toolbar/SearchPopover.js +17 -17
  247. package/es/components/organism/DataTable/components/Toolbar/styled.js +70 -70
  248. package/es/components/organism/DataTable/styled/index.js +84 -84
  249. package/es/components/organism/Filter/components/FilterCondition/styled.js +34 -34
  250. package/es/components/organism/Filter/styled.js +109 -109
  251. package/es/components/organism/FilterSetting/components/common/InputArray/styled.js +5 -5
  252. package/es/components/organism/FilterSetting/components/common/InputOrSelect/index.js +63 -63
  253. package/es/components/organism/FilterSetting/components/common/InputSelectMulti/ColumnSuggestion/index.js +31 -31
  254. package/es/components/organism/FilterSetting/components/common/InputSelectMulti/Tree/index.js +22 -22
  255. package/es/components/organism/FilterSetting/components/common/InputSelectMulti/index.js +55 -55
  256. package/es/components/organism/FilterSetting/styled.js +19 -19
  257. package/es/components/organism/GenerativeInsights/styled.js +55 -55
  258. package/es/components/organism/Help/styled.js +267 -267
  259. package/es/components/organism/LeftMenu/LeftMenu.js +6 -6
  260. package/es/components/organism/LeftMenu/components/HomeMenu/styled.js +39 -39
  261. package/es/components/organism/LeftMenu/components/common/ChildMenu/components/MenuItemImage/styled.js +16 -16
  262. package/es/components/organism/LeftMenu/components/common/ChildMenu/styled.js +156 -156
  263. package/es/components/organism/LeftMenu/hooks/usePermission.js +1 -1
  264. package/es/components/organism/LeftMenu/styled.js +216 -214
  265. package/es/components/organism/LeftMenu/types/index.d.ts +7 -0
  266. package/es/components/organism/LeftMenu/utils/index.js +1 -1
  267. package/es/components/organism/Login/Login.js +19 -36
  268. package/es/components/organism/Login/components/ChooseMethod/styled.js +19 -19
  269. package/es/components/organism/Login/components/ForgotPassword/styled.js +8 -8
  270. package/es/components/organism/Login/components/LoginSelectPortal/Item/styled.js +31 -31
  271. package/es/components/organism/Login/components/LoginSelectPortal/styled.js +3 -3
  272. package/es/components/organism/Login/components/LoginWithEmail/styled.js +3 -3
  273. package/es/components/organism/Login/components/LoginWithGG/styled.js +3 -3
  274. package/es/components/organism/Login/components/SetupGGAuthenticator/styled.js +7 -7
  275. package/es/components/organism/Login/components/SignIn/SignIn.js +2 -2
  276. package/es/components/organism/Login/components/SignIn/styled.js +8 -8
  277. package/es/components/organism/Login/components/VerifyAccount/styled.js +13 -13
  278. package/es/components/organism/Login/components/WidgetLayout/styled.js +18 -18
  279. package/es/components/organism/Login/styled.js +115 -115
  280. package/es/components/organism/Login/types/index.d.ts +2 -0
  281. package/es/components/organism/Menu/styled.js +6 -6
  282. package/es/components/organism/ModifyColumnModal/styled.js +132 -132
  283. package/es/components/organism/Notification/styled.js +155 -155
  284. package/es/components/organism/PreviewCollections/Messages/SkeletonMessage/styled.js +14 -14
  285. package/es/components/organism/PreviewCollections/WhatsappMessage/CarouselMessage/styled.js +63 -63
  286. package/es/components/organism/PreviewCollections/constants.js +50 -50
  287. package/es/components/organism/PreviewCollections/styled.js +16 -16
  288. package/es/components/organism/PreviewTemplateModal/components/Banner/styled.js +78 -78
  289. package/es/components/organism/PreviewTemplateModal/components/Information/styled.js +52 -52
  290. package/es/components/organism/PreviewTemplateModal/components/SimilarTemplate/styled.js +18 -18
  291. package/es/components/organism/PreviewTemplateModal/components/ThumbnailSlider/styled.js +77 -77
  292. package/es/components/organism/PreviewTemplateModal/styled.js +21 -21
  293. package/es/components/organism/SQLGeneration/components/styled.js +354 -354
  294. package/es/components/organism/SQLGeneration/index.scss +1 -1
  295. package/es/components/organism/SQLGeneration/integrations/AceEditor/index.scss +4 -4
  296. package/es/components/organism/Table/CrossTabTable/components/CustomCell/styled.js +11 -11
  297. package/es/components/organism/Table/CrossTabTable/styled.js +11 -11
  298. package/es/components/organism/Table/ExplorePivotTable/components/CustomCell/styled.js +17 -17
  299. package/es/components/organism/Table/ExplorePivotTable/styled.js +11 -11
  300. package/es/components/organism/TextEditor/TextEditor.d.ts +9 -2
  301. package/es/components/organism/TextEditor/TextEditor.js +203 -42
  302. package/es/components/organism/TextEditor/__mocks__/text-contennt.js +44 -44
  303. package/es/components/organism/TextEditor/constants.d.ts +9 -0
  304. package/es/components/organism/TextEditor/constants.js +66 -0
  305. package/es/components/organism/TextEditor/extensions/BubbleMenu/bubble-menu-plugin.d.ts +6 -128
  306. package/es/components/organism/TextEditor/extensions/BubbleMenu/bubble-menu-plugin.js +7 -292
  307. package/es/components/organism/TextEditor/extensions/BubbleMenu/bubble-menu.d.ts +1 -1
  308. package/es/components/organism/TextEditor/extensions/BubbleMenu/bubble-menu.js +4 -0
  309. package/es/components/organism/TextEditor/extensions/Link.js +33 -14
  310. package/es/components/organism/TextEditor/extensions/ListItem.d.ts +10 -0
  311. package/es/components/organism/TextEditor/extensions/ListItem.js +93 -0
  312. package/es/components/organism/TextEditor/extensions/SmartTag.d.ts +5 -6
  313. package/es/components/organism/TextEditor/extensions/SmartTag.js +96 -4
  314. package/es/components/organism/TextEditor/hooks/useColorSet.js +7 -0
  315. package/es/components/organism/TextEditor/hooks/useMarkTracking.js +2 -1
  316. package/es/components/organism/TextEditor/index.d.ts +7 -5
  317. package/es/components/organism/TextEditor/index.scss +65 -68
  318. package/es/components/organism/TextEditor/provider.d.ts +1 -0
  319. package/es/components/organism/TextEditor/provider.js +6 -3
  320. package/es/components/organism/TextEditor/store.d.ts +11 -4
  321. package/es/components/organism/TextEditor/store.js +22 -2
  322. package/es/components/organism/TextEditor/stories/WithOldDynAndLink/froala-legacy-format.settings.json +95 -0
  323. package/es/components/organism/TextEditor/stories/WithOldDynAndLink/shared.d.ts +111 -0
  324. package/es/components/organism/TextEditor/stories/WithOldDynAndLink/shared.js +82 -0
  325. package/es/components/organism/TextEditor/stories/shared.d.ts +64 -0
  326. package/es/components/organism/TextEditor/stories/shared.js +57 -0
  327. package/es/components/organism/TextEditor/styled.d.ts +1 -1
  328. package/es/components/organism/TextEditor/styled.js +54 -53
  329. package/es/components/organism/TextEditor/types.d.ts +161 -11
  330. package/es/components/organism/TextEditor/types.js +1 -0
  331. package/es/components/organism/TextEditor/ui/BubbleMenu/BubbleMenu.d.ts +2 -1
  332. package/es/components/organism/TextEditor/ui/BubbleMenu/BubbleMenu.js +80 -51
  333. package/es/components/organism/TextEditor/ui/Button/Button.js +22 -22
  334. package/es/components/organism/TextEditor/ui/DropdownButton/DropdownButton.js +13 -13
  335. package/es/components/organism/TextEditor/ui/Emoji/EmojiList.js +1 -1
  336. package/es/components/organism/TextEditor/ui/Emoji/suggestion.d.ts +1 -1
  337. package/es/components/organism/TextEditor/ui/Emoji/suggestion.js +2 -2
  338. package/es/components/organism/TextEditor/ui/FontPopover/FontPopover.js +12 -2
  339. package/es/components/organism/TextEditor/ui/FontPopover/styled.js +32 -32
  340. package/es/components/organism/TextEditor/ui/LinkInsertForm/LinkInsertForm.d.ts +16 -0
  341. package/es/components/organism/TextEditor/ui/LinkInsertForm/LinkInsertForm.js +61 -0
  342. package/es/components/organism/TextEditor/ui/LinkInsertForm/index.d.ts +2 -0
  343. package/es/components/organism/TextEditor/ui/LinkInsertForm/index.js +1 -0
  344. package/es/components/organism/TextEditor/ui/LinkPopover/LinkPopover.d.ts +9 -0
  345. package/es/components/organism/TextEditor/ui/LinkPopover/LinkPopover.js +126 -0
  346. package/es/components/organism/TextEditor/ui/LinkPopover/index.d.ts +2 -0
  347. package/es/components/organism/TextEditor/ui/LinkPopover/index.js +1 -0
  348. package/es/components/organism/TextEditor/ui/Popover/Popover.js +1 -1
  349. package/es/components/organism/TextEditor/ui/SplitButtonDropdown/styled.js +54 -54
  350. package/es/components/organism/TextEditor/ui/TextAlignSelect/TextAlignSelect.js +10 -12
  351. package/es/components/organism/TextEditor/ui/Toolbar/{Toolbar.d.ts → FormattingToolbar.d.ts} +3 -4
  352. package/es/components/organism/TextEditor/ui/Toolbar/FormattingToolbar.js +90 -0
  353. package/es/components/organism/TextEditor/ui/Toolbar/LinkPreviewToolbar.d.ts +10 -0
  354. package/es/components/organism/TextEditor/ui/Toolbar/LinkPreviewToolbar.js +39 -0
  355. package/es/components/organism/TextEditor/ui/Toolbar/actions/EmojiAction.js +4 -3
  356. package/es/components/organism/TextEditor/ui/Toolbar/actions/FontFamilyAction.d.ts +1 -0
  357. package/es/components/organism/TextEditor/ui/Toolbar/actions/FontFamilyAction.js +2 -2
  358. package/es/components/organism/TextEditor/ui/Toolbar/actions/FontSizeAction.js +17 -12
  359. package/es/components/organism/TextEditor/ui/Toolbar/index.d.ts +2 -1
  360. package/es/components/organism/TextEditor/ui/Toolbar/index.js +2 -1
  361. package/es/components/organism/TextEditor/utils/documentState.d.ts +14 -0
  362. package/es/components/organism/TextEditor/utils/documentState.js +25 -0
  363. package/es/components/organism/TextEditor/utils/htmlProcessing.js +60 -0
  364. package/es/components/organism/TextEditor/utils/link.d.ts +10 -1
  365. package/es/components/organism/TextEditor/utils/link.js +161 -7
  366. package/es/components/organism/TextEditor/utils/menu.js +2 -1
  367. package/es/components/organism/TextEditor/utils/selection.js +3 -2
  368. package/es/components/organism/TextEditor/utils/smartTag.js +2 -1
  369. package/es/components/organism/TicketEditor/styled.js +860 -860
  370. package/es/components/organism/TicketEditorV2/styled.js +839 -839
  371. package/es/components/organism/index.d.ts +1 -1
  372. package/es/components/organism/index.scss +2 -2
  373. package/es/components/template/Layout/Layout.js +10 -10
  374. package/es/components/template/Layout/components/RecommendationWorkspace/components/MenuMapping/components/OldLeftMenu/styled.js +73 -73
  375. package/es/components/template/Layout/components/RecommendationWorkspace/components/MenuMapping/styled.js +39 -39
  376. package/es/components/template/Layout/components/RecommendationWorkspace/components/RecommendationImage/styled.js +61 -61
  377. package/es/components/template/Layout/components/RecommendationWorkspace/styled.js +16 -16
  378. package/es/components/template/Layout/styled.js +84 -84
  379. package/es/components/template/TemplateListing/Loadable.d.ts +1 -0
  380. package/es/components/template/TemplateListing/components/BlankTemplate/styled.js +21 -21
  381. package/es/components/template/TemplateListing/components/CategoryListing/styled.js +123 -123
  382. package/es/components/template/TemplateListing/components/Empty/styled.js +20 -20
  383. package/es/components/template/TemplateListing/stories/demo/styled.js +4 -4
  384. package/es/components/template/TemplateListing/styled/index.js +40 -40
  385. package/es/hooks/index.d.ts +1 -1
  386. package/es/hooks/index.js +1 -1
  387. package/es/providers/ConfigProvider/ConfigProvider.d.ts +4 -0
  388. package/es/providers/ConfigProvider/ConfigProvider.js +2 -3
  389. package/es/providers/ConfigProvider/GlobalStyle.d.ts +2 -2
  390. package/es/providers/ConfigProvider/GlobalStyle.js +1252 -1249
  391. package/es/services/MediaTemplateDesign/UploadFile/index.js +4 -4
  392. package/es/styled/common.js +51 -51
  393. package/es/tests/styled.js +4 -4
  394. package/es/utils/common.d.ts +1 -1
  395. package/es/utils/common.js +3 -3
  396. package/es/utils/cookie.js +2 -1
  397. package/es/utils/crossSubdomainCookieOptions.d.ts +14 -0
  398. package/es/utils/crossSubdomainCookieOptions.js +12 -0
  399. package/es/utils/variables.js +7 -7
  400. package/package.json +282 -286
  401. package/es/components/organism/TextEditor/ui/BubbleToolbar/BubbleToolbar.d.ts +0 -1
  402. package/es/components/organism/TextEditor/ui/BubbleToolbar/BubbleToolbar.js +0 -1
  403. package/es/components/organism/TextEditor/ui/BubbleToolbar/index.d.ts +0 -0
  404. package/es/components/organism/TextEditor/ui/BubbleToolbar/index.js +0 -1
  405. package/es/components/organism/TextEditor/ui/Toolbar/Toolbar.js +0 -39
@@ -1,66 +1,66 @@
1
1
  import { THEME } from '@antscorp/antsomi-ui/es/constants';
2
2
  import styled from 'styled-components';
3
- export const StyledPeopleAccessRoot = styled.div `
4
- display: flex;
5
- flex-direction: column;
6
-
7
- .title {
8
- margin-bottom: 10px;
9
- }
10
-
11
- .antsomi-list {
12
- border-radius: ${THEME.token?.borderRadius}px;
13
- border: 1px solid #e6e6e6;
14
-
15
- .antsomi-list-items {
16
- /* padding: 0; */
17
- padding: 15px;
18
-
19
- .antsomi-list-item {
20
- /* padding: 8px; */
21
- padding: 0;
22
- margin-bottom: 15px;
23
- border: none;
24
-
25
- &:last-child {
26
- margin-bottom: 0;
27
- }
28
-
29
- .info {
30
- flex: 1;
31
- margin-left: 15px;
32
-
33
- .name {
34
- font-weight: bold;
35
- }
36
-
37
- .email {
38
- color: ${THEME?.token?.bw8};
39
- }
40
- }
41
-
42
- /* .antsomi-avatar {
43
- align-self: flex-start;
44
- } */
45
-
46
- .role-actions {
47
- display: flex;
48
- align-items: center;
49
- gap: 4px;
50
-
51
- &:hover {
52
- cursor: pointer;
53
- }
54
- }
55
-
56
- /* .role-actions :not(i) {
57
- align-self: flex-start !important;
58
- } */
59
- }
60
- }
61
-
62
- .antsomi-spin-nested-loading:not(:has(ul)) {
63
- height: 125px;
64
- }
65
- }
3
+ export const StyledPeopleAccessRoot = styled.div `
4
+ display: flex;
5
+ flex-direction: column;
6
+
7
+ .title {
8
+ margin-bottom: 10px;
9
+ }
10
+
11
+ .antsomi-list {
12
+ border-radius: ${THEME.token?.borderRadius}px;
13
+ border: 1px solid #e6e6e6;
14
+
15
+ .antsomi-list-items {
16
+ /* padding: 0; */
17
+ padding: 15px;
18
+
19
+ .antsomi-list-item {
20
+ /* padding: 8px; */
21
+ padding: 0;
22
+ margin-bottom: 15px;
23
+ border: none;
24
+
25
+ &:last-child {
26
+ margin-bottom: 0;
27
+ }
28
+
29
+ .info {
30
+ flex: 1;
31
+ margin-left: 15px;
32
+
33
+ .name {
34
+ font-weight: bold;
35
+ }
36
+
37
+ .email {
38
+ color: ${THEME?.token?.bw8};
39
+ }
40
+ }
41
+
42
+ /* .antsomi-avatar {
43
+ align-self: flex-start;
44
+ } */
45
+
46
+ .role-actions {
47
+ display: flex;
48
+ align-items: center;
49
+ gap: 4px;
50
+
51
+ &:hover {
52
+ cursor: pointer;
53
+ }
54
+ }
55
+
56
+ /* .role-actions :not(i) {
57
+ align-self: flex-start !important;
58
+ } */
59
+ }
60
+ }
61
+
62
+ .antsomi-spin-nested-loading:not(:has(ul)) {
63
+ height: 125px;
64
+ }
65
+ }
66
66
  `;
@@ -1,34 +1,34 @@
1
1
  import styled from 'styled-components';
2
- export const StyledSearchUserRoot = styled.div `
3
- width: 100%;
4
-
5
- .antsomi-select {
6
- width: 100%;
7
-
8
- /* move to global css (for autocomplete) */
9
- /* .antsomi-select-selector {
10
- border: none !important;
11
- } */
12
- }
2
+ export const StyledSearchUserRoot = styled.div `
3
+ width: 100%;
4
+
5
+ .antsomi-select {
6
+ width: 100%;
7
+
8
+ /* move to global css (for autocomplete) */
9
+ /* .antsomi-select-selector {
10
+ border: none !important;
11
+ } */
12
+ }
13
13
  `;
14
- export const StyledSelectItem = styled.div `
15
- display: flex;
16
- justify-content: left;
17
- align-items: center;
18
- gap: 8px;
19
-
20
- .info {
21
- .name {
22
- font-weight: bold;
23
- }
24
-
25
- display: flex;
26
- flex-direction: column;
27
- gap: 2px;
28
- }
29
-
30
- :hover {
31
- background-color: #f2f9ff;
32
- cursor: pointer;
33
- }
14
+ export const StyledSelectItem = styled.div `
15
+ display: flex;
16
+ justify-content: left;
17
+ align-items: center;
18
+ gap: 8px;
19
+
20
+ .info {
21
+ .name {
22
+ font-weight: bold;
23
+ }
24
+
25
+ display: flex;
26
+ flex-direction: column;
27
+ gap: 2px;
28
+ }
29
+
30
+ :hover {
31
+ background-color: #f2f9ff;
32
+ cursor: pointer;
33
+ }
34
34
  `;
@@ -3,7 +3,8 @@ export declare const useShareAccess: () => {
3
3
  state: {
4
4
  allowEdit: boolean;
5
5
  allowView: boolean;
6
- accessInfo?: import("../types").ObjectAccessInfo | undefined;
6
+ accessInfo?: import("..").ObjectAccessInfo | undefined;
7
+ isLoading?: boolean | undefined;
7
8
  accessUserId?: number | undefined;
8
9
  accessUserPermission?: {
9
10
  view: number;
@@ -1,3 +1,4 @@
1
1
  export { ShareAccess } from './ShareAccess';
2
2
  export * as Constants from './constants';
3
3
  export * as Utils from './utils';
4
+ export type { ObjectAccessInfo, ObjectAccessInfoRaw, UserAccessInfo, UserAccessInfoRaw, ShareAccessProps, } from './types';
@@ -1,2 +1,2 @@
1
1
  import { ShareAccessAction, ShareAccessProps, ShareAccessState } from './types';
2
- export declare const shareAccessReducer: (onChange: ShareAccessProps['onChange']) => (state: ShareAccessState, action: ShareAccessAction) => ShareAccessState;
2
+ export declare const shareAccessReducer: (onChange: ShareAccessProps['onChange'], onRawChange: ShareAccessProps['onRawChange']) => (state: ShareAccessState, action: ShareAccessAction) => ShareAccessState;
@@ -1,13 +1,16 @@
1
1
  import produce from 'immer';
2
- import { mappingOutData } from './utils';
3
2
  import { TYPES } from './constants';
4
- export const shareAccessReducer = (onChange) => (state, action) => produce(state, draft => {
3
+ import { mappingOutData, toRaw } from './utils';
4
+ export const shareAccessReducer = (onChange, onRawChange) => (state, action) => produce(state, draft => {
5
5
  switch (action.type) {
6
6
  case TYPES.UPDATE_OBJECT_ACCESS_INFO: {
7
7
  const { updated, triggerOut = true } = action.payload;
8
+ // console.log({ action });
8
9
  draft.accessInfo = updated;
9
- if (onChange && triggerOut) {
10
- onChange(mappingOutData(action.payload.updated));
10
+ if (triggerOut) {
11
+ const mapped = mappingOutData(action.payload.updated);
12
+ onChange?.(mapped);
13
+ onRawChange?.(toRaw(mapped));
11
14
  }
12
15
  break;
13
16
  }
@@ -27,28 +27,50 @@ export type ObjectAccessInfo = {
27
27
  ownerId: number;
28
28
  listAccess: UserAccessInfo[];
29
29
  };
30
+ export type UserAccessInfoRaw = {
31
+ user_id: number;
32
+ role: number;
33
+ allow_view: number;
34
+ allow_edit: number;
35
+ allow_comment: number;
36
+ full_name?: string;
37
+ email?: string;
38
+ avatar?: string;
39
+ [key: string]: any;
40
+ };
41
+ export type ObjectAccessInfoRaw = {
42
+ is_public: number;
43
+ public_role: number | null;
44
+ owner_id?: number;
45
+ list_access: UserAccessInfoRaw[];
46
+ };
30
47
  export type ActionKey = (typeof PEOPLE_ACTION_KEYS)[keyof typeof PEOPLE_ACTION_KEYS];
31
48
  export type ExcludeUserAccess = Array<ActionKey>;
32
49
  export type GeneralAccessSettings = {
33
50
  publicOnlyWith?: boolean;
34
51
  };
35
52
  export type ShareAccessProps = {
53
+ className?: string;
36
54
  userId?: number;
37
55
  userPermission?: {
38
56
  edit: number;
39
57
  view: number;
40
58
  };
41
59
  accessInfo?: ObjectAccessInfo;
60
+ isLoading?: boolean;
42
61
  allowAddUser?: boolean;
43
62
  placeholder?: string;
44
63
  excludeUserAccess?: ExcludeUserAccess;
45
64
  getUserInfo?(search: string, signal: AbortSignal): Promise<UserInfo[]> | UserInfo[];
46
65
  generalAccessSettings?: GeneralAccessSettings;
47
66
  onChange?: (accessInfo: ObjectAccessInfo) => void;
67
+ rawAccessInfo?: ObjectAccessInfoRaw;
68
+ onRawChange?: (raw: ObjectAccessInfoRaw) => void;
48
69
  hideTransferOwnership?: boolean;
49
70
  };
50
71
  export type ShareAccessState = {
51
72
  accessInfo?: ObjectAccessInfo;
73
+ isLoading?: boolean;
52
74
  accessUserId?: number;
53
75
  accessUserPermission?: {
54
76
  view: number;
@@ -1,4 +1,4 @@
1
- import { ActionKey, ObjectAccessInfo, UserAccessInfo, UserInfo } from './types';
1
+ import { ActionKey, ObjectAccessInfo, ObjectAccessInfoRaw, UserAccessInfo, UserInfo } from './types';
2
2
  export declare const mergePermission: (objectPermissionAllow: boolean, menuPermissionValue: number) => boolean;
3
3
  export declare const composeObjectMenuPermissions: (params: {
4
4
  isPublic: boolean;
@@ -54,6 +54,8 @@ export declare const safeParseAccessInfo: (accessInfo: ObjectAccessInfo) => {
54
54
  isPublic: number;
55
55
  publicRole: number | null;
56
56
  };
57
+ export declare const fromRaw: (raw: ObjectAccessInfoRaw) => ObjectAccessInfo;
58
+ export declare const toRaw: (info: ObjectAccessInfo) => ObjectAccessInfoRaw;
57
59
  export declare const mappingOutData: (shareAccess: ObjectAccessInfo) => {
58
60
  isPublic: number;
59
61
  publicRole: number | null;
@@ -1,5 +1,5 @@
1
1
  import { MENU_PERMISSION, PEOPLE_ACTIONS, PEOPLE_ACTION_KEYS, PUBLIC_ROLE, REGEX_REMOVE_NAME, ROLE_ACCESS_LABEL, ROLE_MAPPING, } from './constants';
2
- import { remove } from 'lodash';
2
+ import { remove, mapKeys, camelCase, snakeCase } from 'lodash';
3
3
  import { snakeCaseToCamelCase } from '@antscorp/antsomi-ui/es/utils';
4
4
  export const mergePermission = (objectPermissionAllow, menuPermissionValue) => {
5
5
  const valueMapping = {
@@ -87,9 +87,42 @@ export const safeParseAccessInfo = (accessInfo) => {
87
87
  return {
88
88
  ...accessInfo,
89
89
  ownerId: +(ownerId || -1),
90
- listAccess: accessInfo?.listAccess?.map(user => ({ ...user, userId: +user.userId })),
90
+ listAccess: accessInfo?.listAccess?.map(user => ({
91
+ ...user,
92
+ userId: +user.userId,
93
+ role: +user.role,
94
+ allowView: +user.allowView,
95
+ allowEdit: +user.allowEdit,
96
+ allowComment: +user.allowComment,
97
+ })),
91
98
  };
92
99
  };
100
+ export const fromRaw = (raw) => ({
101
+ isPublic: raw.is_public,
102
+ publicRole: raw.public_role,
103
+ ownerId: raw.owner_id ?? -1,
104
+ listAccess: raw.list_access.map(u => ({
105
+ ...mapKeys(u, (_v, key) => camelCase(key)),
106
+ userId: u.user_id,
107
+ role: u.role,
108
+ allowView: u.allow_view,
109
+ allowEdit: u.allow_edit,
110
+ allowComment: u.allow_comment,
111
+ })),
112
+ });
113
+ export const toRaw = (info) => ({
114
+ is_public: info.isPublic,
115
+ public_role: info.publicRole,
116
+ owner_id: info.ownerId,
117
+ list_access: info.listAccess.map(u => ({
118
+ ...mapKeys(u, (_v, key) => snakeCase(key)),
119
+ user_id: u.userId,
120
+ role: u.role,
121
+ allow_view: u.allowView,
122
+ allow_edit: u.allowEdit,
123
+ allow_comment: u.allowComment,
124
+ })),
125
+ });
93
126
  export const mappingOutData = (shareAccess) => {
94
127
  const result = { ...shareAccess };
95
128
  result.listAccess = result.listAccess.map(accessInfo => {
@@ -2,6 +2,6 @@
2
2
  import styled from 'styled-components';
3
3
  // Constants
4
4
  import { THEME } from '@antscorp/antsomi-ui/es/constants';
5
- export const SliderWithInputNumberWrapper = styled.div `
6
- font-size: ${THEME.token?.fontSize}px;
5
+ export const SliderWithInputNumberWrapper = styled.div `
6
+ font-size: ${THEME.token?.fontSize}px;
7
7
  `;
@@ -1,14 +1,14 @@
1
1
  import { Tabs as AntdTabs } from 'antd';
2
2
  import styled from 'styled-components';
3
- export const Tabs = styled(AntdTabs) `
4
- position: relative;
5
- z-index: 1;
6
-
7
- > .antsomi-tabs-nav {
8
- ${({ shadow }) => (shadow ? 'box-shadow: 0px 3px 3px 0px #002E591A;' : '')}
9
- }
10
-
11
- .antsomi-tabs-tab-btn {
12
- text-shadow: none !important;
13
- }
3
+ export const Tabs = styled(AntdTabs) `
4
+ position: relative;
5
+ z-index: 1;
6
+
7
+ > .antsomi-tabs-nav {
8
+ ${({ shadow }) => (shadow ? 'box-shadow: 0px 3px 3px 0px #002E591A;' : '')}
9
+ }
10
+
11
+ .antsomi-tabs-tab-btn {
12
+ text-shadow: none !important;
13
+ }
14
14
  `;
@@ -17,7 +17,7 @@ import '@yaireo/tagify/dist/tagify.css';
17
17
  // Styled
18
18
  import { TagTextArea, TagifyWrapper, WrapperPlaceHolder } from './styled';
19
19
  // Utils
20
- import { parseTagStringToTagify, convertInputStringToOriginal, emojiManufacturer, getEmojiTag, isPersonalizeTagType, generateTagContent, unescapeString, hasLineBreak, selectRange, isTagClickable, findURLInTextNodes, getAttributesString, isAnchorNodeChildOfElement, isShortLinkTagType, isCustomTagType, sanitizeTagAttributes, getTagAttributes, applyTagAttributes, getTagContentAttributes, isCaretAtEndOfTextNodeWithNextTag, getCurrentSelectionAndCloneRange, handleEnterWithNextTag, handleTextNodeBackspace, } from './utils';
20
+ import { parseTagStringToTagify, convertInputStringToOriginal, emojiManufacturer, getEmojiTag, isPersonalizeTagType, generateTagContent, unescapeString, hasLineBreak, selectRange, isTagClickable, findURLInTextNodes, getAttributesString, isAnchorNodeChildOfElement, isShortLinkTagType, isCustomTagType, sanitizeTagAttributes, getTagAttributes, applyTagAttributes, getTagContentAttributes, isCaretAtEndOfTextNodeWithNextTag, getCurrentSelectionAndCloneRange, handleEnterWithNextTag, handleTextNodeBackspace, extractTagValues, preventUndoRedo, } from './utils';
21
21
  import { acceptablePatternChecking, detectURLRegex, getCachedRegex, getCustomTagId, getPersonalizeTagInfo, getShortLinkTagInfo, patternHandlers, } from './patternHandlers';
22
22
  // Constants
23
23
  import { DETECT_LINK, EMOJI, PERSONALIZE_PTN, SHORT_LINK, SHORT_LINK_PTN, SHORT_LINK_V2, TAG_TYPE, UNSUBSCRIBE_WHATSAPP, defaultCssVariables, tagifyDefaultProps, TAG_CUSTOM_ATTRIBUTES, } from './constants';
@@ -25,7 +25,7 @@ const { CUSTOM_TAG } = TAG_TYPE;
25
25
  const { PREPARING_ST, INVALID_TAG, MESSAGE_TAG, FORCE_SHOW_TOOLTIP } = TAG_CUSTOM_ATTRIBUTES;
26
26
  const TagifyInput = forwardRef((props, ref) => {
27
27
  // Props
28
- const { initialValue, escapeHTML, status, readonly, readonlyTag, readonlyText, readonlyWhenNotEmpty, realtime, disabled, maxLength, maxHeight, minWidth, placeholder, minWidthPlaceholder, isSingleLineText, acceptableTagPattern, tagProperties, mapAttributes = {}, mapErrorAttributes = {}, maxPersonalizeTags, name, children, cssTagifyVariables, onTagClick, onTagRemove, onChange, onRestoreTagProperty, onBlur, } = props;
28
+ const { initialValue, escapeHTML, status, readonly, readonlyTag, readonlyText, realtime, disabled, maxLength, maxHeight, minWidth, placeholder, minWidthPlaceholder, isSingleLineText, acceptableTagPattern, tagProperties, mapAttributes = {}, mapErrorAttributes = {}, maxPersonalizeTags, name, children, cssTagifyVariables, disableEditableIfContainsTags, onTagClick, onAddTag, onTagRemove, onChange, onRestoreTagProperty, onBlur, } = props;
29
29
  // States
30
30
  const [isLineBreak, setIsLineBreak] = useState(hasLineBreak(initialValue));
31
31
  const [tooltipRefresher, setTooltipRefresher] = useState(1);
@@ -456,6 +456,7 @@ const TagifyInput = forwardRef((props, ref) => {
456
456
  }
457
457
  setLabelTagRefreshness(prev => prev + 1);
458
458
  },
459
+ getInputValues: () => extractTagValues(tagifyRef.current),
459
460
  }), [acceptableTagPattern, escapeHTML, onInjectTagAtCaret, placeCaretAfterNode]);
460
461
  const onTagItemClick = useCallback((event) => {
461
462
  event.stopPropagation();
@@ -471,7 +472,7 @@ const TagifyInput = forwardRef((props, ref) => {
471
472
  }, [onTagClick]);
472
473
  const onTagifyRemoveTag = useCallback((event) => {
473
474
  if (event.detail && onTagRemove) {
474
- onTagRemove(event.detail);
475
+ onTagRemove(event.detail, extractTagValues(event.detail.tagify));
475
476
  }
476
477
  }, [onTagRemove]);
477
478
  // Used to trigger replace URL detection and line break
@@ -562,21 +563,21 @@ const TagifyInput = forwardRef((props, ref) => {
562
563
  }
563
564
  }
564
565
  const additionalTagAttrs = getAttributesString(additionalAttributes);
565
- return `
566
- <tag
567
- contenteditable='false'
568
- spellcheck='false'
569
- tabIndex="${settings.a11y.focusableTags ? 0 : -1}"
570
- class="${settings.classNames.tag} ${tagData.class ? tagData.class : ''}"
571
- ${tagify.getAttributes(tagData)}
572
- ${additionalTagAttrs}
573
- >
574
- ${closeIcon}
575
-
566
+ return `
567
+ <tag
568
+ contenteditable='false'
569
+ spellcheck='false'
570
+ tabIndex="${settings.a11y.focusableTags ? 0 : -1}"
571
+ class="${settings.classNames.tag} ${tagData.class ? tagData.class : ''}"
572
+ ${tagify.getAttributes(tagData)}
573
+ ${additionalTagAttrs}
574
+ >
575
+ ${closeIcon}
576
+
576
577
  ${generateTagContent({
577
578
  tagData,
578
579
  content: visibleTagContent,
579
- })}
580
+ })}
580
581
  </tag>`;
581
582
  }, []);
582
583
  /*
@@ -767,27 +768,6 @@ const TagifyInput = forwardRef((props, ref) => {
767
768
  });
768
769
  }
769
770
  }, [maxLength, customizeTag]);
770
- useEffect(() => {
771
- if (!tagifyRef.current)
772
- return;
773
- // Skip if neither readonlyText nor readonlyWhenNotEmpty is defined
774
- if (typeof readonlyText === 'undefined' && !readonlyWhenNotEmpty)
775
- return;
776
- const inputEl = tagifyRef.current.DOM.input;
777
- // readonlyWhenNotEmpty takes priority if both are set
778
- if (readonlyWhenNotEmpty) {
779
- const cleanValue = tagifyRef.current.getInputValue();
780
- const hasContent = cleanValue.length > 0;
781
- inputEl.setAttribute('contenteditable', hasContent ? 'false' : 'true');
782
- }
783
- else if (typeof readonlyText === 'function') {
784
- const isReadonlyText = readonlyText(tagifyRef.current.getCleanValue());
785
- inputEl.setAttribute('contenteditable', isReadonlyText ? 'false' : 'true');
786
- }
787
- else if (typeof readonlyText !== 'undefined') {
788
- inputEl.setAttribute('contenteditable', readonlyText ? 'false' : 'true');
789
- }
790
- }, [readonlyText, readonlyWhenNotEmpty, tagLength]);
791
771
  const onTagifyWrapperClick = useCallback(event => {
792
772
  event.preventDefault();
793
773
  event.stopPropagation();
@@ -799,6 +779,22 @@ const TagifyInput = forwardRef((props, ref) => {
799
779
  return;
800
780
  const { classList } = DOM?.scope;
801
781
  const { classNames } = settings;
782
+ if (disableEditableIfContainsTags) {
783
+ // Empty input is always editable
784
+ const isEmpty = classList.contains(classNames.empty);
785
+ let shouldBeEditable = isEmpty;
786
+ // If not empty, check if input contains restricted tags
787
+ if (!isEmpty) {
788
+ const { listTags } = extractTagValues(tagifyRef.current);
789
+ const hasRestrictedTag = listTags.some(tag => disableEditableIfContainsTags.includes(tag.type));
790
+ shouldBeEditable = !hasRestrictedTag;
791
+ }
792
+ // Apply contenteditable attribute
793
+ DOM.input.setAttribute('contenteditable', shouldBeEditable ? 'true' : 'false');
794
+ // Exit early if input should not be editable
795
+ if (!shouldBeEditable)
796
+ return;
797
+ }
802
798
  if (!classList.contains(classNames.focus) && DOM?.input) {
803
799
  try {
804
800
  const { lastChild } = DOM?.input;
@@ -834,6 +830,12 @@ const TagifyInput = forwardRef((props, ref) => {
834
830
  }
835
831
  }
836
832
  }
833
+ }, [disableEditableIfContainsTags]);
834
+ const onContentEditable = useCallback((editable) => {
835
+ if (!tagifyRef.current)
836
+ return;
837
+ const inputEl = tagifyRef.current.DOM.input;
838
+ inputEl.setAttribute('contenteditable', editable ? 'true' : 'false');
837
839
  }, []);
838
840
  // Initialization tagify
839
841
  useLayoutEffect(() => {
@@ -845,7 +847,12 @@ const TagifyInput = forwardRef((props, ref) => {
845
847
  };
846
848
  }, [initializeTagify]);
847
849
  useEffect(() => {
848
- if (tagifyRef.current && tagLength && _.isFunction(onTagRemove)) {
850
+ if (typeof readonlyText !== 'boolean')
851
+ return;
852
+ onContentEditable(!readonlyText);
853
+ }, [readonlyText, onContentEditable]);
854
+ useEffect(() => {
855
+ if (tagifyRef.current && typeof tagLength === 'number' && _.isFunction(onTagRemove)) {
849
856
  // Because the remove tag event is not triggered when the tag is removed with Backspace or drag selection tags
850
857
  // we need to listen to the input element to detect when a tag is removed
851
858
  let mutationQueue = [];
@@ -874,8 +881,11 @@ const TagifyInput = forwardRef((props, ref) => {
874
881
  try {
875
882
  node.dataset.__removed_by_mutation = 'true';
876
883
  const tagData = tagifyRef.current?.getSetTagData(node);
877
- if (tagData && tagData.type === CUSTOM_TAG && !tagData?.__removed) {
878
- onTagRemove({ data: tagData });
884
+ if (tagifyRef.current &&
885
+ tagData &&
886
+ tagData.type === CUSTOM_TAG &&
887
+ !tagData?.__removed) {
888
+ onTagRemove({ data: tagData }, extractTagValues(tagifyRef.current));
879
889
  }
880
890
  }
881
891
  catch (error) {
@@ -987,8 +997,13 @@ const TagifyInput = forwardRef((props, ref) => {
987
997
  tagifyInstance.on('change', onTagifyChangedDebounce);
988
998
  tagifyInstance.on('remove', onTagifyRemoveTag);
989
999
  tagifyInstance.on('keydown', onKeyDown);
1000
+ if (onAddTag)
1001
+ tagifyInstance.on('add', onAddTag);
990
1002
  if (onBlur)
991
1003
  tagifyInstance.on('blur', onBlur);
1004
+ if (tagifyInstance.DOM.input) {
1005
+ tagifyInstance.DOM.input.addEventListener('keydown', preventUndoRedo);
1006
+ }
992
1007
  }
993
1008
  // Off listen to Tagify events
994
1009
  return () => {
@@ -998,11 +1013,17 @@ const TagifyInput = forwardRef((props, ref) => {
998
1013
  tagifyInstance.off('change', onTagifyChangedDebounce);
999
1014
  tagifyInstance.off('remove', onTagifyRemoveTag);
1000
1015
  tagifyInstance.off('keydown', onKeyDown);
1016
+ if (onAddTag)
1017
+ tagifyInstance.off('add', onAddTag);
1001
1018
  if (onBlur)
1002
1019
  tagifyInstance.off('blur', onBlur);
1020
+ if (tagifyInstance.DOM.input) {
1021
+ tagifyInstance.DOM.input.removeEventListener('keydown', preventUndoRedo);
1022
+ }
1003
1023
  }
1004
1024
  };
1005
1025
  }, [
1026
+ onAddTag,
1006
1027
  onBlur,
1007
1028
  onTagItemClick,
1008
1029
  onInputTagifyDebounce,
@@ -1065,44 +1086,44 @@ const TagifyInput = forwardRef((props, ref) => {
1065
1086
  if (!tagifyTooltip) {
1066
1087
  const style = document.createElement('style');
1067
1088
  style.type = 'text/css';
1068
- style.appendChild(document.createTextNode(`
1069
- .tagify__tooltip {
1070
- display: none;
1071
- position: fixed;
1072
- background-color: #595959;
1073
- border-radius: 10px;
1074
- color: #ffffff;
1075
- padding: 6px;
1076
- z-index: 10000;
1077
- max-width: 280px;
1078
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
1079
- }
1080
-
1081
- .tagify__tooltip_content {
1082
- width: 100%;
1083
- max-width: 250px;
1084
- height: auto;
1085
- position: relative;
1086
- transition: 0s;
1087
- font-size: 12px;
1088
- line-height: 16px;
1089
- text-align: center;
1090
- word-wrap: break-word;
1091
- white-space: normal;
1092
- }
1093
-
1094
- .tagify__tooltip_content:before {
1095
- content: '';
1096
- position: absolute;
1097
- top: 100%;
1098
- right: 50%;
1099
- left: auto;
1100
- background-color: #595959;
1101
- width: 10px;
1102
- height: 10px;
1103
- transform: rotate(45deg) translate(50%,-50%);
1104
- border-radius: 1px;
1105
- }
1089
+ style.appendChild(document.createTextNode(`
1090
+ .tagify__tooltip {
1091
+ display: none;
1092
+ position: fixed;
1093
+ background-color: #595959;
1094
+ border-radius: 10px;
1095
+ color: #ffffff;
1096
+ padding: 6px;
1097
+ z-index: 10000;
1098
+ max-width: 280px;
1099
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
1100
+ }
1101
+
1102
+ .tagify__tooltip_content {
1103
+ width: 100%;
1104
+ max-width: 250px;
1105
+ height: auto;
1106
+ position: relative;
1107
+ transition: 0s;
1108
+ font-size: 12px;
1109
+ line-height: 16px;
1110
+ text-align: center;
1111
+ word-wrap: break-word;
1112
+ white-space: normal;
1113
+ }
1114
+
1115
+ .tagify__tooltip_content:before {
1116
+ content: '';
1117
+ position: absolute;
1118
+ top: 100%;
1119
+ right: 50%;
1120
+ left: auto;
1121
+ background-color: #595959;
1122
+ width: 10px;
1123
+ height: 10px;
1124
+ transform: rotate(45deg) translate(50%,-50%);
1125
+ border-radius: 1px;
1126
+ }
1106
1127
  `));
1107
1128
  document.head.appendChild(style);
1108
1129
  const tooltipWrapper = document.createElement('div');