@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.
- package/README.md +78 -78
- package/es/__mocks__/1000_city.json +802 -802
- package/es/__mocks__/sql-query.json +56 -56
- package/es/assets/css/main.scss +8 -8
- package/es/assets/images/feedback.svg +3 -3
- package/es/assets/svg/mobile-frame.svg +3 -3
- package/es/assets/svg/warning-icon.svg +5 -5
- package/es/components/atoms/Alert/Alert.js +28 -28
- package/es/components/atoms/ContentEditable/styled.js +16 -16
- package/es/components/atoms/DividerPure/styled.js +35 -35
- package/es/components/atoms/Eyedropper/styled.js +39 -39
- package/es/components/atoms/Icon/index.js +19 -19
- package/es/components/atoms/Iframe/Iframe.js +18 -18
- package/es/components/atoms/Input/Input.js +3 -1
- package/es/components/atoms/Input/styled.js +104 -104
- package/es/components/atoms/InputDynamic/InputDynamic.js +3 -3
- package/es/components/atoms/InputDynamic/styled.js +284 -284
- package/es/components/atoms/MobileBrandingBar/styled.js +21 -21
- package/es/components/atoms/MobileFrame/styled.js +30 -30
- package/es/components/atoms/MobileFrameV2/styled.js +42 -42
- package/es/components/atoms/MobileFrameV3/styled.js +31 -31
- package/es/components/atoms/NotificationStatus/styled.js +10 -10
- package/es/components/atoms/PreviewTabs/styled.js +69 -69
- package/es/components/atoms/Radio/index.js +16 -16
- package/es/components/atoms/ReactIframe/ReactIframe.js +5 -5
- package/es/components/atoms/ReactIframe/styled.js +9 -9
- package/es/components/atoms/RequiredLabel/styled.js +3 -3
- package/es/components/atoms/ScrollBox/index.js +5 -5
- package/es/components/atoms/Scrollbars/styled.js +21 -21
- package/es/components/atoms/SelectAssociatedTag/styled.js +51 -51
- package/es/components/atoms/SlideBar/styled.js +194 -194
- package/es/components/atoms/Slider/styled.js +31 -31
- package/es/components/atoms/Space/Space.js +4 -4
- package/es/components/atoms/Spin/styled.js +11 -11
- package/es/components/atoms/Steps/styled.js +244 -244
- package/es/components/atoms/Switch/styled.js +56 -56
- package/es/components/atoms/Tag/Tag.js +10 -10
- package/es/components/atoms/Text/styled.js +34 -34
- package/es/components/icons/DomainManagementIcon.js +1 -1
- package/es/components/icons/LazyIcon/LazyIcon.d.ts +2 -0
- package/es/components/icons/LazyIcon/LazyIcon.js +2 -0
- package/es/components/icons/LoadingIcon.js +33 -33
- package/es/components/icons/QRCodeManagementIcon.d.ts +3 -0
- package/es/components/icons/QRCodeManagementIcon.js +7 -0
- package/es/components/icons/QRSetDashboardIcon.d.ts +3 -0
- package/es/components/icons/QRSetDashboardIcon.js +7 -0
- package/es/components/icons/document/styled.js +43 -43
- package/es/components/icons/index.d.ts +2 -0
- package/es/components/icons/index.js +2 -0
- package/es/components/index.scss +2 -2
- package/es/components/molecules/AccessDenied/styled.js +28 -28
- package/es/components/molecules/AccountSelection/styled.js +110 -110
- package/es/components/molecules/AddDynamicContent/AddDynamicContent.js +28 -2
- package/es/components/molecules/AddDynamicContent/components/DisplayFormat/DisplayFormat.d.ts +1 -0
- package/es/components/molecules/AddDynamicContent/constants.d.ts +2 -0
- package/es/components/molecules/AddDynamicContent/constants.js +2 -0
- package/es/components/molecules/AddDynamicContent/styled.js +23 -23
- package/es/components/molecules/AlignSetting/styled.js +4 -4
- package/es/components/molecules/ApplyPopupContent/styled.js +32 -32
- package/es/components/molecules/CalendarSelection/components/AutoUpdateTo/styled.js +8 -8
- package/es/components/molecules/CalendarSelection/components/CustomPicker/styled.js +79 -79
- package/es/components/molecules/CalendarSelection/components/Footer/styled.js +4 -4
- package/es/components/molecules/CalendarSelection/components/RangePicker/styled.js +21 -21
- package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/components/Option/Option.js +26 -26
- package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/styled.js +30 -30
- package/es/components/molecules/CalendarSelection/components/TimeRangeDisplay/styled.js +26 -26
- package/es/components/molecules/CalendarSelection/styled.js +8 -8
- package/es/components/molecules/CaptureScreen/components/CommentBox/styled.js +119 -119
- package/es/components/molecules/CaptureScreen/components/Cursor/styled.js +67 -67
- package/es/components/molecules/CaptureScreen/styled.js +240 -240
- package/es/components/molecules/ChartTab/components/styled.js +24 -24
- package/es/components/molecules/ChartTab/styled.js +20 -20
- package/es/components/molecules/ChatBox/AntsomiAI.js +8 -8
- package/es/components/molecules/ChatBox/ChatBoxInsight/QuestionItem.js +9 -9
- package/es/components/molecules/ChatBox/ChatBoxInsight/styled.js +365 -365
- package/es/components/molecules/ChatBox/styled.js +324 -324
- package/es/components/molecules/CodeStructure/styled.js +5 -5
- package/es/components/molecules/ColorPicker/ChromePicker/styled.js +10 -10
- package/es/components/molecules/ColorPicker/CustomPicker/styled.js +89 -89
- package/es/components/molecules/ColorPicker/SketchPicker/styled.js +5 -5
- package/es/components/molecules/ColorPicker/index.d.ts +2 -0
- package/es/components/molecules/ColorPicker/index.js +8 -3
- package/es/components/molecules/ColorPicker/styled.js +7 -7
- package/es/components/molecules/ColorSetting/styled.js +39 -39
- package/es/components/molecules/DatePicker/components/AdvancedPicker/styled.js +110 -110
- package/es/components/molecules/DatePickerV2/styled.js +6 -6
- package/es/components/molecules/DisplayFormat/styled.js +12 -12
- package/es/components/molecules/DrawerDetail/components/ToggleDrawerSizeButton.js +24 -24
- package/es/components/molecules/DrawerDetail/styled.js +109 -109
- package/es/components/molecules/Dropdown/style.scss +11 -11
- package/es/components/molecules/Dropdown/styled.js +28 -28
- package/es/components/molecules/EdgeSetting/styled.js +10 -10
- package/es/components/molecules/EditableName/styled.js +70 -70
- package/es/components/molecules/EditingList/styled.js +29 -29
- package/es/components/molecules/EditingListV2/components/List/List.js +9 -9
- package/es/components/molecules/EditorTab/styled.js +156 -156
- package/es/components/molecules/EmojiCollections/styled.js +22 -22
- package/es/components/molecules/EmojiPopover/EmojiPopover.d.ts +1 -0
- package/es/components/molecules/EmojiPopover/EmojiPopover.js +2 -2
- package/es/components/molecules/EmojiPopover/styled.d.ts +2 -2
- package/es/components/molecules/EmojiPopover/styled.js +5 -5
- package/es/components/molecules/EmptyData/styled.js +53 -53
- package/es/components/molecules/EyedropperButton/styled.js +19 -19
- package/es/components/molecules/FontSizeInput/index.scss +15 -15
- package/es/components/molecules/FontSizeInput/styled.js +31 -31
- package/es/components/molecules/GradientSetting/styled.js +57 -57
- package/es/components/molecules/HeaderV2/HeaderV2.d.ts +1 -1
- package/es/components/molecules/HeaderV2/styled.js +70 -70
- package/es/components/molecules/IconSelection/styled.js +69 -69
- package/es/components/molecules/ImageEditor/components/ModalShortcut.js +21 -21
- package/es/components/molecules/ImageEditor/styled.js +5 -5
- package/es/components/molecules/ImagePreview/styled.js +3 -3
- package/es/components/molecules/InputNumberWithUnit/styled.js +14 -14
- package/es/components/molecules/InputSearch/styled.js +41 -41
- package/es/components/molecules/InputSelectAttribute/styled.js +22 -22
- package/es/components/molecules/ItemNotFound/styled.js +26 -26
- package/es/components/molecules/MatchAnySelect/components/ExtendValuePopup.js +8 -8
- package/es/components/molecules/MatchAnySelect/styled.js +247 -247
- package/es/components/molecules/Modal/Modal.js +7 -1
- package/es/components/molecules/Modal/styled.js +63 -63
- package/es/components/molecules/ModalSelect/styled.js +152 -152
- package/es/components/molecules/ModalV2/styled.js +27 -27
- package/es/components/molecules/PopupDraggable/styled.js +57 -57
- package/es/components/molecules/PreviewModal/styled.js +26 -26
- package/es/components/molecules/ProcessLoading/styled.js +2 -2
- package/es/components/molecules/QuillEditor/CustomToolbar.js +3165 -3165
- package/es/components/molecules/QuillEditor/EditorToolbar.js +7 -7
- package/es/components/molecules/QuillEditor/styled.js +25 -25
- package/es/components/molecules/RadioGroup/styled.js +9 -9
- package/es/components/molecules/RequestAccess/styled.js +38 -38
- package/es/components/molecules/ResizeGrid/components/Cell/styled.js +77 -77
- package/es/components/molecules/ResizeGrid/styled.js +50 -50
- package/es/components/molecules/RichMenu/RichMenuBlock/RichMenuCell/styled.js +118 -118
- package/es/components/molecules/RichMenu/RichMenuBlock/styled.js +13 -13
- package/es/components/molecules/RichMenu/RichMenuChatBar/TypingChat/styled.js +40 -40
- package/es/components/molecules/RichMenu/RichMenuChatBar/styled.js +27 -27
- package/es/components/molecules/RichMenu/RichMenuMobileView/RichMenuMobileView.js +2 -2
- package/es/components/molecules/RichMenu/RichMenuMobileView/styled.js +38 -38
- package/es/components/molecules/SearchPopover/SearchPopover.js +2 -2
- package/es/components/molecules/SearchPopover/components/PopoverSelect/styled.js +36 -36
- package/es/components/molecules/SearchPopover/components/PopoverSelect/styles.scss +7 -7
- package/es/components/molecules/SearchPopover/styled.d.ts +12 -1
- package/es/components/molecules/SearchPopover/styled.js +32 -33
- package/es/components/molecules/SearchPopover/types.d.ts +4 -3
- package/es/components/molecules/Select/Select.js +3 -3
- package/es/components/molecules/Select/styled.d.ts +3 -1
- package/es/components/molecules/Select/styled.js +76 -32
- package/es/components/molecules/SelectAccount/styled.js +147 -147
- package/es/components/molecules/SelectEventAttribute/styled.js +8 -8
- package/es/components/molecules/SelectMulti/styled.js +62 -62
- package/es/components/molecules/SelectV2/styled.js +124 -124
- package/es/components/molecules/SettingWrapper/styled.js +12 -12
- package/es/components/molecules/ShareAccess/ShareAccess.d.ts +2 -1
- package/es/components/molecules/ShareAccess/ShareAccess.js +12 -9
- package/es/components/molecules/ShareAccess/components/GeneralAccess/styled.js +56 -56
- package/es/components/molecules/ShareAccess/components/LayoutContent/LayoutContent.js +5 -5
- package/es/components/molecules/ShareAccess/components/LayoutContent/styled.js +5 -5
- package/es/components/molecules/ShareAccess/components/ModalTransferOwnerShip/styled.js +15 -15
- package/es/components/molecules/ShareAccess/components/PeopleAccess/PeopleAccess.js +2 -2
- package/es/components/molecules/ShareAccess/components/PeopleAccess/styled.js +63 -63
- package/es/components/molecules/ShareAccess/components/SearchUser/styled.js +31 -31
- package/es/components/molecules/ShareAccess/hooks/useShareAccess.d.ts +2 -1
- package/es/components/molecules/ShareAccess/index.d.ts +1 -0
- package/es/components/molecules/ShareAccess/reducer.d.ts +1 -1
- package/es/components/molecules/ShareAccess/reducer.js +7 -4
- package/es/components/molecules/ShareAccess/types.d.ts +22 -0
- package/es/components/molecules/ShareAccess/utils.d.ts +3 -1
- package/es/components/molecules/ShareAccess/utils.js +35 -2
- package/es/components/molecules/SliderWithInputNumber/styled.js +2 -2
- package/es/components/molecules/Tabs/Tabs.js +11 -11
- package/es/components/molecules/TagifyInput/TagifyInput.js +98 -77
- package/es/components/molecules/TagifyInput/styled.js +37 -37
- package/es/components/molecules/TagifyInput/types.d.ts +14 -8
- package/es/components/molecules/TagifyInput/utils.d.ts +6 -1
- package/es/components/molecules/TagifyInput/utils.js +32 -13
- package/es/components/molecules/TagifyInput/utils.style.js +208 -208
- package/es/components/molecules/TemplateSaveAs/components/Category/Category.js +5 -5
- package/es/components/molecules/TemplateSaveAs/components/ImageSlider/styled.js +276 -276
- package/es/components/molecules/TemplateSaveAs/styled.js +134 -134
- package/es/components/molecules/ThumbnailCard/styled.js +92 -92
- package/es/components/molecules/Tree/styled.js +38 -38
- package/es/components/molecules/UnsubscribePreferences/styled.js +7 -7
- package/es/components/molecules/UnsubscribePreview/components/styled.js +53 -53
- package/es/components/molecules/UnsubscribePreview/styled.js +48 -48
- package/es/components/molecules/UploadImage/styled.js +114 -114
- package/es/components/molecules/VirtualizedMenu/VirtualizedMenu.d.ts +1 -0
- package/es/components/molecules/VirtualizedMenu/components/Item/Item.js +3 -7
- package/es/components/molecules/VirtualizedMenu/components/MenuInline/MenuInline.d.ts +10 -10
- package/es/components/molecules/VirtualizedMenu/components/MenuInline/MenuInline.js +46 -327
- package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/index.d.ts +9 -0
- package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/index.js +5 -0
- package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useFocusManagement.d.ts +23 -0
- package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useFocusManagement.js +81 -0
- package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useItemInteraction.d.ts +24 -0
- package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useItemInteraction.js +32 -0
- package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useKeyboardNavigation.d.ts +26 -0
- package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useKeyboardNavigation.js +93 -0
- package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useTreeState.d.ts +24 -0
- package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useTreeState.js +94 -0
- package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useVisibleItems.d.ts +7 -0
- package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useVisibleItems.js +132 -0
- package/es/components/molecules/VirtualizedMenu/styled.js +103 -92
- package/es/components/molecules/VirtualizedMenu/types.d.ts +1 -0
- package/es/components/molecules/VirtualizedMenu/utils.d.ts +1 -0
- package/es/components/molecules/VirtualizedMenu/utils.js +1 -0
- package/es/components/molecules/index.d.ts +1 -0
- package/es/components/molecules/index.scss +1 -1
- package/es/components/organism/AccountProfile/components/AccountSetting/components/EditableInput/styles.js +98 -98
- package/es/components/organism/AccountProfile/components/AccountSetting/components/LanguageSelector/styles.js +18 -18
- package/es/components/organism/AccountProfile/components/AccountSetting/styled.js +543 -543
- package/es/components/organism/AccountProfile/components/AccountSetting/styles.scss +39 -39
- package/es/components/organism/AccountSharing/AccountSharing.d.ts +1 -0
- package/es/components/organism/AccountSharing/AccountSharing.js +17 -33
- package/es/components/organism/AccountSharing/styled.js +346 -346
- package/es/components/organism/ActivityTimeline/ActivityTimeline.js +3 -3
- package/es/components/organism/ActivityTimeline/__mocks__/event_tracking.json +1290 -1290
- package/es/components/organism/ActivityTimeline/__mocks__/timeline.json +1896 -1896
- package/es/components/organism/ActivityTimeline/components/ActionHistory/styled.js +28 -28
- package/es/components/organism/ActivityTimeline/components/CardMember/styled.js +60 -60
- package/es/components/organism/ActivityTimeline/components/ItemGroupEvent/styled.js +4 -4
- package/es/components/organism/ActivityTimeline/components/List/styled.js +77 -77
- package/es/components/organism/ActivityTimeline/components/ListItem/styled.js +37 -37
- package/es/components/organism/ActivityTimeline/components/ProductCard/styled.js +92 -92
- package/es/components/organism/ActivityTimeline/components/Redeem/styled.js +7 -7
- package/es/components/organism/ActivityTimeline/components/Slide/styled.js +20 -20
- package/es/components/organism/ActivityTimeline/components/TimeLineTitle/styled.js +7 -7
- package/es/components/organism/ActivityTimeline/components/TimelineSection/styled.js +69 -69
- package/es/components/organism/ActivityTimeline/constants.d.ts +9 -9
- package/es/components/organism/ActivityTimeline/constants.js +3 -3
- package/es/components/organism/ActivityTimeline/index.d.ts +530 -1
- package/es/components/organism/ActivityTimeline/index.js +9 -1
- package/es/components/organism/ActivityTimeline/styled.js +43 -43
- package/es/components/organism/ActivityTimeline/utils.js +186 -15
- package/es/components/organism/AlgorithmsSetting/styled.js +35 -35
- package/es/components/organism/BasicLogin/components/ChooseMethod/styled.js +19 -19
- package/es/components/organism/BasicLogin/components/LoginWithEmail/styled.js +3 -3
- package/es/components/organism/BasicLogin/components/LoginWithGG/styled.js +3 -3
- package/es/components/organism/BasicLogin/components/SignIn/styled.js +8 -8
- package/es/components/organism/BasicLogin/components/WidgetLayout/styled.js +18 -18
- package/es/components/organism/BasicLogin/styled.js +107 -107
- package/es/components/organism/ContentSources/styled.js +50 -50
- package/es/components/organism/DataTable/components/AddButton/index.js +8 -8
- package/es/components/organism/DataTable/components/ModifyColumn/styled.js +18 -18
- package/es/components/organism/DataTable/components/Pagination/styled.js +26 -26
- package/es/components/organism/DataTable/components/Table/styled.js +135 -135
- package/es/components/organism/DataTable/components/Toolbar/SearchPopover.js +17 -17
- package/es/components/organism/DataTable/components/Toolbar/styled.js +70 -70
- package/es/components/organism/DataTable/styled/index.js +84 -84
- package/es/components/organism/Filter/components/FilterCondition/styled.js +34 -34
- package/es/components/organism/Filter/styled.js +109 -109
- package/es/components/organism/FilterSetting/components/common/InputArray/styled.js +5 -5
- package/es/components/organism/FilterSetting/components/common/InputOrSelect/index.js +63 -63
- package/es/components/organism/FilterSetting/components/common/InputSelectMulti/ColumnSuggestion/index.js +31 -31
- package/es/components/organism/FilterSetting/components/common/InputSelectMulti/Tree/index.js +22 -22
- package/es/components/organism/FilterSetting/components/common/InputSelectMulti/index.js +55 -55
- package/es/components/organism/FilterSetting/styled.js +19 -19
- package/es/components/organism/GenerativeInsights/styled.js +55 -55
- package/es/components/organism/Help/styled.js +267 -267
- package/es/components/organism/LeftMenu/LeftMenu.js +6 -6
- package/es/components/organism/LeftMenu/components/HomeMenu/styled.js +39 -39
- package/es/components/organism/LeftMenu/components/common/ChildMenu/components/MenuItemImage/styled.js +16 -16
- package/es/components/organism/LeftMenu/components/common/ChildMenu/styled.js +156 -156
- package/es/components/organism/LeftMenu/hooks/usePermission.js +1 -1
- package/es/components/organism/LeftMenu/styled.js +216 -214
- package/es/components/organism/LeftMenu/types/index.d.ts +7 -0
- package/es/components/organism/LeftMenu/utils/index.js +1 -1
- package/es/components/organism/Login/Login.js +19 -36
- package/es/components/organism/Login/components/ChooseMethod/styled.js +19 -19
- package/es/components/organism/Login/components/ForgotPassword/styled.js +8 -8
- package/es/components/organism/Login/components/LoginSelectPortal/Item/styled.js +31 -31
- package/es/components/organism/Login/components/LoginSelectPortal/styled.js +3 -3
- package/es/components/organism/Login/components/LoginWithEmail/styled.js +3 -3
- package/es/components/organism/Login/components/LoginWithGG/styled.js +3 -3
- package/es/components/organism/Login/components/SetupGGAuthenticator/styled.js +7 -7
- package/es/components/organism/Login/components/SignIn/SignIn.js +2 -2
- package/es/components/organism/Login/components/SignIn/styled.js +8 -8
- package/es/components/organism/Login/components/VerifyAccount/styled.js +13 -13
- package/es/components/organism/Login/components/WidgetLayout/styled.js +18 -18
- package/es/components/organism/Login/styled.js +115 -115
- package/es/components/organism/Login/types/index.d.ts +2 -0
- package/es/components/organism/Menu/styled.js +6 -6
- package/es/components/organism/ModifyColumnModal/styled.js +132 -132
- package/es/components/organism/Notification/styled.js +155 -155
- package/es/components/organism/PreviewCollections/Messages/SkeletonMessage/styled.js +14 -14
- package/es/components/organism/PreviewCollections/WhatsappMessage/CarouselMessage/styled.js +63 -63
- package/es/components/organism/PreviewCollections/constants.js +50 -50
- package/es/components/organism/PreviewCollections/styled.js +16 -16
- package/es/components/organism/PreviewTemplateModal/components/Banner/styled.js +78 -78
- package/es/components/organism/PreviewTemplateModal/components/Information/styled.js +52 -52
- package/es/components/organism/PreviewTemplateModal/components/SimilarTemplate/styled.js +18 -18
- package/es/components/organism/PreviewTemplateModal/components/ThumbnailSlider/styled.js +77 -77
- package/es/components/organism/PreviewTemplateModal/styled.js +21 -21
- package/es/components/organism/SQLGeneration/components/styled.js +354 -354
- package/es/components/organism/SQLGeneration/index.scss +1 -1
- package/es/components/organism/SQLGeneration/integrations/AceEditor/index.scss +4 -4
- package/es/components/organism/Table/CrossTabTable/components/CustomCell/styled.js +11 -11
- package/es/components/organism/Table/CrossTabTable/styled.js +11 -11
- package/es/components/organism/Table/ExplorePivotTable/components/CustomCell/styled.js +17 -17
- package/es/components/organism/Table/ExplorePivotTable/styled.js +11 -11
- package/es/components/organism/TextEditor/TextEditor.d.ts +9 -2
- package/es/components/organism/TextEditor/TextEditor.js +203 -42
- package/es/components/organism/TextEditor/__mocks__/text-contennt.js +44 -44
- package/es/components/organism/TextEditor/constants.d.ts +9 -0
- package/es/components/organism/TextEditor/constants.js +66 -0
- package/es/components/organism/TextEditor/extensions/BubbleMenu/bubble-menu-plugin.d.ts +6 -128
- package/es/components/organism/TextEditor/extensions/BubbleMenu/bubble-menu-plugin.js +7 -292
- package/es/components/organism/TextEditor/extensions/BubbleMenu/bubble-menu.d.ts +1 -1
- package/es/components/organism/TextEditor/extensions/BubbleMenu/bubble-menu.js +4 -0
- package/es/components/organism/TextEditor/extensions/Link.js +33 -14
- package/es/components/organism/TextEditor/extensions/ListItem.d.ts +10 -0
- package/es/components/organism/TextEditor/extensions/ListItem.js +93 -0
- package/es/components/organism/TextEditor/extensions/SmartTag.d.ts +5 -6
- package/es/components/organism/TextEditor/extensions/SmartTag.js +96 -4
- package/es/components/organism/TextEditor/hooks/useColorSet.js +7 -0
- package/es/components/organism/TextEditor/hooks/useMarkTracking.js +2 -1
- package/es/components/organism/TextEditor/index.d.ts +7 -5
- package/es/components/organism/TextEditor/index.scss +65 -68
- package/es/components/organism/TextEditor/provider.d.ts +1 -0
- package/es/components/organism/TextEditor/provider.js +6 -3
- package/es/components/organism/TextEditor/store.d.ts +11 -4
- package/es/components/organism/TextEditor/store.js +22 -2
- package/es/components/organism/TextEditor/stories/WithOldDynAndLink/froala-legacy-format.settings.json +95 -0
- package/es/components/organism/TextEditor/stories/WithOldDynAndLink/shared.d.ts +111 -0
- package/es/components/organism/TextEditor/stories/WithOldDynAndLink/shared.js +82 -0
- package/es/components/organism/TextEditor/stories/shared.d.ts +64 -0
- package/es/components/organism/TextEditor/stories/shared.js +57 -0
- package/es/components/organism/TextEditor/styled.d.ts +1 -1
- package/es/components/organism/TextEditor/styled.js +54 -53
- package/es/components/organism/TextEditor/types.d.ts +161 -11
- package/es/components/organism/TextEditor/types.js +1 -0
- package/es/components/organism/TextEditor/ui/BubbleMenu/BubbleMenu.d.ts +2 -1
- package/es/components/organism/TextEditor/ui/BubbleMenu/BubbleMenu.js +80 -51
- package/es/components/organism/TextEditor/ui/Button/Button.js +22 -22
- package/es/components/organism/TextEditor/ui/DropdownButton/DropdownButton.js +13 -13
- package/es/components/organism/TextEditor/ui/Emoji/EmojiList.js +1 -1
- package/es/components/organism/TextEditor/ui/Emoji/suggestion.d.ts +1 -1
- package/es/components/organism/TextEditor/ui/Emoji/suggestion.js +2 -2
- package/es/components/organism/TextEditor/ui/FontPopover/FontPopover.js +12 -2
- package/es/components/organism/TextEditor/ui/FontPopover/styled.js +32 -32
- package/es/components/organism/TextEditor/ui/LinkInsertForm/LinkInsertForm.d.ts +16 -0
- package/es/components/organism/TextEditor/ui/LinkInsertForm/LinkInsertForm.js +61 -0
- package/es/components/organism/TextEditor/ui/LinkInsertForm/index.d.ts +2 -0
- package/es/components/organism/TextEditor/ui/LinkInsertForm/index.js +1 -0
- package/es/components/organism/TextEditor/ui/LinkPopover/LinkPopover.d.ts +9 -0
- package/es/components/organism/TextEditor/ui/LinkPopover/LinkPopover.js +126 -0
- package/es/components/organism/TextEditor/ui/LinkPopover/index.d.ts +2 -0
- package/es/components/organism/TextEditor/ui/LinkPopover/index.js +1 -0
- package/es/components/organism/TextEditor/ui/Popover/Popover.js +1 -1
- package/es/components/organism/TextEditor/ui/SplitButtonDropdown/styled.js +54 -54
- package/es/components/organism/TextEditor/ui/TextAlignSelect/TextAlignSelect.js +10 -12
- package/es/components/organism/TextEditor/ui/Toolbar/{Toolbar.d.ts → FormattingToolbar.d.ts} +3 -4
- package/es/components/organism/TextEditor/ui/Toolbar/FormattingToolbar.js +90 -0
- package/es/components/organism/TextEditor/ui/Toolbar/LinkPreviewToolbar.d.ts +10 -0
- package/es/components/organism/TextEditor/ui/Toolbar/LinkPreviewToolbar.js +39 -0
- package/es/components/organism/TextEditor/ui/Toolbar/actions/EmojiAction.js +4 -3
- package/es/components/organism/TextEditor/ui/Toolbar/actions/FontFamilyAction.d.ts +1 -0
- package/es/components/organism/TextEditor/ui/Toolbar/actions/FontFamilyAction.js +2 -2
- package/es/components/organism/TextEditor/ui/Toolbar/actions/FontSizeAction.js +17 -12
- package/es/components/organism/TextEditor/ui/Toolbar/index.d.ts +2 -1
- package/es/components/organism/TextEditor/ui/Toolbar/index.js +2 -1
- package/es/components/organism/TextEditor/utils/documentState.d.ts +14 -0
- package/es/components/organism/TextEditor/utils/documentState.js +25 -0
- package/es/components/organism/TextEditor/utils/htmlProcessing.js +60 -0
- package/es/components/organism/TextEditor/utils/link.d.ts +10 -1
- package/es/components/organism/TextEditor/utils/link.js +161 -7
- package/es/components/organism/TextEditor/utils/menu.js +2 -1
- package/es/components/organism/TextEditor/utils/selection.js +3 -2
- package/es/components/organism/TextEditor/utils/smartTag.js +2 -1
- package/es/components/organism/TicketEditor/styled.js +860 -860
- package/es/components/organism/TicketEditorV2/styled.js +839 -839
- package/es/components/organism/index.d.ts +1 -1
- package/es/components/organism/index.scss +2 -2
- package/es/components/template/Layout/Layout.js +10 -10
- package/es/components/template/Layout/components/RecommendationWorkspace/components/MenuMapping/components/OldLeftMenu/styled.js +73 -73
- package/es/components/template/Layout/components/RecommendationWorkspace/components/MenuMapping/styled.js +39 -39
- package/es/components/template/Layout/components/RecommendationWorkspace/components/RecommendationImage/styled.js +61 -61
- package/es/components/template/Layout/components/RecommendationWorkspace/styled.js +16 -16
- package/es/components/template/Layout/styled.js +84 -84
- package/es/components/template/TemplateListing/Loadable.d.ts +1 -0
- package/es/components/template/TemplateListing/components/BlankTemplate/styled.js +21 -21
- package/es/components/template/TemplateListing/components/CategoryListing/styled.js +123 -123
- package/es/components/template/TemplateListing/components/Empty/styled.js +20 -20
- package/es/components/template/TemplateListing/stories/demo/styled.js +4 -4
- package/es/components/template/TemplateListing/styled/index.js +40 -40
- package/es/hooks/index.d.ts +1 -1
- package/es/hooks/index.js +1 -1
- package/es/providers/ConfigProvider/ConfigProvider.d.ts +4 -0
- package/es/providers/ConfigProvider/ConfigProvider.js +2 -3
- package/es/providers/ConfigProvider/GlobalStyle.d.ts +2 -2
- package/es/providers/ConfigProvider/GlobalStyle.js +1252 -1249
- package/es/services/MediaTemplateDesign/UploadFile/index.js +4 -4
- package/es/styled/common.js +51 -51
- package/es/tests/styled.js +4 -4
- package/es/utils/common.d.ts +1 -1
- package/es/utils/common.js +3 -3
- package/es/utils/cookie.js +2 -1
- package/es/utils/crossSubdomainCookieOptions.d.ts +14 -0
- package/es/utils/crossSubdomainCookieOptions.js +12 -0
- package/es/utils/variables.js +7 -7
- package/package.json +282 -286
- package/es/components/organism/TextEditor/ui/BubbleToolbar/BubbleToolbar.d.ts +0 -1
- package/es/components/organism/TextEditor/ui/BubbleToolbar/BubbleToolbar.js +0 -1
- package/es/components/organism/TextEditor/ui/BubbleToolbar/index.d.ts +0 -0
- package/es/components/organism/TextEditor/ui/BubbleToolbar/index.js +0 -1
- package/es/components/organism/TextEditor/ui/Toolbar/Toolbar.js +0 -39
package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useKeyboardNavigation.js
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { useCallback } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Custom hook to handle keyboard navigation for tree menu
|
|
4
|
+
* Implements ARIA-compliant keyboard interaction patterns
|
|
5
|
+
*/
|
|
6
|
+
export const useKeyboardNavigation = (props) => {
|
|
7
|
+
const { visibleItems, focusId, expandedKeys, normalizeTreeItems, setFocusId, handleExpandItems, handleCollapseItems, handleSelectItem, handleToggleExpandItem, findNextFocusableItem, findFirstFocusableItem, findLastFocusableItem, onClick, } = props;
|
|
8
|
+
const handleKeyDown = useCallback((e) => {
|
|
9
|
+
if (visibleItems.length === 0)
|
|
10
|
+
return;
|
|
11
|
+
e.preventDefault();
|
|
12
|
+
const currentFocusIndex = visibleItems.findIndex(item => item.id === focusId);
|
|
13
|
+
if (currentFocusIndex === -1) {
|
|
14
|
+
const firstFocusableIndex = findFirstFocusableItem();
|
|
15
|
+
setFocusId(visibleItems[firstFocusableIndex]?.id ?? null);
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const currentFocusItem = visibleItems[currentFocusIndex];
|
|
19
|
+
switch (e.key) {
|
|
20
|
+
case 'ArrowDown': {
|
|
21
|
+
const nextFocusIndex = findNextFocusableItem(currentFocusIndex, 'next');
|
|
22
|
+
setFocusId(visibleItems[nextFocusIndex].id);
|
|
23
|
+
break;
|
|
24
|
+
}
|
|
25
|
+
case 'ArrowUp': {
|
|
26
|
+
const nextFocusIndex = findNextFocusableItem(currentFocusIndex, 'prev');
|
|
27
|
+
setFocusId(visibleItems[nextFocusIndex].id);
|
|
28
|
+
break;
|
|
29
|
+
}
|
|
30
|
+
case 'ArrowRight': {
|
|
31
|
+
if (currentFocusItem.childIds.length > 0 && !expandedKeys.has(currentFocusItem.id)) {
|
|
32
|
+
handleExpandItems([currentFocusItem]);
|
|
33
|
+
}
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
case 'ArrowLeft': {
|
|
37
|
+
if (currentFocusItem.childIds.length > 0 && expandedKeys.has(currentFocusItem.id)) {
|
|
38
|
+
handleCollapseItems([currentFocusItem]);
|
|
39
|
+
}
|
|
40
|
+
else if (currentFocusItem?.parentId) {
|
|
41
|
+
// Find parent and ensure it's focusable
|
|
42
|
+
const parentItem = normalizeTreeItems.get(currentFocusItem.parentId);
|
|
43
|
+
if (parentItem && !parentItem.data.displayOnly) {
|
|
44
|
+
setFocusId(currentFocusItem.parentId);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
case 'Home': {
|
|
50
|
+
const firstFocusableIndex = findFirstFocusableItem();
|
|
51
|
+
setFocusId(visibleItems[firstFocusableIndex].id);
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
case 'End': {
|
|
55
|
+
const lastFocusableIndex = findLastFocusableItem();
|
|
56
|
+
setFocusId(visibleItems[lastFocusableIndex].id);
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
case 'Enter': {
|
|
60
|
+
if (currentFocusItem && !currentFocusItem.data.displayOnly) {
|
|
61
|
+
handleSelectItem(currentFocusItem);
|
|
62
|
+
if (currentFocusItem.childIds.length > 0) {
|
|
63
|
+
handleToggleExpandItem(currentFocusItem);
|
|
64
|
+
}
|
|
65
|
+
onClick?.({
|
|
66
|
+
item: currentFocusItem.data,
|
|
67
|
+
elKey: 'item',
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
default:
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
75
|
+
}, [
|
|
76
|
+
visibleItems,
|
|
77
|
+
focusId,
|
|
78
|
+
expandedKeys,
|
|
79
|
+
normalizeTreeItems,
|
|
80
|
+
setFocusId,
|
|
81
|
+
handleExpandItems,
|
|
82
|
+
handleCollapseItems,
|
|
83
|
+
handleSelectItem,
|
|
84
|
+
handleToggleExpandItem,
|
|
85
|
+
findNextFocusableItem,
|
|
86
|
+
findFirstFocusableItem,
|
|
87
|
+
findLastFocusableItem,
|
|
88
|
+
onClick,
|
|
89
|
+
]);
|
|
90
|
+
return {
|
|
91
|
+
handleKeyDown,
|
|
92
|
+
};
|
|
93
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { NormalizedNode } from '@antscorp/antsomi-ui/es/utils/tree';
|
|
2
|
+
import { ItemType } from '../../../types';
|
|
3
|
+
export interface UseTreeStateReturn {
|
|
4
|
+
normalizeTreeItems: Map<string, NormalizedNode<ItemType>>;
|
|
5
|
+
rootItemIds: Set<string>;
|
|
6
|
+
rootNodes: NormalizedNode<ItemType>[];
|
|
7
|
+
expandedKeys: Set<string>;
|
|
8
|
+
selectedKeys: Set<string>;
|
|
9
|
+
handleExpandItems: (items: NormalizedNode<ItemType>[], deep?: number) => void;
|
|
10
|
+
handleCollapseItems: (items: NormalizedNode<ItemType>[]) => void;
|
|
11
|
+
handleToggleExpandItem: (item: NormalizedNode<ItemType>) => void;
|
|
12
|
+
handleSelectItem: (item: NormalizedNode<ItemType>) => void;
|
|
13
|
+
expandAll: () => void;
|
|
14
|
+
}
|
|
15
|
+
export interface UseTreeStateProps {
|
|
16
|
+
items: ItemType[];
|
|
17
|
+
expanded: string[];
|
|
18
|
+
selected: string | string[];
|
|
19
|
+
selectable: boolean;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Custom hook to manage tree state including expansion, selection, and normalization
|
|
23
|
+
*/
|
|
24
|
+
export declare const useTreeState: (props: UseTreeStateProps) => UseTreeStateReturn;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { useState, useCallback, useMemo, useEffect } from 'react';
|
|
2
|
+
import { useDeepCompareEffect } from '@antscorp/antsomi-ui/es/hooks';
|
|
3
|
+
import { findNodes, getChildrenRecursively, } from '@antscorp/antsomi-ui/es/utils/tree';
|
|
4
|
+
import { serializeItems } from '../../../utils';
|
|
5
|
+
/**
|
|
6
|
+
* Custom hook to manage tree state including expansion, selection, and normalization
|
|
7
|
+
*/
|
|
8
|
+
export const useTreeState = (props) => {
|
|
9
|
+
const { items: itemsProp, expanded: expandedProp, selected: selectedProp, selectable } = props;
|
|
10
|
+
const [expandedKeys, setExpandedKeys] = useState(new Set());
|
|
11
|
+
const [selectedKeys, setSelectedKeys] = useState(new Set());
|
|
12
|
+
const [{ items: normalizeTreeItems, rootItemIds }, setTreeState] = useState({
|
|
13
|
+
items: new Map(),
|
|
14
|
+
rootItemIds: new Set(),
|
|
15
|
+
});
|
|
16
|
+
// Sync external selectedProp with internal state
|
|
17
|
+
useDeepCompareEffect(() => {
|
|
18
|
+
setSelectedKeys(new Set(selectedProp));
|
|
19
|
+
}, [selectedProp]);
|
|
20
|
+
// Sync external expandedProp with internal state
|
|
21
|
+
useDeepCompareEffect(() => {
|
|
22
|
+
setExpandedKeys(new Set(expandedProp));
|
|
23
|
+
}, [expandedProp]);
|
|
24
|
+
// Serialize items into normalized tree structure
|
|
25
|
+
useEffect(() => {
|
|
26
|
+
setTreeState(serializeItems({
|
|
27
|
+
items: itemsProp,
|
|
28
|
+
}));
|
|
29
|
+
}, [itemsProp]);
|
|
30
|
+
// Compute root nodes
|
|
31
|
+
const rootNodes = useMemo(() => findNodes(node => rootItemIds.has(node.id), normalizeTreeItems), [normalizeTreeItems, rootItemIds]);
|
|
32
|
+
// Handler to collapse items
|
|
33
|
+
const handleCollapseItems = useCallback((items) => {
|
|
34
|
+
setExpandedKeys(prev => {
|
|
35
|
+
const newOpenKeys = new Set(prev);
|
|
36
|
+
items.forEach(({ data }) => {
|
|
37
|
+
if (prev.has(data.key)) {
|
|
38
|
+
newOpenKeys.delete(data.key);
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
return newOpenKeys;
|
|
42
|
+
});
|
|
43
|
+
}, []);
|
|
44
|
+
// Handler to expand items with optional deep expansion
|
|
45
|
+
const handleExpandItems = useCallback((items, deep = 0) => {
|
|
46
|
+
setExpandedKeys(prev => {
|
|
47
|
+
const updatedExpandedKeys = new Set(prev);
|
|
48
|
+
items.forEach(item => {
|
|
49
|
+
const normalizeItem = normalizeTreeItems.get(item.data.key);
|
|
50
|
+
if (normalizeItem) {
|
|
51
|
+
updatedExpandedKeys.add(normalizeItem.id);
|
|
52
|
+
if (deep > 0) {
|
|
53
|
+
getChildrenRecursively(normalizeItem.id, normalizeTreeItems, normalizeItem.level + deep).forEach(v => updatedExpandedKeys.add(v.id));
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
return updatedExpandedKeys;
|
|
58
|
+
});
|
|
59
|
+
}, [normalizeTreeItems]);
|
|
60
|
+
// Handler to toggle expansion state of an item
|
|
61
|
+
const handleToggleExpandItem = useCallback((item) => {
|
|
62
|
+
const { key } = item.data;
|
|
63
|
+
const isExpanded = expandedKeys.has(key);
|
|
64
|
+
if (isExpanded) {
|
|
65
|
+
handleCollapseItems([item]);
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
handleExpandItems([item]);
|
|
69
|
+
}
|
|
70
|
+
}, [expandedKeys, handleCollapseItems, handleExpandItems]);
|
|
71
|
+
// Handler to select an item
|
|
72
|
+
const handleSelectItem = useCallback((item) => {
|
|
73
|
+
const { key } = item.data;
|
|
74
|
+
if (!selectable || selectedKeys.has(key) || item.data.displayOnly)
|
|
75
|
+
return;
|
|
76
|
+
setSelectedKeys(new Set([key]));
|
|
77
|
+
}, [selectable, selectedKeys]);
|
|
78
|
+
// Handler to expand all items
|
|
79
|
+
const expandAll = useCallback(() => {
|
|
80
|
+
handleExpandItems(rootNodes, Infinity);
|
|
81
|
+
}, [handleExpandItems, rootNodes]);
|
|
82
|
+
return {
|
|
83
|
+
normalizeTreeItems,
|
|
84
|
+
rootItemIds,
|
|
85
|
+
rootNodes,
|
|
86
|
+
expandedKeys,
|
|
87
|
+
selectedKeys,
|
|
88
|
+
handleExpandItems,
|
|
89
|
+
handleCollapseItems,
|
|
90
|
+
handleToggleExpandItem,
|
|
91
|
+
handleSelectItem,
|
|
92
|
+
expandAll,
|
|
93
|
+
};
|
|
94
|
+
};
|
package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useVisibleItems.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { NormalizedNode } from '@antscorp/antsomi-ui/es/utils/tree';
|
|
2
|
+
import { ItemType } from '../../../types';
|
|
3
|
+
/**
|
|
4
|
+
* Custom hook to compute and optimize visible items in a tree structure
|
|
5
|
+
* Automatically selects the best strategy based on tree characteristics
|
|
6
|
+
*/
|
|
7
|
+
export declare const useVisibleItems: (normalizeTreeItems: Map<string, NormalizedNode<ItemType>>, rootItemIds: Set<string>, expandedKeys: Set<string>) => NormalizedNode<ItemType>[];
|
package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useVisibleItems.js
ADDED
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { useMemo, useEffect } from 'react';
|
|
2
|
+
import { getPathToNode } from '@antscorp/antsomi-ui/es/utils/tree';
|
|
3
|
+
/**
|
|
4
|
+
* Optimized function to compute visible items using breadth-first traversal
|
|
5
|
+
* instead of filtering all items
|
|
6
|
+
*/
|
|
7
|
+
const computeVisibleItemsOptimized = (normalizeTreeItems, rootItemIds, expandedKeys) => {
|
|
8
|
+
const visibleItems = [];
|
|
9
|
+
const queue = Array.from(rootItemIds);
|
|
10
|
+
// Process queue in breadth-first manner
|
|
11
|
+
let index = 0;
|
|
12
|
+
while (index < queue.length) {
|
|
13
|
+
const itemId = queue[index++];
|
|
14
|
+
const item = normalizeTreeItems.get(itemId);
|
|
15
|
+
if (!item)
|
|
16
|
+
continue;
|
|
17
|
+
visibleItems.push(item);
|
|
18
|
+
// Add children to queue only if this item is expanded
|
|
19
|
+
if (expandedKeys.has(item.id) && item.childIds.length > 0) {
|
|
20
|
+
queue.push(...item.childIds);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return visibleItems;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Alternative: Path-based optimization with memoization
|
|
27
|
+
* Caches path calculations to avoid redundant work
|
|
28
|
+
*/
|
|
29
|
+
const computeVisibleItemsWithPathCache = (normalizeTreeItems, expandedKeys, pathCache) => {
|
|
30
|
+
const visibleItems = [];
|
|
31
|
+
for (const item of normalizeTreeItems.values()) {
|
|
32
|
+
const isRootItem = item.level === 0;
|
|
33
|
+
if (isRootItem) {
|
|
34
|
+
visibleItems.push(item);
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
if (!item.parentId)
|
|
38
|
+
continue;
|
|
39
|
+
// Use cached path or compute and cache
|
|
40
|
+
let pathToParent = pathCache.get(item.parentId);
|
|
41
|
+
if (!pathToParent) {
|
|
42
|
+
pathToParent = getPathToNode(item.parentId, normalizeTreeItems);
|
|
43
|
+
pathCache.set(item.parentId, pathToParent);
|
|
44
|
+
}
|
|
45
|
+
// Check if all parents are expanded
|
|
46
|
+
const allParentExpanded = pathToParent.every(parent => expandedKeys.has(parent.id));
|
|
47
|
+
if (allParentExpanded) {
|
|
48
|
+
visibleItems.push(item);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return visibleItems;
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Level-based optimization: Process items level by level
|
|
55
|
+
* More efficient for deep trees with many collapsed branches
|
|
56
|
+
*/
|
|
57
|
+
const computeVisibleItemsByLevel = (normalizeTreeItems, rootItemIds, expandedKeys) => {
|
|
58
|
+
const visibleItems = [];
|
|
59
|
+
const expandedParents = new Set();
|
|
60
|
+
// Add root items and track expanded ones
|
|
61
|
+
for (const rootId of rootItemIds) {
|
|
62
|
+
const rootItem = normalizeTreeItems.get(rootId);
|
|
63
|
+
if (rootItem) {
|
|
64
|
+
visibleItems.push(rootItem);
|
|
65
|
+
if (expandedKeys.has(rootId)) {
|
|
66
|
+
expandedParents.add(rootId);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
// Process each level
|
|
71
|
+
let currentLevelParents = expandedParents;
|
|
72
|
+
let currentLevel = 1;
|
|
73
|
+
while (currentLevelParents.size > 0) {
|
|
74
|
+
const nextLevelParents = new Set();
|
|
75
|
+
// Process all items at current level
|
|
76
|
+
for (const parentId of currentLevelParents) {
|
|
77
|
+
const parent = normalizeTreeItems.get(parentId);
|
|
78
|
+
if (!parent)
|
|
79
|
+
continue;
|
|
80
|
+
// Add all children of this expanded parent
|
|
81
|
+
for (const childId of parent.childIds) {
|
|
82
|
+
const child = normalizeTreeItems.get(childId);
|
|
83
|
+
if (child && child.level === currentLevel) {
|
|
84
|
+
visibleItems.push(child);
|
|
85
|
+
// Track if this child is expanded for next level
|
|
86
|
+
if (expandedKeys.has(childId)) {
|
|
87
|
+
nextLevelParents.add(childId);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
currentLevelParents = nextLevelParents;
|
|
93
|
+
currentLevel++;
|
|
94
|
+
}
|
|
95
|
+
return visibleItems;
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
* Custom hook to compute and optimize visible items in a tree structure
|
|
99
|
+
* Automatically selects the best strategy based on tree characteristics
|
|
100
|
+
*/
|
|
101
|
+
export const useVisibleItems = (normalizeTreeItems, rootItemIds, expandedKeys) => {
|
|
102
|
+
// Cache for path calculations to avoid redundant work
|
|
103
|
+
const pathCache = useMemo(() => new Map(), []);
|
|
104
|
+
// Clear path cache when tree structure changes
|
|
105
|
+
useEffect(() => {
|
|
106
|
+
pathCache.clear();
|
|
107
|
+
}, [normalizeTreeItems, pathCache]);
|
|
108
|
+
// Optimized visible items calculation with strategy selection
|
|
109
|
+
const visibleItems = useMemo(() => {
|
|
110
|
+
if (normalizeTreeItems.size === 0)
|
|
111
|
+
return [];
|
|
112
|
+
// Choose optimization strategy based on tree characteristics
|
|
113
|
+
const treeDepth = Math.max(...Array.from(normalizeTreeItems.values()).map(item => item.level));
|
|
114
|
+
const totalItems = normalizeTreeItems.size;
|
|
115
|
+
const expandedCount = expandedKeys.size;
|
|
116
|
+
// Strategy selection heuristics:
|
|
117
|
+
// - For shallow trees with many expanded items: use breadth-first
|
|
118
|
+
// - For deep trees with few expanded items: use level-based
|
|
119
|
+
// - For medium trees: use path-cache optimization
|
|
120
|
+
if (treeDepth <= 3 && expandedCount > totalItems * 0.3) {
|
|
121
|
+
// Shallow tree with many expanded items
|
|
122
|
+
return computeVisibleItemsOptimized(normalizeTreeItems, rootItemIds, expandedKeys);
|
|
123
|
+
}
|
|
124
|
+
if (treeDepth > 5 && expandedCount < totalItems * 0.2) {
|
|
125
|
+
// Deep tree with few expanded items
|
|
126
|
+
return computeVisibleItemsByLevel(normalizeTreeItems, rootItemIds, expandedKeys);
|
|
127
|
+
}
|
|
128
|
+
// Medium complexity - use cached path approach
|
|
129
|
+
return computeVisibleItemsWithPathCache(normalizeTreeItems, expandedKeys, pathCache);
|
|
130
|
+
}, [expandedKeys, normalizeTreeItems, rootItemIds, pathCache]);
|
|
131
|
+
return visibleItems;
|
|
132
|
+
};
|
|
@@ -4,101 +4,112 @@ import { THEME, globalToken } from '@antscorp/antsomi-ui/es/constants';
|
|
|
4
4
|
import AutoSizer from 'react-virtualized-auto-sizer';
|
|
5
5
|
import { CLS } from './utils';
|
|
6
6
|
import tinycolor from 'tinycolor2';
|
|
7
|
-
export const MenuItemWrapper = styled.div `
|
|
8
|
-
width: 100%;
|
|
9
|
-
height: 100%;
|
|
10
|
-
display: flex;
|
|
11
|
-
gap: 8px;
|
|
12
|
-
justify-content: space-between;
|
|
13
|
-
padding: 5px;
|
|
14
|
-
align-items: center;
|
|
15
|
-
overflow: hidden;
|
|
16
|
-
|
|
17
|
-
.icon-expand {
|
|
18
|
-
font-size: 14px;
|
|
19
|
-
flex-shrink: 0;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
.title-wrapper {
|
|
23
|
-
overflow: hidden;
|
|
24
|
-
text-overflow: ellipsis;
|
|
25
|
-
white-space: nowrap;
|
|
26
|
-
}
|
|
7
|
+
export const MenuItemWrapper = styled.div `
|
|
8
|
+
width: 100%;
|
|
9
|
+
height: 100%;
|
|
10
|
+
display: flex;
|
|
11
|
+
gap: 8px;
|
|
12
|
+
justify-content: space-between;
|
|
13
|
+
padding: 5px;
|
|
14
|
+
align-items: center;
|
|
15
|
+
overflow: hidden;
|
|
16
|
+
|
|
17
|
+
.icon-expand {
|
|
18
|
+
font-size: 14px;
|
|
19
|
+
flex-shrink: 0;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.title-wrapper {
|
|
23
|
+
overflow: hidden;
|
|
24
|
+
text-overflow: ellipsis;
|
|
25
|
+
white-space: nowrap;
|
|
26
|
+
}
|
|
27
27
|
`;
|
|
28
|
-
export const MenuItemRoot = styled.li `
|
|
29
|
-
&.${CLS.Item.default} {
|
|
30
|
-
cursor: pointer;
|
|
31
|
-
display: flex;
|
|
32
|
-
align-items: center;
|
|
33
|
-
overflow: hidden;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
outline: none;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
> .${CLS.ItemLabel.default} {
|
|
40
|
-
display: flex;
|
|
41
|
-
flex: 1;
|
|
42
|
-
overflow: hidden;
|
|
43
|
-
align-self: stretch;
|
|
44
|
-
align-items: center;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
> .${CLS.ItemAction.default} {
|
|
48
|
-
display: flex;
|
|
49
|
-
align-items: center;
|
|
50
|
-
justify-content: center;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
&.${CLS.Item.disabled} {
|
|
54
|
-
color: ${THEME.components?.Menu?.itemDisabledColor};
|
|
55
|
-
cursor: not-allowed;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
&.${CLS.Item.selected} {
|
|
59
|
-
background-color: ${THEME.components?.Menu?.itemActiveBg};
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
&.${CLS.Item.expanded} {
|
|
63
|
-
> .${CLS.ItemAction.default} {
|
|
64
|
-
> .${CLS.IconExpand.default} {
|
|
65
|
-
rotate: 180deg;
|
|
66
|
-
transition: rotate 0.4s;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
&.${CLS.Item.selectedDescendant} {
|
|
28
|
+
export const MenuItemRoot = styled.li `
|
|
29
|
+
&.${CLS.Item.default} {
|
|
30
|
+
cursor: pointer;
|
|
31
|
+
display: flex;
|
|
32
|
+
align-items: center;
|
|
33
|
+
overflow: hidden;
|
|
34
|
+
|
|
35
|
+
&.${CLS.Item.focused} {
|
|
36
|
+
outline: none;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
> .${CLS.ItemLabel.default} {
|
|
40
|
+
display: flex;
|
|
41
|
+
flex: 1;
|
|
42
|
+
overflow: hidden;
|
|
43
|
+
align-self: stretch;
|
|
44
|
+
align-items: center;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
> .${CLS.ItemAction.default} {
|
|
48
|
+
display: flex;
|
|
49
|
+
align-items: center;
|
|
50
|
+
justify-content: center;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
&.${CLS.Item.disabled} {
|
|
54
|
+
color: ${THEME.components?.Menu?.itemDisabledColor};
|
|
55
|
+
cursor: not-allowed;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
&.${CLS.Item.selected} {
|
|
59
|
+
background-color: ${THEME.components?.Menu?.itemActiveBg};
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
&.${CLS.Item.expanded} {
|
|
63
|
+
> .${CLS.ItemAction.default} {
|
|
64
|
+
> .${CLS.IconExpand.default} {
|
|
65
|
+
rotate: 180deg;
|
|
66
|
+
transition: rotate 0.4s;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
&.${CLS.Item.selectedDescendant} {
|
|
72
72
|
background-color: ${tinycolor(THEME.components?.Menu?.itemActiveBg)
|
|
73
73
|
.lighten(4)
|
|
74
|
-
.toString('rgb')};
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
&.${CLS.Item.displayOnly} {
|
|
78
|
-
cursor: default;
|
|
79
|
-
color: ${THEME.components?.Menu?.itemColor || globalToken?.colorText};
|
|
80
|
-
|
|
81
|
-
&:focus,
|
|
82
|
-
&:hover {
|
|
83
|
-
background-color: transparent;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
74
|
+
.toString('rgb')};
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
&.${CLS.Item.displayOnly} {
|
|
78
|
+
cursor: default;
|
|
79
|
+
color: ${THEME.components?.Menu?.itemColor || globalToken?.colorText};
|
|
80
|
+
|
|
81
|
+
&:focus,
|
|
82
|
+
&:hover {
|
|
83
|
+
background-color: transparent;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
&.${CLS.Item.focused}:not(
|
|
88
|
+
.${CLS.Item.disabled},
|
|
89
|
+
.${CLS.Item.selected},
|
|
90
|
+
.${CLS.Item.selectedDescendant},
|
|
91
|
+
.${CLS.Item.displayOnly}
|
|
92
|
+
),
|
|
93
|
+
&:hover:not(
|
|
94
|
+
.${CLS.Item.disabled},
|
|
95
|
+
.${CLS.Item.selected},
|
|
96
|
+
.${CLS.Item.selectedDescendant},
|
|
97
|
+
.${CLS.Item.displayOnly}
|
|
98
|
+
) {
|
|
99
|
+
background-color: ${THEME.components?.Menu?.itemHoverBg};
|
|
100
|
+
}
|
|
101
|
+
}
|
|
92
102
|
`;
|
|
93
|
-
export const VirtualizedMenuContainer = styled((VariableSizeList)) `
|
|
94
|
-
font-size: ${globalToken?.fontSize}px;
|
|
95
|
-
scrollbar-gutter: stable;
|
|
96
|
-
|
|
97
|
-
ul {
|
|
98
|
-
padding: 0;
|
|
99
|
-
margin: 0;
|
|
100
|
-
}
|
|
103
|
+
export const VirtualizedMenuContainer = styled((VariableSizeList)) `
|
|
104
|
+
font-size: ${globalToken?.fontSize}px;
|
|
105
|
+
scrollbar-gutter: stable;
|
|
106
|
+
|
|
107
|
+
ul {
|
|
108
|
+
padding: 0;
|
|
109
|
+
margin: 0;
|
|
110
|
+
}
|
|
101
111
|
`;
|
|
102
|
-
export const StyledAutoSizer = styled(AutoSizer) `
|
|
103
|
-
flex: 1;
|
|
112
|
+
export const StyledAutoSizer = styled(AutoSizer) `
|
|
113
|
+
flex: 1;
|
|
114
|
+
outline: none;
|
|
104
115
|
`;
|
|
@@ -37,6 +37,7 @@ export const CLS = {
|
|
|
37
37
|
disabled: componentCls('item-disabled'),
|
|
38
38
|
selected: componentCls('item-selected'),
|
|
39
39
|
expanded: componentCls('item-expanded'),
|
|
40
|
+
focused: componentCls('item-focused'),
|
|
40
41
|
selectedDescendant: componentCls('item-selected-descendant'),
|
|
41
42
|
displayOnly: componentCls('item-display-only'),
|
|
42
43
|
},
|
|
@@ -23,6 +23,7 @@ export { IconSelectionRenderer } from './IconSelection/components/Icon';
|
|
|
23
23
|
export { AlignSetting } from './AlignSetting';
|
|
24
24
|
export { EdgeSetting } from './EdgeSetting';
|
|
25
25
|
export { ShareAccess, Constants as ShareAccessConstants, Utils as ShareAccessUtils, } from './ShareAccess';
|
|
26
|
+
export type { ObjectAccessInfo, ObjectAccessInfoRaw, UserAccessInfo, UserAccessInfoRaw, ShareAccessProps, } from './ShareAccess';
|
|
26
27
|
export { Collapse } from './Collapse';
|
|
27
28
|
export { TreeSelect } from './TreeSelect';
|
|
28
29
|
export { Card } from './Card';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
@use './FontSizeInput';
|
|
1
|
+
@use './FontSizeInput';
|