@jotforminc/dnd-builder 3.1.0 → 3.2.0
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/CHANGELOG.md +25 -0
- package/index.d.ts +428 -0
- package/lib/cjs/assets/search.svg.js +5 -2
- package/lib/cjs/assets/search.svg.js.map +1 -1
- package/lib/cjs/assets/svg/all_slides.svg.js +9 -29
- package/lib/cjs/assets/svg/all_slides.svg.js.map +1 -1
- package/lib/cjs/assets/svg/close.svg.js +4 -2
- package/lib/cjs/assets/svg/close.svg.js.map +1 -1
- package/lib/cjs/assets/svg/customize.svg.js +4 -2
- package/lib/cjs/assets/svg/customize.svg.js.map +1 -1
- package/lib/cjs/assets/svg/duplicate.svg.js +5 -2
- package/lib/cjs/assets/svg/duplicate.svg.js.map +1 -1
- package/lib/cjs/assets/svg/fit_screen.svg.js +7 -7
- package/lib/cjs/assets/svg/heart_rating.svg.js +5 -3
- package/lib/cjs/assets/svg/heart_rating.svg.js.map +1 -1
- package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-arrow-down-left.svg.js +4 -2
- package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-arrow-down-left.svg.js.map +1 -1
- package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-arrow-down-right.svg.js +4 -2
- package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-arrow-down-right.svg.js.map +1 -1
- package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-arrow-down.svg.js +4 -2
- package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-arrow-down.svg.js.map +1 -1
- package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-arrow-left.svg.js +4 -2
- package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-arrow-left.svg.js.map +1 -1
- package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-arrow-right.svg.js +4 -2
- package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-arrow-right.svg.js.map +1 -1
- package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-arrow-up-left.svg.js +4 -2
- package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-arrow-up-left.svg.js.map +1 -1
- package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-arrow-up-right.svg.js +4 -2
- package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-arrow-up-right.svg.js.map +1 -1
- package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-caret-down-circle.svg.js +4 -2
- package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-caret-down-circle.svg.js.map +1 -1
- package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-caret-left-circle.svg.js +4 -2
- package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-caret-left-circle.svg.js.map +1 -1
- package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-caret-right-circle.svg.js +4 -2
- package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-caret-right-circle.svg.js.map +1 -1
- package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-caret-up-circle.svg.js +4 -2
- package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-caret-up-circle.svg.js.map +1 -1
- package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-cloud.svg.js +2 -2
- package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-download.svg.js +4 -2
- package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-download.svg.js.map +1 -1
- package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-eye.svg.js +4 -2
- package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-eye.svg.js.map +1 -1
- package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-folder.svg.js +4 -2
- package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-folder.svg.js.map +1 -1
- package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-heart.svg.js +4 -2
- package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-heart.svg.js.map +1 -1
- package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-home.svg.js +4 -2
- package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-home.svg.js.map +1 -1
- package/lib/cjs/assets/svg/minus.svg.js +6 -9
- package/lib/cjs/assets/svg/minus.svg.js.map +1 -1
- package/lib/cjs/assets/svg/page-actions/duplicate_line.svg.js +5 -2
- package/lib/cjs/assets/svg/page-actions/duplicate_line.svg.js.map +1 -1
- package/lib/cjs/assets/svg/page-actions/trash_line.svg.js +5 -2
- package/lib/cjs/assets/svg/page-actions/trash_line.svg.js.map +1 -1
- package/lib/cjs/assets/svg/page_settings.svg.js +4 -4
- package/lib/cjs/assets/svg/plus.svg.js +5 -2
- package/lib/cjs/assets/svg/plus.svg.js.map +1 -1
- package/lib/cjs/assets/svg/presentation/attachment.svg.js +4 -2
- package/lib/cjs/assets/svg/presentation/attachment.svg.js.map +1 -1
- package/lib/cjs/assets/svg/presentation/download.svg.js +5 -2
- package/lib/cjs/assets/svg/presentation/download.svg.js.map +1 -1
- package/lib/cjs/assets/svg/presentation/enter_fullscreen.svg.js +8 -12
- package/lib/cjs/assets/svg/presentation/enter_fullscreen.svg.js.map +1 -1
- package/lib/cjs/assets/svg/presentation/exit_fullscreen.svg.js +8 -12
- package/lib/cjs/assets/svg/presentation/exit_fullscreen.svg.js.map +1 -1
- package/lib/cjs/assets/svg/presentation/eye.svg.js +6 -5
- package/lib/cjs/assets/svg/presentation/eye.svg.js.map +1 -1
- package/lib/cjs/assets/svg/presentation/key.svg.js +5 -3
- package/lib/cjs/assets/svg/presentation/key.svg.js.map +1 -1
- package/lib/cjs/assets/svg/presentation/pause.svg.js +4 -2
- package/lib/cjs/assets/svg/presentation/pause.svg.js.map +1 -1
- package/lib/cjs/assets/svg/presentation/pen.svg.js +4 -2
- package/lib/cjs/assets/svg/presentation/pen.svg.js.map +1 -1
- package/lib/cjs/assets/svg/presentation/play.svg.js +5 -3
- package/lib/cjs/assets/svg/presentation/play.svg.js.map +1 -1
- package/lib/cjs/assets/svg/presentation/print.svg.js +5 -2
- package/lib/cjs/assets/svg/presentation/print.svg.js.map +1 -1
- package/lib/cjs/assets/svg/presentation/share.svg.js +5 -2
- package/lib/cjs/assets/svg/presentation/share.svg.js.map +1 -1
- package/lib/cjs/assets/svg/rotate.svg.js +5 -2
- package/lib/cjs/assets/svg/rotate.svg.js.map +1 -1
- package/lib/cjs/assets/svg/settings/align_center.svg.js +5 -2
- package/lib/cjs/assets/svg/settings/align_center.svg.js.map +1 -1
- package/lib/cjs/assets/svg/settings/align_left.svg.js +5 -2
- package/lib/cjs/assets/svg/settings/align_left.svg.js.map +1 -1
- package/lib/cjs/assets/svg/settings/align_right.svg.js +5 -2
- package/lib/cjs/assets/svg/settings/align_right.svg.js.map +1 -1
- package/lib/cjs/assets/svg/settings/drag.svg.js +7 -26
- package/lib/cjs/assets/svg/settings/drag.svg.js.map +1 -1
- package/lib/cjs/assets/svg/settings/ellipse.svg.js +6 -5
- package/lib/cjs/assets/svg/settings/ellipse.svg.js.map +1 -1
- package/lib/cjs/assets/svg/settings/font_bold.svg.js +5 -2
- package/lib/cjs/assets/svg/settings/font_bold.svg.js.map +1 -1
- package/lib/cjs/assets/svg/settings/font_italic.svg.js +5 -2
- package/lib/cjs/assets/svg/settings/font_italic.svg.js.map +1 -1
- package/lib/cjs/assets/svg/settings/font_underline.svg.js +5 -2
- package/lib/cjs/assets/svg/settings/font_underline.svg.js.map +1 -1
- package/lib/cjs/assets/svg/settings/line.svg.js +8 -10
- package/lib/cjs/assets/svg/settings/line.svg.js.map +1 -1
- package/lib/cjs/assets/svg/settings/lock.svg.js +5 -2
- package/lib/cjs/assets/svg/settings/lock.svg.js.map +1 -1
- package/lib/cjs/assets/svg/settings/rectangle.svg.js +6 -4
- package/lib/cjs/assets/svg/settings/rectangle.svg.js.map +1 -1
- package/lib/cjs/assets/svg/settings/star.svg.js +6 -4
- package/lib/cjs/assets/svg/settings/star.svg.js.map +1 -1
- package/lib/cjs/assets/svg/settings/triangle.svg.js +6 -4
- package/lib/cjs/assets/svg/settings/triangle.svg.js.map +1 -1
- package/lib/cjs/assets/svg/settings/unlock.svg.js +5 -2
- package/lib/cjs/assets/svg/settings/unlock.svg.js.map +1 -1
- package/lib/cjs/assets/svg/settings.svg.js +3 -2
- package/lib/cjs/assets/svg/settings.svg.js.map +1 -1
- package/lib/cjs/assets/svg/settings_toggle.svg.js +7 -5
- package/lib/cjs/assets/svg/settings_toggle.svg.js.map +1 -1
- package/lib/cjs/assets/svg/slides.svg.js +8 -14
- package/lib/cjs/assets/svg/slides.svg.js.map +1 -1
- package/lib/cjs/assets/svg/star_rating.svg.js +5 -2
- package/lib/cjs/assets/svg/star_rating.svg.js.map +1 -1
- package/lib/cjs/assets/svg/toolbox/email.svg.js +5 -2
- package/lib/cjs/assets/svg/toolbox/email.svg.js.map +1 -1
- package/lib/cjs/assets/svg/toolbox/header.svg.js +5 -2
- package/lib/cjs/assets/svg/toolbox/header.svg.js.map +1 -1
- package/lib/cjs/assets/svg/toolbox/icon.svg.js +6 -11
- package/lib/cjs/assets/svg/toolbox/icon.svg.js.map +1 -1
- package/lib/cjs/assets/svg/toolbox/image.svg.js +7 -7
- package/lib/cjs/assets/svg/toolbox/label.svg.js +4 -2
- package/lib/cjs/assets/svg/toolbox/label.svg.js.map +1 -1
- package/lib/cjs/assets/svg/toolbox/multiple_choice.svg.js +6 -5
- package/lib/cjs/assets/svg/toolbox/multiple_choice.svg.js.map +1 -1
- package/lib/cjs/assets/svg/toolbox/shapes.svg.js +7 -10
- package/lib/cjs/assets/svg/toolbox/shapes.svg.js.map +1 -1
- package/lib/cjs/assets/svg/toolbox/single_choice.svg.js +5 -2
- package/lib/cjs/assets/svg/toolbox/single_choice.svg.js.map +1 -1
- package/lib/cjs/assets/svg/toolbox/star.svg.js +5 -2
- package/lib/cjs/assets/svg/toolbox/star.svg.js.map +1 -1
- package/lib/cjs/assets/svg/toolbox/table.svg.js +5 -2
- package/lib/cjs/assets/svg/toolbox/table.svg.js.map +1 -1
- package/lib/cjs/assets/svg/toolbox/text.svg.js +5 -2
- package/lib/cjs/assets/svg/toolbox/text.svg.js.map +1 -1
- package/lib/cjs/assets/svg/toolbox/text_element.svg.js +5 -2
- package/lib/cjs/assets/svg/toolbox/text_element.svg.js.map +1 -1
- package/lib/cjs/assets/svg/trash.svg.js +5 -2
- package/lib/cjs/assets/svg/trash.svg.js.map +1 -1
- package/lib/cjs/components/AlignmentGuides.js +28 -18
- package/lib/cjs/components/AlignmentGuides.js.map +1 -1
- package/lib/cjs/components/Builder/ContextMenu.js +4 -1
- package/lib/cjs/components/Builder/ContextMenu.js.map +1 -1
- package/lib/cjs/components/Builder/DraggableLayer.js +40 -0
- package/lib/cjs/components/Builder/DraggableLayer.js.map +1 -0
- package/lib/cjs/components/Builder/Element.js +7 -3
- package/lib/cjs/components/Builder/Element.js.map +1 -1
- package/lib/cjs/components/Builder/Page.js +58 -65
- package/lib/cjs/components/Builder/Page.js.map +1 -1
- package/lib/cjs/components/Builder/Scene.js +33 -255
- package/lib/cjs/components/Builder/Scene.js.map +1 -1
- package/lib/cjs/components/Builder/SearchInput.js +3 -1
- package/lib/cjs/components/Builder/SearchInput.js.map +1 -1
- package/lib/cjs/components/Builder/SelectionBox.js +48 -0
- package/lib/cjs/components/Builder/SelectionBox.js.map +1 -0
- package/lib/cjs/components/DraggableItem/DraggableItem.js +78 -135
- package/lib/cjs/components/DraggableItem/DraggableItem.js.map +1 -1
- package/lib/cjs/components/DraggableItem/DraggableItemActions.js +69 -29
- package/lib/cjs/components/DraggableItem/DraggableItemActions.js.map +1 -1
- package/lib/cjs/components/DraggableItem/DraggableItemLayer.js +96 -220
- package/lib/cjs/components/DraggableItem/DraggableItemLayer.js.map +1 -1
- package/lib/cjs/components/PageItemResizer.js +37 -43
- package/lib/cjs/components/PageItemResizer.js.map +1 -1
- package/lib/cjs/components/Panels/AllSlidesPanel/AllSlidesPanel.js +1 -3
- package/lib/cjs/components/Panels/AllSlidesPanel/AllSlidesPanel.js.map +1 -1
- package/lib/cjs/components/Panels/AllSlidesPanel/PageList.js +0 -6
- package/lib/cjs/components/Panels/AllSlidesPanel/PageList.js.map +1 -1
- package/lib/cjs/components/Panels/LeftPanel/LeftPanel.js +1 -4
- package/lib/cjs/components/Panels/LeftPanel/LeftPanel.js.map +1 -1
- package/lib/cjs/components/Panels/LeftPanel/LeftPanelOpener.js +6 -7
- package/lib/cjs/components/Panels/LeftPanel/LeftPanelOpener.js.map +1 -1
- package/lib/cjs/components/Panels/RightPanel/RightPanel.js +7 -7
- package/lib/cjs/components/Panels/RightPanel/RightPanel.js.map +1 -1
- package/lib/cjs/components/Panels/RightPanel/RightPanelToggler.js +9 -10
- package/lib/cjs/components/Panels/RightPanel/RightPanelToggler.js.map +1 -1
- package/lib/cjs/components/Panels/SlidesPanel/SlidesPanel.js +1 -3
- package/lib/cjs/components/Panels/SlidesPanel/SlidesPanel.js.map +1 -1
- package/lib/cjs/components/Panels/SlidesPanel/SlidesPanelToggler.js +8 -6
- package/lib/cjs/components/Panels/SlidesPanel/SlidesPanelToggler.js.map +1 -1
- package/lib/cjs/components/ReportItemsWrapper.js +5 -11
- package/lib/cjs/components/ReportItemsWrapper.js.map +1 -1
- package/lib/cjs/components/Settings/PageLayer/LayerDragOverlay.js +2 -4
- package/lib/cjs/components/Settings/PageLayer/LayerDragOverlay.js.map +1 -1
- package/lib/cjs/components/Settings/PageLayer/LayerItem.js +12 -7
- package/lib/cjs/components/Settings/PageLayer/LayerItem.js.map +1 -1
- package/lib/cjs/components/Settings/PageLayer/PageLayer.js +2 -4
- package/lib/cjs/components/Settings/PageLayer/PageLayer.js.map +1 -1
- package/lib/cjs/components/TextEditor/CustomToolbar/CustomToolbarWrapper.js +3 -8
- package/lib/cjs/components/TextEditor/CustomToolbar/CustomToolbarWrapper.js.map +1 -1
- package/lib/cjs/constants/texts.js +0 -1
- package/lib/cjs/constants/texts.js.map +1 -1
- package/lib/cjs/contexts/BuilderContext.js +47 -23
- package/lib/cjs/contexts/BuilderContext.js.map +1 -1
- package/lib/cjs/styles/_jfDarkTheme.scss +0 -5
- package/lib/cjs/styles/_jfPrint.scss +0 -4
- package/lib/cjs/styles/_jfReportsPages.scss +12 -3
- package/lib/cjs/styles/_jfReportsSVG.scss +6 -6
- package/lib/cjs/styles/_jfSearchInput.scss +0 -2
- package/lib/cjs/utils/functions.js +129 -57
- package/lib/cjs/utils/functions.js.map +1 -1
- package/lib/cjs/utils/hooks.js +37 -0
- package/lib/cjs/utils/hooks.js.map +1 -1
- package/lib/cjs/utils/useKeyboardActions.js +263 -0
- package/lib/cjs/utils/useKeyboardActions.js.map +1 -0
- package/lib/cjs/utils/useMarqueeSelection.js +156 -0
- package/lib/cjs/utils/useMarqueeSelection.js.map +1 -0
- package/lib/esm/assets/search.svg.js +5 -2
- package/lib/esm/assets/search.svg.js.map +1 -1
- package/lib/esm/assets/svg/all_slides.svg.js +9 -29
- package/lib/esm/assets/svg/all_slides.svg.js.map +1 -1
- package/lib/esm/assets/svg/close.svg.js +4 -2
- package/lib/esm/assets/svg/close.svg.js.map +1 -1
- package/lib/esm/assets/svg/customize.svg.js +4 -2
- package/lib/esm/assets/svg/customize.svg.js.map +1 -1
- package/lib/esm/assets/svg/duplicate.svg.js +5 -2
- package/lib/esm/assets/svg/duplicate.svg.js.map +1 -1
- package/lib/esm/assets/svg/fit_screen.svg.js +7 -7
- package/lib/esm/assets/svg/heart_rating.svg.js +5 -3
- package/lib/esm/assets/svg/heart_rating.svg.js.map +1 -1
- package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-arrow-down-left.svg.js +4 -2
- package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-arrow-down-left.svg.js.map +1 -1
- package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-arrow-down-right.svg.js +4 -2
- package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-arrow-down-right.svg.js.map +1 -1
- package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-arrow-down.svg.js +4 -2
- package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-arrow-down.svg.js.map +1 -1
- package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-arrow-left.svg.js +4 -2
- package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-arrow-left.svg.js.map +1 -1
- package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-arrow-right.svg.js +4 -2
- package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-arrow-right.svg.js.map +1 -1
- package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-arrow-up-left.svg.js +4 -2
- package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-arrow-up-left.svg.js.map +1 -1
- package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-arrow-up-right.svg.js +4 -2
- package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-arrow-up-right.svg.js.map +1 -1
- package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-caret-down-circle.svg.js +4 -2
- package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-caret-down-circle.svg.js.map +1 -1
- package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-caret-left-circle.svg.js +4 -2
- package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-caret-left-circle.svg.js.map +1 -1
- package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-caret-right-circle.svg.js +4 -2
- package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-caret-right-circle.svg.js.map +1 -1
- package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-caret-up-circle.svg.js +4 -2
- package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-caret-up-circle.svg.js.map +1 -1
- package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-cloud.svg.js +2 -2
- package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-download.svg.js +4 -2
- package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-download.svg.js.map +1 -1
- package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-eye.svg.js +4 -2
- package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-eye.svg.js.map +1 -1
- package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-folder.svg.js +4 -2
- package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-folder.svg.js.map +1 -1
- package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-heart.svg.js +4 -2
- package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-heart.svg.js.map +1 -1
- package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-home.svg.js +4 -2
- package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-home.svg.js.map +1 -1
- package/lib/esm/assets/svg/minus.svg.js +6 -9
- package/lib/esm/assets/svg/minus.svg.js.map +1 -1
- package/lib/esm/assets/svg/page-actions/duplicate_line.svg.js +5 -2
- package/lib/esm/assets/svg/page-actions/duplicate_line.svg.js.map +1 -1
- package/lib/esm/assets/svg/page-actions/trash_line.svg.js +5 -2
- package/lib/esm/assets/svg/page-actions/trash_line.svg.js.map +1 -1
- package/lib/esm/assets/svg/page_settings.svg.js +4 -4
- package/lib/esm/assets/svg/plus.svg.js +5 -2
- package/lib/esm/assets/svg/plus.svg.js.map +1 -1
- package/lib/esm/assets/svg/presentation/attachment.svg.js +4 -2
- package/lib/esm/assets/svg/presentation/attachment.svg.js.map +1 -1
- package/lib/esm/assets/svg/presentation/download.svg.js +5 -2
- package/lib/esm/assets/svg/presentation/download.svg.js.map +1 -1
- package/lib/esm/assets/svg/presentation/enter_fullscreen.svg.js +8 -12
- package/lib/esm/assets/svg/presentation/enter_fullscreen.svg.js.map +1 -1
- package/lib/esm/assets/svg/presentation/exit_fullscreen.svg.js +8 -12
- package/lib/esm/assets/svg/presentation/exit_fullscreen.svg.js.map +1 -1
- package/lib/esm/assets/svg/presentation/eye.svg.js +6 -5
- package/lib/esm/assets/svg/presentation/eye.svg.js.map +1 -1
- package/lib/esm/assets/svg/presentation/key.svg.js +5 -3
- package/lib/esm/assets/svg/presentation/key.svg.js.map +1 -1
- package/lib/esm/assets/svg/presentation/pause.svg.js +4 -2
- package/lib/esm/assets/svg/presentation/pause.svg.js.map +1 -1
- package/lib/esm/assets/svg/presentation/pen.svg.js +4 -2
- package/lib/esm/assets/svg/presentation/pen.svg.js.map +1 -1
- package/lib/esm/assets/svg/presentation/play.svg.js +5 -3
- package/lib/esm/assets/svg/presentation/play.svg.js.map +1 -1
- package/lib/esm/assets/svg/presentation/print.svg.js +5 -2
- package/lib/esm/assets/svg/presentation/print.svg.js.map +1 -1
- package/lib/esm/assets/svg/presentation/share.svg.js +5 -2
- package/lib/esm/assets/svg/presentation/share.svg.js.map +1 -1
- package/lib/esm/assets/svg/rotate.svg.js +5 -2
- package/lib/esm/assets/svg/rotate.svg.js.map +1 -1
- package/lib/esm/assets/svg/settings/align_center.svg.js +5 -2
- package/lib/esm/assets/svg/settings/align_center.svg.js.map +1 -1
- package/lib/esm/assets/svg/settings/align_left.svg.js +5 -2
- package/lib/esm/assets/svg/settings/align_left.svg.js.map +1 -1
- package/lib/esm/assets/svg/settings/align_right.svg.js +5 -2
- package/lib/esm/assets/svg/settings/align_right.svg.js.map +1 -1
- package/lib/esm/assets/svg/settings/drag.svg.js +7 -26
- package/lib/esm/assets/svg/settings/drag.svg.js.map +1 -1
- package/lib/esm/assets/svg/settings/ellipse.svg.js +6 -5
- package/lib/esm/assets/svg/settings/ellipse.svg.js.map +1 -1
- package/lib/esm/assets/svg/settings/font_bold.svg.js +5 -2
- package/lib/esm/assets/svg/settings/font_bold.svg.js.map +1 -1
- package/lib/esm/assets/svg/settings/font_italic.svg.js +5 -2
- package/lib/esm/assets/svg/settings/font_italic.svg.js.map +1 -1
- package/lib/esm/assets/svg/settings/font_underline.svg.js +5 -2
- package/lib/esm/assets/svg/settings/font_underline.svg.js.map +1 -1
- package/lib/esm/assets/svg/settings/line.svg.js +8 -10
- package/lib/esm/assets/svg/settings/line.svg.js.map +1 -1
- package/lib/esm/assets/svg/settings/lock.svg.js +5 -2
- package/lib/esm/assets/svg/settings/lock.svg.js.map +1 -1
- package/lib/esm/assets/svg/settings/rectangle.svg.js +6 -4
- package/lib/esm/assets/svg/settings/rectangle.svg.js.map +1 -1
- package/lib/esm/assets/svg/settings/star.svg.js +6 -4
- package/lib/esm/assets/svg/settings/star.svg.js.map +1 -1
- package/lib/esm/assets/svg/settings/triangle.svg.js +6 -4
- package/lib/esm/assets/svg/settings/triangle.svg.js.map +1 -1
- package/lib/esm/assets/svg/settings/unlock.svg.js +5 -2
- package/lib/esm/assets/svg/settings/unlock.svg.js.map +1 -1
- package/lib/esm/assets/svg/settings.svg.js +3 -2
- package/lib/esm/assets/svg/settings.svg.js.map +1 -1
- package/lib/esm/assets/svg/settings_toggle.svg.js +7 -5
- package/lib/esm/assets/svg/settings_toggle.svg.js.map +1 -1
- package/lib/esm/assets/svg/slides.svg.js +8 -14
- package/lib/esm/assets/svg/slides.svg.js.map +1 -1
- package/lib/esm/assets/svg/star_rating.svg.js +5 -2
- package/lib/esm/assets/svg/star_rating.svg.js.map +1 -1
- package/lib/esm/assets/svg/toolbox/email.svg.js +5 -2
- package/lib/esm/assets/svg/toolbox/email.svg.js.map +1 -1
- package/lib/esm/assets/svg/toolbox/header.svg.js +5 -2
- package/lib/esm/assets/svg/toolbox/header.svg.js.map +1 -1
- package/lib/esm/assets/svg/toolbox/icon.svg.js +6 -11
- package/lib/esm/assets/svg/toolbox/icon.svg.js.map +1 -1
- package/lib/esm/assets/svg/toolbox/image.svg.js +7 -7
- package/lib/esm/assets/svg/toolbox/label.svg.js +4 -2
- package/lib/esm/assets/svg/toolbox/label.svg.js.map +1 -1
- package/lib/esm/assets/svg/toolbox/multiple_choice.svg.js +6 -5
- package/lib/esm/assets/svg/toolbox/multiple_choice.svg.js.map +1 -1
- package/lib/esm/assets/svg/toolbox/shapes.svg.js +7 -10
- package/lib/esm/assets/svg/toolbox/shapes.svg.js.map +1 -1
- package/lib/esm/assets/svg/toolbox/single_choice.svg.js +5 -2
- package/lib/esm/assets/svg/toolbox/single_choice.svg.js.map +1 -1
- package/lib/esm/assets/svg/toolbox/star.svg.js +5 -2
- package/lib/esm/assets/svg/toolbox/star.svg.js.map +1 -1
- package/lib/esm/assets/svg/toolbox/table.svg.js +5 -2
- package/lib/esm/assets/svg/toolbox/table.svg.js.map +1 -1
- package/lib/esm/assets/svg/toolbox/text.svg.js +5 -2
- package/lib/esm/assets/svg/toolbox/text.svg.js.map +1 -1
- package/lib/esm/assets/svg/toolbox/text_element.svg.js +5 -2
- package/lib/esm/assets/svg/toolbox/text_element.svg.js.map +1 -1
- package/lib/esm/assets/svg/trash.svg.js +5 -2
- package/lib/esm/assets/svg/trash.svg.js.map +1 -1
- package/lib/esm/components/AlignmentGuides.js +28 -18
- package/lib/esm/components/AlignmentGuides.js.map +1 -1
- package/lib/esm/components/Builder/ContextMenu.js +4 -1
- package/lib/esm/components/Builder/ContextMenu.js.map +1 -1
- package/lib/esm/components/Builder/DraggableLayer.js +34 -0
- package/lib/esm/components/Builder/DraggableLayer.js.map +1 -0
- package/lib/esm/components/Builder/Element.js +7 -3
- package/lib/esm/components/Builder/Element.js.map +1 -1
- package/lib/esm/components/Builder/Page.js +60 -67
- package/lib/esm/components/Builder/Page.js.map +1 -1
- package/lib/esm/components/Builder/Scene.js +35 -257
- package/lib/esm/components/Builder/Scene.js.map +1 -1
- package/lib/esm/components/Builder/SearchInput.js +3 -1
- package/lib/esm/components/Builder/SearchInput.js.map +1 -1
- package/lib/esm/components/Builder/SelectionBox.js +42 -0
- package/lib/esm/components/Builder/SelectionBox.js.map +1 -0
- package/lib/esm/components/DraggableItem/DraggableItem.js +80 -137
- package/lib/esm/components/DraggableItem/DraggableItem.js.map +1 -1
- package/lib/esm/components/DraggableItem/DraggableItemActions.js +72 -28
- package/lib/esm/components/DraggableItem/DraggableItemActions.js.map +1 -1
- package/lib/esm/components/DraggableItem/DraggableItemLayer.js +99 -222
- package/lib/esm/components/DraggableItem/DraggableItemLayer.js.map +1 -1
- package/lib/esm/components/PageItemResizer.js +38 -44
- package/lib/esm/components/PageItemResizer.js.map +1 -1
- package/lib/esm/components/Panels/AllSlidesPanel/AllSlidesPanel.js +2 -4
- package/lib/esm/components/Panels/AllSlidesPanel/AllSlidesPanel.js.map +1 -1
- package/lib/esm/components/Panels/AllSlidesPanel/PageList.js +0 -6
- package/lib/esm/components/Panels/AllSlidesPanel/PageList.js.map +1 -1
- package/lib/esm/components/Panels/LeftPanel/LeftPanel.js +3 -6
- package/lib/esm/components/Panels/LeftPanel/LeftPanel.js.map +1 -1
- package/lib/esm/components/Panels/LeftPanel/LeftPanelOpener.js +6 -7
- package/lib/esm/components/Panels/LeftPanel/LeftPanelOpener.js.map +1 -1
- package/lib/esm/components/Panels/RightPanel/RightPanel.js +7 -7
- package/lib/esm/components/Panels/RightPanel/RightPanel.js.map +1 -1
- package/lib/esm/components/Panels/RightPanel/RightPanelToggler.js +9 -10
- package/lib/esm/components/Panels/RightPanel/RightPanelToggler.js.map +1 -1
- package/lib/esm/components/Panels/SlidesPanel/SlidesPanel.js +2 -4
- package/lib/esm/components/Panels/SlidesPanel/SlidesPanel.js.map +1 -1
- package/lib/esm/components/Panels/SlidesPanel/SlidesPanelToggler.js +8 -6
- package/lib/esm/components/Panels/SlidesPanel/SlidesPanelToggler.js.map +1 -1
- package/lib/esm/components/ReportItemsWrapper.js +5 -11
- package/lib/esm/components/ReportItemsWrapper.js.map +1 -1
- package/lib/esm/components/Settings/PageLayer/LayerDragOverlay.js +2 -4
- package/lib/esm/components/Settings/PageLayer/LayerDragOverlay.js.map +1 -1
- package/lib/esm/components/Settings/PageLayer/LayerItem.js +12 -7
- package/lib/esm/components/Settings/PageLayer/LayerItem.js.map +1 -1
- package/lib/esm/components/Settings/PageLayer/PageLayer.js +2 -4
- package/lib/esm/components/Settings/PageLayer/PageLayer.js.map +1 -1
- package/lib/esm/components/TextEditor/CustomToolbar/CustomToolbarWrapper.js +3 -8
- package/lib/esm/components/TextEditor/CustomToolbar/CustomToolbarWrapper.js.map +1 -1
- package/lib/esm/constants/texts.js +0 -1
- package/lib/esm/constants/texts.js.map +1 -1
- package/lib/esm/contexts/BuilderContext.js +47 -23
- package/lib/esm/contexts/BuilderContext.js.map +1 -1
- package/lib/esm/styles/_jfDarkTheme.scss +0 -5
- package/lib/esm/styles/_jfPrint.scss +0 -4
- package/lib/esm/styles/_jfReportsPages.scss +12 -3
- package/lib/esm/styles/_jfReportsSVG.scss +6 -6
- package/lib/esm/styles/_jfSearchInput.scss +0 -2
- package/lib/esm/utils/functions.js +126 -56
- package/lib/esm/utils/functions.js.map +1 -1
- package/lib/esm/utils/hooks.js +37 -1
- package/lib/esm/utils/hooks.js.map +1 -1
- package/lib/esm/utils/useKeyboardActions.js +261 -0
- package/lib/esm/utils/useKeyboardActions.js.map +1 -0
- package/lib/esm/utils/useMarqueeSelection.js +154 -0
- package/lib/esm/utils/useMarqueeSelection.js.map +1 -0
- package/package.json +11 -7
|
@@ -1,33 +1,13 @@
|
|
|
1
|
-
import 'core-js/modules/es.array.concat.js';
|
|
2
|
-
import 'core-js/modules/es.array.find.js';
|
|
3
|
-
import 'core-js/modules/es.array.find-index.js';
|
|
4
1
|
import 'core-js/modules/es.array.map.js';
|
|
5
|
-
import '
|
|
6
|
-
import 'core-js/modules/es.object.keys.js';
|
|
7
|
-
import 'core-js/modules/web.dom-collections.for-each.js';
|
|
8
|
-
import { memo } from 'react';
|
|
2
|
+
import { memo, useMemo, useCallback } from 'react';
|
|
9
3
|
import PropTypes from 'prop-types';
|
|
10
|
-
import memoizeOne from 'memoize-one';
|
|
11
|
-
import { useDragLayer } from 'react-dnd';
|
|
12
4
|
import ReportItemRenderer from '../Builder/ReportItemRenderer.js';
|
|
13
|
-
import {
|
|
5
|
+
import { getCorrectDroppedOffsetValue, getMatchesForItem, getCoordinatesFromMatches } from '../../utils/functions.js';
|
|
14
6
|
import ItemPositioner from '../ItemPositioner.js';
|
|
15
7
|
import { useBuilderStore } from '../../contexts/BuilderContext.js';
|
|
16
8
|
import { usePropStore } from '../../contexts/PropContext.js';
|
|
17
|
-
import
|
|
18
|
-
import {
|
|
19
|
-
|
|
20
|
-
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
21
|
-
|
|
22
|
-
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
23
|
-
|
|
24
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
25
|
-
|
|
26
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
27
|
-
|
|
28
|
-
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
29
|
-
|
|
30
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
9
|
+
import { useSelectedElements } from '../../utils/hooks.js';
|
|
10
|
+
import { jsx } from 'react/jsx-runtime';
|
|
31
11
|
|
|
32
12
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
33
13
|
|
|
@@ -35,244 +15,141 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
35
15
|
|
|
36
16
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
37
17
|
|
|
38
|
-
var
|
|
39
|
-
var
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
left: x,
|
|
43
|
-
pointerEvents: 'none',
|
|
44
|
-
position: 'fixed',
|
|
45
|
-
top: y,
|
|
46
|
-
zIndex: 100
|
|
47
|
-
};
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
var getDraggedItem = function getDraggedItem(_ref2, item) {
|
|
51
|
-
var _ref2$defaultItem = _ref2.defaultItem,
|
|
52
|
-
defaultItem = _ref2$defaultItem === void 0 ? {} : _ref2$defaultItem,
|
|
53
|
-
details = _ref2.details;
|
|
18
|
+
var getDraggedItem = function getDraggedItem(_ref, item) {
|
|
19
|
+
var _ref$defaultItem = _ref.defaultItem,
|
|
20
|
+
defaultItem = _ref$defaultItem === void 0 ? {} : _ref$defaultItem,
|
|
21
|
+
details = _ref.details;
|
|
54
22
|
return _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, defaultItem), details), item), {}, {
|
|
55
23
|
id: 'temp'
|
|
56
24
|
});
|
|
57
25
|
};
|
|
58
26
|
|
|
59
|
-
var
|
|
60
|
-
var
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
if (acc) {
|
|
69
|
-
return acc;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
return curr.items.find(function (el) {
|
|
73
|
-
return el.id === _i;
|
|
74
|
-
});
|
|
75
|
-
}, undefined);
|
|
76
|
-
|
|
77
|
-
var defItem = _acceptedItems[_item.itemType] && _acceptedItems[_item.itemType].defaultItem;
|
|
78
|
-
return _objectSpread(_objectSpread({}, defItem), _item);
|
|
79
|
-
});
|
|
80
|
-
return items;
|
|
81
|
-
});
|
|
82
|
-
|
|
83
|
-
function getItemStyles(initialOffset, currentOffset, ref, pageGuides, item, zoom) {
|
|
84
|
-
if (ref.current) {
|
|
85
|
-
var dropTargetPosition = ref.current.getBoundingClientRect();
|
|
86
|
-
var finalX = currentOffset.x,
|
|
87
|
-
finalY = currentOffset.y;
|
|
88
|
-
var initialX = initialOffset.x,
|
|
89
|
-
initialY = initialOffset.y;
|
|
90
|
-
var newYposition = finalY > initialY ? initialY + (finalY - initialY) - dropTargetPosition.top : initialY - (initialY - finalY) - dropTargetPosition.top;
|
|
91
|
-
var newXposition = finalX > initialX ? initialX + (finalX - initialX) - dropTargetPosition.left : initialX - (initialX - finalX) - dropTargetPosition.left;
|
|
92
|
-
|
|
93
|
-
var newItem = _objectSpread(_objectSpread({}, item), {}, {
|
|
94
|
-
left: newXposition / zoom,
|
|
95
|
-
top: newYposition / zoom
|
|
96
|
-
});
|
|
97
|
-
|
|
98
|
-
var _guides = _objectSpread(_objectSpread({}, pageGuides), {}, _defineProperty({}, item.id, _objectSpread(_objectSpread({}, pageGuides[item.id]), {}, {
|
|
99
|
-
x: calculateGuidePositions(newItem, 'x', zoom),
|
|
100
|
-
y: calculateGuidePositions(newItem, 'y', zoom)
|
|
101
|
-
})));
|
|
102
|
-
|
|
103
|
-
var match = proximityListener(item.id, _guides);
|
|
104
|
-
var newActiveBoxLeft = newXposition;
|
|
105
|
-
var newActiveBoxTop = newYposition;
|
|
106
|
-
var haveMatch = Object.keys(match).length > 0;
|
|
107
|
-
var haveXMatch = haveMatch && match.x;
|
|
108
|
-
var haveYMatch = haveMatch && match.y;
|
|
109
|
-
Object.keys(match).forEach(function (axis) {
|
|
110
|
-
var _match$axis = match[axis],
|
|
111
|
-
activeBoxGuides = _match$axis.activeBoxGuides,
|
|
112
|
-
matchedArray = _match$axis.matchedArray,
|
|
113
|
-
proximity = _match$axis.proximity;
|
|
114
|
-
var activeBoxProximityIndex = proximity.activeBoxIndex;
|
|
115
|
-
var matchedBoxProximityIndex = proximity.matchedBoxIndex;
|
|
116
|
-
|
|
117
|
-
if (axis === 'x') {
|
|
118
|
-
if (activeBoxGuides[activeBoxProximityIndex] > matchedArray[matchedBoxProximityIndex]) {
|
|
119
|
-
newActiveBoxLeft = newItem.left - proximity.value;
|
|
120
|
-
} else {
|
|
121
|
-
newActiveBoxLeft = newItem.left + proximity.value;
|
|
122
|
-
}
|
|
123
|
-
} else if (activeBoxGuides[activeBoxProximityIndex] > matchedArray[matchedBoxProximityIndex]) {
|
|
124
|
-
newActiveBoxTop = newItem.top - proximity.value;
|
|
125
|
-
} else {
|
|
126
|
-
newActiveBoxTop = newItem.top + proximity.value;
|
|
127
|
-
}
|
|
128
|
-
});
|
|
129
|
-
return {
|
|
130
|
-
x: newActiveBoxLeft * (haveXMatch ? zoom : 1) + dropTargetPosition.left,
|
|
131
|
-
y: newActiveBoxTop * (haveYMatch ? zoom : 1) + dropTargetPosition.top
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
var DraggableItemLayer = function DraggableItemLayer(_ref3) {
|
|
137
|
-
var _ref3$guides = _ref3.guides,
|
|
138
|
-
guides = _ref3$guides === void 0 ? {} : _ref3$guides,
|
|
139
|
-
_ref3$pageRefs = _ref3.pageRefs,
|
|
140
|
-
pageRefs = _ref3$pageRefs === void 0 ? {} : _ref3$pageRefs,
|
|
141
|
-
_ref3$pages = _ref3.pages,
|
|
142
|
-
pages = _ref3$pages === void 0 ? [] : _ref3$pages;
|
|
143
|
-
|
|
144
|
-
var _useDragLayer = useDragLayer(function (monitor) {
|
|
145
|
-
return {
|
|
146
|
-
currentOffset: monitor.getSourceClientOffset(),
|
|
147
|
-
initialOffset: monitor.getInitialSourceClientOffset(),
|
|
148
|
-
isDragging: monitor.isDragging(),
|
|
149
|
-
item: monitor.getItem(),
|
|
150
|
-
itemType: monitor.getItemType()
|
|
151
|
-
};
|
|
152
|
-
}),
|
|
153
|
-
currentOffset = _useDragLayer.currentOffset,
|
|
154
|
-
initialOffset = _useDragLayer.initialOffset,
|
|
155
|
-
isDragging = _useDragLayer.isDragging,
|
|
156
|
-
item = _useDragLayer.item;
|
|
157
|
-
|
|
158
|
-
var activeElement = useBuilderStore(function (state) {
|
|
159
|
-
return state.activeElement;
|
|
160
|
-
});
|
|
27
|
+
var DraggableItemLayer = function DraggableItemLayer(_ref2) {
|
|
28
|
+
var _ref2$collectedProps = _ref2.collectedProps,
|
|
29
|
+
collectedProps = _ref2$collectedProps === void 0 ? {} : _ref2$collectedProps,
|
|
30
|
+
_ref2$pageRefs = _ref2.pageRefs,
|
|
31
|
+
pageRefs = _ref2$pageRefs === void 0 ? {} : _ref2$pageRefs;
|
|
32
|
+
var currentOffset = collectedProps.currentOffset,
|
|
33
|
+
initialOffset = collectedProps.initialOffset,
|
|
34
|
+
isDragging = collectedProps.isDragging,
|
|
35
|
+
item = collectedProps.item;
|
|
161
36
|
var zoom = useBuilderStore(function (state) {
|
|
162
37
|
return state.zoom;
|
|
163
38
|
});
|
|
39
|
+
var guides = useBuilderStore(function (state) {
|
|
40
|
+
return state.guides;
|
|
41
|
+
});
|
|
164
42
|
var acceptedItems = usePropStore(function (state) {
|
|
165
43
|
return state.acceptedItems;
|
|
166
44
|
});
|
|
167
45
|
var itemAccessor = usePropStore(function (state) {
|
|
168
46
|
return state.itemAccessor;
|
|
169
47
|
});
|
|
48
|
+
var referenceItem = useMemo(function () {
|
|
49
|
+
var _item = item.id ? item : getDraggedItem(acceptedItems[item.itemType], item); // for a element that is dragging to the left panel
|
|
50
|
+
|
|
170
51
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
}
|
|
52
|
+
if (!_item.pageID) {
|
|
53
|
+
var element = document.elementFromPoint(currentOffset.x, currentOffset.y);
|
|
174
54
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
55
|
+
if (element && element.closest('.jfReport-page')) {
|
|
56
|
+
var _pageID = element.closest('.jfReport-page').getAttribute('data-id');
|
|
57
|
+
|
|
58
|
+
return _objectSpread(_objectSpread({}, _item), {}, {
|
|
59
|
+
pageID: _pageID
|
|
60
|
+
});
|
|
61
|
+
}
|
|
178
62
|
}
|
|
179
63
|
|
|
180
|
-
return
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
64
|
+
return _item;
|
|
65
|
+
}, [item, acceptedItems, currentOffset.x, currentOffset.y]);
|
|
66
|
+
var pageID = referenceItem.pageID;
|
|
67
|
+
var refCoords = useMemo(function () {
|
|
68
|
+
if (pageID) {
|
|
69
|
+
var dropTargetPosition = pageRefs[pageID].current.getBoundingClientRect();
|
|
70
|
+
var coords = getCorrectDroppedOffsetValue(currentOffset, initialOffset, dropTargetPosition, zoom);
|
|
185
71
|
|
|
186
|
-
|
|
187
|
-
pageID = draggedItem.pageID;
|
|
188
|
-
} else {
|
|
189
|
-
draggedItem = getMemoizedDraggedItem(acceptedItems[item.itemType], item);
|
|
190
|
-
}
|
|
72
|
+
var newItem = _objectSpread(_objectSpread({}, referenceItem), coords);
|
|
191
73
|
|
|
192
|
-
|
|
74
|
+
var newMatches = getMatchesForItem(newItem, guides, zoom);
|
|
193
75
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
76
|
+
var _getCoordinatesFromMa = getCoordinatesFromMatches(newItem, newMatches, zoom),
|
|
77
|
+
left = _getCoordinatesFromMa.left,
|
|
78
|
+
top = _getCoordinatesFromMa.top;
|
|
197
79
|
|
|
198
|
-
|
|
199
|
-
|
|
80
|
+
return {
|
|
81
|
+
x: left * zoom + dropTargetPosition.left,
|
|
82
|
+
y: top * zoom + dropTargetPosition.top
|
|
83
|
+
};
|
|
200
84
|
}
|
|
201
|
-
}
|
|
202
85
|
|
|
203
|
-
|
|
204
|
-
var itemStyle = {}; // No page
|
|
205
|
-
|
|
206
|
-
if (!ref || !ref.current) {
|
|
207
|
-
itemStyle = {
|
|
86
|
+
return {
|
|
208
87
|
x: currentOffset.x,
|
|
209
88
|
y: currentOffset.y
|
|
210
89
|
};
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
var
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
90
|
+
}, [currentOffset, initialOffset, referenceItem, pageID, pageRefs, zoom, guides]);
|
|
91
|
+
var getItemStyle = useCallback(function (_ref3, _ref4) {
|
|
92
|
+
var x = _ref3.x,
|
|
93
|
+
y = _ref3.y;
|
|
94
|
+
var height = _ref4.height,
|
|
95
|
+
width = _ref4.width;
|
|
96
|
+
return {
|
|
97
|
+
cursor: 'grabbing',
|
|
98
|
+
height: height,
|
|
99
|
+
left: x,
|
|
100
|
+
outlineColor: '#4277ff',
|
|
101
|
+
pointerEvents: 'none',
|
|
102
|
+
position: 'fixed',
|
|
103
|
+
top: y,
|
|
104
|
+
transform: "scale(".concat(zoom, ")"),
|
|
105
|
+
transformOrigin: '0 0',
|
|
106
|
+
width: width,
|
|
107
|
+
zIndex: 100
|
|
108
|
+
};
|
|
109
|
+
}, [zoom]);
|
|
110
|
+
var selectedElements = useSelectedElements();
|
|
111
|
+
var hasActiveItems = selectedElements.length > 0; // for a element is added from the left panel
|
|
112
|
+
|
|
113
|
+
var activeElements = hasActiveItems ? selectedElements : [referenceItem];
|
|
114
|
+
return activeElements.map(function (activeItem) {
|
|
115
|
+
var coords = hasActiveItems ? {
|
|
116
|
+
x: refCoords.x - (referenceItem.left - activeItem.left) * zoom,
|
|
117
|
+
y: refCoords.y - (referenceItem.top - activeItem.top) * zoom
|
|
118
|
+
} : refCoords;
|
|
119
|
+
var exactItem = hasActiveItems ? activeItem : referenceItem;
|
|
120
|
+
return /*#__PURE__*/jsx(ItemPositioner, {
|
|
121
|
+
classNames: "reportItem isDraggingLayerElement",
|
|
122
|
+
style: getItemStyle(coords, exactItem),
|
|
230
123
|
children: /*#__PURE__*/jsx(ReportItemRenderer, {
|
|
231
|
-
item:
|
|
124
|
+
item: exactItem,
|
|
232
125
|
children: function children(ReportItem) {
|
|
233
126
|
return /*#__PURE__*/jsx(ReportItem, {
|
|
234
127
|
isDragging: isDragging,
|
|
235
|
-
item:
|
|
128
|
+
item: exactItem,
|
|
236
129
|
itemAccessor: itemAccessor,
|
|
237
130
|
zoom: zoom
|
|
238
131
|
});
|
|
239
132
|
}
|
|
240
133
|
})
|
|
241
|
-
}
|
|
242
|
-
var __itemStyle = {
|
|
243
|
-
x: itemStyle.x - (draggedItem.left - ii.left) * zoom,
|
|
244
|
-
y: itemStyle.y - (draggedItem.top - ii.top) * zoom
|
|
245
|
-
};
|
|
246
|
-
return /*#__PURE__*/jsx(ItemPositioner, {
|
|
247
|
-
classNames: "reportItem".concat(isDragging ? ' isDraggingLayerElement' : ''),
|
|
248
|
-
style: _objectSpread(_objectSpread({}, layerStyles(__itemStyle)), {}, {
|
|
249
|
-
cursor: isDragging ? 'grabbing' : 'pointer',
|
|
250
|
-
height: ii.height,
|
|
251
|
-
outlineColor: '#4277ff',
|
|
252
|
-
transform: "scale(".concat(zoom, ")"),
|
|
253
|
-
transformOrigin: '0 0',
|
|
254
|
-
width: ii.width
|
|
255
|
-
}),
|
|
256
|
-
children: /*#__PURE__*/jsx(ReportItemRenderer, {
|
|
257
|
-
item: ii,
|
|
258
|
-
children: function children(ReportItem) {
|
|
259
|
-
return /*#__PURE__*/jsx(ReportItem, {
|
|
260
|
-
isDragging: isDragging,
|
|
261
|
-
item: ii,
|
|
262
|
-
itemAccessor: itemAccessor,
|
|
263
|
-
zoom: zoom
|
|
264
|
-
});
|
|
265
|
-
}
|
|
266
|
-
})
|
|
267
|
-
}, ii.id);
|
|
268
|
-
})]
|
|
134
|
+
}, activeItem.id);
|
|
269
135
|
});
|
|
270
136
|
};
|
|
271
137
|
|
|
272
138
|
DraggableItemLayer.propTypes = {
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
139
|
+
collectedProps: PropTypes.shape({
|
|
140
|
+
currentOffset: PropTypes.shape({
|
|
141
|
+
x: PropTypes.number,
|
|
142
|
+
y: PropTypes.number
|
|
143
|
+
}),
|
|
144
|
+
initialOffset: PropTypes.shape({
|
|
145
|
+
x: PropTypes.number,
|
|
146
|
+
y: PropTypes.number
|
|
147
|
+
}),
|
|
148
|
+
isDragging: PropTypes.bool,
|
|
149
|
+
item: PropTypes.shape({}),
|
|
150
|
+
itemType: PropTypes.string
|
|
151
|
+
}),
|
|
152
|
+
pageRefs: PropTypes.shape({})
|
|
276
153
|
};
|
|
277
154
|
var DraggableItemLayer$1 = /*#__PURE__*/memo(DraggableItemLayer);
|
|
278
155
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DraggableItemLayer.js","sources":["../../../../src/components/DraggableItem/DraggableItemLayer.js"],"sourcesContent":["import { memo } from 'react';\nimport PropTypes from 'prop-types';\nimport memoizeOne from 'memoize-one';\nimport { useDragLayer } from 'react-dnd';\nimport ReportItemRenderer from '../Builder/ReportItemRenderer';\nimport { proximityListener, calculateGuidePositions } from '../../utils/functions';\nimport ItemPositioner from '../ItemPositioner';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport { usePropStore } from '../../contexts/PropContext';\nimport getMergedItem from '../../utils/getMergedItem';\n\nconst layerStyles = ({ x, y }) => ({\n left: x,\n pointerEvents: 'none',\n position: 'fixed',\n top: y,\n zIndex: 100,\n});\n\nconst getDraggedItem = ({ defaultItem = {}, details }, item) => ({\n ...defaultItem,\n ...details,\n ...item,\n id: 'temp',\n});\n\nconst getMemoizedDraggedItem = memoizeOne(getDraggedItem);\n\nconst getAdditionalItems = memoizeOne((activeElems, __itemId, _pages, _acceptedItems) => {\n if (activeElems === null || activeElems.length === 1) return [];\n const index = activeElems.findIndex(aE => aE === __itemId);\n const act = [...activeElems.slice(0, index), ...activeElems.slice(index + 1)];\n const items = act.map(_i => {\n const _item = _pages.reduce((acc, curr) => {\n if (acc) {\n return acc;\n }\n return curr.items.find(el => el.id === _i);\n }, undefined);\n const defItem = (_acceptedItems[_item.itemType]\n && _acceptedItems[_item.itemType].defaultItem);\n return { ...defItem, ..._item };\n });\n return items;\n});\n\nfunction getItemStyles(initialOffset, currentOffset, ref, pageGuides, item, zoom) {\n if (ref.current) {\n const dropTargetPosition = ref.current.getBoundingClientRect();\n const { x: finalX, y: finalY } = currentOffset;\n const { x: initialX, y: initialY } = initialOffset;\n const newYposition = finalY > initialY\n ? (initialY + (finalY - initialY)) - dropTargetPosition.top\n : initialY - (initialY - finalY) - dropTargetPosition.top;\n\n const newXposition = finalX > initialX\n ? (initialX + (finalX - initialX)) - dropTargetPosition.left\n : initialX - (initialX - finalX) - dropTargetPosition.left;\n\n const newItem = {\n ...item,\n left: newXposition / zoom,\n top: newYposition / zoom,\n };\n const _guides = {\n ...pageGuides,\n [item.id]: {\n ...pageGuides[item.id],\n x: calculateGuidePositions(newItem, 'x', zoom),\n y: calculateGuidePositions(newItem, 'y', zoom),\n },\n };\n\n const match = proximityListener(item.id, _guides);\n let newActiveBoxLeft = newXposition;\n let newActiveBoxTop = newYposition;\n const haveMatch = Object.keys(match).length > 0;\n const haveXMatch = haveMatch && match.x;\n const haveYMatch = haveMatch && match.y;\n Object.keys(match).forEach(axis => {\n const { activeBoxGuides, matchedArray, proximity } = match[axis];\n const activeBoxProximityIndex = proximity.activeBoxIndex;\n const matchedBoxProximityIndex = proximity.matchedBoxIndex;\n if (axis === 'x') {\n if (activeBoxGuides[activeBoxProximityIndex] > matchedArray[matchedBoxProximityIndex]) {\n newActiveBoxLeft = newItem.left - proximity.value;\n } else {\n newActiveBoxLeft = newItem.left + proximity.value;\n }\n } else if (activeBoxGuides[activeBoxProximityIndex]\n > matchedArray[matchedBoxProximityIndex]) {\n newActiveBoxTop = newItem.top - proximity.value;\n } else {\n newActiveBoxTop = newItem.top + proximity.value;\n }\n });\n return {\n x: (newActiveBoxLeft * (haveXMatch ? zoom : 1)) + dropTargetPosition.left,\n y: (newActiveBoxTop * (haveYMatch ? zoom : 1)) + dropTargetPosition.top,\n };\n }\n}\n\nconst DraggableItemLayer = ({\n guides = {},\n pageRefs = {},\n pages = [],\n}) => {\n const {\n currentOffset,\n initialOffset,\n isDragging,\n item,\n } = useDragLayer(monitor => ({\n currentOffset: monitor.getSourceClientOffset(),\n initialOffset: monitor.getInitialSourceClientOffset(),\n isDragging: monitor.isDragging(),\n item: monitor.getItem(),\n itemType: monitor.getItemType(),\n }));\n\n const activeElement = useBuilderStore(state => state.activeElement);\n const zoom = useBuilderStore(state => state.zoom);\n\n const acceptedItems = usePropStore(state => state.acceptedItems);\n const itemAccessor = usePropStore(state => state.itemAccessor);\n\n if (!currentOffset || !isDragging) {\n return null;\n }\n let draggedItem = pages.reduce((acc, curr) => {\n if (acc) {\n return acc;\n }\n return curr.items.find(el => el.id === item.id);\n }, undefined);\n\n let pageID;\n if (draggedItem) {\n pageID = draggedItem.pageID;\n } else {\n draggedItem = getMemoizedDraggedItem(acceptedItems[item.itemType], item);\n }\n const element = document.elementFromPoint(currentOffset.x, currentOffset.y);\n if (element && element.closest('.jfReport-page')) { // add polyfill if will we use that one\n pageID = element.closest('.jfReport-page').getAttribute('data-id');\n if (!draggedItem.pageID) {\n draggedItem.pageID = pageID;\n }\n }\n\n const ref = pageRefs[pageID];\n let itemStyle = {};\n // No page\n if (!ref || !ref.current) {\n itemStyle = {\n x: currentOffset.x,\n y: currentOffset.y,\n };\n } else { // In the page\n const pageGuides = guides[pageID];\n itemStyle = getItemStyles(\n initialOffset,\n currentOffset,\n pageRefs[pageID],\n pageGuides,\n draggedItem,\n zoom,\n );\n }\n\n const additionalitems = getAdditionalItems(\n activeElement,\n draggedItem.id,\n pages,\n acceptedItems,\n );\n\n const mergedItem = getMergedItem(draggedItem, acceptedItems);\n\n return (\n <>\n <ItemPositioner\n classNames={`reportItem${isDragging ? ' isDraggingLayerElement' : ''}`}\n style={{\n ...layerStyles(itemStyle),\n cursor: isDragging ? 'grabbing' : 'pointer',\n height: draggedItem.height,\n outlineColor: '#4277ff',\n transform: `scale(${zoom})`,\n transformOrigin: '0 0',\n width: draggedItem.width,\n }}\n >\n <ReportItemRenderer item={draggedItem}>\n {ReportItem => (\n <ReportItem\n isDragging={isDragging}\n item={mergedItem}\n itemAccessor={itemAccessor}\n zoom={zoom}\n />\n )}\n </ReportItemRenderer>\n </ItemPositioner>\n {additionalitems.map(ii => {\n const __itemStyle = {\n x: itemStyle.x - ((draggedItem.left - ii.left) * zoom),\n y: itemStyle.y - ((draggedItem.top - ii.top) * zoom),\n };\n return (\n <ItemPositioner\n key={ii.id}\n classNames={`reportItem${isDragging ? ' isDraggingLayerElement' : ''}`}\n style={{\n ...layerStyles(__itemStyle),\n cursor: isDragging ? 'grabbing' : 'pointer',\n height: ii.height,\n outlineColor: '#4277ff',\n transform: `scale(${zoom})`,\n transformOrigin: '0 0',\n width: ii.width,\n }}\n >\n <ReportItemRenderer item={ii}>\n {ReportItem => (\n <ReportItem\n isDragging={isDragging}\n item={ii}\n itemAccessor={itemAccessor}\n zoom={zoom}\n />\n )}\n </ReportItemRenderer>\n </ItemPositioner>\n );\n })}\n </>\n );\n};\n\nDraggableItemLayer.propTypes = {\n guides: PropTypes.shape({}),\n pageRefs: PropTypes.shape({}),\n pages: PropTypes.arrayOf(\n PropTypes.shape({}),\n ),\n};\n\nexport default memo(DraggableItemLayer);\n"],"names":["layerStyles","x","y","left","pointerEvents","position","top","zIndex","getDraggedItem","item","defaultItem","details","id","getMemoizedDraggedItem","memoizeOne","getAdditionalItems","activeElems","__itemId","_pages","_acceptedItems","length","index","findIndex","aE","act","slice","items","map","_i","_item","reduce","acc","curr","find","el","undefined","defItem","itemType","getItemStyles","initialOffset","currentOffset","ref","pageGuides","zoom","current","dropTargetPosition","getBoundingClientRect","finalX","finalY","initialX","initialY","newYposition","newXposition","newItem","_guides","calculateGuidePositions","match","proximityListener","newActiveBoxLeft","newActiveBoxTop","haveMatch","Object","keys","haveXMatch","haveYMatch","forEach","axis","activeBoxGuides","matchedArray","proximity","activeBoxProximityIndex","activeBoxIndex","matchedBoxProximityIndex","matchedBoxIndex","value","DraggableItemLayer","guides","pageRefs","pages","useDragLayer","monitor","getSourceClientOffset","getInitialSourceClientOffset","isDragging","getItem","getItemType","activeElement","useBuilderStore","state","acceptedItems","usePropStore","itemAccessor","draggedItem","pageID","element","document","elementFromPoint","closest","getAttribute","itemStyle","additionalitems","mergedItem","getMergedItem","_jsxs","_jsx","cursor","height","outlineColor","transform","transformOrigin","width","ReportItem","ii","__itemStyle","propTypes","PropTypes","shape","arrayOf","memo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DraggableItemLayer.js","sources":["../../../../src/components/DraggableItem/DraggableItemLayer.js"],"sourcesContent":["import { memo, useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport ReportItemRenderer from '../Builder/ReportItemRenderer';\nimport { getCoordinatesFromMatches, getCorrectDroppedOffsetValue, getMatchesForItem } from '../../utils/functions';\nimport ItemPositioner from '../ItemPositioner';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport { usePropStore } from '../../contexts/PropContext';\nimport { useSelectedElements } from '../../utils/hooks';\n\nconst getDraggedItem = ({ defaultItem = {}, details }, item) => ({\n ...defaultItem,\n ...details,\n ...item,\n id: 'temp',\n});\n\nconst DraggableItemLayer = ({\n collectedProps = {},\n pageRefs = {},\n}) => {\n const {\n currentOffset,\n initialOffset,\n isDragging,\n item,\n } = collectedProps;\n const zoom = useBuilderStore(state => state.zoom);\n const guides = useBuilderStore(state => state.guides);\n\n const acceptedItems = usePropStore(state => state.acceptedItems);\n const itemAccessor = usePropStore(state => state.itemAccessor);\n\n const referenceItem = useMemo(() => {\n const _item = item.id ? item : getDraggedItem(acceptedItems[item.itemType], item);\n\n // for a element that is dragging to the left panel\n if (!_item.pageID) {\n const element = document.elementFromPoint(currentOffset.x, currentOffset.y);\n if (element && element.closest('.jfReport-page')) {\n const pageID = element.closest('.jfReport-page').getAttribute('data-id');\n return { ..._item, pageID };\n }\n }\n\n return _item;\n }, [\n item,\n acceptedItems,\n currentOffset.x,\n currentOffset.y,\n ]);\n\n const { pageID } = referenceItem;\n\n const refCoords = useMemo(() => {\n if (pageID) {\n const dropTargetPosition = pageRefs[pageID].current.getBoundingClientRect();\n const coords = getCorrectDroppedOffsetValue(\n currentOffset,\n initialOffset,\n dropTargetPosition,\n zoom,\n );\n const newItem = { ...referenceItem, ...coords };\n const newMatches = getMatchesForItem(newItem, guides, zoom);\n const { left, top } = getCoordinatesFromMatches(newItem, newMatches, zoom);\n return {\n x: (left * zoom) + dropTargetPosition.left,\n y: (top * zoom) + dropTargetPosition.top,\n };\n }\n return {\n x: currentOffset.x,\n y: currentOffset.y,\n };\n }, [\n currentOffset,\n initialOffset,\n referenceItem,\n pageID,\n pageRefs,\n zoom,\n guides,\n ]);\n\n const getItemStyle = useCallback(({ x, y }, { height, width }) => {\n return {\n cursor: 'grabbing',\n height,\n left: x,\n outlineColor: '#4277ff',\n pointerEvents: 'none',\n position: 'fixed',\n top: y,\n transform: `scale(${zoom})`,\n transformOrigin: '0 0',\n width,\n zIndex: 100,\n };\n }, [zoom]);\n\n const selectedElements = useSelectedElements();\n\n const hasActiveItems = selectedElements.length > 0;\n\n // for a element is added from the left panel\n const activeElements = hasActiveItems ? selectedElements : [referenceItem];\n\n return activeElements.map(activeItem => {\n const coords = hasActiveItems ? {\n x: refCoords.x - ((referenceItem.left - activeItem.left) * zoom),\n y: refCoords.y - ((referenceItem.top - activeItem.top) * zoom),\n } : refCoords;\n\n const exactItem = hasActiveItems ? activeItem : referenceItem;\n\n return (\n <ItemPositioner\n key={activeItem.id}\n classNames=\"reportItem isDraggingLayerElement\"\n style={getItemStyle(coords, exactItem)}\n >\n <ReportItemRenderer item={exactItem}>\n {ReportItem => (\n <ReportItem\n isDragging={isDragging}\n item={exactItem}\n itemAccessor={itemAccessor}\n zoom={zoom}\n />\n )}\n </ReportItemRenderer>\n </ItemPositioner>\n );\n });\n};\n\nDraggableItemLayer.propTypes = {\n collectedProps: PropTypes.shape({\n currentOffset: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n }),\n initialOffset: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n }),\n isDragging: PropTypes.bool,\n item: PropTypes.shape({}),\n itemType: PropTypes.string,\n }),\n pageRefs: PropTypes.shape({}),\n};\n\nexport default memo(DraggableItemLayer);\n"],"names":["getDraggedItem","item","defaultItem","details","id","DraggableItemLayer","collectedProps","pageRefs","currentOffset","initialOffset","isDragging","zoom","useBuilderStore","state","guides","acceptedItems","usePropStore","itemAccessor","referenceItem","useMemo","_item","itemType","pageID","element","document","elementFromPoint","x","y","closest","getAttribute","refCoords","dropTargetPosition","current","getBoundingClientRect","coords","getCorrectDroppedOffsetValue","newItem","newMatches","getMatchesForItem","getCoordinatesFromMatches","left","top","getItemStyle","useCallback","height","width","cursor","outlineColor","pointerEvents","position","transform","transformOrigin","zIndex","selectedElements","useSelectedElements","hasActiveItems","length","activeElements","map","activeItem","exactItem","_jsx","ReportItem","propTypes","PropTypes","shape","number","bool","string","memo"],"mappings":"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"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import 'core-js/modules/es.array.from.js';
|
|
1
2
|
import 'core-js/modules/es.array.includes.js';
|
|
2
|
-
import
|
|
3
|
+
import 'core-js/modules/es.string.iterator.js';
|
|
4
|
+
import { useRef, useState, useMemo } from 'react';
|
|
3
5
|
import { Resizable } from 're-resizable';
|
|
4
6
|
import { createPortal } from 'react-dom';
|
|
5
7
|
import classNames from 'classnames';
|
|
@@ -9,7 +11,6 @@ import DraggableItemActions from './DraggableItem/DraggableItemActions.js';
|
|
|
9
11
|
import ItemPositioner from './ItemPositioner.js';
|
|
10
12
|
import withClickOutside from './withClickOutside.js';
|
|
11
13
|
import { useBuilderStore } from '../contexts/BuilderContext.js';
|
|
12
|
-
import { isSelectedItem } from '../utils/functions.js';
|
|
13
14
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
14
15
|
|
|
15
16
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
@@ -29,6 +30,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
29
30
|
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
30
31
|
|
|
31
32
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
33
|
+
var exceptionalClassesForClickOutside = ['contextMenu-itemLabel', 'contextMenu-item'];
|
|
32
34
|
var ResizableWithClickOutside = withClickOutside(Resizable);
|
|
33
35
|
var enableResize = {
|
|
34
36
|
bottom: true,
|
|
@@ -44,36 +46,24 @@ var lockAspectRatioTypes = ['image', 'icon'];
|
|
|
44
46
|
var exceptionalClasses = ['reportHandle', 'reportItemMenu', 'jfReport-pane', 'pageSettingSideBtn', 'reportItemWrapper', 'reportRotater', 'forZoom', 'ql-toolbar', 'jSheetContextMenu', 'reset-default-contextMenu'];
|
|
45
47
|
|
|
46
48
|
var PageItemResizer = function PageItemResizer(_ref) {
|
|
47
|
-
var
|
|
48
|
-
deleteItem = _ref.deleteItem,
|
|
49
|
-
duplicateItem = _ref.duplicateItem,
|
|
50
|
-
isDragging = _ref.isDragging,
|
|
51
|
-
item = _ref.item,
|
|
52
|
-
onClickOutside = _ref.onClickOutside,
|
|
49
|
+
var item = _ref.item,
|
|
53
50
|
onResize = _ref.onResize,
|
|
54
|
-
onResizeStop = _ref.onResizeStop
|
|
55
|
-
pageID = _ref.pageID,
|
|
56
|
-
stateHeight = _ref.stateHeight,
|
|
57
|
-
stateLeft = _ref.stateLeft,
|
|
58
|
-
stateTop = _ref.stateTop,
|
|
59
|
-
stateWidth = _ref.stateWidth;
|
|
51
|
+
onResizeStop = _ref.onResizeStop;
|
|
60
52
|
var zoom = useBuilderStore(function (state) {
|
|
61
53
|
return state.zoom;
|
|
62
54
|
});
|
|
63
55
|
var setIsRightPanelOpen = useBuilderStore(function (state) {
|
|
64
56
|
return state.setIsRightPanelOpen;
|
|
65
57
|
});
|
|
66
|
-
var
|
|
67
|
-
return state.
|
|
58
|
+
var resetActiveElements = useBuilderStore(function (state) {
|
|
59
|
+
return state.resetActiveElements;
|
|
68
60
|
});
|
|
69
|
-
var
|
|
70
|
-
return state.
|
|
61
|
+
var isMultipleItemSelected = useBuilderStore(function (state) {
|
|
62
|
+
return state.activeElements.length > 1;
|
|
71
63
|
});
|
|
72
64
|
var isTextEditorOpen = useBuilderStore(function (state) {
|
|
73
65
|
return state.isTextEditorOpen;
|
|
74
66
|
});
|
|
75
|
-
var isSelected = isSelectedItem(item.id, activeElement);
|
|
76
|
-
var isMultipleItemSelected = activeElement !== null && activeElement.length > 1;
|
|
77
67
|
var requestRef = useRef();
|
|
78
68
|
|
|
79
69
|
var _useState = useState(false),
|
|
@@ -119,29 +109,41 @@ var PageItemResizer = function PageItemResizer(_ref) {
|
|
|
119
109
|
window.removeEventListener('keyup', handleKeyUp);
|
|
120
110
|
};
|
|
121
111
|
|
|
112
|
+
var onClickOutside = function onClickOutside(event) {
|
|
113
|
+
// clickoutside should not work for scrollbar
|
|
114
|
+
var viewPort = document.querySelector('.jfReport-viewport');
|
|
115
|
+
var clientHeight = viewPort.clientHeight,
|
|
116
|
+
offsetHeight = viewPort.offsetHeight;
|
|
117
|
+
var headerHeight = window.innerHeight - offsetHeight;
|
|
118
|
+
|
|
119
|
+
if (event.clientY - headerHeight >= clientHeight || Array.from(event.target.classList).some(function (xClass) {
|
|
120
|
+
return exceptionalClassesForClickOutside.includes(xClass);
|
|
121
|
+
})) {
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
setIsRightPanelOpen(false);
|
|
126
|
+
resetActiveElements();
|
|
127
|
+
};
|
|
128
|
+
|
|
122
129
|
var itemPositionerStyle = useMemo(function () {
|
|
123
130
|
return {
|
|
124
|
-
height: Math.round(
|
|
125
|
-
left: Math.round(
|
|
131
|
+
height: Math.round(item.height * zoom),
|
|
132
|
+
left: Math.round(item.left * zoom),
|
|
126
133
|
pointerEvents: 'none',
|
|
127
134
|
position: 'absolute',
|
|
128
|
-
top: Math.round(
|
|
135
|
+
top: Math.round(item.top * zoom),
|
|
129
136
|
touchAction: 'none',
|
|
130
|
-
width: Math.round(
|
|
137
|
+
width: Math.round(item.width * zoom)
|
|
131
138
|
};
|
|
132
|
-
}, [
|
|
139
|
+
}, [item.height, item.left, item.top, item.width, zoom]);
|
|
133
140
|
var size = useMemo(function () {
|
|
134
141
|
return {
|
|
135
|
-
height: Math.round(
|
|
136
|
-
width: Math.round(
|
|
142
|
+
height: Math.round(item.height * zoom),
|
|
143
|
+
width: Math.round(item.width * zoom)
|
|
137
144
|
};
|
|
138
|
-
}, [
|
|
139
|
-
var openSettings = useCallback(function () {
|
|
140
|
-
setActiveElement(item.id);
|
|
141
|
-
setIsRightPanelOpen(true);
|
|
142
|
-
}, [item.id, setIsRightPanelOpen, setActiveElement]);
|
|
145
|
+
}, [item.height, item.width, zoom]);
|
|
143
146
|
var isLocked = item.isLocked;
|
|
144
|
-
if (isDragging || !isSelected) return null;
|
|
145
147
|
return /*#__PURE__*/createPortal( /*#__PURE__*/jsxs(ItemPositioner, {
|
|
146
148
|
style: itemPositionerStyle,
|
|
147
149
|
children: [/*#__PURE__*/jsx(ResizableWithClickOutside, _objectSpread(_objectSpread({
|
|
@@ -160,18 +162,10 @@ var PageItemResizer = function PageItemResizer(_ref) {
|
|
|
160
162
|
size: size
|
|
161
163
|
}, resizeStaticProps), {}, {
|
|
162
164
|
withClickOutsideWrapperClass: "reportItemResizer-wrapper".concat(isLocked ? ' isLocked' : '')
|
|
163
|
-
})), /*#__PURE__*/jsx(DraggableItemActions, {
|
|
164
|
-
|
|
165
|
-
deleteItem: deleteItem,
|
|
166
|
-
duplicateItem: duplicateItem,
|
|
167
|
-
isLocked: item.isLocked,
|
|
168
|
-
isMultipleItemSelected: isMultipleItemSelected,
|
|
169
|
-
openSettings: openSettings
|
|
170
|
-
}), /*#__PURE__*/jsx(CustomToolbarWrapper, {
|
|
171
|
-
isTextEditorOpen: isTextEditorOpen,
|
|
172
|
-
itemWidth: stateWidth * zoom
|
|
165
|
+
})), !isMultipleItemSelected && /*#__PURE__*/jsx(DraggableItemActions, {}), isTextEditorOpen && /*#__PURE__*/jsx(CustomToolbarWrapper, {
|
|
166
|
+
itemWidth: item.width * zoom
|
|
173
167
|
})]
|
|
174
|
-
}), document.querySelector(".jfReport-page[data-id=\"".concat(pageID, "\"]")));
|
|
168
|
+
}), document.querySelector(".jfReport-page[data-id=\"".concat(item.pageID, "\"]")));
|
|
175
169
|
};
|
|
176
170
|
|
|
177
171
|
export default PageItemResizer;
|