@jotforminc/dnd-builder 3.0.0-alpha.1 → 3.0.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 (454) hide show
  1. package/CHANGELOG.md +193 -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 +127 -82
  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 +75 -205
  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 -157
  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 +3 -7
  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 +163 -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 +5 -16
  115. package/lib/cjs/components/Preview/StaticItem.js.map +1 -1
  116. package/lib/cjs/components/Preview/StaticPage.js +16 -22
  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 +28 -40
  127. package/lib/cjs/components/Report.js.map +1 -1
  128. package/lib/cjs/components/ReportItemsWrapper.js +22 -36
  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 +4 -6
  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 +11 -0
  193. package/lib/cjs/constants/texts.js.map +1 -1
  194. package/lib/cjs/contexts/BuilderContext.js +208 -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/_jfPrint.scss +17 -1
  205. package/lib/cjs/styles/_jfReportsModal.scss +9 -9
  206. package/lib/cjs/styles/_jfReportsPanels.scss +4 -1
  207. package/lib/cjs/styles/_jfReportsReportItem.scss +1 -1
  208. package/lib/cjs/styles/_jfReportsSVG.scss +0 -1
  209. package/lib/cjs/styles/_jfReportsTextEditor.scss +5 -0
  210. package/lib/cjs/styles/_jfSearchInput.scss +2 -2
  211. package/lib/cjs/utils/functions.js +20 -9
  212. package/lib/cjs/utils/functions.js.map +1 -1
  213. package/lib/cjs/utils/getDefaultPresentationActions.js +1 -1
  214. package/lib/cjs/utils/getDefaultPresentationActions.js.map +1 -1
  215. package/lib/cjs/utils/hooks.js +64 -47
  216. package/lib/cjs/utils/hooks.js.map +1 -1
  217. package/lib/esm/components/AlignmentGuides.js +11 -12
  218. package/lib/esm/components/AlignmentGuides.js.map +1 -1
  219. package/lib/esm/components/Builder/Builder.js +20 -129
  220. package/lib/esm/components/Builder/Builder.js.map +1 -1
  221. package/lib/esm/components/Builder/BuilderWrapper.js +58 -0
  222. package/lib/esm/components/Builder/BuilderWrapper.js.map +1 -0
  223. package/lib/esm/components/Builder/ContextMenu.js +31 -30
  224. package/lib/esm/components/Builder/ContextMenu.js.map +1 -1
  225. package/lib/esm/components/Builder/DndWrapper.js +10 -10
  226. package/lib/esm/components/Builder/DndWrapper.js.map +1 -1
  227. package/lib/esm/components/Builder/Element.js +50 -43
  228. package/lib/esm/components/Builder/Element.js.map +1 -1
  229. package/lib/esm/components/Builder/Page.js +128 -83
  230. package/lib/esm/components/Builder/Page.js.map +1 -1
  231. package/lib/esm/components/Builder/PageActions.js +35 -37
  232. package/lib/esm/components/Builder/PageActions.js.map +1 -1
  233. package/lib/esm/components/Builder/PageAdder.js +11 -12
  234. package/lib/esm/components/Builder/PageAdder.js.map +1 -1
  235. package/lib/esm/components/Builder/Panel.js +8 -10
  236. package/lib/esm/components/Builder/Panel.js.map +1 -1
  237. package/lib/esm/components/Builder/ReportItemRenderer.js +7 -6
  238. package/lib/esm/components/Builder/ReportItemRenderer.js.map +1 -1
  239. package/lib/esm/components/Builder/Scene.js +77 -203
  240. package/lib/esm/components/Builder/Scene.js.map +1 -1
  241. package/lib/esm/components/Builder/SearchInput.js +28 -58
  242. package/lib/esm/components/Builder/SearchInput.js.map +1 -1
  243. package/lib/esm/components/Builder/Section.js +8 -10
  244. package/lib/esm/components/Builder/Section.js.map +1 -1
  245. package/lib/esm/components/Builder/Tabs.js +19 -16
  246. package/lib/esm/components/Builder/Tabs.js.map +1 -1
  247. package/lib/esm/components/Builder/ZoomControls.js +20 -30
  248. package/lib/esm/components/Builder/ZoomControls.js.map +1 -1
  249. package/lib/esm/components/DraggableItem/DraggableItem.js +165 -156
  250. package/lib/esm/components/DraggableItem/DraggableItem.js.map +1 -1
  251. package/lib/esm/components/DraggableItem/DraggableItemActions.js +12 -14
  252. package/lib/esm/components/DraggableItem/DraggableItemActions.js.map +1 -1
  253. package/lib/esm/components/DraggableItem/DraggableItemLayer.js +23 -20
  254. package/lib/esm/components/DraggableItem/DraggableItemLayer.js.map +1 -1
  255. package/lib/esm/components/Elements/Chart.js +3 -4
  256. package/lib/esm/components/Elements/Chart.js.map +1 -1
  257. package/lib/esm/components/Elements/Icon.js +3 -5
  258. package/lib/esm/components/Elements/Icon.js.map +1 -1
  259. package/lib/esm/components/Elements/Image.js +11 -12
  260. package/lib/esm/components/Elements/Image.js.map +1 -1
  261. package/lib/esm/components/Elements/RichText.js +16 -14
  262. package/lib/esm/components/Elements/RichText.js.map +1 -1
  263. package/lib/esm/components/Elements/Shapes.js +2 -4
  264. package/lib/esm/components/Elements/Shapes.js.map +1 -1
  265. package/lib/esm/components/ItemPositioner.js +6 -8
  266. package/lib/esm/components/ItemPositioner.js.map +1 -1
  267. package/lib/esm/components/PageItemResizer.js +3 -7
  268. package/lib/esm/components/PageItemResizer.js.map +1 -1
  269. package/lib/esm/components/Panels/AllSlidesPanel/AllSlidesPanel.js +25 -59
  270. package/lib/esm/components/Panels/AllSlidesPanel/AllSlidesPanel.js.map +1 -1
  271. package/lib/esm/components/Panels/AllSlidesPanel/AllSlidesPanelToggler.js +2 -4
  272. package/lib/esm/components/Panels/AllSlidesPanel/AllSlidesPanelToggler.js.map +1 -1
  273. package/lib/esm/components/Panels/AllSlidesPanel/PageActionsBar.js +8 -15
  274. package/lib/esm/components/Panels/AllSlidesPanel/PageActionsBar.js.map +1 -1
  275. package/lib/esm/components/Panels/AllSlidesPanel/PageItem.js +56 -22
  276. package/lib/esm/components/Panels/AllSlidesPanel/PageItem.js.map +1 -1
  277. package/lib/esm/components/Panels/AllSlidesPanel/PageItemDragOverlay.js +48 -0
  278. package/lib/esm/components/Panels/AllSlidesPanel/PageItemDragOverlay.js.map +1 -0
  279. package/lib/esm/components/Panels/AllSlidesPanel/PageList.js +140 -48
  280. package/lib/esm/components/Panels/AllSlidesPanel/PageList.js.map +1 -1
  281. package/lib/esm/components/Panels/AllSlidesPanel/PageThumbnailActions.js +17 -18
  282. package/lib/esm/components/Panels/AllSlidesPanel/PageThumbnailActions.js.map +1 -1
  283. package/lib/esm/components/Panels/LeftPanel/Elements.js +49 -53
  284. package/lib/esm/components/Panels/LeftPanel/Elements.js.map +1 -1
  285. package/lib/esm/components/Panels/LeftPanel/LeftPanel.js +6 -34
  286. package/lib/esm/components/Panels/LeftPanel/LeftPanel.js.map +1 -1
  287. package/lib/esm/components/Panels/LeftPanel/LeftPanelCloser.js +4 -4
  288. package/lib/esm/components/Panels/LeftPanel/LeftPanelCloser.js.map +1 -1
  289. package/lib/esm/components/Panels/LeftPanel/LeftPanelOpener.js +4 -3
  290. package/lib/esm/components/Panels/LeftPanel/LeftPanelOpener.js.map +1 -1
  291. package/lib/esm/components/Panels/RightPanel/RightPanel.js +141 -145
  292. package/lib/esm/components/Panels/RightPanel/RightPanel.js.map +1 -1
  293. package/lib/esm/components/Panels/RightPanel/RightPanelToggler.js +7 -4
  294. package/lib/esm/components/Panels/RightPanel/RightPanelToggler.js.map +1 -1
  295. package/lib/esm/components/Panels/RightPanel/Settings.js +21 -22
  296. package/lib/esm/components/Panels/RightPanel/Settings.js.map +1 -1
  297. package/lib/esm/components/Panels/SlidesPanel/ListWrapper.js +106 -96
  298. package/lib/esm/components/Panels/SlidesPanel/ListWrapper.js.map +1 -1
  299. package/lib/esm/components/Panels/SlidesPanel/PageThumbnailActions.js +17 -18
  300. package/lib/esm/components/Panels/SlidesPanel/PageThumbnailActions.js.map +1 -1
  301. package/lib/esm/components/Panels/SlidesPanel/SlidesPanel.js +33 -66
  302. package/lib/esm/components/Panels/SlidesPanel/SlidesPanel.js.map +1 -1
  303. package/lib/esm/components/Panels/SlidesPanel/SlidesPanelToggler.js +9 -9
  304. package/lib/esm/components/Panels/SlidesPanel/SlidesPanelToggler.js.map +1 -1
  305. package/lib/esm/components/Panels/SlidesPanel/SortablePageItem.js +62 -28
  306. package/lib/esm/components/Panels/SlidesPanel/SortablePageItem.js.map +1 -1
  307. package/lib/esm/components/Panels/SlidesPanel/SortablePageItemDragOverlay.js +48 -0
  308. package/lib/esm/components/Panels/SlidesPanel/SortablePageItemDragOverlay.js.map +1 -0
  309. package/lib/esm/components/Panels/SlidesPanel/SortablePageItemRenderer.js +8 -9
  310. package/lib/esm/components/Panels/SlidesPanel/SortablePageItemRenderer.js.map +1 -1
  311. package/lib/esm/components/Panels/SlidesPanel/SortablePageList.js +165 -111
  312. package/lib/esm/components/Panels/SlidesPanel/SortablePageList.js.map +1 -1
  313. package/lib/esm/components/Presentation/Presentation.js +19 -69
  314. package/lib/esm/components/Presentation/Presentation.js.map +1 -1
  315. package/lib/esm/components/Presentation/PresentationBar/PageNavigation.js +8 -10
  316. package/lib/esm/components/Presentation/PresentationBar/PageNavigation.js.map +1 -1
  317. package/lib/esm/components/Presentation/PresentationBar/PresentationActions.js +46 -13
  318. package/lib/esm/components/Presentation/PresentationBar/PresentationActions.js.map +1 -1
  319. package/lib/esm/components/Presentation/PresentationBar/PresentationBar.js +45 -87
  320. package/lib/esm/components/Presentation/PresentationBar/PresentationBar.js.map +1 -1
  321. package/lib/esm/components/Presentation/PresentationBar/SelectZoom.js +8 -10
  322. package/lib/esm/components/Presentation/PresentationBar/SelectZoom.js.map +1 -1
  323. package/lib/esm/components/Presentation/PresentationWrapper.js +57 -60
  324. package/lib/esm/components/Presentation/PresentationWrapper.js.map +1 -1
  325. package/lib/esm/components/Presentation/ProgressBar.js +4 -6
  326. package/lib/esm/components/Presentation/ProgressBar.js.map +1 -1
  327. package/lib/esm/components/Preview/Preview.js +14 -68
  328. package/lib/esm/components/Preview/Preview.js.map +1 -1
  329. package/lib/esm/components/Preview/StaticItem.js +5 -15
  330. package/lib/esm/components/Preview/StaticItem.js.map +1 -1
  331. package/lib/esm/components/Preview/StaticPage.js +16 -22
  332. package/lib/esm/components/Preview/StaticPage.js.map +1 -1
  333. package/lib/esm/components/Preview/StaticScene.js +34 -56
  334. package/lib/esm/components/Preview/StaticScene.js.map +1 -1
  335. package/lib/esm/components/Print/Print.js +18 -57
  336. package/lib/esm/components/Print/Print.js.map +1 -1
  337. package/lib/esm/components/Print/PrintModal.js +49 -0
  338. package/lib/esm/components/Print/PrintModal.js.map +1 -0
  339. package/lib/esm/components/Print/{PrintModeWithoutContext.js → PrintWrapper.js} +11 -42
  340. package/lib/esm/components/Print/PrintWrapper.js.map +1 -0
  341. package/lib/esm/components/Report.js +29 -41
  342. package/lib/esm/components/Report.js.map +1 -1
  343. package/lib/esm/components/ReportItemsWrapper.js +20 -34
  344. package/lib/esm/components/ReportItemsWrapper.js.map +1 -1
  345. package/lib/esm/components/ReportWrapper.js +29 -58
  346. package/lib/esm/components/ReportWrapper.js.map +1 -1
  347. package/lib/esm/components/Settings/Button.js +8 -10
  348. package/lib/esm/components/Settings/Button.js.map +1 -1
  349. package/lib/esm/components/Settings/CheckboxGroup.js +8 -10
  350. package/lib/esm/components/Settings/CheckboxGroup.js.map +1 -1
  351. package/lib/esm/components/Settings/ColorPicker.js +18 -13
  352. package/lib/esm/components/Settings/ColorPicker.js.map +1 -1
  353. package/lib/esm/components/Settings/Dropdown.js +10 -12
  354. package/lib/esm/components/Settings/Dropdown.js.map +1 -1
  355. package/lib/esm/components/Settings/FieldSet.js +3 -4
  356. package/lib/esm/components/Settings/FieldSet.js.map +1 -1
  357. package/lib/esm/components/Settings/IconSelectBox.js +8 -10
  358. package/lib/esm/components/Settings/IconSelectBox.js.map +1 -1
  359. package/lib/esm/components/Settings/ImagePicker/EnterURL.js +4 -6
  360. package/lib/esm/components/Settings/ImagePicker/EnterURL.js.map +1 -1
  361. package/lib/esm/components/Settings/ImagePicker/ImageThumbnailWithDelete.js +6 -8
  362. package/lib/esm/components/Settings/ImagePicker/ImageThumbnailWithDelete.js.map +1 -1
  363. package/lib/esm/components/Settings/ImageUrl.js +8 -10
  364. package/lib/esm/components/Settings/ImageUrl.js.map +1 -1
  365. package/lib/esm/components/Settings/LayoutSizeSettings.js +4 -6
  366. package/lib/esm/components/Settings/LayoutSizeSettings.js.map +1 -1
  367. package/lib/esm/components/Settings/Orientation.js +8 -10
  368. package/lib/esm/components/Settings/Orientation.js.map +1 -1
  369. package/lib/esm/components/Settings/PageLayer/LayerDragOverlay.js +121 -0
  370. package/lib/esm/components/Settings/PageLayer/LayerDragOverlay.js.map +1 -0
  371. package/lib/esm/components/Settings/PageLayer/LayerItem.js +92 -34
  372. package/lib/esm/components/Settings/PageLayer/LayerItem.js.map +1 -1
  373. package/lib/esm/components/Settings/PageLayer/PageLayer.js +117 -52
  374. package/lib/esm/components/Settings/PageLayer/PageLayer.js.map +1 -1
  375. package/lib/esm/components/Settings/SegmentControl.js +8 -10
  376. package/lib/esm/components/Settings/SegmentControl.js.map +1 -1
  377. package/lib/esm/components/Settings/SelectBox.js +8 -10
  378. package/lib/esm/components/Settings/SelectBox.js.map +1 -1
  379. package/lib/esm/components/Settings/SettingsItemRenderer.js +9 -11
  380. package/lib/esm/components/Settings/SettingsItemRenderer.js.map +1 -1
  381. package/lib/esm/components/Settings/SizeSettings.js +4 -6
  382. package/lib/esm/components/Settings/SizeSettings.js.map +1 -1
  383. package/lib/esm/components/Settings/Slider.js +8 -10
  384. package/lib/esm/components/Settings/Slider.js.map +1 -1
  385. package/lib/esm/components/Settings/Switch.js +8 -10
  386. package/lib/esm/components/Settings/Switch.js.map +1 -1
  387. package/lib/esm/components/Settings/Textbox.js +12 -14
  388. package/lib/esm/components/Settings/Textbox.js.map +1 -1
  389. package/lib/esm/components/Settings/Toggle.js +8 -10
  390. package/lib/esm/components/Settings/Toggle.js.map +1 -1
  391. package/lib/esm/components/StaticElements/StaticRichText.js +26 -30
  392. package/lib/esm/components/StaticElements/StaticRichText.js.map +1 -1
  393. package/lib/esm/components/TextEditor/CustomToolbar/CustomToolbar.js +2 -4
  394. package/lib/esm/components/TextEditor/CustomToolbar/CustomToolbar.js.map +1 -1
  395. package/lib/esm/components/TextEditor/CustomToolbar/CustomToolbarWrapper.js +4 -6
  396. package/lib/esm/components/TextEditor/CustomToolbar/CustomToolbarWrapper.js.map +1 -1
  397. package/lib/esm/components/TextEditor/QuillEditor.js +6 -11
  398. package/lib/esm/components/TextEditor/QuillEditor.js.map +1 -1
  399. package/lib/esm/components/TextEditor/TextEditor.js +17 -18
  400. package/lib/esm/components/TextEditor/TextEditor.js.map +1 -1
  401. package/lib/esm/components/withClickOutside.js +11 -12
  402. package/lib/esm/components/withClickOutside.js.map +1 -1
  403. package/lib/esm/components/withZoomPanPinchHOC.js +10 -12
  404. package/lib/esm/components/withZoomPanPinchHOC.js.map +1 -1
  405. package/lib/esm/constants/eventIgnoredRoles.js +9 -0
  406. package/lib/esm/constants/eventIgnoredRoles.js.map +1 -0
  407. package/lib/esm/constants/texts.js +11 -0
  408. package/lib/esm/constants/texts.js.map +1 -1
  409. package/lib/esm/contexts/BuilderContext.js +199 -0
  410. package/lib/esm/contexts/BuilderContext.js.map +1 -0
  411. package/lib/esm/contexts/PresentationContext.js +131 -0
  412. package/lib/esm/contexts/PresentationContext.js.map +1 -0
  413. package/lib/esm/contexts/PropContext.js +135 -0
  414. package/lib/esm/contexts/PropContext.js.map +1 -0
  415. package/lib/esm/contexts/Providers.js +64 -0
  416. package/lib/esm/contexts/Providers.js.map +1 -0
  417. package/lib/esm/index.js +0 -1
  418. package/lib/esm/index.js.map +1 -1
  419. package/lib/esm/styles/_jfPrint.scss +17 -1
  420. package/lib/esm/styles/_jfReportsModal.scss +9 -9
  421. package/lib/esm/styles/_jfReportsPanels.scss +4 -1
  422. package/lib/esm/styles/_jfReportsReportItem.scss +1 -1
  423. package/lib/esm/styles/_jfReportsSVG.scss +0 -1
  424. package/lib/esm/styles/_jfReportsTextEditor.scss +5 -0
  425. package/lib/esm/styles/_jfSearchInput.scss +2 -2
  426. package/lib/esm/utils/functions.js +16 -9
  427. package/lib/esm/utils/functions.js.map +1 -1
  428. package/lib/esm/utils/getDefaultPresentationActions.js +1 -1
  429. package/lib/esm/utils/getDefaultPresentationActions.js.map +1 -1
  430. package/lib/esm/utils/hooks.js +66 -49
  431. package/lib/esm/utils/hooks.js.map +1 -1
  432. package/package.json +18 -14
  433. package/lib/cjs/components/Print/PrintMode.js +0 -59
  434. package/lib/cjs/components/Print/PrintMode.js.map +0 -1
  435. package/lib/cjs/components/Print/PrintModeWithoutContext.js.map +0 -1
  436. package/lib/cjs/components/ResponsiveContent.js +0 -15
  437. package/lib/cjs/components/ResponsiveContent.js.map +0 -1
  438. package/lib/cjs/utils/builderContext.js +0 -308
  439. package/lib/cjs/utils/builderContext.js.map +0 -1
  440. package/lib/cjs/utils/presentationContext.js +0 -144
  441. package/lib/cjs/utils/presentationContext.js.map +0 -1
  442. package/lib/cjs/utils/propContext.js +0 -133
  443. package/lib/cjs/utils/propContext.js.map +0 -1
  444. package/lib/esm/components/Print/PrintMode.js +0 -52
  445. package/lib/esm/components/Print/PrintMode.js.map +0 -1
  446. package/lib/esm/components/Print/PrintModeWithoutContext.js.map +0 -1
  447. package/lib/esm/components/ResponsiveContent.js +0 -13
  448. package/lib/esm/components/ResponsiveContent.js.map +0 -1
  449. package/lib/esm/utils/builderContext.js +0 -297
  450. package/lib/esm/utils/builderContext.js.map +0 -1
  451. package/lib/esm/utils/presentationContext.js +0 -133
  452. package/lib/esm/utils/presentationContext.js.map +0 -1
  453. package/lib/esm/utils/propContext.js +0 -122
  454. package/lib/esm/utils/propContext.js.map +0 -1
