@jotforminc/dnd-builder 3.0.0-alpha.2 → 3.1.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 (462) hide show
  1. package/CHANGELOG.md +207 -0
  2. package/lib/cjs/components/AlignmentGuides.js +11 -12
  3. package/lib/cjs/components/AlignmentGuides.js.map +1 -1
  4. package/lib/cjs/components/Builder/Builder.js +21 -131
  5. package/lib/cjs/components/Builder/Builder.js.map +1 -1
  6. package/lib/cjs/components/Builder/BuilderWrapper.js +64 -0
  7. package/lib/cjs/components/Builder/BuilderWrapper.js.map +1 -0
  8. package/lib/cjs/components/Builder/ContextMenu.js +31 -30
  9. package/lib/cjs/components/Builder/ContextMenu.js.map +1 -1
  10. package/lib/cjs/components/Builder/DndWrapper.js +16 -19
  11. package/lib/cjs/components/Builder/DndWrapper.js.map +1 -1
  12. package/lib/cjs/components/Builder/Element.js +51 -44
  13. package/lib/cjs/components/Builder/Element.js.map +1 -1
  14. package/lib/cjs/components/Builder/Page.js +154 -102
  15. package/lib/cjs/components/Builder/Page.js.map +1 -1
  16. package/lib/cjs/components/Builder/PageActions.js +35 -37
  17. package/lib/cjs/components/Builder/PageActions.js.map +1 -1
  18. package/lib/cjs/components/Builder/PageAdder.js +10 -11
  19. package/lib/cjs/components/Builder/PageAdder.js.map +1 -1
  20. package/lib/cjs/components/Builder/Panel.js +8 -10
  21. package/lib/cjs/components/Builder/Panel.js.map +1 -1
  22. package/lib/cjs/components/Builder/ReportItemRenderer.js +7 -6
  23. package/lib/cjs/components/Builder/ReportItemRenderer.js.map +1 -1
  24. package/lib/cjs/components/Builder/Scene.js +80 -225
  25. package/lib/cjs/components/Builder/Scene.js.map +1 -1
  26. package/lib/cjs/components/Builder/SearchInput.js +27 -58
  27. package/lib/cjs/components/Builder/SearchInput.js.map +1 -1
  28. package/lib/cjs/components/Builder/Section.js +8 -10
  29. package/lib/cjs/components/Builder/Section.js.map +1 -1
  30. package/lib/cjs/components/Builder/Tabs.js +19 -16
  31. package/lib/cjs/components/Builder/Tabs.js.map +1 -1
  32. package/lib/cjs/components/Builder/ZoomControls.js +20 -34
  33. package/lib/cjs/components/Builder/ZoomControls.js.map +1 -1
  34. package/lib/cjs/components/DraggableItem/DraggableItem.js +165 -204
  35. package/lib/cjs/components/DraggableItem/DraggableItem.js.map +1 -1
  36. package/lib/cjs/components/DraggableItem/DraggableItemActions.js +12 -14
  37. package/lib/cjs/components/DraggableItem/DraggableItemActions.js.map +1 -1
  38. package/lib/cjs/components/DraggableItem/DraggableItemLayer.js +25 -22
  39. package/lib/cjs/components/DraggableItem/DraggableItemLayer.js.map +1 -1
  40. package/lib/cjs/components/Elements/Chart.js +3 -4
  41. package/lib/cjs/components/Elements/Chart.js.map +1 -1
  42. package/lib/cjs/components/Elements/Icon.js +3 -5
  43. package/lib/cjs/components/Elements/Icon.js.map +1 -1
  44. package/lib/cjs/components/Elements/Image.js +11 -12
  45. package/lib/cjs/components/Elements/Image.js.map +1 -1
  46. package/lib/cjs/components/Elements/RichText.js +16 -14
  47. package/lib/cjs/components/Elements/RichText.js.map +1 -1
  48. package/lib/cjs/components/Elements/Shapes.js +2 -4
  49. package/lib/cjs/components/Elements/Shapes.js.map +1 -1
  50. package/lib/cjs/components/ItemPositioner.js +6 -8
  51. package/lib/cjs/components/ItemPositioner.js.map +1 -1
  52. package/lib/cjs/components/PageItemResizer.js +24 -15
  53. package/lib/cjs/components/PageItemResizer.js.map +1 -1
  54. package/lib/cjs/components/Panels/AllSlidesPanel/AllSlidesPanel.js +25 -60
  55. package/lib/cjs/components/Panels/AllSlidesPanel/AllSlidesPanel.js.map +1 -1
  56. package/lib/cjs/components/Panels/AllSlidesPanel/AllSlidesPanelToggler.js +2 -4
  57. package/lib/cjs/components/Panels/AllSlidesPanel/AllSlidesPanelToggler.js.map +1 -1
  58. package/lib/cjs/components/Panels/AllSlidesPanel/PageActionsBar.js +8 -15
  59. package/lib/cjs/components/Panels/AllSlidesPanel/PageActionsBar.js.map +1 -1
  60. package/lib/cjs/components/Panels/AllSlidesPanel/PageItem.js +56 -21
  61. package/lib/cjs/components/Panels/AllSlidesPanel/PageItem.js.map +1 -1
  62. package/lib/cjs/components/Panels/AllSlidesPanel/PageItemDragOverlay.js +54 -0
  63. package/lib/cjs/components/Panels/AllSlidesPanel/PageItemDragOverlay.js.map +1 -0
  64. package/lib/cjs/components/Panels/AllSlidesPanel/PageList.js +143 -47
  65. package/lib/cjs/components/Panels/AllSlidesPanel/PageList.js.map +1 -1
  66. package/lib/cjs/components/Panels/AllSlidesPanel/PageThumbnailActions.js +17 -18
  67. package/lib/cjs/components/Panels/AllSlidesPanel/PageThumbnailActions.js.map +1 -1
  68. package/lib/cjs/components/Panels/LeftPanel/Elements.js +48 -52
  69. package/lib/cjs/components/Panels/LeftPanel/Elements.js.map +1 -1
  70. package/lib/cjs/components/Panels/LeftPanel/LeftPanel.js +6 -35
  71. package/lib/cjs/components/Panels/LeftPanel/LeftPanel.js.map +1 -1
  72. package/lib/cjs/components/Panels/LeftPanel/LeftPanelCloser.js +4 -4
  73. package/lib/cjs/components/Panels/LeftPanel/LeftPanelCloser.js.map +1 -1
  74. package/lib/cjs/components/Panels/LeftPanel/LeftPanelOpener.js +4 -3
  75. package/lib/cjs/components/Panels/LeftPanel/LeftPanelOpener.js.map +1 -1
  76. package/lib/cjs/components/Panels/RightPanel/RightPanel.js +139 -144
  77. package/lib/cjs/components/Panels/RightPanel/RightPanel.js.map +1 -1
  78. package/lib/cjs/components/Panels/RightPanel/RightPanelToggler.js +7 -4
  79. package/lib/cjs/components/Panels/RightPanel/RightPanelToggler.js.map +1 -1
  80. package/lib/cjs/components/Panels/RightPanel/Settings.js +21 -22
  81. package/lib/cjs/components/Panels/RightPanel/Settings.js.map +1 -1
  82. package/lib/cjs/components/Panels/SlidesPanel/ListWrapper.js +105 -95
  83. package/lib/cjs/components/Panels/SlidesPanel/ListWrapper.js.map +1 -1
  84. package/lib/cjs/components/Panels/SlidesPanel/PageThumbnailActions.js +17 -18
  85. package/lib/cjs/components/Panels/SlidesPanel/PageThumbnailActions.js.map +1 -1
  86. package/lib/cjs/components/Panels/SlidesPanel/SlidesPanel.js +33 -67
  87. package/lib/cjs/components/Panels/SlidesPanel/SlidesPanel.js.map +1 -1
  88. package/lib/cjs/components/Panels/SlidesPanel/SlidesPanelToggler.js +9 -9
  89. package/lib/cjs/components/Panels/SlidesPanel/SlidesPanelToggler.js.map +1 -1
  90. package/lib/cjs/components/Panels/SlidesPanel/SortablePageItem.js +62 -28
  91. package/lib/cjs/components/Panels/SlidesPanel/SortablePageItem.js.map +1 -1
  92. package/lib/cjs/components/Panels/SlidesPanel/SortablePageItemDragOverlay.js +54 -0
  93. package/lib/cjs/components/Panels/SlidesPanel/SortablePageItemDragOverlay.js.map +1 -0
  94. package/lib/cjs/components/Panels/SlidesPanel/SortablePageItemRenderer.js +8 -9
  95. package/lib/cjs/components/Panels/SlidesPanel/SortablePageItemRenderer.js.map +1 -1
  96. package/lib/cjs/components/Panels/SlidesPanel/SortablePageList.js +161 -109
  97. package/lib/cjs/components/Panels/SlidesPanel/SortablePageList.js.map +1 -1
  98. package/lib/cjs/components/Presentation/Presentation.js +19 -70
  99. package/lib/cjs/components/Presentation/Presentation.js.map +1 -1
  100. package/lib/cjs/components/Presentation/PresentationBar/PageNavigation.js +8 -10
  101. package/lib/cjs/components/Presentation/PresentationBar/PageNavigation.js.map +1 -1
  102. package/lib/cjs/components/Presentation/PresentationBar/PresentationActions.js +45 -12
  103. package/lib/cjs/components/Presentation/PresentationBar/PresentationActions.js.map +1 -1
  104. package/lib/cjs/components/Presentation/PresentationBar/PresentationBar.js +44 -86
  105. package/lib/cjs/components/Presentation/PresentationBar/PresentationBar.js.map +1 -1
  106. package/lib/cjs/components/Presentation/PresentationBar/SelectZoom.js +8 -10
  107. package/lib/cjs/components/Presentation/PresentationBar/SelectZoom.js.map +1 -1
  108. package/lib/cjs/components/Presentation/PresentationWrapper.js +56 -59
  109. package/lib/cjs/components/Presentation/PresentationWrapper.js.map +1 -1
  110. package/lib/cjs/components/Presentation/ProgressBar.js +4 -6
  111. package/lib/cjs/components/Presentation/ProgressBar.js.map +1 -1
  112. package/lib/cjs/components/Preview/Preview.js +14 -69
  113. package/lib/cjs/components/Preview/Preview.js.map +1 -1
  114. package/lib/cjs/components/Preview/StaticItem.js +7 -28
  115. package/lib/cjs/components/Preview/StaticItem.js.map +1 -1
  116. package/lib/cjs/components/Preview/StaticPage.js +19 -33
  117. package/lib/cjs/components/Preview/StaticPage.js.map +1 -1
  118. package/lib/cjs/components/Preview/StaticScene.js +34 -56
  119. package/lib/cjs/components/Preview/StaticScene.js.map +1 -1
  120. package/lib/cjs/components/Print/Print.js +18 -62
  121. package/lib/cjs/components/Print/Print.js.map +1 -1
  122. package/lib/cjs/components/Print/PrintModal.js +55 -0
  123. package/lib/cjs/components/Print/PrintModal.js.map +1 -0
  124. package/lib/cjs/components/Print/{PrintModeWithoutContext.js → PrintWrapper.js} +11 -42
  125. package/lib/cjs/components/Print/PrintWrapper.js.map +1 -0
  126. package/lib/cjs/components/Report.js +29 -47
  127. package/lib/cjs/components/Report.js.map +1 -1
  128. package/lib/cjs/components/ReportItemsWrapper.js +35 -48
  129. package/lib/cjs/components/ReportItemsWrapper.js.map +1 -1
  130. package/lib/cjs/components/ReportWrapper.js +28 -57
  131. package/lib/cjs/components/ReportWrapper.js.map +1 -1
  132. package/lib/cjs/components/Settings/Button.js +8 -10
  133. package/lib/cjs/components/Settings/Button.js.map +1 -1
  134. package/lib/cjs/components/Settings/CheckboxGroup.js +8 -10
  135. package/lib/cjs/components/Settings/CheckboxGroup.js.map +1 -1
  136. package/lib/cjs/components/Settings/ColorPicker.js +18 -13
  137. package/lib/cjs/components/Settings/ColorPicker.js.map +1 -1
  138. package/lib/cjs/components/Settings/Dropdown.js +10 -12
  139. package/lib/cjs/components/Settings/Dropdown.js.map +1 -1
  140. package/lib/cjs/components/Settings/FieldSet.js +3 -4
  141. package/lib/cjs/components/Settings/FieldSet.js.map +1 -1
  142. package/lib/cjs/components/Settings/IconSelectBox.js +8 -10
  143. package/lib/cjs/components/Settings/IconSelectBox.js.map +1 -1
  144. package/lib/cjs/components/Settings/ImagePicker/EnterURL.js +4 -6
  145. package/lib/cjs/components/Settings/ImagePicker/EnterURL.js.map +1 -1
  146. package/lib/cjs/components/Settings/ImagePicker/ImageThumbnailWithDelete.js +6 -8
  147. package/lib/cjs/components/Settings/ImagePicker/ImageThumbnailWithDelete.js.map +1 -1
  148. package/lib/cjs/components/Settings/ImageUrl.js +8 -10
  149. package/lib/cjs/components/Settings/ImageUrl.js.map +1 -1
  150. package/lib/cjs/components/Settings/LayoutSizeSettings.js +4 -6
  151. package/lib/cjs/components/Settings/LayoutSizeSettings.js.map +1 -1
  152. package/lib/cjs/components/Settings/Orientation.js +8 -10
  153. package/lib/cjs/components/Settings/Orientation.js.map +1 -1
  154. package/lib/cjs/components/Settings/PageLayer/LayerDragOverlay.js +128 -0
  155. package/lib/cjs/components/Settings/PageLayer/LayerDragOverlay.js.map +1 -0
  156. package/lib/cjs/components/Settings/PageLayer/LayerItem.js +91 -32
  157. package/lib/cjs/components/Settings/PageLayer/LayerItem.js.map +1 -1
  158. package/lib/cjs/components/Settings/PageLayer/PageLayer.js +115 -50
  159. package/lib/cjs/components/Settings/PageLayer/PageLayer.js.map +1 -1
  160. package/lib/cjs/components/Settings/SegmentControl.js +8 -10
  161. package/lib/cjs/components/Settings/SegmentControl.js.map +1 -1
  162. package/lib/cjs/components/Settings/SelectBox.js +8 -10
  163. package/lib/cjs/components/Settings/SelectBox.js.map +1 -1
  164. package/lib/cjs/components/Settings/SettingsItemRenderer.js +9 -11
  165. package/lib/cjs/components/Settings/SettingsItemRenderer.js.map +1 -1
  166. package/lib/cjs/components/Settings/SizeSettings.js +5 -7
  167. package/lib/cjs/components/Settings/SizeSettings.js.map +1 -1
  168. package/lib/cjs/components/Settings/Slider.js +8 -10
  169. package/lib/cjs/components/Settings/Slider.js.map +1 -1
  170. package/lib/cjs/components/Settings/Switch.js +8 -10
  171. package/lib/cjs/components/Settings/Switch.js.map +1 -1
  172. package/lib/cjs/components/Settings/Textbox.js +12 -14
  173. package/lib/cjs/components/Settings/Textbox.js.map +1 -1
  174. package/lib/cjs/components/Settings/Toggle.js +8 -10
  175. package/lib/cjs/components/Settings/Toggle.js.map +1 -1
  176. package/lib/cjs/components/StaticElements/StaticRichText.js +26 -30
  177. package/lib/cjs/components/StaticElements/StaticRichText.js.map +1 -1
  178. package/lib/cjs/components/TextEditor/CustomToolbar/CustomToolbar.js +2 -4
  179. package/lib/cjs/components/TextEditor/CustomToolbar/CustomToolbar.js.map +1 -1
  180. package/lib/cjs/components/TextEditor/CustomToolbar/CustomToolbarWrapper.js +4 -6
  181. package/lib/cjs/components/TextEditor/CustomToolbar/CustomToolbarWrapper.js.map +1 -1
  182. package/lib/cjs/components/TextEditor/QuillEditor.js +6 -11
  183. package/lib/cjs/components/TextEditor/QuillEditor.js.map +1 -1
  184. package/lib/cjs/components/TextEditor/TextEditor.js +17 -18
  185. package/lib/cjs/components/TextEditor/TextEditor.js.map +1 -1
  186. package/lib/cjs/components/withClickOutside.js +10 -11
  187. package/lib/cjs/components/withClickOutside.js.map +1 -1
  188. package/lib/cjs/components/withZoomPanPinchHOC.js +10 -12
  189. package/lib/cjs/components/withZoomPanPinchHOC.js.map +1 -1
  190. package/lib/cjs/constants/eventIgnoredRoles.js +13 -0
  191. package/lib/cjs/constants/eventIgnoredRoles.js.map +1 -0
  192. package/lib/cjs/constants/texts.js +12 -0
  193. package/lib/cjs/constants/texts.js.map +1 -1
  194. package/lib/cjs/contexts/BuilderContext.js +214 -0
  195. package/lib/cjs/contexts/BuilderContext.js.map +1 -0
  196. package/lib/cjs/contexts/PresentationContext.js +140 -0
  197. package/lib/cjs/contexts/PresentationContext.js.map +1 -0
  198. package/lib/cjs/contexts/PropContext.js +144 -0
  199. package/lib/cjs/contexts/PropContext.js.map +1 -0
  200. package/lib/cjs/contexts/Providers.js +70 -0
  201. package/lib/cjs/contexts/Providers.js.map +1 -0
  202. package/lib/cjs/index.js +0 -2
  203. package/lib/cjs/index.js.map +1 -1
  204. package/lib/cjs/styles/_jfPresentation.scss +0 -18
  205. package/lib/cjs/styles/_jfPrint.scss +17 -1
  206. package/lib/cjs/styles/_jfReportsModal.scss +9 -9
  207. package/lib/cjs/styles/_jfReportsPanels.scss +4 -1
  208. package/lib/cjs/styles/_jfReportsReportItem.scss +1 -1
  209. package/lib/cjs/styles/_jfReportsSVG.scss +0 -1
  210. package/lib/cjs/styles/_jfReportsTextEditor.scss +5 -0
  211. package/lib/cjs/styles/_jfReportsViewModes.scss +2 -5
  212. package/lib/cjs/styles/_jfSearchInput.scss +2 -2
  213. package/lib/cjs/utils/functions.js +47 -45
  214. package/lib/cjs/utils/functions.js.map +1 -1
  215. package/lib/cjs/utils/getDefaultPresentationActions.js +1 -1
  216. package/lib/cjs/utils/getDefaultPresentationActions.js.map +1 -1
  217. package/lib/cjs/utils/hooks.js +64 -47
  218. package/lib/cjs/utils/hooks.js.map +1 -1
  219. package/lib/esm/components/AlignmentGuides.js +11 -12
  220. package/lib/esm/components/AlignmentGuides.js.map +1 -1
  221. package/lib/esm/components/Builder/Builder.js +20 -129
  222. package/lib/esm/components/Builder/Builder.js.map +1 -1
  223. package/lib/esm/components/Builder/BuilderWrapper.js +58 -0
  224. package/lib/esm/components/Builder/BuilderWrapper.js.map +1 -0
  225. package/lib/esm/components/Builder/ContextMenu.js +31 -30
  226. package/lib/esm/components/Builder/ContextMenu.js.map +1 -1
  227. package/lib/esm/components/Builder/DndWrapper.js +10 -10
  228. package/lib/esm/components/Builder/DndWrapper.js.map +1 -1
  229. package/lib/esm/components/Builder/Element.js +50 -43
  230. package/lib/esm/components/Builder/Element.js.map +1 -1
  231. package/lib/esm/components/Builder/Page.js +156 -104
  232. package/lib/esm/components/Builder/Page.js.map +1 -1
  233. package/lib/esm/components/Builder/PageActions.js +35 -37
  234. package/lib/esm/components/Builder/PageActions.js.map +1 -1
  235. package/lib/esm/components/Builder/PageAdder.js +11 -12
  236. package/lib/esm/components/Builder/PageAdder.js.map +1 -1
  237. package/lib/esm/components/Builder/Panel.js +8 -10
  238. package/lib/esm/components/Builder/Panel.js.map +1 -1
  239. package/lib/esm/components/Builder/ReportItemRenderer.js +7 -6
  240. package/lib/esm/components/Builder/ReportItemRenderer.js.map +1 -1
  241. package/lib/esm/components/Builder/Scene.js +82 -223
  242. package/lib/esm/components/Builder/Scene.js.map +1 -1
  243. package/lib/esm/components/Builder/SearchInput.js +28 -58
  244. package/lib/esm/components/Builder/SearchInput.js.map +1 -1
  245. package/lib/esm/components/Builder/Section.js +8 -10
  246. package/lib/esm/components/Builder/Section.js.map +1 -1
  247. package/lib/esm/components/Builder/Tabs.js +19 -16
  248. package/lib/esm/components/Builder/Tabs.js.map +1 -1
  249. package/lib/esm/components/Builder/ZoomControls.js +20 -30
  250. package/lib/esm/components/Builder/ZoomControls.js.map +1 -1
  251. package/lib/esm/components/DraggableItem/DraggableItem.js +166 -204
  252. package/lib/esm/components/DraggableItem/DraggableItem.js.map +1 -1
  253. package/lib/esm/components/DraggableItem/DraggableItemActions.js +12 -14
  254. package/lib/esm/components/DraggableItem/DraggableItemActions.js.map +1 -1
  255. package/lib/esm/components/DraggableItem/DraggableItemLayer.js +23 -20
  256. package/lib/esm/components/DraggableItem/DraggableItemLayer.js.map +1 -1
  257. package/lib/esm/components/Elements/Chart.js +3 -4
  258. package/lib/esm/components/Elements/Chart.js.map +1 -1
  259. package/lib/esm/components/Elements/Icon.js +3 -5
  260. package/lib/esm/components/Elements/Icon.js.map +1 -1
  261. package/lib/esm/components/Elements/Image.js +11 -12
  262. package/lib/esm/components/Elements/Image.js.map +1 -1
  263. package/lib/esm/components/Elements/RichText.js +16 -14
  264. package/lib/esm/components/Elements/RichText.js.map +1 -1
  265. package/lib/esm/components/Elements/Shapes.js +2 -4
  266. package/lib/esm/components/Elements/Shapes.js.map +1 -1
  267. package/lib/esm/components/ItemPositioner.js +6 -8
  268. package/lib/esm/components/ItemPositioner.js.map +1 -1
  269. package/lib/esm/components/PageItemResizer.js +24 -15
  270. package/lib/esm/components/PageItemResizer.js.map +1 -1
  271. package/lib/esm/components/Panels/AllSlidesPanel/AllSlidesPanel.js +25 -59
  272. package/lib/esm/components/Panels/AllSlidesPanel/AllSlidesPanel.js.map +1 -1
  273. package/lib/esm/components/Panels/AllSlidesPanel/AllSlidesPanelToggler.js +2 -4
  274. package/lib/esm/components/Panels/AllSlidesPanel/AllSlidesPanelToggler.js.map +1 -1
  275. package/lib/esm/components/Panels/AllSlidesPanel/PageActionsBar.js +8 -15
  276. package/lib/esm/components/Panels/AllSlidesPanel/PageActionsBar.js.map +1 -1
  277. package/lib/esm/components/Panels/AllSlidesPanel/PageItem.js +56 -22
  278. package/lib/esm/components/Panels/AllSlidesPanel/PageItem.js.map +1 -1
  279. package/lib/esm/components/Panels/AllSlidesPanel/PageItemDragOverlay.js +48 -0
  280. package/lib/esm/components/Panels/AllSlidesPanel/PageItemDragOverlay.js.map +1 -0
  281. package/lib/esm/components/Panels/AllSlidesPanel/PageList.js +140 -48
  282. package/lib/esm/components/Panels/AllSlidesPanel/PageList.js.map +1 -1
  283. package/lib/esm/components/Panels/AllSlidesPanel/PageThumbnailActions.js +17 -18
  284. package/lib/esm/components/Panels/AllSlidesPanel/PageThumbnailActions.js.map +1 -1
  285. package/lib/esm/components/Panels/LeftPanel/Elements.js +49 -53
  286. package/lib/esm/components/Panels/LeftPanel/Elements.js.map +1 -1
  287. package/lib/esm/components/Panels/LeftPanel/LeftPanel.js +6 -34
  288. package/lib/esm/components/Panels/LeftPanel/LeftPanel.js.map +1 -1
  289. package/lib/esm/components/Panels/LeftPanel/LeftPanelCloser.js +4 -4
  290. package/lib/esm/components/Panels/LeftPanel/LeftPanelCloser.js.map +1 -1
  291. package/lib/esm/components/Panels/LeftPanel/LeftPanelOpener.js +4 -3
  292. package/lib/esm/components/Panels/LeftPanel/LeftPanelOpener.js.map +1 -1
  293. package/lib/esm/components/Panels/RightPanel/RightPanel.js +141 -145
  294. package/lib/esm/components/Panels/RightPanel/RightPanel.js.map +1 -1
  295. package/lib/esm/components/Panels/RightPanel/RightPanelToggler.js +7 -4
  296. package/lib/esm/components/Panels/RightPanel/RightPanelToggler.js.map +1 -1
  297. package/lib/esm/components/Panels/RightPanel/Settings.js +21 -22
  298. package/lib/esm/components/Panels/RightPanel/Settings.js.map +1 -1
  299. package/lib/esm/components/Panels/SlidesPanel/ListWrapper.js +106 -96
  300. package/lib/esm/components/Panels/SlidesPanel/ListWrapper.js.map +1 -1
  301. package/lib/esm/components/Panels/SlidesPanel/PageThumbnailActions.js +17 -18
  302. package/lib/esm/components/Panels/SlidesPanel/PageThumbnailActions.js.map +1 -1
  303. package/lib/esm/components/Panels/SlidesPanel/SlidesPanel.js +33 -66
  304. package/lib/esm/components/Panels/SlidesPanel/SlidesPanel.js.map +1 -1
  305. package/lib/esm/components/Panels/SlidesPanel/SlidesPanelToggler.js +9 -9
  306. package/lib/esm/components/Panels/SlidesPanel/SlidesPanelToggler.js.map +1 -1
  307. package/lib/esm/components/Panels/SlidesPanel/SortablePageItem.js +62 -28
  308. package/lib/esm/components/Panels/SlidesPanel/SortablePageItem.js.map +1 -1
  309. package/lib/esm/components/Panels/SlidesPanel/SortablePageItemDragOverlay.js +48 -0
  310. package/lib/esm/components/Panels/SlidesPanel/SortablePageItemDragOverlay.js.map +1 -0
  311. package/lib/esm/components/Panels/SlidesPanel/SortablePageItemRenderer.js +8 -9
  312. package/lib/esm/components/Panels/SlidesPanel/SortablePageItemRenderer.js.map +1 -1
  313. package/lib/esm/components/Panels/SlidesPanel/SortablePageList.js +163 -111
  314. package/lib/esm/components/Panels/SlidesPanel/SortablePageList.js.map +1 -1
  315. package/lib/esm/components/Presentation/Presentation.js +19 -69
  316. package/lib/esm/components/Presentation/Presentation.js.map +1 -1
  317. package/lib/esm/components/Presentation/PresentationBar/PageNavigation.js +8 -10
  318. package/lib/esm/components/Presentation/PresentationBar/PageNavigation.js.map +1 -1
  319. package/lib/esm/components/Presentation/PresentationBar/PresentationActions.js +46 -13
  320. package/lib/esm/components/Presentation/PresentationBar/PresentationActions.js.map +1 -1
  321. package/lib/esm/components/Presentation/PresentationBar/PresentationBar.js +45 -87
  322. package/lib/esm/components/Presentation/PresentationBar/PresentationBar.js.map +1 -1
  323. package/lib/esm/components/Presentation/PresentationBar/SelectZoom.js +8 -10
  324. package/lib/esm/components/Presentation/PresentationBar/SelectZoom.js.map +1 -1
  325. package/lib/esm/components/Presentation/PresentationWrapper.js +57 -60
  326. package/lib/esm/components/Presentation/PresentationWrapper.js.map +1 -1
  327. package/lib/esm/components/Presentation/ProgressBar.js +4 -6
  328. package/lib/esm/components/Presentation/ProgressBar.js.map +1 -1
  329. package/lib/esm/components/Preview/Preview.js +14 -68
  330. package/lib/esm/components/Preview/Preview.js.map +1 -1
  331. package/lib/esm/components/Preview/StaticItem.js +8 -28
  332. package/lib/esm/components/Preview/StaticItem.js.map +1 -1
  333. package/lib/esm/components/Preview/StaticPage.js +17 -30
  334. package/lib/esm/components/Preview/StaticPage.js.map +1 -1
  335. package/lib/esm/components/Preview/StaticScene.js +34 -56
  336. package/lib/esm/components/Preview/StaticScene.js.map +1 -1
  337. package/lib/esm/components/Print/Print.js +18 -57
  338. package/lib/esm/components/Print/Print.js.map +1 -1
  339. package/lib/esm/components/Print/PrintModal.js +49 -0
  340. package/lib/esm/components/Print/PrintModal.js.map +1 -0
  341. package/lib/esm/components/Print/{PrintModeWithoutContext.js → PrintWrapper.js} +11 -42
  342. package/lib/esm/components/Print/PrintWrapper.js.map +1 -0
  343. package/lib/esm/components/Report.js +30 -48
  344. package/lib/esm/components/Report.js.map +1 -1
  345. package/lib/esm/components/ReportItemsWrapper.js +32 -49
  346. package/lib/esm/components/ReportItemsWrapper.js.map +1 -1
  347. package/lib/esm/components/ReportWrapper.js +29 -58
  348. package/lib/esm/components/ReportWrapper.js.map +1 -1
  349. package/lib/esm/components/Settings/Button.js +8 -10
  350. package/lib/esm/components/Settings/Button.js.map +1 -1
  351. package/lib/esm/components/Settings/CheckboxGroup.js +8 -10
  352. package/lib/esm/components/Settings/CheckboxGroup.js.map +1 -1
  353. package/lib/esm/components/Settings/ColorPicker.js +18 -13
  354. package/lib/esm/components/Settings/ColorPicker.js.map +1 -1
  355. package/lib/esm/components/Settings/Dropdown.js +10 -12
  356. package/lib/esm/components/Settings/Dropdown.js.map +1 -1
  357. package/lib/esm/components/Settings/FieldSet.js +3 -4
  358. package/lib/esm/components/Settings/FieldSet.js.map +1 -1
  359. package/lib/esm/components/Settings/IconSelectBox.js +8 -10
  360. package/lib/esm/components/Settings/IconSelectBox.js.map +1 -1
  361. package/lib/esm/components/Settings/ImagePicker/EnterURL.js +4 -6
  362. package/lib/esm/components/Settings/ImagePicker/EnterURL.js.map +1 -1
  363. package/lib/esm/components/Settings/ImagePicker/ImageThumbnailWithDelete.js +6 -8
  364. package/lib/esm/components/Settings/ImagePicker/ImageThumbnailWithDelete.js.map +1 -1
  365. package/lib/esm/components/Settings/ImageUrl.js +8 -10
  366. package/lib/esm/components/Settings/ImageUrl.js.map +1 -1
  367. package/lib/esm/components/Settings/LayoutSizeSettings.js +4 -6
  368. package/lib/esm/components/Settings/LayoutSizeSettings.js.map +1 -1
  369. package/lib/esm/components/Settings/Orientation.js +8 -10
  370. package/lib/esm/components/Settings/Orientation.js.map +1 -1
  371. package/lib/esm/components/Settings/PageLayer/LayerDragOverlay.js +121 -0
  372. package/lib/esm/components/Settings/PageLayer/LayerDragOverlay.js.map +1 -0
  373. package/lib/esm/components/Settings/PageLayer/LayerItem.js +92 -34
  374. package/lib/esm/components/Settings/PageLayer/LayerItem.js.map +1 -1
  375. package/lib/esm/components/Settings/PageLayer/PageLayer.js +117 -52
  376. package/lib/esm/components/Settings/PageLayer/PageLayer.js.map +1 -1
  377. package/lib/esm/components/Settings/SegmentControl.js +8 -10
  378. package/lib/esm/components/Settings/SegmentControl.js.map +1 -1
  379. package/lib/esm/components/Settings/SelectBox.js +8 -10
  380. package/lib/esm/components/Settings/SelectBox.js.map +1 -1
  381. package/lib/esm/components/Settings/SettingsItemRenderer.js +9 -11
  382. package/lib/esm/components/Settings/SettingsItemRenderer.js.map +1 -1
  383. package/lib/esm/components/Settings/SizeSettings.js +5 -7
  384. package/lib/esm/components/Settings/SizeSettings.js.map +1 -1
  385. package/lib/esm/components/Settings/Slider.js +8 -10
  386. package/lib/esm/components/Settings/Slider.js.map +1 -1
  387. package/lib/esm/components/Settings/Switch.js +8 -10
  388. package/lib/esm/components/Settings/Switch.js.map +1 -1
  389. package/lib/esm/components/Settings/Textbox.js +12 -14
  390. package/lib/esm/components/Settings/Textbox.js.map +1 -1
  391. package/lib/esm/components/Settings/Toggle.js +8 -10
  392. package/lib/esm/components/Settings/Toggle.js.map +1 -1
  393. package/lib/esm/components/StaticElements/StaticRichText.js +26 -30
  394. package/lib/esm/components/StaticElements/StaticRichText.js.map +1 -1
  395. package/lib/esm/components/TextEditor/CustomToolbar/CustomToolbar.js +2 -4
  396. package/lib/esm/components/TextEditor/CustomToolbar/CustomToolbar.js.map +1 -1
  397. package/lib/esm/components/TextEditor/CustomToolbar/CustomToolbarWrapper.js +4 -6
  398. package/lib/esm/components/TextEditor/CustomToolbar/CustomToolbarWrapper.js.map +1 -1
  399. package/lib/esm/components/TextEditor/QuillEditor.js +6 -11
  400. package/lib/esm/components/TextEditor/QuillEditor.js.map +1 -1
  401. package/lib/esm/components/TextEditor/TextEditor.js +17 -18
  402. package/lib/esm/components/TextEditor/TextEditor.js.map +1 -1
  403. package/lib/esm/components/withClickOutside.js +11 -12
  404. package/lib/esm/components/withClickOutside.js.map +1 -1
  405. package/lib/esm/components/withZoomPanPinchHOC.js +10 -12
  406. package/lib/esm/components/withZoomPanPinchHOC.js.map +1 -1
  407. package/lib/esm/constants/eventIgnoredRoles.js +9 -0
  408. package/lib/esm/constants/eventIgnoredRoles.js.map +1 -0
  409. package/lib/esm/constants/texts.js +12 -0
  410. package/lib/esm/constants/texts.js.map +1 -1
  411. package/lib/esm/contexts/BuilderContext.js +205 -0
  412. package/lib/esm/contexts/BuilderContext.js.map +1 -0
  413. package/lib/esm/contexts/PresentationContext.js +131 -0
  414. package/lib/esm/contexts/PresentationContext.js.map +1 -0
  415. package/lib/esm/contexts/PropContext.js +135 -0
  416. package/lib/esm/contexts/PropContext.js.map +1 -0
  417. package/lib/esm/contexts/Providers.js +64 -0
  418. package/lib/esm/contexts/Providers.js.map +1 -0
  419. package/lib/esm/index.js +0 -1
  420. package/lib/esm/index.js.map +1 -1
  421. package/lib/esm/styles/_jfPresentation.scss +0 -18
  422. package/lib/esm/styles/_jfPrint.scss +17 -1
  423. package/lib/esm/styles/_jfReportsModal.scss +9 -9
  424. package/lib/esm/styles/_jfReportsPanels.scss +4 -1
  425. package/lib/esm/styles/_jfReportsReportItem.scss +1 -1
  426. package/lib/esm/styles/_jfReportsSVG.scss +0 -1
  427. package/lib/esm/styles/_jfReportsTextEditor.scss +5 -0
  428. package/lib/esm/styles/_jfReportsViewModes.scss +2 -5
  429. package/lib/esm/styles/_jfSearchInput.scss +2 -2
  430. package/lib/esm/utils/functions.js +41 -44
  431. package/lib/esm/utils/functions.js.map +1 -1
  432. package/lib/esm/utils/getDefaultPresentationActions.js +1 -1
  433. package/lib/esm/utils/getDefaultPresentationActions.js.map +1 -1
  434. package/lib/esm/utils/hooks.js +66 -49
  435. package/lib/esm/utils/hooks.js.map +1 -1
  436. package/package.json +18 -14
  437. package/lib/cjs/components/Print/PrintMode.js +0 -59
  438. package/lib/cjs/components/Print/PrintMode.js.map +0 -1
  439. package/lib/cjs/components/Print/PrintModeWithoutContext.js.map +0 -1
  440. package/lib/cjs/components/Responsive/index.js +0 -107
  441. package/lib/cjs/components/Responsive/index.js.map +0 -1
  442. package/lib/cjs/components/ResponsiveContent.js +0 -15
  443. package/lib/cjs/components/ResponsiveContent.js.map +0 -1
  444. package/lib/cjs/utils/builderContext.js +0 -308
  445. package/lib/cjs/utils/builderContext.js.map +0 -1
  446. package/lib/cjs/utils/presentationContext.js +0 -144
  447. package/lib/cjs/utils/presentationContext.js.map +0 -1
  448. package/lib/cjs/utils/propContext.js +0 -133
  449. package/lib/cjs/utils/propContext.js.map +0 -1
  450. package/lib/esm/components/Print/PrintMode.js +0 -52
  451. package/lib/esm/components/Print/PrintMode.js.map +0 -1
  452. package/lib/esm/components/Print/PrintModeWithoutContext.js.map +0 -1
  453. package/lib/esm/components/Responsive/index.js +0 -100
  454. package/lib/esm/components/Responsive/index.js.map +0 -1
  455. package/lib/esm/components/ResponsiveContent.js +0 -13
  456. package/lib/esm/components/ResponsiveContent.js.map +0 -1
  457. package/lib/esm/utils/builderContext.js +0 -297
  458. package/lib/esm/utils/builderContext.js.map +0 -1
  459. package/lib/esm/utils/presentationContext.js +0 -133
  460. package/lib/esm/utils/presentationContext.js.map +0 -1
  461. package/lib/esm/utils/propContext.js +0 -122
  462. package/lib/esm/utils/propContext.js.map +0 -1
