@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,14 +1,11 @@
1
1
  import 'core-js/modules/es.array.concat.js';
2
- import 'core-js/modules/es.array.from.js';
3
- import 'core-js/modules/es.array.includes.js';
4
- import 'core-js/modules/es.string.iterator.js';
5
- import { memo, useState, useEffect } from 'react';
2
+ import { memo, useState, useEffect, useMemo } from 'react';
6
3
  import PropTypes from 'prop-types';
7
4
  import { useDrag } from 'react-dnd';
8
5
  import { getEmptyImage } from 'react-dnd-html5-backend';
9
6
  import ItemPositioner from '../ItemPositioner.js';
10
7
  import { DRAGGABLE_ITEM_TYPE } from '../../constants/itemTypes.js';
11
- import { isSelectedItem, getStyles, getPosition } from '../../utils/functions.js';
8
+ import { isSelectedItem, getStyles, roundPositionValues, getMatchesForItem, getPosition } from '../../utils/functions.js';
12
9
  import PageItemResizer from '../PageItemResizer.js';
13
10
  import ErrorBoundry from '../ErrorBoundary.js';
14
11
  import { reportItem } from '../../constants/classNames.js';
@@ -35,7 +32,6 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
35
32
  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; }
36
33
 
37
34
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
38
- var exceptionalClassesForClickOutside = ['contextMenu-itemLabel', 'contextMenu-item'];
39
35
  var reportItemStyle = {
40
36
  height: '100%',
41
37
  width: '100%'
@@ -45,9 +41,7 @@ var DraggableItem = function DraggableItem(_ref) {
45
41
  var _ref$children = _ref.children,
46
42
  children = _ref$children === void 0 ? null : _ref$children,
47
43
  _ref$item = _ref.item,
48
- _item2 = _ref$item === void 0 ? {} : _ref$item,
49
- handleMatches = _ref.handleMatches,
50
- getIntersectionsFromMatches = _ref.getIntersectionsFromMatches;
44
+ _item2 = _ref$item === void 0 ? {} : _ref$item;
51
45
 
52
46
  var height = _item2.height,
53
47
  id = _item2.id,
@@ -77,20 +71,14 @@ var DraggableItem = function DraggableItem(_ref) {
77
71
  var onItemAdd = usePropStore(function (state) {
78
72
  return state.onItemAdd;
79
73
  });
80
- var onItemChange = usePropStore(function (state) {
81
- return state.onItemChange;
82
- });
83
- var onItemRemove = usePropStore(function (state) {
84
- return state.onItemRemove;
85
- });
86
74
  var onItemResize = usePropStore(function (state) {
87
75
  return state.onItemResize;
88
76
  });
89
- var activeElement = useBuilderStore(function (state) {
90
- return state.activeElement;
77
+ var activeElements = useBuilderStore(function (state) {
78
+ return state.activeElements;
91
79
  });
92
- var setActiveElement = useBuilderStore(function (state) {
93
- return state.setActiveElement;
80
+ var setActiveElements = useBuilderStore(function (state) {
81
+ return state.setActiveElements;
94
82
  });
95
83
  var setContextMenuProps = useBuilderStore(function (state) {
96
84
  return state.setContextMenuProps;
@@ -98,29 +86,36 @@ var DraggableItem = function DraggableItem(_ref) {
98
86
  var isTextEditorOpen = useBuilderStore(function (state) {
99
87
  return state.isTextEditorOpen;
100
88
  });
101
- var isRightPanelOpen = useBuilderStore(function (state) {
102
- return state.isRightPanelOpen;
103
- });
104
89
  var setIsRightPanelOpen = useBuilderStore(function (state) {
105
90
  return state.setIsRightPanelOpen;
106
91
  });
107
92
  var setIsResize = useBuilderStore(function (state) {
108
93
  return state.setIsResize;
109
94
  });
110
- var isSelected = isSelectedItem(_item2.id, activeElement);
111
- var isMultipleItemSelected = activeElement !== null && activeElement.length > 1;
95
+ var setMatches = useBuilderStore(function (state) {
96
+ return state.setMatches;
97
+ });
98
+ var guides = useBuilderStore(function (state) {
99
+ return state.guides;
100
+ });
101
+ var zoom = useBuilderStore(function (state) {
102
+ return state.zoom;
103
+ });
104
+ var isSelected = isSelectedItem(_item2.id, activeElements);
112
105
 
113
106
  var select = function select(event) {
114
107
  if (!isSelected) {
115
108
  if (!event || !event.metaKey) {
109
+ // Single item selected
110
+ setActiveElements(id, true);
111
+
116
112
  if (isLocked) {
117
- setActiveElement(id, false);
118
113
  setIsRightPanelOpen(false);
119
- } else {
120
- setActiveElement(id);
121
114
  }
122
115
  } else {
123
- setActiveElement(id, undefined, true);
116
+ // Multiple items selected
117
+ setActiveElements(id, false, false);
118
+ setIsRightPanelOpen(false);
124
119
  }
125
120
  }
126
121
  };
@@ -157,7 +152,7 @@ var DraggableItem = function DraggableItem(_ref) {
157
152
  removeEventListenerForSidebar();
158
153
  },
159
154
  isDragging: function isDragging() {
160
- return isMultipleItemSelected && isSelected || !isMultipleItemSelected && isSelected;
155
+ return isSelected;
161
156
  },
162
157
  item: function item() {
163
158
  select();
@@ -166,7 +161,7 @@ var DraggableItem = function DraggableItem(_ref) {
166
161
  },
167
162
  type: DRAGGABLE_ITEM_TYPE
168
163
  };
169
- }, [_item2, _canDrag, id, isMultipleItemSelected, isSelected]),
164
+ }, [_item2, _canDrag, id, isSelected]),
170
165
  _useDrag2 = _slicedToArray(_useDrag, 3),
171
166
  isDragging = _useDrag2[0].isDragging,
172
167
  drag = _useDrag2[1],
@@ -194,101 +189,66 @@ var DraggableItem = function DraggableItem(_ref) {
194
189
  });
195
190
  }, [left, top, width, height]);
196
191
 
197
- var onResizeStop = function onResizeStop(deltaWidth, deltaHeight, direction) {
198
- var activeItem = _objectSpread(_objectSpread({}, _item2), {}, {
199
- height: _item2.height + deltaHeight,
200
- width: _item2.width + deltaWidth
201
- });
202
-
203
- if (/left/i.test(direction)) activeItem.left = activeItem.left - deltaWidth;
204
- if (/top/i.test(direction)) activeItem.top = activeItem.top - deltaHeight;
205
-
206
- var _getIntersectionsFrom = getIntersectionsFromMatches(activeItem),
207
- newActiveBoxLeft = _getIntersectionsFrom.newActiveBoxLeft,
208
- newActiveBoxTop = _getIntersectionsFrom.newActiveBoxTop;
209
-
210
- var newResizeSize = {
211
- height: activeItem.height,
212
- left: activeItem.left,
213
- top: activeItem.top,
214
- width: activeItem.width
215
- };
216
-
217
- if (!(/top/i.test(direction) && /left/i.test(direction))) {
218
- newResizeSize = _objectSpread(_objectSpread({}, newResizeSize), {}, {
219
- height: newResizeSize.height + (newActiveBoxTop - activeItem.top),
220
- width: newResizeSize.width + (newActiveBoxLeft - activeItem.left)
221
- });
222
- }
223
-
224
- if (/top/i.test(direction) && newActiveBoxTop !== newResizeSize.top) {
225
- newResizeSize.top = newActiveBoxTop;
226
- }
227
-
228
- if (/left/i.test(direction) && newActiveBoxLeft !== newResizeSize.left) {
229
- newResizeSize.left = newActiveBoxLeft;
230
- }
231
-
192
+ var onResizeStop = function onResizeStop() {
232
193
  setIsResize(false);
233
- onItemResize(_item2, newResizeSize);
194
+ setMatches({});
195
+ onItemResize(_item2, roundPositionValues({
196
+ height: stateHeight,
197
+ left: stateLeft,
198
+ top: stateTop,
199
+ width: stateWidth
200
+ }));
234
201
  };
235
202
 
236
203
  var onResize = function onResize(deltaWidth, deltaHeight, direction) {
204
+ var _newMatches$x, _newMatches$y;
205
+
237
206
  setIsResize(true);
207
+ var isLeft = /left/i.test(direction);
208
+ var isTop = /top/i.test(direction);
209
+ var isRight = /right/i.test(direction);
210
+ var isBottom = /bottom/i.test(direction);
238
211
 
239
212
  var activeItem = _objectSpread(_objectSpread({}, _item2), {}, {
240
213
  height: _item2.height + deltaHeight,
214
+ left: isLeft ? _item2.left - deltaWidth : _item2.left,
215
+ top: isTop ? _item2.top - deltaHeight : _item2.top,
241
216
  width: _item2.width + deltaWidth
242
217
  });
243
218
 
244
- if (/left/i.test(direction)) activeItem.left = activeItem.left - deltaWidth;
245
- if (/top/i.test(direction)) activeItem.top = activeItem.top - deltaHeight;
246
- handleMatches(activeItem);
247
- setResizeSize({
248
- height: activeItem.height,
249
- left: activeItem.left,
250
- top: activeItem.top,
251
- width: activeItem.width
252
- });
253
- };
254
-
255
- var deleteItem = function deleteItem() {
256
- setIsRightPanelOpen(false);
257
- setActiveElement(null);
258
- onItemRemove(_item2);
259
- onAnEventTrigger('removeItem', _item2.itemType);
260
- };
219
+ var newMatches = getMatchesForItem(activeItem, guides, zoom, direction);
220
+ setMatches(newMatches);
221
+ var snapX = (newMatches === null || newMatches === void 0 ? void 0 : (_newMatches$x = newMatches.x) === null || _newMatches$x === void 0 ? void 0 : _newMatches$x.intersection) / zoom;
222
+ var snapY = (newMatches === null || newMatches === void 0 ? void 0 : (_newMatches$y = newMatches.y) === null || _newMatches$y === void 0 ? void 0 : _newMatches$y.intersection) / zoom;
223
+ var rightEdge = _item2.left + _item2.width;
224
+ var bottomEdge = _item2.top + _item2.height;
261
225
 
262
- var duplicateItem = function duplicateItem() {
263
- var itemID = generateId();
264
- onItemAdd(_objectSpread(_objectSpread({}, _item2), {}, {
265
- id: itemID,
266
- left: _item2.left + 50,
267
- top: _item2.top + 50
268
- }));
269
- onAnEventTrigger('duplicateItem', _item2.itemType);
270
- setActiveElement(itemID);
226
+ var getWidth = function getWidth() {
227
+ if (!snapX) return activeItem.width;
228
+ return isRight ? snapX - _item2.left : rightEdge - snapX;
229
+ };
271
230
 
272
- if (!isRightPanelOpen) {
273
- setIsRightPanelOpen(true);
274
- }
275
- };
231
+ var getHeight = function getHeight() {
232
+ if (!snapY) return activeItem.height;
233
+ return isBottom ? snapY - _item2.top : bottomEdge - snapY;
234
+ };
276
235
 
277
- var onClickOutside = function onClickOutside(event) {
278
- // clickoutside should not work for scrollbar
279
- var viewPort = document.querySelector('.jfReport-viewport');
280
- var clientHeight = viewPort.clientHeight,
281
- offsetHeight = viewPort.offsetHeight;
282
- var headerHeight = window.innerHeight - offsetHeight;
236
+ var getLeft = function getLeft() {
237
+ if (snapX && isLeft) return snapX;
238
+ return isLeft ? activeItem.left : _item2.left;
239
+ };
283
240
 
284
- if (event.clientY - headerHeight >= clientHeight || Array.from(event.target.classList).some(function (xClass) {
285
- return exceptionalClassesForClickOutside.includes(xClass);
286
- })) {
287
- return;
288
- }
241
+ var getTop = function getTop() {
242
+ if (snapY && isTop) return snapY;
243
+ return isTop ? activeItem.top : _item2.top;
244
+ };
289
245
 
290
- setIsRightPanelOpen(false);
291
- setActiveElement(null);
246
+ setResizeSize({
247
+ height: getHeight(),
248
+ left: getLeft(),
249
+ top: getTop(),
250
+ width: getWidth()
251
+ });
292
252
  };
293
253
 
294
254
  var onContextMenuClick = function onContextMenuClick(e) {
@@ -330,21 +290,16 @@ var DraggableItem = function DraggableItem(_ref) {
330
290
  }
331
291
  };
332
292
 
333
- var changeLockStatus = function changeLockStatus() {
334
- onAnEventTrigger(_item2.isLocked ? 'unlockReportItem' : 'lockReportItem', _item2.itemType);
335
- onItemChange({
336
- id: _item2.id
337
- }, {
338
- isLocked: _item2.isLocked ? false : true
293
+ var modifiedItem = useMemo(function () {
294
+ return _objectSpread(_objectSpread({}, _item2), {}, {
295
+ height: stateHeight,
296
+ left: stateLeft,
297
+ top: stateTop,
298
+ width: stateWidth
339
299
  });
340
-
341
- if (!_item2.isLocked) {
342
- setActiveElement(_item2.id, false);
343
- setIsRightPanelOpen(false);
344
- }
345
- };
346
-
300
+ }, [_item2, stateHeight, stateLeft, stateTop, stateWidth]);
347
301
  return /*#__PURE__*/jsxs(ErrorBoundry, {
302
+ item: _item2,
348
303
  children: [/*#__PURE__*/jsx(ItemPositioner, {
349
304
  classNames: "reportItemWrapper".concat(isSelected ? ' isSelected' : ''),
350
305
  style: _objectSpread(_objectSpread({}, getStyles(left, top, isDragging)), {}, {
@@ -363,28 +318,16 @@ var DraggableItem = function DraggableItem(_ref) {
363
318
  style: reportItemStyle,
364
319
  children: children
365
320
  })
366
- }), /*#__PURE__*/jsx(PageItemResizer, {
367
- changeLockStatus: changeLockStatus,
368
- deleteItem: deleteItem,
369
- duplicateItem: duplicateItem,
370
- isDragging: isDragging,
371
- item: _item2,
372
- onClickOutside: onClickOutside,
321
+ }), !isDragging && isSelected && /*#__PURE__*/jsx(PageItemResizer, {
322
+ item: modifiedItem,
373
323
  onResize: onResize,
374
- onResizeStop: onResizeStop,
375
- pageID: pageID,
376
- stateHeight: stateHeight,
377
- stateLeft: stateLeft,
378
- stateTop: stateTop,
379
- stateWidth: stateWidth
324
+ onResizeStop: onResizeStop
380
325
  })]
381
326
  });
382
327
  };
383
328
 
384
329
  DraggableItem.propTypes = {
385
330
  children: PropTypes.any,
386
- getIntersectionsFromMatches: PropTypes.func,
387
- handleMatches: PropTypes.func,
388
331
  item: PropTypes.shape({
389
332
  height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
390
333
  id: PropTypes.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","ErrorBoundary","_jsx","getStyles","classNames","propTypes","PropTypes","any","func","shape","oneOfType","number","string","bool","memo"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,IAAMA,iCAAiC,GAAG,CAAC,uBAAD,EAA0B,kBAA1B,CAA1C;AACA,IAAMC,eAAe,GAAG;AACtBC,EAAAA,MAAM,EAAE,MADc;AAEtBC,EAAAA,KAAK,EAAE;AAFe,CAAxB;;AAKA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,OAKhB;AAAA,2BAJJC,QAII;AAAA,MAJJA,QAII,8BAJO,IAIP;AAAA,uBAHJC,IAGI;AAAA,MAHJA,MAGI,0BAHG,EAGH;AAAA,MAFJC,aAEI,QAFJA,aAEI;AAAA,MADJC,2BACI,QADJA,2BACI;;AACJ,MACEN,MADF,GAQII,MARJ,CACEJ,MADF;AAAA,MAEEO,EAFF,GAQIH,MARJ,CAEEG,EAFF;AAAA,MAGEC,QAHF,GAQIJ,MARJ,CAGEI,QAHF;AAAA,MAIEC,IAJF,GAQIL,MARJ,CAIEK,IAJF;AAAA,MAKEC,MALF,GAQIN,MARJ,CAKEM,MALF;AAAA,MAMEC,GANF,GAQIP,MARJ,CAMEO,GANF;AAAA,MAOEV,KAPF,GAQIG,MARJ,CAOEH,KAPF;;AAUA,kBAQIW,QAAQ,CAAC;AACXZ,IAAAA,MAAM,EAANA,MADW;AAEXS,IAAAA,IAAI,EAAJA,IAFW;AAGXE,IAAAA,GAAG,EAAHA,GAHW;AAIXV,IAAAA,KAAK,EAALA;AAJW,GAAD,CARZ;AAAA;AAAA;AAAA,MAEYY,WAFZ,eAEIb,MAFJ;AAAA,MAGUc,SAHV,eAGIL,IAHJ;AAAA,MAISM,QAJT,eAIIJ,GAJJ;AAAA,MAKWK,UALX,eAKIf,KALJ;AAAA,MAOEgB,aAPF;;AAeA,MAAMC,gBAAgB,GAAGC,YAAY,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACF,gBAAV;AAAA,GAAN,CAArC;AACA,MAAMG,SAAS,GAAGF,YAAY,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACC,SAAV;AAAA,GAAN,CAA9B;AACA,MAAMC,YAAY,GAAGH,YAAY,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACE,YAAV;AAAA,GAAN,CAAjC;AACA,MAAMC,YAAY,GAAGJ,YAAY,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACG,YAAV;AAAA,GAAN,CAAjC;AACA,MAAMC,YAAY,GAAGL,YAAY,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACI,YAAV;AAAA,GAAN,CAAjC;AAEA,MAAMC,aAAa,GAAGC,eAAe,CAAC,UAAAN,KAAK;AAAA,WAAIA,KAAK,CAACK,aAAV;AAAA,GAAN,CAArC;AACA,MAAME,gBAAgB,GAAGD,eAAe,CAAC,UAAAN,KAAK;AAAA,WAAIA,KAAK,CAACO,gBAAV;AAAA,GAAN,CAAxC;AACA,MAAMC,mBAAmB,GAAGF,eAAe,CAAC,UAAAN,KAAK;AAAA,WAAIA,KAAK,CAACQ,mBAAV;AAAA,GAAN,CAA3C;AACA,MAAMC,gBAAgB,GAAGH,eAAe,CAAC,UAAAN,KAAK;AAAA,WAAIA,KAAK,CAACS,gBAAV;AAAA,GAAN,CAAxC;AACA,MAAMC,gBAAgB,GAAGJ,eAAe,CAAC,UAAAN,KAAK;AAAA,WAAIA,KAAK,CAACU,gBAAV;AAAA,GAAN,CAAxC;AACA,MAAMC,mBAAmB,GAAGL,eAAe,CAAC,UAAAN,KAAK;AAAA,WAAIA,KAAK,CAACW,mBAAV;AAAA,GAAN,CAA3C;AACA,MAAMC,WAAW,GAAGN,eAAe,CAAC,UAAAN,KAAK;AAAA,WAAIA,KAAK,CAACY,WAAV;AAAA,GAAN,CAAnC;AAEA,MAAMC,UAAU,GAAGC,cAAc,CAAC9B,MAAI,CAACG,EAAN,EAAUkB,aAAV,CAAjC;AACA,MAAMU,sBAAsB,GAAGV,aAAa,KAAK,IAAlB,IAA0BA,aAAa,CAACW,MAAd,GAAuB,CAAhF;;AAEA,MAAMC,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK,EAAI;AACtB,QAAI,CAACL,UAAL,EAAiB;AACf,UAAI,CAACK,KAAD,IAAU,CAACA,KAAK,CAACC,OAArB,EAA8B;AAC5B,YAAI/B,QAAJ,EAAc;AACZmB,UAAAA,gBAAgB,CAACpB,EAAD,EAAK,KAAL,CAAhB;AACAwB,UAAAA,mBAAmB,CAAC,KAAD,CAAnB;AACD,SAHD,MAGO;AACLJ,UAAAA,gBAAgB,CAACpB,EAAD,CAAhB;AACD;AACF,OAPD,MAOO;AACLoB,QAAAA,gBAAgB,CAACpB,EAAD,EAAKiC,SAAL,EAAgB,IAAhB,CAAhB;AACD;AACF;AACF,GAbD;;AAeA,MAAMC,QAAO,GAAG,CAACrC,MAAI,CAACI,QAAN,IAAkB,CAACqB,gBAAnC;;AAEA,iBAAwCa,OAAO,CAAC;AAAA,WAAO;AACrDD,MAAAA,OAAO,EAAE;AAAA,eAAMA,QAAN;AAAA,OAD4C;AAErDE,MAAAA,OAAO,EAAE,iBAAAC,OAAO;AAAA,eAAK;AACnBC,UAAAA,UAAU,EAAED,OAAO,CAACC,UAAR;AADO,SAAL;AAAA,OAFqC;AAKrDC,MAAAA,GAAG,EAAE,aAACC,KAAD,EAAQH,OAAR,EAAoB;AACvB,YAAMI,UAAU,GAAGJ,OAAO,CAACK,aAAR,EAAnB;;AACA,YAAID,UAAU,IAAIA,UAAU,CAACzC,EAAD,CAA5B,EAAkC;AAChC,+BAAyCyC,UAAU,CAACzC,EAAD,CAAnD;AAAA,cAAc2C,QAAd,kBAAQzC,IAAR;AAAA,cAA6B0C,OAA7B,kBAAwBxC,GAAxB;AACAM,UAAAA,aAAa,CAAC,UAAAmC,IAAI,EAAI;AACpB,mBAAO;AACLpD,cAAAA,MAAM,EAAEoD,IAAI,CAACpD,MADR;AAELS,cAAAA,IAAI,EAAEyC,QAFD;AAGLvC,cAAAA,GAAG,EAAEwC,OAHA;AAILlD,cAAAA,KAAK,EAAEmD,IAAI,CAACnD;AAJP,aAAP;AAMD,WAPY,CAAb;AAQD;;AACDoD,QAAAA,6BAA6B;AAC9B,OAnBoD;AAoBrDR,MAAAA,UAAU,EAAE;AAAA,eAAOV,sBAAsB,IAAIF,UAA3B,IAA2C,CAACE,sBAAD,IAA2BF,UAA5E;AAAA,OApByC;AAqBrD7B,MAAAA,IAAI,EAAE,gBAAM;AACViC,QAAAA,MAAM;AACNiB,QAAAA,0BAA0B;AAC1B,eAAOlD,MAAP;AACD,OAzBoD;AA0BrDmD,MAAAA,IAAI,EAAEC;AA1B+C,KAAP;AAAA,GAAD,EA2B3C,CACFpD,MADE,EAEFqC,QAFE,EAGFlC,EAHE,EAIF4B,sBAJE,EAKFF,UALE,CA3B2C,CAA/C;AAAA;AAAA,MAASY,UAAT,gBAASA,UAAT;AAAA,MAAuBY,IAAvB;AAAA,MAA6BC,OAA7B;;AAmCAC,EAAAA,SAAS,CAAC,YAAM;AACd,QAAID,OAAJ,EAAa;AACXA,MAAAA,OAAO,CAACE,aAAa,EAAd,EAAkB;AAAEC,QAAAA,oBAAoB,EAAE;AAAxB,OAAlB,CAAP;AACD;AACF,GAJQ,EAIN,CAACH,OAAD,CAJM,CAAT;AAMAC,EAAAA,SAAS,CAAC,YAAM;AACd1C,IAAAA,aAAa,CAAC,UAAAmC,IAAI,EAAI;AACpB,UAAIA,IAAI,CAAC3C,IAAL,KAAcA,IAAd,IAAsB2C,IAAI,CAACzC,GAAL,KAAaA,GAAnC,IAA0CyC,IAAI,CAACnD,KAAL,KAAeA,KAAzD,IAAkEmD,IAAI,CAACpD,MAAL,KAAgBA,MAAtF,EAA8F;AAC5F,+CACKoD,IADL;AAEEpD,UAAAA,MAAM,EAANA,MAFF;AAGES,UAAAA,IAAI,EAAJA,IAHF;AAIEE,UAAAA,GAAG,EAAHA,GAJF;AAKEV,UAAAA,KAAK,EAALA;AALF;AAOD;;AAED,aAAOmD,IAAP;AACD,KAZY,CAAb;AAaD,GAdQ,EAcN,CAAC3C,IAAD,EAAOE,GAAP,EAAYV,KAAZ,EAAmBD,MAAnB,CAdM,CAAT;;AAgBA,MAAM8D,YAAY,GAAG,SAAfA,YAAe,CAACC,UAAD,EAAaC,WAAb,EAA0BC,SAA1B,EAAwC;AAC3D,QAAMC,UAAU,mCACX9D,MADW;AAEdJ,MAAAA,MAAM,EAAEI,MAAI,CAACJ,MAAL,GAAcgE,WAFR;AAGd/D,MAAAA,KAAK,EAAEG,MAAI,CAACH,KAAL,GAAa8D;AAHN,MAAhB;;AAKA,QAAI,QAAQI,IAAR,CAAaF,SAAb,CAAJ,EAA6BC,UAAU,CAACzD,IAAX,GAAkByD,UAAU,CAACzD,IAAX,GAAkBsD,UAApC;AAC7B,QAAI,OAAOI,IAAP,CAAYF,SAAZ,CAAJ,EAA4BC,UAAU,CAACvD,GAAX,GAAiBuD,UAAU,CAACvD,GAAX,GAAiBqD,WAAlC;;AAC5B,gCAA8C1D,2BAA2B,CAAC4D,UAAD,CAAzE;AAAA,QAAQE,gBAAR,yBAAQA,gBAAR;AAAA,QAA0BC,eAA1B,yBAA0BA,eAA1B;;AACA,QAAIC,aAAa,GAAG;AAClBtE,MAAAA,MAAM,EAAEkE,UAAU,CAAClE,MADD;AAElBS,MAAAA,IAAI,EAAEyD,UAAU,CAACzD,IAFC;AAGlBE,MAAAA,GAAG,EAAEuD,UAAU,CAACvD,GAHE;AAIlBV,MAAAA,KAAK,EAAEiE,UAAU,CAACjE;AAJA,KAApB;;AAOA,QAAI,EAAE,OAAOkE,IAAP,CAAYF,SAAZ,KAA0B,QAAQE,IAAR,CAAaF,SAAb,CAA5B,CAAJ,EAA0D;AACxDK,MAAAA,aAAa,mCACRA,aADQ;AAEXtE,QAAAA,MAAM,EAAEsE,aAAa,CAACtE,MAAd,IAAwBqE,eAAe,GAAGH,UAAU,CAACvD,GAArD,CAFG;AAGXV,QAAAA,KAAK,EAAEqE,aAAa,CAACrE,KAAd,IAAuBmE,gBAAgB,GAAGF,UAAU,CAACzD,IAArD;AAHI,QAAb;AAKD;;AACD,QAAI,OAAO0D,IAAP,CAAYF,SAAZ,KAA0BI,eAAe,KAAKC,aAAa,CAAC3D,GAAhE,EAAqE;AACnE2D,MAAAA,aAAa,CAAC3D,GAAd,GAAoB0D,eAApB;AACD;;AACD,QAAI,QAAQF,IAAR,CAAaF,SAAb,KAA2BG,gBAAgB,KAAKE,aAAa,CAAC7D,IAAlE,EAAwE;AACtE6D,MAAAA,aAAa,CAAC7D,IAAd,GAAqB2D,gBAArB;AACD;;AACDpC,IAAAA,WAAW,CAAC,KAAD,CAAX;AACAR,IAAAA,YAAY,CAACpB,MAAD,EAAOkE,aAAP,CAAZ;AACD,GA/BD;;AAiCA,MAAMC,QAAQ,GAAG,SAAXA,QAAW,CAACR,UAAD,EAAaC,WAAb,EAA0BC,SAA1B,EAAwC;AACvDjC,IAAAA,WAAW,CAAC,IAAD,CAAX;;AACA,QAAMkC,UAAU,mCACX9D,MADW;AAEdJ,MAAAA,MAAM,EAAEI,MAAI,CAACJ,MAAL,GAAcgE,WAFR;AAGd/D,MAAAA,KAAK,EAAEG,MAAI,CAACH,KAAL,GAAa8D;AAHN,MAAhB;;AAKA,QAAI,QAAQI,IAAR,CAAaF,SAAb,CAAJ,EAA6BC,UAAU,CAACzD,IAAX,GAAkByD,UAAU,CAACzD,IAAX,GAAkBsD,UAApC;AAC7B,QAAI,OAAOI,IAAP,CAAYF,SAAZ,CAAJ,EAA4BC,UAAU,CAACvD,GAAX,GAAiBuD,UAAU,CAACvD,GAAX,GAAiBqD,WAAlC;AAC5B3D,IAAAA,aAAa,CAAC6D,UAAD,CAAb;AACAjD,IAAAA,aAAa,CAAC;AACZjB,MAAAA,MAAM,EAAEkE,UAAU,CAAClE,MADP;AAEZS,MAAAA,IAAI,EAAEyD,UAAU,CAACzD,IAFL;AAGZE,MAAAA,GAAG,EAAEuD,UAAU,CAACvD,GAHJ;AAIZV,MAAAA,KAAK,EAAEiE,UAAU,CAACjE;AAJN,KAAD,CAAb;AAMD,GAhBD;;AAkBA,MAAMuE,UAAU,GAAG,SAAbA,UAAa,GAAM;AACvBzC,IAAAA,mBAAmB,CAAC,KAAD,CAAnB;AACAJ,IAAAA,gBAAgB,CAAC,IAAD,CAAhB;AACAJ,IAAAA,YAAY,CAACnB,MAAD,CAAZ;AACAc,IAAAA,gBAAgB,CAAC,YAAD,EAAed,MAAI,CAACqE,QAApB,CAAhB;AACD,GALD;;AAOA,MAAMC,aAAa,GAAG,SAAhBA,aAAgB,GAAM;AAC1B,QAAMC,MAAM,GAAGC,UAAU,EAAzB;AACAvD,IAAAA,SAAS,iCACJjB,MADI;AAEPG,MAAAA,EAAE,EAAEoE,MAFG;AAGPlE,MAAAA,IAAI,EAAEL,MAAI,CAACK,IAAL,GAAY,EAHX;AAIPE,MAAAA,GAAG,EAAEP,MAAI,CAACO,GAAL,GAAW;AAJT,OAAT;AAMAO,IAAAA,gBAAgB,CAAC,eAAD,EAAkBd,MAAI,CAACqE,QAAvB,CAAhB;AACA9C,IAAAA,gBAAgB,CAACgD,MAAD,CAAhB;;AACA,QAAI,CAAC7C,gBAAL,EAAuB;AACrBC,MAAAA,mBAAmB,CAAC,IAAD,CAAnB;AACD;AACF,GAbD;;AAeA,MAAM8C,cAAc,GAAG,SAAjBA,cAAiB,CAAAvC,KAAK,EAAI;AAC9B;AACA,QAAMwC,QAAQ,GAAGC,QAAQ,CAACC,aAAT,CAAuB,oBAAvB,CAAjB;AACA,QAAQC,YAAR,GAAuCH,QAAvC,CAAQG,YAAR;AAAA,QAAsBC,YAAtB,GAAuCJ,QAAvC,CAAsBI,YAAtB;AACA,QAAMC,YAAY,GAAGC,MAAM,CAACC,WAAP,GAAqBH,YAA1C;;AACA,QAAI5C,KAAK,CAACgD,OAAN,GAAgBH,YAAhB,IAAgCF,YAAhC,IACGM,KAAK,CAACC,IAAN,CAAWlD,KAAK,CAACmD,MAAN,CAAaC,SAAxB,EACAC,IADA,CACK,UAAAC,MAAM;AAAA,aAAI9F,iCAAiC,CAAC+F,QAAlC,CAA2CD,MAA3C,CAAJ;AAAA,KADX,CADP,EAE2E;AACzE;AACD;;AACD7D,IAAAA,mBAAmB,CAAC,KAAD,CAAnB;AACAJ,IAAAA,gBAAgB,CAAC,IAAD,CAAhB;AACD,GAZD;;AAcA,MAAMmE,kBAAkB,GAAG,SAArBA,kBAAqB,CAAAC,CAAC,EAAI;AAC9B,QACEA,CAAC,CAACN,MAAF,CAASO,eAAT,KAA6B,MAA7B,IACGnE,gBAFL,EAGE;AACA;AACA;AACD;;AAEDkE,IAAAA,CAAC,CAACE,cAAF;AACA/E,IAAAA,gBAAgB,CAAC,iBAAD,EAAoBd,MAAI,CAACqE,QAAzB,CAAhB;AACA7C,IAAAA,mBAAmB,CAAC;AAClBrB,MAAAA,EAAE,EAAFA,EADkB;AAElBG,MAAAA,MAAM,EAANA,MAFkB;AAGlBwF,MAAAA,QAAQ,EAAEC,WAAW,CAACJ,CAAD;AAHH,KAAD,CAAnB;AAKD,GAhBD;;AAkBA,MAAMK,aAAa,GAAG,SAAhBA,aAAgB,CAAAL,CAAC,EAAI;AACzB,QACEA,CAAC,CAACN,MAAF,CAASO,eAAT,KAA6B,MAA7B,IACGnE,gBAFL,EAGE;AACA;AACA;AACD;;AAEDE,IAAAA,mBAAmB,CAAC,IAAD,CAAnB;AACD,GAVD;;AAYA,MAAMsE,mBAAmB,GAAG,SAAtBA,mBAAsB,CAAAN,CAAC,EAAI;AAC/B,QAAIA,CAAC,CAACO,MAAN,EAAc;AACZ,UAAM3B,MAAM,GAAGC,UAAU,EAAzB;AACA,UAAM2B,SAAS,GAAGnG,MAAlB;AACAoG,MAAAA,UAAU,CAAC,YAAM;AACfnF,QAAAA,SAAS,iCACJkF,SADI;AAEPhG,UAAAA,EAAE,EAAEoE,MAFG;AAGPlE,UAAAA,IAAI,EAAE8F,SAAS,CAAC9F,IAHT;AAIPE,UAAAA,GAAG,EAAE4F,SAAS,CAAC5F;AAJR,WAAT;AAMAO,QAAAA,gBAAgB,CAAC,eAAD,EAAkBqF,SAAS,CAAC9B,QAA5B,CAAhB;AACD,OARS,CAAV;AASD;AACF,GAdD;;AAgBA,MAAMgC,gBAAgB,GAAG,SAAnBA,gBAAmB,GAAM;AAC7BvF,IAAAA,gBAAgB,CAACd,MAAI,CAACI,QAAL,GAAgB,kBAAhB,GAAqC,gBAAtC,EAAwDJ,MAAI,CAACqE,QAA7D,CAAhB;AACAnD,IAAAA,YAAY,CAAC;AAAEf,MAAAA,EAAE,EAAEH,MAAI,CAACG;AAAX,KAAD,EAAkB;AAAEC,MAAAA,QAAQ,EAAEJ,MAAI,CAACI,QAAL,GAAgB,KAAhB,GAAwB;AAApC,KAAlB,CAAZ;;AACA,QAAI,CAACJ,MAAI,CAACI,QAAV,EAAoB;AAClBmB,MAAAA,gBAAgB,CAACvB,MAAI,CAACG,EAAN,EAAU,KAAV,CAAhB;AACAwB,MAAAA,mBAAmB,CAAC,KAAD,CAAnB;AACD;AACF,GAPD;;AASA,sBACE2E,KAACC,YAAD;AAAA,4BACEC,IAAC,cAAD;AACE,MAAA,UAAU,6BAAsB3E,UAAU,GAAG,aAAH,GAAmB,EAAnD,CADZ;AAEE,MAAA,KAAK,kCACA4E,SAAS,CAACpG,IAAD,EAAOE,GAAP,EAAYkC,UAAZ,CADT;AAEH7C,QAAAA,MAAM,EAAEa,WAFL;AAGHJ,QAAAA,IAAI,EAAEK,SAHH;AAIHH,QAAAA,GAAG,EAAEI,QAJF;AAKHd,QAAAA,KAAK,EAAEe;AALJ,QAFP;AAAA,6BAUE4F;AACE,QAAA,GAAG,EAAEnD,IADP;AAEE,QAAA,SAAS,YAAKqD,UAAL,SAA6BtG,QAAQ,GAAG,WAAH,GAAiB,EAAtD,CAFX;AAGE,QAAA,aAAa,EAAEsF,kBAHjB;AAIE,QAAA,aAAa,EAAEM,aAJjB;AAKE,QAAA,WAAW,EAAEC,mBALf;AAME,QAAA,WAAW,EAAEhE,MANf;AAOE,QAAA,KAAK,EAAEtC,eAPT;AAAA,kBASGI;AATH;AAVF,MADF,eAuBEyG,IAAC,eAAD;AACE,MAAA,gBAAgB,EAAEH,gBADpB;AAEE,MAAA,UAAU,EAAEjC,UAFd;AAGE,MAAA,aAAa,EAAEE,aAHjB;AAIE,MAAA,UAAU,EAAE7B,UAJd;AAKE,MAAA,IAAI,EAAEzC,MALR;AAME,MAAA,cAAc,EAAEyE,cANlB;AAOE,MAAA,QAAQ,EAAEN,QAPZ;AAQE,MAAA,YAAY,EAAET,YARhB;AASE,MAAA,MAAM,EAAEpD,MATV;AAUE,MAAA,WAAW,EAAEG,WAVf;AAWE,MAAA,SAAS,EAAEC,SAXb;AAYE,MAAA,QAAQ,EAAEC,QAZZ;AAaE,MAAA,UAAU,EAAEC;AAbd,MAvBF;AAAA,IADF;AAyCD,CAjTD;;AAmTAd,aAAa,CAAC6G,SAAd,GAA0B;AACxB5G,EAAAA,QAAQ,EAAE6G,SAAS,CAACC,GADI;AAExB3G,EAAAA,2BAA2B,EAAE0G,SAAS,CAACE,IAFf;AAGxB7G,EAAAA,aAAa,EAAE2G,SAAS,CAACE,IAHD;AAIxB9G,EAAAA,IAAI,EAAE4G,SAAS,CAACG,KAAV,CAAgB;AACpBnH,IAAAA,MAAM,EAAEgH,SAAS,CAACI,SAAV,CAAoB,CAC1BJ,SAAS,CAACK,MADgB,EAE1BL,SAAS,CAACM,MAFgB,CAApB,CADY;AAKpB/G,IAAAA,EAAE,EAAEyG,SAAS,CAACM,MALM;AAMpB9G,IAAAA,QAAQ,EAAEwG,SAAS,CAACO,IANA;AAOpB9C,IAAAA,QAAQ,EAAEuC,SAAS,CAACM,MAPA;AAQpB7G,IAAAA,IAAI,EAAEuG,SAAS,CAACI,SAAV,CAAoB,CACxBJ,SAAS,CAACK,MADc,EAExBL,SAAS,CAACM,MAFc,CAApB,CARc;AAYpB5G,IAAAA,MAAM,EAAEsG,SAAS,CAACM,MAZE;AAapB3G,IAAAA,GAAG,EAAEqG,SAAS,CAACI,SAAV,CAAoB,CACvBJ,SAAS,CAACK,MADa,EAEvBL,SAAS,CAACM,MAFa,CAApB,CAbe;AAiBpBrH,IAAAA,KAAK,EAAE+G,SAAS,CAACI,SAAV,CAAoB,CACzBJ,SAAS,CAACK,MADe,EAEzBL,SAAS,CAACM,MAFe,CAApB;AAjBa,GAAhB;AAJkB,CAA1B;AA4BA,mCAAeE,IAAI,CAACtH,aAAD,CAAnB;;;;"}
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","ErrorBoundary","_jsx","getStyles","classNames","propTypes","PropTypes","any","shape","oneOfType","number","string","bool","memo"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBA,IAAMA,eAAe,GAAG;AACtBC,EAAAA,MAAM,EAAE,MADc;AAEtBC,EAAAA,KAAK,EAAE;AAFe,CAAxB;;AAKA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,OAGhB;AAAA,2BAFJC,QAEI;AAAA,MAFJA,QAEI,8BAFO,IAEP;AAAA,uBADJC,IACI;AAAA,MADJA,MACI,0BADG,EACH;;AACJ,MACEJ,MADF,GAQII,MARJ,CACEJ,MADF;AAAA,MAEEK,EAFF,GAQID,MARJ,CAEEC,EAFF;AAAA,MAGEC,QAHF,GAQIF,MARJ,CAGEE,QAHF;AAAA,MAIEC,IAJF,GAQIH,MARJ,CAIEG,IAJF;AAAA,MAKEC,MALF,GAQIJ,MARJ,CAKEI,MALF;AAAA,MAMEC,GANF,GAQIL,MARJ,CAMEK,GANF;AAAA,MAOER,KAPF,GAQIG,MARJ,CAOEH,KAPF;;AAUA,kBAQIS,QAAQ,CAAC;AACXV,IAAAA,MAAM,EAANA,MADW;AAEXO,IAAAA,IAAI,EAAJA,IAFW;AAGXE,IAAAA,GAAG,EAAHA,GAHW;AAIXR,IAAAA,KAAK,EAALA;AAJW,GAAD,CARZ;AAAA;AAAA;AAAA,MAEYU,WAFZ,eAEIX,MAFJ;AAAA,MAGUY,SAHV,eAGIL,IAHJ;AAAA,MAISM,QAJT,eAIIJ,GAJJ;AAAA,MAKWK,UALX,eAKIb,KALJ;AAAA,MAOEc,aAPF;;AAeA,MAAMC,gBAAgB,GAAGC,YAAY,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACF,gBAAV;AAAA,GAAN,CAArC;AACA,MAAMG,SAAS,GAAGF,YAAY,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACC,SAAV;AAAA,GAAN,CAA9B;AACA,MAAMC,YAAY,GAAGH,YAAY,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACE,YAAV;AAAA,GAAN,CAAjC;AAEA,MAAMC,cAAc,GAAGC,eAAe,CAAC,UAAAJ,KAAK;AAAA,WAAIA,KAAK,CAACG,cAAV;AAAA,GAAN,CAAtC;AACA,MAAME,iBAAiB,GAAGD,eAAe,CAAC,UAAAJ,KAAK;AAAA,WAAIA,KAAK,CAACK,iBAAV;AAAA,GAAN,CAAzC;AACA,MAAMC,mBAAmB,GAAGF,eAAe,CAAC,UAAAJ,KAAK;AAAA,WAAIA,KAAK,CAACM,mBAAV;AAAA,GAAN,CAA3C;AACA,MAAMC,gBAAgB,GAAGH,eAAe,CAAC,UAAAJ,KAAK;AAAA,WAAIA,KAAK,CAACO,gBAAV;AAAA,GAAN,CAAxC;AACA,MAAMC,mBAAmB,GAAGJ,eAAe,CAAC,UAAAJ,KAAK;AAAA,WAAIA,KAAK,CAACQ,mBAAV;AAAA,GAAN,CAA3C;AACA,MAAMC,WAAW,GAAGL,eAAe,CAAC,UAAAJ,KAAK;AAAA,WAAIA,KAAK,CAACS,WAAV;AAAA,GAAN,CAAnC;AACA,MAAMC,UAAU,GAAGN,eAAe,CAAC,UAAAJ,KAAK;AAAA,WAAIA,KAAK,CAACU,UAAV;AAAA,GAAN,CAAlC;AACA,MAAMC,MAAM,GAAGP,eAAe,CAAC,UAAAJ,KAAK;AAAA,WAAIA,KAAK,CAACW,MAAV;AAAA,GAAN,CAA9B;AACA,MAAMC,IAAI,GAAGR,eAAe,CAAC,UAAAJ,KAAK;AAAA,WAAIA,KAAK,CAACY,IAAV;AAAA,GAAN,CAA5B;AAEA,MAAMC,UAAU,GAAGC,cAAc,CAAC5B,MAAI,CAACC,EAAN,EAAUgB,cAAV,CAAjC;;AAEA,MAAMY,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK,EAAI;AACtB,QAAI,CAACH,UAAL,EAAiB;AACf,UAAI,CAACG,KAAD,IAAU,CAACA,KAAK,CAACC,OAArB,EAA8B;AAAE;AAC9BZ,QAAAA,iBAAiB,CAAClB,EAAD,EAAK,IAAL,CAAjB;;AACA,YAAIC,QAAJ,EAAc;AACZoB,UAAAA,mBAAmB,CAAC,KAAD,CAAnB;AACD;AACF,OALD,MAKO;AACL;AACAH,QAAAA,iBAAiB,CAAClB,EAAD,EAAK,KAAL,EAAY,KAAZ,CAAjB;AACAqB,QAAAA,mBAAmB,CAAC,KAAD,CAAnB;AACD;AACF;AACF,GAbD;;AAeA,MAAMU,QAAO,GAAG,CAAChC,MAAI,CAACE,QAAN,IAAkB,CAACmB,gBAAnC;;AAEA,iBAAwCY,OAAO,CAAC;AAAA,WAAO;AACrDD,MAAAA,OAAO,EAAE;AAAA,eAAMA,QAAN;AAAA,OAD4C;AAErDE,MAAAA,OAAO,EAAE,iBAAAC,OAAO;AAAA,eAAK;AACnBC,UAAAA,UAAU,EAAED,OAAO,CAACC,UAAR;AADO,SAAL;AAAA,OAFqC;AAKrDC,MAAAA,GAAG,EAAE,aAACC,KAAD,EAAQH,OAAR,EAAoB;AACvB,YAAMI,UAAU,GAAGJ,OAAO,CAACK,aAAR,EAAnB;;AACA,YAAID,UAAU,IAAIA,UAAU,CAACtC,EAAD,CAA5B,EAAkC;AAChC,+BAAyCsC,UAAU,CAACtC,EAAD,CAAnD;AAAA,cAAcwC,QAAd,kBAAQtC,IAAR;AAAA,cAA6BuC,OAA7B,kBAAwBrC,GAAxB;AACAM,UAAAA,aAAa,CAAC,UAAAgC,IAAI,EAAI;AACpB,mBAAO;AACL/C,cAAAA,MAAM,EAAE+C,IAAI,CAAC/C,MADR;AAELO,cAAAA,IAAI,EAAEsC,QAFD;AAGLpC,cAAAA,GAAG,EAAEqC,OAHA;AAIL7C,cAAAA,KAAK,EAAE8C,IAAI,CAAC9C;AAJP,aAAP;AAMD,WAPY,CAAb;AAQD;;AACD+C,QAAAA,6BAA6B;AAC9B,OAnBoD;AAoBrDR,MAAAA,UAAU,EAAE;AAAA,eAAMT,UAAN;AAAA,OApByC;AAqBrD3B,MAAAA,IAAI,EAAE,gBAAM;AACV6B,QAAAA,MAAM;AACNgB,QAAAA,0BAA0B;AAC1B,eAAO7C,MAAP;AACD,OAzBoD;AA0BrD8C,MAAAA,IAAI,EAAEC;AA1B+C,KAAP;AAAA,GAAD,EA2B3C,CACF/C,MADE,EAEFgC,QAFE,EAGF/B,EAHE,EAIF0B,UAJE,CA3B2C,CAA/C;AAAA;AAAA,MAASS,UAAT,gBAASA,UAAT;AAAA,MAAuBY,IAAvB;AAAA,MAA6BC,OAA7B;;AAkCAC,EAAAA,SAAS,CAAC,YAAM;AACd,QAAID,OAAJ,EAAa;AACXA,MAAAA,OAAO,CAACE,aAAa,EAAd,EAAkB;AAAEC,QAAAA,oBAAoB,EAAE;AAAxB,OAAlB,CAAP;AACD;AACF,GAJQ,EAIN,CAACH,OAAD,CAJM,CAAT;AAMAC,EAAAA,SAAS,CAAC,YAAM;AACdvC,IAAAA,aAAa,CAAC,UAAAgC,IAAI,EAAI;AACpB,UAAIA,IAAI,CAACxC,IAAL,KAAcA,IAAd,IAAsBwC,IAAI,CAACtC,GAAL,KAAaA,GAAnC,IAA0CsC,IAAI,CAAC9C,KAAL,KAAeA,KAAzD,IAAkE8C,IAAI,CAAC/C,MAAL,KAAgBA,MAAtF,EAA8F;AAC5F,+CACK+C,IADL;AAEE/C,UAAAA,MAAM,EAANA,MAFF;AAGEO,UAAAA,IAAI,EAAJA,IAHF;AAIEE,UAAAA,GAAG,EAAHA,GAJF;AAKER,UAAAA,KAAK,EAALA;AALF;AAOD;;AAED,aAAO8C,IAAP;AACD,KAZY,CAAb;AAaD,GAdQ,EAcN,CAACxC,IAAD,EAAOE,GAAP,EAAYR,KAAZ,EAAmBD,MAAnB,CAdM,CAAT;;AAgBA,MAAMyD,YAAY,GAAG,SAAfA,YAAe,GAAM;AACzB9B,IAAAA,WAAW,CAAC,KAAD,CAAX;AACAC,IAAAA,UAAU,CAAC,EAAD,CAAV;AACAR,IAAAA,YAAY,CAAChB,MAAD,EAAOsD,mBAAmB,CAAC;AACrC1D,MAAAA,MAAM,EAAEW,WAD6B;AAErCJ,MAAAA,IAAI,EAAEK,SAF+B;AAGrCH,MAAAA,GAAG,EAAEI,QAHgC;AAIrCZ,MAAAA,KAAK,EAAEa;AAJ8B,KAAD,CAA1B,CAAZ;AAMD,GATD;;AAWA,MAAM6C,QAAQ,GAAG,SAAXA,QAAW,CAACC,UAAD,EAAaC,WAAb,EAA0BC,SAA1B,EAAwC;AAAA;;AACvDnC,IAAAA,WAAW,CAAC,IAAD,CAAX;AAEA,QAAMoC,MAAM,GAAG,QAAQC,IAAR,CAAaF,SAAb,CAAf;AACA,QAAMG,KAAK,GAAG,OAAOD,IAAP,CAAYF,SAAZ,CAAd;AACA,QAAMI,OAAO,GAAG,SAASF,IAAT,CAAcF,SAAd,CAAhB;AACA,QAAMK,QAAQ,GAAG,UAAUH,IAAV,CAAeF,SAAf,CAAjB;;AAEA,QAAMM,UAAU,mCACXhE,MADW;AAEdJ,MAAAA,MAAM,EAAEI,MAAI,CAACJ,MAAL,GAAc6D,WAFR;AAGdtD,MAAAA,IAAI,EAAEwD,MAAM,GAAG3D,MAAI,CAACG,IAAL,GAAYqD,UAAf,GAA4BxD,MAAI,CAACG,IAH/B;AAIdE,MAAAA,GAAG,EAAEwD,KAAK,GAAG7D,MAAI,CAACK,GAAL,GAAWoD,WAAd,GAA4BzD,MAAI,CAACK,GAJ7B;AAKdR,MAAAA,KAAK,EAAEG,MAAI,CAACH,KAAL,GAAa2D;AALN,MAAhB;;AAQA,QAAMS,UAAU,GAAGC,iBAAiB,CAACF,UAAD,EAAavC,MAAb,EAAqBC,IAArB,EAA2BgC,SAA3B,CAApC;AACAlC,IAAAA,UAAU,CAACyC,UAAD,CAAV;AAEA,QAAME,KAAK,GAAG,CAAAF,UAAU,SAAV,IAAAA,UAAU,WAAV,6BAAAA,UAAU,CAAEG,CAAZ,gEAAeC,YAAf,IAA8B3C,IAA5C;AACA,QAAM4C,KAAK,GAAG,CAAAL,UAAU,SAAV,IAAAA,UAAU,WAAV,6BAAAA,UAAU,CAAEM,CAAZ,gEAAeF,YAAf,IAA8B3C,IAA5C;AAEA,QAAM8C,SAAS,GAAGxE,MAAI,CAACG,IAAL,GAAYH,MAAI,CAACH,KAAnC;AACA,QAAM4E,UAAU,GAAGzE,MAAI,CAACK,GAAL,GAAWL,MAAI,CAACJ,MAAnC;;AAEA,QAAM8E,QAAQ,GAAG,SAAXA,QAAW,GAAM;AACrB,UAAI,CAACP,KAAL,EAAY,OAAOH,UAAU,CAACnE,KAAlB;AACZ,aAAOiE,OAAO,GAAGK,KAAK,GAAGnE,MAAI,CAACG,IAAhB,GAAuBqE,SAAS,GAAGL,KAAjD;AACD,KAHD;;AAKA,QAAMQ,SAAS,GAAG,SAAZA,SAAY,GAAM;AACtB,UAAI,CAACL,KAAL,EAAY,OAAON,UAAU,CAACpE,MAAlB;AACZ,aAAOmE,QAAQ,GAAGO,KAAK,GAAGtE,MAAI,CAACK,GAAhB,GAAsBoE,UAAU,GAAGH,KAAlD;AACD,KAHD;;AAKA,QAAMM,OAAO,GAAG,SAAVA,OAAU,GAAM;AACpB,UAAIT,KAAK,IAAIR,MAAb,EAAqB,OAAOQ,KAAP;AACrB,aAAOR,MAAM,GAAGK,UAAU,CAAC7D,IAAd,GAAqBH,MAAI,CAACG,IAAvC;AACD,KAHD;;AAKA,QAAM0E,MAAM,GAAG,SAATA,MAAS,GAAM;AACnB,UAAIP,KAAK,IAAIT,KAAb,EAAoB,OAAOS,KAAP;AACpB,aAAOT,KAAK,GAAGG,UAAU,CAAC3D,GAAd,GAAoBL,MAAI,CAACK,GAArC;AACD,KAHD;;AAKAM,IAAAA,aAAa,CAAC;AACZf,MAAAA,MAAM,EAAE+E,SAAS,EADL;AAEZxE,MAAAA,IAAI,EAAEyE,OAAO,EAFD;AAGZvE,MAAAA,GAAG,EAAEwE,MAAM,EAHC;AAIZhF,MAAAA,KAAK,EAAE6E,QAAQ;AAJH,KAAD,CAAb;AAMD,GAnDD;;AAqDA,MAAMI,kBAAkB,GAAG,SAArBA,kBAAqB,CAAAC,CAAC,EAAI;AAC9B,QACEA,CAAC,CAACC,MAAF,CAASC,eAAT,KAA6B,MAA7B,IACG5D,gBAFL,EAGE;AACA;AACA;AACD;;AAED0D,IAAAA,CAAC,CAACG,cAAF;AACAtE,IAAAA,gBAAgB,CAAC,iBAAD,EAAoBZ,MAAI,CAACmF,QAAzB,CAAhB;AACA/D,IAAAA,mBAAmB,CAAC;AAClBnB,MAAAA,EAAE,EAAFA,EADkB;AAElBG,MAAAA,MAAM,EAANA,MAFkB;AAGlBgF,MAAAA,QAAQ,EAAEC,WAAW,CAACN,CAAD;AAHH,KAAD,CAAnB;AAKD,GAhBD;;AAkBA,MAAMO,aAAa,GAAG,SAAhBA,aAAgB,CAAAP,CAAC,EAAI;AACzB,QACEA,CAAC,CAACC,MAAF,CAASC,eAAT,KAA6B,MAA7B,IACG5D,gBAFL,EAGE;AACA;AACA;AACD;;AAEDC,IAAAA,mBAAmB,CAAC,IAAD,CAAnB;AACD,GAVD;;AAYA,MAAMiE,mBAAmB,GAAG,SAAtBA,mBAAsB,CAAAR,CAAC,EAAI;AAC/B,QAAIA,CAAC,CAACS,MAAN,EAAc;AACZ,UAAMC,MAAM,GAAGC,UAAU,EAAzB;AACA,UAAMC,SAAS,GAAG3F,MAAlB;AACA4F,MAAAA,UAAU,CAAC,YAAM;AACf7E,QAAAA,SAAS,iCACJ4E,SADI;AAEP1F,UAAAA,EAAE,EAAEwF,MAFG;AAGPtF,UAAAA,IAAI,EAAEwF,SAAS,CAACxF,IAHT;AAIPE,UAAAA,GAAG,EAAEsF,SAAS,CAACtF;AAJR,WAAT;AAMAO,QAAAA,gBAAgB,CAAC,eAAD,EAAkB+E,SAAS,CAACR,QAA5B,CAAhB;AACD,OARS,CAAV;AASD;AACF,GAdD;;AAgBA,MAAMU,YAAY,GAAGC,OAAO,CAAC;AAAA,2CACxB9F,MADwB;AAE3BJ,MAAAA,MAAM,EAAEW,WAFmB;AAG3BJ,MAAAA,IAAI,EAAEK,SAHqB;AAI3BH,MAAAA,GAAG,EAAEI,QAJsB;AAK3BZ,MAAAA,KAAK,EAAEa;AALoB;AAAA,GAAD,EAMxB,CAACV,MAAD,EAAOO,WAAP,EAAoBC,SAApB,EAA+BC,QAA/B,EAAyCC,UAAzC,CANwB,CAA5B;AAQA,sBACEqF,KAACC,YAAD;AAAe,IAAA,IAAI,EAAEhG,MAArB;AAAA,4BACEiG,IAAC,cAAD;AACE,MAAA,UAAU,6BAAsBtE,UAAU,GAAG,aAAH,GAAmB,EAAnD,CADZ;AAEE,MAAA,KAAK,kCACAuE,SAAS,CAAC/F,IAAD,EAAOE,GAAP,EAAY+B,UAAZ,CADT;AAEHxC,QAAAA,MAAM,EAAEW,WAFL;AAGHJ,QAAAA,IAAI,EAAEK,SAHH;AAIHH,QAAAA,GAAG,EAAEI,QAJF;AAKHZ,QAAAA,KAAK,EAAEa;AALJ,QAFP;AAAA,6BAUEuF;AACE,QAAA,GAAG,EAAEjD,IADP;AAEE,QAAA,SAAS,YAAKmD,UAAL,SAA6BjG,QAAQ,GAAG,WAAH,GAAiB,EAAtD,CAFX;AAGE,QAAA,aAAa,EAAE4E,kBAHjB;AAIE,QAAA,aAAa,EAAEQ,aAJjB;AAKE,QAAA,WAAW,EAAEC,mBALf;AAME,QAAA,WAAW,EAAE1D,MANf;AAOE,QAAA,KAAK,EAAElC,eAPT;AAAA,kBASGI;AATH;AAVF,MADF,EAuBG,CAACqC,UAAD,IAAeT,UAAf,iBACCsE,IAAC,eAAD;AACE,MAAA,IAAI,EAAEJ,YADR;AAEE,MAAA,QAAQ,EAAEtC,QAFZ;AAGE,MAAA,YAAY,EAAEF;AAHhB,MAxBJ;AAAA,IADF;AAiCD,CA7QD;;AA+QAvD,aAAa,CAACsG,SAAd,GAA0B;AACxBrG,EAAAA,QAAQ,EAAEsG,SAAS,CAACC,GADI;AAExBtG,EAAAA,IAAI,EAAEqG,SAAS,CAACE,KAAV,CAAgB;AACpB3G,IAAAA,MAAM,EAAEyG,SAAS,CAACG,SAAV,CAAoB,CAC1BH,SAAS,CAACI,MADgB,EAE1BJ,SAAS,CAACK,MAFgB,CAApB,CADY;AAKpBzG,IAAAA,EAAE,EAAEoG,SAAS,CAACK,MALM;AAMpBxG,IAAAA,QAAQ,EAAEmG,SAAS,CAACM,IANA;AAOpBxB,IAAAA,QAAQ,EAAEkB,SAAS,CAACK,MAPA;AAQpBvG,IAAAA,IAAI,EAAEkG,SAAS,CAACG,SAAV,CAAoB,CACxBH,SAAS,CAACI,MADc,EAExBJ,SAAS,CAACK,MAFc,CAApB,CARc;AAYpBtG,IAAAA,MAAM,EAAEiG,SAAS,CAACK,MAZE;AAapBrG,IAAAA,GAAG,EAAEgG,SAAS,CAACG,SAAV,CAAoB,CACvBH,SAAS,CAACI,MADa,EAEvBJ,SAAS,CAACK,MAFa,CAApB,CAbe;AAiBpB7G,IAAAA,KAAK,EAAEwG,SAAS,CAACG,SAAV,CAAoB,CACzBH,SAAS,CAACI,MADe,EAEzBJ,SAAS,CAACK,MAFe,CAApB;AAjBa,GAAhB;AAFkB,CAA1B;AA0BA,mCAAeE,IAAI,CAAC9G,aAAD,CAAnB;;;;"}
@@ -1,6 +1,7 @@
1
- import { memo } from 'react';
2
- import PropTypes from 'prop-types';
3
- import { useTranslatedTexts } from '../../utils/hooks.js';
1
+ import { useTranslatedTexts, useSelectedElements } from '../../utils/hooks.js';
2
+ import { usePropStore } from '../../contexts/PropContext.js';
3
+ import { useBuilderStore } from '../../contexts/BuilderContext.js';
4
+ import generateId from '../../utils/generateId.js';
4
5
  import { jsx, jsxs } from 'react/jsx-runtime';
5
6
  import SvgLock from '../../assets/svg/settings/lock.svg.js';
6
7
  import SvgSettings from '../../assets/svg/settings.svg.js';
@@ -8,27 +9,80 @@ import SvgDuplicate from '../../assets/svg/duplicate.svg.js';
8
9
  import SvgUnlock from '../../assets/svg/settings/unlock.svg.js';
9
10
  import SvgTrash from '../../assets/svg/trash.svg.js';
10
11
 
11
- var DraggableItemActions = function DraggableItemActions(_ref) {
12
- var _ref$changeLockStatus = _ref.changeLockStatus,
13
- changeLockStatus = _ref$changeLockStatus === void 0 ? function () {} : _ref$changeLockStatus,
14
- _ref$deleteItem = _ref.deleteItem,
15
- deleteItem = _ref$deleteItem === void 0 ? function () {} : _ref$deleteItem,
16
- _ref$duplicateItem = _ref.duplicateItem,
17
- duplicateItem = _ref$duplicateItem === void 0 ? function () {} : _ref$duplicateItem,
18
- _ref$isLocked = _ref.isLocked,
19
- isLocked = _ref$isLocked === void 0 ? false : _ref$isLocked,
20
- _ref$isMultipleItemSe = _ref.isMultipleItemSelected,
21
- isMultipleItemSelected = _ref$isMultipleItemSe === void 0 ? false : _ref$isMultipleItemSe,
22
- _ref$openSettings = _ref.openSettings,
23
- openSettings = _ref$openSettings === void 0 ? function () {} : _ref$openSettings;
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; }
24
13
 
14
+ 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; }
15
+
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; }
17
+
18
+ var DraggableItemActions = function DraggableItemActions() {
25
19
  var _useTranslatedTexts = useTranslatedTexts(),
26
20
  DELETE_ITEM = _useTranslatedTexts.DELETE_ITEM,
27
21
  DUPLICATE_ITEM = _useTranslatedTexts.DUPLICATE_ITEM,
28
22
  ITEM_SETTINGS = _useTranslatedTexts.ITEM_SETTINGS,
29
23
  LOCK_ITEM = _useTranslatedTexts.LOCK_ITEM;
30
24
 
31
- if (isMultipleItemSelected) return null;
25
+ var onAnEventTrigger = usePropStore(function (state) {
26
+ return state.onAnEventTrigger;
27
+ });
28
+ var onItemChange = usePropStore(function (state) {
29
+ return state.onItemChange;
30
+ });
31
+ var onItemRemove = usePropStore(function (state) {
32
+ return state.onItemRemove;
33
+ });
34
+ var onItemAdd = usePropStore(function (state) {
35
+ return state.onItemAdd;
36
+ });
37
+ var setActiveElements = useBuilderStore(function (state) {
38
+ return state.setActiveElements;
39
+ });
40
+ var resetActiveElements = useBuilderStore(function (state) {
41
+ return state.resetActiveElements;
42
+ });
43
+ var setIsRightPanelOpen = useBuilderStore(function (state) {
44
+ return state.setIsRightPanelOpen;
45
+ });
46
+ var selectedElements = useSelectedElements();
47
+ var item = selectedElements[0]; // ACTIONS WORKS ONLY FOR ONE ITEM
48
+
49
+ var isLocked = item.isLocked;
50
+
51
+ var changeLockStatus = function changeLockStatus() {
52
+ onAnEventTrigger(isLocked ? 'unlockReportItem' : 'lockReportItem', item.itemType);
53
+ onItemChange({
54
+ id: item.id
55
+ }, {
56
+ isLocked: isLocked ? false : true
57
+ });
58
+
59
+ if (!isLocked) {
60
+ setIsRightPanelOpen(false);
61
+ }
62
+ };
63
+
64
+ var deleteItem = function deleteItem() {
65
+ setIsRightPanelOpen(false);
66
+ resetActiveElements();
67
+ onItemRemove(item);
68
+ onAnEventTrigger('removeItem', item.itemType);
69
+ };
70
+
71
+ var duplicateItem = function duplicateItem() {
72
+ var itemID = generateId();
73
+ onItemAdd(_objectSpread(_objectSpread({}, item), {}, {
74
+ id: itemID,
75
+ left: item.left + 50,
76
+ top: item.top + 50
77
+ }));
78
+ onAnEventTrigger('duplicateItem', item.itemType);
79
+ setActiveElements(itemID, true);
80
+ setIsRightPanelOpen(true);
81
+ };
82
+
83
+ var openSettings = function openSettings() {
84
+ setIsRightPanelOpen(true);
85
+ };
32
86
 
33
87
  if (isLocked) {
34
88
  return /*#__PURE__*/jsx("div", {
@@ -82,15 +136,5 @@ var DraggableItemActions = function DraggableItemActions(_ref) {
82
136
  });
83
137
  };
84
138
 
85
- DraggableItemActions.propTypes = {
86
- changeLockStatus: PropTypes.func,
87
- deleteItem: PropTypes.func,
88
- duplicateItem: PropTypes.func,
89
- isLocked: PropTypes.bool,
90
- isMultipleItemSelected: PropTypes.bool,
91
- openSettings: PropTypes.func
92
- };
93
- var DraggableItemActions$1 = /*#__PURE__*/memo(DraggableItemActions);
94
-
95
- export default DraggableItemActions$1;
139
+ export default DraggableItemActions;
96
140
  //# 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,kBAAkB,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,IAACC,OAAD;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,IAACG,WAAD;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,IAACI,YAAD;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,IAACK,SAAD;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,IAACM,QAAD;AAAa,QAAA,SAAS,EAAC;AAAvB;AANF,MA3BF;AAAA,IADF;AAsCD,CAtED;;AAwEAlB,oBAAoB,CAACmB,SAArB,GAAiC;AAC/BlB,EAAAA,gBAAgB,EAAEmB,SAAS,CAACC,IADG;AAE/BnB,EAAAA,UAAU,EAAEkB,SAAS,CAACC,IAFS;AAG/BlB,EAAAA,aAAa,EAAEiB,SAAS,CAACC,IAHM;AAI/BjB,EAAAA,QAAQ,EAAEgB,SAAS,CAACE,IAJW;AAK/BjB,EAAAA,sBAAsB,EAAEe,SAAS,CAACE,IALH;AAM/BhB,EAAAA,YAAY,EAAEc,SAAS,CAACC;AANO,CAAjC;AASA,0CAAeE,IAAI,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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"}