@@ -1,7 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  var React = require('react');
4
- var propContext = require('../../utils/propContext.js');
4
+ var PropContext = require('../../contexts/PropContext.js');
5
+ var getMergedItem = require('../../utils/getMergedItem.js');
5
6
 
6
7
  var getItemComponent = function getItemComponent(elementName, Elements) {
7
8
  return Elements[elementName] && Elements[elementName].Component ? Elements[elementName].Component : Elements.text.Component;
@@ -10,11 +11,11 @@ var getItemComponent = function getItemComponent(elementName, Elements) {
10
11
  var ReportItemRenderer = function ReportItemRenderer(_ref) {
11
12
  var children = _ref.children,
12
13
  item = _ref.item;
13
-
14
- var _usePropContext = propContext.usePropContext(),
15
- acceptedItems = _usePropContext.acceptedItems;
16
-
17
- return children(getItemComponent(item.itemType, acceptedItems), item);
14
+ var acceptedItems = PropContext.usePropStore(function (state) {
15
+ return state.acceptedItems;
16
+ });
17
+ var mergedItem = getMergedItem(item, acceptedItems);
18
+ return children(getItemComponent(item.itemType, acceptedItems), mergedItem);
18
19
  };
19
20
 
20
21
  var ReportItemRenderer$1 = /*#__PURE__*/React.memo(ReportItemRenderer);
@@ -1 +1 @@
1
- {"version":3,"file":"ReportItemRenderer.js","sources":["../../../../src/components/Builder/ReportItemRenderer.js"],"sourcesContent":["import { memo } from 'react';\nimport { usePropContext } from '../../utils/propContext';\n\nconst getItemComponent = (elementName, Elements) => {\n return Elements[elementName] && Elements[elementName].Component\n ? Elements[elementName].Component\n : Elements.text.Component;\n};\n\nconst ReportItemRenderer = ({\n children,\n item,\n}) => {\n const { acceptedItems } = usePropContext();\n return children(getItemComponent(item.itemType, acceptedItems), item);\n};\n\nexport default memo(ReportItemRenderer);\n"],"names":["getItemComponent","elementName","Elements","Component","text","ReportItemRenderer","children","item","usePropContext","acceptedItems","itemType","memo"],"mappings":";;;;;AAGA,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,WAAD,EAAcC,QAAd,EAA2B;AAClD,SAAOA,QAAQ,CAACD,WAAD,CAAR,IAAyBC,QAAQ,CAACD,WAAD,CAAR,CAAsBE,SAA/C,GACHD,QAAQ,CAACD,WAAD,CAAR,CAAsBE,SADnB,GAEHD,QAAQ,CAACE,IAAT,CAAcD,SAFlB;AAGD,CAJD;;AAMA,IAAME,kBAAkB,GAAG,SAArBA,kBAAqB,OAGrB;AAAA,MAFJC,QAEI,QAFJA,QAEI;AAAA,MADJC,IACI,QADJA,IACI;;AACJ,wBAA0BC,0BAAc,EAAxC;AAAA,MAAQC,aAAR,mBAAQA,aAAR;;AACA,SAAOH,QAAQ,CAACN,gBAAgB,CAACO,IAAI,CAACG,QAAN,EAAgBD,aAAhB,CAAjB,EAAiDF,IAAjD,CAAf;AACD,CAND;;AAQA,wCAAeI,UAAI,CAACN,kBAAD,CAAnB;;;;"}
1
+ {"version":3,"file":"ReportItemRenderer.js","sources":["../../../../src/components/Builder/ReportItemRenderer.js"],"sourcesContent":["import { memo } from 'react';\nimport { usePropStore } from '../../contexts/PropContext';\nimport getMergedItem from '../../utils/getMergedItem';\n\nconst getItemComponent = (elementName, Elements) => {\n return Elements[elementName] && Elements[elementName].Component\n ? Elements[elementName].Component\n : Elements.text.Component;\n};\n\nconst ReportItemRenderer = ({\n children,\n item,\n}) => {\n const acceptedItems = usePropStore(state => state.acceptedItems);\n const mergedItem = getMergedItem(item, acceptedItems);\n return children(getItemComponent(item.itemType, acceptedItems), mergedItem);\n};\n\nexport default memo(ReportItemRenderer);\n"],"names":["getItemComponent","elementName","Elements","Component","text","ReportItemRenderer","children","item","acceptedItems","usePropStore","state","mergedItem","getMergedItem","itemType","memo"],"mappings":";;;;;;AAIA,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,WAAD,EAAcC,QAAd,EAA2B;AAClD,SAAOA,QAAQ,CAACD,WAAD,CAAR,IAAyBC,QAAQ,CAACD,WAAD,CAAR,CAAsBE,SAA/C,GACHD,QAAQ,CAACD,WAAD,CAAR,CAAsBE,SADnB,GAEHD,QAAQ,CAACE,IAAT,CAAcD,SAFlB;AAGD,CAJD;;AAMA,IAAME,kBAAkB,GAAG,SAArBA,kBAAqB,OAGrB;AAAA,MAFJC,QAEI,QAFJA,QAEI;AAAA,MADJC,IACI,QADJA,IACI;AACJ,MAAMC,aAAa,GAAGC,wBAAY,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACF,aAAV;AAAA,GAAN,CAAlC;AACA,MAAMG,UAAU,GAAGC,aAAa,CAACL,IAAD,EAAOC,aAAP,CAAhC;AACA,SAAOF,QAAQ,CAACN,gBAAgB,CAACO,IAAI,CAACM,QAAN,EAAgBL,aAAhB,CAAjB,EAAiDG,UAAjD,CAAf;AACD,CAPD;;AASA,wCAAeG,UAAI,CAACT,kBAAD,CAAnB;;;;"}
@@ -7,40 +7,31 @@ require('core-js/modules/es.array.map.js');
7
7
  require('core-js/modules/es.number.constructor.js');
8
8
  require('core-js/modules/es.number.is-nan.js');
9
9
  require('core-js/modules/es.number.to-fixed.js');
10
+ require('core-js/modules/es.object.to-string.js');
11
+ require('core-js/modules/es.regexp.to-string.js');
10
12
  require('core-js/modules/web.dom-collections.for-each.js');
11
13
  var React = require('react');
12
- var PropTypes = require('prop-types');
13
14
  var classNames = require('../../constants/classNames.js');
14
15
  var ContextMenu = require('./ContextMenu.js');
15
16
  var PageActions = require('./PageActions.js');
16
17
  var PageAdder = require('./PageAdder.js');
17
18
  var ZoomControls = require('./ZoomControls.js');
18
- var builderContext = require('../../utils/builderContext.js');
19
- var propContext = require('../../utils/propContext.js');
20
- var itemTypes = require('../../constants/itemTypes.js');
19
+ var BuilderContext = require('../../contexts/BuilderContext.js');
20
+ var PropContext = require('../../contexts/PropContext.js');
21
21
  var Page = require('./Page.js');
22
22
  var functions = require('../../utils/functions.js');
23
23
  var hooks = require('../../utils/hooks.js');
24
24
  var DraggableItemLayer = require('../DraggableItem/DraggableItemLayer.js');
25
25
  var generateId = require('../../utils/generateId.js');
26
+ var eventIgnoredRoles = require('../../constants/eventIgnoredRoles.js');
26
27
  var jsxRuntime = require('react/jsx-runtime');
27
28
 
28
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
29
-
30
- var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
31
-
32
- var _excluded = ["id", "itemType", "type"];
33
-
34
29
  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; }
35
30
 
36
31
  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; }