@@ -3,14 +3,11 @@
3
3
  require('core-js/modules/es.array.concat.js');
4
4
  require('core-js/modules/es.array.from.js');
5
5
  require('core-js/modules/es.array.includes.js');
6
- require('core-js/modules/es.object.keys.js');
7
6
  require('core-js/modules/es.string.iterator.js');
8
- require('core-js/modules/web.dom-collections.for-each.js');
9
7
  var React = require('react');
10
8
  var PropTypes = require('prop-types');
11
- var reactDndCjs = require('react-dnd-cjs');
12
- var HTML5Backend = require('react-dnd-html5-backend-cjs');
13
- var isEqual = require('lodash.isequal');
9
+ var reactDnd = require('react-dnd');
10
+ var reactDndHtml5Backend = require('react-dnd-html5-backend');
14
11
  var ItemPositioner = require('../ItemPositioner.js');
15
12
  var itemTypes = require('../../constants/itemTypes.js');
16
13
  var functions = require('../../utils/functions.js');
@@ -19,12 +16,13 @@ var ErrorBoundary = require('../ErrorBoundary.js');
19
16
  var classNames = require('../../constants/classNames.js');
20
17
  var generateId = require('../../utils/generateId.js');
21
18
  var scrollZoneFunctions = require('../../utils/scrollZoneFunctions.js');
