@jotforminc/dnd-builder 3.5.4 → 3.6.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.
- package/CHANGELOG.md +16 -0
- package/lib/cjs/components/Builder/Builder.js +1 -3
- package/lib/cjs/components/Builder/Builder.js.map +1 -1
- package/lib/cjs/components/Builder/BuilderWrapper.js +27 -5
- package/lib/cjs/components/Builder/BuilderWrapper.js.map +1 -1
- package/lib/cjs/components/Builder/PageActions.js +10 -53
- package/lib/cjs/components/Builder/PageActions.js.map +1 -1
- package/lib/cjs/components/Builder/Scene.js +9 -1
- package/lib/cjs/components/Builder/Scene.js.map +1 -1
- package/lib/cjs/components/Builder/SlidesNavigatorToggle.js +41 -0
- package/lib/cjs/components/Builder/SlidesNavigatorToggle.js.map +1 -0
- package/lib/cjs/components/PageItemResizer.js +1 -1
- package/lib/cjs/components/PageItemResizer.js.map +1 -1
- package/lib/cjs/components/Panels/LeftPanel/LeftPanelOpener.js +4 -6
- package/lib/cjs/components/Panels/LeftPanel/LeftPanelOpener.js.map +1 -1
- package/lib/cjs/components/Panels/RightPanel/RightPanel.js +1 -1
- package/lib/cjs/components/Panels/RightPanel/RightPanel.js.map +1 -1
- package/lib/cjs/components/Panels/SlidesNavigator/MoreMenu/SlideItemMoreMenu.js +257 -0
- package/lib/cjs/components/Panels/SlidesNavigator/MoreMenu/SlideItemMoreMenu.js.map +1 -0
- package/lib/cjs/components/Panels/SlidesNavigator/SlideItem.js +144 -0
- package/lib/cjs/components/Panels/SlidesNavigator/SlideItem.js.map +1 -0
- package/lib/cjs/components/Panels/{AllSlidesPanel/PageItemDragOverlay.js → SlidesNavigator/SlideItemDragOverlay.js} +29 -16
- package/lib/cjs/components/Panels/SlidesNavigator/SlideItemDragOverlay.js.map +1 -0
- package/lib/cjs/components/Panels/SlidesNavigator/SlideItemsList.js +232 -0
- package/lib/cjs/components/Panels/SlidesNavigator/SlideItemsList.js.map +1 -0
- package/lib/cjs/components/Panels/SlidesNavigator/SlidesNavigator.js +54 -0
- package/lib/cjs/components/Panels/SlidesNavigator/SlidesNavigator.js.map +1 -0
- package/lib/cjs/components/Panels/SlidesNavigator/StaticSlideItem.js +97 -0
- package/lib/cjs/components/Panels/SlidesNavigator/StaticSlideItem.js.map +1 -0
- package/lib/cjs/components/Panels/SlidesPanel/SlidesPanel.js +6 -17
- package/lib/cjs/components/Panels/SlidesPanel/SlidesPanel.js.map +1 -1
- package/lib/cjs/components/ReportWrapper.js +4 -4
- package/lib/cjs/components/ReportWrapper.js.map +1 -1
- package/lib/cjs/constants/panel.js +11 -0
- package/lib/cjs/constants/panel.js.map +1 -0
- package/lib/cjs/constants/texts.js +6 -1
- package/lib/cjs/constants/texts.js.map +1 -1
- package/lib/cjs/contexts/BuilderContext.js +15 -7
- package/lib/cjs/contexts/BuilderContext.js.map +1 -1
- package/lib/cjs/contexts/Providers.js +8 -1
- package/lib/cjs/contexts/Providers.js.map +1 -1
- package/lib/cjs/styles/_jfReportsFloatings.scss +39 -7
- package/lib/cjs/styles/_jfReportsHelpers.scss +1 -1
- package/lib/cjs/styles/_jfReportsMain.scss +8 -0
- package/lib/cjs/styles/_jfReportsPanels.scss +10 -7
- package/lib/cjs/styles/_jfReportsReportItem.scss +2 -2
- package/lib/cjs/styles/_jfReportsSlides.scss +2 -2
- package/lib/cjs/styles/_jfReportsVariables.scss +1 -0
- package/lib/cjs/styles/_jfReportsViewModes.scss +1 -0
- package/lib/cjs/styles/jfReportsBundle.scss +1 -0
- package/lib/cjs/styles/slides-navigator.scss +239 -0
- package/lib/cjs/utils/functions.js +9 -28
- package/lib/cjs/utils/functions.js.map +1 -1
- package/lib/cjs/utils/hooks.js +3 -1
- package/lib/cjs/utils/hooks.js.map +1 -1
- package/lib/cjs/utils/icons.js +0 -2
- package/lib/cjs/utils/icons.js.map +1 -1
- package/lib/esm/components/Builder/Builder.js +1 -3
- package/lib/esm/components/Builder/Builder.js.map +1 -1
- package/lib/esm/components/Builder/BuilderWrapper.js +28 -6
- package/lib/esm/components/Builder/BuilderWrapper.js.map +1 -1
- package/lib/esm/components/Builder/PageActions.js +12 -55
- package/lib/esm/components/Builder/PageActions.js.map +1 -1
- package/lib/esm/components/Builder/Scene.js +9 -1
- package/lib/esm/components/Builder/Scene.js.map +1 -1
- package/lib/esm/components/Builder/SlidesNavigatorToggle.js +39 -0
- package/lib/esm/components/Builder/SlidesNavigatorToggle.js.map +1 -0
- package/lib/esm/components/PageItemResizer.js +1 -1
- package/lib/esm/components/PageItemResizer.js.map +1 -1
- package/lib/esm/components/Panels/LeftPanel/LeftPanelOpener.js +5 -7
- package/lib/esm/components/Panels/LeftPanel/LeftPanelOpener.js.map +1 -1
- package/lib/esm/components/Panels/RightPanel/RightPanel.js +1 -1
- package/lib/esm/components/Panels/RightPanel/RightPanel.js.map +1 -1
- package/lib/esm/components/Panels/SlidesNavigator/MoreMenu/SlideItemMoreMenu.js +251 -0
- package/lib/esm/components/Panels/SlidesNavigator/MoreMenu/SlideItemMoreMenu.js.map +1 -0
- package/lib/esm/components/Panels/SlidesNavigator/SlideItem.js +138 -0
- package/lib/esm/components/Panels/SlidesNavigator/SlideItem.js.map +1 -0
- package/lib/esm/components/Panels/SlidesNavigator/SlideItemDragOverlay.js +61 -0
- package/lib/esm/components/Panels/SlidesNavigator/SlideItemDragOverlay.js.map +1 -0
- package/lib/esm/components/Panels/SlidesNavigator/SlideItemsList.js +226 -0
- package/lib/esm/components/Panels/SlidesNavigator/SlideItemsList.js.map +1 -0
- package/lib/esm/components/Panels/SlidesNavigator/SlidesNavigator.js +52 -0
- package/lib/esm/components/Panels/SlidesNavigator/SlidesNavigator.js.map +1 -0
- package/lib/esm/components/Panels/SlidesNavigator/StaticSlideItem.js +91 -0
- package/lib/esm/components/Panels/SlidesNavigator/StaticSlideItem.js.map +1 -0
- package/lib/esm/components/Panels/SlidesPanel/SlidesPanel.js +7 -18
- package/lib/esm/components/Panels/SlidesPanel/SlidesPanel.js.map +1 -1
- package/lib/esm/components/ReportWrapper.js +4 -4
- package/lib/esm/components/ReportWrapper.js.map +1 -1
- package/lib/esm/constants/panel.js +7 -0
- package/lib/esm/constants/panel.js.map +1 -0
- package/lib/esm/constants/texts.js +6 -1
- package/lib/esm/constants/texts.js.map +1 -1
- package/lib/esm/contexts/BuilderContext.js +15 -7
- package/lib/esm/contexts/BuilderContext.js.map +1 -1
- package/lib/esm/contexts/Providers.js +8 -1
- package/lib/esm/contexts/Providers.js.map +1 -1
- package/lib/esm/styles/_jfReportsFloatings.scss +39 -7
- package/lib/esm/styles/_jfReportsHelpers.scss +1 -1
- package/lib/esm/styles/_jfReportsMain.scss +8 -0
- package/lib/esm/styles/_jfReportsPanels.scss +10 -7
- package/lib/esm/styles/_jfReportsReportItem.scss +2 -2
- package/lib/esm/styles/_jfReportsSlides.scss +2 -2
- package/lib/esm/styles/_jfReportsVariables.scss +1 -0
- package/lib/esm/styles/_jfReportsViewModes.scss +1 -0
- package/lib/esm/styles/jfReportsBundle.scss +1 -0
- package/lib/esm/styles/slides-navigator.scss +239 -0
- package/lib/esm/utils/functions.js +8 -27
- package/lib/esm/utils/functions.js.map +1 -1
- package/lib/esm/utils/hooks.js +3 -1
- package/lib/esm/utils/hooks.js.map +1 -1
- package/lib/esm/utils/icons.js +0 -1
- package/lib/esm/utils/icons.js.map +1 -1
- package/package.json +3 -1
- package/lib/cjs/assets/svg/all_slides.svg.js +0 -23
- package/lib/cjs/assets/svg/all_slides.svg.js.map +0 -1
- package/lib/cjs/components/Panels/AllSlidesPanel/AllSlidesPanel.js +0 -148
- package/lib/cjs/components/Panels/AllSlidesPanel/AllSlidesPanel.js.map +0 -1
- package/lib/cjs/components/Panels/AllSlidesPanel/AllSlidesPanelToggler.js +0 -29
- package/lib/cjs/components/Panels/AllSlidesPanel/AllSlidesPanelToggler.js.map +0 -1
- package/lib/cjs/components/Panels/AllSlidesPanel/PageActionsBar.js +0 -107
- package/lib/cjs/components/Panels/AllSlidesPanel/PageActionsBar.js.map +0 -1
- package/lib/cjs/components/Panels/AllSlidesPanel/PageItem.js +0 -102
- package/lib/cjs/components/Panels/AllSlidesPanel/PageItem.js.map +0 -1
- package/lib/cjs/components/Panels/AllSlidesPanel/PageItemDragOverlay.js.map +0 -1
- package/lib/cjs/components/Panels/AllSlidesPanel/PageList.js +0 -178
- package/lib/cjs/components/Panels/AllSlidesPanel/PageList.js.map +0 -1
- package/lib/cjs/components/Panels/AllSlidesPanel/PageThumbnailActions.js +0 -95
- package/lib/cjs/components/Panels/AllSlidesPanel/PageThumbnailActions.js.map +0 -1
- package/lib/cjs/components/Panels/AllSlidesPanel/index.js +0 -8
- package/lib/cjs/components/Panels/AllSlidesPanel/index.js.map +0 -1
- package/lib/cjs/components/Settings/Button.js +0 -44
- package/lib/cjs/components/Settings/Button.js.map +0 -1
- package/lib/esm/assets/svg/all_slides.svg.js +0 -21
- package/lib/esm/assets/svg/all_slides.svg.js.map +0 -1
- package/lib/esm/components/Panels/AllSlidesPanel/AllSlidesPanel.js +0 -142
- package/lib/esm/components/Panels/AllSlidesPanel/AllSlidesPanel.js.map +0 -1
- package/lib/esm/components/Panels/AllSlidesPanel/AllSlidesPanelToggler.js +0 -23
- package/lib/esm/components/Panels/AllSlidesPanel/AllSlidesPanelToggler.js.map +0 -1
- package/lib/esm/components/Panels/AllSlidesPanel/PageActionsBar.js +0 -101
- package/lib/esm/components/Panels/AllSlidesPanel/PageActionsBar.js.map +0 -1
- package/lib/esm/components/Panels/AllSlidesPanel/PageItem.js +0 -95
- package/lib/esm/components/Panels/AllSlidesPanel/PageItem.js.map +0 -1
- package/lib/esm/components/Panels/AllSlidesPanel/PageItemDragOverlay.js +0 -48
- package/lib/esm/components/Panels/AllSlidesPanel/PageItemDragOverlay.js.map +0 -1
- package/lib/esm/components/Panels/AllSlidesPanel/PageList.js +0 -172
- package/lib/esm/components/Panels/AllSlidesPanel/PageList.js.map +0 -1
- package/lib/esm/components/Panels/AllSlidesPanel/PageThumbnailActions.js +0 -89
- package/lib/esm/components/Panels/AllSlidesPanel/PageThumbnailActions.js.map +0 -1
- package/lib/esm/components/Panels/AllSlidesPanel/index.js +0 -3
- package/lib/esm/components/Panels/AllSlidesPanel/index.js.map +0 -1
- package/lib/esm/components/Settings/Button.js +0 -38
- package/lib/esm/components/Settings/Button.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sources":["../../../src/utils/hooks.js"],"sourcesContent":["import {\n useEffect,\n useRef,\n useState,\n useMemo,\n useCallback,\n} from 'react';\nimport { getZoomValue } from './functions';\nimport { SharingTextsModule } from '../constants/texts';\nimport { usePropStore } from '../contexts/PropContext';\nimport { useBuilderStore } from '../contexts/BuilderContext';\nimport { usePresentationStore } from '../contexts/PresentationContext';\n\nexport const useStateWithCallback = (initialState, callback) => {\n const [state, setState] = useState(initialState);\n\n useEffect(() => callback(state), [state, callback]);\n\n return [state, setState];\n};\n\nexport const useEventListener = (eventName, handler, element = global) => {\n const savedHandler = useRef();\n\n useEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n\n useEffect(\n () => {\n const isSupported = element && element.addEventListener;\n if (!isSupported) return;\n\n const eventListener = event => savedHandler.current(event);\n element.addEventListener(eventName, eventListener);\n return () => {\n element.removeEventListener(eventName, eventListener);\n };\n },\n [eventName, element],\n );\n};\n\nexport const useInterval = (callback, delay) => {\n const savedCallback = useRef();\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n useEffect(() => {\n function tick() {\n savedCallback.current();\n }\n if (delay !== null) {\n const id = setInterval(tick, delay);\n return () => clearInterval(id);\n }\n }, [delay]);\n};\n\nexport const usePrevious = value => {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n};\n\nexport const usePropState = (propValue, transform = v => v) => {\n const [state, setState] = useState(() => transform(propValue));\n\n useEffect(() => {\n setState(transform(propValue));\n }, [propValue, transform]);\n\n return [state, setState];\n};\n\nexport const useFitZoom = () => {\n const settings = usePropStore(state => state.settings);\n const setZoom = useBuilderStore(state => state.setZoom);\n\n useEffect(() => {\n const newZoom = getZoomValue({\n limitZoom: true,\n settings: {\n reportLayoutHeight: settings.reportLayoutHeight,\n reportLayoutWidth: settings.reportLayoutWidth,\n },\n });\n setZoom(newZoom, settings.reportLayoutWidth);\n }, [\n settings.reportLayoutHeight,\n settings.reportLayoutWidth,\n setZoom,\n ]);\n};\n\nexport const usePageVisibility = (callback, pageCount, selectedPageIndex) => {\n const ratio = useRef({});\n const prevVisiblePageIndex = useRef(-1);\n const pageRefs = useRef([]);\n const observer = useMemo(() => new window.IntersectionObserver(entries => {\n entries.forEach(entry => {\n const order = entry.target.getAttribute('data-order');\n if (entry.intersectionRatio !== 0) {\n ratio.current[order] = entry.intersectionRatio;\n } else {\n delete ratio.current[order];\n }\n });\n const visiblePageIndex = parseInt(\n Object.keys(ratio.current)\n .find(key => ratio.current[key] === Math.max(...Object.values(ratio.current))),\n 10,\n );\n if (visiblePageIndex !== prevVisiblePageIndex.current) {\n prevVisiblePageIndex.current = visiblePageIndex;\n callback(visiblePageIndex);\n }\n },\n {\n delay: 100,\n root: document.querySelector('.jfReport-viewport'),\n threshold: [0, 0.25, 0.5, 0.75, 1],\n }), [callback]);\n\n useEffect(() => {\n ratio.current = {};\n pageRefs.current = document.querySelectorAll('.jfReport-page');\n }, [pageCount]);\n\n useEffect(() => {\n if (selectedPageIndex === -1) {\n pageRefs.current.forEach(page => {\n observer.observe(page);\n });\n }\n\n return () => {\n pageRefs.current.forEach(page => {\n observer.unobserve(page);\n });\n };\n }, [selectedPageIndex, observer]);\n};\n\nexport const useFullscreenChange = (isFullscreen, fitToScreen) => {\n /**\n * All this is just to cover if the user exits fullscreen via ESC key :(\n */\n const onAnEventTrigger = usePropStore(state => state.onAnEventTrigger);\n const setIsFullscreen = usePresentationStore(state => state.setIsFullscreen);\n\n const onFullscreenChange = useCallback(() => {\n if (!(\n document.fullScreen\n || document.mozFullScreen\n || document.webkitIsFullScreen\n )) {\n onAnEventTrigger('clickedFullscreen');\n setIsFullscreen(false);\n fitToScreen(500);\n } else {\n setIsFullscreen(true);\n fitToScreen(600);\n }\n }, [fitToScreen, setIsFullscreen, onAnEventTrigger]);\n\n useEventListener('fullscreenchange', onFullscreenChange);\n useEventListener('webkitfullscreenchange', onFullscreenChange);\n useEventListener('mozfullscreenchange', onFullscreenChange);\n useEventListener('MSFullscreenChange', onFullscreenChange);\n};\n\nexport const useTranslatedTexts = () => {\n return useMemo(() => SharingTextsModule.Texts, []);\n};\n\nexport const useClickOutsideListener = (classes, conditionValue, onClose) => {\n const onClickOutsideForPanel = useCallback(({ target: { classList } }) => {\n const shouldClose = classes.some(c => classList.contains(c));\n if (shouldClose) {\n onClose();\n }\n }, [classes, onClose]);\n\n useEffect(() => {\n if (conditionValue) window.addEventListener('click', onClickOutsideForPanel, false);\n return () => window.removeEventListener('click', onClickOutsideForPanel, false);\n }, [conditionValue, onClickOutsideForPanel]);\n};\n\nexport const usePageTransition = (style, currentPage) => {\n const finalStyle = useMemo(() => {\n switch (style) {\n case 'verticalSlide':\n return { transform: `translateY(-${(currentPage * 100).toString()}%)` };\n case 'scaleAndFade':\n return {};\n case 'rotate':\n return { '-webkit-perspective': 1000 };\n case 'scaleAndSlide':\n case 'horizontalSlide':\n default:\n return { transform: `translateX(-${(currentPage * 100).toString()}%)` };\n }\n }, [style, currentPage]);\n\n return finalStyle;\n};\n\nexport const useSelectedElements = () => {\n const pages = usePropStore(state => state.pages);\n const activeElements = useBuilderStore(state => state.activeElements);\n const acceptedItems = usePropStore(state => state.acceptedItems);\n\n return useMemo(() => {\n if (activeElements.length === 0) return [];\n const items = activeElements.map(itemID => {\n let foundItem = [];\n pages.forEach(page => {\n const item = page.items.find(el => el.id === itemID);\n if (item) {\n foundItem = item;\n }\n });\n const defItem = (acceptedItems[foundItem.itemType] && acceptedItems[foundItem.itemType].defaultItem) || {};\n return { ...defItem, ...foundItem };\n });\n return items;\n }, [pages, activeElements, acceptedItems]);\n};\n"],"names":["useEventListener","eventName","handler","element","global","savedHandler","useRef","useEffect","current","isSupported","addEventListener","eventListener","event","removeEventListener","usePrevious","value","ref","usePropState","propValue","transform","v","useState","state","setState","useFitZoom","settings","usePropStore","setZoom","useBuilderStore","newZoom","getZoomValue","limitZoom","reportLayoutHeight","reportLayoutWidth","usePageVisibility","callback","pageCount","selectedPageIndex","ratio","prevVisiblePageIndex","pageRefs","observer","useMemo","window","IntersectionObserver","entries","forEach","entry","order","target","getAttribute","intersectionRatio","visiblePageIndex","parseInt","Object","keys","find","key","Math","max","values","delay","root","document","querySelector","threshold","querySelectorAll","page","observe","unobserve","useFullscreenChange","isFullscreen","fitToScreen","onAnEventTrigger","setIsFullscreen","usePresentationStore","onFullscreenChange","useCallback","fullScreen","mozFullScreen","webkitIsFullScreen","useTranslatedTexts","SharingTextsModule","Texts","useClickOutsideListener","classes","conditionValue","onClose","onClickOutsideForPanel","classList","shouldClose","some","c","contains","usePageTransition","style","currentPage","finalStyle","toString","useSelectedElements","pages","activeElements","acceptedItems","length","items","map","itemID","foundItem","item","el","id","defItem","itemType","defaultItem"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hooks.js","sources":["../../../src/utils/hooks.js"],"sourcesContent":["import {\n useEffect,\n useRef,\n useState,\n useMemo,\n useCallback,\n} from 'react';\nimport { getZoomValue } from './functions';\nimport { SharingTextsModule } from '../constants/texts';\nimport { usePropStore } from '../contexts/PropContext';\nimport { useBuilderStore } from '../contexts/BuilderContext';\nimport { usePresentationStore } from '../contexts/PresentationContext';\n\nconst INITIAL_ZOOM_MAX = 0.8;\n\nexport const useStateWithCallback = (initialState, callback) => {\n const [state, setState] = useState(initialState);\n\n useEffect(() => callback(state), [state, callback]);\n\n return [state, setState];\n};\n\nexport const useEventListener = (eventName, handler, element = global) => {\n const savedHandler = useRef();\n\n useEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n\n useEffect(\n () => {\n const isSupported = element && element.addEventListener;\n if (!isSupported) return;\n\n const eventListener = event => savedHandler.current(event);\n element.addEventListener(eventName, eventListener);\n return () => {\n element.removeEventListener(eventName, eventListener);\n };\n },\n [eventName, element],\n );\n};\n\nexport const useInterval = (callback, delay) => {\n const savedCallback = useRef();\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n useEffect(() => {\n function tick() {\n savedCallback.current();\n }\n if (delay !== null) {\n const id = setInterval(tick, delay);\n return () => clearInterval(id);\n }\n }, [delay]);\n};\n\nexport const usePrevious = value => {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n};\n\nexport const usePropState = (propValue, transform = v => v) => {\n const [state, setState] = useState(() => transform(propValue));\n\n useEffect(() => {\n setState(transform(propValue));\n }, [propValue, transform]);\n\n return [state, setState];\n};\n\nexport const useFitZoom = () => {\n const settings = usePropStore(state => state.settings);\n const setZoom = useBuilderStore(state => state.setZoom);\n\n useEffect(() => {\n const fitZoom = getZoomValue({\n limitZoom: true,\n settings: {\n reportLayoutHeight: settings.reportLayoutHeight,\n reportLayoutWidth: settings.reportLayoutWidth,\n },\n });\n const newZoom = Math.min(fitZoom, INITIAL_ZOOM_MAX);\n setZoom(newZoom, settings.reportLayoutWidth);\n }, [\n settings.reportLayoutHeight,\n settings.reportLayoutWidth,\n setZoom,\n ]);\n};\n\nexport const usePageVisibility = (callback, pageCount, selectedPageIndex) => {\n const ratio = useRef({});\n const prevVisiblePageIndex = useRef(-1);\n const pageRefs = useRef([]);\n const observer = useMemo(() => new window.IntersectionObserver(entries => {\n entries.forEach(entry => {\n const order = entry.target.getAttribute('data-order');\n if (entry.intersectionRatio !== 0) {\n ratio.current[order] = entry.intersectionRatio;\n } else {\n delete ratio.current[order];\n }\n });\n const visiblePageIndex = parseInt(\n Object.keys(ratio.current)\n .find(key => ratio.current[key] === Math.max(...Object.values(ratio.current))),\n 10,\n );\n if (visiblePageIndex !== prevVisiblePageIndex.current) {\n prevVisiblePageIndex.current = visiblePageIndex;\n callback(visiblePageIndex);\n }\n },\n {\n delay: 100,\n root: document.querySelector('.jfReport-viewport'),\n threshold: [0, 0.25, 0.5, 0.75, 1],\n }), [callback]);\n\n useEffect(() => {\n ratio.current = {};\n pageRefs.current = document.querySelectorAll('.jfReport-page');\n }, [pageCount]);\n\n useEffect(() => {\n if (selectedPageIndex === -1) {\n pageRefs.current.forEach(page => {\n observer.observe(page);\n });\n }\n\n return () => {\n pageRefs.current.forEach(page => {\n observer.unobserve(page);\n });\n };\n }, [selectedPageIndex, observer]);\n};\n\nexport const useFullscreenChange = (isFullscreen, fitToScreen) => {\n /**\n * All this is just to cover if the user exits fullscreen via ESC key :(\n */\n const onAnEventTrigger = usePropStore(state => state.onAnEventTrigger);\n const setIsFullscreen = usePresentationStore(state => state.setIsFullscreen);\n\n const onFullscreenChange = useCallback(() => {\n if (!(\n document.fullScreen\n || document.mozFullScreen\n || document.webkitIsFullScreen\n )) {\n onAnEventTrigger('clickedFullscreen');\n setIsFullscreen(false);\n fitToScreen(500);\n } else {\n setIsFullscreen(true);\n fitToScreen(600);\n }\n }, [fitToScreen, setIsFullscreen, onAnEventTrigger]);\n\n useEventListener('fullscreenchange', onFullscreenChange);\n useEventListener('webkitfullscreenchange', onFullscreenChange);\n useEventListener('mozfullscreenchange', onFullscreenChange);\n useEventListener('MSFullscreenChange', onFullscreenChange);\n};\n\nexport const useTranslatedTexts = () => {\n return useMemo(() => SharingTextsModule.Texts, []);\n};\n\nexport const useClickOutsideListener = (classes, conditionValue, onClose) => {\n const onClickOutsideForPanel = useCallback(({ target: { classList } }) => {\n const shouldClose = classes.some(c => classList.contains(c));\n if (shouldClose) {\n onClose();\n }\n }, [classes, onClose]);\n\n useEffect(() => {\n if (conditionValue) window.addEventListener('click', onClickOutsideForPanel, false);\n return () => window.removeEventListener('click', onClickOutsideForPanel, false);\n }, [conditionValue, onClickOutsideForPanel]);\n};\n\nexport const usePageTransition = (style, currentPage) => {\n const finalStyle = useMemo(() => {\n switch (style) {\n case 'verticalSlide':\n return { transform: `translateY(-${(currentPage * 100).toString()}%)` };\n case 'scaleAndFade':\n return {};\n case 'rotate':\n return { '-webkit-perspective': 1000 };\n case 'scaleAndSlide':\n case 'horizontalSlide':\n default:\n return { transform: `translateX(-${(currentPage * 100).toString()}%)` };\n }\n }, [style, currentPage]);\n\n return finalStyle;\n};\n\nexport const useSelectedElements = () => {\n const pages = usePropStore(state => state.pages);\n const activeElements = useBuilderStore(state => state.activeElements);\n const acceptedItems = usePropStore(state => state.acceptedItems);\n\n return useMemo(() => {\n if (activeElements.length === 0) return [];\n const items = activeElements.map(itemID => {\n let foundItem = [];\n pages.forEach(page => {\n const item = page.items.find(el => el.id === itemID);\n if (item) {\n foundItem = item;\n }\n });\n const defItem = (acceptedItems[foundItem.itemType] && acceptedItems[foundItem.itemType].defaultItem) || {};\n return { ...defItem, ...foundItem };\n });\n return items;\n }, [pages, activeElements, acceptedItems]);\n};\n"],"names":["INITIAL_ZOOM_MAX","useEventListener","eventName","handler","element","global","savedHandler","useRef","useEffect","current","isSupported","addEventListener","eventListener","event","removeEventListener","usePrevious","value","ref","usePropState","propValue","transform","v","useState","state","setState","useFitZoom","settings","usePropStore","setZoom","useBuilderStore","fitZoom","getZoomValue","limitZoom","reportLayoutHeight","reportLayoutWidth","newZoom","Math","min","usePageVisibility","callback","pageCount","selectedPageIndex","ratio","prevVisiblePageIndex","pageRefs","observer","useMemo","window","IntersectionObserver","entries","forEach","entry","order","target","getAttribute","intersectionRatio","visiblePageIndex","parseInt","Object","keys","find","key","max","values","delay","root","document","querySelector","threshold","querySelectorAll","page","observe","unobserve","useFullscreenChange","isFullscreen","fitToScreen","onAnEventTrigger","setIsFullscreen","usePresentationStore","onFullscreenChange","useCallback","fullScreen","mozFullScreen","webkitIsFullScreen","useTranslatedTexts","SharingTextsModule","Texts","useClickOutsideListener","classes","conditionValue","onClose","onClickOutsideForPanel","classList","shouldClose","some","c","contains","usePageTransition","style","currentPage","finalStyle","toString","useSelectedElements","pages","activeElements","acceptedItems","length","items","map","itemID","foundItem","item","el","id","defItem","itemType","defaultItem"],"mappings":"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"}
|
package/lib/cjs/utils/icons.js
CHANGED
|
@@ -9,7 +9,6 @@ var close = require('../assets/svg/close.svg.js');
|
|
|
9
9
|
var rotate = require('../assets/svg/rotate.svg.js');
|
|
10
10
|
var customize = require('../assets/svg/customize.svg.js');
|
|
11
11
|
var slides = require('../assets/svg/slides.svg.js');
|
|
12
|
-
var all_slides = require('../assets/svg/all_slides.svg.js');
|
|
13
12
|
var settings_toggle = require('../assets/svg/settings_toggle.svg.js');
|
|
14
13
|
var header = require('../assets/svg/toolbox/header.svg.js');
|
|
15
14
|
var icon = require('../assets/svg/toolbox/icon.svg.js');
|
|
@@ -96,7 +95,6 @@ exports.close = close;
|
|
|
96
95
|
exports.rotate = rotate;
|
|
97
96
|
exports.customize = customize;
|
|
98
97
|
exports.slides = slides;
|
|
99
|
-
exports.allSlides = all_slides;
|
|
100
98
|
exports.settingsToggle = settings_toggle;
|
|
101
99
|
exports.header = header;
|
|
102
100
|
exports.icon = icon;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icons.js","sources":["../../../src/utils/icons.js"],"sourcesContent":["// General //\n\nexport { default as down } from '../assets/svg/arrow_down.svg';\nexport { default as drag } from '../assets/svg/settings/drag.svg';\nexport { default as trash } from '../assets/svg/trash.svg';\nexport { default as close } from '../assets/svg/close.svg';\nexport { default as rotate } from '../assets/svg/rotate.svg';\nexport { default as customize } from '../assets/svg/customize.svg';\nexport { default as slides } from '../assets/svg/slides.svg';\nexport { default as
|
|
1
|
+
{"version":3,"file":"icons.js","sources":["../../../src/utils/icons.js"],"sourcesContent":["// General //\n\nexport { default as down } from '../assets/svg/arrow_down.svg';\nexport { default as drag } from '../assets/svg/settings/drag.svg';\nexport { default as trash } from '../assets/svg/trash.svg';\nexport { default as close } from '../assets/svg/close.svg';\nexport { default as rotate } from '../assets/svg/rotate.svg';\nexport { default as customize } from '../assets/svg/customize.svg';\nexport { default as slides } from '../assets/svg/slides.svg';\nexport { default as settingsToggle } from '../assets/svg/settings_toggle.svg';\n\n// Elements //\n\nexport { default as header } from '../assets/svg/toolbox/header.svg';\nexport { default as icon } from '../assets/svg/toolbox/icon.svg';\nexport { default as image } from '../assets/svg/toolbox/image.svg';\nexport { default as label } from '../assets/svg/toolbox/label.svg';\nexport { default as shapes } from '../assets/svg/toolbox/shapes.svg';\nexport { default as table } from '../assets/svg/toolbox/table.svg';\nexport { default as textElement } from '../assets/svg/toolbox/text_element.svg';\nexport { default as text } from '../assets/svg/toolbox/text.svg';\nexport { default as star } from '../assets/svg/toolbox/star.svg';\nexport { default as email } from '../assets/svg/toolbox/email.svg';\nexport { default as singleChoice } from '../assets/svg/toolbox/single_choice.svg';\nexport { default as multipleChoice } from '../assets/svg/toolbox/multiple_choice.svg';\nexport { default as lock } from '../assets/svg/settings/lock.svg';\nexport { default as unlock } from '../assets/svg/settings/unlock.svg';\n\n// Settings //\n\nexport { default as bold } from '../assets/svg/settings/font_bold.svg';\nexport { default as italic } from '../assets/svg/settings/font_italic.svg';\nexport { default as underline } from '../assets/svg/settings/font_underline.svg';\nexport { default as alignLeft } from '../assets/svg/settings/align_left.svg';\nexport { default as alignCenter } from '../assets/svg/settings/align_center.svg';\nexport { default as alignRight } from '../assets/svg/settings/align_right.svg';\n\n// Chart Settings //\n\nexport { default as pie } from '../assets/svg/settings/chart_pie.svg';\nexport { default as bar } from '../assets/svg/settings/chart_bar.svg';\nexport { default as line } from '../assets/svg/settings/chart_line.svg';\nexport { default as basic } from '../assets/svg/settings/chart_basic.svg';\nexport { default as donut } from '../assets/svg/settings/chart_donut.svg';\nexport { default as grid } from '../assets/svg/settings/chart_grid.svg';\nexport { default as textGrid } from '../assets/svg/settings/chart_textGrid.svg';\nexport { default as column } from '../assets/svg/settings/chart_column.svg';\nexport { default as layout } from '../assets/svg/settings/layout.svg';\nexport { default as starRating } from '../assets/svg/star_rating.svg';\nexport { default as heartRating } from '../assets/svg/heart_rating.svg';\n\n// Shape Settings //\n\nexport { default as rectangleIcon } from '../assets/svg/settings/rectangle.svg';\nexport { default as ellipseIcon } from '../assets/svg/settings/ellipse.svg';\nexport { default as triangleIcon } from '../assets/svg/settings/triangle.svg';\nexport { default as starIcon } from '../assets/svg/settings/star.svg';\nexport { default as lineIcon } from '../assets/svg/settings/line.svg';\n\n// Element Menu //\n\nexport { default as duplicate } from '../assets/svg/duplicate.svg';\nexport { default as settings } from '../assets/svg/settings.svg';\n\n// Page Menu //\n\nexport { default as arrowDown } from '../assets/svg/arrow_down.svg';\nexport { default as arrowUp } from '../assets/svg/arrow_up.svg';\nexport { default as arrowLeft } from '../assets/svg/arrow_left.svg';\nexport { default as arrowRight } from '../assets/svg/arrow_right.svg';\nexport { default as angleDown } from '../assets/svg/angle_down.svg';\nexport { default as angleUp } from '../assets/svg/angle_up.svg';\nexport { default as angleLeft } from '../assets/svg/angle_left.svg';\nexport { default as angleRight } from '../assets/svg/angle_right.svg';\nexport { default as duplicateLine } from '../assets/svg/page-actions/duplicate_line.svg';\nexport { default as plus } from '../assets/svg/plus.svg';\nexport { default as minus } from '../assets/svg/minus.svg';\nexport { default as trashLine } from '../assets/svg/page-actions/trash_line.svg';\nexport { default as pageSettings } from '../assets/svg/page_settings.svg';\n\n// Context Menu //\n\nexport { default as moveToFront } from '../assets/svg/contextmenu/moveToFront.svg';\nexport { default as moveToForward } from '../assets/svg/contextmenu/moveToForward.svg';\nexport { default as moveToBackward } from '../assets/svg/contextmenu/moveToBackward.svg';\nexport { default as moveToBack } from '../assets/svg/contextmenu/moveToBack.svg';\n\n// Presentation //\n\nexport { default as print } from '../assets/svg/presentation/print.svg';\nexport { default as download } from '../assets/svg/presentation/download.svg';\nexport { default as play } from '../assets/svg/presentation/play.svg';\nexport { default as enterFullscreen } from '../assets/svg/presentation/enter_fullscreen.svg';\nexport { default as exitFullscreen } from '../assets/svg/presentation/exit_fullscreen.svg';\nexport { default as pause } from '../assets/svg/presentation/pause.svg';\nexport { default as share } from '../assets/svg/presentation/share.svg';\nexport { default as attachment } from '../assets/svg/presentation/attachment.svg';\nexport { default as pen } from '../assets/svg/presentation/pen.svg';\n\n// Password Modal //\n\nexport { default as key } from '../assets/svg/presentation/key.svg';\nexport { default as eye } from '../assets/svg/presentation/eye.svg';\n\n// Placeholder //\n\nexport { default as piePlaceholder } from '../assets/svg/placeholder/pie.svg';\nexport { default as barPlaceholder } from '../assets/svg/placeholder/bar.svg';\nexport { default as linePlaceholder } from '../assets/svg/placeholder/bar.svg';\nexport { default as columnPlaceholder } from '../assets/svg/placeholder/column.svg';\nexport { default as basicPlaceholder } from '../assets/svg/placeholder/basic.svg';\nexport { default as donutPlaceholder } from '../assets/svg/placeholder/donut.svg';\nexport { default as textGridPlaceholder } from '../assets/svg/placeholder/grid.svg';\n\n// Placeholder //\n\n// Zoom //\n\nexport { default as fit } from '../assets/svg/fit_screen.svg';\n\n// Zoom //\n\n// Loading //\nexport { default as loadingCircle } from '../assets/svg/loading_circle.svg';\n\n// Error Boundary //\n\nexport { default as exclamationIcon } from '../assets/svg/exclamation.svg';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -4,7 +4,6 @@ import Scene from './Scene.js';
|
|
|
4
4
|
import RightPanel from '../Panels/RightPanel/RightPanel.js';
|
|
5
5
|
import LeftPanel from '../Panels/LeftPanel/LeftPanel.js';
|
|
6
6
|
import SlidesPanel from '../Panels/SlidesPanel/SlidesPanel.js';
|
|
7
|
-
import AllSlidesPanel from '../Panels/AllSlidesPanel/AllSlidesPanel.js';
|
|
8
7
|
import { leftPanelConfigPropType } from '../../constants/propTypes.js';
|
|
9
8
|
import '../../styles/jfReportsBundle.scss';
|
|
10
9
|
import BuilderWrapper from './BuilderWrapper.js';
|
|
@@ -18,14 +17,13 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
18
17
|
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; }
|
|
19
18
|
|
|
20
19
|
var Builder = function Builder(props) {
|
|
21
|
-
var useExperimentalFeatures = props.useExperimentalFeatures;
|
|
22
20
|
return /*#__PURE__*/jsx(Providers, _objectSpread(_objectSpread({
|
|
23
21
|
mode: "customize"
|
|
24
22
|
}, props), {}, {
|
|
25
23
|
children: /*#__PURE__*/jsxs(BuilderWrapper, {
|
|
26
24
|
children: [/*#__PURE__*/jsxs(DndWrapper, {
|
|
27
25
|
children: [/*#__PURE__*/jsx(LeftPanel, {}), /*#__PURE__*/jsx(Scene, {})]
|
|
28
|
-
}), /*#__PURE__*/jsx(RightPanel, {}), /*#__PURE__*/jsx(SlidesPanel, {})
|
|
26
|
+
}), /*#__PURE__*/jsx(RightPanel, {}), /*#__PURE__*/jsx(SlidesPanel, {})]
|
|
29
27
|
})
|
|
30
28
|
}));
|
|
31
29
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Builder.js","sources":["../../../../src/components/Builder/Builder.js"],"sourcesContent":["import PropTypes from 'prop-types';\nimport DndWrapper from './DndWrapper';\nimport Scene from './Scene';\nimport RightPanel from '../Panels/RightPanel';\nimport LeftPanel from '../Panels/LeftPanel';\nimport SlidesPanel from '../Panels/SlidesPanel';\nimport
|
|
1
|
+
{"version":3,"file":"Builder.js","sources":["../../../../src/components/Builder/Builder.js"],"sourcesContent":["import PropTypes from 'prop-types';\nimport DndWrapper from './DndWrapper';\nimport Scene from './Scene';\nimport RightPanel from '../Panels/RightPanel';\nimport LeftPanel from '../Panels/LeftPanel';\nimport SlidesPanel from '../Panels/SlidesPanel';\nimport { leftPanelConfigPropType } from '../../constants/propTypes';\nimport '../../styles/jfReportsBundle.scss';\nimport BuilderWrapper from './BuilderWrapper';\nimport Providers from '../../contexts/Providers';\n\nconst Builder = props => {\n return (\n <Providers\n mode=\"customize\"\n {...props}\n >\n <BuilderWrapper>\n <DndWrapper>\n <LeftPanel />\n <Scene />\n </DndWrapper>\n <RightPanel />\n <SlidesPanel />\n </BuilderWrapper>\n </Providers>\n\n );\n};\n\nBuilder.propTypes = {\n /** Items for to render in the report */\n acceptedItems: PropTypes.shape({}),\n /** Array of React components to render statically on each page (eg. watermark) */\n additionalPageItems: PropTypes.arrayOf(PropTypes.node),\n /** CSS selectors ignored by right panel click-outside logic */\n clickOutsideIgnoreSelectors: PropTypes.arrayOf(PropTypes.string),\n disableInteraction: PropTypes.arrayOf(PropTypes.string),\n /** To pass in extra props to items selectively */\n itemAccessor: PropTypes.func,\n /** Last scroll position */\n lastScrollPosition: PropTypes.number,\n leftPanelConfig: leftPanelConfigPropType,\n /** To track and log user actions */\n onAnEventTrigger: PropTypes.func,\n /** Function called upon adding an item */\n onItemAdd: PropTypes.func,\n /** Function called upon editing an item */\n onItemChange: PropTypes.func,\n /** Function called upon moving an item */\n onItemMove: PropTypes.func,\n /** Function called upon removing an item */\n onItemRemove: PropTypes.func,\n /** Function called upon resizing an item */\n onItemResize: PropTypes.func,\n onItemsMove: PropTypes.func,\n /** Function called upon adding a page */\n onPageAdd: PropTypes.func,\n /** Function called upon editing a page */\n onPageChange: PropTypes.func,\n /** Function called upon duplicating a page */\n onPageDuplicate: PropTypes.func,\n /** Function called upon reordering pages */\n onPageOrdersChange: PropTypes.func,\n /** Function called upon removing a page */\n onPageRemove: PropTypes.func,\n /** Function called upon page visibility changed */\n onPageVisibilityChanged: PropTypes.func,\n /** Function called when the slides or the right panel is\n * toggled takes a boolean value to indicate whether or\n * not the panel is toggled open.\n */\n onRightPanelsToggled: PropTypes.func,\n /** Function called upon selecting items */\n onSelectedItemsChanged: PropTypes.func,\n /** Function called upon editing a general report setting */\n onSettingChange: PropTypes.func,\n /** Array of pages with their settings and items */\n pages: PropTypes.arrayOf(\n PropTypes.shape({}),\n ),\n /** General report settings such as layout size and background color */\n settings: PropTypes.shape({}),\n /** Theme */\n theme: PropTypes.oneOf(['lightMode', 'darkMode']),\n useExperimentalFeatures: PropTypes.bool,\n};\n\nexport default Builder;\n"],"names":["Builder","props","_jsx","_jsxs","propTypes","acceptedItems","PropTypes","shape","additionalPageItems","arrayOf","node","clickOutsideIgnoreSelectors","string","disableInteraction","itemAccessor","func","lastScrollPosition","number","leftPanelConfig","leftPanelConfigPropType","onAnEventTrigger","onItemAdd","onItemChange","onItemMove","onItemRemove","onItemResize","onItemsMove","onPageAdd","onPageChange","onPageDuplicate","onPageOrdersChange","onPageRemove","onPageVisibilityChanged","onRightPanelsToggled","onSelectedItemsChanged","onSettingChange","pages","settings","theme","oneOf","useExperimentalFeatures","bool"],"mappings":";;;;;;;;;;;;;;;;;;IAWMA,OAAO,GAAG,SAAVA,OAAU,CAAAC,KAAK,EAAI;AACvB,sBACEC,IAAC,SAAD;AACE,IAAA,IAAI,EAAC;AADP,KAEMD,KAFN;AAAA,2BAIEE,KAAC,cAAD;AAAA,8BACEA,KAAC,UAAD;AAAA,gCACED,IAAC,SAAD,KADF,eAEEA,IAAC,KAAD,KAFF;AAAA,QADF,eAKEA,IAAC,UAAD,KALF,eAMEA,IAAC,WAAD,KANF;AAAA;AAJF,KADF;AAgBD;;AAEDF,OAAO,CAACI,SAAR,GAAoB;AAClB;AACAC,EAAAA,aAAa,EAAEC,SAAS,CAACC,KAAV,CAAgB,EAAhB,CAFG;;AAGlB;AACAC,EAAAA,mBAAmB,EAAEF,SAAS,CAACG,OAAV,CAAkBH,SAAS,CAACI,IAA5B,CAJH;;AAKlB;AACAC,EAAAA,2BAA2B,EAAEL,SAAS,CAACG,OAAV,CAAkBH,SAAS,CAACM,MAA5B,CANX;AAOlBC,EAAAA,kBAAkB,EAAEP,SAAS,CAACG,OAAV,CAAkBH,SAAS,CAACM,MAA5B,CAPF;;AAQlB;AACAE,EAAAA,YAAY,EAAER,SAAS,CAACS,IATN;;AAUlB;AACAC,EAAAA,kBAAkB,EAAEV,SAAS,CAACW,MAXZ;AAYlBC,EAAAA,eAAe,EAAEC,uBAZC;;AAalB;AACAC,EAAAA,gBAAgB,EAAEd,SAAS,CAACS,IAdV;;AAelB;AACAM,EAAAA,SAAS,EAAEf,SAAS,CAACS,IAhBH;;AAiBlB;AACAO,EAAAA,YAAY,EAAEhB,SAAS,CAACS,IAlBN;;AAmBlB;AACAQ,EAAAA,UAAU,EAAEjB,SAAS,CAACS,IApBJ;;AAqBlB;AACAS,EAAAA,YAAY,EAAElB,SAAS,CAACS,IAtBN;;AAuBlB;AACAU,EAAAA,YAAY,EAAEnB,SAAS,CAACS,IAxBN;AAyBlBW,EAAAA,WAAW,EAAEpB,SAAS,CAACS,IAzBL;;AA0BlB;AACAY,EAAAA,SAAS,EAAErB,SAAS,CAACS,IA3BH;;AA4BlB;AACAa,EAAAA,YAAY,EAAEtB,SAAS,CAACS,IA7BN;;AA8BlB;AACAc,EAAAA,eAAe,EAAEvB,SAAS,CAACS,IA/BT;;AAgClB;AACAe,EAAAA,kBAAkB,EAAExB,SAAS,CAACS,IAjCZ;;AAkClB;AACAgB,EAAAA,YAAY,EAAEzB,SAAS,CAACS,IAnCN;;AAoClB;AACAiB,EAAAA,uBAAuB,EAAE1B,SAAS,CAACS,IArCjB;;AAsClB;AACF;AACA;AACA;AACEkB,EAAAA,oBAAoB,EAAE3B,SAAS,CAACS,IA1Cd;;AA2ClB;AACAmB,EAAAA,sBAAsB,EAAE5B,SAAS,CAACS,IA5ChB;;AA6ClB;AACAoB,EAAAA,eAAe,EAAE7B,SAAS,CAACS,IA9CT;;AA+ClB;AACAqB,EAAAA,KAAK,EAAE9B,SAAS,CAACG,OAAV,CACLH,SAAS,CAACC,KAAV,CAAgB,EAAhB,CADK,CAhDW;;AAmDlB;AACA8B,EAAAA,QAAQ,EAAE/B,SAAS,CAACC,KAAV,CAAgB,EAAhB,CApDQ;;AAqDlB;AACA+B,EAAAA,KAAK,EAAEhC,SAAS,CAACiC,KAAV,CAAgB,CAAC,WAAD,EAAc,UAAd,CAAhB,CAtDW;AAuDlBC,EAAAA,uBAAuB,EAAElC,SAAS,CAACmC;AAvDjB,CAApB;;;;"}
|
|
@@ -7,7 +7,9 @@ import ReportWrapper from '../ReportWrapper.js';
|
|
|
7
7
|
import { usePropStore } from '../../contexts/PropContext.js';
|
|
8
8
|
import { useBuilderStore } from '../../contexts/BuilderContext.js';
|
|
9
9
|
import { useSelectedElements, usePrevious, usePageVisibility, useFitZoom } from '../../utils/hooks.js';
|
|
10
|
-
import
|
|
10
|
+
import SlidesNavigator from '../Panels/SlidesNavigator/SlidesNavigator.js';
|
|
11
|
+
import { slidesAsNavigator } from '../../utils/functions.js';
|
|
12
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
11
13
|
|
|
12
14
|
var BuilderWrapper = function BuilderWrapper(_ref) {
|
|
13
15
|
var children = _ref.children;
|
|
@@ -21,12 +23,18 @@ var BuilderWrapper = function BuilderWrapper(_ref) {
|
|
|
21
23
|
var isSlidesPanelOpen = useBuilderStore(function (state) {
|
|
22
24
|
return state.isSlidesPanelOpen;
|
|
23
25
|
});
|
|
26
|
+
var isSlidesNavigatorOpen = useBuilderStore(function (state) {
|
|
27
|
+
return state.isSlidesNavigatorOpen;
|
|
28
|
+
});
|
|
24
29
|
var setIsLeftPanelOpen = useBuilderStore(function (state) {
|
|
25
30
|
return state.setIsLeftPanelOpen;
|
|
26
31
|
});
|
|
27
32
|
var setIsSlidesPanelOpen = useBuilderStore(function (state) {
|
|
28
33
|
return state.setIsSlidesPanelOpen;
|
|
29
34
|
});
|
|
35
|
+
var setIsSlidesNavigatorOpen = useBuilderStore(function (state) {
|
|
36
|
+
return state.setIsSlidesNavigatorOpen;
|
|
37
|
+
});
|
|
30
38
|
var shouldShowRightPanelInitially = useBuilderStore(function (state) {
|
|
31
39
|
return state.shouldShowRightPanelInitially;
|
|
32
40
|
});
|
|
@@ -36,6 +44,12 @@ var BuilderWrapper = function BuilderWrapper(_ref) {
|
|
|
36
44
|
var onPageVisibilityChanged = usePropStore(function (state) {
|
|
37
45
|
return state.onPageVisibilityChanged;
|
|
38
46
|
});
|
|
47
|
+
var setVisiblePageOrder = useBuilderStore(function (state) {
|
|
48
|
+
return state.setVisiblePageOrder;
|
|
49
|
+
});
|
|
50
|
+
var slidesListType = useBuilderStore(function (state) {
|
|
51
|
+
return state.slidesListType;
|
|
52
|
+
});
|
|
39
53
|
var selectedItems = useSelectedElements();
|
|
40
54
|
var prevSelectedItems = usePrevious(selectedItems);
|
|
41
55
|
useEffect(function () {
|
|
@@ -45,13 +59,19 @@ var BuilderWrapper = function BuilderWrapper(_ref) {
|
|
|
45
59
|
}, [selectedItems, onSelectedItemsChanged, prevSelectedItems]);
|
|
46
60
|
var handlePageVisibility = useCallback(function (index) {
|
|
47
61
|
if (index && !Number.isNaN(index)) {
|
|
62
|
+
setVisiblePageOrder(index);
|
|
48
63
|
onPageVisibilityChanged(index);
|
|
49
64
|
}
|
|
50
|
-
}, [onPageVisibilityChanged]); // for initial page visibility check and slides panel visibility usage
|
|
65
|
+
}, [setVisiblePageOrder, onPageVisibilityChanged]); // for initial page visibility check and slides panel visibility usage
|
|
51
66
|
|
|
52
67
|
var selectedPageIndexReference = isSlidesPanelOpen ? 0 : -1;
|
|
53
68
|
usePageVisibility(handlePageVisibility, pageCount, selectedPageIndexReference);
|
|
54
69
|
useFitZoom();
|
|
70
|
+
useEffect(function () {
|
|
71
|
+
if (slidesAsNavigator(slidesListType)) {
|
|
72
|
+
setIsSlidesNavigatorOpen(true);
|
|
73
|
+
}
|
|
74
|
+
}, [slidesListType, setIsSlidesNavigatorOpen]);
|
|
55
75
|
useEffect(function () {
|
|
56
76
|
if (!decidedWhichPanelToOpen.current) {
|
|
57
77
|
if (pageCount > 1) {
|
|
@@ -70,10 +90,12 @@ var BuilderWrapper = function BuilderWrapper(_ref) {
|
|
|
70
90
|
|
|
71
91
|
decidedWhichPanelToOpen.current = true;
|
|
72
92
|
}
|
|
73
|
-
}, [pageCount, isLeftPanelOpen, isSlidesPanelOpen, setIsLeftPanelOpen, setIsSlidesPanelOpen, shouldShowRightPanelInitially]);
|
|
74
|
-
return /*#__PURE__*/
|
|
75
|
-
|
|
76
|
-
|
|
93
|
+
}, [pageCount, isLeftPanelOpen, isSlidesPanelOpen, isSlidesNavigatorOpen, setIsLeftPanelOpen, setIsSlidesPanelOpen, setIsSlidesNavigatorOpen, shouldShowRightPanelInitially]);
|
|
94
|
+
return /*#__PURE__*/jsxs(Fragment, {
|
|
95
|
+
children: [slidesAsNavigator(slidesListType) && /*#__PURE__*/jsx(SlidesNavigator, {}), /*#__PURE__*/jsx(ReportWrapper, {
|
|
96
|
+
mode: "customize",
|
|
97
|
+
children: children
|
|
98
|
+
})]
|
|
77
99
|
});
|
|
78
100
|
};
|
|
79
101
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BuilderWrapper.js","sources":["../../../../src/components/Builder/BuilderWrapper.js"],"sourcesContent":["import { useCallback, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport isEqual from 'lodash.isequal';\nimport ReportWrapper from '../ReportWrapper';\nimport { usePropStore } from '../../contexts/PropContext';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport {\n useFitZoom, usePageVisibility, usePrevious, useSelectedElements,\n} from '../../utils/hooks';\n\nconst BuilderWrapper = ({ children }) => {\n const decidedWhichPanelToOpen = useRef(false);\n\n const pageCount = usePropStore(state => state.pages.length);\n const isLeftPanelOpen = useBuilderStore(state => state.isLeftPanelOpen);\n const isSlidesPanelOpen = useBuilderStore(state => state.isSlidesPanelOpen);\n const setIsLeftPanelOpen = useBuilderStore(state => state.setIsLeftPanelOpen);\n const setIsSlidesPanelOpen = useBuilderStore(state => state.setIsSlidesPanelOpen);\n const shouldShowRightPanelInitially = useBuilderStore(state => state.shouldShowRightPanelInitially);\n const onSelectedItemsChanged = usePropStore(state => state.onSelectedItemsChanged);\n const onPageVisibilityChanged = usePropStore(state => state.onPageVisibilityChanged);\n const selectedItems = useSelectedElements();\n const prevSelectedItems = usePrevious(selectedItems);\n\n useEffect(() => {\n if (prevSelectedItems && !isEqual(prevSelectedItems, selectedItems)) {\n onSelectedItemsChanged(selectedItems);\n }\n }, [\n selectedItems,\n onSelectedItemsChanged,\n prevSelectedItems,\n ]);\n\n const handlePageVisibility = useCallback(index => {\n if (index && !Number.isNaN(index)) {\n onPageVisibilityChanged(index);\n }\n }, [onPageVisibilityChanged]);\n\n // for initial page visibility check and slides panel visibility usage\n const selectedPageIndexReference = isSlidesPanelOpen ? 0 : -1;\n usePageVisibility(handlePageVisibility, pageCount, selectedPageIndexReference);\n\n useFitZoom();\n\n useEffect(() => {\n if (!decidedWhichPanelToOpen.current) {\n if (pageCount > 1) {\n if (isLeftPanelOpen) {\n setIsLeftPanelOpen(false);\n }\n setIsSlidesPanelOpen(shouldShowRightPanelInitially);\n } else {\n if (isSlidesPanelOpen) {\n setIsSlidesPanelOpen(false);\n }\n setIsLeftPanelOpen(true);\n }\n\n decidedWhichPanelToOpen.current = true;\n }\n }, [\n pageCount,\n isLeftPanelOpen,\n isSlidesPanelOpen,\n setIsLeftPanelOpen,\n setIsSlidesPanelOpen,\n shouldShowRightPanelInitially,\n ]);\n\n return (\n <ReportWrapper mode=\"customize\">\n
|
|
1
|
+
{"version":3,"file":"BuilderWrapper.js","sources":["../../../../src/components/Builder/BuilderWrapper.js"],"sourcesContent":["import { useCallback, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport isEqual from 'lodash.isequal';\nimport ReportWrapper from '../ReportWrapper';\nimport { usePropStore } from '../../contexts/PropContext';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport {\n useFitZoom, usePageVisibility, usePrevious, useSelectedElements,\n} from '../../utils/hooks';\nimport SlidesNavigator from '../Panels/SlidesNavigator/SlidesNavigator';\nimport { slidesAsNavigator } from '../../utils/functions';\n\nconst BuilderWrapper = ({ children }) => {\n const decidedWhichPanelToOpen = useRef(false);\n\n const pageCount = usePropStore(state => state.pages.length);\n const isLeftPanelOpen = useBuilderStore(state => state.isLeftPanelOpen);\n const isSlidesPanelOpen = useBuilderStore(state => state.isSlidesPanelOpen);\n const isSlidesNavigatorOpen = useBuilderStore(state => state.isSlidesNavigatorOpen);\n const setIsLeftPanelOpen = useBuilderStore(state => state.setIsLeftPanelOpen);\n const setIsSlidesPanelOpen = useBuilderStore(state => state.setIsSlidesPanelOpen);\n const setIsSlidesNavigatorOpen = useBuilderStore(state => state.setIsSlidesNavigatorOpen);\n const shouldShowRightPanelInitially = useBuilderStore(state => state.shouldShowRightPanelInitially);\n const onSelectedItemsChanged = usePropStore(state => state.onSelectedItemsChanged);\n const onPageVisibilityChanged = usePropStore(state => state.onPageVisibilityChanged);\n const setVisiblePageOrder = useBuilderStore(state => state.setVisiblePageOrder);\n const slidesListType = useBuilderStore(state => state.slidesListType);\n const selectedItems = useSelectedElements();\n const prevSelectedItems = usePrevious(selectedItems);\n\n useEffect(() => {\n if (prevSelectedItems && !isEqual(prevSelectedItems, selectedItems)) {\n onSelectedItemsChanged(selectedItems);\n }\n }, [\n selectedItems,\n onSelectedItemsChanged,\n prevSelectedItems,\n ]);\n\n const handlePageVisibility = useCallback(index => {\n if (index && !Number.isNaN(index)) {\n setVisiblePageOrder(index);\n onPageVisibilityChanged(index);\n }\n }, [setVisiblePageOrder, onPageVisibilityChanged]);\n\n // for initial page visibility check and slides panel visibility usage\n const selectedPageIndexReference = isSlidesPanelOpen ? 0 : -1;\n usePageVisibility(handlePageVisibility, pageCount, selectedPageIndexReference);\n\n useFitZoom();\n\n useEffect(() => {\n if (slidesAsNavigator(slidesListType)) {\n setIsSlidesNavigatorOpen(true);\n }\n }, [slidesListType, setIsSlidesNavigatorOpen]);\n\n useEffect(() => {\n if (!decidedWhichPanelToOpen.current) {\n if (pageCount > 1) {\n if (isLeftPanelOpen) {\n setIsLeftPanelOpen(false);\n }\n setIsSlidesPanelOpen(shouldShowRightPanelInitially);\n } else {\n if (isSlidesPanelOpen) {\n setIsSlidesPanelOpen(false);\n }\n setIsLeftPanelOpen(true);\n }\n\n decidedWhichPanelToOpen.current = true;\n }\n }, [\n pageCount,\n isLeftPanelOpen,\n isSlidesPanelOpen,\n isSlidesNavigatorOpen,\n setIsLeftPanelOpen,\n setIsSlidesPanelOpen,\n setIsSlidesNavigatorOpen,\n shouldShowRightPanelInitially,\n ]);\n\n return (\n <>\n {slidesAsNavigator(slidesListType) && <SlidesNavigator />}\n <ReportWrapper mode=\"customize\">\n {children}\n </ReportWrapper>\n </>\n );\n};\n\nBuilderWrapper.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default BuilderWrapper;\n"],"names":["BuilderWrapper","children","decidedWhichPanelToOpen","useRef","pageCount","usePropStore","state","pages","length","isLeftPanelOpen","useBuilderStore","isSlidesPanelOpen","isSlidesNavigatorOpen","setIsLeftPanelOpen","setIsSlidesPanelOpen","setIsSlidesNavigatorOpen","shouldShowRightPanelInitially","onSelectedItemsChanged","onPageVisibilityChanged","setVisiblePageOrder","slidesListType","selectedItems","useSelectedElements","prevSelectedItems","usePrevious","useEffect","isEqual","handlePageVisibility","useCallback","index","Number","isNaN","selectedPageIndexReference","usePageVisibility","useFitZoom","slidesAsNavigator","current","_jsxs","_jsx","propTypes","PropTypes","node","isRequired"],"mappings":"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"}
|
|
@@ -2,16 +2,14 @@ import 'core-js/modules/es.array.find.js';
|
|
|
2
2
|
import 'core-js/modules/es.array.find-index.js';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
4
|
import { useMemo } from 'react';
|
|
5
|
-
import {
|
|
5
|
+
import { scrollToTarget } from '../../utils/functions.js';
|
|
6
6
|
import { useSelectedElements, useTranslatedTexts } from '../../utils/hooks.js';
|
|
7
7
|
import { useBuilderStore } from '../../contexts/BuilderContext.js';
|
|
8
8
|
import { usePropStore } from '../../contexts/PropContext.js';
|
|
9
|
-
import {
|
|
9
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
10
10
|
import SvgPageSettings from '../../assets/svg/page_settings.svg.js';
|
|
11
11
|
import SvgDuplicate from '../../assets/svg/duplicate.svg.js';
|
|
12
12
|
import SvgTrash from '../../assets/svg/trash.svg.js';
|
|
13
|
-
import SvgAngleUp from '../../assets/svg/angle_up.svg.js';
|
|
14
|
-
import SvgAngleDown from '../../assets/svg/angle_down.svg.js';
|
|
15
13
|
import SvgPlus from '../../assets/svg/plus.svg.js';
|
|
16
14
|
|
|
17
15
|
var PageActions = function PageActions(_ref) {
|
|
@@ -22,7 +20,7 @@ var PageActions = function PageActions(_ref) {
|
|
|
22
20
|
var pages = usePropStore(function (state) {
|
|
23
21
|
return state.pages;
|
|
24
22
|
});
|
|
25
|
-
|
|
23
|
+
pages.length;
|
|
26
24
|
var onAnEventTrigger = usePropStore(function (state) {
|
|
27
25
|
return state.onAnEventTrigger;
|
|
28
26
|
});
|
|
@@ -32,7 +30,7 @@ var PageActions = function PageActions(_ref) {
|
|
|
32
30
|
var onPageDuplicate = usePropStore(function (state) {
|
|
33
31
|
return state.onPageDuplicate;
|
|
34
32
|
});
|
|
35
|
-
|
|
33
|
+
usePropStore(function (state) {
|
|
36
34
|
return state.onPageOrdersChange;
|
|
37
35
|
});
|
|
38
36
|
var onPageRemove = usePropStore(function (state) {
|
|
@@ -69,25 +67,6 @@ var PageActions = function PageActions(_ref) {
|
|
|
69
67
|
onAnEventTrigger('removePage', pageID);
|
|
70
68
|
};
|
|
71
69
|
|
|
72
|
-
var changeOrder = function changeOrder(direction) {
|
|
73
|
-
return function () {
|
|
74
|
-
var pageIndex = pages.findIndex(function (page) {
|
|
75
|
-
return page.id === pageID;
|
|
76
|
-
});
|
|
77
|
-
var editedPages = moveItemInArrayFromIndexToIndex(pages, pageIndex, pageIndex + direction);
|
|
78
|
-
var pageOrders = editedPages.reduce(function (acc, page, index) {
|
|
79
|
-
var newOrder = index + 1;
|
|
80
|
-
acc[page.id] = {
|
|
81
|
-
order: newOrder
|
|
82
|
-
};
|
|
83
|
-
return acc;
|
|
84
|
-
}, {});
|
|
85
|
-
onPageOrdersChange(pageOrders);
|
|
86
|
-
scrollToTarget("pageActions-id-".concat(order + direction));
|
|
87
|
-
onAnEventTrigger('changePageOrder', direction);
|
|
88
|
-
};
|
|
89
|
-
};
|
|
90
|
-
|
|
91
70
|
var onPageDuplicateClick = function onPageDuplicateClick() {
|
|
92
71
|
var foundPage = pages.find(function (page) {
|
|
93
72
|
return page.id === pageID;
|
|
@@ -99,19 +78,16 @@ var PageActions = function PageActions(_ref) {
|
|
|
99
78
|
|
|
100
79
|
var _useTranslatedTexts = useTranslatedTexts(),
|
|
101
80
|
ADD_NEW_PAGE = _useTranslatedTexts.ADD_NEW_PAGE,
|
|
102
|
-
DUPLICATE_PAGE = _useTranslatedTexts.DUPLICATE_PAGE
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
PAGE_SETTINGS = _useTranslatedTexts.PAGE_SETTINGS,
|
|
81
|
+
DUPLICATE_PAGE = _useTranslatedTexts.DUPLICATE_PAGE;
|
|
82
|
+
_useTranslatedTexts.MOVE_PAGE_DOWNWARDS;
|
|
83
|
+
_useTranslatedTexts.MOVE_PAGE_UPWARDS;
|
|
84
|
+
var PAGE_SETTINGS = _useTranslatedTexts.PAGE_SETTINGS,
|
|
106
85
|
REMOVE_PAGE = _useTranslatedTexts.REMOVE_PAGE;
|
|
107
86
|
|
|
108
|
-
return /*#__PURE__*/
|
|
87
|
+
return /*#__PURE__*/jsx("div", {
|
|
109
88
|
className: "jfReport-pageInfo d-flex j-center",
|
|
110
89
|
id: "pageActions-id-".concat(order),
|
|
111
|
-
children:
|
|
112
|
-
className: "pageCounter p-relative d-flex",
|
|
113
|
-
children: "".concat(order)
|
|
114
|
-
}), /*#__PURE__*/jsxs("div", {
|
|
90
|
+
children: /*#__PURE__*/jsxs("div", {
|
|
115
91
|
className: "floatingController page-toolbar".concat(isSelectedItemExists ? ' disabled' : ''),
|
|
116
92
|
children: [/*#__PURE__*/jsxs("div", {
|
|
117
93
|
className: "floatingController-container",
|
|
@@ -142,26 +118,7 @@ var PageActions = function PageActions(_ref) {
|
|
|
142
118
|
className: "toolbar-icon"
|
|
143
119
|
})
|
|
144
120
|
}, "Remove Slide")]
|
|
145
|
-
}), /*#__PURE__*/
|
|
146
|
-
className: "floatingController-container",
|
|
147
|
-
children: [/*#__PURE__*/jsx("button", {
|
|
148
|
-
className: "controllerItem".concat(order === 1 ? ' disabled' : ''),
|
|
149
|
-
onClick: changeOrder(-1),
|
|
150
|
-
title: MOVE_PAGE_UPWARDS,
|
|
151
|
-
type: "button",
|
|
152
|
-
children: /*#__PURE__*/jsx(SvgAngleUp, {
|
|
153
|
-
className: "toolbar-icon"
|
|
154
|
-
})
|
|
155
|
-
}, "Move Page Upwards"), /*#__PURE__*/jsx("button", {
|
|
156
|
-
className: "controllerItem".concat(order === pageCount ? ' disabled' : ''),
|
|
157
|
-
onClick: changeOrder(1),
|
|
158
|
-
title: MOVE_PAGE_DOWNWARDS,
|
|
159
|
-
type: "button",
|
|
160
|
-
children: /*#__PURE__*/jsx(SvgAngleDown, {
|
|
161
|
-
className: "toolbar-icon"
|
|
162
|
-
})
|
|
163
|
-
}, "Move Page Downwards")]
|
|
164
|
-
}), /*#__PURE__*/jsx("div", {
|
|
121
|
+
}), false , /*#__PURE__*/jsx("div", {
|
|
165
122
|
className: "floatingController-container",
|
|
166
123
|
children: /*#__PURE__*/jsx("button", {
|
|
167
124
|
className: "controllerItem primary",
|
|
@@ -174,7 +131,7 @@ var PageActions = function PageActions(_ref) {
|
|
|
174
131
|
})
|
|
175
132
|
}, "Add Slide")
|
|
176
133
|
})]
|
|
177
|
-
})
|
|
134
|
+
})
|
|
178
135
|
});
|
|
179
136
|
};
|
|
180
137
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageActions.js","sources":["../../../../src/components/Builder/PageActions.js"],"sourcesContent":["import PropTypes from 'prop-types';\nimport { useMemo } from 'react';\nimport * as icons from '../../utils/icons';\nimport { moveItemInArrayFromIndexToIndex, scrollToTarget } from '../../utils/functions';\nimport { useSelectedElements, useTranslatedTexts } from '../../utils/hooks';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport { usePropStore } from '../../contexts/PropContext';\n\nconst PageActions = ({\n order = 0,\n pageID = '',\n}) => {\n const pages = usePropStore(state => state.pages);\n const pageCount = pages.length;\n const onAnEventTrigger = usePropStore(state => state.onAnEventTrigger);\n const onPageAdd = usePropStore(state => state.onPageAdd);\n const onPageDuplicate = usePropStore(state => state.onPageDuplicate);\n const onPageOrdersChange = usePropStore(state => state.onPageOrdersChange);\n const onPageRemove = usePropStore(state => state.onPageRemove);\n const disableInteraction = usePropStore(state => state.disableInteraction);\n\n const setIsRightPanelOpen = useBuilderStore(state => state.setIsRightPanelOpen);\n const setEditedElement = useBuilderStore(state => state.setEditedElement);\n\n const selectedItems = useSelectedElements();\n const isSelectedItemExists = useMemo(() => selectedItems?.length > 0, [selectedItems]);\n\n const pageSettings = () => {\n setEditedElement(`p_${pageID}`);\n setIsRightPanelOpen(true);\n };\n\n const onPageAddClick = () => {\n const newPageIndex = order + 1;\n onPageAdd(newPageIndex);\n scrollToTarget(`pageActions-id-${newPageIndex}`, 350);\n onAnEventTrigger('addNewPage', newPageIndex);\n };\n\n const onPageRemoveClick = () => {\n onPageRemove(pageID);\n onAnEventTrigger('removePage', pageID);\n };\n\n const changeOrder = direction => {\n return () => {\n const pageIndex = pages.findIndex(page => page.id === pageID);\n const editedPages = moveItemInArrayFromIndexToIndex(\n pages,\n pageIndex,\n pageIndex + direction,\n );\n const pageOrders = editedPages.reduce((acc, page, index) => {\n const newOrder = index + 1;\n acc[page.id] = {\n order: newOrder,\n };\n return acc;\n }, {});\n onPageOrdersChange(pageOrders);\n scrollToTarget(`pageActions-id-${order + direction}`);\n onAnEventTrigger('changePageOrder', direction);\n };\n };\n\n const onPageDuplicateClick = () => {\n const foundPage = pages.find(page => page.id === pageID);\n onPageDuplicate(foundPage);\n scrollToTarget(`pageActions-id-${order + 1}`, 350);\n onAnEventTrigger('duplicatePage', order + 1);\n };\n\n const {\n ADD_NEW_PAGE, DUPLICATE_PAGE, MOVE_PAGE_DOWNWARDS,\n MOVE_PAGE_UPWARDS, PAGE_SETTINGS, REMOVE_PAGE,\n } = useTranslatedTexts();\n return (\n <div\n className=\"jfReport-pageInfo d-flex j-center\"\n id={`pageActions-id-${order}`}\n >\n <div className=\"pageCounter p-relative d-flex\">\n {`${order}`}\n </div>\n <div className={`floatingController page-toolbar${isSelectedItemExists ? ' disabled' : ''}`}>\n <div className=\"floatingController-container\">\n <button\n key=\"Slide Settings\"\n className=\"controllerItem\"\n onClick={pageSettings}\n title={PAGE_SETTINGS}\n type=\"button\"\n >\n <icons.pageSettings className=\"toolbar-icon\" />\n </button>\n <button\n key=\"Duplicate Page\"\n className=\"controllerItem\"\n disabled={disableInteraction.indexOf('duplicate') > -1}\n onClick={onPageDuplicateClick}\n title={DUPLICATE_PAGE}\n type=\"button\"\n >\n <icons.duplicate className=\"toolbar-icon\" />\n </button>\n <button\n key=\"Remove Slide\"\n className=\"controllerItem error\"\n disabled={disableInteraction.indexOf('remove') > -1}\n onClick={onPageRemoveClick}\n title={REMOVE_PAGE}\n type=\"button\"\n >\n <icons.trash className=\"toolbar-icon\" />\n </button>\n </div>\n <div className=\"floatingController-container\">\n <button\n key=\"Move Page Upwards\"\n className={`controllerItem${order === 1 ? ' disabled' : ''}`}\n onClick={changeOrder(-1)}\n title={MOVE_PAGE_UPWARDS}\n type=\"button\"\n >\n <icons.angleUp className=\"toolbar-icon\" />\n </button>\n <button\n key=\"Move Page Downwards\"\n className={`controllerItem${order === pageCount ? ' disabled' : ''}`}\n onClick={changeOrder(1)}\n title={MOVE_PAGE_DOWNWARDS}\n type=\"button\"\n >\n <icons.angleDown className=\"toolbar-icon\" />\n </button>\n </div>\n <div className=\"floatingController-container\">\n <button\n key=\"Add Slide\"\n className=\"controllerItem primary\"\n disabled={disableInteraction.indexOf('add') > -1}\n onClick={onPageAddClick}\n title={ADD_NEW_PAGE}\n type=\"button\"\n >\n <icons.plus className=\"toolbar-icon\" />\n </button>\n </div>\n </div>\n </div>\n );\n};\n\nPageActions.propTypes = {\n order: PropTypes.number,\n pageID: PropTypes.string,\n};\n\nexport default PageActions;\n"],"names":["PageActions","order","pageID","pages","usePropStore","state","pageCount","length","onAnEventTrigger","onPageAdd","onPageDuplicate","onPageOrdersChange","onPageRemove","disableInteraction","setIsRightPanelOpen","useBuilderStore","setEditedElement","selectedItems","useSelectedElements","isSelectedItemExists","useMemo","pageSettings","onPageAddClick","newPageIndex","scrollToTarget","onPageRemoveClick","changeOrder","direction","pageIndex","findIndex","page","id","editedPages","moveItemInArrayFromIndexToIndex","pageOrders","reduce","acc","index","newOrder","onPageDuplicateClick","foundPage","find","useTranslatedTexts","ADD_NEW_PAGE","DUPLICATE_PAGE","MOVE_PAGE_DOWNWARDS","MOVE_PAGE_UPWARDS","PAGE_SETTINGS","REMOVE_PAGE","_jsxs","_jsx","icons.pageSettings","indexOf","icons.duplicate","icons.trash","icons.angleUp","icons.angleDown","icons.plus","propTypes","PropTypes","number","string"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PageActions.js","sources":["../../../../src/components/Builder/PageActions.js"],"sourcesContent":["import PropTypes from 'prop-types';\nimport { useMemo } from 'react';\nimport * as icons from '../../utils/icons';\nimport { moveItemInArrayFromIndexToIndex, scrollToTarget } from '../../utils/functions';\nimport { useSelectedElements, useTranslatedTexts } from '../../utils/hooks';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport { usePropStore } from '../../contexts/PropContext';\n\nconst PageActions = ({\n order = 0,\n pageID = '',\n}) => {\n const pages = usePropStore(state => state.pages);\n const pageCount = pages.length;\n const onAnEventTrigger = usePropStore(state => state.onAnEventTrigger);\n const onPageAdd = usePropStore(state => state.onPageAdd);\n const onPageDuplicate = usePropStore(state => state.onPageDuplicate);\n const onPageOrdersChange = usePropStore(state => state.onPageOrdersChange);\n const onPageRemove = usePropStore(state => state.onPageRemove);\n const disableInteraction = usePropStore(state => state.disableInteraction);\n\n const setIsRightPanelOpen = useBuilderStore(state => state.setIsRightPanelOpen);\n const setEditedElement = useBuilderStore(state => state.setEditedElement);\n\n const selectedItems = useSelectedElements();\n const isSelectedItemExists = useMemo(() => selectedItems?.length > 0, [selectedItems]);\n\n const pageSettings = () => {\n setEditedElement(`p_${pageID}`);\n setIsRightPanelOpen(true);\n };\n\n const onPageAddClick = () => {\n const newPageIndex = order + 1;\n onPageAdd(newPageIndex);\n scrollToTarget(`pageActions-id-${newPageIndex}`, 350);\n onAnEventTrigger('addNewPage', newPageIndex);\n };\n\n const onPageRemoveClick = () => {\n onPageRemove(pageID);\n onAnEventTrigger('removePage', pageID);\n };\n\n const changeOrder = direction => {\n return () => {\n const pageIndex = pages.findIndex(page => page.id === pageID);\n const editedPages = moveItemInArrayFromIndexToIndex(\n pages,\n pageIndex,\n pageIndex + direction,\n );\n const pageOrders = editedPages.reduce((acc, page, index) => {\n const newOrder = index + 1;\n acc[page.id] = {\n order: newOrder,\n };\n return acc;\n }, {});\n onPageOrdersChange(pageOrders);\n scrollToTarget(`pageActions-id-${order + direction}`);\n onAnEventTrigger('changePageOrder', direction);\n };\n };\n\n const onPageDuplicateClick = () => {\n const foundPage = pages.find(page => page.id === pageID);\n onPageDuplicate(foundPage);\n scrollToTarget(`pageActions-id-${order + 1}`, 350);\n onAnEventTrigger('duplicatePage', order + 1);\n };\n\n const {\n ADD_NEW_PAGE, DUPLICATE_PAGE, MOVE_PAGE_DOWNWARDS,\n MOVE_PAGE_UPWARDS, PAGE_SETTINGS, REMOVE_PAGE,\n } = useTranslatedTexts();\n return (\n <div\n className=\"jfReport-pageInfo d-flex j-center\"\n id={`pageActions-id-${order}`}\n >\n <div className={`floatingController page-toolbar${isSelectedItemExists ? ' disabled' : ''}`}>\n <div className=\"floatingController-container\">\n <button\n key=\"Slide Settings\"\n className=\"controllerItem\"\n onClick={pageSettings}\n title={PAGE_SETTINGS}\n type=\"button\"\n >\n <icons.pageSettings className=\"toolbar-icon\" />\n </button>\n <button\n key=\"Duplicate Page\"\n className=\"controllerItem\"\n disabled={disableInteraction.indexOf('duplicate') > -1}\n onClick={onPageDuplicateClick}\n title={DUPLICATE_PAGE}\n type=\"button\"\n >\n <icons.duplicate className=\"toolbar-icon\" />\n </button>\n <button\n key=\"Remove Slide\"\n className=\"controllerItem error\"\n disabled={disableInteraction.indexOf('remove') > -1}\n onClick={onPageRemoveClick}\n title={REMOVE_PAGE}\n type=\"button\"\n >\n <icons.trash className=\"toolbar-icon\" />\n </button>\n </div>\n {false && (\n <div className=\"floatingController-container\">\n <button\n key=\"Move Page Upwards\"\n className={`controllerItem${order === 1 ? ' disabled' : ''}`}\n onClick={changeOrder(-1)}\n title={MOVE_PAGE_UPWARDS}\n type=\"button\"\n >\n <icons.angleUp className=\"toolbar-icon\" />\n </button>\n <button\n key=\"Move Page Downwards\"\n className={`controllerItem${order === pageCount ? ' disabled' : ''}`}\n onClick={changeOrder(1)}\n title={MOVE_PAGE_DOWNWARDS}\n type=\"button\"\n >\n <icons.angleDown className=\"toolbar-icon\" />\n </button>\n </div>\n )}\n <div className=\"floatingController-container\">\n <button\n key=\"Add Slide\"\n className=\"controllerItem primary\"\n disabled={disableInteraction.indexOf('add') > -1}\n onClick={onPageAddClick}\n title={ADD_NEW_PAGE}\n type=\"button\"\n >\n <icons.plus className=\"toolbar-icon\" />\n </button>\n </div>\n </div>\n </div>\n );\n};\n\nPageActions.propTypes = {\n order: PropTypes.number,\n pageID: PropTypes.string,\n};\n\nexport default PageActions;\n"],"names":["PageActions","order","pageID","pages","usePropStore","state","length","onAnEventTrigger","onPageAdd","onPageDuplicate","onPageOrdersChange","onPageRemove","disableInteraction","setIsRightPanelOpen","useBuilderStore","setEditedElement","selectedItems","useSelectedElements","isSelectedItemExists","useMemo","pageSettings","onPageAddClick","newPageIndex","scrollToTarget","onPageRemoveClick","onPageDuplicateClick","foundPage","find","page","id","useTranslatedTexts","ADD_NEW_PAGE","DUPLICATE_PAGE","MOVE_PAGE_DOWNWARDS","MOVE_PAGE_UPWARDS","PAGE_SETTINGS","REMOVE_PAGE","_jsx","_jsxs","icons.pageSettings","indexOf","icons.duplicate","icons.trash","icons.plus","propTypes","PropTypes","number","string"],"mappings":"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"}
|
|
@@ -19,6 +19,8 @@ import { calculateGuidePositions, findItemById, findItemsOnPage } from '../../ut
|
|
|
19
19
|
import DraggableLayer from './DraggableLayer.js';
|
|
20
20
|
import useKeyboardActions from '../../utils/useKeyboardActions.js';
|
|
21
21
|
import useMarqueeSelection from '../../utils/useMarqueeSelection.js';
|
|
22
|
+
import SlidesNavigatorToggle from './SlidesNavigatorToggle.js';
|
|
23
|
+
import { SLIDES_LIST_TYPE_MAP } from '../../constants/panel.js';
|
|
22
24
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
23
25
|
|
|
24
26
|
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; }
|
|
@@ -49,6 +51,9 @@ var Scene = function Scene() {
|
|
|
49
51
|
var lastScrollPosition = useBuilderStore(function (state) {
|
|
50
52
|
return state.lastScrollPosition;
|
|
51
53
|
});
|
|
54
|
+
var slidesListType = useBuilderStore(function (state) {
|
|
55
|
+
return state.slidesListType;
|
|
56
|
+
});
|
|
52
57
|
var pageStyles = useRef({});
|
|
53
58
|
var pageContainerStyles = useRef({});
|
|
54
59
|
var viewPortRef = useRef({});
|
|
@@ -181,7 +186,10 @@ var Scene = function Scene() {
|
|
|
181
186
|
);
|
|
182
187
|
}), /*#__PURE__*/jsx(PageAdder, {})]
|
|
183
188
|
})
|
|
184
|
-
}), /*#__PURE__*/
|
|
189
|
+
}), /*#__PURE__*/jsxs("div", {
|
|
190
|
+
className: "bottom-actions-container",
|
|
191
|
+
children: [slidesListType === SLIDES_LIST_TYPE_MAP.NAVIGATOR && /*#__PURE__*/jsx(SlidesNavigatorToggle, {}), /*#__PURE__*/jsx(ZoomControls, {})]
|
|
192
|
+
}), contextMenuProps && /*#__PURE__*/jsx(ContextMenu, {
|
|
185
193
|
exceptionalClasses: ['contextMenu-button'],
|
|
186
194
|
height: height,
|
|
187
195
|
item: findItemById(contextMenuProps.id, pages),
|
|
@@ -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","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 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';\nimport SlidesNavigatorToggle from './SlidesNavigatorToggle';\nimport { SLIDES_LIST_TYPE_MAP } from '../../constants/panel';\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\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 <div className=\"bottom-actions-container\">\n {slidesListType === SLIDES_LIST_TYPE_MAP.NAVIGATOR && <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","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","SLIDES_LIST_TYPE_MAP","NAVIGATOR","findItemById","findItemsOnPage","pageID"],"mappings":"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"}
|