37
32
 
38
33
  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; }
39
34
 
40
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
41
-
42
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
43
-
44
35
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
45
36
 
46
37
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -53,73 +44,75 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
53
44
 
54
45
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
55
46
 
56
- var Scene = function Scene(_ref) {
57
- var additionalPageItems = _ref.additionalPageItems,
58
- hashCode = _ref.hashCode,
59
- itemAccessor = _ref.itemAccessor,
60
- lastScrollPosition = _ref.lastScrollPosition,
61
- onItemAdd = _ref.onItemAdd,
62
- onItemChange = _ref.onItemChange,
63
- onItemMove = _ref.onItemMove,
64
- onItemRemove = _ref.onItemRemove,
65
- onItemResize = _ref.onItemResize,
66
- onItemsMove = _ref.onItemsMove,
67
- onPageAdd = _ref.onPageAdd,
68
- onPageChange = _ref.onPageChange,
69
- onPageDuplicate = _ref.onPageDuplicate,
70
- onPageOrdersChange = _ref.onPageOrdersChange,
71
- onPageRemove = _ref.onPageRemove,
72
- pages = _ref.pages;
73
- var pageCount = pages.length;
74
- /* Builder Context */
75
-
76
- var _useBuilderContext = builderContext.useBuilderContext(),
77
- activeElement = _useBuilderContext.activeElement,
78
- contextMenuProps = _useBuilderContext.contextMenuProps,
79
- isRightPanelOpen = _useBuilderContext.isRightPanelOpen,
80
- setActiveElement = _useBuilderContext.setActiveElement,
81
- setContextMenuProps = _useBuilderContext.setContextMenuProps,
82
- setEditedElement = _useBuilderContext.setEditedElement,
83
- setIsRightPanelOpen = _useBuilderContext.setIsRightPanelOpen,
84
- zoom = _useBuilderContext.zoom;
85
-
86
- var _usePropContext = propContext.usePropContext(),
87
- acceptedItems = _usePropContext.acceptedItems,
88
- disableInteraction = _usePropContext.disableInteraction,
89
- onAnEventTrigger = _usePropContext.onAnEventTrigger,
90
- settings = _usePropContext.settings;
47
+ var Scene = function Scene() {
48
+ var pages = PropContext.usePropStore(function (state) {
49
+ return state.pages;
50
+ });
51
+ var onItemAdd = PropContext.usePropStore(function (state) {
52
+ return state.onItemAdd;
53
+ });
54
+ var onItemRemove = PropContext.usePropStore(function (state) {
55
+ return state.onItemRemove;
56
+ });
57
+ var onAnEventTrigger = PropContext.usePropStore(function (state) {
58
+ return state.onAnEventTrigger;
59
+ });
60
+ var settings = PropContext.usePropStore(function (state) {
61
+ return state.settings;
62
+ });
63
+ var onItemChange = PropContext.usePropStore(function (state) {
64
+ return state.onItemChange;
65
+ });
66
+ var activeElement = BuilderContext.useBuilderStore(function (state) {
67
+ return state.activeElement;
68
+ });
69
+ var contextMenuProps = BuilderContext.useBuilderStore(function (state) {
70
+ return state.contextMenuProps;
71
+ });
72
+ var isRightPanelOpen = BuilderContext.useBuilderStore(function (state) {
73
+ return state.isRightPanelOpen;
74
+ });
75
+ var setActiveElement = BuilderContext.useBuilderStore(function (state) {
76
+ return state.setActiveElement;
77
+ });
78
+ var setContextMenuProps = BuilderContext.useBuilderStore(function (state) {
79
+ return state.setContextMenuProps;
80
+ });
81
+ var setIsRightPanelOpen = BuilderContext.useBuilderStore(function (state) {
82
+ return state.setIsRightPanelOpen;
83
+ });
84
+ var zoom = BuilderContext.useBuilderStore(function (state) {
85
+ return state.zoom;
86
+ });
91
87
 
92
88
  var _useState = React.useState(null),
93
89
  _useState2 = _slicedToArray(_useState, 2),
94
90
  itemToPaste = _useState2[0],
95
91
  setItemToPaste = _useState2[1];
96
92
 
93
+ var lastScrollPosition = BuilderContext.useBuilderStore(function (state) {
94
+ return state.lastScrollPosition;
95
+ });
97
96
  var isHeaderHidden = React.useRef(false);
98
97
  var pageStyles = React.useRef({});
99
98
  var pageContainerStyles = React.useRef({});
100
99
  var viewPortRef = React.useRef({});
101
100
  /* Page Refs */
102
101
 
103
- var refs = pages.reduce(function (acc, curr) {
102
+ var refs = React.useRef(pages.reduce(function (acc, curr) {
104
103
  acc[curr.id] = /*#__PURE__*/React.createRef(null);
105
104
  return acc;
106
- }, {});
105
+ }, {}));
107
106
  var isMultipleItemSelected = activeElement !== null && activeElement.length > 1;
108
107
  /* Calculate snap guides */
109
108
 
110
- var _useState3 = React.useState({}),
111
- _useState4 = _slicedToArray(_useState3, 2),
112
- guides = _useState4[0],
113
- setGuides = _useState4[1];
114
-
115
109
  var keyDownCount = React.useRef(null);
116
- React.useEffect(function () {
117
- var _guides = pages.reduce(function (acc, page) {
110
+ var guides = React.useMemo(function () {
111
+ return pages.reduce(function (acc, page) {
118
112
  var _pageGuides = {};
113
+ var pageRef = refs.current[page.id];
119
114
 
120
- if (refs[page.id]) {
121
- var pageRef = refs[page.id];
122
-
115
+ if (pageRef && pageRef.current) {
123
116
  var _pageRef$current$getB = pageRef.current.getBoundingClientRect(),
124
117
  _height = _pageRef$current$getB.height,
125
118
  left = _pageRef$current$getB.left,
@@ -151,75 +144,12 @@ var Scene = function Scene(_ref) {
151
144
  acc[page.id] = _pageGuides;
152
145
  return acc;
153
146
  }, {});
154
-
155
- setGuides(_guides);
156
147
  }, [pages, zoom]);
157
- /* When an item dropped */
158
-
159
- var dropped = React.useCallback(function (pageID, _ref2, monitor, ref) {
160
- var id = _ref2.id,
161
- itemType = _ref2.itemType,
162
- type = _ref2.type,
163
- additionalData = _objectWithoutProperties(_ref2, _excluded);
164
-
165
- var pageClient = ref.current.getBoundingClientRect();
166
- var coords = functions.getCorrectDroppedOffsetValue(monitor, pageClient, zoom);
167
-
168
- switch (type) {
169
- case itemTypes.DROPPABLE_ITEM_TYPE:
170
- {
171
- var itemID = generateId();
172
- onItemAdd(_objectSpread(_objectSpread(_objectSpread({}, acceptedItems[itemType].details), {}, {
173
- id: itemID,
174
- pageID: pageID
175
- }, coords), additionalData));
176
- onAnEventTrigger('reportItemAdd', itemType);
177
- setActiveElement(itemID);
178
- setIsRightPanelOpen(true);
179
- break;
180
- }
181
-
182
- case itemTypes.DRAGGABLE_ITEM_TYPE:
183
- {
184
- var dragCoords = functions.getCorrectDroppedOffsetValueBySnap(coords, guides, id, pages, zoom);
185
-
186
- if (isMultipleItemSelected) {
187
- var leftDifference = additionalData.left - dragCoords.left;
188
- var topDifference = additionalData.top - dragCoords.top;
189
- var items = activeElement.reduce(function (acc, curr) {
190
- var tempItem = functions.findItemById(curr, pages);
191
- acc[curr] = {
192
- id: curr,
193
- left: tempItem.left - leftDifference,
194
- pageID: pageID,
195
- top: tempItem.top - topDifference
196
- };
197
- return acc;
198
- }, {});
199
- onItemsMove({
200
- items: items
201
- });
202
- } else {
203
- onItemMove(_objectSpread({
204
- id: id,
205
- pageID: pageID
206
- }, dragCoords));
207
- }
208
-
209
- break;
210
- }
211
-
212
- default:
213
- {
214
- throw new Error('You have to be specify item type');
215
- }
216
- }
217
- }, [pages, guides, zoom, activeElement]);
218
148
  React.useEffect(function () {
219
149
  if (viewPortRef.current) {
220
150
  viewPortRef.current.scrollTop = lastScrollPosition;
221
151
  }
222
- }, []); // set last scroll position after changing mode
152
+ }, [lastScrollPosition]); // set last scroll position after changing mode
223
153
 
224
154
  React.useEffect(function () {
225
155
  if (document.body.classList.contains('hideHeader') && isHeaderHidden) {
@@ -402,9 +332,19 @@ var Scene = function Scene(_ref) {
402
332
  }
403
333
  };
404
334
 
335
+ var shouldSuppressKeyboardEvent = function shouldSuppressKeyboardEvent(e) {
336
+ return eventIgnoredRoles.EVENT_IGNORED_ROLES.some(function (role) {
337
+ return e.target.closest("[role=".concat(role, "]"));
338
+ });
339
+ };
340
+
405
341
  var handleKeyboardEvent = function handleKeyboardEvent(e) {
406
342
  var shouldPaste = itemToPaste && e.key === 'v' && e.metaKey;
407
343
 
344
+ if (shouldSuppressKeyboardEvent(e)) {
345
+ return;
346
+ }
347
+
408
348
  if (activeElement && !shouldPaste) {
409
349
  var arrowKeyCodes = ['ArrowLeft', 'ArrowUp', 'ArrowDown', 'ArrowBottom'];
410
350
  if (arrowKeyCodes.includes(e.key)) e.preventDefault();
@@ -443,8 +383,7 @@ var Scene = function Scene(_ref) {
443
383
  className: classNames.mainWrapper,
444
384
  children: [/*#__PURE__*/jsxRuntime.jsx(DraggableItemLayer, {
445
385
  guides: guides,
446
- itemAccessor: itemAccessor,
447
- pageRefs: refs,
386
+ pageRefs: refs.current,
448
387
  pages: pages
449
388
  }), /*#__PURE__*/jsxRuntime.jsx("div", {
450
389
  ref: viewPortRef,
@@ -459,110 +398,41 @@ var Scene = function Scene(_ref) {
459
398
  // TODO: This part can be moved into a different component
460
399
  jsxRuntime.jsxs(React.Fragment, {
461
400
  children: [/*#__PURE__*/jsxRuntime.jsx(PageActions, {
462
- disableInteraction: disableInteraction,
463
- onAnEventTrigger: onAnEventTrigger,
464
- onPageAdd: onPageAdd,
465
- onPageDuplicate: onPageDuplicate,
466
- onPageOrdersChange: onPageOrdersChange,
467
- onPageRemove: onPageRemove,
468
401
  order: page.order,
469
- pageCount: pageCount,
470
- pageID: page.id,
471
- pages: pages,
472
- setEditedElement: setEditedElement,
473
- setIsRightPanelOpen: setIsRightPanelOpen
402
+ pageID: page.id
474
403
  }), /*#__PURE__*/jsxRuntime.jsx("div", {
475
- ref: refs[page.id],
404
+ ref: refs.current[page.id],
476
405
  className: classNames.page,
477
406
  "data-id": page.id,
478
407
  "data-order": page.order,
408
+ id: "presentation-page-".concat(page.id.toString()),
479
409
  style: pageStyles.current,
480
410
  children: /*#__PURE__*/jsxRuntime.jsx(Page, {
481
- activeElement: activeElement,
482
- additionalPageItems: additionalPageItems,
483
- guides: guides[page.id],
484
- hashCode: hashCode,
485
- itemAccessor: itemAccessor,
486
- items: page.items // TODO: dont use inline functions
487
- ,
488
- onDrop: function onDrop(item, monitor) {
489
- return dropped(page.id, item, monitor, refs[page.id]);
490
- },
491
- onItemAdd: onItemAdd,
492
- onItemChange: onItemChange,
493
- onItemRemove: onItemRemove,
494
- onItemResize: onItemResize,
411
+ guides: guides,
412
+ items: page.items,
495
413
  page: page,
496
414
  pageIndex: index,
497
- pageRef: refs[page.id],
415
+ pageRef: refs.current[page.id],
498
416
  style: pageContainerStyles.current
499
417
  })
500
418
  }, "page_".concat(page.id))]
501
419
  }, page.id)
502
420
  );
503
- }), /*#__PURE__*/jsxRuntime.jsx(PageAdder, {
504
- onPageAdd: onPageAdd,
505
- pageCount: pageCount
506
- })]
421
+ }), /*#__PURE__*/jsxRuntime.jsx(PageAdder, {})]
507
422
  })
508
- }), /*#__PURE__*/jsxRuntime.jsx(ZoomControls, {
509
- mode: "customize",
510
- pages: pages
511
- }), contextMenuProps && /*#__PURE__*/jsxRuntime.jsx(ContextMenu, {
423
+ }), /*#__PURE__*/jsxRuntime.jsx(ZoomControls, {}), contextMenuProps && /*#__PURE__*/jsxRuntime.jsx(ContextMenu, {
512
424
  exceptionalClasses: ['contextMenu-button'],
513
425
  height: height,
514
426
  item: functions.findItemById(contextMenuProps.id, pages),
515
427
  items: functions.findItemsOnPage(contextMenuProps.pageID, pages),
516
- onAnEventTrigger: onAnEventTrigger,
517
428
  onClickOutside: function onClickOutside() {
518
429
  return setContextMenuProps(null);
519
430
  },
520
- onItemChange: onItemChange,
521
- onItemRemove: onItemRemove,
522
- onPageChange: onPageChange,
523
431
  position: contextMenuProps.position,
524
432
  width: width
525
433
  })]
526
434
  });
527
435
  };
528
436
 
529
- Scene.propTypes = {
530
- additionalPageItems: PropTypes__default['default'].arrayOf(PropTypes__default['default'].node),
531
- hashCode: PropTypes__default['default'].string,
532
- itemAccessor: PropTypes__default['default'].func,
533
- lastScrollPosition: PropTypes__default['default'].number,
534
- onItemAdd: PropTypes__default['default'].func,
535
- onItemChange: PropTypes__default['default'].func,
536
- onItemMove: PropTypes__default['default'].func,
537
- onItemRemove: PropTypes__default['default'].func,
538
- onItemResize: PropTypes__default['default'].func,
539
- onItemsMove: PropTypes__default['default'].func,
540
- onPageAdd: PropTypes__default['default'].func,
541
- onPageChange: PropTypes__default['default'].func,
542
- onPageDuplicate: PropTypes__default['default'].func,
543
- onPageOrdersChange: PropTypes__default['default'].func,
544
- onPageRemove: PropTypes__default['default'].func,
545
- pages: PropTypes__default['default'].arrayOf(PropTypes__default['default'].shape({}))
546
- };
547
- Scene.defaultProps = {
548
- additionalPageItems: [],
549
- hashCode: '',
550
- itemAccessor: function itemAccessor() {},
551
- lastScrollPosition: 0,
552
- onItemAdd: function onItemAdd() {},
553
- onItemChange: function onItemChange() {},
554
- onItemMove: function onItemMove() {},
555
- onItemRemove: function onItemRemove() {},
556
- onItemResize: function onItemResize() {},
557
- onItemsMove: function onItemsMove() {},
558
- onPageAdd: function onPageAdd() {},
559
- onPageChange: function onPageChange() {},
560
- onPageDuplicate: function onPageDuplicate() {},
561
- onPageOrdersChange: function onPageOrdersChange() {},
562
- onPageRemove: function onPageRemove() {},
563
- pages: []
564
- };
565
- var Scene$1 = /*#__PURE__*/React.memo(Scene);
566
-
567
- module.exports = Scene$1;
437
+ module.exports = Scene;
568
438
  //# sourceMappingURL=Scene.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Scene.js","sources":["../../../../src/components/Builder/Scene.js"],"sourcesContent":["/* eslint-disable complexity */\nimport {\n useCallback,\n createRef,\n Fragment,\n useEffect,\n useRef,\n useState,\n memo,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport * as classNames from '../../constants/classNames';\nimport ContextMenu from './ContextMenu';\nimport PageActions from './PageActions';\nimport PageAdder from './PageAdder';\nimport ZoomControls from './ZoomControls';\nimport { useBuilderContext } from '../../utils/builderContext';\nimport { usePropContext } from '../../utils/propContext';\nimport {\n DRAGGABLE_ITEM_TYPE,\n DROPPABLE_ITEM_TYPE,\n} from '../../constants/itemTypes';\nimport Page from './Page';\nimport {\n calculateGuidePositions,\n findItemById,\n findItemsOnPage,\n getCorrectDroppedOffsetValue,\n getCorrectDroppedOffsetValueBySnap,\n getMostVisiblePage,\n getSelectedItems,\n} from '../../utils/functions';\nimport { useEventListener } from '../../utils/hooks';\nimport DraggableItemLayer from '../DraggableItem/DraggableItemLayer';\nimport generateId from '../../utils/generateId';\n\nconst Scene = ({\n additionalPageItems,\n hashCode,\n itemAccessor,\n lastScrollPosition,\n onItemAdd,\n onItemChange,\n onItemMove,\n onItemRemove,\n onItemResize,\n onItemsMove,\n onPageAdd,\n onPageChange,\n onPageDuplicate,\n onPageOrdersChange,\n onPageRemove,\n pages,\n}) => {\n const pageCount = pages.length;\n /* Builder Context */\n const {\n activeElement,\n contextMenuProps,\n isRightPanelOpen,\n setActiveElement,\n setContextMenuProps,\n setEditedElement,\n setIsRightPanelOpen,\n zoom,\n } = useBuilderContext();\n const {\n acceptedItems,\n disableInteraction,\n onAnEventTrigger,\n settings,\n } = usePropContext();\n const [itemToPaste, setItemToPaste] = useState(null);\n const isHeaderHidden = useRef(false);\n\n const pageStyles = useRef({});\n const pageContainerStyles = useRef({});\n const viewPortRef = useRef({});\n\n /* Page Refs */\n const refs = pages.reduce((acc, curr) => {\n acc[curr.id] = createRef(null);\n return acc;\n }, {});\n\n const isMultipleItemSelected = activeElement !== null && activeElement.length > 1;\n\n /* Calculate snap guides */\n const [guides, setGuides] = useState({});\n const keyDownCount = useRef(null);\n useEffect(() => {\n const _guides = pages.reduce((acc, page) => {\n const _pageGuides = {};\n if (refs[page.id]) {\n const pageRef = refs[page.id];\n const {\n height, left, top, width,\n } = pageRef.current.getBoundingClientRect();\n const boundingBox = {\n height, left, top, width,\n };\n _pageGuides.boundingBox = {\n x: calculateGuidePositions(boundingBox, 'x').map(value => value - boundingBox.left),\n y: calculateGuidePositions(boundingBox, 'y').map(value => value - boundingBox.top),\n };\n page.items.forEach(item => {\n _pageGuides[item.id] = {\n x: calculateGuidePositions(item, 'x', zoom),\n y: calculateGuidePositions(item, 'y', zoom),\n };\n });\n }\n acc[page.id] = _pageGuides;\n return acc;\n }, {});\n setGuides(_guides);\n }, [pages, zoom]);\n /* When an item dropped */\n const dropped = useCallback(\n (pageID, {\n id, itemType, type, ...additionalData\n }, monitor, ref) => {\n const pageClient = ref.current.getBoundingClientRect();\n const coords = getCorrectDroppedOffsetValue(\n monitor,\n pageClient,\n zoom,\n );\n switch (type) {\n case DROPPABLE_ITEM_TYPE: {\n const itemID = generateId();\n onItemAdd({\n ...acceptedItems[itemType].details,\n id: itemID,\n pageID,\n ...coords,\n ...additionalData,\n });\n onAnEventTrigger('reportItemAdd', itemType);\n setActiveElement(itemID);\n setIsRightPanelOpen(true);\n break;\n }\n case DRAGGABLE_ITEM_TYPE: {\n const dragCoords = getCorrectDroppedOffsetValueBySnap(coords, guides, id, pages, zoom);\n if (isMultipleItemSelected) {\n const leftDifference = additionalData.left - dragCoords.left;\n const topDifference = additionalData.top - dragCoords.top;\n const items = activeElement.reduce((acc, curr) => {\n const tempItem = findItemById(curr, pages);\n acc[curr] = {\n id: curr,\n left: tempItem.left - leftDifference,\n pageID,\n top: tempItem.top - topDifference,\n };\n return acc;\n }, {});\n onItemsMove({\n items,\n });\n } else {\n onItemMove({\n id,\n pageID,\n ...dragCoords,\n });\n }\n break;\n }\n default: {\n throw new Error('You have to be specify item type');\n }\n }\n },\n [pages, guides, zoom, activeElement],\n );\n\n useEffect(() => {\n if (viewPortRef.current) {\n viewPortRef.current.scrollTop = lastScrollPosition;\n }\n }, []); // set last scroll position after changing mode\n\n useEffect(() => {\n if (document.body.classList.contains('hideHeader') && isHeaderHidden) {\n document.body.classList.remove('hideHeader');\n }\n }, []); // reset hideHeader\n\n const foundItem = findItemById(activeElement === null ? null : activeElement[0], pages);\n\n const selectedItems = getSelectedItems(activeElement, pages);\n const moveItemWithKeyboard = (event, direction, value) => {\n event.preventDefault();\n selectedItems.forEach(item => {\n if (item.isLocked) {\n return false;\n }\n onItemChange(\n { id: item.id },\n {\n ...item,\n [direction]: item[direction] + value,\n },\n );\n });\n };\n\n const selectNextOrPrevElement = (event, deletedItem) => {\n if (event.preventDefault) event.preventDefault();\n const referenceItem = deletedItem ? deletedItem : foundItem;\n\n const page = pages.find(_page => _page.id === referenceItem.pageID);\n if (!page || (page && !page.items.length)) return setActiveElement(null);\n const { items } = page;\n\n const currentIndex = items.findIndex(item => item.id === referenceItem.id);\n\n // Pages are not updated in time so here is an unnecessary check\n if (items.length === 1 && deletedItem) {\n return setActiveElement(null);\n }\n\n if (event.shiftKey) {\n if (items[currentIndex - 1]) setActiveElement(items[currentIndex - 1].id);\n else setActiveElement(items[items.length - 1].id);\n } else if (items[currentIndex + 1]) {\n setActiveElement(items[currentIndex + 1].id);\n } else setActiveElement(items[0].id);\n };\n\n const onItemRemoveFromPage = e => {\n // Firefox updates browser history on backspace\n e.preventDefault();\n if (isMultipleItemSelected) return;\n if (foundItem.isLocked) {\n return false;\n }\n setActiveElement(null);\n onItemRemove(foundItem);\n selectNextOrPrevElement({ shiftKey: false }, foundItem);\n onAnEventTrigger('removeItem', foundItem.itemType);\n };\n\n const handlePaste = () => {\n if (isMultipleItemSelected) return;\n const itemID = generateId();\n const pageID = getMostVisiblePage(true);\n const offset = itemToPaste.pageID === pageID ? 50 : 0;\n\n const item = {\n ...itemToPaste,\n id: itemID,\n left: itemToPaste.left + offset,\n pageID,\n top: itemToPaste.top + offset,\n };\n\n onItemAdd(item);\n\n onAnEventTrigger('pasteItem', itemToPaste.itemType);\n setActiveElement(itemID);\n // set as last reference to paste\n setItemToPaste(item);\n };\n\n const keyboardActions = event => {\n const {\n key,\n metaKey,\n shiftKey,\n } = event;\n\n if (metaKey) {\n if (key === 'l') {\n // Lock\n if (isMultipleItemSelected) return;\n event.preventDefault(); // Dont focus to URL bar\n onAnEventTrigger(\n foundItem.isLocked ? 'unlockReportItem' : 'lockReportItem',\n foundItem.itemType,\n );\n onItemChange(\n { id: foundItem.id },\n { isLocked: foundItem.isLocked ? false : true },\n );\n return;\n }\n\n if (key === 'c' || key === 'x') {\n if (isMultipleItemSelected) return;\n // Copy or Cut\n if (key === 'x') {\n onItemRemoveFromPage(event);\n onAnEventTrigger('cutItem', foundItem.itemType);\n } else {\n onAnEventTrigger('copyItem', foundItem.itemType);\n }\n\n setItemToPaste(foundItem);\n return;\n }\n\n if (foundItem && key === 'd') {\n if (isMultipleItemSelected) return;\n // Duplicate\n event.preventDefault();\n const itemID = generateId();\n onItemAdd({\n ...foundItem,\n id: itemID,\n left: foundItem.left + 50,\n top: foundItem.top + 50,\n });\n onAnEventTrigger('duplicateItem', foundItem.itemType);\n setActiveElement(itemID);\n if (!isRightPanelOpen) {\n setIsRightPanelOpen(true);\n }\n return;\n }\n }\n\n keyDownCount.current++;\n const movementValue = shiftKey ? 10 : 1 + keyDownCount.current;\n\n // Others\n switch (key) {\n case 'Backspace': return onItemRemoveFromPage(event);\n case 'Delete': return onItemRemoveFromPage(event);\n case 'Escape': return setActiveElement(null);\n case 'ArrowLeft': return moveItemWithKeyboard(event, 'left', -movementValue);\n case 'ArrowUp': return moveItemWithKeyboard(event, 'top', -movementValue);\n case 'ArrowRight': return moveItemWithKeyboard(event, 'left', movementValue);\n case 'ArrowDown': return moveItemWithKeyboard(event, 'top', movementValue);\n case 'Tab': return selectNextOrPrevElement(event);\n default:\n }\n };\n\n const onScroll = e => {\n const { scrollTop } = e.currentTarget;\n const hiddenHeaderHeight = 70;\n const headerHidingLimit = isHeaderHidden ? 230 : 300;\n if (scrollTop > headerHidingLimit + hiddenHeaderHeight && !isHeaderHidden.current) {\n isHeaderHidden.current = true;\n document.body.classList.add('hideHeader');\n } else if (scrollTop < headerHidingLimit && isHeaderHidden.current) {\n isHeaderHidden.current = false;\n document.body.classList.remove('hideHeader');\n }\n };\n\n const handleKeyboardEvent = e => {\n const shouldPaste = itemToPaste && e.key === 'v' && e.metaKey;\n\n if (activeElement && !shouldPaste) {\n const arrowKeyCodes = ['ArrowLeft', 'ArrowUp', 'ArrowDown', 'ArrowBottom'];\n if (arrowKeyCodes.includes(e.key)) e.preventDefault();\n keyboardActions(e);\n } else if (shouldPaste) {\n handlePaste();\n }\n };\n\n useEventListener('keydown', handleKeyboardEvent);\n useEventListener('keyup', () => { keyDownCount.current = 0; });\n\n const { reportLayoutHeight = 794, reportLayoutWidth = 1123 } = settings;\n\n // TODO: Some strange shit is going on here on first render\n let width = parseInt(reportLayoutWidth, 10);\n let height = parseInt(reportLayoutHeight, 10);\n width = Number.isNaN(width) ? 1 : width;\n height = Number.isNaN(height) ? 1 : height;\n const zoomToUse = Number.isNaN(zoom) ? 1 : zoom;\n\n pageStyles.current = {\n height: parseFloat((height * zoomToUse).toFixed(1)),\n width: parseFloat((width * zoomToUse).toFixed(1)),\n };\n pageContainerStyles.current = {\n height,\n transform: `scale(${zoomToUse})`,\n transformOrigin: '0 0',\n width,\n };\n\n return (\n <main // Builder.js\n className={classNames.mainWrapper}\n >\n <DraggableItemLayer\n guides={guides}\n itemAccessor={itemAccessor}\n pageRefs={refs}\n pages={pages}\n />\n\n <div\n ref={viewPortRef}\n className={classNames.viewport}\n data-zoom={zoom}\n onScroll={onScroll}\n >\n <div\n className={classNames.canvas}\n >\n {pages.map((page, index) => (\n // TODO: This part can be moved into a different component\n <Fragment key={page.id}>\n <PageActions\n disableInteraction={disableInteraction}\n onAnEventTrigger={onAnEventTrigger}\n onPageAdd={onPageAdd}\n onPageDuplicate={onPageDuplicate}\n onPageOrdersChange={onPageOrdersChange}\n onPageRemove={onPageRemove}\n order={page.order}\n pageCount={pageCount}\n pageID={page.id}\n pages={pages}\n setEditedElement={setEditedElement}\n setIsRightPanelOpen={setIsRightPanelOpen}\n />\n <div\n key={`page_${page.id}`}\n ref={refs[page.id]}\n className={classNames.page}\n data-id={page.id}\n data-order={page.order}\n style={pageStyles.current}\n >\n <Page\n activeElement={activeElement}\n additionalPageItems={additionalPageItems}\n guides={guides[page.id]}\n hashCode={hashCode}\n itemAccessor={itemAccessor}\n items={page.items}\n // TODO: dont use inline functions\n onDrop={(item, monitor) => dropped(page.id, item, monitor, refs[page.id])}\n onItemAdd={onItemAdd}\n onItemChange={onItemChange}\n onItemRemove={onItemRemove}\n onItemResize={onItemResize}\n page={page}\n pageIndex={index}\n pageRef={refs[page.id]}\n style={pageContainerStyles.current}\n />\n </div>\n </Fragment>\n ))}\n <PageAdder\n onPageAdd={onPageAdd}\n pageCount={pageCount}\n />\n </div>\n </div>\n <ZoomControls\n mode=\"customize\"\n pages={pages}\n />\n {contextMenuProps\n && (\n <ContextMenu\n exceptionalClasses={['contextMenu-button']}\n height={height}\n item={findItemById(contextMenuProps.id, pages)}\n items={findItemsOnPage(contextMenuProps.pageID, pages)}\n onAnEventTrigger={onAnEventTrigger}\n onClickOutside={() => setContextMenuProps(null)}\n onItemChange={onItemChange}\n onItemRemove={onItemRemove}\n onPageChange={onPageChange}\n position={contextMenuProps.position}\n width={width}\n />\n )}\n </main>\n );\n};\n\nScene.propTypes = {\n additionalPageItems: PropTypes.arrayOf(PropTypes.node),\n hashCode: PropTypes.string,\n itemAccessor: PropTypes.func,\n lastScrollPosition: PropTypes.number,\n onItemAdd: PropTypes.func,\n onItemChange: PropTypes.func,\n onItemMove: PropTypes.func,\n onItemRemove: PropTypes.func,\n onItemResize: PropTypes.func,\n onItemsMove: PropTypes.func,\n onPageAdd: PropTypes.func,\n onPageChange: PropTypes.func,\n onPageDuplicate: PropTypes.func,\n onPageOrdersChange: PropTypes.func,\n onPageRemove: PropTypes.func,\n pages: PropTypes.arrayOf(\n PropTypes.shape({}),\n ),\n};\n\nScene.defaultProps = {\n additionalPageItems: [],\n hashCode: '',\n itemAccessor: () => {},\n lastScrollPosition: 0,\n onItemAdd: () => {},\n onItemChange: () => {},\n onItemMove: () => {},\n onItemRemove: () => {},\n onItemResize: () => {},\n onItemsMove: () => {},\n onPageAdd: () => {},\n onPageChange: () => {},\n onPageDuplicate: () => {},\n onPageOrdersChange: () => {},\n onPageRemove: () => {},\n pages: [],\n};\n\nexport default memo(Scene);\n"],"names":["Scene","additionalPageItems","hashCode","itemAccessor","lastScrollPosition","onItemAdd","onItemChange","onItemMove","onItemRemove","onItemResize","onItemsMove","onPageAdd","onPageChange","onPageDuplicate","onPageOrdersChange","onPageRemove","pages","pageCount","length","useBuilderContext","activeElement","contextMenuProps","isRightPanelOpen","setActiveElement","setContextMenuProps","setEditedElement","setIsRightPanelOpen","zoom","usePropContext","acceptedItems","disableInteraction","onAnEventTrigger","settings","useState","itemToPaste","setItemToPaste","isHeaderHidden","useRef","pageStyles","pageContainerStyles","viewPortRef","refs","reduce","acc","curr","id","createRef","isMultipleItemSelected","guides","setGuides","keyDownCount","useEffect","_guides","page","_pageGuides","pageRef","current","getBoundingClientRect","height","left","top","width","boundingBox","x","calculateGuidePositions","map","value","y","items","forEach","item","dropped","useCallback","pageID","monitor","ref","itemType","type","additionalData","pageClient","coords","getCorrectDroppedOffsetValue","DROPPABLE_ITEM_TYPE","itemID","generateId","details","DRAGGABLE_ITEM_TYPE","dragCoords","getCorrectDroppedOffsetValueBySnap","leftDifference","topDifference","tempItem","findItemById","Error","scrollTop","document","body","classList","contains","remove","foundItem","selectedItems","getSelectedItems","moveItemWithKeyboard","event","direction","preventDefault","isLocked","selectNextOrPrevElement","deletedItem","referenceItem","find","_page","currentIndex","findIndex","shiftKey","onItemRemoveFromPage","e","handlePaste","getMostVisiblePage","offset","keyboardActions","key","metaKey","movementValue","onScroll","currentTarget","hiddenHeaderHeight","headerHidingLimit","add","handleKeyboardEvent","shouldPaste","arrowKeyCodes","includes","useEventListener","reportLayoutHeight","reportLayoutWidth","parseInt","Number","isNaN","zoomToUse","parseFloat","toFixed","transform","transformOrigin","_jsxs","classNames","_jsx","index","Fragment","order","findItemsOnPage","position","propTypes","PropTypes","arrayOf","node","string","func","number","shape","defaultProps","memo"],"mappings":"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"}
1
+ {"version":3,"file":"Scene.js","sources":["../../../../src/components/Builder/Scene.js"],"sourcesContent":["/* eslint-disable complexity */\nimport {\n createRef,\n Fragment,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport * as classNames from '../../constants/classNames';\nimport ContextMenu from './ContextMenu';\nimport PageActions from './PageActions';\nimport PageAdder from './PageAdder';\nimport ZoomControls from './ZoomControls';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport { usePropStore } from '../../contexts/PropContext';\nimport Page from './Page';\nimport {\n calculateGuidePositions,\n findItemById,\n findItemsOnPage,\n getMostVisiblePage,\n getSelectedItems,\n} from '../../utils/functions';\nimport { useEventListener } from '../../utils/hooks';\nimport DraggableItemLayer from '../DraggableItem/DraggableItemLayer';\nimport generateId from '../../utils/generateId';\nimport { EVENT_IGNORED_ROLES } from '../../constants/eventIgnoredRoles';\n\nconst Scene = () => {\n const pages = usePropStore(state => state.pages);\n const onItemAdd = usePropStore(state => state.onItemAdd);\n const onItemRemove = usePropStore(state => state.onItemRemove);\n const onAnEventTrigger = usePropStore(state => state.onAnEventTrigger);\n const settings = usePropStore(state => state.settings);\n const onItemChange = usePropStore(state => state.onItemChange);\n\n const activeElement = useBuilderStore(state => state.activeElement);\n const contextMenuProps = useBuilderStore(state => state.contextMenuProps);\n const isRightPanelOpen = useBuilderStore(state => state.isRightPanelOpen);\n const setActiveElement = useBuilderStore(state => state.setActiveElement);\n const setContextMenuProps = useBuilderStore(state => state.setContextMenuProps);\n const setIsRightPanelOpen = useBuilderStore(state => state.setIsRightPanelOpen);\n const zoom = useBuilderStore(state => state.zoom);\n\n const [itemToPaste, setItemToPaste] = useState(null);\n const lastScrollPosition = useBuilderStore(state => state.lastScrollPosition);\n const isHeaderHidden = useRef(false);\n\n const pageStyles = useRef({});\n const pageContainerStyles = useRef({});\n const viewPortRef = useRef({});\n\n /* Page Refs */\n const refs = useRef(pages.reduce((acc, curr) => {\n acc[curr.id] = createRef(null);\n return acc;\n }, {}));\n\n const isMultipleItemSelected = activeElement !== null && activeElement.length > 1;\n\n /* Calculate snap guides */\n const keyDownCount = useRef(null);\n\n const guides = useMemo(() => {\n return pages.reduce((acc, page) => {\n const _pageGuides = {};\n const pageRef = refs.current[page.id];\n if (pageRef && pageRef.current) {\n const {\n height, left, top, width,\n } = pageRef.current.getBoundingClientRect();\n const boundingBox = {\n height, left, top, width,\n };\n _pageGuides.boundingBox = {\n x: calculateGuidePositions(boundingBox, 'x').map(value => value - boundingBox.left),\n y: calculateGuidePositions(boundingBox, 'y').map(value => value - boundingBox.top),\n };\n page.items.forEach(item => {\n _pageGuides[item.id] = {\n x: calculateGuidePositions(item, 'x', zoom),\n y: calculateGuidePositions(item, 'y', zoom),\n };\n });\n }\n acc[page.id] = _pageGuides;\n return acc;\n }, {});\n }, [pages, zoom]);\n\n useEffect(() => {\n if (viewPortRef.current) {\n viewPortRef.current.scrollTop = lastScrollPosition;\n }\n }, [lastScrollPosition]); // set last scroll position after changing mode\n\n useEffect(() => {\n if (document.body.classList.contains('hideHeader') && isHeaderHidden) {\n document.body.classList.remove('hideHeader');\n }\n }, []); // reset hideHeader\n\n const foundItem = findItemById(activeElement === null ? null : activeElement[0], pages);\n\n const selectedItems = getSelectedItems(activeElement, pages);\n const moveItemWithKeyboard = (event, direction, value) => {\n event.preventDefault();\n selectedItems.forEach(item => {\n if (item.isLocked) {\n return false;\n }\n onItemChange(\n { id: item.id },\n {\n ...item,\n [direction]: item[direction] + value,\n },\n );\n });\n };\n\n const selectNextOrPrevElement = (event, deletedItem) => {\n if (event.preventDefault) event.preventDefault();\n const referenceItem = deletedItem ? deletedItem : foundItem;\n\n const page = pages.find(_page => _page.id === referenceItem.pageID);\n if (!page || (page && !page.items.length)) return setActiveElement(null);\n const { items } = page;\n\n const currentIndex = items.findIndex(item => item.id === referenceItem.id);\n\n // Pages are not updated in time so here is an unnecessary check\n if (items.length === 1 && deletedItem) {\n return setActiveElement(null);\n }\n\n if (event.shiftKey) {\n if (items[currentIndex - 1]) setActiveElement(items[currentIndex - 1].id);\n else setActiveElement(items[items.length - 1].id);\n } else if (items[currentIndex + 1]) {\n setActiveElement(items[currentIndex + 1].id);\n } else setActiveElement(items[0].id);\n };\n\n const onItemRemoveFromPage = e => {\n // Firefox updates browser history on backspace\n e.preventDefault();\n if (isMultipleItemSelected) return;\n if (foundItem.isLocked) {\n return false;\n }\n setActiveElement(null);\n onItemRemove(foundItem);\n selectNextOrPrevElement({ shiftKey: false }, foundItem);\n onAnEventTrigger('removeItem', foundItem.itemType);\n };\n\n const handlePaste = () => {\n if (isMultipleItemSelected) return;\n const itemID = generateId();\n const pageID = getMostVisiblePage(true);\n const offset = itemToPaste.pageID === pageID ? 50 : 0;\n\n const item = {\n ...itemToPaste,\n id: itemID,\n left: itemToPaste.left + offset,\n pageID,\n top: itemToPaste.top + offset,\n };\n\n onItemAdd(item);\n\n onAnEventTrigger('pasteItem', itemToPaste.itemType);\n setActiveElement(itemID);\n // set as last reference to paste\n setItemToPaste(item);\n };\n\n const keyboardActions = event => {\n const {\n key,\n metaKey,\n shiftKey,\n } = event;\n\n if (metaKey) {\n if (key === 'l') {\n // Lock\n if (isMultipleItemSelected) return;\n event.preventDefault(); // Dont focus to URL bar\n onAnEventTrigger(\n foundItem.isLocked ? 'unlockReportItem' : 'lockReportItem',\n foundItem.itemType,\n );\n onItemChange(\n { id: foundItem.id },\n { isLocked: foundItem.isLocked ? false : true },\n );\n return;\n }\n\n if (key === 'c' || key === 'x') {\n if (isMultipleItemSelected) return;\n // Copy or Cut\n if (key === 'x') {\n onItemRemoveFromPage(event);\n onAnEventTrigger('cutItem', foundItem.itemType);\n } else {\n onAnEventTrigger('copyItem', foundItem.itemType);\n }\n\n setItemToPaste(foundItem);\n return;\n }\n\n if (foundItem && key === 'd') {\n if (isMultipleItemSelected) return;\n // Duplicate\n event.preventDefault();\n const itemID = generateId();\n onItemAdd({\n ...foundItem,\n id: itemID,\n left: foundItem.left + 50,\n top: foundItem.top + 50,\n });\n onAnEventTrigger('duplicateItem', foundItem.itemType);\n setActiveElement(itemID);\n if (!isRightPanelOpen) {\n setIsRightPanelOpen(true);\n }\n return;\n }\n }\n\n keyDownCount.current++;\n const movementValue = shiftKey ? 10 : 1 + keyDownCount.current;\n\n // Others\n switch (key) {\n case 'Backspace': return onItemRemoveFromPage(event);\n case 'Delete': return onItemRemoveFromPage(event);\n case 'Escape': return setActiveElement(null);\n case 'ArrowLeft': return moveItemWithKeyboard(event, 'left', -movementValue);\n case 'ArrowUp': return moveItemWithKeyboard(event, 'top', -movementValue);\n case 'ArrowRight': return moveItemWithKeyboard(event, 'left', movementValue);\n case 'ArrowDown': return moveItemWithKeyboard(event, 'top', movementValue);\n case 'Tab': return selectNextOrPrevElement(event);\n default:\n }\n };\n\n const onScroll = e => {\n const { scrollTop } = e.currentTarget;\n const hiddenHeaderHeight = 70;\n const headerHidingLimit = isHeaderHidden ? 230 : 300;\n if (scrollTop > headerHidingLimit + hiddenHeaderHeight && !isHeaderHidden.current) {\n isHeaderHidden.current = true;\n document.body.classList.add('hideHeader');\n } else if (scrollTop < headerHidingLimit && isHeaderHidden.current) {\n isHeaderHidden.current = false;\n document.body.classList.remove('hideHeader');\n }\n };\n\n const shouldSuppressKeyboardEvent = e => (\n EVENT_IGNORED_ROLES.some(role => e.target.closest(`[role=${role}]`))\n );\n\n const handleKeyboardEvent = e => {\n const shouldPaste = itemToPaste && e.key === 'v' && e.metaKey;\n\n if (shouldSuppressKeyboardEvent(e)) {\n return;\n }\n\n if (activeElement && !shouldPaste) {\n const arrowKeyCodes = ['ArrowLeft', 'ArrowUp', 'ArrowDown', 'ArrowBottom'];\n if (arrowKeyCodes.includes(e.key)) e.preventDefault();\n keyboardActions(e);\n } else if (shouldPaste) {\n handlePaste();\n }\n };\n\n useEventListener('keydown', handleKeyboardEvent);\n useEventListener('keyup', () => { keyDownCount.current = 0; });\n\n const { reportLayoutHeight = 794, reportLayoutWidth = 1123 } = settings;\n\n // TODO: Some strange shit is going on here on first render\n let width = parseInt(reportLayoutWidth, 10);\n let height = parseInt(reportLayoutHeight, 10);\n width = Number.isNaN(width) ? 1 : width;\n height = Number.isNaN(height) ? 1 : height;\n const zoomToUse = Number.isNaN(zoom) ? 1 : zoom;\n\n pageStyles.current = {\n height: parseFloat((height * zoomToUse).toFixed(1)),\n width: parseFloat((width * zoomToUse).toFixed(1)),\n };\n pageContainerStyles.current = {\n height,\n transform: `scale(${zoomToUse})`,\n transformOrigin: '0 0',\n width,\n };\n\n return (\n <main // Builder.js\n className={classNames.mainWrapper}\n >\n <DraggableItemLayer\n guides={guides}\n pageRefs={refs.current}\n pages={pages}\n />\n\n <div\n ref={viewPortRef}\n className={classNames.viewport}\n data-zoom={zoom}\n onScroll={onScroll}\n >\n <div\n className={classNames.canvas}\n >\n {pages.map((page, index) => (\n // TODO: This part can be moved into a different component\n <Fragment key={page.id}>\n <PageActions\n order={page.order}\n pageID={page.id}\n />\n <div\n key={`page_${page.id}`}\n ref={refs.current[page.id]}\n className={classNames.page}\n data-id={page.id}\n data-order={page.order}\n id={`presentation-page-${page.id.toString()}`}\n style={pageStyles.current}\n >\n <Page\n guides={guides}\n items={page.items}\n page={page}\n pageIndex={index}\n pageRef={refs.current[page.id]}\n style={pageContainerStyles.current}\n />\n </div>\n </Fragment>\n ))}\n <PageAdder />\n </div>\n </div>\n <ZoomControls />\n {contextMenuProps\n && (\n <ContextMenu\n exceptionalClasses={['contextMenu-button']}\n height={height}\n item={findItemById(contextMenuProps.id, pages)}\n items={findItemsOnPage(contextMenuProps.pageID, pages)}\n onClickOutside={() => setContextMenuProps(null)}\n position={contextMenuProps.position}\n width={width}\n />\n )}\n </main>\n );\n};\n\nexport default Scene;\n"],"names":["Scene","pages","usePropStore","state","onItemAdd","onItemRemove","onAnEventTrigger","settings","onItemChange","activeElement","useBuilderStore","contextMenuProps","isRightPanelOpen","setActiveElement","setContextMenuProps","setIsRightPanelOpen","zoom","useState","itemToPaste","setItemToPaste","lastScrollPosition","isHeaderHidden","useRef","pageStyles","pageContainerStyles","viewPortRef","refs","reduce","acc","curr","id","createRef","isMultipleItemSelected","length","keyDownCount","guides","useMemo","page","_pageGuides","pageRef","current","getBoundingClientRect","height","left","top","width","boundingBox","x","calculateGuidePositions","map","value","y","items","forEach","item","useEffect","scrollTop","document","body","classList","contains","remove","foundItem","findItemById","selectedItems","getSelectedItems","moveItemWithKeyboard","event","direction","preventDefault","isLocked","selectNextOrPrevElement","deletedItem","referenceItem","find","_page","pageID","currentIndex","findIndex","shiftKey","onItemRemoveFromPage","e","itemType","handlePaste","itemID","generateId","getMostVisiblePage","offset","keyboardActions","key","metaKey","movementValue","onScroll","currentTarget","hiddenHeaderHeight","headerHidingLimit","add","shouldSuppressKeyboardEvent","EVENT_IGNORED_ROLES","some","role","target","closest","handleKeyboardEvent","shouldPaste","arrowKeyCodes","includes","useEventListener","reportLayoutHeight","reportLayoutWidth","parseInt","Number","isNaN","zoomToUse","parseFloat","toFixed","transform","transformOrigin","_jsxs","classNames","_jsx","index","Fragment","order","toString","findItemsOnPage","position"],"mappings":"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"}