19
+ var BuilderContext = require('../../contexts/BuilderContext.js');
20
+ var PropContext = require('../../contexts/PropContext.js');
22
21
  var jsxRuntime = require('react/jsx-runtime');
23
22
 
24
23
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
25
24
 
26
25
  var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
27
- var isEqual__default = /*#__PURE__*/_interopDefaultLegacy(isEqual);
28
26
 
29
27
  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; }
30
28
 
@@ -50,33 +48,73 @@ var reportItemStyle = {
50
48
  };
51
49
 
52
50
  var DraggableItem = function DraggableItem(_ref) {
53
- var children = _ref.children,
54
- guides = _ref.guides,
55
- isMultipleItemSelected = _ref.isMultipleItemSelected,
56
- isResize = _ref.isResize,
57
- isRightPanelOpen = _ref.isRightPanelOpen,
58
- isSelected = _ref.isSelected,
59
- isTextEditorOpen = _ref.isTextEditorOpen,
60
- item = _ref.item,
61
- matches = _ref.matches,
62
- onAnEventTrigger = _ref.onAnEventTrigger,
63
- onItemAdd = _ref.onItemAdd,
64
- onItemChange = _ref.onItemChange,
65
- onItemRemove = _ref.onItemRemove,
66
- onItemResize = _ref.onItemResize,
67
- setActiveElement = _ref.setActiveElement,
68
- setContextMenuProps = _ref.setContextMenuProps,
69
- setIsResize = _ref.setIsResize,
70
- setIsRightPanelOpen = _ref.setIsRightPanelOpen,
71
- setMatches = _ref.setMatches,
72
- zoom = _ref.zoom;
73
- var height = item.height,
74
- id = item.id,
75
- isLocked = item.isLocked,
76
- left = item.left,
77
- pageID = item.pageID,
78
- top = item.top,
79
- width = item.width;
51
+ var _ref$children = _ref.children,
52
+ children = _ref$children === void 0 ? null : _ref$children,
53
+ _ref$item = _ref.item,
54
+ _item2 = _ref$item === void 0 ? {} : _ref$item,
55
+ handleMatches = _ref.handleMatches,
56
+ getIntersectionsFromMatches = _ref.getIntersectionsFromMatches;
57
+
58
+ var height = _item2.height,
59
+ id = _item2.id,
60
+ isLocked = _item2.isLocked,
61
+ left = _item2.left,
62
+ pageID = _item2.pageID,
63
+ top = _item2.top,
64
+ width = _item2.width;
65
+
66
+ var _useState = React.useState({
67
+ height: height,
68
+ left: left,
69
+ top: top,
70
+ width: width
71
+ }),
72
+ _useState2 = _slicedToArray(_useState, 2),
73
+ _useState2$ = _useState2[0],
74
+ stateHeight = _useState2$.height,
75
+ stateLeft = _useState2$.left,
76
+ stateTop = _useState2$.top,
77
+ stateWidth = _useState2$.width,
78
+ setResizeSize = _useState2[1];
79
+
80
+ var onAnEventTrigger = PropContext.usePropStore(function (state) {
81
+ return state.onAnEventTrigger;
82
+ });
83
+ var onItemAdd = PropContext.usePropStore(function (state) {
84
+ return state.onItemAdd;
85
+ });
86
+ var onItemChange = PropContext.usePropStore(function (state) {
87
+ return state.onItemChange;
88
+ });
89
+ var onItemRemove = PropContext.usePropStore(function (state) {
90
+ return state.onItemRemove;
91
+ });
92
+ var onItemResize = PropContext.usePropStore(function (state) {
93
+ return state.onItemResize;
94
+ });
95
+ var activeElement = BuilderContext.useBuilderStore(function (state) {
96
+ return state.activeElement;
97
+ });
98
+ var setActiveElement = BuilderContext.useBuilderStore(function (state) {
99
+ return state.setActiveElement;
100
+ });
101
+ var setContextMenuProps = BuilderContext.useBuilderStore(function (state) {
102
+ return state.setContextMenuProps;
103
+ });
104
+ var isTextEditorOpen = BuilderContext.useBuilderStore(function (state) {
105
+ return state.isTextEditorOpen;
106
+ });
107
+ var isRightPanelOpen = BuilderContext.useBuilderStore(function (state) {
108
+ return state.isRightPanelOpen;
109
+ });
110
+ var setIsRightPanelOpen = BuilderContext.useBuilderStore(function (state) {
111
+ return state.setIsRightPanelOpen;
112
+ });
113
+ var setIsResize = BuilderContext.useBuilderStore(function (state) {
114
+ return state.setIsResize;
115
+ });
116
+ var isSelected = functions.isSelectedItem(_item2.id, activeElement);
117
+ var isMultipleItemSelected = activeElement !== null && activeElement.length > 1;
80
118
 
81
119
  var select = function select(event) {
82
120
  if (!isSelected) {
@@ -93,96 +131,88 @@ var DraggableItem = function DraggableItem(_ref) {
93
131
  }
94
132
  };
95
133
 
96
- var _useDrag = reactDndCjs.useDrag({
97
- begin: function begin() {
98
- if (!isSelected) select();
99
- scrollZoneFunctions.addEventListenerForSidebar();
100
- },
101
- canDrag: !item.isLocked && !isTextEditorOpen ? true : false,
102
- collect: function collect(monitor) {
103
- return {
104
- isDragging: monitor.isDragging()
105
- };
106
- },
107
- end: function end() {
108
- scrollZoneFunctions.removeEventListenerForSidebar();
109
- },
110
- isDragging: function isDragging() {
111
- return isMultipleItemSelected && isSelected || !isMultipleItemSelected && isSelected;
112
- },
113
- item: {
114
- height: height,
115
- id: id,
116
- left: left,
117
- top: top,
118
- type: itemTypes.DRAGGABLE_ITEM_TYPE,
119
- width: width
120
- }
121
- }),
134
+ var _canDrag = !_item2.isLocked && !isTextEditorOpen;
135
+
136
+ var _useDrag = reactDnd.useDrag(function () {
137
+ return {
138
+ canDrag: function canDrag() {
139
+ return _canDrag;
140
+ },
141
+ collect: function collect(monitor) {
142
+ return {
143
+ isDragging: monitor.isDragging()
144
+ };
145
+ },
146
+ end: function end(_item, monitor) {
147
+ var dropResult = monitor.getDropResult();
148
+
149
+ if (dropResult && dropResult[id]) {
150
+ var _dropResult$id = dropResult[id],
151
+ dropLeft = _dropResult$id.left,
152
+ dropTop = _dropResult$id.top;
153
+ setResizeSize(function (prev) {
154
+ return {
155
+ height: prev.height,
156
+ left: dropLeft,
157
+ top: dropTop,
158
+ width: prev.width
159
+ };
160
+ });
161
+ }
162
+
163
+ scrollZoneFunctions.removeEventListenerForSidebar();
164
+ },
165
+ isDragging: function isDragging() {
166
+ return isMultipleItemSelected && isSelected || !isMultipleItemSelected && isSelected;
167
+ },
168
+ item: function item() {
169
+ select();
170
+ scrollZoneFunctions.addEventListenerForSidebar();
171
+ return _item2;
172
+ },
173
+ type: itemTypes.DRAGGABLE_ITEM_TYPE
174
+ };
175
+ }, [_item2, _canDrag, id, isMultipleItemSelected, isSelected]),
122
176
  _useDrag2 = _slicedToArray(_useDrag, 3),
123
177
  isDragging = _useDrag2[0].isDragging,
124
178
  drag = _useDrag2[1],
125
179
  preview = _useDrag2[2];
126
180
 
127
- var _useState = React.useState({
128
- height: height,
129
- left: left,
130
- top: top,
131
- width: width
132
- }),
133
- _useState2 = _slicedToArray(_useState, 2),
134
- _useState2$ = _useState2[0],
135
- stateHeight = _useState2$.height,
136
- stateLeft = _useState2$.left,
137
- stateTop = _useState2$.top,
138
- stateWidth = _useState2$.width,
139
- setResizeSize = _useState2[1];
140
-
141
181
  React.useEffect(function () {
142
- preview(HTML5Backend.getEmptyImage(), {
143
- captureDraggingState: true
144
- });
145
-
146
- if (width !== stateWidth || height !== stateHeight || left !== stateLeft || top !== stateTop) {
147
- setResizeSize({
148
- height: height,
149
- left: left,
150
- top: top,
151
- width: width
182
+ if (preview) {
183
+ preview(reactDndHtml5Backend.getEmptyImage(), {
184
+ captureDraggingState: true
152
185
  });
153
186
  }
154
- }, [width, height, left, top]);
187
+ }, [preview]);
188
+ React.useEffect(function () {
189
+ setResizeSize(function (prev) {
190
+ if (prev.left !== left || prev.top !== top || prev.width !== width || prev.height !== height) {
191
+ return _objectSpread(_objectSpread({}, prev), {}, {
192
+ height: height,
193
+ left: left,
194
+ top: top,
195
+ width: width
196
+ });
197
+ }
198
+
199
+ return prev;
200
+ });
201
+ }, [left, top, width, height]);
155
202
 
156
203
  var onResizeStop = function onResizeStop(deltaWidth, deltaHeight, direction) {
157
- var activeItem = _objectSpread(_objectSpread({}, item), {}, {
158
- height: item.height + deltaHeight,
159
- width: item.width + deltaWidth
204
+ var activeItem = _objectSpread(_objectSpread({}, _item2), {}, {
205
+ height: _item2.height + deltaHeight,
206
+ width: _item2.width + deltaWidth
160
207
  });
161
208
 
162
209
  if (/left/i.test(direction)) activeItem.left = activeItem.left - deltaWidth;
163
210
  if (/top/i.test(direction)) activeItem.top = activeItem.top - deltaHeight;
164
- var newActiveBoxLeft = activeItem.left;
165
- var newActiveBoxTop = activeItem.top;
166
- Object.keys(matches).forEach(function (axis) {
167
- var _matches$axis = matches[axis],
168
- activeBoxGuides = _matches$axis.activeBoxGuides,
169
- matchedArray = _matches$axis.matchedArray,
170
- proximity = _matches$axis.proximity;
171
- var activeBoxProximityIndex = proximity.activeBoxIndex;
172
- var matchedBoxProximityIndex = proximity.matchedBoxIndex;
173
-
174
- if (axis === 'x') {
175
- if (activeBoxGuides[activeBoxProximityIndex] > matchedArray[matchedBoxProximityIndex]) {
176
- newActiveBoxLeft = activeItem.left - proximity.value;
177
- } else {
178
- newActiveBoxLeft = activeItem.left + proximity.value;
179
- }
180
- } else if (activeBoxGuides[activeBoxProximityIndex] > matchedArray[matchedBoxProximityIndex]) {
181
- newActiveBoxTop = activeItem.top - proximity.value;
182
- } else {
183
- newActiveBoxTop = activeItem.top + proximity.value;
184
- }
185
- });
211
+
212
+ var _getIntersectionsFrom = getIntersectionsFromMatches(activeItem),
213
+ newActiveBoxLeft = _getIntersectionsFrom.newActiveBoxLeft,
214
+ newActiveBoxTop = _getIntersectionsFrom.newActiveBoxTop;
215
+
186
216
  var newResizeSize = {
187
217
  height: activeItem.height,
188
218
  left: activeItem.left,
@@ -206,28 +236,20 @@ var DraggableItem = function DraggableItem(_ref) {
206
236
  }
207
237
 
208
238
  setIsResize(false);
209
- onItemResize(item, newResizeSize);
239
+ onItemResize(_item2, newResizeSize);
210
240
  };
211
241
 
212
242
  var onResize = function onResize(deltaWidth, deltaHeight, direction) {
213
- if (!isResize) {
214
- setIsResize(true);
215
- }
243
+ setIsResize(true);
216
244
 
217
- var activeItem = _objectSpread(_objectSpread({}, item), {}, {
218
- height: item.height + deltaHeight,
219
- width: item.width + deltaWidth
245
+ var activeItem = _objectSpread(_objectSpread({}, _item2), {}, {
246
+ height: _item2.height + deltaHeight,
247
+ width: _item2.width + deltaWidth
220
248
  });
221
249
 
222
250
  if (/left/i.test(direction)) activeItem.left = activeItem.left - deltaWidth;
223
251
  if (/top/i.test(direction)) activeItem.top = activeItem.top - deltaHeight;
224
-
225
- var _guides = _objectSpread(_objectSpread({}, guides), {}, _defineProperty({}, item.id, _objectSpread(_objectSpread({}, guides[item.id]), {}, {
226
- x: functions.calculateGuidePositions(activeItem, 'x', zoom),
227
- y: functions.calculateGuidePositions(activeItem, 'y', zoom)
228
- })));
229
-
230
- setMatches(functions.proximityListener(item.id, _guides));
252
+ handleMatches(activeItem);
231
253
  setResizeSize({
232
254
  height: activeItem.height,
233
255
  left: activeItem.left,
@@ -239,18 +261,18 @@ var DraggableItem = function DraggableItem(_ref) {
239
261
  var deleteItem = function deleteItem() {
240
262
  setIsRightPanelOpen(false);
241
263
  setActiveElement(null);
242
- onItemRemove(item);
243
- onAnEventTrigger('removeItem', item.itemType);
264
+ onItemRemove(_item2);
265
+ onAnEventTrigger('removeItem', _item2.itemType);
244
266
  };
245
267
 
246
268
  var duplicateItem = function duplicateItem() {
247
269
  var itemID = generateId();
248
- onItemAdd(_objectSpread(_objectSpread({}, item), {}, {
270
+ onItemAdd(_objectSpread(_objectSpread({}, _item2), {}, {
249
271
  id: itemID,
250
- left: item.left + 50,
251
- top: item.top + 50
272
+ left: _item2.left + 50,
273
+ top: _item2.top + 50
252
274
  }));
253
- onAnEventTrigger('duplicateItem', item.itemType);
275
+ onAnEventTrigger('duplicateItem', _item2.itemType);
254
276
  setActiveElement(itemID);
255
277
 
256
278
  if (!isRightPanelOpen) {
@@ -282,7 +304,7 @@ var DraggableItem = function DraggableItem(_ref) {
282
304
  }
283
305
 
284
306
  e.preventDefault();
285
- onAnEventTrigger('openContextMenu', item.itemType);
307
+ onAnEventTrigger('openContextMenu', _item2.itemType);
286
308
  setContextMenuProps({
287
309
  id: id,
288
310
  pageID: pageID,
@@ -302,7 +324,7 @@ var DraggableItem = function DraggableItem(_ref) {
302
324
  var duplicateWithAltKey = function duplicateWithAltKey(e) {
303
325
  if (e.altKey) {
304
326
  var itemID = generateId();
305
- var itemToAdd = item;
327
+ var itemToAdd = _item2;
306
328
  setTimeout(function () {
307
329
  onItemAdd(_objectSpread(_objectSpread({}, itemToAdd), {}, {
308
330
  id: itemID,
@@ -315,15 +337,15 @@ var DraggableItem = function DraggableItem(_ref) {
315
337
  };
316
338
 
317
339
  var changeLockStatus = function changeLockStatus() {
318
- onAnEventTrigger(item.isLocked ? 'unlockReportItem' : 'lockReportItem', item.itemType);
340
+ onAnEventTrigger(_item2.isLocked ? 'unlockReportItem' : 'lockReportItem', _item2.itemType);
319
341
  onItemChange({
320
- id: item.id
342
+ id: _item2.id
321
343
  }, {
322
- isLocked: item.isLocked ? false : true
344
+ isLocked: _item2.isLocked ? false : true
323
345
  });
324
346
 
325
- if (!item.isLocked) {
326
- setActiveElement(item.id, false);
347
+ if (!_item2.isLocked) {
348
+ setActiveElement(_item2.id, false);
327
349
  setIsRightPanelOpen(false);
328
350
  }
329
351
  };
@@ -340,11 +362,10 @@ var DraggableItem = function DraggableItem(_ref) {
340
362
  children: /*#__PURE__*/jsxRuntime.jsx("div", {
341
363
  ref: drag,
342
364
  className: "".concat(classNames.reportItem).concat(isLocked ? ' isLocked' : ''),
343
- onClick: select,
344
365
  onContextMenu: onContextMenuClick,
345
366
  onDoubleClick: onDoubleClick,
346
367
  onDragStart: duplicateWithAltKey,
347
- onKeyDown: function onKeyDown() {},
368
+ onMouseDown: select,
348
369
  style: reportItemStyle,
349
370
  children: children
350
371
  })
@@ -353,34 +374,23 @@ var DraggableItem = function DraggableItem(_ref) {
353
374
  deleteItem: deleteItem,
354
375
  duplicateItem: duplicateItem,
355
376
  isDragging: isDragging,
356
- isMultipleItemSelected: isMultipleItemSelected,
357
- isRightPanelOpen: isRightPanelOpen,
358
- isSelectedElement: isSelected,
359
- isTextEditorOpen: isTextEditorOpen,
360
- item: item,
377
+ item: _item2,
361
378
  onClickOutside: onClickOutside,
362
379
  onResize: onResize,
363
380
  onResizeStop: onResizeStop,
364
381
  pageID: pageID,
365
- setActiveElement: setActiveElement,
366
- setIsRightPanelOpen: setIsRightPanelOpen,
367
382
  stateHeight: stateHeight,
368
383
  stateLeft: stateLeft,
369
384
  stateTop: stateTop,
370
- stateWidth: stateWidth,
371
- zoom: zoom
385
+ stateWidth: stateWidth
372
386
  })]
373
387
  });
374
388
  };
375
389
 
376
390
  DraggableItem.propTypes = {
377
391
  children: PropTypes__default['default'].any,
378
- guides: PropTypes__default['default'].shape({}),
379
- isMultipleItemSelected: PropTypes__default['default'].bool,
380
- isResize: PropTypes__default['default'].bool,
381
- isRightPanelOpen: PropTypes__default['default'].bool,
382
- isSelected: PropTypes__default['default'].bool,
383
- isTextEditorOpen: PropTypes__default['default'].bool,
392
+ getIntersectionsFromMatches: PropTypes__default['default'].func,
393
+ handleMatches: PropTypes__default['default'].func,
384
394
  item: PropTypes__default['default'].shape({
385
395
  height: PropTypes__default['default'].oneOfType([PropTypes__default['default'].number, PropTypes__default['default'].string]),
386
396
  id: PropTypes__default['default'].string,
@@ -390,58 +400,9 @@ DraggableItem.propTypes = {
390
400
  pageID: PropTypes__default['default'].string,
391
401
  top: PropTypes__default['default'].oneOfType([PropTypes__default['default'].number, PropTypes__default['default'].string]),
392
402
  width: PropTypes__default['default'].oneOfType([PropTypes__default['default'].number, PropTypes__default['default'].string])
393
- }),
394
- matches: PropTypes__default['default'].shape({}),
395
- onAnEventTrigger: PropTypes__default['default'].func,
396
- onItemAdd: PropTypes__default['default'].func,
397
- onItemChange: PropTypes__default['default'].func,
398
- onItemRemove: PropTypes__default['default'].func,
399
- onItemResize: PropTypes__default['default'].func,
400
- setActiveElement: PropTypes__default['default'].func,
401
- setContextMenuProps: PropTypes__default['default'].func,
402
- setIsResize: PropTypes__default['default'].func,
403
- setIsRightPanelOpen: PropTypes__default['default'].func,
404
- setMatches: PropTypes__default['default'].func,
405
- zoom: PropTypes__default['default'].number
403
+ })
406
404
  };
407
- DraggableItem.defaultProps = {
408
- children: null,
409
- guides: {},
410
- isMultipleItemSelected: false,
411
- isResize: false,
412
- isRightPanelOpen: false,
413
- isSelected: false,
414
- isTextEditorOpen: false,
415
- item: {},
416
- matches: {},
417
- onAnEventTrigger: function onAnEventTrigger() {},
418
- onItemAdd: function onItemAdd() {},
419
- onItemChange: function onItemChange() {},
420
- onItemRemove: function onItemRemove() {},
421
- onItemResize: function onItemResize() {},
422
- setActiveElement: function setActiveElement() {},
423
- setContextMenuProps: function setContextMenuProps() {},
424
- setIsResize: function setIsResize() {},
425
- setIsRightPanelOpen: function setIsRightPanelOpen() {},
426
- setMatches: function setMatches() {},
427
- zoom: 1
428
- }; // avoid unnecessary renders while resizing
429
-
430
- var areEqual = function areEqual(prevProps, nextProps) {
431
- if (prevProps.hashCode !== nextProps.hashCode) return false;
432
- if (!isEqual__default['default'](prevProps.item, nextProps.item)) return false;
433
- if (prevProps.matches !== nextProps.matches) return false;
434
- if (prevProps.isTextEditorOpen !== nextProps.isTextEditorOpen) return false;
435
-
436
- if (prevProps.isSelected && nextProps.isSelected || prevProps.isResize !== nextProps.isResize) {
437
- return false;
438
- }
439
-
440
- if (prevProps.isSelected !== nextProps.isSelected) return false;
441
- return true;
442
- };
443
-
444
- var DraggableItem$1 = /*#__PURE__*/React.memo(DraggableItem, areEqual);
405
+ var DraggableItem$1 = /*#__PURE__*/React.memo(DraggableItem);
445
406
 
446
407
  module.exports = DraggableItem$1;
447
408
  //# sourceMappingURL=DraggableItem.js.map
@@ -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-cjs';\nimport { getEmptyImage } from 'react-dnd-html5-backend-cjs';\nimport isEqual from 'lodash.isequal';\nimport ItemPositioner from '../ItemPositioner';\nimport { DRAGGABLE_ITEM_TYPE } from '../../constants/itemTypes';\nimport {\n getStyles,\n getPosition, calculateGuidePositions, proximityListener,\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';\n\nconst exceptionalClassesForClickOutside = ['contextMenu-itemLabel', 'contextMenu-item'];\nconst reportItemStyle = {\n height: '100%',\n width: '100%',\n};\n\nconst DraggableItem = ({\n children,\n guides,\n isMultipleItemSelected,\n isResize,\n isRightPanelOpen,\n isSelected,\n isTextEditorOpen,\n item,\n matches,\n onAnEventTrigger,\n onItemAdd,\n onItemChange,\n onItemRemove,\n onItemResize,\n setActiveElement,\n setContextMenuProps,\n setIsResize,\n setIsRightPanelOpen,\n setMatches,\n zoom,\n}) => {\n const {\n height,\n id,\n isLocked,\n left,\n pageID,\n top,\n width,\n } = item;\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 [{ isDragging }, drag, preview] = useDrag({\n begin: () => {\n if (!isSelected) select();\n addEventListenerForSidebar();\n },\n canDrag: (!item.isLocked && !isTextEditorOpen) ? true : false,\n collect: monitor => ({\n isDragging: monitor.isDragging(),\n }),\n end: () => {\n removeEventListenerForSidebar();\n },\n isDragging: () => {\n return (isMultipleItemSelected && isSelected) || (!isMultipleItemSelected && isSelected);\n },\n item: {\n height,\n id,\n left,\n top,\n type: DRAGGABLE_ITEM_TYPE,\n width,\n },\n });\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 useEffect(() => {\n preview(getEmptyImage(), { captureDraggingState: true });\n if (width !== stateWidth || height !== stateHeight || left !== stateLeft || top !== stateTop) {\n setResizeSize({\n height,\n left,\n top,\n width,\n });\n }\n }, [width, height, left, top]);\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 let newActiveBoxLeft = activeItem.left;\n let newActiveBoxTop = activeItem.top;\n Object.keys(matches).forEach(axis => {\n const { activeBoxGuides, matchedArray, proximity } = matches[axis];\n const activeBoxProximityIndex = proximity.activeBoxIndex;\n const matchedBoxProximityIndex = proximity.matchedBoxIndex;\n if (axis === 'x') {\n if (activeBoxGuides[activeBoxProximityIndex] > matchedArray[matchedBoxProximityIndex]) {\n newActiveBoxLeft = activeItem.left - proximity.value;\n } else {\n newActiveBoxLeft = activeItem.left + proximity.value;\n }\n } else if (activeBoxGuides[activeBoxProximityIndex]\n > matchedArray[matchedBoxProximityIndex]) {\n newActiveBoxTop = activeItem.top - proximity.value;\n } else {\n newActiveBoxTop = activeItem.top + proximity.value;\n }\n });\n\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 if (!isResize) { 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 const _guides = {\n ...guides,\n [item.id]: {\n ...guides[item.id],\n x: calculateGuidePositions(activeItem, 'x', zoom),\n y: calculateGuidePositions(activeItem, 'y', zoom),\n },\n };\n setMatches(proximityListener(item.id, _guides));\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 onClick={select}\n onContextMenu={onContextMenuClick}\n onDoubleClick={onDoubleClick}\n onDragStart={duplicateWithAltKey}\n onKeyDown={() => {}}\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 isMultipleItemSelected={isMultipleItemSelected}\n isRightPanelOpen={isRightPanelOpen}\n isSelectedElement={isSelected}\n isTextEditorOpen={isTextEditorOpen}\n item={item}\n onClickOutside={onClickOutside}\n onResize={onResize}\n onResizeStop={onResizeStop}\n pageID={pageID}\n setActiveElement={setActiveElement}\n setIsRightPanelOpen={setIsRightPanelOpen}\n stateHeight={stateHeight}\n stateLeft={stateLeft}\n stateTop={stateTop}\n stateWidth={stateWidth}\n zoom={zoom}\n />\n </ErrorBoundary>\n );\n};\n\nDraggableItem.propTypes = {\n children: PropTypes.any,\n guides: PropTypes.shape({}),\n isMultipleItemSelected: PropTypes.bool,\n isResize: PropTypes.bool,\n isRightPanelOpen: PropTypes.bool,\n isSelected: PropTypes.bool,\n isTextEditorOpen: PropTypes.bool,\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 matches: PropTypes.shape({}),\n onAnEventTrigger: PropTypes.func,\n onItemAdd: PropTypes.func,\n onItemChange: PropTypes.func,\n onItemRemove: PropTypes.func,\n onItemResize: PropTypes.func,\n setActiveElement: PropTypes.func,\n setContextMenuProps: PropTypes.func,\n setIsResize: PropTypes.func,\n setIsRightPanelOpen: PropTypes.func,\n setMatches: PropTypes.func,\n zoom: PropTypes.number,\n};\n\nDraggableItem.defaultProps = {\n children: null,\n guides: {},\n isMultipleItemSelected: false,\n isResize: false,\n isRightPanelOpen: false,\n isSelected: false,\n isTextEditorOpen: false,\n item: {},\n matches: {},\n onAnEventTrigger: () => {},\n onItemAdd: () => {},\n onItemChange: () => {},\n onItemRemove: () => {},\n onItemResize: () => {},\n setActiveElement: () => {},\n setContextMenuProps: () => {},\n setIsResize: () => {},\n setIsRightPanelOpen: () => {},\n setMatches: () => {},\n zoom: 1,\n};\n\n// avoid unnecessary renders while resizing\nconst areEqual = (prevProps, nextProps) => {\n if (prevProps.hashCode !== nextProps.hashCode) return false;\n if (!isEqual(prevProps.item, nextProps.item)) return false;\n if (prevProps.matches !== nextProps.matches) return false;\n if (prevProps.isTextEditorOpen !== nextProps.isTextEditorOpen) return false;\n if ((prevProps.isSelected && nextProps.isSelected) || prevProps.isResize !== nextProps.isResize) {\n return false;\n }\n if (prevProps.isSelected !== nextProps.isSelected) return false;\n return true;\n};\n\nexport default memo(DraggableItem, areEqual);\n"],"names":["exceptionalClassesForClickOutside","reportItemStyle","height","width","DraggableItem","children","guides","isMultipleItemSelected","isResize","isRightPanelOpen","isSelected","isTextEditorOpen","item","matches","onAnEventTrigger","onItemAdd","onItemChange","onItemRemove","onItemResize","setActiveElement","setContextMenuProps","setIsResize","setIsRightPanelOpen","setMatches","zoom","id","isLocked","left","pageID","top","select","event","metaKey","undefined","useDrag","begin","addEventListenerForSidebar","canDrag","collect","monitor","isDragging","end","removeEventListenerForSidebar","type","DRAGGABLE_ITEM_TYPE","drag","preview","useState","stateHeight","stateLeft","stateTop","stateWidth","setResizeSize","useEffect","getEmptyImage","captureDraggingState","onResizeStop","deltaWidth","deltaHeight","direction","activeItem","test","newActiveBoxLeft","newActiveBoxTop","Object","keys","forEach","axis","activeBoxGuides","matchedArray","proximity","activeBoxProximityIndex","activeBoxIndex","matchedBoxProximityIndex","matchedBoxIndex","value","newResizeSize","onResize","_guides","x","calculateGuidePositions","y","proximityListener","deleteItem","itemType","duplicateItem","itemID","generateId","onClickOutside","viewPort","document","querySelector","clientHeight","offsetHeight","headerHeight","window","innerHeight","clientY","Array","from","target","classList","some","xClass","includes","onContextMenuClick","e","contentEditable","preventDefault","position","getPosition","onDoubleClick","duplicateWithAltKey","altKey","itemToAdd","setTimeout","changeLockStatus","_jsxs","_jsx","getStyles","classNames","propTypes","PropTypes","any","shape","bool","oneOfType","number","string","func","defaultProps","areEqual","prevProps","nextProps","hashCode","isEqual","memo"],"mappings":"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"}
1
+ {"version":3,"file":"DraggableItem.js","sources":["../../../../src/components/DraggableItem/DraggableItem.js"],"sourcesContent":["import { useEffect, useState, memo } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDrag } from 'react-dnd';\nimport { getEmptyImage } from 'react-dnd-html5-backend';\nimport ItemPositioner from '../ItemPositioner';\nimport { DRAGGABLE_ITEM_TYPE } from '../../constants/itemTypes';\nimport { getStyles, getPosition, isSelectedItem } from '../../utils/functions';\nimport PageItemResizer from '../PageItemResizer';\nimport ErrorBoundary from '../ErrorBoundary';\nimport * as classNames from '../../constants/classNames';\nimport generateId from '../../utils/generateId';\nimport {\n addEventListenerForSidebar,\n removeEventListenerForSidebar,\n} from '../../utils/scrollZoneFunctions';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport { usePropStore } from '../../contexts/PropContext';\n\nconst exceptionalClassesForClickOutside = ['contextMenu-itemLabel', 'contextMenu-item'];\nconst reportItemStyle = {\n height: '100%',\n width: '100%',\n};\n\nconst DraggableItem = ({\n children = null,\n item = {},\n handleMatches,\n getIntersectionsFromMatches,\n}) => {\n const {\n height,\n id,\n isLocked,\n left,\n pageID,\n top,\n width,\n } = item;\n\n const [\n {\n height: stateHeight,\n left: stateLeft,\n top: stateTop,\n width: stateWidth,\n },\n setResizeSize,\n ] = useState({\n height,\n left,\n top,\n width,\n });\n\n const onAnEventTrigger = usePropStore(state => state.onAnEventTrigger);\n const onItemAdd = usePropStore(state => state.onItemAdd);\n const onItemChange = usePropStore(state => state.onItemChange);\n const onItemRemove = usePropStore(state => state.onItemRemove);\n const onItemResize = usePropStore(state => state.onItemResize);\n\n const activeElement = useBuilderStore(state => state.activeElement);\n const setActiveElement = useBuilderStore(state => state.setActiveElement);\n const setContextMenuProps = useBuilderStore(state => state.setContextMenuProps);\n const isTextEditorOpen = useBuilderStore(state => state.isTextEditorOpen);\n const isRightPanelOpen = useBuilderStore(state => state.isRightPanelOpen);\n const setIsRightPanelOpen = useBuilderStore(state => state.setIsRightPanelOpen);\n const setIsResize = useBuilderStore(state => state.setIsResize);\n\n const isSelected = isSelectedItem(item.id, activeElement);\n const isMultipleItemSelected = activeElement !== null && activeElement.length > 1;\n\n const select = event => {\n if (!isSelected) {\n if (!event || !event.metaKey) {\n if (isLocked) {\n setActiveElement(id, false);\n setIsRightPanelOpen(false);\n } else {\n setActiveElement(id);\n }\n } else {\n setActiveElement(id, undefined, true);\n }\n }\n };\n\n const canDrag = !item.isLocked && !isTextEditorOpen;\n\n const [{ isDragging }, drag, preview] = useDrag(() => ({\n canDrag: () => canDrag,\n collect: monitor => ({\n isDragging: monitor.isDragging(),\n }),\n end: (_item, monitor) => {\n const dropResult = monitor.getDropResult();\n if (dropResult && dropResult[id]) {\n const { left: dropLeft, top: dropTop } = dropResult[id];\n setResizeSize(prev => {\n return {\n height: prev.height,\n left: dropLeft,\n top: dropTop,\n width: prev.width,\n };\n });\n }\n removeEventListenerForSidebar();\n },\n isDragging: () => (isMultipleItemSelected && isSelected) || (!isMultipleItemSelected && isSelected),\n item: () => {\n select();\n addEventListenerForSidebar();\n return item;\n },\n type: DRAGGABLE_ITEM_TYPE,\n }), [\n item,\n canDrag,\n id,\n isMultipleItemSelected,\n isSelected,\n ]);\n\n useEffect(() => {\n if (preview) {\n preview(getEmptyImage(), { captureDraggingState: true });\n }\n }, [preview]);\n\n useEffect(() => {\n setResizeSize(prev => {\n if (prev.left !== left || prev.top !== top || prev.width !== width || prev.height !== height) {\n return {\n ...prev,\n height,\n left,\n top,\n width,\n };\n }\n\n return prev;\n });\n }, [left, top, width, height]);\n\n const onResizeStop = (deltaWidth, deltaHeight, direction) => {\n const activeItem = {\n ...item,\n height: item.height + deltaHeight,\n width: item.width + deltaWidth,\n };\n if (/left/i.test(direction)) activeItem.left = activeItem.left - deltaWidth;\n if (/top/i.test(direction)) activeItem.top = activeItem.top - deltaHeight;\n const { newActiveBoxLeft, newActiveBoxTop } = getIntersectionsFromMatches(activeItem);\n let newResizeSize = {\n height: activeItem.height,\n left: activeItem.left,\n top: activeItem.top,\n width: activeItem.width,\n };\n\n if (!(/top/i.test(direction) && /left/i.test(direction))) {\n newResizeSize = {\n ...newResizeSize,\n height: newResizeSize.height + (newActiveBoxTop - activeItem.top),\n width: newResizeSize.width + (newActiveBoxLeft - activeItem.left),\n };\n }\n if (/top/i.test(direction) && newActiveBoxTop !== newResizeSize.top) {\n newResizeSize.top = newActiveBoxTop;\n }\n if (/left/i.test(direction) && newActiveBoxLeft !== newResizeSize.left) {\n newResizeSize.left = newActiveBoxLeft;\n }\n setIsResize(false);\n onItemResize(item, newResizeSize);\n };\n\n const onResize = (deltaWidth, deltaHeight, direction) => {\n setIsResize(true);\n const activeItem = {\n ...item,\n height: item.height + deltaHeight,\n width: item.width + deltaWidth,\n };\n if (/left/i.test(direction)) activeItem.left = activeItem.left - deltaWidth;\n if (/top/i.test(direction)) activeItem.top = activeItem.top - deltaHeight;\n handleMatches(activeItem);\n setResizeSize({\n height: activeItem.height,\n left: activeItem.left,\n top: activeItem.top,\n width: activeItem.width,\n });\n };\n\n const deleteItem = () => {\n setIsRightPanelOpen(false);\n setActiveElement(null);\n onItemRemove(item);\n onAnEventTrigger('removeItem', item.itemType);\n };\n\n const duplicateItem = () => {\n const itemID = generateId();\n onItemAdd({\n ...item,\n id: itemID,\n left: item.left + 50,\n top: item.top + 50,\n });\n onAnEventTrigger('duplicateItem', item.itemType);\n setActiveElement(itemID);\n if (!isRightPanelOpen) {\n setIsRightPanelOpen(true);\n }\n };\n\n const onClickOutside = event => {\n // clickoutside should not work for scrollbar\n const viewPort = document.querySelector('.jfReport-viewport');\n const { clientHeight, offsetHeight } = viewPort;\n const headerHeight = window.innerHeight - offsetHeight;\n if (event.clientY - headerHeight >= clientHeight\n || Array.from(event.target.classList)\n .some(xClass => exceptionalClassesForClickOutside.includes(xClass))) {\n return;\n }\n setIsRightPanelOpen(false);\n setActiveElement(null);\n };\n\n const onContextMenuClick = e => {\n if (\n e.target.contentEditable === 'true'\n || isTextEditorOpen\n ) {\n // Dont override behaviour on text edits.\n return;\n }\n\n e.preventDefault();\n onAnEventTrigger('openContextMenu', item.itemType);\n setContextMenuProps({\n id,\n pageID,\n position: getPosition(e),\n });\n };\n\n const onDoubleClick = e => {\n if (\n e.target.contentEditable === 'true'\n || isTextEditorOpen\n ) {\n // Dont override behaviour on text edits.\n return;\n }\n\n setIsRightPanelOpen(true);\n };\n\n const duplicateWithAltKey = e => {\n if (e.altKey) {\n const itemID = generateId();\n const itemToAdd = item;\n setTimeout(() => {\n onItemAdd({\n ...itemToAdd,\n id: itemID,\n left: itemToAdd.left,\n top: itemToAdd.top,\n });\n onAnEventTrigger('duplicateItem', itemToAdd.itemType);\n });\n }\n };\n\n const changeLockStatus = () => {\n onAnEventTrigger(item.isLocked ? 'unlockReportItem' : 'lockReportItem', item.itemType);\n onItemChange({ id: item.id }, { isLocked: item.isLocked ? false : true });\n if (!item.isLocked) {\n setActiveElement(item.id, false);\n setIsRightPanelOpen(false);\n }\n };\n\n return (\n <ErrorBoundary>\n <ItemPositioner\n classNames={`reportItemWrapper${isSelected ? ' isSelected' : ''}`}\n style={{\n ...getStyles(left, top, isDragging),\n height: stateHeight,\n left: stateLeft,\n top: stateTop,\n width: stateWidth,\n }}\n >\n <div\n ref={drag}\n className={`${classNames.reportItem}${isLocked ? ' isLocked' : ''}`}\n onContextMenu={onContextMenuClick}\n onDoubleClick={onDoubleClick}\n onDragStart={duplicateWithAltKey}\n onMouseDown={select}\n style={reportItemStyle}\n >\n {children}\n </div>\n </ItemPositioner>\n <PageItemResizer\n changeLockStatus={changeLockStatus}\n deleteItem={deleteItem}\n duplicateItem={duplicateItem}\n isDragging={isDragging}\n item={item}\n onClickOutside={onClickOutside}\n onResize={onResize}\n onResizeStop={onResizeStop}\n pageID={pageID}\n stateHeight={stateHeight}\n stateLeft={stateLeft}\n stateTop={stateTop}\n stateWidth={stateWidth}\n />\n </ErrorBoundary>\n );\n};\n\nDraggableItem.propTypes = {\n children: PropTypes.any,\n getIntersectionsFromMatches: PropTypes.func,\n handleMatches: PropTypes.func,\n item: PropTypes.shape({\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n id: PropTypes.string,\n isLocked: PropTypes.bool,\n itemType: PropTypes.string,\n left: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n pageID: PropTypes.string,\n top: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n width: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n }),\n};\n\nexport default memo(DraggableItem);\n"],"names":["exceptionalClassesForClickOutside","reportItemStyle","height","width","DraggableItem","children","item","handleMatches","getIntersectionsFromMatches","id","isLocked","left","pageID","top","useState","stateHeight","stateLeft","stateTop","stateWidth","setResizeSize","onAnEventTrigger","usePropStore","state","onItemAdd","onItemChange","onItemRemove","onItemResize","activeElement","useBuilderStore","setActiveElement","setContextMenuProps","isTextEditorOpen","isRightPanelOpen","setIsRightPanelOpen","setIsResize","isSelected","isSelectedItem","isMultipleItemSelected","length","select","event","metaKey","undefined","canDrag","useDrag","collect","monitor","isDragging","end","_item","dropResult","getDropResult","dropLeft","dropTop","prev","removeEventListenerForSidebar","addEventListenerForSidebar","type","DRAGGABLE_ITEM_TYPE","drag","preview","useEffect","getEmptyImage","captureDraggingState","onResizeStop","deltaWidth","deltaHeight","direction","activeItem","test","newActiveBoxLeft","newActiveBoxTop","newResizeSize","onResize","deleteItem","itemType","duplicateItem","itemID","generateId","onClickOutside","viewPort","document","querySelector","clientHeight","offsetHeight","headerHeight","window","innerHeight","clientY","Array","from","target","classList","some","xClass","includes","onContextMenuClick","e","contentEditable","preventDefault","position","getPosition","onDoubleClick","duplicateWithAltKey","altKey","itemToAdd","setTimeout","changeLockStatus","_jsxs","_jsx","getStyles","classNames","propTypes","PropTypes","any","func","shape","oneOfType","number","string","bool","memo"],"mappings":"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"}