@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,9 +1,6 @@
1
1
  'use strict';
2
2
 
3
3
  require('core-js/modules/es.array.concat.js');
4
- require('core-js/modules/es.array.from.js');
5
- require('core-js/modules/es.array.includes.js');
6
- require('core-js/modules/es.string.iterator.js');
7
4
  var React = require('react');
8
5
  var PropTypes = require('prop-types');
9
6
  var reactDnd = require('react-dnd');
@@ -41,7 +38,6 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
41
38
  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; }
42
39
 
43
40
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
44
- var exceptionalClassesForClickOutside = ['contextMenu-itemLabel', 'contextMenu-item'];
45
41
  var reportItemStyle = {
46
42
  height: '100%',
47
43
  width: '100%'
@@ -51,9 +47,7 @@ var DraggableItem = function DraggableItem(_ref) {
51
47
  var _ref$children = _ref.children,
52
48
  children = _ref$children === void 0 ? null : _ref$children,
53
49
  _ref$item = _ref.item,
54
- _item2 = _ref$item === void 0 ? {} : _ref$item,
55
- handleMatches = _ref.handleMatches,
56
- getIntersectionsFromMatches = _ref.getIntersectionsFromMatches;
50
+ _item2 = _ref$item === void 0 ? {} : _ref$item;
57
51
 
58
52
  var height = _item2.height,
59
53
  id = _item2.id,
@@ -83,20 +77,14 @@ var DraggableItem = function DraggableItem(_ref) {
83
77
  var onItemAdd = PropContext.usePropStore(function (state) {
84
78
  return state.onItemAdd;
85
79
  });
86
- var onItemChange = PropContext.usePropStore(function (state) {
87
- return state.onItemChange;
88
- });
89
- var onItemRemove = PropContext.usePropStore(function (state) {
90
- return state.onItemRemove;
91
- });
92
80
  var onItemResize = PropContext.usePropStore(function (state) {
93
81
  return state.onItemResize;
94
82
  });
95
- var activeElement = BuilderContext.useBuilderStore(function (state) {
96
- return state.activeElement;
83
+ var activeElements = BuilderContext.useBuilderStore(function (state) {
84
+ return state.activeElements;
97
85
  });
98
- var setActiveElement = BuilderContext.useBuilderStore(function (state) {
99
- return state.setActiveElement;
86
+ var setActiveElements = BuilderContext.useBuilderStore(function (state) {
87
+ return state.setActiveElements;
100
88
  });
101
89
  var setContextMenuProps = BuilderContext.useBuilderStore(function (state) {
102
90
  return state.setContextMenuProps;
@@ -104,29 +92,36 @@ var DraggableItem = function DraggableItem(_ref) {
104
92
  var isTextEditorOpen = BuilderContext.useBuilderStore(function (state) {
105
93
  return state.isTextEditorOpen;
106
94
  });
107
- var isRightPanelOpen = BuilderContext.useBuilderStore(function (state) {
108
- return state.isRightPanelOpen;
109
- });
110
95
  var setIsRightPanelOpen = BuilderContext.useBuilderStore(function (state) {
111
96
  return state.setIsRightPanelOpen;
112
97
  });
113
98
  var setIsResize = BuilderContext.useBuilderStore(function (state) {
114
99
  return state.setIsResize;
115
100
  });
116
- var isSelected = functions.isSelectedItem(_item2.id, activeElement);
117
- var isMultipleItemSelected = activeElement !== null && activeElement.length > 1;
101
+ var setMatches = BuilderContext.useBuilderStore(function (state) {
102
+ return state.setMatches;
103
+ });
104
+ var guides = BuilderContext.useBuilderStore(function (state) {
105
+ return state.guides;
106
+ });
107
+ var zoom = BuilderContext.useBuilderStore(function (state) {
108
+ return state.zoom;
109
+ });
110
+ var isSelected = functions.isSelectedItem(_item2.id, activeElements);
118
111
 
119
112
  var select = function select(event) {
120
113
  if (!isSelected) {
121
114
  if (!event || !event.metaKey) {
115
+ // Single item selected
116
+ setActiveElements(id, true);
117
+
122
118
  if (isLocked) {
123
- setActiveElement(id, false);
124
119
  setIsRightPanelOpen(false);
125
- } else {
126
- setActiveElement(id);
127
120
  }
128
121
  } else {
129
- setActiveElement(id, undefined, true);
122
+ // Multiple items selected
123
+ setActiveElements(id, false, false);
124
+ setIsRightPanelOpen(false);
130
125
  }
131
126
  }
132
127
  };
@@ -163,7 +158,7 @@ var DraggableItem = function DraggableItem(_ref) {
163
158
  scrollZoneFunctions.removeEventListenerForSidebar();
164
159
  },
165
160
  isDragging: function isDragging() {
166
- return isMultipleItemSelected && isSelected || !isMultipleItemSelected && isSelected;
161
+ return isSelected;
167
162
  },
168
163
  item: function item() {
169
164
  select();
@@ -172,7 +167,7 @@ var DraggableItem = function DraggableItem(_ref) {
172
167
  },
173
168
  type: itemTypes.DRAGGABLE_ITEM_TYPE
174
169
  };
175
- }, [_item2, _canDrag, id, isMultipleItemSelected, isSelected]),
170
+ }, [_item2, _canDrag, id, isSelected]),
176
171
  _useDrag2 = _slicedToArray(_useDrag, 3),
177
172
  isDragging = _useDrag2[0].isDragging,
178
173
  drag = _useDrag2[1],
@@ -200,101 +195,66 @@ var DraggableItem = function DraggableItem(_ref) {
200
195
  });
201
196
  }, [left, top, width, height]);
202
197
 
203
- var onResizeStop = function onResizeStop(deltaWidth, deltaHeight, direction) {
204
- var activeItem = _objectSpread(_objectSpread({}, _item2), {}, {
205
- height: _item2.height + deltaHeight,
206
- width: _item2.width + deltaWidth
207
- });
208
-
209
- if (/left/i.test(direction)) activeItem.left = activeItem.left - deltaWidth;
210
- if (/top/i.test(direction)) activeItem.top = activeItem.top - deltaHeight;
211
-
212
- var _getIntersectionsFrom = getIntersectionsFromMatches(activeItem),
213
- newActiveBoxLeft = _getIntersectionsFrom.newActiveBoxLeft,
214
- newActiveBoxTop = _getIntersectionsFrom.newActiveBoxTop;
215
-
216
- var newResizeSize = {
217
- height: activeItem.height,
218
- left: activeItem.left,
219
- top: activeItem.top,
220
- width: activeItem.width
221
- };
222
-
223
- if (!(/top/i.test(direction) && /left/i.test(direction))) {
224
- newResizeSize = _objectSpread(_objectSpread({}, newResizeSize), {}, {
225
- height: newResizeSize.height + (newActiveBoxTop - activeItem.top),
226
- width: newResizeSize.width + (newActiveBoxLeft - activeItem.left)
227
- });
228
- }
229
-
230
- if (/top/i.test(direction) && newActiveBoxTop !== newResizeSize.top) {
231
- newResizeSize.top = newActiveBoxTop;
232
- }
233
-
234
- if (/left/i.test(direction) && newActiveBoxLeft !== newResizeSize.left) {
235
- newResizeSize.left = newActiveBoxLeft;
236
- }
237
-
198
+ var onResizeStop = function onResizeStop() {
238
199
  setIsResize(false);
239
- onItemResize(_item2, newResizeSize);
200
+ setMatches({});
201
+ onItemResize(_item2, functions.roundPositionValues({
202
+ height: stateHeight,
203
+ left: stateLeft,
204
+ top: stateTop,
205
+ width: stateWidth
206
+ }));
240
207
  };
241
208
 
242
209
  var onResize = function onResize(deltaWidth, deltaHeight, direction) {
210
+ var _newMatches$x, _newMatches$y;
211
+
243
212
  setIsResize(true);
213
+ var isLeft = /left/i.test(direction);
214
+ var isTop = /top/i.test(direction);
215
+ var isRight = /right/i.test(direction);
216
+ var isBottom = /bottom/i.test(direction);
244
217
 
245
218
  var activeItem = _objectSpread(_objectSpread({}, _item2), {}, {
246
219
  height: _item2.height + deltaHeight,
220
+ left: isLeft ? _item2.left - deltaWidth : _item2.left,
221
+ top: isTop ? _item2.top - deltaHeight : _item2.top,
247
222
  width: _item2.width + deltaWidth
248
223
  });
249
224
 
250
- if (/left/i.test(direction)) activeItem.left = activeItem.left - deltaWidth;
251
- if (/top/i.test(direction)) activeItem.top = activeItem.top - deltaHeight;
252
- handleMatches(activeItem);
253
- setResizeSize({
254
- height: activeItem.height,
255
- left: activeItem.left,
256
- top: activeItem.top,
257
- width: activeItem.width
258
- });
259
- };
260
-
261
- var deleteItem = function deleteItem() {
262
- setIsRightPanelOpen(false);
263
- setActiveElement(null);
264
- onItemRemove(_item2);
265
- onAnEventTrigger('removeItem', _item2.itemType);
266
- };
225
+ var newMatches = functions.getMatchesForItem(activeItem, guides, zoom, direction);
226
+ setMatches(newMatches);
227
+ var snapX = (newMatches === null || newMatches === void 0 ? void 0 : (_newMatches$x = newMatches.x) === null || _newMatches$x === void 0 ? void 0 : _newMatches$x.intersection) / zoom;
228
+ var snapY = (newMatches === null || newMatches === void 0 ? void 0 : (_newMatches$y = newMatches.y) === null || _newMatches$y === void 0 ? void 0 : _newMatches$y.intersection) / zoom;
229
+ var rightEdge = _item2.left + _item2.width;
230
+ var bottomEdge = _item2.top + _item2.height;
267
231
 
268
- var duplicateItem = function duplicateItem() {
269
- var itemID = generateId();
270
- onItemAdd(_objectSpread(_objectSpread({}, _item2), {}, {
271
- id: itemID,
272
- left: _item2.left + 50,
273
- top: _item2.top + 50
274
- }));
275
- onAnEventTrigger('duplicateItem', _item2.itemType);
276
- setActiveElement(itemID);
232
+ var getWidth = function getWidth() {
233
+ if (!snapX) return activeItem.width;
234
+ return isRight ? snapX - _item2.left : rightEdge - snapX;
235
+ };
277
236
 
278
- if (!isRightPanelOpen) {
279
- setIsRightPanelOpen(true);
280
- }
281
- };
237
+ var getHeight = function getHeight() {
238
+ if (!snapY) return activeItem.height;
239
+ return isBottom ? snapY - _item2.top : bottomEdge - snapY;
240
+ };
282
241
 
283
- var onClickOutside = function onClickOutside(event) {
284
- // clickoutside should not work for scrollbar
285
- var viewPort = document.querySelector('.jfReport-viewport');
286
- var clientHeight = viewPort.clientHeight,
287
- offsetHeight = viewPort.offsetHeight;
288
- var headerHeight = window.innerHeight - offsetHeight;
242
+ var getLeft = function getLeft() {
243
+ if (snapX && isLeft) return snapX;
244
+ return isLeft ? activeItem.left : _item2.left;
245
+ };
289
246
 
290
- if (event.clientY - headerHeight >= clientHeight || Array.from(event.target.classList).some(function (xClass) {
291
- return exceptionalClassesForClickOutside.includes(xClass);
292
- })) {
293
- return;
294
- }
247
+ var getTop = function getTop() {
248
+ if (snapY && isTop) return snapY;
249
+ return isTop ? activeItem.top : _item2.top;
250
+ };
295
251
 
296
- setIsRightPanelOpen(false);
297
- setActiveElement(null);
252
+ setResizeSize({
253
+ height: getHeight(),
254
+ left: getLeft(),
255
+ top: getTop(),
256
+ width: getWidth()
257
+ });
298
258
  };
299
259
 
300
260
  var onContextMenuClick = function onContextMenuClick(e) {
@@ -336,21 +296,16 @@ var DraggableItem = function DraggableItem(_ref) {
336
296
  }
337
297
  };
338
298
 
339
- var changeLockStatus = function changeLockStatus() {
340
- onAnEventTrigger(_item2.isLocked ? 'unlockReportItem' : 'lockReportItem', _item2.itemType);
341
- onItemChange({
342
- id: _item2.id
343
- }, {
344
- isLocked: _item2.isLocked ? false : true
299
+ var modifiedItem = React.useMemo(function () {
300
+ return _objectSpread(_objectSpread({}, _item2), {}, {
301
+ height: stateHeight,
302
+ left: stateLeft,
303
+ top: stateTop,
304
+ width: stateWidth
345
305
  });
346
-
347
- if (!_item2.isLocked) {
348
- setActiveElement(_item2.id, false);
349
- setIsRightPanelOpen(false);
350
- }
351
- };
352
-
306
+ }, [_item2, stateHeight, stateLeft, stateTop, stateWidth]);
353
307
  return /*#__PURE__*/jsxRuntime.jsxs(ErrorBoundary, {
308
+ item: _item2,
354
309
  children: [/*#__PURE__*/jsxRuntime.jsx(ItemPositioner, {
355
310
  classNames: "reportItemWrapper".concat(isSelected ? ' isSelected' : ''),
356
311
  style: _objectSpread(_objectSpread({}, functions.getStyles(left, top, isDragging)), {}, {
@@ -369,28 +324,16 @@ var DraggableItem = function DraggableItem(_ref) {
369
324
  style: reportItemStyle,
370
325
  children: children
371
326
  })
372
- }), /*#__PURE__*/jsxRuntime.jsx(PageItemResizer, {
373
- changeLockStatus: changeLockStatus,
374
- deleteItem: deleteItem,
375
- duplicateItem: duplicateItem,
376
- isDragging: isDragging,
377
- item: _item2,
378
- onClickOutside: onClickOutside,
327
+ }), !isDragging && isSelected && /*#__PURE__*/jsxRuntime.jsx(PageItemResizer, {
328
+ item: modifiedItem,
379
329
  onResize: onResize,
380
- onResizeStop: onResizeStop,
381
- pageID: pageID,
382
- stateHeight: stateHeight,
383
- stateLeft: stateLeft,
384
- stateTop: stateTop,
385
- stateWidth: stateWidth
330
+ onResizeStop: onResizeStop
386
331
  })]
387
332
  });
388
333
  };
389
334
 
390
335
  DraggableItem.propTypes = {
391
336
  children: PropTypes__default['default'].any,
392
- getIntersectionsFromMatches: PropTypes__default['default'].func,
393
- handleMatches: PropTypes__default['default'].func,
394
337
  item: PropTypes__default['default'].shape({
395
338
  height: PropTypes__default['default'].oneOfType([PropTypes__default['default'].number, PropTypes__default['default'].string]),
396
339
  id: PropTypes__default['default'].string,
@@ -1 +1 @@
1
- {"version":3,"file":"DraggableItem.js","sources":["../../../../src/components/DraggableItem/DraggableItem.js"],"sourcesContent":["import { useEffect, useState, memo } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDrag } from 'react-dnd';\nimport { getEmptyImage } from 'react-dnd-html5-backend';\nimport ItemPositioner from '../ItemPositioner';\nimport { DRAGGABLE_ITEM_TYPE } from '../../constants/itemTypes';\nimport { getStyles, getPosition, isSelectedItem } from '../../utils/functions';\nimport PageItemResizer from '../PageItemResizer';\nimport ErrorBoundary from '../ErrorBoundary';\nimport * as classNames from '../../constants/classNames';\nimport generateId from '../../utils/generateId';\nimport {\n addEventListenerForSidebar,\n removeEventListenerForSidebar,\n} from '../../utils/scrollZoneFunctions';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport { usePropStore } from '../../contexts/PropContext';\n\nconst exceptionalClassesForClickOutside = ['contextMenu-itemLabel', 'contextMenu-item'];\nconst reportItemStyle = {\n height: '100%',\n width: '100%',\n};\n\nconst DraggableItem = ({\n children = null,\n item = {},\n handleMatches,\n getIntersectionsFromMatches,\n}) => {\n const {\n height,\n id,\n isLocked,\n left,\n pageID,\n top,\n width,\n } = item;\n\n const [\n {\n height: stateHeight,\n left: stateLeft,\n top: stateTop,\n width: stateWidth,\n },\n setResizeSize,\n ] = useState({\n height,\n left,\n top,\n width,\n });\n\n const onAnEventTrigger = usePropStore(state => state.onAnEventTrigger);\n const onItemAdd = usePropStore(state => state.onItemAdd);\n const onItemChange = usePropStore(state => state.onItemChange);\n const onItemRemove = usePropStore(state => state.onItemRemove);\n const onItemResize = usePropStore(state => state.onItemResize);\n\n const activeElement = useBuilderStore(state => state.activeElement);\n const setActiveElement = useBuilderStore(state => state.setActiveElement);\n const setContextMenuProps = useBuilderStore(state => state.setContextMenuProps);\n const isTextEditorOpen = useBuilderStore(state => state.isTextEditorOpen);\n const isRightPanelOpen = useBuilderStore(state => state.isRightPanelOpen);\n const setIsRightPanelOpen = useBuilderStore(state => state.setIsRightPanelOpen);\n const setIsResize = useBuilderStore(state => state.setIsResize);\n\n const isSelected = isSelectedItem(item.id, activeElement);\n const isMultipleItemSelected = activeElement !== null && activeElement.length > 1;\n\n const select = event => {\n if (!isSelected) {\n if (!event || !event.metaKey) {\n if (isLocked) {\n setActiveElement(id, false);\n setIsRightPanelOpen(false);\n } else {\n setActiveElement(id);\n }\n } else {\n setActiveElement(id, undefined, true);\n }\n }\n };\n\n const canDrag = !item.isLocked && !isTextEditorOpen;\n\n const [{ isDragging }, drag, preview] = useDrag(() => ({\n canDrag: () => canDrag,\n collect: monitor => ({\n isDragging: monitor.isDragging(),\n }),\n end: (_item, monitor) => {\n const dropResult = monitor.getDropResult();\n if (dropResult && dropResult[id]) {\n const { left: dropLeft, top: dropTop } = dropResult[id];\n setResizeSize(prev => {\n return {\n height: prev.height,\n left: dropLeft,\n top: dropTop,\n width: prev.width,\n };\n });\n }\n removeEventListenerForSidebar();\n },\n isDragging: () => (isMultipleItemSelected && isSelected) || (!isMultipleItemSelected && isSelected),\n item: () => {\n select();\n addEventListenerForSidebar();\n return item;\n },\n type: DRAGGABLE_ITEM_TYPE,\n }), [\n item,\n canDrag,\n id,\n isMultipleItemSelected,\n isSelected,\n ]);\n\n useEffect(() => {\n if (preview) {\n preview(getEmptyImage(), { captureDraggingState: true });\n }\n }, [preview]);\n\n useEffect(() => {\n setResizeSize(prev => {\n if (prev.left !== left || prev.top !== top || prev.width !== width || prev.height !== height) {\n return {\n ...prev,\n height,\n left,\n top,\n width,\n };\n }\n\n return prev;\n });\n }, [left, top, width, height]);\n\n const onResizeStop = (deltaWidth, deltaHeight, direction) => {\n const activeItem = {\n ...item,\n height: item.height + deltaHeight,\n width: item.width + deltaWidth,\n };\n if (/left/i.test(direction)) activeItem.left = activeItem.left - deltaWidth;\n if (/top/i.test(direction)) activeItem.top = activeItem.top - deltaHeight;\n const { newActiveBoxLeft, newActiveBoxTop } = getIntersectionsFromMatches(activeItem);\n let newResizeSize = {\n height: activeItem.height,\n left: activeItem.left,\n top: activeItem.top,\n width: activeItem.width,\n };\n\n if (!(/top/i.test(direction) && /left/i.test(direction))) {\n newResizeSize = {\n ...newResizeSize,\n height: newResizeSize.height + (newActiveBoxTop - activeItem.top),\n width: newResizeSize.width + (newActiveBoxLeft - activeItem.left),\n };\n }\n if (/top/i.test(direction) && newActiveBoxTop !== newResizeSize.top) {\n newResizeSize.top = newActiveBoxTop;\n }\n if (/left/i.test(direction) && newActiveBoxLeft !== newResizeSize.left) {\n newResizeSize.left = newActiveBoxLeft;\n }\n setIsResize(false);\n onItemResize(item, newResizeSize);\n };\n\n const onResize = (deltaWidth, deltaHeight, direction) => {\n setIsResize(true);\n const activeItem = {\n ...item,\n height: item.height + deltaHeight,\n width: item.width + deltaWidth,\n };\n if (/left/i.test(direction)) activeItem.left = activeItem.left - deltaWidth;\n if (/top/i.test(direction)) activeItem.top = activeItem.top - deltaHeight;\n handleMatches(activeItem);\n setResizeSize({\n height: activeItem.height,\n left: activeItem.left,\n top: activeItem.top,\n width: activeItem.width,\n });\n };\n\n const deleteItem = () => {\n setIsRightPanelOpen(false);\n setActiveElement(null);\n onItemRemove(item);\n onAnEventTrigger('removeItem', item.itemType);\n };\n\n const duplicateItem = () => {\n const itemID = generateId();\n onItemAdd({\n ...item,\n id: itemID,\n left: item.left + 50,\n top: item.top + 50,\n });\n onAnEventTrigger('duplicateItem', item.itemType);\n setActiveElement(itemID);\n if (!isRightPanelOpen) {\n setIsRightPanelOpen(true);\n }\n };\n\n const onClickOutside = event => {\n // clickoutside should not work for scrollbar\n const viewPort = document.querySelector('.jfReport-viewport');\n const { clientHeight, offsetHeight } = viewPort;\n const headerHeight = window.innerHeight - offsetHeight;\n if (event.clientY - headerHeight >= clientHeight\n || Array.from(event.target.classList)\n .some(xClass => exceptionalClassesForClickOutside.includes(xClass))) {\n return;\n }\n setIsRightPanelOpen(false);\n setActiveElement(null);\n };\n\n const onContextMenuClick = e => {\n if (\n e.target.contentEditable === 'true'\n || isTextEditorOpen\n ) {\n // Dont override behaviour on text edits.\n return;\n }\n\n e.preventDefault();\n onAnEventTrigger('openContextMenu', item.itemType);\n setContextMenuProps({\n id,\n pageID,\n position: getPosition(e),\n });\n };\n\n const onDoubleClick = e => {\n if (\n e.target.contentEditable === 'true'\n || isTextEditorOpen\n ) {\n // Dont override behaviour on text edits.\n return;\n }\n\n setIsRightPanelOpen(true);\n };\n\n const duplicateWithAltKey = e => {\n if (e.altKey) {\n const itemID = generateId();\n const itemToAdd = item;\n setTimeout(() => {\n onItemAdd({\n ...itemToAdd,\n id: itemID,\n left: itemToAdd.left,\n top: itemToAdd.top,\n });\n onAnEventTrigger('duplicateItem', itemToAdd.itemType);\n });\n }\n };\n\n const changeLockStatus = () => {\n onAnEventTrigger(item.isLocked ? 'unlockReportItem' : 'lockReportItem', item.itemType);\n onItemChange({ id: item.id }, { isLocked: item.isLocked ? false : true });\n if (!item.isLocked) {\n setActiveElement(item.id, false);\n setIsRightPanelOpen(false);\n }\n };\n\n return (\n <ErrorBoundary>\n <ItemPositioner\n classNames={`reportItemWrapper${isSelected ? ' isSelected' : ''}`}\n style={{\n ...getStyles(left, top, isDragging),\n height: stateHeight,\n left: stateLeft,\n top: stateTop,\n width: stateWidth,\n }}\n >\n <div\n ref={drag}\n className={`${classNames.reportItem}${isLocked ? ' isLocked' : ''}`}\n onContextMenu={onContextMenuClick}\n onDoubleClick={onDoubleClick}\n onDragStart={duplicateWithAltKey}\n onMouseDown={select}\n style={reportItemStyle}\n >\n {children}\n </div>\n </ItemPositioner>\n <PageItemResizer\n changeLockStatus={changeLockStatus}\n deleteItem={deleteItem}\n duplicateItem={duplicateItem}\n isDragging={isDragging}\n item={item}\n onClickOutside={onClickOutside}\n onResize={onResize}\n onResizeStop={onResizeStop}\n pageID={pageID}\n stateHeight={stateHeight}\n stateLeft={stateLeft}\n stateTop={stateTop}\n stateWidth={stateWidth}\n />\n </ErrorBoundary>\n );\n};\n\nDraggableItem.propTypes = {\n children: PropTypes.any,\n getIntersectionsFromMatches: PropTypes.func,\n handleMatches: PropTypes.func,\n item: PropTypes.shape({\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n id: PropTypes.string,\n isLocked: PropTypes.bool,\n itemType: PropTypes.string,\n left: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n pageID: PropTypes.string,\n top: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n width: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n }),\n};\n\nexport default memo(DraggableItem);\n"],"names":["exceptionalClassesForClickOutside","reportItemStyle","height","width","DraggableItem","children","item","handleMatches","getIntersectionsFromMatches","id","isLocked","left","pageID","top","useState","stateHeight","stateLeft","stateTop","stateWidth","setResizeSize","onAnEventTrigger","usePropStore","state","onItemAdd","onItemChange","onItemRemove","onItemResize","activeElement","useBuilderStore","setActiveElement","setContextMenuProps","isTextEditorOpen","isRightPanelOpen","setIsRightPanelOpen","setIsResize","isSelected","isSelectedItem","isMultipleItemSelected","length","select","event","metaKey","undefined","canDrag","useDrag","collect","monitor","isDragging","end","_item","dropResult","getDropResult","dropLeft","dropTop","prev","removeEventListenerForSidebar","addEventListenerForSidebar","type","DRAGGABLE_ITEM_TYPE","drag","preview","useEffect","getEmptyImage","captureDraggingState","onResizeStop","deltaWidth","deltaHeight","direction","activeItem","test","newActiveBoxLeft","newActiveBoxTop","newResizeSize","onResize","deleteItem","itemType","duplicateItem","itemID","generateId","onClickOutside","viewPort","document","querySelector","clientHeight","offsetHeight","headerHeight","window","innerHeight","clientY","Array","from","target","classList","some","xClass","includes","onContextMenuClick","e","contentEditable","preventDefault","position","getPosition","onDoubleClick","duplicateWithAltKey","altKey","itemToAdd","setTimeout","changeLockStatus","_jsxs","_jsx","getStyles","classNames","propTypes","PropTypes","any","func","shape","oneOfType","number","string","bool","memo"],"mappings":"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"}
1
+ {"version":3,"file":"DraggableItem.js","sources":["../../../../src/components/DraggableItem/DraggableItem.js"],"sourcesContent":["import {\n useEffect, useState, memo, useMemo,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { useDrag } from 'react-dnd';\nimport { getEmptyImage } from 'react-dnd-html5-backend';\nimport ItemPositioner from '../ItemPositioner';\nimport { DRAGGABLE_ITEM_TYPE } from '../../constants/itemTypes';\nimport {\n getStyles, getPosition, isSelectedItem, getMatchesForItem, roundPositionValues,\n} from '../../utils/functions';\nimport PageItemResizer from '../PageItemResizer';\nimport ErrorBoundary from '../ErrorBoundary';\nimport * as classNames from '../../constants/classNames';\nimport generateId from '../../utils/generateId';\nimport {\n addEventListenerForSidebar,\n removeEventListenerForSidebar,\n} from '../../utils/scrollZoneFunctions';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport { usePropStore } from '../../contexts/PropContext';\n\nconst reportItemStyle = {\n height: '100%',\n width: '100%',\n};\n\nconst DraggableItem = ({\n children = null,\n item = {},\n}) => {\n const {\n height,\n id,\n isLocked,\n left,\n pageID,\n top,\n width,\n } = item;\n\n const [\n {\n height: stateHeight,\n left: stateLeft,\n top: stateTop,\n width: stateWidth,\n },\n setResizeSize,\n ] = useState({\n height,\n left,\n top,\n width,\n });\n\n const onAnEventTrigger = usePropStore(state => state.onAnEventTrigger);\n const onItemAdd = usePropStore(state => state.onItemAdd);\n const onItemResize = usePropStore(state => state.onItemResize);\n\n const activeElements = useBuilderStore(state => state.activeElements);\n const setActiveElements = useBuilderStore(state => state.setActiveElements);\n const setContextMenuProps = useBuilderStore(state => state.setContextMenuProps);\n const isTextEditorOpen = useBuilderStore(state => state.isTextEditorOpen);\n const setIsRightPanelOpen = useBuilderStore(state => state.setIsRightPanelOpen);\n const setIsResize = useBuilderStore(state => state.setIsResize);\n const setMatches = useBuilderStore(state => state.setMatches);\n const guides = useBuilderStore(state => state.guides);\n const zoom = useBuilderStore(state => state.zoom);\n\n const isSelected = isSelectedItem(item.id, activeElements);\n\n const select = event => {\n if (!isSelected) {\n if (!event || !event.metaKey) { // Single item selected\n setActiveElements(id, true);\n if (isLocked) {\n setIsRightPanelOpen(false);\n }\n } else {\n // Multiple items selected\n setActiveElements(id, false, false);\n setIsRightPanelOpen(false);\n }\n }\n };\n\n const canDrag = !item.isLocked && !isTextEditorOpen;\n\n const [{ isDragging }, drag, preview] = useDrag(() => ({\n canDrag: () => canDrag,\n collect: monitor => ({\n isDragging: monitor.isDragging(),\n }),\n end: (_item, monitor) => {\n const dropResult = monitor.getDropResult();\n if (dropResult && dropResult[id]) {\n const { left: dropLeft, top: dropTop } = dropResult[id];\n setResizeSize(prev => {\n return {\n height: prev.height,\n left: dropLeft,\n top: dropTop,\n width: prev.width,\n };\n });\n }\n removeEventListenerForSidebar();\n },\n isDragging: () => isSelected,\n item: () => {\n select();\n addEventListenerForSidebar();\n return item;\n },\n type: DRAGGABLE_ITEM_TYPE,\n }), [\n item,\n canDrag,\n id,\n isSelected,\n ]);\n\n useEffect(() => {\n if (preview) {\n preview(getEmptyImage(), { captureDraggingState: true });\n }\n }, [preview]);\n\n useEffect(() => {\n setResizeSize(prev => {\n if (prev.left !== left || prev.top !== top || prev.width !== width || prev.height !== height) {\n return {\n ...prev,\n height,\n left,\n top,\n width,\n };\n }\n\n return prev;\n });\n }, [left, top, width, height]);\n\n const onResizeStop = () => {\n setIsResize(false);\n setMatches({});\n onItemResize(item, roundPositionValues({\n height: stateHeight,\n left: stateLeft,\n top: stateTop,\n width: stateWidth,\n }));\n };\n\n const onResize = (deltaWidth, deltaHeight, direction) => {\n setIsResize(true);\n\n const isLeft = /left/i.test(direction);\n const isTop = /top/i.test(direction);\n const isRight = /right/i.test(direction);\n const isBottom = /bottom/i.test(direction);\n\n const activeItem = {\n ...item,\n height: item.height + deltaHeight,\n left: isLeft ? item.left - deltaWidth : item.left,\n top: isTop ? item.top - deltaHeight : item.top,\n width: item.width + deltaWidth,\n };\n\n const newMatches = getMatchesForItem(activeItem, guides, zoom, direction);\n setMatches(newMatches);\n\n const snapX = newMatches?.x?.intersection / zoom;\n const snapY = newMatches?.y?.intersection / zoom;\n\n const rightEdge = item.left + item.width;\n const bottomEdge = item.top + item.height;\n\n const getWidth = () => {\n if (!snapX) return activeItem.width;\n return isRight ? snapX - item.left : rightEdge - snapX;\n };\n\n const getHeight = () => {\n if (!snapY) return activeItem.height;\n return isBottom ? snapY - item.top : bottomEdge - snapY;\n };\n\n const getLeft = () => {\n if (snapX && isLeft) return snapX;\n return isLeft ? activeItem.left : item.left;\n };\n\n const getTop = () => {\n if (snapY && isTop) return snapY;\n return isTop ? activeItem.top : item.top;\n };\n\n setResizeSize({\n height: getHeight(),\n left: getLeft(),\n top: getTop(),\n width: getWidth(),\n });\n };\n\n const onContextMenuClick = e => {\n if (\n e.target.contentEditable === 'true'\n || isTextEditorOpen\n ) {\n // Dont override behaviour on text edits.\n return;\n }\n\n e.preventDefault();\n onAnEventTrigger('openContextMenu', item.itemType);\n setContextMenuProps({\n id,\n pageID,\n position: getPosition(e),\n });\n };\n\n const onDoubleClick = e => {\n if (\n e.target.contentEditable === 'true'\n || isTextEditorOpen\n ) {\n // Dont override behaviour on text edits.\n return;\n }\n\n setIsRightPanelOpen(true);\n };\n\n const duplicateWithAltKey = e => {\n if (e.altKey) {\n const itemID = generateId();\n const itemToAdd = item;\n setTimeout(() => {\n onItemAdd({\n ...itemToAdd,\n id: itemID,\n left: itemToAdd.left,\n top: itemToAdd.top,\n });\n onAnEventTrigger('duplicateItem', itemToAdd.itemType);\n });\n }\n };\n\n const modifiedItem = useMemo(() => ({\n ...item,\n height: stateHeight,\n left: stateLeft,\n top: stateTop,\n width: stateWidth,\n }), [item, stateHeight, stateLeft, stateTop, stateWidth]);\n\n return (\n <ErrorBoundary item={item}>\n <ItemPositioner\n classNames={`reportItemWrapper${isSelected ? ' isSelected' : ''}`}\n style={{\n ...getStyles(left, top, isDragging),\n height: stateHeight,\n left: stateLeft,\n top: stateTop,\n width: stateWidth,\n }}\n >\n <div\n ref={drag}\n className={`${classNames.reportItem}${isLocked ? ' isLocked' : ''}`}\n onContextMenu={onContextMenuClick}\n onDoubleClick={onDoubleClick}\n onDragStart={duplicateWithAltKey}\n onMouseDown={select}\n style={reportItemStyle}\n >\n {children}\n </div>\n </ItemPositioner>\n {!isDragging && isSelected && (\n <PageItemResizer\n item={modifiedItem}\n onResize={onResize}\n onResizeStop={onResizeStop}\n />\n )}\n </ErrorBoundary>\n );\n};\n\nDraggableItem.propTypes = {\n children: PropTypes.any,\n item: PropTypes.shape({\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n id: PropTypes.string,\n isLocked: PropTypes.bool,\n itemType: PropTypes.string,\n left: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n pageID: PropTypes.string,\n top: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n width: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n }),\n};\n\nexport default memo(DraggableItem);\n"],"names":["reportItemStyle","height","width","DraggableItem","children","item","id","isLocked","left","pageID","top","useState","stateHeight","stateLeft","stateTop","stateWidth","setResizeSize","onAnEventTrigger","usePropStore","state","onItemAdd","onItemResize","activeElements","useBuilderStore","setActiveElements","setContextMenuProps","isTextEditorOpen","setIsRightPanelOpen","setIsResize","setMatches","guides","zoom","isSelected","isSelectedItem","select","event","metaKey","canDrag","useDrag","collect","monitor","isDragging","end","_item","dropResult","getDropResult","dropLeft","dropTop","prev","removeEventListenerForSidebar","addEventListenerForSidebar","type","DRAGGABLE_ITEM_TYPE","drag","preview","useEffect","getEmptyImage","captureDraggingState","onResizeStop","roundPositionValues","onResize","deltaWidth","deltaHeight","direction","isLeft","test","isTop","isRight","isBottom","activeItem","newMatches","getMatchesForItem","snapX","x","intersection","snapY","y","rightEdge","bottomEdge","getWidth","getHeight","getLeft","getTop","onContextMenuClick","e","target","contentEditable","preventDefault","itemType","position","getPosition","onDoubleClick","duplicateWithAltKey","altKey","itemID","generateId","itemToAdd","setTimeout","modifiedItem","useMemo","_jsxs","_jsx","getStyles","classNames","propTypes","PropTypes","any","shape","oneOfType","number","string","bool","memo"],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var React = require('react');
4
- var PropTypes = require('prop-types');
5
3
  var hooks = require('../../utils/hooks.js');
4
+ var PropContext = require('../../contexts/PropContext.js');
5
+ var BuilderContext = require('../../contexts/BuilderContext.js');
6
+ var generateId = require('../../utils/generateId.js');
6
7
  var jsxRuntime = require('react/jsx-runtime');
7
8
  var lock = require('../../assets/svg/settings/lock.svg.js');
8
9
  var settings = require('../../assets/svg/settings.svg.js');
@@ -10,31 +11,80 @@ var duplicate = require('../../assets/svg/duplicate.svg.js');
10
11
  var unlock = require('../../assets/svg/settings/unlock.svg.js');
11
12
  var trash = require('../../assets/svg/trash.svg.js');
12
13
 
13
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
14
+ 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; }
14
15
 
15
- var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
16
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
16
17
 
17
- var DraggableItemActions = function DraggableItemActions(_ref) {
18
- var _ref$changeLockStatus = _ref.changeLockStatus,
19
- changeLockStatus = _ref$changeLockStatus === void 0 ? function () {} : _ref$changeLockStatus,
20
- _ref$deleteItem = _ref.deleteItem,
21
- deleteItem = _ref$deleteItem === void 0 ? function () {} : _ref$deleteItem,
22
- _ref$duplicateItem = _ref.duplicateItem,
23
- duplicateItem = _ref$duplicateItem === void 0 ? function () {} : _ref$duplicateItem,
24
- _ref$isLocked = _ref.isLocked,
25
- isLocked = _ref$isLocked === void 0 ? false : _ref$isLocked,
26
- _ref$isMultipleItemSe = _ref.isMultipleItemSelected,
27
- isMultipleItemSelected = _ref$isMultipleItemSe === void 0 ? false : _ref$isMultipleItemSe,
28
- _ref$openSettings = _ref.openSettings,
29
- openSettings = _ref$openSettings === void 0 ? function () {} : _ref$openSettings;
18
+ 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; }
30
19
 
20
+ var DraggableItemActions = function DraggableItemActions() {
31
21
  var _useTranslatedTexts = hooks.useTranslatedTexts(),
32
22
  DELETE_ITEM = _useTranslatedTexts.DELETE_ITEM,
33
23
  DUPLICATE_ITEM = _useTranslatedTexts.DUPLICATE_ITEM,
34
24
  ITEM_SETTINGS = _useTranslatedTexts.ITEM_SETTINGS,
35
25
  LOCK_ITEM = _useTranslatedTexts.LOCK_ITEM;
36
26
 
37
- if (isMultipleItemSelected) return null;
27
+ var onAnEventTrigger = PropContext.usePropStore(function (state) {
28
+ return state.onAnEventTrigger;
29
+ });
30
+ var onItemChange = PropContext.usePropStore(function (state) {
31
+ return state.onItemChange;
32
+ });
33
+ var onItemRemove = PropContext.usePropStore(function (state) {
34
+ return state.onItemRemove;
35
+ });
36
+ var onItemAdd = PropContext.usePropStore(function (state) {
37
+ return state.onItemAdd;
38
+ });
39
+ var setActiveElements = BuilderContext.useBuilderStore(function (state) {
40
+ return state.setActiveElements;
41
+ });
42
+ var resetActiveElements = BuilderContext.useBuilderStore(function (state) {
43
+ return state.resetActiveElements;
44
+ });
45
+ var setIsRightPanelOpen = BuilderContext.useBuilderStore(function (state) {
46
+ return state.setIsRightPanelOpen;
47
+ });
48
+ var selectedElements = hooks.useSelectedElements();
49
+ var item = selectedElements[0]; // ACTIONS WORKS ONLY FOR ONE ITEM
50
+
51
+ var isLocked = item.isLocked;
52
+
53
+ var changeLockStatus = function changeLockStatus() {
54
+ onAnEventTrigger(isLocked ? 'unlockReportItem' : 'lockReportItem', item.itemType);
55
+ onItemChange({
56
+ id: item.id
57
+ }, {
58
+ isLocked: isLocked ? false : true
59
+ });
60
+
61
+ if (!isLocked) {
62
+ setIsRightPanelOpen(false);
63
+ }
64
+ };
65
+
66
+ var deleteItem = function deleteItem() {
67
+ setIsRightPanelOpen(false);
68
+ resetActiveElements();
69
+ onItemRemove(item);
70
+ onAnEventTrigger('removeItem', item.itemType);
71
+ };
72
+
73
+ var duplicateItem = function duplicateItem() {
74
+ var itemID = generateId();
75
+ onItemAdd(_objectSpread(_objectSpread({}, item), {}, {
76
+ id: itemID,
77
+ left: item.left + 50,
78
+ top: item.top + 50
79
+ }));
80
+ onAnEventTrigger('duplicateItem', item.itemType);
81
+ setActiveElements(itemID, true);
82
+ setIsRightPanelOpen(true);
83
+ };
84
+
85
+ var openSettings = function openSettings() {
86
+ setIsRightPanelOpen(true);
87
+ };
38
88
 
39
89
  if (isLocked) {
40
90
  return /*#__PURE__*/jsxRuntime.jsx("div", {
@@ -88,15 +138,5 @@ var DraggableItemActions = function DraggableItemActions(_ref) {
88
138
  });
89
139
  };
90
140
 
91
- DraggableItemActions.propTypes = {
92
- changeLockStatus: PropTypes__default['default'].func,
93
- deleteItem: PropTypes__default['default'].func,
94
- duplicateItem: PropTypes__default['default'].func,
95
- isLocked: PropTypes__default['default'].bool,
96
- isMultipleItemSelected: PropTypes__default['default'].bool,
97
- openSettings: PropTypes__default['default'].func
98
- };
99
- var DraggableItemActions$1 = /*#__PURE__*/React.memo(DraggableItemActions);
100
-
101
- module.exports = DraggableItemActions$1;
141
+ module.exports = DraggableItemActions;
102
142
  //# sourceMappingURL=DraggableItemActions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DraggableItemActions.js","sources":["../../../../src/components/DraggableItem/DraggableItemActions.js"],"sourcesContent":["import { memo } from 'react';\nimport PropTypes from 'prop-types';\nimport * as icons from '../../utils/icons';\nimport { useTranslatedTexts } from '../../utils/hooks';\n\nconst DraggableItemActions = ({\n changeLockStatus = () => {},\n deleteItem = () => {},\n duplicateItem = () => {},\n isLocked = false,\n isMultipleItemSelected = false,\n openSettings = () => {},\n}) => {\n const {\n DELETE_ITEM,\n DUPLICATE_ITEM,\n ITEM_SETTINGS,\n LOCK_ITEM,\n } = useTranslatedTexts();\n\n if (isMultipleItemSelected) return null;\n\n if (isLocked) {\n return (\n <div className=\"reportItemMenu d-flex dir-col a-center forLocked\">\n <button\n className=\"reportItemMenu-item js-locked\"\n onClick={changeLockStatus}\n type=\"button\"\n >\n <icons.lock\n className=\"jfReportSVG icon-lock isWhite\"\n />\n </button>\n </div>\n );\n }\n return (\n <div className=\"reportItemMenu d-flex dir-col a-center\">\n <button\n className=\"reportItemMenu-item js-itemSettings\"\n onClick={openSettings}\n title={ITEM_SETTINGS}\n type=\"button\"\n >\n <icons.settings className=\"jfReportSVG icon-settings isWhite\" />\n </button>\n <button\n className=\"reportItemMenu-item js-duplicateItem\"\n onClick={duplicateItem}\n title={DUPLICATE_ITEM}\n type=\"button\"\n >\n <icons.duplicate className=\"jfReportSVG icon-duplicate isWhite\" />\n </button>\n <button\n className=\"reportItemMenu-item js-lockItem\"\n onClick={changeLockStatus}\n title={LOCK_ITEM}\n type=\"button\"\n >\n <icons.unlock\n className=\"jfReportSVG icon-lock isWhite\"\n />\n </button>\n <button\n className=\"reportItemMenu-item js-deleteItem\"\n onClick={deleteItem}\n title={DELETE_ITEM}\n type=\"button\"\n >\n <icons.trash className=\"jfReportSVG icon-trash isWhite\" />\n </button>\n </div>\n );\n};\n\nDraggableItemActions.propTypes = {\n changeLockStatus: PropTypes.func,\n deleteItem: PropTypes.func,\n duplicateItem: PropTypes.func,\n isLocked: PropTypes.bool,\n isMultipleItemSelected: PropTypes.bool,\n openSettings: PropTypes.func,\n};\n\nexport default memo(DraggableItemActions);\n"],"names":["DraggableItemActions","changeLockStatus","deleteItem","duplicateItem","isLocked","isMultipleItemSelected","openSettings","useTranslatedTexts","DELETE_ITEM","DUPLICATE_ITEM","ITEM_SETTINGS","LOCK_ITEM","_jsx","icons.lock","_jsxs","icons.settings","icons.duplicate","icons.unlock","icons.trash","propTypes","PropTypes","func","bool","memo"],"mappings":";;;;;;;;;;;;;;;;AAKA,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAuB,OAOvB;AAAA,mCANJC,gBAMI;AAAA,MANJA,gBAMI,sCANe,YAAM,EAMrB;AAAA,6BALJC,UAKI;AAAA,MALJA,UAKI,gCALS,YAAM,EAKf;AAAA,gCAJJC,aAII;AAAA,MAJJA,aAII,mCAJY,YAAM,EAIlB;AAAA,2BAHJC,QAGI;AAAA,MAHJA,QAGI,8BAHO,KAGP;AAAA,mCAFJC,sBAEI;AAAA,MAFJA,sBAEI,sCAFqB,KAErB;AAAA,+BADJC,YACI;AAAA,MADJA,YACI,kCADW,YAAM,EACjB;;AACJ,4BAKIC,wBAAkB,EALtB;AAAA,MACEC,WADF,uBACEA,WADF;AAAA,MAEEC,cAFF,uBAEEA,cAFF;AAAA,MAGEC,aAHF,uBAGEA,aAHF;AAAA,MAIEC,SAJF,uBAIEA,SAJF;;AAOA,MAAIN,sBAAJ,EAA4B,OAAO,IAAP;;AAE5B,MAAID,QAAJ,EAAc;AACZ,wBACEQ;AAAK,MAAA,SAAS,EAAC,kDAAf;AAAA,6BACEA;AACE,QAAA,SAAS,EAAC,+BADZ;AAEE,QAAA,OAAO,EAAEX,gBAFX;AAGE,QAAA,IAAI,EAAC,QAHP;AAAA,+BAKEW,eAACC,IAAD;AACE,UAAA,SAAS,EAAC;AADZ;AALF;AADF,MADF;AAaD;;AACD,sBACEC;AAAK,IAAA,SAAS,EAAC,wCAAf;AAAA,4BACEF;AACE,MAAA,SAAS,EAAC,qCADZ;AAEE,MAAA,OAAO,EAAEN,YAFX;AAGE,MAAA,KAAK,EAAEI,aAHT;AAIE,MAAA,IAAI,EAAC,QAJP;AAAA,6BAMEE,eAACG,QAAD;AAAgB,QAAA,SAAS,EAAC;AAA1B;AANF,MADF,eASEH;AACE,MAAA,SAAS,EAAC,sCADZ;AAEE,MAAA,OAAO,EAAET,aAFX;AAGE,MAAA,KAAK,EAAEM,cAHT;AAIE,MAAA,IAAI,EAAC,QAJP;AAAA,6BAMEG,eAACI,SAAD;AAAiB,QAAA,SAAS,EAAC;AAA3B;AANF,MATF,eAiBEJ;AACE,MAAA,SAAS,EAAC,iCADZ;AAEE,MAAA,OAAO,EAAEX,gBAFX;AAGE,MAAA,KAAK,EAAEU,SAHT;AAIE,MAAA,IAAI,EAAC,QAJP;AAAA,6BAMEC,eAACK,MAAD;AACE,QAAA,SAAS,EAAC;AADZ;AANF,MAjBF,eA2BEL;AACE,MAAA,SAAS,EAAC,mCADZ;AAEE,MAAA,OAAO,EAAEV,UAFX;AAGE,MAAA,KAAK,EAAEM,WAHT;AAIE,MAAA,IAAI,EAAC,QAJP;AAAA,6BAMEI,eAACM,KAAD;AAAa,QAAA,SAAS,EAAC;AAAvB;AANF,MA3BF;AAAA,IADF;AAsCD,CAtED;;AAwEAlB,oBAAoB,CAACmB,SAArB,GAAiC;AAC/BlB,EAAAA,gBAAgB,EAAEmB,6BAAS,CAACC,IADG;AAE/BnB,EAAAA,UAAU,EAAEkB,6BAAS,CAACC,IAFS;AAG/BlB,EAAAA,aAAa,EAAEiB,6BAAS,CAACC,IAHM;AAI/BjB,EAAAA,QAAQ,EAAEgB,6BAAS,CAACE,IAJW;AAK/BjB,EAAAA,sBAAsB,EAAEe,6BAAS,CAACE,IALH;AAM/BhB,EAAAA,YAAY,EAAEc,6BAAS,CAACC;AANO,CAAjC;AASA,0CAAeE,UAAI,CAACvB,oBAAD,CAAnB;;;;"}
1
+ {"version":3,"file":"DraggableItemActions.js","sources":["../../../../src/components/DraggableItem/DraggableItemActions.js"],"sourcesContent":["import * as icons from '../../utils/icons';\nimport { useSelectedElements, useTranslatedTexts } from '../../utils/hooks';\nimport { usePropStore } from '../../contexts/PropContext';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport generateId from '../../utils/generateId';\n\nconst DraggableItemActions = () => {\n const {\n DELETE_ITEM,\n DUPLICATE_ITEM,\n ITEM_SETTINGS,\n LOCK_ITEM,\n } = useTranslatedTexts();\n\n const onAnEventTrigger = usePropStore(state => state.onAnEventTrigger);\n const onItemChange = usePropStore(state => state.onItemChange);\n const onItemRemove = usePropStore(state => state.onItemRemove);\n const onItemAdd = usePropStore(state => state.onItemAdd);\n\n const setActiveElements = useBuilderStore(state => state.setActiveElements);\n const resetActiveElements = useBuilderStore(state => state.resetActiveElements);\n const setIsRightPanelOpen = useBuilderStore(state => state.setIsRightPanelOpen);\n\n const selectedElements = useSelectedElements();\n const item = selectedElements[0]; // ACTIONS WORKS ONLY FOR ONE ITEM\n\n const { isLocked } = item;\n\n const changeLockStatus = () => {\n onAnEventTrigger(isLocked ? 'unlockReportItem' : 'lockReportItem', item.itemType);\n onItemChange({ id: item.id }, { isLocked: isLocked ? false : true });\n if (!isLocked) {\n setIsRightPanelOpen(false);\n }\n };\n\n const deleteItem = () => {\n setIsRightPanelOpen(false);\n resetActiveElements();\n onItemRemove(item);\n onAnEventTrigger('removeItem', item.itemType);\n };\n\n const duplicateItem = () => {\n const itemID = generateId();\n onItemAdd({\n ...item,\n id: itemID,\n left: item.left + 50,\n top: item.top + 50,\n });\n onAnEventTrigger('duplicateItem', item.itemType);\n setActiveElements(itemID, true);\n setIsRightPanelOpen(true);\n };\n\n const openSettings = () => {\n setIsRightPanelOpen(true);\n };\n\n if (isLocked) {\n return (\n <div className=\"reportItemMenu d-flex dir-col a-center forLocked\">\n <button\n className=\"reportItemMenu-item js-locked\"\n onClick={changeLockStatus}\n type=\"button\"\n >\n <icons.lock\n className=\"jfReportSVG icon-lock isWhite\"\n />\n </button>\n </div>\n );\n }\n return (\n <div className=\"reportItemMenu d-flex dir-col a-center\">\n <button\n className=\"reportItemMenu-item js-itemSettings\"\n onClick={openSettings}\n title={ITEM_SETTINGS}\n type=\"button\"\n >\n <icons.settings className=\"jfReportSVG icon-settings isWhite\" />\n </button>\n <button\n className=\"reportItemMenu-item js-duplicateItem\"\n onClick={duplicateItem}\n title={DUPLICATE_ITEM}\n type=\"button\"\n >\n <icons.duplicate className=\"jfReportSVG icon-duplicate isWhite\" />\n </button>\n <button\n className=\"reportItemMenu-item js-lockItem\"\n onClick={changeLockStatus}\n title={LOCK_ITEM}\n type=\"button\"\n >\n <icons.unlock\n className=\"jfReportSVG icon-lock isWhite\"\n />\n </button>\n <button\n className=\"reportItemMenu-item js-deleteItem\"\n onClick={deleteItem}\n title={DELETE_ITEM}\n type=\"button\"\n >\n <icons.trash className=\"jfReportSVG icon-trash isWhite\" />\n </button>\n </div>\n );\n};\n\nexport default DraggableItemActions;\n"],"names":["DraggableItemActions","useTranslatedTexts","DELETE_ITEM","DUPLICATE_ITEM","ITEM_SETTINGS","LOCK_ITEM","onAnEventTrigger","usePropStore","state","onItemChange","onItemRemove","onItemAdd","setActiveElements","useBuilderStore","resetActiveElements","setIsRightPanelOpen","selectedElements","useSelectedElements","item","isLocked","changeLockStatus","itemType","id","deleteItem","duplicateItem","itemID","generateId","left","top","openSettings","_jsx","icons.lock","_jsxs","icons.settings","icons.duplicate","icons.unlock","icons.trash"],"mappings":"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"}