@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.
Files changed (417) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/index.d.ts +428 -0
  3. package/lib/cjs/assets/search.svg.js +5 -2
  4. package/lib/cjs/assets/search.svg.js.map +1 -1
  5. package/lib/cjs/assets/svg/all_slides.svg.js +9 -29
  6. package/lib/cjs/assets/svg/all_slides.svg.js.map +1 -1
  7. package/lib/cjs/assets/svg/close.svg.js +4 -2
  8. package/lib/cjs/assets/svg/close.svg.js.map +1 -1
  9. package/lib/cjs/assets/svg/customize.svg.js +4 -2
  10. package/lib/cjs/assets/svg/customize.svg.js.map +1 -1
  11. package/lib/cjs/assets/svg/duplicate.svg.js +5 -2
  12. package/lib/cjs/assets/svg/duplicate.svg.js.map +1 -1
  13. package/lib/cjs/assets/svg/fit_screen.svg.js +7 -7
  14. package/lib/cjs/assets/svg/heart_rating.svg.js +5 -3
  15. package/lib/cjs/assets/svg/heart_rating.svg.js.map +1 -1
  16. package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-arrow-down-left.svg.js +4 -2
  17. package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-arrow-down-left.svg.js.map +1 -1
  18. package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-arrow-down-right.svg.js +4 -2
  19. package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-arrow-down-right.svg.js.map +1 -1
  20. package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-arrow-down.svg.js +4 -2
  21. package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-arrow-down.svg.js.map +1 -1
  22. package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-arrow-left.svg.js +4 -2
  23. package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-arrow-left.svg.js.map +1 -1
  24. package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-arrow-right.svg.js +4 -2
  25. package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-arrow-right.svg.js.map +1 -1
  26. package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-arrow-up-left.svg.js +4 -2
  27. package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-arrow-up-left.svg.js.map +1 -1
  28. package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-arrow-up-right.svg.js +4 -2
  29. package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-arrow-up-right.svg.js.map +1 -1
  30. package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-caret-down-circle.svg.js +4 -2
  31. package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-caret-down-circle.svg.js.map +1 -1
  32. package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-caret-left-circle.svg.js +4 -2
  33. package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-caret-left-circle.svg.js.map +1 -1
  34. package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-caret-right-circle.svg.js +4 -2
  35. package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-caret-right-circle.svg.js.map +1 -1
  36. package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-caret-up-circle.svg.js +4 -2
  37. package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-caret-up-circle.svg.js.map +1 -1
  38. package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-cloud.svg.js +2 -2
  39. package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-download.svg.js +4 -2
  40. package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-download.svg.js.map +1 -1
  41. package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-eye.svg.js +4 -2
  42. package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-eye.svg.js.map +1 -1
  43. package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-folder.svg.js +4 -2
  44. package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-folder.svg.js.map +1 -1
  45. package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-heart.svg.js +4 -2
  46. package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-heart.svg.js.map +1 -1
  47. package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-home.svg.js +4 -2
  48. package/lib/cjs/assets/svg/icon-selector/jfc_icon_solid-home.svg.js.map +1 -1
  49. package/lib/cjs/assets/svg/minus.svg.js +6 -9
  50. package/lib/cjs/assets/svg/minus.svg.js.map +1 -1
  51. package/lib/cjs/assets/svg/page-actions/duplicate_line.svg.js +5 -2
  52. package/lib/cjs/assets/svg/page-actions/duplicate_line.svg.js.map +1 -1
  53. package/lib/cjs/assets/svg/page-actions/trash_line.svg.js +5 -2
  54. package/lib/cjs/assets/svg/page-actions/trash_line.svg.js.map +1 -1
  55. package/lib/cjs/assets/svg/page_settings.svg.js +4 -4
  56. package/lib/cjs/assets/svg/plus.svg.js +5 -2
  57. package/lib/cjs/assets/svg/plus.svg.js.map +1 -1
  58. package/lib/cjs/assets/svg/presentation/attachment.svg.js +4 -2
  59. package/lib/cjs/assets/svg/presentation/attachment.svg.js.map +1 -1
  60. package/lib/cjs/assets/svg/presentation/download.svg.js +5 -2
  61. package/lib/cjs/assets/svg/presentation/download.svg.js.map +1 -1
  62. package/lib/cjs/assets/svg/presentation/enter_fullscreen.svg.js +8 -12
  63. package/lib/cjs/assets/svg/presentation/enter_fullscreen.svg.js.map +1 -1
  64. package/lib/cjs/assets/svg/presentation/exit_fullscreen.svg.js +8 -12
  65. package/lib/cjs/assets/svg/presentation/exit_fullscreen.svg.js.map +1 -1
  66. package/lib/cjs/assets/svg/presentation/eye.svg.js +6 -5
  67. package/lib/cjs/assets/svg/presentation/eye.svg.js.map +1 -1
  68. package/lib/cjs/assets/svg/presentation/key.svg.js +5 -3
  69. package/lib/cjs/assets/svg/presentation/key.svg.js.map +1 -1
  70. package/lib/cjs/assets/svg/presentation/pause.svg.js +4 -2
  71. package/lib/cjs/assets/svg/presentation/pause.svg.js.map +1 -1
  72. package/lib/cjs/assets/svg/presentation/pen.svg.js +4 -2
  73. package/lib/cjs/assets/svg/presentation/pen.svg.js.map +1 -1
  74. package/lib/cjs/assets/svg/presentation/play.svg.js +5 -3
  75. package/lib/cjs/assets/svg/presentation/play.svg.js.map +1 -1
  76. package/lib/cjs/assets/svg/presentation/print.svg.js +5 -2
  77. package/lib/cjs/assets/svg/presentation/print.svg.js.map +1 -1
  78. package/lib/cjs/assets/svg/presentation/share.svg.js +5 -2
  79. package/lib/cjs/assets/svg/presentation/share.svg.js.map +1 -1
  80. package/lib/cjs/assets/svg/rotate.svg.js +5 -2
  81. package/lib/cjs/assets/svg/rotate.svg.js.map +1 -1
  82. package/lib/cjs/assets/svg/settings/align_center.svg.js +5 -2
  83. package/lib/cjs/assets/svg/settings/align_center.svg.js.map +1 -1
  84. package/lib/cjs/assets/svg/settings/align_left.svg.js +5 -2
  85. package/lib/cjs/assets/svg/settings/align_left.svg.js.map +1 -1
  86. package/lib/cjs/assets/svg/settings/align_right.svg.js +5 -2
  87. package/lib/cjs/assets/svg/settings/align_right.svg.js.map +1 -1
  88. package/lib/cjs/assets/svg/settings/drag.svg.js +7 -26
  89. package/lib/cjs/assets/svg/settings/drag.svg.js.map +1 -1
  90. package/lib/cjs/assets/svg/settings/ellipse.svg.js +6 -5
  91. package/lib/cjs/assets/svg/settings/ellipse.svg.js.map +1 -1
  92. package/lib/cjs/assets/svg/settings/font_bold.svg.js +5 -2
  93. package/lib/cjs/assets/svg/settings/font_bold.svg.js.map +1 -1
  94. package/lib/cjs/assets/svg/settings/font_italic.svg.js +5 -2
  95. package/lib/cjs/assets/svg/settings/font_italic.svg.js.map +1 -1
  96. package/lib/cjs/assets/svg/settings/font_underline.svg.js +5 -2
  97. package/lib/cjs/assets/svg/settings/font_underline.svg.js.map +1 -1
  98. package/lib/cjs/assets/svg/settings/line.svg.js +8 -10
  99. package/lib/cjs/assets/svg/settings/line.svg.js.map +1 -1
  100. package/lib/cjs/assets/svg/settings/lock.svg.js +5 -2
  101. package/lib/cjs/assets/svg/settings/lock.svg.js.map +1 -1
  102. package/lib/cjs/assets/svg/settings/rectangle.svg.js +6 -4
  103. package/lib/cjs/assets/svg/settings/rectangle.svg.js.map +1 -1
  104. package/lib/cjs/assets/svg/settings/star.svg.js +6 -4
  105. package/lib/cjs/assets/svg/settings/star.svg.js.map +1 -1
  106. package/lib/cjs/assets/svg/settings/triangle.svg.js +6 -4
  107. package/lib/cjs/assets/svg/settings/triangle.svg.js.map +1 -1
  108. package/lib/cjs/assets/svg/settings/unlock.svg.js +5 -2
  109. package/lib/cjs/assets/svg/settings/unlock.svg.js.map +1 -1
  110. package/lib/cjs/assets/svg/settings.svg.js +3 -2
  111. package/lib/cjs/assets/svg/settings.svg.js.map +1 -1
  112. package/lib/cjs/assets/svg/settings_toggle.svg.js +7 -5
  113. package/lib/cjs/assets/svg/settings_toggle.svg.js.map +1 -1
  114. package/lib/cjs/assets/svg/slides.svg.js +8 -14
  115. package/lib/cjs/assets/svg/slides.svg.js.map +1 -1
  116. package/lib/cjs/assets/svg/star_rating.svg.js +5 -2
  117. package/lib/cjs/assets/svg/star_rating.svg.js.map +1 -1
  118. package/lib/cjs/assets/svg/toolbox/email.svg.js +5 -2
  119. package/lib/cjs/assets/svg/toolbox/email.svg.js.map +1 -1
  120. package/lib/cjs/assets/svg/toolbox/header.svg.js +5 -2
  121. package/lib/cjs/assets/svg/toolbox/header.svg.js.map +1 -1
  122. package/lib/cjs/assets/svg/toolbox/icon.svg.js +6 -11
  123. package/lib/cjs/assets/svg/toolbox/icon.svg.js.map +1 -1
  124. package/lib/cjs/assets/svg/toolbox/image.svg.js +7 -7
  125. package/lib/cjs/assets/svg/toolbox/label.svg.js +4 -2
  126. package/lib/cjs/assets/svg/toolbox/label.svg.js.map +1 -1
  127. package/lib/cjs/assets/svg/toolbox/multiple_choice.svg.js +6 -5
  128. package/lib/cjs/assets/svg/toolbox/multiple_choice.svg.js.map +1 -1
  129. package/lib/cjs/assets/svg/toolbox/shapes.svg.js +7 -10
  130. package/lib/cjs/assets/svg/toolbox/shapes.svg.js.map +1 -1
  131. package/lib/cjs/assets/svg/toolbox/single_choice.svg.js +5 -2
  132. package/lib/cjs/assets/svg/toolbox/single_choice.svg.js.map +1 -1
  133. package/lib/cjs/assets/svg/toolbox/star.svg.js +5 -2
  134. package/lib/cjs/assets/svg/toolbox/star.svg.js.map +1 -1
  135. package/lib/cjs/assets/svg/toolbox/table.svg.js +5 -2
  136. package/lib/cjs/assets/svg/toolbox/table.svg.js.map +1 -1
  137. package/lib/cjs/assets/svg/toolbox/text.svg.js +5 -2
  138. package/lib/cjs/assets/svg/toolbox/text.svg.js.map +1 -1
  139. package/lib/cjs/assets/svg/toolbox/text_element.svg.js +5 -2
  140. package/lib/cjs/assets/svg/toolbox/text_element.svg.js.map +1 -1
  141. package/lib/cjs/assets/svg/trash.svg.js +5 -2
  142. package/lib/cjs/assets/svg/trash.svg.js.map +1 -1
  143. package/lib/cjs/components/AlignmentGuides.js +28 -18
  144. package/lib/cjs/components/AlignmentGuides.js.map +1 -1
  145. package/lib/cjs/components/Builder/ContextMenu.js +4 -1
  146. package/lib/cjs/components/Builder/ContextMenu.js.map +1 -1
  147. package/lib/cjs/components/Builder/DraggableLayer.js +40 -0
  148. package/lib/cjs/components/Builder/DraggableLayer.js.map +1 -0
  149. package/lib/cjs/components/Builder/Element.js +7 -3
  150. package/lib/cjs/components/Builder/Element.js.map +1 -1
  151. package/lib/cjs/components/Builder/Page.js +58 -65
  152. package/lib/cjs/components/Builder/Page.js.map +1 -1
  153. package/lib/cjs/components/Builder/Scene.js +33 -255
  154. package/lib/cjs/components/Builder/Scene.js.map +1 -1
  155. package/lib/cjs/components/Builder/SearchInput.js +3 -1
  156. package/lib/cjs/components/Builder/SearchInput.js.map +1 -1
  157. package/lib/cjs/components/Builder/SelectionBox.js +48 -0
  158. package/lib/cjs/components/Builder/SelectionBox.js.map +1 -0
  159. package/lib/cjs/components/DraggableItem/DraggableItem.js +78 -135
  160. package/lib/cjs/components/DraggableItem/DraggableItem.js.map +1 -1
  161. package/lib/cjs/components/DraggableItem/DraggableItemActions.js +69 -29
  162. package/lib/cjs/components/DraggableItem/DraggableItemActions.js.map +1 -1
  163. package/lib/cjs/components/DraggableItem/DraggableItemLayer.js +96 -220
  164. package/lib/cjs/components/DraggableItem/DraggableItemLayer.js.map +1 -1
  165. package/lib/cjs/components/PageItemResizer.js +37 -43
  166. package/lib/cjs/components/PageItemResizer.js.map +1 -1
  167. package/lib/cjs/components/Panels/AllSlidesPanel/AllSlidesPanel.js +1 -3
  168. package/lib/cjs/components/Panels/AllSlidesPanel/AllSlidesPanel.js.map +1 -1
  169. package/lib/cjs/components/Panels/AllSlidesPanel/PageList.js +0 -6
  170. package/lib/cjs/components/Panels/AllSlidesPanel/PageList.js.map +1 -1
  171. package/lib/cjs/components/Panels/LeftPanel/LeftPanel.js +1 -4
  172. package/lib/cjs/components/Panels/LeftPanel/LeftPanel.js.map +1 -1
  173. package/lib/cjs/components/Panels/LeftPanel/LeftPanelOpener.js +6 -7
  174. package/lib/cjs/components/Panels/LeftPanel/LeftPanelOpener.js.map +1 -1
  175. package/lib/cjs/components/Panels/RightPanel/RightPanel.js +7 -7
  176. package/lib/cjs/components/Panels/RightPanel/RightPanel.js.map +1 -1
  177. package/lib/cjs/components/Panels/RightPanel/RightPanelToggler.js +9 -10
  178. package/lib/cjs/components/Panels/RightPanel/RightPanelToggler.js.map +1 -1
  179. package/lib/cjs/components/Panels/SlidesPanel/SlidesPanel.js +1 -3
  180. package/lib/cjs/components/Panels/SlidesPanel/SlidesPanel.js.map +1 -1
  181. package/lib/cjs/components/Panels/SlidesPanel/SlidesPanelToggler.js +8 -6
  182. package/lib/cjs/components/Panels/SlidesPanel/SlidesPanelToggler.js.map +1 -1
  183. package/lib/cjs/components/ReportItemsWrapper.js +5 -11
  184. package/lib/cjs/components/ReportItemsWrapper.js.map +1 -1
  185. package/lib/cjs/components/Settings/PageLayer/LayerDragOverlay.js +2 -4
  186. package/lib/cjs/components/Settings/PageLayer/LayerDragOverlay.js.map +1 -1
  187. package/lib/cjs/components/Settings/PageLayer/LayerItem.js +12 -7
  188. package/lib/cjs/components/Settings/PageLayer/LayerItem.js.map +1 -1
  189. package/lib/cjs/components/Settings/PageLayer/PageLayer.js +2 -4
  190. package/lib/cjs/components/Settings/PageLayer/PageLayer.js.map +1 -1
  191. package/lib/cjs/components/TextEditor/CustomToolbar/CustomToolbarWrapper.js +3 -8
  192. package/lib/cjs/components/TextEditor/CustomToolbar/CustomToolbarWrapper.js.map +1 -1
  193. package/lib/cjs/constants/texts.js +0 -1
  194. package/lib/cjs/constants/texts.js.map +1 -1
  195. package/lib/cjs/contexts/BuilderContext.js +47 -23
  196. package/lib/cjs/contexts/BuilderContext.js.map +1 -1
  197. package/lib/cjs/styles/_jfDarkTheme.scss +0 -5
  198. package/lib/cjs/styles/_jfPrint.scss +0 -4
  199. package/lib/cjs/styles/_jfReportsPages.scss +12 -3
  200. package/lib/cjs/styles/_jfReportsSVG.scss +6 -6
  201. package/lib/cjs/styles/_jfSearchInput.scss +0 -2
  202. package/lib/cjs/utils/functions.js +129 -57
  203. package/lib/cjs/utils/functions.js.map +1 -1
  204. package/lib/cjs/utils/hooks.js +37 -0
  205. package/lib/cjs/utils/hooks.js.map +1 -1
  206. package/lib/cjs/utils/useKeyboardActions.js +263 -0
  207. package/lib/cjs/utils/useKeyboardActions.js.map +1 -0
  208. package/lib/cjs/utils/useMarqueeSelection.js +156 -0
  209. package/lib/cjs/utils/useMarqueeSelection.js.map +1 -0
  210. package/lib/esm/assets/search.svg.js +5 -2
  211. package/lib/esm/assets/search.svg.js.map +1 -1
  212. package/lib/esm/assets/svg/all_slides.svg.js +9 -29
  213. package/lib/esm/assets/svg/all_slides.svg.js.map +1 -1
  214. package/lib/esm/assets/svg/close.svg.js +4 -2
  215. package/lib/esm/assets/svg/close.svg.js.map +1 -1
  216. package/lib/esm/assets/svg/customize.svg.js +4 -2
  217. package/lib/esm/assets/svg/customize.svg.js.map +1 -1
  218. package/lib/esm/assets/svg/duplicate.svg.js +5 -2
  219. package/lib/esm/assets/svg/duplicate.svg.js.map +1 -1
  220. package/lib/esm/assets/svg/fit_screen.svg.js +7 -7
  221. package/lib/esm/assets/svg/heart_rating.svg.js +5 -3
  222. package/lib/esm/assets/svg/heart_rating.svg.js.map +1 -1
  223. package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-arrow-down-left.svg.js +4 -2
  224. package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-arrow-down-left.svg.js.map +1 -1
  225. package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-arrow-down-right.svg.js +4 -2
  226. package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-arrow-down-right.svg.js.map +1 -1
  227. package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-arrow-down.svg.js +4 -2
  228. package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-arrow-down.svg.js.map +1 -1
  229. package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-arrow-left.svg.js +4 -2
  230. package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-arrow-left.svg.js.map +1 -1
  231. package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-arrow-right.svg.js +4 -2
  232. package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-arrow-right.svg.js.map +1 -1
  233. package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-arrow-up-left.svg.js +4 -2
  234. package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-arrow-up-left.svg.js.map +1 -1
  235. package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-arrow-up-right.svg.js +4 -2
  236. package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-arrow-up-right.svg.js.map +1 -1
  237. package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-caret-down-circle.svg.js +4 -2
  238. package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-caret-down-circle.svg.js.map +1 -1
  239. package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-caret-left-circle.svg.js +4 -2
  240. package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-caret-left-circle.svg.js.map +1 -1
  241. package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-caret-right-circle.svg.js +4 -2
  242. package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-caret-right-circle.svg.js.map +1 -1
  243. package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-caret-up-circle.svg.js +4 -2
  244. package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-caret-up-circle.svg.js.map +1 -1
  245. package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-cloud.svg.js +2 -2
  246. package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-download.svg.js +4 -2
  247. package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-download.svg.js.map +1 -1
  248. package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-eye.svg.js +4 -2
  249. package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-eye.svg.js.map +1 -1
  250. package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-folder.svg.js +4 -2
  251. package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-folder.svg.js.map +1 -1
  252. package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-heart.svg.js +4 -2
  253. package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-heart.svg.js.map +1 -1
  254. package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-home.svg.js +4 -2
  255. package/lib/esm/assets/svg/icon-selector/jfc_icon_solid-home.svg.js.map +1 -1
  256. package/lib/esm/assets/svg/minus.svg.js +6 -9
  257. package/lib/esm/assets/svg/minus.svg.js.map +1 -1
  258. package/lib/esm/assets/svg/page-actions/duplicate_line.svg.js +5 -2
  259. package/lib/esm/assets/svg/page-actions/duplicate_line.svg.js.map +1 -1
  260. package/lib/esm/assets/svg/page-actions/trash_line.svg.js +5 -2
  261. package/lib/esm/assets/svg/page-actions/trash_line.svg.js.map +1 -1
  262. package/lib/esm/assets/svg/page_settings.svg.js +4 -4
  263. package/lib/esm/assets/svg/plus.svg.js +5 -2
  264. package/lib/esm/assets/svg/plus.svg.js.map +1 -1
  265. package/lib/esm/assets/svg/presentation/attachment.svg.js +4 -2
  266. package/lib/esm/assets/svg/presentation/attachment.svg.js.map +1 -1
  267. package/lib/esm/assets/svg/presentation/download.svg.js +5 -2
  268. package/lib/esm/assets/svg/presentation/download.svg.js.map +1 -1
  269. package/lib/esm/assets/svg/presentation/enter_fullscreen.svg.js +8 -12
  270. package/lib/esm/assets/svg/presentation/enter_fullscreen.svg.js.map +1 -1
  271. package/lib/esm/assets/svg/presentation/exit_fullscreen.svg.js +8 -12
  272. package/lib/esm/assets/svg/presentation/exit_fullscreen.svg.js.map +1 -1
  273. package/lib/esm/assets/svg/presentation/eye.svg.js +6 -5
  274. package/lib/esm/assets/svg/presentation/eye.svg.js.map +1 -1
  275. package/lib/esm/assets/svg/presentation/key.svg.js +5 -3
  276. package/lib/esm/assets/svg/presentation/key.svg.js.map +1 -1
  277. package/lib/esm/assets/svg/presentation/pause.svg.js +4 -2
  278. package/lib/esm/assets/svg/presentation/pause.svg.js.map +1 -1
  279. package/lib/esm/assets/svg/presentation/pen.svg.js +4 -2
  280. package/lib/esm/assets/svg/presentation/pen.svg.js.map +1 -1
  281. package/lib/esm/assets/svg/presentation/play.svg.js +5 -3
  282. package/lib/esm/assets/svg/presentation/play.svg.js.map +1 -1
  283. package/lib/esm/assets/svg/presentation/print.svg.js +5 -2
  284. package/lib/esm/assets/svg/presentation/print.svg.js.map +1 -1
  285. package/lib/esm/assets/svg/presentation/share.svg.js +5 -2
  286. package/lib/esm/assets/svg/presentation/share.svg.js.map +1 -1
  287. package/lib/esm/assets/svg/rotate.svg.js +5 -2
  288. package/lib/esm/assets/svg/rotate.svg.js.map +1 -1
  289. package/lib/esm/assets/svg/settings/align_center.svg.js +5 -2
  290. package/lib/esm/assets/svg/settings/align_center.svg.js.map +1 -1
  291. package/lib/esm/assets/svg/settings/align_left.svg.js +5 -2
  292. package/lib/esm/assets/svg/settings/align_left.svg.js.map +1 -1
  293. package/lib/esm/assets/svg/settings/align_right.svg.js +5 -2
  294. package/lib/esm/assets/svg/settings/align_right.svg.js.map +1 -1
  295. package/lib/esm/assets/svg/settings/drag.svg.js +7 -26
  296. package/lib/esm/assets/svg/settings/drag.svg.js.map +1 -1
  297. package/lib/esm/assets/svg/settings/ellipse.svg.js +6 -5
  298. package/lib/esm/assets/svg/settings/ellipse.svg.js.map +1 -1
  299. package/lib/esm/assets/svg/settings/font_bold.svg.js +5 -2
  300. package/lib/esm/assets/svg/settings/font_bold.svg.js.map +1 -1
  301. package/lib/esm/assets/svg/settings/font_italic.svg.js +5 -2
  302. package/lib/esm/assets/svg/settings/font_italic.svg.js.map +1 -1
  303. package/lib/esm/assets/svg/settings/font_underline.svg.js +5 -2
  304. package/lib/esm/assets/svg/settings/font_underline.svg.js.map +1 -1
  305. package/lib/esm/assets/svg/settings/line.svg.js +8 -10
  306. package/lib/esm/assets/svg/settings/line.svg.js.map +1 -1
  307. package/lib/esm/assets/svg/settings/lock.svg.js +5 -2
  308. package/lib/esm/assets/svg/settings/lock.svg.js.map +1 -1
  309. package/lib/esm/assets/svg/settings/rectangle.svg.js +6 -4
  310. package/lib/esm/assets/svg/settings/rectangle.svg.js.map +1 -1
  311. package/lib/esm/assets/svg/settings/star.svg.js +6 -4
  312. package/lib/esm/assets/svg/settings/star.svg.js.map +1 -1
  313. package/lib/esm/assets/svg/settings/triangle.svg.js +6 -4
  314. package/lib/esm/assets/svg/settings/triangle.svg.js.map +1 -1
  315. package/lib/esm/assets/svg/settings/unlock.svg.js +5 -2
  316. package/lib/esm/assets/svg/settings/unlock.svg.js.map +1 -1
  317. package/lib/esm/assets/svg/settings.svg.js +3 -2
  318. package/lib/esm/assets/svg/settings.svg.js.map +1 -1
  319. package/lib/esm/assets/svg/settings_toggle.svg.js +7 -5
  320. package/lib/esm/assets/svg/settings_toggle.svg.js.map +1 -1
  321. package/lib/esm/assets/svg/slides.svg.js +8 -14
  322. package/lib/esm/assets/svg/slides.svg.js.map +1 -1
  323. package/lib/esm/assets/svg/star_rating.svg.js +5 -2
  324. package/lib/esm/assets/svg/star_rating.svg.js.map +1 -1
  325. package/lib/esm/assets/svg/toolbox/email.svg.js +5 -2
  326. package/lib/esm/assets/svg/toolbox/email.svg.js.map +1 -1
  327. package/lib/esm/assets/svg/toolbox/header.svg.js +5 -2
  328. package/lib/esm/assets/svg/toolbox/header.svg.js.map +1 -1
  329. package/lib/esm/assets/svg/toolbox/icon.svg.js +6 -11
  330. package/lib/esm/assets/svg/toolbox/icon.svg.js.map +1 -1
  331. package/lib/esm/assets/svg/toolbox/image.svg.js +7 -7
  332. package/lib/esm/assets/svg/toolbox/label.svg.js +4 -2
  333. package/lib/esm/assets/svg/toolbox/label.svg.js.map +1 -1
  334. package/lib/esm/assets/svg/toolbox/multiple_choice.svg.js +6 -5
  335. package/lib/esm/assets/svg/toolbox/multiple_choice.svg.js.map +1 -1
  336. package/lib/esm/assets/svg/toolbox/shapes.svg.js +7 -10
  337. package/lib/esm/assets/svg/toolbox/shapes.svg.js.map +1 -1
  338. package/lib/esm/assets/svg/toolbox/single_choice.svg.js +5 -2
  339. package/lib/esm/assets/svg/toolbox/single_choice.svg.js.map +1 -1
  340. package/lib/esm/assets/svg/toolbox/star.svg.js +5 -2
  341. package/lib/esm/assets/svg/toolbox/star.svg.js.map +1 -1
  342. package/lib/esm/assets/svg/toolbox/table.svg.js +5 -2
  343. package/lib/esm/assets/svg/toolbox/table.svg.js.map +1 -1
  344. package/lib/esm/assets/svg/toolbox/text.svg.js +5 -2
  345. package/lib/esm/assets/svg/toolbox/text.svg.js.map +1 -1
  346. package/lib/esm/assets/svg/toolbox/text_element.svg.js +5 -2
  347. package/lib/esm/assets/svg/toolbox/text_element.svg.js.map +1 -1
  348. package/lib/esm/assets/svg/trash.svg.js +5 -2
  349. package/lib/esm/assets/svg/trash.svg.js.map +1 -1
  350. package/lib/esm/components/AlignmentGuides.js +28 -18
  351. package/lib/esm/components/AlignmentGuides.js.map +1 -1
  352. package/lib/esm/components/Builder/ContextMenu.js +4 -1
  353. package/lib/esm/components/Builder/ContextMenu.js.map +1 -1
  354. package/lib/esm/components/Builder/DraggableLayer.js +34 -0
  355. package/lib/esm/components/Builder/DraggableLayer.js.map +1 -0
  356. package/lib/esm/components/Builder/Element.js +7 -3
  357. package/lib/esm/components/Builder/Element.js.map +1 -1
  358. package/lib/esm/components/Builder/Page.js +60 -67
  359. package/lib/esm/components/Builder/Page.js.map +1 -1
  360. package/lib/esm/components/Builder/Scene.js +35 -257
  361. package/lib/esm/components/Builder/Scene.js.map +1 -1
  362. package/lib/esm/components/Builder/SearchInput.js +3 -1
  363. package/lib/esm/components/Builder/SearchInput.js.map +1 -1
  364. package/lib/esm/components/Builder/SelectionBox.js +42 -0
  365. package/lib/esm/components/Builder/SelectionBox.js.map +1 -0
  366. package/lib/esm/components/DraggableItem/DraggableItem.js +80 -137
  367. package/lib/esm/components/DraggableItem/DraggableItem.js.map +1 -1
  368. package/lib/esm/components/DraggableItem/DraggableItemActions.js +72 -28
  369. package/lib/esm/components/DraggableItem/DraggableItemActions.js.map +1 -1
  370. package/lib/esm/components/DraggableItem/DraggableItemLayer.js +99 -222
  371. package/lib/esm/components/DraggableItem/DraggableItemLayer.js.map +1 -1
  372. package/lib/esm/components/PageItemResizer.js +38 -44
  373. package/lib/esm/components/PageItemResizer.js.map +1 -1
  374. package/lib/esm/components/Panels/AllSlidesPanel/AllSlidesPanel.js +2 -4
  375. package/lib/esm/components/Panels/AllSlidesPanel/AllSlidesPanel.js.map +1 -1
  376. package/lib/esm/components/Panels/AllSlidesPanel/PageList.js +0 -6
  377. package/lib/esm/components/Panels/AllSlidesPanel/PageList.js.map +1 -1
  378. package/lib/esm/components/Panels/LeftPanel/LeftPanel.js +3 -6
  379. package/lib/esm/components/Panels/LeftPanel/LeftPanel.js.map +1 -1
  380. package/lib/esm/components/Panels/LeftPanel/LeftPanelOpener.js +6 -7
  381. package/lib/esm/components/Panels/LeftPanel/LeftPanelOpener.js.map +1 -1
  382. package/lib/esm/components/Panels/RightPanel/RightPanel.js +7 -7
  383. package/lib/esm/components/Panels/RightPanel/RightPanel.js.map +1 -1
  384. package/lib/esm/components/Panels/RightPanel/RightPanelToggler.js +9 -10
  385. package/lib/esm/components/Panels/RightPanel/RightPanelToggler.js.map +1 -1
  386. package/lib/esm/components/Panels/SlidesPanel/SlidesPanel.js +2 -4
  387. package/lib/esm/components/Panels/SlidesPanel/SlidesPanel.js.map +1 -1
  388. package/lib/esm/components/Panels/SlidesPanel/SlidesPanelToggler.js +8 -6
  389. package/lib/esm/components/Panels/SlidesPanel/SlidesPanelToggler.js.map +1 -1
  390. package/lib/esm/components/ReportItemsWrapper.js +5 -11
  391. package/lib/esm/components/ReportItemsWrapper.js.map +1 -1
  392. package/lib/esm/components/Settings/PageLayer/LayerDragOverlay.js +2 -4
  393. package/lib/esm/components/Settings/PageLayer/LayerDragOverlay.js.map +1 -1
  394. package/lib/esm/components/Settings/PageLayer/LayerItem.js +12 -7
  395. package/lib/esm/components/Settings/PageLayer/LayerItem.js.map +1 -1
  396. package/lib/esm/components/Settings/PageLayer/PageLayer.js +2 -4
  397. package/lib/esm/components/Settings/PageLayer/PageLayer.js.map +1 -1
  398. package/lib/esm/components/TextEditor/CustomToolbar/CustomToolbarWrapper.js +3 -8
  399. package/lib/esm/components/TextEditor/CustomToolbar/CustomToolbarWrapper.js.map +1 -1
  400. package/lib/esm/constants/texts.js +0 -1
  401. package/lib/esm/constants/texts.js.map +1 -1
  402. package/lib/esm/contexts/BuilderContext.js +47 -23
  403. package/lib/esm/contexts/BuilderContext.js.map +1 -1
  404. package/lib/esm/styles/_jfDarkTheme.scss +0 -5
  405. package/lib/esm/styles/_jfPrint.scss +0 -4
  406. package/lib/esm/styles/_jfReportsPages.scss +12 -3
  407. package/lib/esm/styles/_jfReportsSVG.scss +6 -6
  408. package/lib/esm/styles/_jfSearchInput.scss +0 -2
  409. package/lib/esm/utils/functions.js +126 -56
  410. package/lib/esm/utils/functions.js.map +1 -1
  411. package/lib/esm/utils/hooks.js +37 -1
  412. package/lib/esm/utils/hooks.js.map +1 -1
  413. package/lib/esm/utils/useKeyboardActions.js +261 -0
  414. package/lib/esm/utils/useKeyboardActions.js.map +1 -0
  415. package/lib/esm/utils/useMarqueeSelection.js +154 -0
  416. package/lib/esm/utils/useMarqueeSelection.js.map +1 -0
  417. 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 'core-js/modules/es.array.slice.js';
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 { calculateGuidePositions, proximityListener } from '../../utils/functions.js';
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 getMergedItem from '../../utils/getMergedItem.js';
18
- import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
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 layerStyles = function layerStyles(_ref) {
39
- var x = _ref.x,
40
- y = _ref.y;
41
- return {
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 getMemoizedDraggedItem = memoizeOne(getDraggedItem);
60
- var getAdditionalItems = memoizeOne(function (activeElems, __itemId, _pages, _acceptedItems) {
61
- if (activeElems === null || activeElems.length === 1) return [];
62
- var index = activeElems.findIndex(function (aE) {
63
- return aE === __itemId;
64
- });
65
- var act = [].concat(_toConsumableArray(activeElems.slice(0, index)), _toConsumableArray(activeElems.slice(index + 1)));
66
- var items = act.map(function (_i) {
67
- var _item = _pages.reduce(function (acc, curr) {
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
- if (!currentOffset || !isDragging) {
172
- return null;
173
- }
52
+ if (!_item.pageID) {
53
+ var element = document.elementFromPoint(currentOffset.x, currentOffset.y);
174
54
 
175
- var draggedItem = pages.reduce(function (acc, curr) {
176
- if (acc) {
177
- return acc;
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 curr.items.find(function (el) {
181
- return el.id === item.id;
182
- });
183
- }, undefined);
184
- var pageID;
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
- if (draggedItem) {
187
- pageID = draggedItem.pageID;
188
- } else {
189
- draggedItem = getMemoizedDraggedItem(acceptedItems[item.itemType], item);
190
- }
72
+ var newItem = _objectSpread(_objectSpread({}, referenceItem), coords);
191
73
 
192
- var element = document.elementFromPoint(currentOffset.x, currentOffset.y);
74
+ var newMatches = getMatchesForItem(newItem, guides, zoom);
193
75
 
194
- if (element && element.closest('.jfReport-page')) {
195
- // add polyfill if will we use that one
196
- pageID = element.closest('.jfReport-page').getAttribute('data-id');
76
+ var _getCoordinatesFromMa = getCoordinatesFromMatches(newItem, newMatches, zoom),
77
+ left = _getCoordinatesFromMa.left,
78
+ top = _getCoordinatesFromMa.top;
197
79
 
198
- if (!draggedItem.pageID) {
199
- draggedItem.pageID = pageID;
80
+ return {
81
+ x: left * zoom + dropTargetPosition.left,
82
+ y: top * zoom + dropTargetPosition.top
83
+ };
200
84
  }
201
- }
202
85
 
203
- var ref = pageRefs[pageID];
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
- } else {
212
- // In the page
213
- var pageGuides = guides[pageID];
214
- itemStyle = getItemStyles(initialOffset, currentOffset, pageRefs[pageID], pageGuides, draggedItem, zoom);
215
- }
216
-
217
- var additionalitems = getAdditionalItems(activeElement, draggedItem.id, pages, acceptedItems);
218
- var mergedItem = getMergedItem(draggedItem, acceptedItems);
219
- return /*#__PURE__*/jsxs(Fragment, {
220
- children: [/*#__PURE__*/jsx(ItemPositioner, {
221
- classNames: "reportItem".concat(isDragging ? ' isDraggingLayerElement' : ''),
222
- style: _objectSpread(_objectSpread({}, layerStyles(itemStyle)), {}, {
223
- cursor: isDragging ? 'grabbing' : 'pointer',
224
- height: draggedItem.height,
225
- outlineColor: '#4277ff',
226
- transform: "scale(".concat(zoom, ")"),
227
- transformOrigin: '0 0',
228
- width: draggedItem.width
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: draggedItem,
124
+ item: exactItem,
232
125
  children: function children(ReportItem) {
233
126
  return /*#__PURE__*/jsx(ReportItem, {
234
127
  isDragging: isDragging,
235
- item: mergedItem,
128
+ item: exactItem,
236
129
  itemAccessor: itemAccessor,
237
130
  zoom: zoom
238
131
  });
239
132
  }
240
133
  })
241
- }), additionalitems.map(function (ii) {
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
- guides: PropTypes.shape({}),
274
- pageRefs: PropTypes.shape({}),
275
- pages: PropTypes.arrayOf(PropTypes.shape({}))
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 { useRef, useState, useMemo, useCallback } from 'react';
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 changeLockStatus = _ref.changeLockStatus,
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 setActiveElement = useBuilderStore(function (state) {
67
- return state.setActiveElement;
58
+ var resetActiveElements = useBuilderStore(function (state) {
59
+ return state.resetActiveElements;
68
60
  });
69
- var activeElement = useBuilderStore(function (state) {
70
- return state.activeElement;
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(stateHeight * zoom),
125
- left: Math.round(stateLeft * zoom),
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(stateTop * zoom),
135
+ top: Math.round(item.top * zoom),
129
136
  touchAction: 'none',
130
- width: Math.round(stateWidth * zoom)
137
+ width: Math.round(item.width * zoom)
131
138
  };
132
- }, [stateHeight, stateLeft, stateTop, stateWidth, zoom]);
139
+ }, [item.height, item.left, item.top, item.width, zoom]);
133
140
  var size = useMemo(function () {
134
141
  return {
135
- height: Math.round(stateHeight * zoom),
136
- width: Math.round(stateWidth * zoom)
142
+ height: Math.round(item.height * zoom),
143
+ width: Math.round(item.width * zoom)
137
144
  };
138
- }, [stateHeight, stateWidth, zoom]);
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
- changeLockStatus: changeLockStatus,
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;