@jotforminc/dnd-builder 3.5.6 → 3.6.2

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 (157) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/lib/cjs/components/Builder/Builder.js +1 -3
  3. package/lib/cjs/components/Builder/Builder.js.map +1 -1
  4. package/lib/cjs/components/Builder/BuilderWrapper.js +30 -5
  5. package/lib/cjs/components/Builder/BuilderWrapper.js.map +1 -1
  6. package/lib/cjs/components/Builder/PageActions.js +62 -54
  7. package/lib/cjs/components/Builder/PageActions.js.map +1 -1
  8. package/lib/cjs/components/Builder/Scene.js +43 -29
  9. package/lib/cjs/components/Builder/Scene.js.map +1 -1
  10. package/lib/cjs/components/Builder/SlidesNavigatorToggle.js +41 -0
  11. package/lib/cjs/components/Builder/SlidesNavigatorToggle.js.map +1 -0
  12. package/lib/cjs/components/PageItemResizer.js +1 -1
  13. package/lib/cjs/components/PageItemResizer.js.map +1 -1
  14. package/lib/cjs/components/Panels/LeftPanel/LeftPanelOpener.js +4 -6
  15. package/lib/cjs/components/Panels/LeftPanel/LeftPanelOpener.js.map +1 -1
  16. package/lib/cjs/components/Panels/RightPanel/RightPanel.js +1 -1
  17. package/lib/cjs/components/Panels/RightPanel/RightPanel.js.map +1 -1
  18. package/lib/cjs/components/Panels/SlidesNavigator/MoreMenu/SlideItemMoreMenu.js +257 -0
  19. package/lib/cjs/components/Panels/SlidesNavigator/MoreMenu/SlideItemMoreMenu.js.map +1 -0
  20. package/lib/cjs/components/Panels/SlidesNavigator/SlideItem.js +140 -0
  21. package/lib/cjs/components/Panels/SlidesNavigator/SlideItem.js.map +1 -0
  22. package/lib/cjs/components/Panels/{AllSlidesPanel/PageItemDragOverlay.js → SlidesNavigator/SlideItemDragOverlay.js} +29 -16
  23. package/lib/cjs/components/Panels/SlidesNavigator/SlideItemDragOverlay.js.map +1 -0
  24. package/lib/cjs/components/Panels/SlidesNavigator/SlideItemsList.js +238 -0
  25. package/lib/cjs/components/Panels/SlidesNavigator/SlideItemsList.js.map +1 -0
  26. package/lib/cjs/components/Panels/SlidesNavigator/SlidesNavigator.js +54 -0
  27. package/lib/cjs/components/Panels/SlidesNavigator/SlidesNavigator.js.map +1 -0
  28. package/lib/cjs/components/Panels/SlidesNavigator/StaticSlideItem.js +97 -0
  29. package/lib/cjs/components/Panels/SlidesNavigator/StaticSlideItem.js.map +1 -0
  30. package/lib/cjs/components/Panels/SlidesPanel/SlidesPanel.js +6 -17
  31. package/lib/cjs/components/Panels/SlidesPanel/SlidesPanel.js.map +1 -1
  32. package/lib/cjs/components/ReportWrapper.js +4 -4
  33. package/lib/cjs/components/ReportWrapper.js.map +1 -1
  34. package/lib/cjs/components/TextEditor/TextEditor.js +2 -2
  35. package/lib/cjs/components/TextEditor/TextEditor.js.map +1 -1
  36. package/lib/cjs/constants/panel.js +11 -0
  37. package/lib/cjs/constants/panel.js.map +1 -0
  38. package/lib/cjs/constants/texts.js +6 -1
  39. package/lib/cjs/constants/texts.js.map +1 -1
  40. package/lib/cjs/contexts/BuilderContext.js +111 -19
  41. package/lib/cjs/contexts/BuilderContext.js.map +1 -1
  42. package/lib/cjs/contexts/Providers.js +8 -1
  43. package/lib/cjs/contexts/Providers.js.map +1 -1
  44. package/lib/cjs/styles/_jfReportsFloatings.scss +51 -8
  45. package/lib/cjs/styles/_jfReportsHelpers.scss +1 -1
  46. package/lib/cjs/styles/_jfReportsMain.scss +8 -0
  47. package/lib/cjs/styles/_jfReportsPanels.scss +10 -7
  48. package/lib/cjs/styles/_jfReportsReportItem.scss +2 -2
  49. package/lib/cjs/styles/_jfReportsSlides.scss +2 -2
  50. package/lib/cjs/styles/_jfReportsVariables.scss +1 -0
  51. package/lib/cjs/styles/_jfReportsViewModes.scss +1 -0
  52. package/lib/cjs/styles/jfReportsBundle.scss +1 -0
  53. package/lib/cjs/styles/slides-navigator.scss +240 -0
  54. package/lib/cjs/utils/functions.js +9 -28
  55. package/lib/cjs/utils/functions.js.map +1 -1
  56. package/lib/cjs/utils/hooks.js +3 -1
  57. package/lib/cjs/utils/hooks.js.map +1 -1
  58. package/lib/cjs/utils/icons.js +0 -2
  59. package/lib/cjs/utils/icons.js.map +1 -1
  60. package/lib/esm/components/Builder/Builder.js +1 -3
  61. package/lib/esm/components/Builder/Builder.js.map +1 -1
  62. package/lib/esm/components/Builder/BuilderWrapper.js +31 -6
  63. package/lib/esm/components/Builder/BuilderWrapper.js.map +1 -1
  64. package/lib/esm/components/Builder/PageActions.js +65 -57
  65. package/lib/esm/components/Builder/PageActions.js.map +1 -1
  66. package/lib/esm/components/Builder/Scene.js +45 -31
  67. package/lib/esm/components/Builder/Scene.js.map +1 -1
  68. package/lib/esm/components/Builder/SlidesNavigatorToggle.js +39 -0
  69. package/lib/esm/components/Builder/SlidesNavigatorToggle.js.map +1 -0
  70. package/lib/esm/components/PageItemResizer.js +1 -1
  71. package/lib/esm/components/PageItemResizer.js.map +1 -1
  72. package/lib/esm/components/Panels/LeftPanel/LeftPanelOpener.js +5 -7
  73. package/lib/esm/components/Panels/LeftPanel/LeftPanelOpener.js.map +1 -1
  74. package/lib/esm/components/Panels/RightPanel/RightPanel.js +1 -1
  75. package/lib/esm/components/Panels/RightPanel/RightPanel.js.map +1 -1
  76. package/lib/esm/components/Panels/SlidesNavigator/MoreMenu/SlideItemMoreMenu.js +251 -0
  77. package/lib/esm/components/Panels/SlidesNavigator/MoreMenu/SlideItemMoreMenu.js.map +1 -0
  78. package/lib/esm/components/Panels/SlidesNavigator/SlideItem.js +134 -0
  79. package/lib/esm/components/Panels/SlidesNavigator/SlideItem.js.map +1 -0
  80. package/lib/esm/components/Panels/SlidesNavigator/SlideItemDragOverlay.js +61 -0
  81. package/lib/esm/components/Panels/SlidesNavigator/SlideItemDragOverlay.js.map +1 -0
  82. package/lib/esm/components/Panels/SlidesNavigator/SlideItemsList.js +232 -0
  83. package/lib/esm/components/Panels/SlidesNavigator/SlideItemsList.js.map +1 -0
  84. package/lib/esm/components/Panels/SlidesNavigator/SlidesNavigator.js +52 -0
  85. package/lib/esm/components/Panels/SlidesNavigator/SlidesNavigator.js.map +1 -0
  86. package/lib/esm/components/Panels/SlidesNavigator/StaticSlideItem.js +91 -0
  87. package/lib/esm/components/Panels/SlidesNavigator/StaticSlideItem.js.map +1 -0
  88. package/lib/esm/components/Panels/SlidesPanel/SlidesPanel.js +7 -18
  89. package/lib/esm/components/Panels/SlidesPanel/SlidesPanel.js.map +1 -1
  90. package/lib/esm/components/ReportWrapper.js +4 -4
  91. package/lib/esm/components/ReportWrapper.js.map +1 -1
  92. package/lib/esm/components/TextEditor/TextEditor.js +2 -2
  93. package/lib/esm/components/TextEditor/TextEditor.js.map +1 -1
  94. package/lib/esm/constants/panel.js +7 -0
  95. package/lib/esm/constants/panel.js.map +1 -0
  96. package/lib/esm/constants/texts.js +6 -1
  97. package/lib/esm/constants/texts.js.map +1 -1
  98. package/lib/esm/contexts/BuilderContext.js +111 -19
  99. package/lib/esm/contexts/BuilderContext.js.map +1 -1
  100. package/lib/esm/contexts/Providers.js +8 -1
  101. package/lib/esm/contexts/Providers.js.map +1 -1
  102. package/lib/esm/styles/_jfReportsFloatings.scss +51 -8
  103. package/lib/esm/styles/_jfReportsHelpers.scss +1 -1
  104. package/lib/esm/styles/_jfReportsMain.scss +8 -0
  105. package/lib/esm/styles/_jfReportsPanels.scss +10 -7
  106. package/lib/esm/styles/_jfReportsReportItem.scss +2 -2
  107. package/lib/esm/styles/_jfReportsSlides.scss +2 -2
  108. package/lib/esm/styles/_jfReportsVariables.scss +1 -0
  109. package/lib/esm/styles/_jfReportsViewModes.scss +1 -0
  110. package/lib/esm/styles/jfReportsBundle.scss +1 -0
  111. package/lib/esm/styles/slides-navigator.scss +240 -0
  112. package/lib/esm/utils/functions.js +8 -27
  113. package/lib/esm/utils/functions.js.map +1 -1
  114. package/lib/esm/utils/hooks.js +3 -1
  115. package/lib/esm/utils/hooks.js.map +1 -1
  116. package/lib/esm/utils/icons.js +0 -1
  117. package/lib/esm/utils/icons.js.map +1 -1
  118. package/package.json +3 -1
  119. package/lib/cjs/assets/svg/all_slides.svg.js +0 -23
  120. package/lib/cjs/assets/svg/all_slides.svg.js.map +0 -1
  121. package/lib/cjs/components/Panels/AllSlidesPanel/AllSlidesPanel.js +0 -148
  122. package/lib/cjs/components/Panels/AllSlidesPanel/AllSlidesPanel.js.map +0 -1
  123. package/lib/cjs/components/Panels/AllSlidesPanel/AllSlidesPanelToggler.js +0 -29
  124. package/lib/cjs/components/Panels/AllSlidesPanel/AllSlidesPanelToggler.js.map +0 -1
  125. package/lib/cjs/components/Panels/AllSlidesPanel/PageActionsBar.js +0 -107
  126. package/lib/cjs/components/Panels/AllSlidesPanel/PageActionsBar.js.map +0 -1
  127. package/lib/cjs/components/Panels/AllSlidesPanel/PageItem.js +0 -102
  128. package/lib/cjs/components/Panels/AllSlidesPanel/PageItem.js.map +0 -1
  129. package/lib/cjs/components/Panels/AllSlidesPanel/PageItemDragOverlay.js.map +0 -1
  130. package/lib/cjs/components/Panels/AllSlidesPanel/PageList.js +0 -178
  131. package/lib/cjs/components/Panels/AllSlidesPanel/PageList.js.map +0 -1
  132. package/lib/cjs/components/Panels/AllSlidesPanel/PageThumbnailActions.js +0 -95
  133. package/lib/cjs/components/Panels/AllSlidesPanel/PageThumbnailActions.js.map +0 -1
  134. package/lib/cjs/components/Panels/AllSlidesPanel/index.js +0 -8
  135. package/lib/cjs/components/Panels/AllSlidesPanel/index.js.map +0 -1
  136. package/lib/cjs/components/Settings/Button.js +0 -44
  137. package/lib/cjs/components/Settings/Button.js.map +0 -1
  138. package/lib/esm/assets/svg/all_slides.svg.js +0 -21
  139. package/lib/esm/assets/svg/all_slides.svg.js.map +0 -1
  140. package/lib/esm/components/Panels/AllSlidesPanel/AllSlidesPanel.js +0 -142
  141. package/lib/esm/components/Panels/AllSlidesPanel/AllSlidesPanel.js.map +0 -1
  142. package/lib/esm/components/Panels/AllSlidesPanel/AllSlidesPanelToggler.js +0 -23
  143. package/lib/esm/components/Panels/AllSlidesPanel/AllSlidesPanelToggler.js.map +0 -1
  144. package/lib/esm/components/Panels/AllSlidesPanel/PageActionsBar.js +0 -101
  145. package/lib/esm/components/Panels/AllSlidesPanel/PageActionsBar.js.map +0 -1
  146. package/lib/esm/components/Panels/AllSlidesPanel/PageItem.js +0 -95
  147. package/lib/esm/components/Panels/AllSlidesPanel/PageItem.js.map +0 -1
  148. package/lib/esm/components/Panels/AllSlidesPanel/PageItemDragOverlay.js +0 -48
  149. package/lib/esm/components/Panels/AllSlidesPanel/PageItemDragOverlay.js.map +0 -1
  150. package/lib/esm/components/Panels/AllSlidesPanel/PageList.js +0 -172
  151. package/lib/esm/components/Panels/AllSlidesPanel/PageList.js.map +0 -1
  152. package/lib/esm/components/Panels/AllSlidesPanel/PageThumbnailActions.js +0 -89
  153. package/lib/esm/components/Panels/AllSlidesPanel/PageThumbnailActions.js.map +0 -1
  154. package/lib/esm/components/Panels/AllSlidesPanel/index.js +0 -3
  155. package/lib/esm/components/Panels/AllSlidesPanel/index.js.map +0 -1
  156. package/lib/esm/components/Settings/Button.js +0 -38
  157. package/lib/esm/components/Settings/Button.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Scene.js","sources":["../../../../src/components/Builder/Scene.js"],"sourcesContent":["/* eslint-disable complexity */\nimport {\n createRef,\n Fragment,\n useEffect,\n useRef,\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 SelectionBox from './SelectionBox';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport { usePropStore } from '../../contexts/PropContext';\nimport Page from './Page';\nimport {\n calculateGuidePositions,\n findItemById,\n findItemsOnPage,\n} from '../../utils/functions';\nimport DraggableLayer from './DraggableLayer';\nimport useKeyboardActions from '../../utils/useKeyboardActions';\nimport useMarqueeSelection from '../../utils/useMarqueeSelection';\n\nconst Scene = () => {\n const pages = usePropStore(state => state.pages);\n const settings = usePropStore(state => state.settings);\n const contextMenuProps = useBuilderStore(state => state.contextMenuProps);\n const setContextMenuProps = useBuilderStore(state => state.setContextMenuProps);\n const setGuides = useBuilderStore(state => state.setGuides);\n const zoom = useBuilderStore(state => state.zoom);\n const lastScrollPosition = useBuilderStore(state => state.lastScrollPosition);\n\n const pageStyles = useRef({});\n const pageContainerStyles = useRef({});\n const viewPortRef = useRef({});\n const canvasRef = useRef(null);\n\n /* Page Refs */\n const refs = useRef(pages.reduce((acc, curr) => {\n acc[curr.id] = createRef(null);\n return acc;\n }, {}));\n\n // Custom hooks\n useKeyboardActions();\n const { selectionBox, selectionPageId } = useMarqueeSelection(canvasRef);\n\n // Update refs when new pages are added\n useEffect(() => {\n pages.forEach(page => {\n if (!refs.current[page.id]) {\n refs.current[page.id] = createRef(null);\n }\n });\n }, [pages]);\n\n // Calculate guides for snap functionality\n useEffect(() => {\n setGuides(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, setGuides]);\n\n // Restore scroll position after mode change\n useEffect(() => {\n if (viewPortRef.current) {\n viewPortRef.current.scrollTop = lastScrollPosition;\n }\n }, [lastScrollPosition]);\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 <DraggableLayer\n pageRefs={refs.current}\n />\n <div\n ref={viewPortRef}\n className={classNames.viewport}\n data-zoom={zoom}\n >\n <div\n ref={canvasRef}\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, position: 'relative' }}\n >\n <Page\n items={page.items}\n page={page}\n pageIndex={index}\n style={pageContainerStyles.current}\n />\n {selectionPageId === page.id && selectionBox && (\n <SelectionBox selectionBox={selectionBox} />\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","settings","contextMenuProps","useBuilderStore","setContextMenuProps","setGuides","zoom","lastScrollPosition","pageStyles","useRef","pageContainerStyles","viewPortRef","canvasRef","refs","reduce","acc","curr","id","createRef","useKeyboardActions","useMarqueeSelection","selectionBox","selectionPageId","useEffect","forEach","page","current","_pageGuides","pageRef","getBoundingClientRect","height","left","top","width","boundingBox","x","calculateGuidePositions","map","value","y","items","item","scrollTop","reportLayoutHeight","reportLayoutWidth","parseInt","Number","isNaN","zoomToUse","parseFloat","toFixed","transform","transformOrigin","_jsxs","classNames","_jsx","index","Fragment","order","toString","position","findItemById","findItemsOnPage","pageID"],"mappings":"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"}
1
+ {"version":3,"file":"Scene.js","sources":["../../../../src/components/Builder/Scene.js"],"sourcesContent":["/* eslint-disable jsx-a11y/mouse-events-have-key-events */\n/* eslint-disable complexity */\nimport {\n createRef,\n useEffect,\n useRef,\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 SelectionBox from './SelectionBox';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport { usePropStore } from '../../contexts/PropContext';\nimport Page from './Page';\nimport {\n calculateGuidePositions,\n findItemById,\n findItemsOnPage,\n slidesAsNavigator,\n} from '../../utils/functions';\nimport DraggableLayer from './DraggableLayer';\nimport useKeyboardActions from '../../utils/useKeyboardActions';\nimport useMarqueeSelection from '../../utils/useMarqueeSelection';\nimport SlidesNavigatorToggle from './SlidesNavigatorToggle';\n\nconst Scene = () => {\n const pages = usePropStore(state => state.pages);\n const settings = usePropStore(state => state.settings);\n const contextMenuProps = useBuilderStore(state => state.contextMenuProps);\n const setContextMenuProps = useBuilderStore(state => state.setContextMenuProps);\n const setGuides = useBuilderStore(state => state.setGuides);\n const zoom = useBuilderStore(state => state.zoom);\n const lastScrollPosition = useBuilderStore(state => state.lastScrollPosition);\n const slidesListType = useBuilderStore(state => state.slidesListType);\n const setOverPage = useBuilderStore(state => state.setOverPage);\n const setOutPage = useBuilderStore(state => state.setOutPage);\n\n const pageStyles = useRef({});\n const pageContainerStyles = useRef({});\n const viewPortRef = useRef({});\n const canvasRef = useRef(null);\n\n /* Page Refs */\n const refs = useRef(pages.reduce((acc, curr) => {\n acc[curr.id] = createRef(null);\n return acc;\n }, {}));\n\n // Custom hooks\n useKeyboardActions();\n const { selectionBox, selectionPageId } = useMarqueeSelection(canvasRef);\n\n // Update refs when new pages are added\n useEffect(() => {\n pages.forEach(page => {\n if (!refs.current[page.id]) {\n refs.current[page.id] = createRef(null);\n }\n });\n }, [pages]);\n\n // Calculate guides for snap functionality\n useEffect(() => {\n setGuides(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, setGuides]);\n\n // Restore scroll position after mode change\n useEffect(() => {\n if (viewPortRef.current) {\n viewPortRef.current.scrollTop = lastScrollPosition;\n }\n }, [lastScrollPosition]);\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\n className={classNames.mainWrapper}\n >\n <DraggableLayer\n pageRefs={refs.current}\n />\n <div\n ref={viewPortRef}\n className={classNames.viewport}\n data-zoom={zoom}\n >\n <div\n ref={canvasRef}\n className={classNames.canvas}\n >\n {pages.map((page, index) => (\n <div\n key={page.id}\n onMouseOut={() => setOutPage(null)}\n onMouseOver={() => setOverPage(page.id)}\n >\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, position: 'relative' }}\n >\n <Page\n items={page.items}\n page={page}\n pageIndex={index}\n style={pageContainerStyles.current}\n />\n {selectionPageId === page.id && selectionBox && (\n <SelectionBox selectionBox={selectionBox} />\n )}\n </div>\n </div>\n ))}\n <PageAdder />\n </div>\n </div>\n <div className=\"bottom-actions-container\">\n {slidesAsNavigator(slidesListType) && <SlidesNavigatorToggle />}\n <ZoomControls />\n </div>\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","settings","contextMenuProps","useBuilderStore","setContextMenuProps","setGuides","zoom","lastScrollPosition","slidesListType","setOverPage","setOutPage","pageStyles","useRef","pageContainerStyles","viewPortRef","canvasRef","refs","reduce","acc","curr","id","createRef","useKeyboardActions","useMarqueeSelection","selectionBox","selectionPageId","useEffect","forEach","page","current","_pageGuides","pageRef","getBoundingClientRect","height","left","top","width","boundingBox","x","calculateGuidePositions","map","value","y","items","item","scrollTop","reportLayoutHeight","reportLayoutWidth","parseInt","Number","isNaN","zoomToUse","parseFloat","toFixed","transform","transformOrigin","_jsxs","classNames","_jsx","index","order","toString","position","slidesAsNavigator","findItemById","findItemsOnPage","pageID"],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ 'use strict';
2
+
3
+ var BuilderContext = require('../../contexts/BuilderContext.js');
4
+ var hooks = require('../../utils/hooks.js');
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ var slides = require('../../assets/svg/slides.svg.js');
7
+
8
+ var SlidesNavigatorToggle = function SlidesNavigatorToggle() {
9
+ var setIsSlidesNavigatorOpen = BuilderContext.useBuilderStore(function (state) {
10
+ return state.setIsSlidesNavigatorOpen;
11
+ });
12
+ var isSlidesNavigatorOpen = BuilderContext.useBuilderStore(function (state) {
13
+ return state.isSlidesNavigatorOpen;
14
+ });
15
+
16
+ var _useTranslatedTexts = hooks.useTranslatedTexts(),
17
+ SLIDES_NAVIGATOR_TOGGLE = _useTranslatedTexts.SLIDES_NAVIGATOR_TOGGLE;
18
+
19
+ var slidesNavigatorToggleHandler = function slidesNavigatorToggleHandler() {
20
+ setIsSlidesNavigatorOpen(!isSlidesNavigatorOpen);
21
+ };
22
+
23
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
24
+ className: "floatingController slides-navigator-toggle",
25
+ children: /*#__PURE__*/jsxRuntime.jsx("div", {
26
+ className: "floatingController-container",
27
+ children: /*#__PURE__*/jsxRuntime.jsx("button", {
28
+ className: "controllerItem",
29
+ onClick: slidesNavigatorToggleHandler,
30
+ title: SLIDES_NAVIGATOR_TOGGLE,
31
+ type: "button",
32
+ children: /*#__PURE__*/jsxRuntime.jsx(slides, {
33
+ className: "toolbar-icon"
34
+ })
35
+ })
36
+ })
37
+ });
38
+ };
39
+
40
+ module.exports = SlidesNavigatorToggle;
41
+ //# sourceMappingURL=SlidesNavigatorToggle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SlidesNavigatorToggle.js","sources":["../../../../src/components/Builder/SlidesNavigatorToggle.js"],"sourcesContent":["import { useBuilderStore } from '../../contexts/BuilderContext';\nimport { useTranslatedTexts } from '../../utils/hooks';\nimport * as icons from '../../utils/icons';\n\nconst SlidesNavigatorToggle = () => {\n const setIsSlidesNavigatorOpen = useBuilderStore(state => state.setIsSlidesNavigatorOpen);\n const isSlidesNavigatorOpen = useBuilderStore(state => state.isSlidesNavigatorOpen);\n const { SLIDES_NAVIGATOR_TOGGLE } = useTranslatedTexts();\n\n const slidesNavigatorToggleHandler = () => {\n setIsSlidesNavigatorOpen(!isSlidesNavigatorOpen);\n };\n\n return (\n <div className=\"floatingController slides-navigator-toggle\">\n <div className=\"floatingController-container\">\n <button\n className=\"controllerItem\"\n onClick={slidesNavigatorToggleHandler}\n title={SLIDES_NAVIGATOR_TOGGLE}\n type=\"button\"\n >\n <icons.slides className=\"toolbar-icon\" />\n </button>\n </div>\n </div>\n );\n};\n\nexport default SlidesNavigatorToggle;\n"],"names":["SlidesNavigatorToggle","setIsSlidesNavigatorOpen","useBuilderStore","state","isSlidesNavigatorOpen","useTranslatedTexts","SLIDES_NAVIGATOR_TOGGLE","slidesNavigatorToggleHandler","_jsx","icons.slides"],"mappings":";;;;;;;IAIMA,qBAAqB,GAAG,SAAxBA,qBAAwB,GAAM;AAClC,MAAMC,wBAAwB,GAAGC,8BAAe,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACF,wBAAV;AAAA,GAAN,CAAhD;AACA,MAAMG,qBAAqB,GAAGF,8BAAe,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACC,qBAAV;AAAA,GAAN,CAA7C;;AACA,4BAAoCC,wBAAkB,EAAtD;AAAA,MAAQC,uBAAR,uBAAQA,uBAAR;;AAEA,MAAMC,4BAA4B,GAAG,SAA/BA,4BAA+B,GAAM;AACzCN,IAAAA,wBAAwB,CAAC,CAACG,qBAAF,CAAxB;AACD,GAFD;;AAIA,sBACEI;AAAK,IAAA,SAAS,EAAC,4CAAf;AAAA,2BACEA;AAAK,MAAA,SAAS,EAAC,8BAAf;AAAA,6BACEA;AACE,QAAA,SAAS,EAAC,gBADZ;AAEE,QAAA,OAAO,EAAED,4BAFX;AAGE,QAAA,KAAK,EAAED,uBAHT;AAIE,QAAA,IAAI,EAAC,QAJP;AAAA,+BAMEE,eAACC,MAAD;AAAc,UAAA,SAAS,EAAC;AAAxB;AANF;AADF;AADF,IADF;AAcD;;;;"}
@@ -49,7 +49,7 @@ var enableResize = {
49
49
  topRight: true
50
50
  };
51
51
  var lockAspectRatioTypes = ['image', 'icon'];
52
- var exceptionalClasses = ['reportHandle', 'report-item-toolbar', 'jfReport-pane', 'pageSettingSideBtn', 'reportItemWrapper', 'reportRotater', 'forZoom', 'ql-toolbar', 'jSheetContextMenu', 'reset-default-contextMenu'];
52
+ var exceptionalClasses = ['reportHandle', 'report-item-toolbar', 'jfReport-pane', 'pageSettingSideBtn', 'reportItemWrapper', 'reportRotater', 'forZoom', 'ql-toolbar', 'jSheetContextMenu', 'reset-default-contextMenu', 'slides-navigator-toggle', 'slides-navigator'];
53
53
 
54
54
  var PageItemResizer = function PageItemResizer(_ref) {
55
55
  var item = _ref.item,
@@ -1 +1 @@
1
- {"version":3,"file":"PageItemResizer.js","sources":["../../../src/components/PageItemResizer.js"],"sourcesContent":["import {\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { Resizable } from 're-resizable';\nimport { createPortal } from 'react-dom';\nimport classNames from 'classnames';\nimport { resizeStaticProps } from '../constants/staticProps';\nimport TextEditorToolbar from './TextEditor/CustomToolbar';\n\nimport DraggableItemActions from './DraggableItem/DraggableItemActions';\nimport ItemPositioner from './ItemPositioner';\nimport withClickOutside from './withClickOutside';\nimport { useBuilderStore } from '../contexts/BuilderContext';\n\nconst exceptionalClassesForClickOutside = ['contextMenu-itemLabel', 'contextMenu-item'];\nconst ResizableWithClickOutside = withClickOutside(Resizable);\n\nconst enableResize = {\n bottom: true,\n bottomLeft: true,\n bottomRight: true,\n left: true,\n right: true,\n top: true,\n topLeft: true,\n topRight: true,\n};\nconst lockAspectRatioTypes = ['image', 'icon'];\nconst exceptionalClasses = [\n 'reportHandle',\n 'report-item-toolbar',\n 'jfReport-pane',\n 'pageSettingSideBtn',\n 'reportItemWrapper',\n 'reportRotater',\n 'forZoom',\n 'ql-toolbar',\n 'jSheetContextMenu',\n 'reset-default-contextMenu',\n];\n\nconst PageItemResizer = ({\n item,\n onResize,\n onResizeStop,\n}) => {\n const zoom = useBuilderStore(state => state.zoom);\n const setIsRightPanelOpen = useBuilderStore(state => state.setIsRightPanelOpen);\n const resetActiveElements = useBuilderStore(state => state.resetActiveElements);\n const isMultipleItemSelected = useBuilderStore(state => state.activeElements.length > 1);\n const isTextEditorOpen = useBuilderStore(state => state.isTextEditorOpen);\n\n const requestRef = useRef();\n const [lockAspectRatio, setLockAspectRatio] = useState(false);\n\n const handleKeyUp = e => {\n if (!e.shiftKey) setLockAspectRatio(false);\n };\n\n const handleKeyDown = e => {\n if (e.shiftKey) setLockAspectRatio(true);\n };\n\n const seriousResize = (deltaWidth, deltaHeight, direction) => {\n return () => {\n onResize(deltaWidth, deltaHeight, direction);\n requestRef.current = undefined;\n };\n };\n\n const onResizeStart = e => {\n e.preventDefault();\n window.addEventListener('keydown', handleKeyDown);\n window.addEventListener('keyup', handleKeyUp);\n };\n\n const onResizeRAF = (e, direction, ref, { height: deltaHeight, width: deltaWidth }) => {\n if (!requestRef.current) {\n requestRef.current = global\n .requestAnimationFrame(\n seriousResize(\n Math.round(deltaWidth * (1 / zoom)),\n Math.round(deltaHeight * (1 / zoom)),\n direction,\n ),\n );\n }\n };\n\n const onResizeEnd = (e, direction, ref, { height: deltaHeight, width: deltaWidth }) => {\n onResizeStop(\n Math.round(deltaWidth * (1 / zoom)),\n Math.round(deltaHeight * (1 / zoom)),\n direction,\n );\n window.removeEventListener('keydown', handleKeyDown);\n window.removeEventListener('keyup', handleKeyUp);\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 resetActiveElements();\n if (document.activeElement) {\n document.activeElement.blur();\n }\n };\n\n const itemPositionerStyle = useMemo(() => ({\n height: Math.round(item.height * zoom),\n left: Math.round(item.left * zoom),\n pointerEvents: 'none',\n position: 'absolute',\n top: Math.round(item.top * zoom),\n touchAction: 'none',\n width: Math.round(item.width * zoom),\n }), [item.height, item.left, item.top, item.width, zoom]);\n\n const size = useMemo(() => ({\n height: Math.round(item.height * zoom),\n width: Math.round(item.width * zoom),\n }), [item.height, item.width, zoom]);\n\n const { isLocked } = item;\n\n return createPortal(\n <ItemPositioner\n style={itemPositionerStyle}\n >\n <ResizableWithClickOutside\n className={classNames(\n 'reportItemResizer',\n { hideVerticalHandle: !(item.height > 50) },\n { hideHorizontalHandle: !(item.width > 50) },\n )}\n enable={!item.isLocked && enableResize}\n exceptionalClasses={exceptionalClasses}\n lockAspectRatio={lockAspectRatioTypes.includes(item.itemType) || lockAspectRatio}\n onClickOutside={onClickOutside}\n onResize={onResizeRAF}\n onResizeStart={onResizeStart}\n onResizeStop={onResizeEnd}\n size={size}\n {...resizeStaticProps}\n withClickOutsideWrapperClass={`reportItemResizer-wrapper${isLocked ? ' isLocked' : ''}`}\n />\n {!isMultipleItemSelected && <DraggableItemActions />}\n {isTextEditorOpen && (\n <TextEditorToolbar\n itemWidth={item.width * zoom}\n />\n )}\n </ItemPositioner>,\n document.querySelector(`.jfReport-page[data-id=\"${item.pageID}\"]`),\n );\n};\n\nexport default PageItemResizer;\n"],"names":["exceptionalClassesForClickOutside","ResizableWithClickOutside","withClickOutside","Resizable","enableResize","bottom","bottomLeft","bottomRight","left","right","top","topLeft","topRight","lockAspectRatioTypes","exceptionalClasses","PageItemResizer","item","onResize","onResizeStop","zoom","useBuilderStore","state","setIsRightPanelOpen","resetActiveElements","isMultipleItemSelected","activeElements","length","isTextEditorOpen","requestRef","useRef","useState","lockAspectRatio","setLockAspectRatio","handleKeyUp","e","shiftKey","handleKeyDown","seriousResize","deltaWidth","deltaHeight","direction","current","undefined","onResizeStart","preventDefault","window","addEventListener","onResizeRAF","ref","height","width","global","requestAnimationFrame","Math","round","onResizeEnd","removeEventListener","onClickOutside","event","viewPort","document","querySelector","clientHeight","offsetHeight","headerHeight","innerHeight","clientY","Array","from","target","classList","some","xClass","includes","activeElement","blur","itemPositionerStyle","useMemo","pointerEvents","position","touchAction","size","isLocked","createPortal","_jsxs","_jsx","classNames","hideVerticalHandle","hideHorizontalHandle","itemType","resizeStaticProps","TextEditorToolbar","pageID"],"mappings":"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"}
1
+ {"version":3,"file":"PageItemResizer.js","sources":["../../../src/components/PageItemResizer.js"],"sourcesContent":["import {\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { Resizable } from 're-resizable';\nimport { createPortal } from 'react-dom';\nimport classNames from 'classnames';\nimport { resizeStaticProps } from '../constants/staticProps';\nimport TextEditorToolbar from './TextEditor/CustomToolbar';\n\nimport DraggableItemActions from './DraggableItem/DraggableItemActions';\nimport ItemPositioner from './ItemPositioner';\nimport withClickOutside from './withClickOutside';\nimport { useBuilderStore } from '../contexts/BuilderContext';\n\nconst exceptionalClassesForClickOutside = ['contextMenu-itemLabel', 'contextMenu-item'];\nconst ResizableWithClickOutside = withClickOutside(Resizable);\n\nconst enableResize = {\n bottom: true,\n bottomLeft: true,\n bottomRight: true,\n left: true,\n right: true,\n top: true,\n topLeft: true,\n topRight: true,\n};\nconst lockAspectRatioTypes = ['image', 'icon'];\nconst exceptionalClasses = [\n 'reportHandle',\n 'report-item-toolbar',\n 'jfReport-pane',\n 'pageSettingSideBtn',\n 'reportItemWrapper',\n 'reportRotater',\n 'forZoom',\n 'ql-toolbar',\n 'jSheetContextMenu',\n 'reset-default-contextMenu',\n 'slides-navigator-toggle',\n 'slides-navigator',\n];\n\nconst PageItemResizer = ({\n item,\n onResize,\n onResizeStop,\n}) => {\n const zoom = useBuilderStore(state => state.zoom);\n const setIsRightPanelOpen = useBuilderStore(state => state.setIsRightPanelOpen);\n const resetActiveElements = useBuilderStore(state => state.resetActiveElements);\n const isMultipleItemSelected = useBuilderStore(state => state.activeElements.length > 1);\n const isTextEditorOpen = useBuilderStore(state => state.isTextEditorOpen);\n\n const requestRef = useRef();\n const [lockAspectRatio, setLockAspectRatio] = useState(false);\n\n const handleKeyUp = e => {\n if (!e.shiftKey) setLockAspectRatio(false);\n };\n\n const handleKeyDown = e => {\n if (e.shiftKey) setLockAspectRatio(true);\n };\n\n const seriousResize = (deltaWidth, deltaHeight, direction) => {\n return () => {\n onResize(deltaWidth, deltaHeight, direction);\n requestRef.current = undefined;\n };\n };\n\n const onResizeStart = e => {\n e.preventDefault();\n window.addEventListener('keydown', handleKeyDown);\n window.addEventListener('keyup', handleKeyUp);\n };\n\n const onResizeRAF = (e, direction, ref, { height: deltaHeight, width: deltaWidth }) => {\n if (!requestRef.current) {\n requestRef.current = global\n .requestAnimationFrame(\n seriousResize(\n Math.round(deltaWidth * (1 / zoom)),\n Math.round(deltaHeight * (1 / zoom)),\n direction,\n ),\n );\n }\n };\n\n const onResizeEnd = (e, direction, ref, { height: deltaHeight, width: deltaWidth }) => {\n onResizeStop(\n Math.round(deltaWidth * (1 / zoom)),\n Math.round(deltaHeight * (1 / zoom)),\n direction,\n );\n window.removeEventListener('keydown', handleKeyDown);\n window.removeEventListener('keyup', handleKeyUp);\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 resetActiveElements();\n if (document.activeElement) {\n document.activeElement.blur();\n }\n };\n\n const itemPositionerStyle = useMemo(() => ({\n height: Math.round(item.height * zoom),\n left: Math.round(item.left * zoom),\n pointerEvents: 'none',\n position: 'absolute',\n top: Math.round(item.top * zoom),\n touchAction: 'none',\n width: Math.round(item.width * zoom),\n }), [item.height, item.left, item.top, item.width, zoom]);\n\n const size = useMemo(() => ({\n height: Math.round(item.height * zoom),\n width: Math.round(item.width * zoom),\n }), [item.height, item.width, zoom]);\n\n const { isLocked } = item;\n\n return createPortal(\n <ItemPositioner\n style={itemPositionerStyle}\n >\n <ResizableWithClickOutside\n className={classNames(\n 'reportItemResizer',\n { hideVerticalHandle: !(item.height > 50) },\n { hideHorizontalHandle: !(item.width > 50) },\n )}\n enable={!item.isLocked && enableResize}\n exceptionalClasses={exceptionalClasses}\n lockAspectRatio={lockAspectRatioTypes.includes(item.itemType) || lockAspectRatio}\n onClickOutside={onClickOutside}\n onResize={onResizeRAF}\n onResizeStart={onResizeStart}\n onResizeStop={onResizeEnd}\n size={size}\n {...resizeStaticProps}\n withClickOutsideWrapperClass={`reportItemResizer-wrapper${isLocked ? ' isLocked' : ''}`}\n />\n {!isMultipleItemSelected && <DraggableItemActions />}\n {isTextEditorOpen && (\n <TextEditorToolbar\n itemWidth={item.width * zoom}\n />\n )}\n </ItemPositioner>,\n document.querySelector(`.jfReport-page[data-id=\"${item.pageID}\"]`),\n );\n};\n\nexport default PageItemResizer;\n"],"names":["exceptionalClassesForClickOutside","ResizableWithClickOutside","withClickOutside","Resizable","enableResize","bottom","bottomLeft","bottomRight","left","right","top","topLeft","topRight","lockAspectRatioTypes","exceptionalClasses","PageItemResizer","item","onResize","onResizeStop","zoom","useBuilderStore","state","setIsRightPanelOpen","resetActiveElements","isMultipleItemSelected","activeElements","length","isTextEditorOpen","requestRef","useRef","useState","lockAspectRatio","setLockAspectRatio","handleKeyUp","e","shiftKey","handleKeyDown","seriousResize","deltaWidth","deltaHeight","direction","current","undefined","onResizeStart","preventDefault","window","addEventListener","onResizeRAF","ref","height","width","global","requestAnimationFrame","Math","round","onResizeEnd","removeEventListener","onClickOutside","event","viewPort","document","querySelector","clientHeight","offsetHeight","headerHeight","innerHeight","clientY","Array","from","target","classList","some","xClass","includes","activeElement","blur","itemPositionerStyle","useMemo","pointerEvents","position","touchAction","size","isLocked","createPortal","_jsxs","_jsx","classNames","hideVerticalHandle","hideHorizontalHandle","itemType","resizeStaticProps","TextEditorToolbar","pageID"],"mappings":"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"}
@@ -18,16 +18,14 @@ var LeftPanelToggler = function LeftPanelToggler() {
18
18
  };
19
19
 
20
20
  return /*#__PURE__*/jsxRuntime.jsx(jsxRuntime.Fragment, {
21
- children: /*#__PURE__*/jsxRuntime.jsxs("button", {
21
+ children: /*#__PURE__*/jsxRuntime.jsx("button", {
22
22
  className: "paneToggler addElementToggle",
23
23
  onClick: onOpenLeftPanel,
24
24
  title: ADD_ELEMENT,
25
25
  type: "button",
26
- children: [/*#__PURE__*/jsxRuntime.jsx("span", {
27
- children: ADD_ELEMENT
28
- }), /*#__PURE__*/jsxRuntime.jsx(plus, {
29
- className: "jfReportSVG isWhite"
30
- })]
26
+ children: /*#__PURE__*/jsxRuntime.jsx(plus, {
27
+ className: "jfReportSVG isWhite plus-icon"
28
+ })
31
29
  })
32
30
  });
33
31
  };
@@ -1 +1 @@
1
- {"version":3,"file":"LeftPanelOpener.js","sources":["../../../../../src/components/Panels/LeftPanel/LeftPanelOpener.js"],"sourcesContent":["import { useBuilderStore } from '../../../contexts/BuilderContext';\nimport * as icons from '../../../utils/icons';\nimport { useTranslatedTexts } from '../../../utils/hooks';\n\nconst LeftPanelToggler = () => {\n const setIsLeftPanelOpen = useBuilderStore(state => state.setIsLeftPanelOpen);\n const { ADD_ELEMENT } = useTranslatedTexts();\n\n const onOpenLeftPanel = () => {\n setIsLeftPanelOpen(true);\n };\n\n return (\n <>\n <button\n className=\"paneToggler addElementToggle\"\n onClick={onOpenLeftPanel}\n title={ADD_ELEMENT}\n type=\"button\"\n >\n <span>{ADD_ELEMENT}</span>\n <icons.plus className=\"jfReportSVG isWhite\" />\n </button>\n </>\n );\n};\n\nexport default LeftPanelToggler;\n"],"names":["LeftPanelToggler","setIsLeftPanelOpen","useBuilderStore","state","useTranslatedTexts","ADD_ELEMENT","onOpenLeftPanel","_jsx","_jsxs","icons.plus"],"mappings":";;;;;;;IAIMA,gBAAgB,GAAG,SAAnBA,gBAAmB,GAAM;AAC7B,MAAMC,kBAAkB,GAAGC,8BAAe,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACF,kBAAV;AAAA,GAAN,CAA1C;;AACA,4BAAwBG,wBAAkB,EAA1C;AAAA,MAAQC,WAAR,uBAAQA,WAAR;;AAEA,MAAMC,eAAe,GAAG,SAAlBA,eAAkB,GAAM;AAC5BL,IAAAA,kBAAkB,CAAC,IAAD,CAAlB;AACD,GAFD;;AAIA,sBACEM;AAAA,2BACEC;AACE,MAAA,SAAS,EAAC,8BADZ;AAEE,MAAA,OAAO,EAAEF,eAFX;AAGE,MAAA,KAAK,EAAED,WAHT;AAIE,MAAA,IAAI,EAAC,QAJP;AAAA,8BAMEE;AAAA,kBAAOF;AAAP,QANF,eAOEE,eAACE,IAAD;AAAY,QAAA,SAAS,EAAC;AAAtB,QAPF;AAAA;AADF,IADF;AAaD;;;;"}
1
+ {"version":3,"file":"LeftPanelOpener.js","sources":["../../../../../src/components/Panels/LeftPanel/LeftPanelOpener.js"],"sourcesContent":["import { useBuilderStore } from '../../../contexts/BuilderContext';\nimport * as icons from '../../../utils/icons';\nimport { useTranslatedTexts } from '../../../utils/hooks';\n\nconst LeftPanelToggler = () => {\n const setIsLeftPanelOpen = useBuilderStore(state => state.setIsLeftPanelOpen);\n const { ADD_ELEMENT } = useTranslatedTexts();\n\n const onOpenLeftPanel = () => {\n setIsLeftPanelOpen(true);\n };\n\n return (\n <>\n <button\n className=\"paneToggler addElementToggle\"\n onClick={onOpenLeftPanel}\n title={ADD_ELEMENT}\n type=\"button\"\n >\n <icons.plus className=\"jfReportSVG isWhite plus-icon\" />\n </button>\n </>\n );\n};\n\nexport default LeftPanelToggler;\n"],"names":["LeftPanelToggler","setIsLeftPanelOpen","useBuilderStore","state","useTranslatedTexts","ADD_ELEMENT","onOpenLeftPanel","_jsx","icons.plus"],"mappings":";;;;;;;IAIMA,gBAAgB,GAAG,SAAnBA,gBAAmB,GAAM;AAC7B,MAAMC,kBAAkB,GAAGC,8BAAe,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACF,kBAAV;AAAA,GAAN,CAA1C;;AACA,4BAAwBG,wBAAkB,EAA1C;AAAA,MAAQC,WAAR,uBAAQA,WAAR;;AAEA,MAAMC,eAAe,GAAG,SAAlBA,eAAkB,GAAM;AAC5BL,IAAAA,kBAAkB,CAAC,IAAD,CAAlB;AACD,GAFD;;AAIA,sBACEM;AAAA,2BACEA;AACE,MAAA,SAAS,EAAC,8BADZ;AAEE,MAAA,OAAO,EAAED,eAFX;AAGE,MAAA,KAAK,EAAED,WAHT;AAIE,MAAA,IAAI,EAAC,QAJP;AAAA,6BAMEE,eAACC,IAAD;AAAY,QAAA,SAAS,EAAC;AAAtB;AANF;AADF,IADF;AAYD;;;;"}
@@ -43,7 +43,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
43
43
  function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
44
44
 
45
45
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
46
- var exceptionalClasses = ['pageSettingSideBtn', 'paneClose', 'paneToggler', 'forZoom', 'jSheetContextMenu', 'page-toolbar', 'report-item-toolbar', 'zoom-toolbar', 'controllerItem'];
46
+ var exceptionalClasses = ['pageSettingSideBtn', 'paneClose', 'paneToggler', 'forZoom', 'jSheetContextMenu', 'page-toolbar', 'report-item-toolbar', 'zoom-toolbar', 'controllerItem', 'slides-navigator-toggle', 'slides-navigator'];
47
47
 
48
48
  var RightPanel = function RightPanel() {
49
49
  var activeTab = BuilderContext.useBuilderStore(function (state) {
@@ -1 +1 @@
1
- {"version":3,"file":"RightPanel.js","sources":["../../../../../src/components/Panels/RightPanel/RightPanel.js"],"sourcesContent":["import {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport classNames from 'classnames';\nimport Panel from '../../Builder/Panel';\nimport Section from '../../Builder/Section';\nimport Layout from '../../../constants/reportSettings';\nimport Page from '../../../constants/pageSettings';\nimport { useBuilderStore } from '../../../contexts/BuilderContext';\nimport { usePropStore } from '../../../contexts/PropContext';\nimport { findItemById, getTabsWithSettings } from '../../../utils/functions';\nimport { useTranslatedTexts } from '../../../utils/hooks';\nimport {\n REPORT_SETTINGS_ITEM_TYPE, PAGE_SETTINGS_ITEM_TYPE,\n} from '../../../constants/itemTypes';\nimport Tabs from '../../Builder/Tabs';\nimport Settings from './Settings';\nimport RightPanelToggler from './RightPanelToggler';\n\nconst exceptionalClasses = [\n 'pageSettingSideBtn',\n 'paneClose',\n 'paneToggler',\n 'forZoom',\n 'jSheetContextMenu',\n 'page-toolbar',\n 'report-item-toolbar',\n 'zoom-toolbar',\n 'controllerItem',\n];\n\nconst RightPanel = () => {\n const activeTab = useBuilderStore(state => state.activeTab);\n const editedElement = useBuilderStore(state => state.editedElement);\n const isRightPanelOpen = useBuilderStore(state => state.isRightPanelOpen);\n const isSlidesPanelOpen = useBuilderStore(state => state.isSlidesPanelOpen);\n const resetActiveElements = useBuilderStore(state => state.resetActiveElements);\n const setActiveTab = useBuilderStore(state => state.setActiveTab);\n const setIsRightPanelOpen = useBuilderStore(state => state.setIsRightPanelOpen);\n const clickOutsideIgnoreSelectors = useBuilderStore(state => state.clickOutsideIgnoreSelectors);\n const [selectedItemID, setSelectedItemID] = useState(null);\n\n const acceptedItems = usePropStore(state => state.acceptedItems);\n const layoutSettings = usePropStore(state => state.settings);\n const onItemChange = usePropStore(state => state.onItemChange);\n const onPageChange = usePropStore(state => state.onPageChange);\n const onSettingChange = usePropStore(state => state.onSettingChange);\n const pages = usePropStore(state => state.pages);\n const itemAccessor = usePropStore(state => state.itemAccessor);\n\n const panelRef = useRef(null);\n const translatedTexts = useTranslatedTexts();\n\n const settingMap = useMemo(() => ({\n i_: {\n details: id => {\n const item = findItemById(id, pages);\n return item;\n },\n settings: item => {\n return acceptedItems[item.itemType];\n },\n title: item => {\n const textKey = `${(acceptedItems[item.itemType].title || item.itemType).toLocaleUpperCase()}_SETTINGS`;\n return translatedTexts[textKey] || acceptedItems[item.itemType].title;\n },\n updater: onItemChange,\n },\n l_: {\n details: () => {\n return {\n ...layoutSettings,\n id: REPORT_SETTINGS_ITEM_TYPE,\n itemType: REPORT_SETTINGS_ITEM_TYPE,\n };\n },\n settings: () => {\n return acceptedItems[REPORT_SETTINGS_ITEM_TYPE] || Layout;\n },\n title: () => translatedTexts.LAYOUT_SETTINGS,\n updater: onSettingChange,\n },\n p_: {\n details: id => {\n return {\n backgroundColor: layoutSettings.reportBackgroundColor,\n ...pages.find(page => page.id === id),\n itemType: PAGE_SETTINGS_ITEM_TYPE,\n };\n },\n settings: () => {\n const pageItem = acceptedItems[PAGE_SETTINGS_ITEM_TYPE] || Page;\n return {\n ...pageItem,\n settings: pageItem.settings.map(setting => {\n if (setting.key === 'pageLayer') {\n return { ...setting, updater: onItemChange };\n }\n return setting;\n }) || Page.settings,\n };\n },\n title: () => translatedTexts.PAGE_SETTINGS,\n updater: onPageChange,\n },\n }), [\n acceptedItems,\n layoutSettings,\n onItemChange,\n onPageChange,\n onSettingChange,\n translatedTexts,\n pages,\n ]);\n\n const editedEl = useMemo(() => {\n return settingMap[editedElement.substr(0, 2)] || settingMap.l_;\n }, [editedElement, settingMap]);\n\n const {\n element, selectedItem, title, updateFunc,\n } = useMemo(() => {\n const editedElId = editedElement.substr(2);\n const _selectedItem = editedEl.details(editedElId);\n\n if (!_selectedItem) {\n const fallbackEditedEl = settingMap.l_;\n return {\n element: fallbackEditedEl.settings(),\n selectedItem: fallbackEditedEl.details(),\n title: fallbackEditedEl.title(),\n updateFunc: fallbackEditedEl.updater,\n };\n }\n\n return {\n element: editedEl.settings(_selectedItem),\n selectedItem: _selectedItem,\n title: editedEl.title(_selectedItem),\n updateFunc: editedEl.updater,\n };\n }, [editedEl, editedElement, settingMap.l_]);\n\n useEffect(() => {\n if (selectedItemID !== selectedItem.id) {\n setSelectedItemID(prev => {\n if (prev) {\n setActiveTab('right', 0);\n }\n return selectedItem.id;\n });\n }\n }, [selectedItem, selectedItemID, setActiveTab]);\n\n // Tabs\n const tabsWithSettings = getTabsWithSettings(element, selectedItem, itemAccessor);\n const tabs = Object.keys(tabsWithSettings);\n\n useEffect(() => {\n const currentTab = tabs[activeTab.right];\n if (!tabsWithSettings[currentTab]) {\n // This is due to conditionaly hiding tabs\n setActiveTab('right', 0);\n }\n }, [activeTab, tabs, tabsWithSettings, setActiveTab]);\n\n // Panel className\n const panelAdditionalClassName = classNames(\n 'jfReport-settings forSettings f-height',\n {\n isIdle: !isRightPanelOpen,\n otherOpened: isSlidesPanelOpen,\n },\n );\n\n const onClickOutsideForPanel = useCallback(e => {\n const isIgnoredBySelector = clickOutsideIgnoreSelectors.some(selector => selector && e.target.closest(selector));\n\n if (editedElement.substr(0, 2) === 'i_'\n || panelRef.current.contains(e.target)\n || panelRef.current.contains(document.activeElement)\n || isIgnoredBySelector\n || Array.from(e.target.classList).some(xClass => exceptionalClasses.includes(xClass))\n || exceptionalClasses.some(xClass => e.target.closest(`.${xClass}`))\n ) {\n return;\n }\n setIsRightPanelOpen(false);\n resetActiveElements();\n }, [clickOutsideIgnoreSelectors, editedElement, setIsRightPanelOpen, resetActiveElements]);\n\n useEffect(() => {\n if (isRightPanelOpen) window.addEventListener('click', onClickOutsideForPanel, false);\n return () => {\n window.removeEventListener('click', onClickOutsideForPanel, false);\n };\n }, [isRightPanelOpen, onClickOutsideForPanel]);\n\n return (\n <>\n <Panel\n ref={panelRef}\n additionalClassName={panelAdditionalClassName}\n >\n {isSlidesPanelOpen ? null : <RightPanelToggler />}\n <div className=\"toolItemWrapper f-height d-flex dir-col\">\n <Section title={title}>\n <Tabs\n panel=\"right\"\n tabs={tabs}\n />\n <Settings\n key={selectedItem.id}\n element={element}\n item={selectedItem}\n onChange={updateFunc}\n settings={tabsWithSettings}\n tabs={tabs}\n />\n </Section>\n </div>\n </Panel>\n </>\n );\n};\n\nexport default RightPanel;\n"],"names":["exceptionalClasses","RightPanel","activeTab","useBuilderStore","state","editedElement","isRightPanelOpen","isSlidesPanelOpen","resetActiveElements","setActiveTab","setIsRightPanelOpen","clickOutsideIgnoreSelectors","useState","selectedItemID","setSelectedItemID","acceptedItems","usePropStore","layoutSettings","settings","onItemChange","onPageChange","onSettingChange","pages","itemAccessor","panelRef","useRef","translatedTexts","useTranslatedTexts","settingMap","useMemo","i_","details","id","item","findItemById","itemType","title","textKey","toLocaleUpperCase","updater","l_","REPORT_SETTINGS_ITEM_TYPE","Layout","LAYOUT_SETTINGS","p_","backgroundColor","reportBackgroundColor","find","page","PAGE_SETTINGS_ITEM_TYPE","pageItem","Page","map","setting","key","PAGE_SETTINGS","editedEl","substr","editedElId","_selectedItem","fallbackEditedEl","element","selectedItem","updateFunc","useEffect","prev","tabsWithSettings","getTabsWithSettings","tabs","Object","keys","currentTab","right","panelAdditionalClassName","classNames","isIdle","otherOpened","onClickOutsideForPanel","useCallback","e","isIgnoredBySelector","some","selector","target","closest","current","contains","document","activeElement","Array","from","classList","xClass","includes","window","addEventListener","removeEventListener","_jsx","_jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"RightPanel.js","sources":["../../../../../src/components/Panels/RightPanel/RightPanel.js"],"sourcesContent":["import {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport classNames from 'classnames';\nimport Panel from '../../Builder/Panel';\nimport Section from '../../Builder/Section';\nimport Layout from '../../../constants/reportSettings';\nimport Page from '../../../constants/pageSettings';\nimport { useBuilderStore } from '../../../contexts/BuilderContext';\nimport { usePropStore } from '../../../contexts/PropContext';\nimport { findItemById, getTabsWithSettings } from '../../../utils/functions';\nimport { useTranslatedTexts } from '../../../utils/hooks';\nimport {\n REPORT_SETTINGS_ITEM_TYPE, PAGE_SETTINGS_ITEM_TYPE,\n} from '../../../constants/itemTypes';\nimport Tabs from '../../Builder/Tabs';\nimport Settings from './Settings';\nimport RightPanelToggler from './RightPanelToggler';\n\nconst exceptionalClasses = [\n 'pageSettingSideBtn',\n 'paneClose',\n 'paneToggler',\n 'forZoom',\n 'jSheetContextMenu',\n 'page-toolbar',\n 'report-item-toolbar',\n 'zoom-toolbar',\n 'controllerItem',\n 'slides-navigator-toggle',\n 'slides-navigator',\n];\n\nconst RightPanel = () => {\n const activeTab = useBuilderStore(state => state.activeTab);\n const editedElement = useBuilderStore(state => state.editedElement);\n const isRightPanelOpen = useBuilderStore(state => state.isRightPanelOpen);\n const isSlidesPanelOpen = useBuilderStore(state => state.isSlidesPanelOpen);\n const resetActiveElements = useBuilderStore(state => state.resetActiveElements);\n const setActiveTab = useBuilderStore(state => state.setActiveTab);\n const setIsRightPanelOpen = useBuilderStore(state => state.setIsRightPanelOpen);\n const clickOutsideIgnoreSelectors = useBuilderStore(state => state.clickOutsideIgnoreSelectors);\n const [selectedItemID, setSelectedItemID] = useState(null);\n\n const acceptedItems = usePropStore(state => state.acceptedItems);\n const layoutSettings = usePropStore(state => state.settings);\n const onItemChange = usePropStore(state => state.onItemChange);\n const onPageChange = usePropStore(state => state.onPageChange);\n const onSettingChange = usePropStore(state => state.onSettingChange);\n const pages = usePropStore(state => state.pages);\n const itemAccessor = usePropStore(state => state.itemAccessor);\n\n const panelRef = useRef(null);\n const translatedTexts = useTranslatedTexts();\n\n const settingMap = useMemo(() => ({\n i_: {\n details: id => {\n const item = findItemById(id, pages);\n return item;\n },\n settings: item => {\n return acceptedItems[item.itemType];\n },\n title: item => {\n const textKey = `${(acceptedItems[item.itemType].title || item.itemType).toLocaleUpperCase()}_SETTINGS`;\n return translatedTexts[textKey] || acceptedItems[item.itemType].title;\n },\n updater: onItemChange,\n },\n l_: {\n details: () => {\n return {\n ...layoutSettings,\n id: REPORT_SETTINGS_ITEM_TYPE,\n itemType: REPORT_SETTINGS_ITEM_TYPE,\n };\n },\n settings: () => {\n return acceptedItems[REPORT_SETTINGS_ITEM_TYPE] || Layout;\n },\n title: () => translatedTexts.LAYOUT_SETTINGS,\n updater: onSettingChange,\n },\n p_: {\n details: id => {\n return {\n backgroundColor: layoutSettings.reportBackgroundColor,\n ...pages.find(page => page.id === id),\n itemType: PAGE_SETTINGS_ITEM_TYPE,\n };\n },\n settings: () => {\n const pageItem = acceptedItems[PAGE_SETTINGS_ITEM_TYPE] || Page;\n return {\n ...pageItem,\n settings: pageItem.settings.map(setting => {\n if (setting.key === 'pageLayer') {\n return { ...setting, updater: onItemChange };\n }\n return setting;\n }) || Page.settings,\n };\n },\n title: () => translatedTexts.PAGE_SETTINGS,\n updater: onPageChange,\n },\n }), [\n acceptedItems,\n layoutSettings,\n onItemChange,\n onPageChange,\n onSettingChange,\n translatedTexts,\n pages,\n ]);\n\n const editedEl = useMemo(() => {\n return settingMap[editedElement.substr(0, 2)] || settingMap.l_;\n }, [editedElement, settingMap]);\n\n const {\n element, selectedItem, title, updateFunc,\n } = useMemo(() => {\n const editedElId = editedElement.substr(2);\n const _selectedItem = editedEl.details(editedElId);\n\n if (!_selectedItem) {\n const fallbackEditedEl = settingMap.l_;\n return {\n element: fallbackEditedEl.settings(),\n selectedItem: fallbackEditedEl.details(),\n title: fallbackEditedEl.title(),\n updateFunc: fallbackEditedEl.updater,\n };\n }\n\n return {\n element: editedEl.settings(_selectedItem),\n selectedItem: _selectedItem,\n title: editedEl.title(_selectedItem),\n updateFunc: editedEl.updater,\n };\n }, [editedEl, editedElement, settingMap.l_]);\n\n useEffect(() => {\n if (selectedItemID !== selectedItem.id) {\n setSelectedItemID(prev => {\n if (prev) {\n setActiveTab('right', 0);\n }\n return selectedItem.id;\n });\n }\n }, [selectedItem, selectedItemID, setActiveTab]);\n\n // Tabs\n const tabsWithSettings = getTabsWithSettings(element, selectedItem, itemAccessor);\n const tabs = Object.keys(tabsWithSettings);\n\n useEffect(() => {\n const currentTab = tabs[activeTab.right];\n if (!tabsWithSettings[currentTab]) {\n // This is due to conditionaly hiding tabs\n setActiveTab('right', 0);\n }\n }, [activeTab, tabs, tabsWithSettings, setActiveTab]);\n\n // Panel className\n const panelAdditionalClassName = classNames(\n 'jfReport-settings forSettings f-height',\n {\n isIdle: !isRightPanelOpen,\n otherOpened: isSlidesPanelOpen,\n },\n );\n\n const onClickOutsideForPanel = useCallback(e => {\n const isIgnoredBySelector = clickOutsideIgnoreSelectors.some(selector => selector && e.target.closest(selector));\n\n if (editedElement.substr(0, 2) === 'i_'\n || panelRef.current.contains(e.target)\n || panelRef.current.contains(document.activeElement)\n || isIgnoredBySelector\n || Array.from(e.target.classList).some(xClass => exceptionalClasses.includes(xClass))\n || exceptionalClasses.some(xClass => e.target.closest(`.${xClass}`))\n ) {\n return;\n }\n setIsRightPanelOpen(false);\n resetActiveElements();\n }, [clickOutsideIgnoreSelectors, editedElement, setIsRightPanelOpen, resetActiveElements]);\n\n useEffect(() => {\n if (isRightPanelOpen) window.addEventListener('click', onClickOutsideForPanel, false);\n return () => {\n window.removeEventListener('click', onClickOutsideForPanel, false);\n };\n }, [isRightPanelOpen, onClickOutsideForPanel]);\n\n return (\n <>\n <Panel\n ref={panelRef}\n additionalClassName={panelAdditionalClassName}\n >\n {isSlidesPanelOpen ? null : <RightPanelToggler />}\n <div className=\"toolItemWrapper f-height d-flex dir-col\">\n <Section title={title}>\n <Tabs\n panel=\"right\"\n tabs={tabs}\n />\n <Settings\n key={selectedItem.id}\n element={element}\n item={selectedItem}\n onChange={updateFunc}\n settings={tabsWithSettings}\n tabs={tabs}\n />\n </Section>\n </div>\n </Panel>\n </>\n );\n};\n\nexport default RightPanel;\n"],"names":["exceptionalClasses","RightPanel","activeTab","useBuilderStore","state","editedElement","isRightPanelOpen","isSlidesPanelOpen","resetActiveElements","setActiveTab","setIsRightPanelOpen","clickOutsideIgnoreSelectors","useState","selectedItemID","setSelectedItemID","acceptedItems","usePropStore","layoutSettings","settings","onItemChange","onPageChange","onSettingChange","pages","itemAccessor","panelRef","useRef","translatedTexts","useTranslatedTexts","settingMap","useMemo","i_","details","id","item","findItemById","itemType","title","textKey","toLocaleUpperCase","updater","l_","REPORT_SETTINGS_ITEM_TYPE","Layout","LAYOUT_SETTINGS","p_","backgroundColor","reportBackgroundColor","find","page","PAGE_SETTINGS_ITEM_TYPE","pageItem","Page","map","setting","key","PAGE_SETTINGS","editedEl","substr","editedElId","_selectedItem","fallbackEditedEl","element","selectedItem","updateFunc","useEffect","prev","tabsWithSettings","getTabsWithSettings","tabs","Object","keys","currentTab","right","panelAdditionalClassName","classNames","isIdle","otherOpened","onClickOutsideForPanel","useCallback","e","isIgnoredBySelector","some","selector","target","closest","current","contains","document","activeElement","Array","from","classList","xClass","includes","window","addEventListener","removeEventListener","_jsx","_jsxs"],"mappings":"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"}
@@ -0,0 +1,257 @@
1
+ 'use strict';
2
+
3
+ require('core-js/modules/es.array.map.js');
4
+ var React = require('react');
5
+ var react = require('@floating-ui/react');
6
+ var PropTypes = require('prop-types');
7
+ var hooks = require('../../../../utils/hooks.js');
8
+ var PropContext = require('../../../../contexts/PropContext.js');
9
+ var BuilderContext = require('../../../../contexts/BuilderContext.js');
10
+ var jsxRuntime = require('react/jsx-runtime');
11
+ var plus = require('../../../../assets/svg/plus.svg.js');
12
+ var duplicate = require('../../../../assets/svg/duplicate.svg.js');
13
+ var trash = require('../../../../assets/svg/trash.svg.js');
14
+
15
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
16
+
17
+ var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
18
+
19
+ 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; }
20
+
21
+ 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; }
22
+
23
+ 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; }
24
+
25
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
26
+
27
+ 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."); }
28
+
29
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
30
+
31
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
32
+
33
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
34
+
35
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
36
+ var PAGE_ACTIONS_SYNC_MS = 100;
37
+ var SlideItemMoreMenu = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
38
+ var order = _ref.order,
39
+ page = _ref.page;
40
+
41
+ var _useState = React.useState(false),
42
+ _useState2 = _slicedToArray(_useState, 2),
43
+ isOpen = _useState2[0],
44
+ setIsOpen = _useState2[1];
45
+
46
+ var _useState3 = React.useState({
47
+ left: 0,
48
+ top: 0
49
+ }),
50
+ _useState4 = _slicedToArray(_useState3, 2),
51
+ rectPosition = _useState4[0],
52
+ setRectPosition = _useState4[1];
53
+
54
+ var setVisiblePageOrder = BuilderContext.useBuilderStore(function (state) {
55
+ return state.setVisiblePageOrder;
56
+ });
57
+ var openCardContextMenu = React.useCallback(function (e) {
58
+ var useMousePointer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
59
+ if (isOpen) return;
60
+ e.preventDefault();
61
+ var cursorTarget = e.target;
62
+
63
+ var _cursorTarget$getBoun = cursorTarget.getBoundingClientRect(),
64
+ top = _cursorTarget$getBoun.top;
65
+
66
+ var _cursorTarget$getBoun2 = cursorTarget.getBoundingClientRect(),
67
+ left = _cursorTarget$getBoun2.left;
68
+
69
+ if (useMousePointer) {
70
+ top = e.clientY;
71
+ left = e.clientX;
72
+ }
73
+
74
+ var _window = window,
75
+ innerHeight = _window.innerHeight,
76
+ innerWidth = _window.innerWidth;
77
+ var floatingHeight = 196;
78
+ var floatingWidth = 224;
79
+ var innerLeftDecrement = innerWidth - left > floatingWidth;
80
+ var innerTopDecrement = innerHeight - top > floatingHeight;
81
+ var leftVal = !innerLeftDecrement ? left - floatingWidth : left;
82
+ var topVal = !innerTopDecrement ? top - floatingHeight : top + (!useMousePointer ? 24 : 0);
83
+ setRectPosition({
84
+ left: leftVal,
85
+ top: topVal
86
+ });
87
+ }, [isOpen]);
88
+ var onPageAdd = PropContext.usePropStore(function (state) {
89
+ return state.onPageAdd;
90
+ });
91
+ var onPageDuplicate = PropContext.usePropStore(function (state) {
92
+ return state.onPageDuplicate;
93
+ });
94
+ var onPageRemove = PropContext.usePropStore(function (state) {
95
+ return state.onPageRemove;
96
+ });
97
+ var onAnEventTrigger = PropContext.usePropStore(function (state) {
98
+ return state.onAnEventTrigger;
99
+ });
100
+
101
+ var _useTranslatedTexts = hooks.useTranslatedTexts(),
102
+ ADD_NEW_SLIDE = _useTranslatedTexts.ADD_NEW_SLIDE,
103
+ DELETE_SLIDE = _useTranslatedTexts.DELETE_SLIDE,
104
+ DUPLICATE_SLIDE = _useTranslatedTexts.DUPLICATE_SLIDE;
105
+
106
+ var _useFloating = react.useFloating({
107
+ middleware: [react.offset({
108
+ crossAxis: 10000,
109
+ mainAxis: 5
110
+ }), react.flip({
111
+ crossAxis: true,
112
+ fallbackAxisSideDirection: 'none'
113
+ }), react.shift(), react.autoPlacement({
114
+ alignment: 'start',
115
+ crossAxis: true
116
+ })],
117
+ onOpenChange: function onOpenChange(nextOpen) {
118
+ setIsOpen(nextOpen);
119
+ },
120
+ open: isOpen,
121
+ placement: 'bottom',
122
+ strategy: 'fixed',
123
+ transform: true,
124
+ whileElementsMounted: react.autoUpdate
125
+ }),
126
+ context = _useFloating.context,
127
+ floatingStyles = _useFloating.floatingStyles,
128
+ refs = _useFloating.refs;
129
+
130
+ var click = react.useClick(context, {
131
+ event: 'click'
132
+ });
133
+ var dismiss = react.useDismiss(context, {
134
+ ancestorScroll: true
135
+ });
136
+ var role = react.useRole(context);
137
+ var focus = react.useFocus(context);
138
+
139
+ var _useInteractions = react.useInteractions([click, dismiss, role, focus]),
140
+ getFloatingProps = _useInteractions.getFloatingProps;
141
+
142
+ var headingId = react.useId();
143
+ var customStyles = {
144
+ boxShadow: '0px 2px 4px 0px rgba(37, 45, 91, 0.04), 0px 8px 16px 0px rgba(84, 95, 111, 0.16)',
145
+ left: rectPosition.left,
146
+ top: rectPosition.top,
147
+ transform: 'translate(9px, 0px)',
148
+ zIndex: '99999'
149
+ };
150
+ var handleAddNewSlide = React.useCallback(function () {
151
+ var nextPageOrder = order + 1;
152
+ onPageAdd(nextPageOrder);
153
+ onAnEventTrigger('addNewPageFromSlides', nextPageOrder);
154
+ setIsOpen(false);
155
+ window.setTimeout(function () {
156
+ setVisiblePageOrder(nextPageOrder);
157
+ }, PAGE_ACTIONS_SYNC_MS);
158
+ }, [onPageAdd, order, onAnEventTrigger, setVisiblePageOrder]);
159
+ var handleDuplicateSlide = React.useCallback(function () {
160
+ var nextPageOrder = order + 1;
161
+ onPageDuplicate(page);
162
+ onAnEventTrigger('duplicatePage', nextPageOrder);
163
+ setIsOpen(false);
164
+ window.setTimeout(function () {
165
+ setVisiblePageOrder(nextPageOrder);
166
+ }, PAGE_ACTIONS_SYNC_MS);
167
+ }, [onPageDuplicate, page, order, onAnEventTrigger, setVisiblePageOrder]);
168
+ var handleDeleteSlide = React.useCallback(function () {
169
+ onPageRemove(page.id);
170
+ onAnEventTrigger('removePageFromSlides', page.id);
171
+ setIsOpen(false);
172
+ var visibleOrderAfterDelete = Math.max(order - 1, 1);
173
+ window.setTimeout(function () {
174
+ setVisiblePageOrder(visibleOrderAfterDelete);
175
+ }, PAGE_ACTIONS_SYNC_MS);
176
+ }, [page, order, onPageRemove, onAnEventTrigger, setVisiblePageOrder]);
177
+ var schemaOptions = React.useMemo(function () {
178
+ return [{
179
+ className: 'slides-navigator-context-menu-item',
180
+ icon: /*#__PURE__*/jsxRuntime.jsx(plus, {
181
+ className: "slides-navigator-context-menu-item-icon"
182
+ }),
183
+ id: 'add_new_slide',
184
+ isVisible: true,
185
+ onClick: handleAddNewSlide,
186
+ textClassName: 'slides-navigator-context-menu-item-text add',
187
+ title: ADD_NEW_SLIDE
188
+ }, {
189
+ className: 'slides-navigator-context-menu-item',
190
+ icon: /*#__PURE__*/jsxRuntime.jsx(duplicate, {
191
+ className: "slides-navigator-context-menu-item-icon"
192
+ }),
193
+ id: 'duplicate_slide',
194
+ isVisible: true,
195
+ onClick: handleDuplicateSlide,
196
+ textClassName: 'slides-navigator-context-menu-item-text duplicate',
197
+ title: DUPLICATE_SLIDE
198
+ }, {
199
+ className: 'slides-navigator-context-menu-item',
200
+ icon: /*#__PURE__*/jsxRuntime.jsx(trash, {
201
+ className: "slides-navigator-context-menu-item-icon delete"
202
+ }),
203
+ id: 'delete_slide',
204
+ isVisible: true,
205
+ onClick: handleDeleteSlide,
206
+ textClassName: 'slides-navigator-context-menu-item-text delete',
207
+ title: DELETE_SLIDE
208
+ }];
209
+ }, [handleAddNewSlide, handleDuplicateSlide, handleDeleteSlide, ADD_NEW_SLIDE, DUPLICATE_SLIDE, DELETE_SLIDE]);
210
+ var handleOpenMenu = React.useCallback(function (e) {
211
+ setIsOpen(true);
212
+ openCardContextMenu(e, true);
213
+ }, [openCardContextMenu]);
214
+ React.useImperativeHandle(ref, function () {
215
+ return {
216
+ handleOpenMenu: handleOpenMenu
217
+ };
218
+ }, [handleOpenMenu]);
219
+ return /*#__PURE__*/jsxRuntime.jsx(jsxRuntime.Fragment, {
220
+ children: isOpen && /*#__PURE__*/jsxRuntime.jsx(react.FloatingPortal, {
221
+ children: /*#__PURE__*/jsxRuntime.jsx("div", _objectSpread(_objectSpread({
222
+ ref: refs.setFloating,
223
+ alignItems: "start",
224
+ "aria-labelledby": headingId,
225
+ className: "slides-navigator-context-menu",
226
+ direction: "column",
227
+ justifyContent: "start",
228
+ style: _objectSpread(_objectSpread({}, floatingStyles), customStyles)
229
+ }, getFloatingProps()), {}, {
230
+ children: /*#__PURE__*/jsxRuntime.jsx("div", {
231
+ className: "slides-navigator-context-menu-items",
232
+ children: schemaOptions.map(function (schemaOption) {
233
+ return schemaOption.isVisible && /*#__PURE__*/jsxRuntime.jsxs("button", {
234
+ className: schemaOption.className,
235
+ id: schemaOption.id,
236
+ onClick: schemaOption.onClick,
237
+ type: "button",
238
+ children: [schemaOption.icon, /*#__PURE__*/jsxRuntime.jsx("span", {
239
+ className: " ".concat(schemaOption.textClassName),
240
+ children: schemaOption.title
241
+ })]
242
+ }, schemaOption.id);
243
+ })
244
+ })
245
+ }))
246
+ })
247
+ });
248
+ });
249
+ SlideItemMoreMenu.propTypes = {
250
+ order: PropTypes__default['default'].number.isRequired,
251
+ page: PropTypes__default['default'].shape({
252
+ id: PropTypes__default['default'].string.isRequired
253
+ }).isRequired
254
+ };
255
+
256
+ module.exports = SlideItemMoreMenu;
257
+ //# sourceMappingURL=SlideItemMoreMenu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SlideItemMoreMenu.js","sources":["../../../../../../src/components/Panels/SlidesNavigator/MoreMenu/SlideItemMoreMenu.js"],"sourcesContent":["import {\n forwardRef, useCallback, useImperativeHandle, useMemo, useState,\n} from 'react';\nimport {\n useFloating,\n autoUpdate,\n offset,\n flip,\n shift,\n useDismiss,\n useRole,\n useClick,\n useInteractions,\n useId,\n useFocus,\n FloatingPortal,\n autoPlacement,\n} from '@floating-ui/react';\nimport PropTypes from 'prop-types';\nimport * as icons from '../../../../utils/icons';\nimport { useTranslatedTexts } from '../../../../utils/hooks';\nimport { usePropStore } from '../../../../contexts/PropContext';\nimport { useBuilderStore } from '../../../../contexts/BuilderContext';\n\nconst PAGE_ACTIONS_SYNC_MS = 100;\n\nconst SlideItemMoreMenu = forwardRef(({ order, page }, ref) => {\n const [isOpen, setIsOpen] = useState(false);\n const [rectPosition, setRectPosition] = useState({ left: 0, top: 0 });\n const setVisiblePageOrder = useBuilderStore(state => state.setVisiblePageOrder);\n\n const openCardContextMenu = useCallback((e, useMousePointer = false) => {\n if (isOpen) return;\n e.preventDefault();\n const cursorTarget = e.target;\n let { top } = cursorTarget.getBoundingClientRect();\n let { left } = cursorTarget.getBoundingClientRect();\n if (useMousePointer) {\n top = e.clientY;\n left = e.clientX;\n }\n const { innerHeight, innerWidth } = window;\n const floatingHeight = 196;\n const floatingWidth = 224;\n const innerLeftDecrement = (innerWidth - left) > floatingWidth;\n const innerTopDecrement = (innerHeight - top) > floatingHeight;\n const leftVal = !innerLeftDecrement ? left - floatingWidth : left;\n const topVal = !innerTopDecrement ? top - (floatingHeight) : top + (!useMousePointer ? 24 : 0);\n setRectPosition({ left: leftVal, top: topVal });\n }, [isOpen]);\n\n const onPageAdd = usePropStore(state => state.onPageAdd);\n const onPageDuplicate = usePropStore(state => state.onPageDuplicate);\n const onPageRemove = usePropStore(state => state.onPageRemove);\n const onAnEventTrigger = usePropStore(state => state.onAnEventTrigger);\n\n const { ADD_NEW_SLIDE, DELETE_SLIDE, DUPLICATE_SLIDE } = useTranslatedTexts();\n\n const { context, floatingStyles, refs } = useFloating({\n middleware: [\n offset({\n crossAxis: 10000,\n mainAxis: 5,\n }),\n flip({\n crossAxis: true,\n fallbackAxisSideDirection: 'none',\n }),\n shift(),\n autoPlacement({\n alignment: 'start',\n crossAxis: true,\n }),\n ],\n onOpenChange: nextOpen => {\n setIsOpen(nextOpen);\n },\n open: isOpen,\n placement: 'bottom',\n strategy: 'fixed',\n transform: true,\n whileElementsMounted: autoUpdate,\n });\n\n const click = useClick(context, {\n event: 'click',\n });\n const dismiss = useDismiss(context, { ancestorScroll: true });\n const role = useRole(context);\n const focus = useFocus(context);\n\n const { getFloatingProps } = useInteractions([\n click,\n dismiss,\n role,\n focus,\n ]);\n\n const headingId = useId();\n\n const customStyles = {\n boxShadow: '0px 2px 4px 0px rgba(37, 45, 91, 0.04), 0px 8px 16px 0px rgba(84, 95, 111, 0.16)',\n left: rectPosition.left,\n top: rectPosition.top,\n transform: 'translate(9px, 0px)',\n zIndex: '99999',\n };\n\n const handleAddNewSlide = useCallback(() => {\n const nextPageOrder = order + 1;\n onPageAdd(nextPageOrder);\n onAnEventTrigger('addNewPageFromSlides', nextPageOrder);\n setIsOpen(false);\n window.setTimeout(() => {\n setVisiblePageOrder(nextPageOrder);\n }, PAGE_ACTIONS_SYNC_MS);\n }, [onPageAdd, order, onAnEventTrigger, setVisiblePageOrder]);\n\n const handleDuplicateSlide = useCallback(() => {\n const nextPageOrder = order + 1;\n onPageDuplicate(page);\n onAnEventTrigger('duplicatePage', nextPageOrder);\n setIsOpen(false);\n window.setTimeout(() => {\n setVisiblePageOrder(nextPageOrder);\n }, PAGE_ACTIONS_SYNC_MS);\n }, [onPageDuplicate, page, order, onAnEventTrigger, setVisiblePageOrder]);\n\n const handleDeleteSlide = useCallback(() => {\n onPageRemove(page.id);\n onAnEventTrigger('removePageFromSlides', page.id);\n setIsOpen(false);\n const visibleOrderAfterDelete = Math.max(order - 1, 1);\n window.setTimeout(() => {\n setVisiblePageOrder(visibleOrderAfterDelete);\n }, PAGE_ACTIONS_SYNC_MS);\n }, [page, order, onPageRemove, onAnEventTrigger, setVisiblePageOrder]);\n\n const schemaOptions = useMemo(() => {\n return (\n [\n {\n className: 'slides-navigator-context-menu-item',\n icon: <icons.plus className=\"slides-navigator-context-menu-item-icon\" />,\n id: 'add_new_slide',\n isVisible: true,\n onClick: handleAddNewSlide,\n textClassName: 'slides-navigator-context-menu-item-text add',\n title: ADD_NEW_SLIDE,\n },\n {\n className: 'slides-navigator-context-menu-item',\n icon: <icons.duplicate className=\"slides-navigator-context-menu-item-icon\" />,\n id: 'duplicate_slide',\n isVisible: true,\n onClick: handleDuplicateSlide,\n textClassName: 'slides-navigator-context-menu-item-text duplicate',\n title: DUPLICATE_SLIDE,\n },\n {\n className: 'slides-navigator-context-menu-item',\n icon: <icons.trash className=\"slides-navigator-context-menu-item-icon delete\" />,\n id: 'delete_slide',\n isVisible: true,\n onClick: handleDeleteSlide,\n textClassName: 'slides-navigator-context-menu-item-text delete',\n title: DELETE_SLIDE,\n },\n ]\n );\n }, [handleAddNewSlide, handleDuplicateSlide, handleDeleteSlide, ADD_NEW_SLIDE, DUPLICATE_SLIDE, DELETE_SLIDE]);\n\n const handleOpenMenu = useCallback(e => {\n setIsOpen(true);\n openCardContextMenu(e, true);\n }, [openCardContextMenu]);\n\n useImperativeHandle(ref, () => {\n return {\n handleOpenMenu,\n };\n }, [handleOpenMenu]);\n\n return (\n <>\n {isOpen && (\n <FloatingPortal>\n {/* <PopoverOverlay /> */}\n <div\n ref={refs.setFloating}\n alignItems=\"start\"\n aria-labelledby={headingId}\n className=\"slides-navigator-context-menu\"\n direction=\"column\"\n justifyContent=\"start\"\n style={{\n ...floatingStyles,\n ...customStyles,\n }}\n {...getFloatingProps()}\n >\n <div\n className=\"slides-navigator-context-menu-items\"\n >\n {schemaOptions.map(schemaOption => {\n return (\n schemaOption.isVisible\n && (\n <button\n key={schemaOption.id}\n className={schemaOption.className}\n id={schemaOption.id}\n onClick={schemaOption.onClick}\n type=\"button\"\n >\n {schemaOption.icon}\n <span className={` ${schemaOption.textClassName}`}>{schemaOption.title}</span>\n </button>\n )\n );\n })}\n </div>\n </div>\n </FloatingPortal>\n )}\n </>\n );\n});\n\nSlideItemMoreMenu.propTypes = {\n order: PropTypes.number.isRequired,\n page: PropTypes.shape({\n id: PropTypes.string.isRequired,\n }).isRequired,\n};\n\nexport default SlideItemMoreMenu;\n"],"names":["PAGE_ACTIONS_SYNC_MS","SlideItemMoreMenu","forwardRef","ref","order","page","useState","isOpen","setIsOpen","left","top","rectPosition","setRectPosition","setVisiblePageOrder","useBuilderStore","state","openCardContextMenu","useCallback","e","useMousePointer","preventDefault","cursorTarget","target","getBoundingClientRect","clientY","clientX","window","innerHeight","innerWidth","floatingHeight","floatingWidth","innerLeftDecrement","innerTopDecrement","leftVal","topVal","onPageAdd","usePropStore","onPageDuplicate","onPageRemove","onAnEventTrigger","useTranslatedTexts","ADD_NEW_SLIDE","DELETE_SLIDE","DUPLICATE_SLIDE","useFloating","middleware","offset","crossAxis","mainAxis","flip","fallbackAxisSideDirection","shift","autoPlacement","alignment","onOpenChange","nextOpen","open","placement","strategy","transform","whileElementsMounted","autoUpdate","context","floatingStyles","refs","click","useClick","event","dismiss","useDismiss","ancestorScroll","role","useRole","focus","useFocus","useInteractions","getFloatingProps","headingId","useId","customStyles","boxShadow","zIndex","handleAddNewSlide","nextPageOrder","setTimeout","handleDuplicateSlide","handleDeleteSlide","id","visibleOrderAfterDelete","Math","max","schemaOptions","useMemo","className","icon","_jsx","icons.plus","isVisible","onClick","textClassName","title","icons.duplicate","icons.trash","handleOpenMenu","useImperativeHandle","FloatingPortal","setFloating","map","schemaOption","_jsxs","propTypes","PropTypes","number","isRequired","shape","string"],"mappings":"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"}