@jotforminc/dnd-builder 3.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/lib/cjs/components/Builder/Page.js +36 -29
  3. package/lib/cjs/components/Builder/Page.js.map +1 -1
  4. package/lib/cjs/components/Builder/Scene.js +9 -24
  5. package/lib/cjs/components/Builder/Scene.js.map +1 -1
  6. package/lib/cjs/components/DraggableItem/DraggableItem.js +33 -80
  7. package/lib/cjs/components/DraggableItem/DraggableItem.js.map +1 -1
  8. package/lib/cjs/components/PageItemResizer.js +21 -8
  9. package/lib/cjs/components/PageItemResizer.js.map +1 -1
  10. package/lib/cjs/components/Panels/SlidesPanel/SortablePageList.js +1 -3
  11. package/lib/cjs/components/Panels/SlidesPanel/SortablePageList.js.map +1 -1
  12. package/lib/cjs/components/ReportItemsWrapper.js +18 -17
  13. package/lib/cjs/components/ReportItemsWrapper.js.map +1 -1
  14. package/lib/cjs/components/Settings/PageLayer/LayerItem.js +1 -1
  15. package/lib/cjs/components/Settings/PageLayer/LayerItem.js.map +1 -1
  16. package/lib/cjs/components/Settings/SizeSettings.js +1 -1
  17. package/lib/cjs/components/Settings/SizeSettings.js.map +1 -1
  18. package/lib/cjs/constants/texts.js +1 -0
  19. package/lib/cjs/constants/texts.js.map +1 -1
  20. package/lib/cjs/contexts/BuilderContext.js +6 -0
  21. package/lib/cjs/contexts/BuilderContext.js.map +1 -1
  22. package/lib/cjs/utils/functions.js +29 -23
  23. package/lib/cjs/utils/functions.js.map +1 -1
  24. package/lib/esm/components/Builder/Page.js +38 -31
  25. package/lib/esm/components/Builder/Page.js.map +1 -1
  26. package/lib/esm/components/Builder/Scene.js +10 -25
  27. package/lib/esm/components/Builder/Scene.js.map +1 -1
  28. package/lib/esm/components/DraggableItem/DraggableItem.js +34 -81
  29. package/lib/esm/components/DraggableItem/DraggableItem.js.map +1 -1
  30. package/lib/esm/components/PageItemResizer.js +21 -8
  31. package/lib/esm/components/PageItemResizer.js.map +1 -1
  32. package/lib/esm/components/Panels/SlidesPanel/SortablePageList.js +1 -3
  33. package/lib/esm/components/Panels/SlidesPanel/SortablePageList.js.map +1 -1
  34. package/lib/esm/components/ReportItemsWrapper.js +15 -18
  35. package/lib/esm/components/ReportItemsWrapper.js.map +1 -1
  36. package/lib/esm/components/Settings/PageLayer/LayerItem.js +1 -1
  37. package/lib/esm/components/Settings/PageLayer/LayerItem.js.map +1 -1
  38. package/lib/esm/components/Settings/SizeSettings.js +1 -1
  39. package/lib/esm/components/Settings/SizeSettings.js.map +1 -1
  40. package/lib/esm/constants/texts.js +1 -0
  41. package/lib/esm/constants/texts.js.map +1 -1
  42. package/lib/esm/contexts/BuilderContext.js +6 -0
  43. package/lib/esm/contexts/BuilderContext.js.map +1 -1
  44. package/lib/esm/utils/functions.js +27 -23
  45. package/lib/esm/utils/functions.js.map +1 -1
  46. package/package.json +1 -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 useMemo,\n useRef,\n useState,\n} from 'react';\nimport * as classNames from '../../constants/classNames';\nimport ContextMenu from './ContextMenu';\nimport PageActions from './PageActions';\nimport PageAdder from './PageAdder';\nimport ZoomControls from './ZoomControls';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport { usePropStore } from '../../contexts/PropContext';\nimport Page from './Page';\nimport {\n calculateGuidePositions,\n findItemById,\n findItemsOnPage,\n getMostVisiblePage,\n getSelectedItems,\n} from '../../utils/functions';\nimport { useEventListener } from '../../utils/hooks';\nimport DraggableItemLayer from '../DraggableItem/DraggableItemLayer';\nimport generateId from '../../utils/generateId';\nimport { EVENT_IGNORED_ROLES } from '../../constants/eventIgnoredRoles';\n\nconst Scene = () => {\n const pages = usePropStore(state => state.pages);\n const onItemAdd = usePropStore(state => state.onItemAdd);\n const onItemRemove = usePropStore(state => state.onItemRemove);\n const onAnEventTrigger = usePropStore(state => state.onAnEventTrigger);\n const settings = usePropStore(state => state.settings);\n const onItemChange = usePropStore(state => state.onItemChange);\n\n const activeElement = useBuilderStore(state => state.activeElement);\n const contextMenuProps = useBuilderStore(state => state.contextMenuProps);\n const isRightPanelOpen = useBuilderStore(state => state.isRightPanelOpen);\n const setActiveElement = useBuilderStore(state => state.setActiveElement);\n const setContextMenuProps = useBuilderStore(state => state.setContextMenuProps);\n const setIsRightPanelOpen = useBuilderStore(state => state.setIsRightPanelOpen);\n const zoom = useBuilderStore(state => state.zoom);\n\n const [itemToPaste, setItemToPaste] = useState(null);\n const lastScrollPosition = useBuilderStore(state => state.lastScrollPosition);\n const isHeaderHidden = useRef(false);\n\n const pageStyles = useRef({});\n const pageContainerStyles = useRef({});\n const viewPortRef = useRef({});\n\n /* Page Refs */\n const refs = useRef(pages.reduce((acc, curr) => {\n acc[curr.id] = createRef(null);\n return acc;\n }, {}));\n\n const isMultipleItemSelected = activeElement !== null && activeElement.length > 1;\n\n /* Calculate snap guides */\n const keyDownCount = useRef(null);\n\n const guides = useMemo(() => {\n return pages.reduce((acc, page) => {\n const _pageGuides = {};\n const pageRef = refs.current[page.id];\n if (pageRef && pageRef.current) {\n const {\n height, left, top, width,\n } = pageRef.current.getBoundingClientRect();\n const boundingBox = {\n height, left, top, width,\n };\n _pageGuides.boundingBox = {\n x: calculateGuidePositions(boundingBox, 'x').map(value => value - boundingBox.left),\n y: calculateGuidePositions(boundingBox, 'y').map(value => value - boundingBox.top),\n };\n page.items.forEach(item => {\n _pageGuides[item.id] = {\n x: calculateGuidePositions(item, 'x', zoom),\n y: calculateGuidePositions(item, 'y', zoom),\n };\n });\n }\n acc[page.id] = _pageGuides;\n return acc;\n }, {});\n }, [pages, zoom]);\n\n useEffect(() => {\n if (viewPortRef.current) {\n viewPortRef.current.scrollTop = lastScrollPosition;\n }\n }, [lastScrollPosition]); // set last scroll position after changing mode\n\n useEffect(() => {\n if (document.body.classList.contains('hideHeader') && isHeaderHidden) {\n document.body.classList.remove('hideHeader');\n }\n }, []); // reset hideHeader\n\n const foundItem = findItemById(activeElement === null ? null : activeElement[0], pages);\n\n const selectedItems = getSelectedItems(activeElement, pages);\n const moveItemWithKeyboard = (event, direction, value) => {\n event.preventDefault();\n selectedItems.forEach(item => {\n if (item.isLocked) {\n return false;\n }\n onItemChange(\n { id: item.id },\n {\n ...item,\n [direction]: item[direction] + value,\n },\n );\n });\n };\n\n const selectNextOrPrevElement = (event, deletedItem) => {\n if (event.preventDefault) event.preventDefault();\n const referenceItem = deletedItem ? deletedItem : foundItem;\n\n const page = pages.find(_page => _page.id === referenceItem.pageID);\n if (!page || (page && !page.items.length)) return setActiveElement(null);\n const { items } = page;\n\n const currentIndex = items.findIndex(item => item.id === referenceItem.id);\n\n // Pages are not updated in time so here is an unnecessary check\n if (items.length === 1 && deletedItem) {\n return setActiveElement(null);\n }\n\n if (event.shiftKey) {\n if (items[currentIndex - 1]) setActiveElement(items[currentIndex - 1].id);\n else setActiveElement(items[items.length - 1].id);\n } else if (items[currentIndex + 1]) {\n setActiveElement(items[currentIndex + 1].id);\n } else setActiveElement(items[0].id);\n };\n\n const onItemRemoveFromPage = e => {\n // Firefox updates browser history on backspace\n e.preventDefault();\n if (isMultipleItemSelected) return;\n if (foundItem.isLocked) {\n return false;\n }\n setActiveElement(null);\n onItemRemove(foundItem);\n selectNextOrPrevElement({ shiftKey: false }, foundItem);\n onAnEventTrigger('removeItem', foundItem.itemType);\n };\n\n const handlePaste = () => {\n if (isMultipleItemSelected) return;\n const itemID = generateId();\n const pageID = getMostVisiblePage(true);\n const offset = itemToPaste.pageID === pageID ? 50 : 0;\n\n const item = {\n ...itemToPaste,\n id: itemID,\n left: itemToPaste.left + offset,\n pageID,\n top: itemToPaste.top + offset,\n };\n\n onItemAdd(item);\n\n onAnEventTrigger('pasteItem', itemToPaste.itemType);\n setActiveElement(itemID);\n // set as last reference to paste\n setItemToPaste(item);\n };\n\n const keyboardActions = event => {\n const {\n key,\n metaKey,\n shiftKey,\n } = event;\n\n if (metaKey) {\n if (key === 'l') {\n // Lock\n if (isMultipleItemSelected) return;\n event.preventDefault(); // Dont focus to URL bar\n onAnEventTrigger(\n foundItem.isLocked ? 'unlockReportItem' : 'lockReportItem',\n foundItem.itemType,\n );\n onItemChange(\n { id: foundItem.id },\n { isLocked: foundItem.isLocked ? false : true },\n );\n return;\n }\n\n if (key === 'c' || key === 'x') {\n if (isMultipleItemSelected) return;\n // Copy or Cut\n if (key === 'x') {\n onItemRemoveFromPage(event);\n onAnEventTrigger('cutItem', foundItem.itemType);\n } else {\n onAnEventTrigger('copyItem', foundItem.itemType);\n }\n\n setItemToPaste(foundItem);\n return;\n }\n\n if (foundItem && key === 'd') {\n if (isMultipleItemSelected) return;\n // Duplicate\n event.preventDefault();\n const itemID = generateId();\n onItemAdd({\n ...foundItem,\n id: itemID,\n left: foundItem.left + 50,\n top: foundItem.top + 50,\n });\n onAnEventTrigger('duplicateItem', foundItem.itemType);\n setActiveElement(itemID);\n if (!isRightPanelOpen) {\n setIsRightPanelOpen(true);\n }\n return;\n }\n }\n\n keyDownCount.current++;\n const movementValue = shiftKey ? 10 : 1 + keyDownCount.current;\n\n // Others\n switch (key) {\n case 'Backspace': return onItemRemoveFromPage(event);\n case 'Delete': return onItemRemoveFromPage(event);\n case 'Escape': return setActiveElement(null);\n case 'ArrowLeft': return moveItemWithKeyboard(event, 'left', -movementValue);\n case 'ArrowUp': return moveItemWithKeyboard(event, 'top', -movementValue);\n case 'ArrowRight': return moveItemWithKeyboard(event, 'left', movementValue);\n case 'ArrowDown': return moveItemWithKeyboard(event, 'top', movementValue);\n case 'Tab': return selectNextOrPrevElement(event);\n default:\n }\n };\n\n const onScroll = e => {\n const { scrollTop } = e.currentTarget;\n const hiddenHeaderHeight = 70;\n const headerHidingLimit = isHeaderHidden ? 230 : 300;\n if (scrollTop > headerHidingLimit + hiddenHeaderHeight && !isHeaderHidden.current) {\n isHeaderHidden.current = true;\n document.body.classList.add('hideHeader');\n } else if (scrollTop < headerHidingLimit && isHeaderHidden.current) {\n isHeaderHidden.current = false;\n document.body.classList.remove('hideHeader');\n }\n };\n\n const shouldSuppressKeyboardEvent = e => (\n EVENT_IGNORED_ROLES.some(role => e.target.closest(`[role=${role}]`))\n );\n\n const handleKeyboardEvent = e => {\n const shouldPaste = itemToPaste && e.key === 'v' && e.metaKey;\n\n if (shouldSuppressKeyboardEvent(e)) {\n return;\n }\n\n if (activeElement && !shouldPaste) {\n const arrowKeyCodes = ['ArrowLeft', 'ArrowUp', 'ArrowDown', 'ArrowBottom'];\n if (arrowKeyCodes.includes(e.key)) e.preventDefault();\n keyboardActions(e);\n } else if (shouldPaste) {\n handlePaste();\n }\n };\n\n useEventListener('keydown', handleKeyboardEvent);\n useEventListener('keyup', () => { keyDownCount.current = 0; });\n\n const { reportLayoutHeight = 794, reportLayoutWidth = 1123 } = settings;\n\n // TODO: Some strange shit is going on here on first render\n let width = parseInt(reportLayoutWidth, 10);\n let height = parseInt(reportLayoutHeight, 10);\n width = Number.isNaN(width) ? 1 : width;\n height = Number.isNaN(height) ? 1 : height;\n const zoomToUse = Number.isNaN(zoom) ? 1 : zoom;\n\n pageStyles.current = {\n height: parseFloat((height * zoomToUse).toFixed(1)),\n width: parseFloat((width * zoomToUse).toFixed(1)),\n };\n pageContainerStyles.current = {\n height,\n transform: `scale(${zoomToUse})`,\n transformOrigin: '0 0',\n width,\n };\n\n return (\n <main // Builder.js\n className={classNames.mainWrapper}\n >\n <DraggableItemLayer\n guides={guides}\n pageRefs={refs.current}\n pages={pages}\n />\n\n <div\n ref={viewPortRef}\n className={classNames.viewport}\n data-zoom={zoom}\n onScroll={onScroll}\n >\n <div\n className={classNames.canvas}\n >\n {pages.map((page, index) => (\n // TODO: This part can be moved into a different component\n <Fragment key={page.id}>\n <PageActions\n order={page.order}\n pageID={page.id}\n />\n <div\n key={`page_${page.id}`}\n ref={refs.current[page.id]}\n className={classNames.page}\n data-id={page.id}\n data-order={page.order}\n id={`presentation-page-${page.id.toString()}`}\n style={pageStyles.current}\n >\n <Page\n guides={guides}\n items={page.items}\n page={page}\n pageIndex={index}\n pageRef={refs.current[page.id]}\n style={pageContainerStyles.current}\n />\n </div>\n </Fragment>\n ))}\n <PageAdder />\n </div>\n </div>\n <ZoomControls />\n {contextMenuProps\n && (\n <ContextMenu\n exceptionalClasses={['contextMenu-button']}\n height={height}\n item={findItemById(contextMenuProps.id, pages)}\n items={findItemsOnPage(contextMenuProps.pageID, pages)}\n onClickOutside={() => setContextMenuProps(null)}\n position={contextMenuProps.position}\n width={width}\n />\n )}\n </main>\n );\n};\n\nexport default Scene;\n"],"names":["Scene","pages","usePropStore","state","onItemAdd","onItemRemove","onAnEventTrigger","settings","onItemChange","activeElement","useBuilderStore","contextMenuProps","isRightPanelOpen","setActiveElement","setContextMenuProps","setIsRightPanelOpen","zoom","useState","itemToPaste","setItemToPaste","lastScrollPosition","isHeaderHidden","useRef","pageStyles","pageContainerStyles","viewPortRef","refs","reduce","acc","curr","id","createRef","isMultipleItemSelected","length","keyDownCount","guides","useMemo","page","_pageGuides","pageRef","current","getBoundingClientRect","height","left","top","width","boundingBox","x","calculateGuidePositions","map","value","y","items","forEach","item","useEffect","scrollTop","document","body","classList","contains","remove","foundItem","findItemById","selectedItems","getSelectedItems","moveItemWithKeyboard","event","direction","preventDefault","isLocked","selectNextOrPrevElement","deletedItem","referenceItem","find","_page","pageID","currentIndex","findIndex","shiftKey","onItemRemoveFromPage","e","itemType","handlePaste","itemID","generateId","getMostVisiblePage","offset","keyboardActions","key","metaKey","movementValue","onScroll","currentTarget","hiddenHeaderHeight","headerHidingLimit","add","shouldSuppressKeyboardEvent","EVENT_IGNORED_ROLES","some","role","target","closest","handleKeyboardEvent","shouldPaste","arrowKeyCodes","includes","useEventListener","reportLayoutHeight","reportLayoutWidth","parseInt","Number","isNaN","zoomToUse","parseFloat","toFixed","transform","transformOrigin","_jsxs","classNames","_jsx","index","order","toString","findItemsOnPage","position"],"mappings":"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"}
1
+ {"version":3,"file":"Scene.js","sources":["../../../../src/components/Builder/Scene.js"],"sourcesContent":["/* eslint-disable complexity */\nimport {\n createRef,\n Fragment,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport * as classNames from '../../constants/classNames';\nimport ContextMenu from './ContextMenu';\nimport PageActions from './PageActions';\nimport PageAdder from './PageAdder';\nimport ZoomControls from './ZoomControls';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport { usePropStore } from '../../contexts/PropContext';\nimport Page from './Page';\nimport {\n calculateGuidePositions,\n findItemById,\n findItemsOnPage,\n getMostVisiblePage,\n getSelectedItems,\n} from '../../utils/functions';\nimport { useEventListener } from '../../utils/hooks';\nimport DraggableItemLayer from '../DraggableItem/DraggableItemLayer';\nimport generateId from '../../utils/generateId';\nimport { EVENT_IGNORED_ROLES } from '../../constants/eventIgnoredRoles';\n\nconst Scene = () => {\n const pages = usePropStore(state => state.pages);\n const onItemAdd = usePropStore(state => state.onItemAdd);\n const onItemRemove = usePropStore(state => state.onItemRemove);\n const onAnEventTrigger = usePropStore(state => state.onAnEventTrigger);\n const settings = usePropStore(state => state.settings);\n const onItemChange = usePropStore(state => state.onItemChange);\n\n const activeElement = useBuilderStore(state => state.activeElement);\n const contextMenuProps = useBuilderStore(state => state.contextMenuProps);\n const isRightPanelOpen = useBuilderStore(state => state.isRightPanelOpen);\n const setActiveElement = useBuilderStore(state => state.setActiveElement);\n const setContextMenuProps = useBuilderStore(state => state.setContextMenuProps);\n const setIsRightPanelOpen = useBuilderStore(state => state.setIsRightPanelOpen);\n const zoom = useBuilderStore(state => state.zoom);\n\n const [itemToPaste, setItemToPaste] = useState(null);\n const lastScrollPosition = useBuilderStore(state => state.lastScrollPosition);\n\n const pageStyles = useRef({});\n const pageContainerStyles = useRef({});\n const viewPortRef = useRef({});\n\n /* Page Refs */\n const refs = useRef(pages.reduce((acc, curr) => {\n acc[curr.id] = createRef(null);\n return acc;\n }, {}));\n\n // 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 const isMultipleItemSelected = activeElement !== null && activeElement.length > 1;\n\n /* Calculate snap guides */\n const keyDownCount = useRef(null);\n\n const guides = useMemo(() => {\n return pages.reduce((acc, page) => {\n const _pageGuides = {};\n const pageRef = refs.current[page.id];\n if (pageRef && pageRef.current) {\n const {\n height, left, top, width,\n } = pageRef.current.getBoundingClientRect();\n const boundingBox = {\n height, left, top, width,\n };\n _pageGuides.boundingBox = {\n x: calculateGuidePositions(boundingBox, 'x').map(value => value - boundingBox.left),\n y: calculateGuidePositions(boundingBox, 'y').map(value => value - boundingBox.top),\n };\n page.items.forEach(item => {\n _pageGuides[item.id] = {\n x: calculateGuidePositions(item, 'x', zoom),\n y: calculateGuidePositions(item, 'y', zoom),\n };\n });\n }\n acc[page.id] = _pageGuides;\n return acc;\n }, {});\n }, [pages, zoom]);\n\n useEffect(() => {\n if (viewPortRef.current) {\n viewPortRef.current.scrollTop = lastScrollPosition;\n }\n }, [lastScrollPosition]); // set last scroll position after changing mode\n\n const foundItem = findItemById(activeElement === null ? null : activeElement[0], pages);\n\n const selectedItems = getSelectedItems(activeElement, pages);\n const moveItemWithKeyboard = (event, direction, value) => {\n event.preventDefault();\n selectedItems.forEach(item => {\n if (item.isLocked) {\n return false;\n }\n onItemChange(\n { id: item.id },\n {\n ...item,\n [direction]: item[direction] + value,\n },\n );\n });\n };\n\n const selectNextOrPrevElement = (event, deletedItem) => {\n if (event.preventDefault) event.preventDefault();\n const referenceItem = deletedItem ? deletedItem : foundItem;\n\n const page = pages.find(_page => _page.id === referenceItem.pageID);\n if (!page || (page && !page.items.length)) return setActiveElement(null);\n const { items } = page;\n\n const currentIndex = items.findIndex(item => item.id === referenceItem.id);\n\n // Pages are not updated in time so here is an unnecessary check\n if (items.length === 1 && deletedItem) {\n return setActiveElement(null);\n }\n\n if (event.shiftKey) {\n if (items[currentIndex - 1]) setActiveElement(items[currentIndex - 1].id);\n else setActiveElement(items[items.length - 1].id);\n } else if (items[currentIndex + 1]) {\n setActiveElement(items[currentIndex + 1].id);\n } else setActiveElement(items[0].id);\n };\n\n const onItemRemoveFromPage = e => {\n // Firefox updates browser history on backspace\n e.preventDefault();\n if (isMultipleItemSelected) return;\n if (foundItem.isLocked) {\n return false;\n }\n setActiveElement(null);\n onItemRemove(foundItem);\n selectNextOrPrevElement({ shiftKey: false }, foundItem);\n onAnEventTrigger('removeItem', foundItem.itemType);\n };\n\n const handlePaste = () => {\n if (isMultipleItemSelected) return;\n const itemID = generateId();\n const pageID = getMostVisiblePage(true);\n const offset = itemToPaste.pageID === pageID ? 50 : 0;\n\n const item = {\n ...itemToPaste,\n id: itemID,\n left: itemToPaste.left + offset,\n pageID,\n top: itemToPaste.top + offset,\n };\n\n onItemAdd(item);\n\n onAnEventTrigger('pasteItem', itemToPaste.itemType);\n setActiveElement(itemID);\n // set as last reference to paste\n setItemToPaste(item);\n };\n\n const keyboardActions = event => {\n const {\n key,\n metaKey,\n shiftKey,\n } = event;\n\n if (metaKey) {\n if (key === 'l') {\n // Lock\n if (isMultipleItemSelected) return;\n event.preventDefault(); // Dont focus to URL bar\n onAnEventTrigger(\n foundItem.isLocked ? 'unlockReportItem' : 'lockReportItem',\n foundItem.itemType,\n );\n onItemChange(\n { id: foundItem.id },\n { isLocked: foundItem.isLocked ? false : true },\n );\n return;\n }\n\n if (key === 'c' || key === 'x') {\n if (isMultipleItemSelected) return;\n // Copy or Cut\n if (key === 'x') {\n onItemRemoveFromPage(event);\n onAnEventTrigger('cutItem', foundItem.itemType);\n } else {\n onAnEventTrigger('copyItem', foundItem.itemType);\n }\n\n setItemToPaste(foundItem);\n return;\n }\n\n if (foundItem && key === 'd') {\n if (isMultipleItemSelected) return;\n // Duplicate\n event.preventDefault();\n const itemID = generateId();\n onItemAdd({\n ...foundItem,\n id: itemID,\n left: foundItem.left + 50,\n top: foundItem.top + 50,\n });\n onAnEventTrigger('duplicateItem', foundItem.itemType);\n setActiveElement(itemID);\n if (!isRightPanelOpen) {\n setIsRightPanelOpen(true);\n }\n return;\n }\n }\n\n keyDownCount.current++;\n const movementValue = shiftKey ? 10 : 1 + keyDownCount.current;\n\n // Others\n switch (key) {\n case 'Backspace': return onItemRemoveFromPage(event);\n case 'Delete': return onItemRemoveFromPage(event);\n case 'Escape': return setActiveElement(null);\n case 'ArrowLeft': return moveItemWithKeyboard(event, 'left', -movementValue);\n case 'ArrowUp': return moveItemWithKeyboard(event, 'top', -movementValue);\n case 'ArrowRight': return moveItemWithKeyboard(event, 'left', movementValue);\n case 'ArrowDown': return moveItemWithKeyboard(event, 'top', movementValue);\n case 'Tab': return selectNextOrPrevElement(event);\n default:\n }\n };\n\n const shouldSuppressKeyboardEvent = e => (\n EVENT_IGNORED_ROLES.some(role => e.target.closest(`[role=${role}]`))\n );\n\n const handleKeyboardEvent = e => {\n const shouldPaste = itemToPaste && e.key === 'v' && e.metaKey;\n\n if (shouldSuppressKeyboardEvent(e)) {\n return;\n }\n\n if (activeElement && !shouldPaste) {\n const arrowKeyCodes = ['ArrowLeft', 'ArrowUp', 'ArrowDown', 'ArrowBottom'];\n if (arrowKeyCodes.includes(e.key)) e.preventDefault();\n keyboardActions(e);\n } else if (shouldPaste) {\n handlePaste();\n }\n };\n\n useEventListener('keydown', handleKeyboardEvent);\n useEventListener('keyup', () => { keyDownCount.current = 0; });\n\n const { reportLayoutHeight = 794, reportLayoutWidth = 1123 } = settings;\n\n // TODO: Some strange shit is going on here on first render\n let width = parseInt(reportLayoutWidth, 10);\n let height = parseInt(reportLayoutHeight, 10);\n width = Number.isNaN(width) ? 1 : width;\n height = Number.isNaN(height) ? 1 : height;\n const zoomToUse = Number.isNaN(zoom) ? 1 : zoom;\n\n pageStyles.current = {\n height: parseFloat((height * zoomToUse).toFixed(1)),\n width: parseFloat((width * zoomToUse).toFixed(1)),\n };\n pageContainerStyles.current = {\n height,\n transform: `scale(${zoomToUse})`,\n transformOrigin: '0 0',\n width,\n };\n\n return (\n <main // Builder.js\n className={classNames.mainWrapper}\n >\n <DraggableItemLayer\n guides={guides}\n pageRefs={refs.current}\n pages={pages}\n />\n <div\n ref={viewPortRef}\n className={classNames.viewport}\n data-zoom={zoom}\n >\n <div\n className={classNames.canvas}\n >\n {pages.map((page, index) => (\n // TODO: This part can be moved into a different component\n <Fragment key={page.id}>\n <PageActions\n order={page.order}\n pageID={page.id}\n />\n <div\n key={`page_${page.id}`}\n ref={refs.current[page.id]}\n className={classNames.page}\n data-id={page.id}\n data-order={page.order}\n id={`presentation-page-${page.id.toString()}`}\n style={pageStyles.current}\n >\n <Page\n guides={guides}\n items={page.items}\n page={page}\n pageIndex={index}\n style={pageContainerStyles.current}\n />\n </div>\n </Fragment>\n ))}\n <PageAdder />\n </div>\n </div>\n <ZoomControls />\n {contextMenuProps\n && (\n <ContextMenu\n exceptionalClasses={['contextMenu-button']}\n height={height}\n item={findItemById(contextMenuProps.id, pages)}\n items={findItemsOnPage(contextMenuProps.pageID, pages)}\n onClickOutside={() => setContextMenuProps(null)}\n position={contextMenuProps.position}\n width={width}\n />\n )}\n </main>\n );\n};\n\nexport default Scene;\n"],"names":["Scene","pages","usePropStore","state","onItemAdd","onItemRemove","onAnEventTrigger","settings","onItemChange","activeElement","useBuilderStore","contextMenuProps","isRightPanelOpen","setActiveElement","setContextMenuProps","setIsRightPanelOpen","zoom","useState","itemToPaste","setItemToPaste","lastScrollPosition","pageStyles","useRef","pageContainerStyles","viewPortRef","refs","reduce","acc","curr","id","createRef","useEffect","forEach","page","current","isMultipleItemSelected","length","keyDownCount","guides","useMemo","_pageGuides","pageRef","getBoundingClientRect","height","left","top","width","boundingBox","x","calculateGuidePositions","map","value","y","items","item","scrollTop","foundItem","findItemById","selectedItems","getSelectedItems","moveItemWithKeyboard","event","direction","preventDefault","isLocked","selectNextOrPrevElement","deletedItem","referenceItem","find","_page","pageID","currentIndex","findIndex","shiftKey","onItemRemoveFromPage","e","itemType","handlePaste","itemID","generateId","getMostVisiblePage","offset","keyboardActions","key","metaKey","movementValue","shouldSuppressKeyboardEvent","EVENT_IGNORED_ROLES","some","role","target","closest","handleKeyboardEvent","shouldPaste","arrowKeyCodes","includes","useEventListener","reportLayoutHeight","reportLayoutWidth","parseInt","Number","isNaN","zoomToUse","parseFloat","toFixed","transform","transformOrigin","_jsxs","classNames","_jsx","index","order","toString","findItemsOnPage","position"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA6BMA,KAAK,GAAG,SAARA,KAAQ,GAAM;AAClB,MAAMC,KAAK,GAAGC,YAAY,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACF,KAAV;AAAA,GAAN,CAA1B;AACA,MAAMG,SAAS,GAAGF,YAAY,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACC,SAAV;AAAA,GAAN,CAA9B;AACA,MAAMC,YAAY,GAAGH,YAAY,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACE,YAAV;AAAA,GAAN,CAAjC;AACA,MAAMC,gBAAgB,GAAGJ,YAAY,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACG,gBAAV;AAAA,GAAN,CAArC;AACA,MAAMC,QAAQ,GAAGL,YAAY,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACI,QAAV;AAAA,GAAN,CAA7B;AACA,MAAMC,YAAY,GAAGN,YAAY,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACK,YAAV;AAAA,GAAN,CAAjC;AAEA,MAAMC,aAAa,GAAGC,eAAe,CAAC,UAAAP,KAAK;AAAA,WAAIA,KAAK,CAACM,aAAV;AAAA,GAAN,CAArC;AACA,MAAME,gBAAgB,GAAGD,eAAe,CAAC,UAAAP,KAAK;AAAA,WAAIA,KAAK,CAACQ,gBAAV;AAAA,GAAN,CAAxC;AACA,MAAMC,gBAAgB,GAAGF,eAAe,CAAC,UAAAP,KAAK;AAAA,WAAIA,KAAK,CAACS,gBAAV;AAAA,GAAN,CAAxC;AACA,MAAMC,gBAAgB,GAAGH,eAAe,CAAC,UAAAP,KAAK;AAAA,WAAIA,KAAK,CAACU,gBAAV;AAAA,GAAN,CAAxC;AACA,MAAMC,mBAAmB,GAAGJ,eAAe,CAAC,UAAAP,KAAK;AAAA,WAAIA,KAAK,CAACW,mBAAV;AAAA,GAAN,CAA3C;AACA,MAAMC,mBAAmB,GAAGL,eAAe,CAAC,UAAAP,KAAK;AAAA,WAAIA,KAAK,CAACY,mBAAV;AAAA,GAAN,CAA3C;AACA,MAAMC,IAAI,GAAGN,eAAe,CAAC,UAAAP,KAAK;AAAA,WAAIA,KAAK,CAACa,IAAV;AAAA,GAAN,CAA5B;;AAEA,kBAAsCC,QAAQ,CAAC,IAAD,CAA9C;AAAA;AAAA,MAAOC,WAAP;AAAA,MAAoBC,cAApB;;AACA,MAAMC,kBAAkB,GAAGV,eAAe,CAAC,UAAAP,KAAK;AAAA,WAAIA,KAAK,CAACiB,kBAAV;AAAA,GAAN,CAA1C;AAEA,MAAMC,UAAU,GAAGC,MAAM,CAAC,EAAD,CAAzB;AACA,MAAMC,mBAAmB,GAAGD,MAAM,CAAC,EAAD,CAAlC;AACA,MAAME,WAAW,GAAGF,MAAM,CAAC,EAAD,CAA1B;AAEA;;AACA,MAAMG,IAAI,GAAGH,MAAM,CAACrB,KAAK,CAACyB,MAAN,CAAa,UAACC,GAAD,EAAMC,IAAN,EAAe;AAC9CD,IAAAA,GAAG,CAACC,IAAI,CAACC,EAAN,CAAH,gBAAeC,SAAS,CAAC,IAAD,CAAxB;AACA,WAAOH,GAAP;AACD,GAHmB,EAGjB,EAHiB,CAAD,CAAnB,CAxBkB;;AA8BlBI,EAAAA,SAAS,CAAC,YAAM;AACd9B,IAAAA,KAAK,CAAC+B,OAAN,CAAc,UAAAC,IAAI,EAAI;AACpB,UAAI,CAACR,IAAI,CAACS,OAAL,CAAaD,IAAI,CAACJ,EAAlB,CAAL,EAA4B;AAC1BJ,QAAAA,IAAI,CAACS,OAAL,CAAaD,IAAI,CAACJ,EAAlB,iBAAwBC,SAAS,CAAC,IAAD,CAAjC;AACD;AACF,KAJD;AAKD,GANQ,EAMN,CAAC7B,KAAD,CANM,CAAT;AAQA,MAAMkC,sBAAsB,GAAG1B,aAAa,KAAK,IAAlB,IAA0BA,aAAa,CAAC2B,MAAd,GAAuB,CAAhF;AAEA;;AACA,MAAMC,YAAY,GAAGf,MAAM,CAAC,IAAD,CAA3B;AAEA,MAAMgB,MAAM,GAAGC,OAAO,CAAC,YAAM;AAC3B,WAAOtC,KAAK,CAACyB,MAAN,CAAa,UAACC,GAAD,EAAMM,IAAN,EAAe;AACjC,UAAMO,WAAW,GAAG,EAApB;AACA,UAAMC,OAAO,GAAGhB,IAAI,CAACS,OAAL,CAAaD,IAAI,CAACJ,EAAlB,CAAhB;;AACA,UAAIY,OAAO,IAAIA,OAAO,CAACP,OAAvB,EAAgC;AAC9B,oCAEIO,OAAO,CAACP,OAAR,CAAgBQ,qBAAhB,EAFJ;AAAA,YACEC,OADF,yBACEA,MADF;AAAA,YACUC,IADV,yBACUA,IADV;AAAA,YACgBC,GADhB,yBACgBA,GADhB;AAAA,YACqBC,MADrB,yBACqBA,KADrB;;AAGA,YAAMC,WAAW,GAAG;AAClBJ,UAAAA,MAAM,EAANA,OADkB;AACVC,UAAAA,IAAI,EAAJA,IADU;AACJC,UAAAA,GAAG,EAAHA,GADI;AACCC,UAAAA,KAAK,EAALA;AADD,SAApB;AAGAN,QAAAA,WAAW,CAACO,WAAZ,GAA0B;AACxBC,UAAAA,CAAC,EAAEC,uBAAuB,CAACF,WAAD,EAAc,GAAd,CAAvB,CAA0CG,GAA1C,CAA8C,UAAAC,KAAK;AAAA,mBAAIA,KAAK,GAAGJ,WAAW,CAACH,IAAxB;AAAA,WAAnD,CADqB;AAExBQ,UAAAA,CAAC,EAAEH,uBAAuB,CAACF,WAAD,EAAc,GAAd,CAAvB,CAA0CG,GAA1C,CAA8C,UAAAC,KAAK;AAAA,mBAAIA,KAAK,GAAGJ,WAAW,CAACF,GAAxB;AAAA,WAAnD;AAFqB,SAA1B;AAIAZ,QAAAA,IAAI,CAACoB,KAAL,CAAWrB,OAAX,CAAmB,UAAAsB,IAAI,EAAI;AACzBd,UAAAA,WAAW,CAACc,IAAI,CAACzB,EAAN,CAAX,GAAuB;AACrBmB,YAAAA,CAAC,EAAEC,uBAAuB,CAACK,IAAD,EAAO,GAAP,EAAYtC,IAAZ,CADL;AAErBoC,YAAAA,CAAC,EAAEH,uBAAuB,CAACK,IAAD,EAAO,GAAP,EAAYtC,IAAZ;AAFL,WAAvB;AAID,SALD;AAMD;;AACDW,MAAAA,GAAG,CAACM,IAAI,CAACJ,EAAN,CAAH,GAAeW,WAAf;AACA,aAAOb,GAAP;AACD,KAvBM,EAuBJ,EAvBI,CAAP;AAwBD,GAzBqB,EAyBnB,CAAC1B,KAAD,EAAQe,IAAR,CAzBmB,CAAtB;AA2BAe,EAAAA,SAAS,CAAC,YAAM;AACd,QAAIP,WAAW,CAACU,OAAhB,EAAyB;AACvBV,MAAAA,WAAW,CAACU,OAAZ,CAAoBqB,SAApB,GAAgCnC,kBAAhC;AACD;AACF,GAJQ,EAIN,CAACA,kBAAD,CAJM,CAAT,CAtEkB;;AA4ElB,MAAMoC,SAAS,GAAGC,YAAY,CAAChD,aAAa,KAAK,IAAlB,GAAyB,IAAzB,GAAgCA,aAAa,CAAC,CAAD,CAA9C,EAAmDR,KAAnD,CAA9B;AAEA,MAAMyD,aAAa,GAAGC,gBAAgB,CAAClD,aAAD,EAAgBR,KAAhB,CAAtC;;AACA,MAAM2D,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACC,KAAD,EAAQC,SAAR,EAAmBX,KAAnB,EAA6B;AACxDU,IAAAA,KAAK,CAACE,cAAN;AACAL,IAAAA,aAAa,CAAC1B,OAAd,CAAsB,UAAAsB,IAAI,EAAI;AAC5B,UAAIA,IAAI,CAACU,QAAT,EAAmB;AACjB,eAAO,KAAP;AACD;;AACDxD,MAAAA,YAAY,CACV;AAAEqB,QAAAA,EAAE,EAAEyB,IAAI,CAACzB;AAAX,OADU,kCAGLyB,IAHK,2BAIPQ,SAJO,EAIKR,IAAI,CAACQ,SAAD,CAAJ,GAAkBX,KAJvB,GAAZ;AAOD,KAXD;AAYD,GAdD;;AAgBA,MAAMc,uBAAuB,GAAG,SAA1BA,uBAA0B,CAACJ,KAAD,EAAQK,WAAR,EAAwB;AACtD,QAAIL,KAAK,CAACE,cAAV,EAA0BF,KAAK,CAACE,cAAN;AAC1B,QAAMI,aAAa,GAAGD,WAAW,GAAGA,WAAH,GAAiBV,SAAlD;AAEA,QAAMvB,IAAI,GAAGhC,KAAK,CAACmE,IAAN,CAAW,UAAAC,KAAK;AAAA,aAAIA,KAAK,CAACxC,EAAN,KAAasC,aAAa,CAACG,MAA/B;AAAA,KAAhB,CAAb;AACA,QAAI,CAACrC,IAAD,IAAUA,IAAI,IAAI,CAACA,IAAI,CAACoB,KAAL,CAAWjB,MAAlC,EAA2C,OAAOvB,gBAAgB,CAAC,IAAD,CAAvB;AAC3C,QAAQwC,KAAR,GAAkBpB,IAAlB,CAAQoB,KAAR;AAEA,QAAMkB,YAAY,GAAGlB,KAAK,CAACmB,SAAN,CAAgB,UAAAlB,IAAI;AAAA,aAAIA,IAAI,CAACzB,EAAL,KAAYsC,aAAa,CAACtC,EAA9B;AAAA,KAApB,CAArB,CARsD;;AAWtD,QAAIwB,KAAK,CAACjB,MAAN,KAAiB,CAAjB,IAAsB8B,WAA1B,EAAuC;AACrC,aAAOrD,gBAAgB,CAAC,IAAD,CAAvB;AACD;;AAED,QAAIgD,KAAK,CAACY,QAAV,EAAoB;AAClB,UAAIpB,KAAK,CAACkB,YAAY,GAAG,CAAhB,CAAT,EAA6B1D,gBAAgB,CAACwC,KAAK,CAACkB,YAAY,GAAG,CAAhB,CAAL,CAAwB1C,EAAzB,CAAhB,CAA7B,KACKhB,gBAAgB,CAACwC,KAAK,CAACA,KAAK,CAACjB,MAAN,GAAe,CAAhB,CAAL,CAAwBP,EAAzB,CAAhB;AACN,KAHD,MAGO,IAAIwB,KAAK,CAACkB,YAAY,GAAG,CAAhB,CAAT,EAA6B;AAClC1D,MAAAA,gBAAgB,CAACwC,KAAK,CAACkB,YAAY,GAAG,CAAhB,CAAL,CAAwB1C,EAAzB,CAAhB;AACD,KAFM,MAEAhB,gBAAgB,CAACwC,KAAK,CAAC,CAAD,CAAL,CAASxB,EAAV,CAAhB;AACR,GArBD;;AAuBA,MAAM6C,oBAAoB,GAAG,SAAvBA,oBAAuB,CAAAC,CAAC,EAAI;AAChC;AACAA,IAAAA,CAAC,CAACZ,cAAF;AACA,QAAI5B,sBAAJ,EAA4B;;AAC5B,QAAIqB,SAAS,CAACQ,QAAd,EAAwB;AACtB,aAAO,KAAP;AACD;;AACDnD,IAAAA,gBAAgB,CAAC,IAAD,CAAhB;AACAR,IAAAA,YAAY,CAACmD,SAAD,CAAZ;AACAS,IAAAA,uBAAuB,CAAC;AAAEQ,MAAAA,QAAQ,EAAE;AAAZ,KAAD,EAAsBjB,SAAtB,CAAvB;AACAlD,IAAAA,gBAAgB,CAAC,YAAD,EAAekD,SAAS,CAACoB,QAAzB,CAAhB;AACD,GAXD;;AAaA,MAAMC,WAAW,GAAG,SAAdA,WAAc,GAAM;AACxB,QAAI1C,sBAAJ,EAA4B;AAC5B,QAAM2C,MAAM,GAAGC,UAAU,EAAzB;AACA,QAAMT,MAAM,GAAGU,kBAAkB,CAAC,IAAD,CAAjC;AACA,QAAMC,MAAM,GAAG/D,WAAW,CAACoD,MAAZ,KAAuBA,MAAvB,GAAgC,EAAhC,GAAqC,CAApD;;AAEA,QAAMhB,IAAI,mCACLpC,WADK;AAERW,MAAAA,EAAE,EAAEiD,MAFI;AAGRlC,MAAAA,IAAI,EAAE1B,WAAW,CAAC0B,IAAZ,GAAmBqC,MAHjB;AAIRX,MAAAA,MAAM,EAANA,MAJQ;AAKRzB,MAAAA,GAAG,EAAE3B,WAAW,CAAC2B,GAAZ,GAAkBoC;AALf,MAAV;;AAQA7E,IAAAA,SAAS,CAACkD,IAAD,CAAT;AAEAhD,IAAAA,gBAAgB,CAAC,WAAD,EAAcY,WAAW,CAAC0D,QAA1B,CAAhB;AACA/D,IAAAA,gBAAgB,CAACiE,MAAD,CAAhB,CAjBwB;;AAmBxB3D,IAAAA,cAAc,CAACmC,IAAD,CAAd;AACD,GApBD;;AAsBA,MAAM4B,eAAe,GAAG,SAAlBA,eAAkB,CAAArB,KAAK,EAAI;AAC/B,QACEsB,GADF,GAIItB,KAJJ,CACEsB,GADF;AAAA,QAEEC,OAFF,GAIIvB,KAJJ,CAEEuB,OAFF;AAAA,QAGEX,QAHF,GAIIZ,KAJJ,CAGEY,QAHF;;AAMA,QAAIW,OAAJ,EAAa;AACX,UAAID,GAAG,KAAK,GAAZ,EAAiB;AACf;AACA,YAAIhD,sBAAJ,EAA4B;AAC5B0B,QAAAA,KAAK,CAACE,cAAN,GAHe;;AAIfzD,QAAAA,gBAAgB,CACdkD,SAAS,CAACQ,QAAV,GAAqB,kBAArB,GAA0C,gBAD5B,EAEdR,SAAS,CAACoB,QAFI,CAAhB;AAIApE,QAAAA,YAAY,CACV;AAAEqB,UAAAA,EAAE,EAAE2B,SAAS,CAAC3B;AAAhB,SADU,EAEV;AAAEmC,UAAAA,QAAQ,EAAER,SAAS,CAACQ,QAAV,GAAqB,KAArB,GAA6B;AAAzC,SAFU,CAAZ;AAIA;AACD;;AAED,UAAImB,GAAG,KAAK,GAAR,IAAeA,GAAG,KAAK,GAA3B,EAAgC;AAC9B,YAAIhD,sBAAJ,EAA4B,OADE;;AAG9B,YAAIgD,GAAG,KAAK,GAAZ,EAAiB;AACfT,UAAAA,oBAAoB,CAACb,KAAD,CAApB;AACAvD,UAAAA,gBAAgB,CAAC,SAAD,EAAYkD,SAAS,CAACoB,QAAtB,CAAhB;AACD,SAHD,MAGO;AACLtE,UAAAA,gBAAgB,CAAC,UAAD,EAAakD,SAAS,CAACoB,QAAvB,CAAhB;AACD;;AAEDzD,QAAAA,cAAc,CAACqC,SAAD,CAAd;AACA;AACD;;AAED,UAAIA,SAAS,IAAI2B,GAAG,KAAK,GAAzB,EAA8B;AAC5B,YAAIhD,sBAAJ,EAA4B,OADA;;AAG5B0B,QAAAA,KAAK,CAACE,cAAN;AACA,YAAMe,MAAM,GAAGC,UAAU,EAAzB;AACA3E,QAAAA,SAAS,iCACJoD,SADI;AAEP3B,UAAAA,EAAE,EAAEiD,MAFG;AAGPlC,UAAAA,IAAI,EAAEY,SAAS,CAACZ,IAAV,GAAiB,EAHhB;AAIPC,UAAAA,GAAG,EAAEW,SAAS,CAACX,GAAV,GAAgB;AAJd,WAAT;AAMAvC,QAAAA,gBAAgB,CAAC,eAAD,EAAkBkD,SAAS,CAACoB,QAA5B,CAAhB;AACA/D,QAAAA,gBAAgB,CAACiE,MAAD,CAAhB;;AACA,YAAI,CAAClE,gBAAL,EAAuB;AACrBG,UAAAA,mBAAmB,CAAC,IAAD,CAAnB;AACD;;AACD;AACD;AACF;;AAEDsB,IAAAA,YAAY,CAACH,OAAb;AACA,QAAMmD,aAAa,GAAGZ,QAAQ,GAAG,EAAH,GAAQ,IAAIpC,YAAY,CAACH,OAAvD,CA1D+B;;AA6D/B,YAAQiD,GAAR;AACA,WAAK,WAAL;AAAkB,eAAOT,oBAAoB,CAACb,KAAD,CAA3B;;AAClB,WAAK,QAAL;AAAe,eAAOa,oBAAoB,CAACb,KAAD,CAA3B;;AACf,WAAK,QAAL;AAAe,eAAOhD,gBAAgB,CAAC,IAAD,CAAvB;;AACf,WAAK,WAAL;AAAkB,eAAO+C,oBAAoB,CAACC,KAAD,EAAQ,MAAR,EAAgB,CAACwB,aAAjB,CAA3B;;AAClB,WAAK,SAAL;AAAgB,eAAOzB,oBAAoB,CAACC,KAAD,EAAQ,KAAR,EAAe,CAACwB,aAAhB,CAA3B;;AAChB,WAAK,YAAL;AAAmB,eAAOzB,oBAAoB,CAACC,KAAD,EAAQ,MAAR,EAAgBwB,aAAhB,CAA3B;;AACnB,WAAK,WAAL;AAAkB,eAAOzB,oBAAoB,CAACC,KAAD,EAAQ,KAAR,EAAewB,aAAf,CAA3B;;AAClB,WAAK,KAAL;AAAY,eAAOpB,uBAAuB,CAACJ,KAAD,CAA9B;AARZ;AAWD,GAxED;;AA0EA,MAAMyB,2BAA2B,GAAG,SAA9BA,2BAA8B,CAAAX,CAAC;AAAA,WACnCY,mBAAmB,CAACC,IAApB,CAAyB,UAAAC,IAAI;AAAA,aAAId,CAAC,CAACe,MAAF,CAASC,OAAT,iBAA0BF,IAA1B,OAAJ;AAAA,KAA7B,CADmC;AAAA,GAArC;;AAIA,MAAMG,mBAAmB,GAAG,SAAtBA,mBAAsB,CAAAjB,CAAC,EAAI;AAC/B,QAAMkB,WAAW,GAAG3E,WAAW,IAAIyD,CAAC,CAACQ,GAAF,KAAU,GAAzB,IAAgCR,CAAC,CAACS,OAAtD;;AAEA,QAAIE,2BAA2B,CAACX,CAAD,CAA/B,EAAoC;AAClC;AACD;;AAED,QAAIlE,aAAa,IAAI,CAACoF,WAAtB,EAAmC;AACjC,UAAMC,aAAa,GAAG,CAAC,WAAD,EAAc,SAAd,EAAyB,WAAzB,EAAsC,aAAtC,CAAtB;AACA,UAAIA,aAAa,CAACC,QAAd,CAAuBpB,CAAC,CAACQ,GAAzB,CAAJ,EAAmCR,CAAC,CAACZ,cAAF;AACnCmB,MAAAA,eAAe,CAACP,CAAD,CAAf;AACD,KAJD,MAIO,IAAIkB,WAAJ,EAAiB;AACtBhB,MAAAA,WAAW;AACZ;AACF,GAdD;;AAgBAmB,EAAAA,gBAAgB,CAAC,SAAD,EAAYJ,mBAAZ,CAAhB;AACAI,EAAAA,gBAAgB,CAAC,OAAD,EAAU,YAAM;AAAE3D,IAAAA,YAAY,CAACH,OAAb,GAAuB,CAAvB;AAA2B,GAA7C,CAAhB;AAEA,8BAA+D3B,QAA/D,CAAQ0F,kBAAR;AAAA,MAAQA,kBAAR,sCAA6B,GAA7B;AAAA,+BAA+D1F,QAA/D,CAAkC2F,iBAAlC;AAAA,MAAkCA,iBAAlC,uCAAsD,IAAtD,0BA1PkB;;AA6PlB,MAAIpD,KAAK,GAAGqD,QAAQ,CAACD,iBAAD,EAAoB,EAApB,CAApB;AACA,MAAIvD,MAAM,GAAGwD,QAAQ,CAACF,kBAAD,EAAqB,EAArB,CAArB;AACAnD,EAAAA,KAAK,GAAGsD,MAAM,CAACC,KAAP,CAAavD,KAAb,IAAsB,CAAtB,GAA0BA,KAAlC;AACAH,EAAAA,MAAM,GAAGyD,MAAM,CAACC,KAAP,CAAa1D,MAAb,IAAuB,CAAvB,GAA2BA,MAApC;AACA,MAAM2D,SAAS,GAAGF,MAAM,CAACC,KAAP,CAAarF,IAAb,IAAqB,CAArB,GAAyBA,IAA3C;AAEAK,EAAAA,UAAU,CAACa,OAAX,GAAqB;AACnBS,IAAAA,MAAM,EAAE4D,UAAU,CAAC,CAAC5D,MAAM,GAAG2D,SAAV,EAAqBE,OAArB,CAA6B,CAA7B,CAAD,CADC;AAEnB1D,IAAAA,KAAK,EAAEyD,UAAU,CAAC,CAACzD,KAAK,GAAGwD,SAAT,EAAoBE,OAApB,CAA4B,CAA5B,CAAD;AAFE,GAArB;AAIAjF,EAAAA,mBAAmB,CAACW,OAApB,GAA8B;AAC5BS,IAAAA,MAAM,EAANA,MAD4B;AAE5B8D,IAAAA,SAAS,kBAAWH,SAAX,MAFmB;AAG5BI,IAAAA,eAAe,EAAE,KAHW;AAI5B5D,IAAAA,KAAK,EAALA;AAJ4B,GAA9B;AAOA,sBACE6D;AAAM;AACJ,IAAA,SAAS,EAAEC,WADb;AAAA,4BAGEC,IAAC,kBAAD;AACE,MAAA,MAAM,EAAEvE,MADV;AAEE,MAAA,QAAQ,EAAEb,IAAI,CAACS,OAFjB;AAGE,MAAA,KAAK,EAAEjC;AAHT,MAHF,eAQE4G;AACE,MAAA,GAAG,EAAErF,WADP;AAEE,MAAA,SAAS,EAAEoF,QAFb;AAGE,mBAAW5F,IAHb;AAAA,6BAKE2F;AACE,QAAA,SAAS,EAAEC,MADb;AAAA,mBAGG3G,KAAK,CAACiD,GAAN,CAAU,UAACjB,MAAD,EAAO6E,KAAP;AAAA;AAAA;AACT;AACA,iBAAC,QAAD;AAAA,sCACED,IAAC,WAAD;AACE,gBAAA,KAAK,EAAE5E,MAAI,CAAC8E,KADd;AAEE,gBAAA,MAAM,EAAE9E,MAAI,CAACJ;AAFf,gBADF,eAKEgF;AAEE,gBAAA,GAAG,EAAEpF,IAAI,CAACS,OAAL,CAAaD,MAAI,CAACJ,EAAlB,CAFP;AAGE,gBAAA,SAAS,EAAE+E,IAHb;AAIE,2BAAS3E,MAAI,CAACJ,EAJhB;AAKE,8BAAYI,MAAI,CAAC8E,KALnB;AAME,gBAAA,EAAE,8BAAuB9E,MAAI,CAACJ,EAAL,CAAQmF,QAAR,EAAvB,CANJ;AAOE,gBAAA,KAAK,EAAE3F,UAAU,CAACa,OAPpB;AAAA,uCASE2E,IAAC,IAAD;AACE,kBAAA,MAAM,EAAEvE,MADV;AAEE,kBAAA,KAAK,EAAEL,MAAI,CAACoB,KAFd;AAGE,kBAAA,IAAI,EAAEpB,MAHR;AAIE,kBAAA,SAAS,EAAE6E,KAJb;AAKE,kBAAA,KAAK,EAAEvF,mBAAmB,CAACW;AAL7B;AATF,gCACeD,MAAI,CAACJ,EADpB,EALF;AAAA,eAAeI,MAAI,CAACJ,EAApB;AAFS;AAAA,SAAV,CAHH,eA6BEgF,IAAC,SAAD,KA7BF;AAAA;AALF,MARF,eA6CEA,IAAC,YAAD,KA7CF,EA8CGlG,gBAAgB,iBAEbkG,IAAC,WAAD;AACE,MAAA,kBAAkB,EAAE,CAAC,oBAAD,CADtB;AAEE,MAAA,MAAM,EAAElE,MAFV;AAGE,MAAA,IAAI,EAAEc,YAAY,CAAC9C,gBAAgB,CAACkB,EAAlB,EAAsB5B,KAAtB,CAHpB;AAIE,MAAA,KAAK,EAAEgH,eAAe,CAACtG,gBAAgB,CAAC2D,MAAlB,EAA0BrE,KAA1B,CAJxB;AAKE,MAAA,cAAc,EAAE;AAAA,eAAMa,mBAAmB,CAAC,IAAD,CAAzB;AAAA,OALlB;AAME,MAAA,QAAQ,EAAEH,gBAAgB,CAACuG,QAN7B;AAOE,MAAA,KAAK,EAAEpE;AAPT,MAhDN;AAAA,IADF;AA6DD;;;;"}
@@ -1,16 +1,14 @@
1
1
  import 'core-js/modules/es.array.concat.js';
2
2
  import 'core-js/modules/es.array.from.js';
3
3
  import 'core-js/modules/es.array.includes.js';
4
- import 'core-js/modules/es.object.keys.js';
5
4
  import 'core-js/modules/es.string.iterator.js';
6
- import 'core-js/modules/web.dom-collections.for-each.js';
7
5
  import { memo, useState, useEffect } from 'react';
8
6
  import PropTypes from 'prop-types';
9
7
  import { useDrag } from 'react-dnd';
10
8
  import { getEmptyImage } from 'react-dnd-html5-backend';
11
9
  import ItemPositioner from '../ItemPositioner.js';
12
10
  import { DRAGGABLE_ITEM_TYPE } from '../../constants/itemTypes.js';
13
- import { getStyles, calculateGuidePositions, proximityListener, getPosition } from '../../utils/functions.js';
11
+ import { isSelectedItem, getStyles, getPosition } from '../../utils/functions.js';
14
12
  import PageItemResizer from '../PageItemResizer.js';
15
13
  import ErrorBoundry from '../ErrorBoundary.js';
16
14
  import { reportItem } from '../../constants/classNames.js';
@@ -46,22 +44,10 @@ var reportItemStyle = {
46
44
  var DraggableItem = function DraggableItem(_ref) {
47
45
  var _ref$children = _ref.children,
48
46
  children = _ref$children === void 0 ? null : _ref$children,
49
- _ref$guides = _ref.guides,
50
- guides = _ref$guides === void 0 ? {} : _ref$guides,
51
- _ref$isMultipleItemSe = _ref.isMultipleItemSelected,
52
- isMultipleItemSelected = _ref$isMultipleItemSe === void 0 ? false : _ref$isMultipleItemSe,
53
- _ref$isResize = _ref.isResize,
54
- isResize = _ref$isResize === void 0 ? false : _ref$isResize,
55
- _ref$isSelected = _ref.isSelected,
56
- isSelected = _ref$isSelected === void 0 ? false : _ref$isSelected,
57
47
  _ref$item = _ref.item,
58
48
  _item2 = _ref$item === void 0 ? {} : _ref$item,
59
- _ref$matches = _ref.matches,
60
- matches = _ref$matches === void 0 ? {} : _ref$matches,
61
- _ref$setIsResize = _ref.setIsResize,
62
- setIsResize = _ref$setIsResize === void 0 ? function () {} : _ref$setIsResize,
63
- _ref$setMatches = _ref.setMatches,
64
- setMatches = _ref$setMatches === void 0 ? function () {} : _ref$setMatches;
49
+ handleMatches = _ref.handleMatches,
50
+ getIntersectionsFromMatches = _ref.getIntersectionsFromMatches;
65
51
 
66
52
  var height = _item2.height,
67
53
  id = _item2.id,
@@ -100,15 +86,15 @@ var DraggableItem = function DraggableItem(_ref) {
100
86
  var onItemResize = usePropStore(function (state) {
101
87
  return state.onItemResize;
102
88
  });
89
+ var activeElement = useBuilderStore(function (state) {
90
+ return state.activeElement;
91
+ });
103
92
  var setActiveElement = useBuilderStore(function (state) {
104
93
  return state.setActiveElement;
105
94
  });
106
95
  var setContextMenuProps = useBuilderStore(function (state) {
107
96
  return state.setContextMenuProps;
108
97
  });
109
- var zoom = useBuilderStore(function (state) {
110
- return state.zoom;
111
- });
112
98
  var isTextEditorOpen = useBuilderStore(function (state) {
113
99
  return state.isTextEditorOpen;
114
100
  });
@@ -118,6 +104,11 @@ var DraggableItem = function DraggableItem(_ref) {
118
104
  var setIsRightPanelOpen = useBuilderStore(function (state) {
119
105
  return state.setIsRightPanelOpen;
120
106
  });
107
+ var setIsResize = useBuilderStore(function (state) {
108
+ return state.setIsResize;
109
+ });
110
+ var isSelected = isSelectedItem(_item2.id, activeElement);
111
+ var isMultipleItemSelected = activeElement !== null && activeElement.length > 1;
121
112
 
122
113
  var select = function select(event) {
123
114
  if (!isSelected) {
@@ -189,21 +180,19 @@ var DraggableItem = function DraggableItem(_ref) {
189
180
  }
190
181
  }, [preview]);
191
182
  useEffect(function () {
192
- if (!isResize) {
193
- setResizeSize(function (prev) {
194
- if (prev.left !== left || prev.top !== top || prev.width !== width || prev.height !== height) {
195
- return _objectSpread(_objectSpread({}, prev), {}, {
196
- height: height,
197
- left: left,
198
- top: top,
199
- width: width
200
- });
201
- }
183
+ setResizeSize(function (prev) {
184
+ if (prev.left !== left || prev.top !== top || prev.width !== width || prev.height !== height) {
185
+ return _objectSpread(_objectSpread({}, prev), {}, {
186
+ height: height,
187
+ left: left,
188
+ top: top,
189
+ width: width
190
+ });
191
+ }
202
192
 
203
- return prev;
204
- });
205
- }
206
- }, [left, top, width, height, isResize]);
193
+ return prev;
194
+ });
195
+ }, [left, top, width, height]);
207
196
 
208
197
  var onResizeStop = function onResizeStop(deltaWidth, deltaHeight, direction) {
209
198
  var activeItem = _objectSpread(_objectSpread({}, _item2), {}, {
@@ -213,28 +202,11 @@ var DraggableItem = function DraggableItem(_ref) {
213
202
 
214
203
  if (/left/i.test(direction)) activeItem.left = activeItem.left - deltaWidth;
215
204
  if (/top/i.test(direction)) activeItem.top = activeItem.top - deltaHeight;
216
- var newActiveBoxLeft = activeItem.left;
217
- var newActiveBoxTop = activeItem.top;
218
- Object.keys(matches).forEach(function (axis) {
219
- var _matches$axis = matches[axis],
220
- activeBoxGuides = _matches$axis.activeBoxGuides,
221
- matchedArray = _matches$axis.matchedArray,
222
- proximity = _matches$axis.proximity;
223
- var activeBoxProximityIndex = proximity.activeBoxIndex;
224
- var matchedBoxProximityIndex = proximity.matchedBoxIndex;
225
-
226
- if (axis === 'x') {
227
- if (activeBoxGuides[activeBoxProximityIndex] > matchedArray[matchedBoxProximityIndex]) {
228
- newActiveBoxLeft = activeItem.left - proximity.value;
229
- } else {
230
- newActiveBoxLeft = activeItem.left + proximity.value;
231
- }
232
- } else if (activeBoxGuides[activeBoxProximityIndex] > matchedArray[matchedBoxProximityIndex]) {
233
- newActiveBoxTop = activeItem.top - proximity.value;
234
- } else {
235
- newActiveBoxTop = activeItem.top + proximity.value;
236
- }
237
- });
205
+
206
+ var _getIntersectionsFrom = getIntersectionsFromMatches(activeItem),
207
+ newActiveBoxLeft = _getIntersectionsFrom.newActiveBoxLeft,
208
+ newActiveBoxTop = _getIntersectionsFrom.newActiveBoxTop;
209
+
238
210
  var newResizeSize = {
239
211
  height: activeItem.height,
240
212
  left: activeItem.left,
@@ -262,9 +234,7 @@ var DraggableItem = function DraggableItem(_ref) {
262
234
  };
263
235
 
264
236
  var onResize = function onResize(deltaWidth, deltaHeight, direction) {
265
- if (!isResize) {
266
- setIsResize(true);
267
- }
237
+ setIsResize(true);
268
238
 
269
239
  var activeItem = _objectSpread(_objectSpread({}, _item2), {}, {
270
240
  height: _item2.height + deltaHeight,
@@ -273,13 +243,7 @@ var DraggableItem = function DraggableItem(_ref) {
273
243
 
274
244
  if (/left/i.test(direction)) activeItem.left = activeItem.left - deltaWidth;
275
245
  if (/top/i.test(direction)) activeItem.top = activeItem.top - deltaHeight;
276
-
277
- var _guides = _objectSpread(_objectSpread({}, guides), {}, _defineProperty({}, _item2.id, _objectSpread(_objectSpread({}, guides[_item2.id]), {}, {
278
- x: calculateGuidePositions(activeItem, 'x', zoom),
279
- y: calculateGuidePositions(activeItem, 'y', zoom)
280
- })));
281
-
282
- setMatches(proximityListener(_item2.id, _guides));
246
+ handleMatches(activeItem);
283
247
  setResizeSize({
284
248
  height: activeItem.height,
285
249
  left: activeItem.left,
@@ -404,31 +368,23 @@ var DraggableItem = function DraggableItem(_ref) {
404
368
  deleteItem: deleteItem,
405
369
  duplicateItem: duplicateItem,
406
370
  isDragging: isDragging,
407
- isMultipleItemSelected: isMultipleItemSelected,
408
- isSelectedElement: isSelected,
409
- isTextEditorOpen: isTextEditorOpen,
410
371
  item: _item2,
411
372
  onClickOutside: onClickOutside,
412
373
  onResize: onResize,
413
374
  onResizeStop: onResizeStop,
414
375
  pageID: pageID,
415
- setActiveElement: setActiveElement,
416
- setIsRightPanelOpen: setIsRightPanelOpen,
417
376
  stateHeight: stateHeight,
418
377
  stateLeft: stateLeft,
419
378
  stateTop: stateTop,
420
- stateWidth: stateWidth,
421
- zoom: zoom
379
+ stateWidth: stateWidth
422
380
  })]
423
381
  });
424
382
  };
425
383
 
426
384
  DraggableItem.propTypes = {
427
385
  children: PropTypes.any,
428
- guides: PropTypes.shape({}),
429
- isMultipleItemSelected: PropTypes.bool,
430
- isResize: PropTypes.bool,
431
- isSelected: PropTypes.bool,
386
+ getIntersectionsFromMatches: PropTypes.func,
387
+ handleMatches: PropTypes.func,
432
388
  item: PropTypes.shape({
433
389
  height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
434
390
  id: PropTypes.string,
@@ -438,10 +394,7 @@ DraggableItem.propTypes = {
438
394
  pageID: PropTypes.string,
439
395
  top: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
440
396
  width: PropTypes.oneOfType([PropTypes.number, PropTypes.string])
441
- }),
442
- matches: PropTypes.shape({}),
443
- setIsResize: PropTypes.func,
444
- setMatches: PropTypes.func
397
+ })
445
398
  };
446
399
  var DraggableItem$1 = /*#__PURE__*/memo(DraggableItem);
447
400
 
@@ -1 +1 @@
1
- {"version":3,"file":"DraggableItem.js","sources":["../../../../src/components/DraggableItem/DraggableItem.js"],"sourcesContent":["import { useEffect, useState, memo } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDrag } from 'react-dnd';\nimport { getEmptyImage } from 'react-dnd-html5-backend';\nimport ItemPositioner from '../ItemPositioner';\nimport { DRAGGABLE_ITEM_TYPE } from '../../constants/itemTypes';\nimport {\n getStyles,\n getPosition, calculateGuidePositions, proximityListener,\n} from '../../utils/functions';\nimport PageItemResizer from '../PageItemResizer';\nimport ErrorBoundary from '../ErrorBoundary';\nimport * as classNames from '../../constants/classNames';\nimport generateId from '../../utils/generateId';\nimport {\n addEventListenerForSidebar,\n removeEventListenerForSidebar,\n} from '../../utils/scrollZoneFunctions';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport { usePropStore } from '../../contexts/PropContext';\n\nconst exceptionalClassesForClickOutside = ['contextMenu-itemLabel', 'contextMenu-item'];\nconst reportItemStyle = {\n height: '100%',\n width: '100%',\n};\n\nconst DraggableItem = ({\n children = null,\n guides = {},\n isMultipleItemSelected = false,\n isResize = false,\n isSelected = false,\n item = {},\n matches = {},\n setIsResize = () => {},\n setMatches = () => {},\n}) => {\n const {\n height,\n id,\n isLocked,\n left,\n pageID,\n top,\n width,\n } = item;\n\n const [\n {\n height: stateHeight,\n left: stateLeft,\n top: stateTop,\n width: stateWidth,\n },\n setResizeSize,\n ] = useState({\n height,\n left,\n top,\n width,\n });\n\n const onAnEventTrigger = usePropStore(state => state.onAnEventTrigger);\n const onItemAdd = usePropStore(state => state.onItemAdd);\n const onItemChange = usePropStore(state => state.onItemChange);\n const onItemRemove = usePropStore(state => state.onItemRemove);\n const onItemResize = usePropStore(state => state.onItemResize);\n const setActiveElement = useBuilderStore(state => state.setActiveElement);\n const setContextMenuProps = useBuilderStore(state => state.setContextMenuProps);\n const zoom = useBuilderStore(state => state.zoom);\n const isTextEditorOpen = useBuilderStore(state => state.isTextEditorOpen);\n const isRightPanelOpen = useBuilderStore(state => state.isRightPanelOpen);\n const setIsRightPanelOpen = useBuilderStore(state => state.setIsRightPanelOpen);\n\n const select = event => {\n if (!isSelected) {\n if (!event || !event.metaKey) {\n if (isLocked) {\n setActiveElement(id, false);\n setIsRightPanelOpen(false);\n } else {\n setActiveElement(id);\n }\n } else {\n setActiveElement(id, undefined, true);\n }\n }\n };\n\n const canDrag = !item.isLocked && !isTextEditorOpen;\n\n const [{ isDragging }, drag, preview] = useDrag(() => ({\n canDrag: () => canDrag,\n collect: monitor => ({\n isDragging: monitor.isDragging(),\n }),\n end: (_item, monitor) => {\n const dropResult = monitor.getDropResult();\n if (dropResult && dropResult[id]) {\n const { left: dropLeft, top: dropTop } = dropResult[id];\n setResizeSize(prev => {\n return {\n height: prev.height,\n left: dropLeft,\n top: dropTop,\n width: prev.width,\n };\n });\n }\n removeEventListenerForSidebar();\n },\n isDragging: () => (isMultipleItemSelected && isSelected) || (!isMultipleItemSelected && isSelected),\n item: () => {\n select();\n addEventListenerForSidebar();\n return item;\n },\n type: DRAGGABLE_ITEM_TYPE,\n }), [\n item,\n canDrag,\n id,\n isMultipleItemSelected,\n isSelected,\n ]);\n\n useEffect(() => {\n if (preview) {\n preview(getEmptyImage(), { captureDraggingState: true });\n }\n }, [preview]);\n\n useEffect(() => {\n if (!isResize) {\n setResizeSize(prev => {\n if (prev.left !== left || prev.top !== top || prev.width !== width || prev.height !== height) {\n return {\n ...prev,\n height,\n left,\n top,\n width,\n };\n }\n\n return prev;\n });\n }\n }, [left, top, width, height, isResize]);\n\n const onResizeStop = (deltaWidth, deltaHeight, direction) => {\n const activeItem = {\n ...item,\n height: item.height + deltaHeight,\n width: item.width + deltaWidth,\n };\n if (/left/i.test(direction)) activeItem.left = activeItem.left - deltaWidth;\n if (/top/i.test(direction)) activeItem.top = activeItem.top - deltaHeight;\n let newActiveBoxLeft = activeItem.left;\n let newActiveBoxTop = activeItem.top;\n Object.keys(matches).forEach(axis => {\n const { activeBoxGuides, matchedArray, proximity } = matches[axis];\n const activeBoxProximityIndex = proximity.activeBoxIndex;\n const matchedBoxProximityIndex = proximity.matchedBoxIndex;\n if (axis === 'x') {\n if (activeBoxGuides[activeBoxProximityIndex] > matchedArray[matchedBoxProximityIndex]) {\n newActiveBoxLeft = activeItem.left - proximity.value;\n } else {\n newActiveBoxLeft = activeItem.left + proximity.value;\n }\n } else if (activeBoxGuides[activeBoxProximityIndex]\n > matchedArray[matchedBoxProximityIndex]) {\n newActiveBoxTop = activeItem.top - proximity.value;\n } else {\n newActiveBoxTop = activeItem.top + proximity.value;\n }\n });\n\n let newResizeSize = {\n height: activeItem.height,\n left: activeItem.left,\n top: activeItem.top,\n width: activeItem.width,\n };\n\n if (!(/top/i.test(direction) && /left/i.test(direction))) {\n newResizeSize = {\n ...newResizeSize,\n height: newResizeSize.height + (newActiveBoxTop - activeItem.top),\n width: newResizeSize.width + (newActiveBoxLeft - activeItem.left),\n };\n }\n if (/top/i.test(direction) && newActiveBoxTop !== newResizeSize.top) {\n newResizeSize.top = newActiveBoxTop;\n }\n if (/left/i.test(direction) && newActiveBoxLeft !== newResizeSize.left) {\n newResizeSize.left = newActiveBoxLeft;\n }\n setIsResize(false);\n onItemResize(item, newResizeSize);\n };\n\n const onResize = (deltaWidth, deltaHeight, direction) => {\n if (!isResize) { setIsResize(true); }\n const activeItem = {\n ...item,\n height: item.height + deltaHeight,\n width: item.width + deltaWidth,\n };\n if (/left/i.test(direction)) activeItem.left = activeItem.left - deltaWidth;\n if (/top/i.test(direction)) activeItem.top = activeItem.top - deltaHeight;\n const _guides = {\n ...guides,\n [item.id]: {\n ...guides[item.id],\n x: calculateGuidePositions(activeItem, 'x', zoom),\n y: calculateGuidePositions(activeItem, 'y', zoom),\n },\n };\n setMatches(proximityListener(item.id, _guides));\n setResizeSize({\n height: activeItem.height,\n left: activeItem.left,\n top: activeItem.top,\n width: activeItem.width,\n });\n };\n\n const deleteItem = () => {\n setIsRightPanelOpen(false);\n setActiveElement(null);\n onItemRemove(item);\n onAnEventTrigger('removeItem', item.itemType);\n };\n\n const duplicateItem = () => {\n const itemID = generateId();\n onItemAdd({\n ...item,\n id: itemID,\n left: item.left + 50,\n top: item.top + 50,\n });\n onAnEventTrigger('duplicateItem', item.itemType);\n setActiveElement(itemID);\n if (!isRightPanelOpen) {\n setIsRightPanelOpen(true);\n }\n };\n\n const onClickOutside = event => {\n // clickoutside should not work for scrollbar\n const viewPort = document.querySelector('.jfReport-viewport');\n const { clientHeight, offsetHeight } = viewPort;\n const headerHeight = window.innerHeight - offsetHeight;\n if (event.clientY - headerHeight >= clientHeight\n || Array.from(event.target.classList)\n .some(xClass => exceptionalClassesForClickOutside.includes(xClass))) {\n return;\n }\n setIsRightPanelOpen(false);\n setActiveElement(null);\n };\n\n const onContextMenuClick = e => {\n if (\n e.target.contentEditable === 'true'\n || isTextEditorOpen\n ) {\n // Dont override behaviour on text edits.\n return;\n }\n\n e.preventDefault();\n onAnEventTrigger('openContextMenu', item.itemType);\n setContextMenuProps({\n id,\n pageID,\n position: getPosition(e),\n });\n };\n\n const onDoubleClick = e => {\n if (\n e.target.contentEditable === 'true'\n || isTextEditorOpen\n ) {\n // Dont override behaviour on text edits.\n return;\n }\n\n setIsRightPanelOpen(true);\n };\n\n const duplicateWithAltKey = e => {\n if (e.altKey) {\n const itemID = generateId();\n const itemToAdd = item;\n setTimeout(() => {\n onItemAdd({\n ...itemToAdd,\n id: itemID,\n left: itemToAdd.left,\n top: itemToAdd.top,\n });\n onAnEventTrigger('duplicateItem', itemToAdd.itemType);\n });\n }\n };\n\n const changeLockStatus = () => {\n onAnEventTrigger(item.isLocked ? 'unlockReportItem' : 'lockReportItem', item.itemType);\n onItemChange({ id: item.id }, { isLocked: item.isLocked ? false : true });\n if (!item.isLocked) {\n setActiveElement(item.id, false);\n setIsRightPanelOpen(false);\n }\n };\n\n return (\n <ErrorBoundary>\n <ItemPositioner\n classNames={`reportItemWrapper${isSelected ? ' isSelected' : ''}`}\n style={{\n ...getStyles(left, top, isDragging),\n height: stateHeight,\n left: stateLeft,\n top: stateTop,\n width: stateWidth,\n }}\n >\n <div\n ref={drag}\n className={`${classNames.reportItem}${isLocked ? ' isLocked' : ''}`}\n onContextMenu={onContextMenuClick}\n onDoubleClick={onDoubleClick}\n onDragStart={duplicateWithAltKey}\n onMouseDown={select}\n style={reportItemStyle}\n >\n {children}\n </div>\n </ItemPositioner>\n <PageItemResizer\n changeLockStatus={changeLockStatus}\n deleteItem={deleteItem}\n duplicateItem={duplicateItem}\n isDragging={isDragging}\n isMultipleItemSelected={isMultipleItemSelected}\n isSelectedElement={isSelected}\n isTextEditorOpen={isTextEditorOpen}\n item={item}\n onClickOutside={onClickOutside}\n onResize={onResize}\n onResizeStop={onResizeStop}\n pageID={pageID}\n setActiveElement={setActiveElement}\n setIsRightPanelOpen={setIsRightPanelOpen}\n stateHeight={stateHeight}\n stateLeft={stateLeft}\n stateTop={stateTop}\n stateWidth={stateWidth}\n zoom={zoom}\n />\n </ErrorBoundary>\n );\n};\n\nDraggableItem.propTypes = {\n children: PropTypes.any,\n guides: PropTypes.shape({}),\n isMultipleItemSelected: PropTypes.bool,\n isResize: PropTypes.bool,\n isSelected: PropTypes.bool,\n item: PropTypes.shape({\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n id: PropTypes.string,\n isLocked: PropTypes.bool,\n itemType: PropTypes.string,\n left: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n pageID: PropTypes.string,\n top: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n width: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n }),\n matches: PropTypes.shape({}),\n setIsResize: PropTypes.func,\n setMatches: PropTypes.func,\n};\n\nexport default memo(DraggableItem);\n"],"names":["exceptionalClassesForClickOutside","reportItemStyle","height","width","DraggableItem","children","guides","isMultipleItemSelected","isResize","isSelected","item","matches","setIsResize","setMatches","id","isLocked","left","pageID","top","useState","stateHeight","stateLeft","stateTop","stateWidth","setResizeSize","onAnEventTrigger","usePropStore","state","onItemAdd","onItemChange","onItemRemove","onItemResize","setActiveElement","useBuilderStore","setContextMenuProps","zoom","isTextEditorOpen","isRightPanelOpen","setIsRightPanelOpen","select","event","metaKey","undefined","canDrag","useDrag","collect","monitor","isDragging","end","_item","dropResult","getDropResult","dropLeft","dropTop","prev","removeEventListenerForSidebar","addEventListenerForSidebar","type","DRAGGABLE_ITEM_TYPE","drag","preview","useEffect","getEmptyImage","captureDraggingState","onResizeStop","deltaWidth","deltaHeight","direction","activeItem","test","newActiveBoxLeft","newActiveBoxTop","Object","keys","forEach","axis","activeBoxGuides","matchedArray","proximity","activeBoxProximityIndex","activeBoxIndex","matchedBoxProximityIndex","matchedBoxIndex","value","newResizeSize","onResize","_guides","x","calculateGuidePositions","y","proximityListener","deleteItem","itemType","duplicateItem","itemID","generateId","onClickOutside","viewPort","document","querySelector","clientHeight","offsetHeight","headerHeight","window","innerHeight","clientY","Array","from","target","classList","some","xClass","includes","onContextMenuClick","e","contentEditable","preventDefault","position","getPosition","onDoubleClick","duplicateWithAltKey","altKey","itemToAdd","setTimeout","changeLockStatus","_jsxs","ErrorBoundary","_jsx","getStyles","classNames","propTypes","PropTypes","any","shape","bool","oneOfType","number","string","func","memo"],"mappings":"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"}
1
+ {"version":3,"file":"DraggableItem.js","sources":["../../../../src/components/DraggableItem/DraggableItem.js"],"sourcesContent":["import { useEffect, useState, memo } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDrag } from 'react-dnd';\nimport { getEmptyImage } from 'react-dnd-html5-backend';\nimport ItemPositioner from '../ItemPositioner';\nimport { DRAGGABLE_ITEM_TYPE } from '../../constants/itemTypes';\nimport { getStyles, getPosition, isSelectedItem } from '../../utils/functions';\nimport PageItemResizer from '../PageItemResizer';\nimport ErrorBoundary from '../ErrorBoundary';\nimport * as classNames from '../../constants/classNames';\nimport generateId from '../../utils/generateId';\nimport {\n addEventListenerForSidebar,\n removeEventListenerForSidebar,\n} from '../../utils/scrollZoneFunctions';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport { usePropStore } from '../../contexts/PropContext';\n\nconst exceptionalClassesForClickOutside = ['contextMenu-itemLabel', 'contextMenu-item'];\nconst reportItemStyle = {\n height: '100%',\n width: '100%',\n};\n\nconst DraggableItem = ({\n children = null,\n item = {},\n handleMatches,\n getIntersectionsFromMatches,\n}) => {\n const {\n height,\n id,\n isLocked,\n left,\n pageID,\n top,\n width,\n } = item;\n\n const [\n {\n height: stateHeight,\n left: stateLeft,\n top: stateTop,\n width: stateWidth,\n },\n setResizeSize,\n ] = useState({\n height,\n left,\n top,\n width,\n });\n\n const onAnEventTrigger = usePropStore(state => state.onAnEventTrigger);\n const onItemAdd = usePropStore(state => state.onItemAdd);\n const onItemChange = usePropStore(state => state.onItemChange);\n const onItemRemove = usePropStore(state => state.onItemRemove);\n const onItemResize = usePropStore(state => state.onItemResize);\n\n const activeElement = useBuilderStore(state => state.activeElement);\n const setActiveElement = useBuilderStore(state => state.setActiveElement);\n const setContextMenuProps = useBuilderStore(state => state.setContextMenuProps);\n const isTextEditorOpen = useBuilderStore(state => state.isTextEditorOpen);\n const isRightPanelOpen = useBuilderStore(state => state.isRightPanelOpen);\n const setIsRightPanelOpen = useBuilderStore(state => state.setIsRightPanelOpen);\n const setIsResize = useBuilderStore(state => state.setIsResize);\n\n const isSelected = isSelectedItem(item.id, activeElement);\n const isMultipleItemSelected = activeElement !== null && activeElement.length > 1;\n\n const select = event => {\n if (!isSelected) {\n if (!event || !event.metaKey) {\n if (isLocked) {\n setActiveElement(id, false);\n setIsRightPanelOpen(false);\n } else {\n setActiveElement(id);\n }\n } else {\n setActiveElement(id, undefined, true);\n }\n }\n };\n\n const canDrag = !item.isLocked && !isTextEditorOpen;\n\n const [{ isDragging }, drag, preview] = useDrag(() => ({\n canDrag: () => canDrag,\n collect: monitor => ({\n isDragging: monitor.isDragging(),\n }),\n end: (_item, monitor) => {\n const dropResult = monitor.getDropResult();\n if (dropResult && dropResult[id]) {\n const { left: dropLeft, top: dropTop } = dropResult[id];\n setResizeSize(prev => {\n return {\n height: prev.height,\n left: dropLeft,\n top: dropTop,\n width: prev.width,\n };\n });\n }\n removeEventListenerForSidebar();\n },\n isDragging: () => (isMultipleItemSelected && isSelected) || (!isMultipleItemSelected && isSelected),\n item: () => {\n select();\n addEventListenerForSidebar();\n return item;\n },\n type: DRAGGABLE_ITEM_TYPE,\n }), [\n item,\n canDrag,\n id,\n isMultipleItemSelected,\n isSelected,\n ]);\n\n useEffect(() => {\n if (preview) {\n preview(getEmptyImage(), { captureDraggingState: true });\n }\n }, [preview]);\n\n useEffect(() => {\n setResizeSize(prev => {\n if (prev.left !== left || prev.top !== top || prev.width !== width || prev.height !== height) {\n return {\n ...prev,\n height,\n left,\n top,\n width,\n };\n }\n\n return prev;\n });\n }, [left, top, width, height]);\n\n const onResizeStop = (deltaWidth, deltaHeight, direction) => {\n const activeItem = {\n ...item,\n height: item.height + deltaHeight,\n width: item.width + deltaWidth,\n };\n if (/left/i.test(direction)) activeItem.left = activeItem.left - deltaWidth;\n if (/top/i.test(direction)) activeItem.top = activeItem.top - deltaHeight;\n const { newActiveBoxLeft, newActiveBoxTop } = getIntersectionsFromMatches(activeItem);\n let newResizeSize = {\n height: activeItem.height,\n left: activeItem.left,\n top: activeItem.top,\n width: activeItem.width,\n };\n\n if (!(/top/i.test(direction) && /left/i.test(direction))) {\n newResizeSize = {\n ...newResizeSize,\n height: newResizeSize.height + (newActiveBoxTop - activeItem.top),\n width: newResizeSize.width + (newActiveBoxLeft - activeItem.left),\n };\n }\n if (/top/i.test(direction) && newActiveBoxTop !== newResizeSize.top) {\n newResizeSize.top = newActiveBoxTop;\n }\n if (/left/i.test(direction) && newActiveBoxLeft !== newResizeSize.left) {\n newResizeSize.left = newActiveBoxLeft;\n }\n setIsResize(false);\n onItemResize(item, newResizeSize);\n };\n\n const onResize = (deltaWidth, deltaHeight, direction) => {\n setIsResize(true);\n const activeItem = {\n ...item,\n height: item.height + deltaHeight,\n width: item.width + deltaWidth,\n };\n if (/left/i.test(direction)) activeItem.left = activeItem.left - deltaWidth;\n if (/top/i.test(direction)) activeItem.top = activeItem.top - deltaHeight;\n handleMatches(activeItem);\n setResizeSize({\n height: activeItem.height,\n left: activeItem.left,\n top: activeItem.top,\n width: activeItem.width,\n });\n };\n\n const deleteItem = () => {\n setIsRightPanelOpen(false);\n setActiveElement(null);\n onItemRemove(item);\n onAnEventTrigger('removeItem', item.itemType);\n };\n\n const duplicateItem = () => {\n const itemID = generateId();\n onItemAdd({\n ...item,\n id: itemID,\n left: item.left + 50,\n top: item.top + 50,\n });\n onAnEventTrigger('duplicateItem', item.itemType);\n setActiveElement(itemID);\n if (!isRightPanelOpen) {\n setIsRightPanelOpen(true);\n }\n };\n\n const onClickOutside = event => {\n // clickoutside should not work for scrollbar\n const viewPort = document.querySelector('.jfReport-viewport');\n const { clientHeight, offsetHeight } = viewPort;\n const headerHeight = window.innerHeight - offsetHeight;\n if (event.clientY - headerHeight >= clientHeight\n || Array.from(event.target.classList)\n .some(xClass => exceptionalClassesForClickOutside.includes(xClass))) {\n return;\n }\n setIsRightPanelOpen(false);\n setActiveElement(null);\n };\n\n const onContextMenuClick = e => {\n if (\n e.target.contentEditable === 'true'\n || isTextEditorOpen\n ) {\n // Dont override behaviour on text edits.\n return;\n }\n\n e.preventDefault();\n onAnEventTrigger('openContextMenu', item.itemType);\n setContextMenuProps({\n id,\n pageID,\n position: getPosition(e),\n });\n };\n\n const onDoubleClick = e => {\n if (\n e.target.contentEditable === 'true'\n || isTextEditorOpen\n ) {\n // Dont override behaviour on text edits.\n return;\n }\n\n setIsRightPanelOpen(true);\n };\n\n const duplicateWithAltKey = e => {\n if (e.altKey) {\n const itemID = generateId();\n const itemToAdd = item;\n setTimeout(() => {\n onItemAdd({\n ...itemToAdd,\n id: itemID,\n left: itemToAdd.left,\n top: itemToAdd.top,\n });\n onAnEventTrigger('duplicateItem', itemToAdd.itemType);\n });\n }\n };\n\n const changeLockStatus = () => {\n onAnEventTrigger(item.isLocked ? 'unlockReportItem' : 'lockReportItem', item.itemType);\n onItemChange({ id: item.id }, { isLocked: item.isLocked ? false : true });\n if (!item.isLocked) {\n setActiveElement(item.id, false);\n setIsRightPanelOpen(false);\n }\n };\n\n return (\n <ErrorBoundary>\n <ItemPositioner\n classNames={`reportItemWrapper${isSelected ? ' isSelected' : ''}`}\n style={{\n ...getStyles(left, top, isDragging),\n height: stateHeight,\n left: stateLeft,\n top: stateTop,\n width: stateWidth,\n }}\n >\n <div\n ref={drag}\n className={`${classNames.reportItem}${isLocked ? ' isLocked' : ''}`}\n onContextMenu={onContextMenuClick}\n onDoubleClick={onDoubleClick}\n onDragStart={duplicateWithAltKey}\n onMouseDown={select}\n style={reportItemStyle}\n >\n {children}\n </div>\n </ItemPositioner>\n <PageItemResizer\n changeLockStatus={changeLockStatus}\n deleteItem={deleteItem}\n duplicateItem={duplicateItem}\n isDragging={isDragging}\n item={item}\n onClickOutside={onClickOutside}\n onResize={onResize}\n onResizeStop={onResizeStop}\n pageID={pageID}\n stateHeight={stateHeight}\n stateLeft={stateLeft}\n stateTop={stateTop}\n stateWidth={stateWidth}\n />\n </ErrorBoundary>\n );\n};\n\nDraggableItem.propTypes = {\n children: PropTypes.any,\n getIntersectionsFromMatches: PropTypes.func,\n handleMatches: PropTypes.func,\n item: PropTypes.shape({\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n id: PropTypes.string,\n isLocked: PropTypes.bool,\n itemType: PropTypes.string,\n left: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n pageID: PropTypes.string,\n top: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n width: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n }),\n};\n\nexport default memo(DraggableItem);\n"],"names":["exceptionalClassesForClickOutside","reportItemStyle","height","width","DraggableItem","children","item","handleMatches","getIntersectionsFromMatches","id","isLocked","left","pageID","top","useState","stateHeight","stateLeft","stateTop","stateWidth","setResizeSize","onAnEventTrigger","usePropStore","state","onItemAdd","onItemChange","onItemRemove","onItemResize","activeElement","useBuilderStore","setActiveElement","setContextMenuProps","isTextEditorOpen","isRightPanelOpen","setIsRightPanelOpen","setIsResize","isSelected","isSelectedItem","isMultipleItemSelected","length","select","event","metaKey","undefined","canDrag","useDrag","collect","monitor","isDragging","end","_item","dropResult","getDropResult","dropLeft","dropTop","prev","removeEventListenerForSidebar","addEventListenerForSidebar","type","DRAGGABLE_ITEM_TYPE","drag","preview","useEffect","getEmptyImage","captureDraggingState","onResizeStop","deltaWidth","deltaHeight","direction","activeItem","test","newActiveBoxLeft","newActiveBoxTop","newResizeSize","onResize","deleteItem","itemType","duplicateItem","itemID","generateId","onClickOutside","viewPort","document","querySelector","clientHeight","offsetHeight","headerHeight","window","innerHeight","clientY","Array","from","target","classList","some","xClass","includes","onContextMenuClick","e","contentEditable","preventDefault","position","getPosition","onDoubleClick","duplicateWithAltKey","altKey","itemToAdd","setTimeout","changeLockStatus","_jsxs","ErrorBoundary","_jsx","getStyles","classNames","propTypes","PropTypes","any","func","shape","oneOfType","number","string","bool","memo"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,IAAMA,iCAAiC,GAAG,CAAC,uBAAD,EAA0B,kBAA1B,CAA1C;AACA,IAAMC,eAAe,GAAG;AACtBC,EAAAA,MAAM,EAAE,MADc;AAEtBC,EAAAA,KAAK,EAAE;AAFe,CAAxB;;AAKA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,OAKhB;AAAA,2BAJJC,QAII;AAAA,MAJJA,QAII,8BAJO,IAIP;AAAA,uBAHJC,IAGI;AAAA,MAHJA,MAGI,0BAHG,EAGH;AAAA,MAFJC,aAEI,QAFJA,aAEI;AAAA,MADJC,2BACI,QADJA,2BACI;;AACJ,MACEN,MADF,GAQII,MARJ,CACEJ,MADF;AAAA,MAEEO,EAFF,GAQIH,MARJ,CAEEG,EAFF;AAAA,MAGEC,QAHF,GAQIJ,MARJ,CAGEI,QAHF;AAAA,MAIEC,IAJF,GAQIL,MARJ,CAIEK,IAJF;AAAA,MAKEC,MALF,GAQIN,MARJ,CAKEM,MALF;AAAA,MAMEC,GANF,GAQIP,MARJ,CAMEO,GANF;AAAA,MAOEV,KAPF,GAQIG,MARJ,CAOEH,KAPF;;AAUA,kBAQIW,QAAQ,CAAC;AACXZ,IAAAA,MAAM,EAANA,MADW;AAEXS,IAAAA,IAAI,EAAJA,IAFW;AAGXE,IAAAA,GAAG,EAAHA,GAHW;AAIXV,IAAAA,KAAK,EAALA;AAJW,GAAD,CARZ;AAAA;AAAA;AAAA,MAEYY,WAFZ,eAEIb,MAFJ;AAAA,MAGUc,SAHV,eAGIL,IAHJ;AAAA,MAISM,QAJT,eAIIJ,GAJJ;AAAA,MAKWK,UALX,eAKIf,KALJ;AAAA,MAOEgB,aAPF;;AAeA,MAAMC,gBAAgB,GAAGC,YAAY,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACF,gBAAV;AAAA,GAAN,CAArC;AACA,MAAMG,SAAS,GAAGF,YAAY,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACC,SAAV;AAAA,GAAN,CAA9B;AACA,MAAMC,YAAY,GAAGH,YAAY,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACE,YAAV;AAAA,GAAN,CAAjC;AACA,MAAMC,YAAY,GAAGJ,YAAY,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACG,YAAV;AAAA,GAAN,CAAjC;AACA,MAAMC,YAAY,GAAGL,YAAY,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACI,YAAV;AAAA,GAAN,CAAjC;AAEA,MAAMC,aAAa,GAAGC,eAAe,CAAC,UAAAN,KAAK;AAAA,WAAIA,KAAK,CAACK,aAAV;AAAA,GAAN,CAArC;AACA,MAAME,gBAAgB,GAAGD,eAAe,CAAC,UAAAN,KAAK;AAAA,WAAIA,KAAK,CAACO,gBAAV;AAAA,GAAN,CAAxC;AACA,MAAMC,mBAAmB,GAAGF,eAAe,CAAC,UAAAN,KAAK;AAAA,WAAIA,KAAK,CAACQ,mBAAV;AAAA,GAAN,CAA3C;AACA,MAAMC,gBAAgB,GAAGH,eAAe,CAAC,UAAAN,KAAK;AAAA,WAAIA,KAAK,CAACS,gBAAV;AAAA,GAAN,CAAxC;AACA,MAAMC,gBAAgB,GAAGJ,eAAe,CAAC,UAAAN,KAAK;AAAA,WAAIA,KAAK,CAACU,gBAAV;AAAA,GAAN,CAAxC;AACA,MAAMC,mBAAmB,GAAGL,eAAe,CAAC,UAAAN,KAAK;AAAA,WAAIA,KAAK,CAACW,mBAAV;AAAA,GAAN,CAA3C;AACA,MAAMC,WAAW,GAAGN,eAAe,CAAC,UAAAN,KAAK;AAAA,WAAIA,KAAK,CAACY,WAAV;AAAA,GAAN,CAAnC;AAEA,MAAMC,UAAU,GAAGC,cAAc,CAAC9B,MAAI,CAACG,EAAN,EAAUkB,aAAV,CAAjC;AACA,MAAMU,sBAAsB,GAAGV,aAAa,KAAK,IAAlB,IAA0BA,aAAa,CAACW,MAAd,GAAuB,CAAhF;;AAEA,MAAMC,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK,EAAI;AACtB,QAAI,CAACL,UAAL,EAAiB;AACf,UAAI,CAACK,KAAD,IAAU,CAACA,KAAK,CAACC,OAArB,EAA8B;AAC5B,YAAI/B,QAAJ,EAAc;AACZmB,UAAAA,gBAAgB,CAACpB,EAAD,EAAK,KAAL,CAAhB;AACAwB,UAAAA,mBAAmB,CAAC,KAAD,CAAnB;AACD,SAHD,MAGO;AACLJ,UAAAA,gBAAgB,CAACpB,EAAD,CAAhB;AACD;AACF,OAPD,MAOO;AACLoB,QAAAA,gBAAgB,CAACpB,EAAD,EAAKiC,SAAL,EAAgB,IAAhB,CAAhB;AACD;AACF;AACF,GAbD;;AAeA,MAAMC,QAAO,GAAG,CAACrC,MAAI,CAACI,QAAN,IAAkB,CAACqB,gBAAnC;;AAEA,iBAAwCa,OAAO,CAAC;AAAA,WAAO;AACrDD,MAAAA,OAAO,EAAE;AAAA,eAAMA,QAAN;AAAA,OAD4C;AAErDE,MAAAA,OAAO,EAAE,iBAAAC,OAAO;AAAA,eAAK;AACnBC,UAAAA,UAAU,EAAED,OAAO,CAACC,UAAR;AADO,SAAL;AAAA,OAFqC;AAKrDC,MAAAA,GAAG,EAAE,aAACC,KAAD,EAAQH,OAAR,EAAoB;AACvB,YAAMI,UAAU,GAAGJ,OAAO,CAACK,aAAR,EAAnB;;AACA,YAAID,UAAU,IAAIA,UAAU,CAACzC,EAAD,CAA5B,EAAkC;AAChC,+BAAyCyC,UAAU,CAACzC,EAAD,CAAnD;AAAA,cAAc2C,QAAd,kBAAQzC,IAAR;AAAA,cAA6B0C,OAA7B,kBAAwBxC,GAAxB;AACAM,UAAAA,aAAa,CAAC,UAAAmC,IAAI,EAAI;AACpB,mBAAO;AACLpD,cAAAA,MAAM,EAAEoD,IAAI,CAACpD,MADR;AAELS,cAAAA,IAAI,EAAEyC,QAFD;AAGLvC,cAAAA,GAAG,EAAEwC,OAHA;AAILlD,cAAAA,KAAK,EAAEmD,IAAI,CAACnD;AAJP,aAAP;AAMD,WAPY,CAAb;AAQD;;AACDoD,QAAAA,6BAA6B;AAC9B,OAnBoD;AAoBrDR,MAAAA,UAAU,EAAE;AAAA,eAAOV,sBAAsB,IAAIF,UAA3B,IAA2C,CAACE,sBAAD,IAA2BF,UAA5E;AAAA,OApByC;AAqBrD7B,MAAAA,IAAI,EAAE,gBAAM;AACViC,QAAAA,MAAM;AACNiB,QAAAA,0BAA0B;AAC1B,eAAOlD,MAAP;AACD,OAzBoD;AA0BrDmD,MAAAA,IAAI,EAAEC;AA1B+C,KAAP;AAAA,GAAD,EA2B3C,CACFpD,MADE,EAEFqC,QAFE,EAGFlC,EAHE,EAIF4B,sBAJE,EAKFF,UALE,CA3B2C,CAA/C;AAAA;AAAA,MAASY,UAAT,gBAASA,UAAT;AAAA,MAAuBY,IAAvB;AAAA,MAA6BC,OAA7B;;AAmCAC,EAAAA,SAAS,CAAC,YAAM;AACd,QAAID,OAAJ,EAAa;AACXA,MAAAA,OAAO,CAACE,aAAa,EAAd,EAAkB;AAAEC,QAAAA,oBAAoB,EAAE;AAAxB,OAAlB,CAAP;AACD;AACF,GAJQ,EAIN,CAACH,OAAD,CAJM,CAAT;AAMAC,EAAAA,SAAS,CAAC,YAAM;AACd1C,IAAAA,aAAa,CAAC,UAAAmC,IAAI,EAAI;AACpB,UAAIA,IAAI,CAAC3C,IAAL,KAAcA,IAAd,IAAsB2C,IAAI,CAACzC,GAAL,KAAaA,GAAnC,IAA0CyC,IAAI,CAACnD,KAAL,KAAeA,KAAzD,IAAkEmD,IAAI,CAACpD,MAAL,KAAgBA,MAAtF,EAA8F;AAC5F,+CACKoD,IADL;AAEEpD,UAAAA,MAAM,EAANA,MAFF;AAGES,UAAAA,IAAI,EAAJA,IAHF;AAIEE,UAAAA,GAAG,EAAHA,GAJF;AAKEV,UAAAA,KAAK,EAALA;AALF;AAOD;;AAED,aAAOmD,IAAP;AACD,KAZY,CAAb;AAaD,GAdQ,EAcN,CAAC3C,IAAD,EAAOE,GAAP,EAAYV,KAAZ,EAAmBD,MAAnB,CAdM,CAAT;;AAgBA,MAAM8D,YAAY,GAAG,SAAfA,YAAe,CAACC,UAAD,EAAaC,WAAb,EAA0BC,SAA1B,EAAwC;AAC3D,QAAMC,UAAU,mCACX9D,MADW;AAEdJ,MAAAA,MAAM,EAAEI,MAAI,CAACJ,MAAL,GAAcgE,WAFR;AAGd/D,MAAAA,KAAK,EAAEG,MAAI,CAACH,KAAL,GAAa8D;AAHN,MAAhB;;AAKA,QAAI,QAAQI,IAAR,CAAaF,SAAb,CAAJ,EAA6BC,UAAU,CAACzD,IAAX,GAAkByD,UAAU,CAACzD,IAAX,GAAkBsD,UAApC;AAC7B,QAAI,OAAOI,IAAP,CAAYF,SAAZ,CAAJ,EAA4BC,UAAU,CAACvD,GAAX,GAAiBuD,UAAU,CAACvD,GAAX,GAAiBqD,WAAlC;;AAC5B,gCAA8C1D,2BAA2B,CAAC4D,UAAD,CAAzE;AAAA,QAAQE,gBAAR,yBAAQA,gBAAR;AAAA,QAA0BC,eAA1B,yBAA0BA,eAA1B;;AACA,QAAIC,aAAa,GAAG;AAClBtE,MAAAA,MAAM,EAAEkE,UAAU,CAAClE,MADD;AAElBS,MAAAA,IAAI,EAAEyD,UAAU,CAACzD,IAFC;AAGlBE,MAAAA,GAAG,EAAEuD,UAAU,CAACvD,GAHE;AAIlBV,MAAAA,KAAK,EAAEiE,UAAU,CAACjE;AAJA,KAApB;;AAOA,QAAI,EAAE,OAAOkE,IAAP,CAAYF,SAAZ,KAA0B,QAAQE,IAAR,CAAaF,SAAb,CAA5B,CAAJ,EAA0D;AACxDK,MAAAA,aAAa,mCACRA,aADQ;AAEXtE,QAAAA,MAAM,EAAEsE,aAAa,CAACtE,MAAd,IAAwBqE,eAAe,GAAGH,UAAU,CAACvD,GAArD,CAFG;AAGXV,QAAAA,KAAK,EAAEqE,aAAa,CAACrE,KAAd,IAAuBmE,gBAAgB,GAAGF,UAAU,CAACzD,IAArD;AAHI,QAAb;AAKD;;AACD,QAAI,OAAO0D,IAAP,CAAYF,SAAZ,KAA0BI,eAAe,KAAKC,aAAa,CAAC3D,GAAhE,EAAqE;AACnE2D,MAAAA,aAAa,CAAC3D,GAAd,GAAoB0D,eAApB;AACD;;AACD,QAAI,QAAQF,IAAR,CAAaF,SAAb,KAA2BG,gBAAgB,KAAKE,aAAa,CAAC7D,IAAlE,EAAwE;AACtE6D,MAAAA,aAAa,CAAC7D,IAAd,GAAqB2D,gBAArB;AACD;;AACDpC,IAAAA,WAAW,CAAC,KAAD,CAAX;AACAR,IAAAA,YAAY,CAACpB,MAAD,EAAOkE,aAAP,CAAZ;AACD,GA/BD;;AAiCA,MAAMC,QAAQ,GAAG,SAAXA,QAAW,CAACR,UAAD,EAAaC,WAAb,EAA0BC,SAA1B,EAAwC;AACvDjC,IAAAA,WAAW,CAAC,IAAD,CAAX;;AACA,QAAMkC,UAAU,mCACX9D,MADW;AAEdJ,MAAAA,MAAM,EAAEI,MAAI,CAACJ,MAAL,GAAcgE,WAFR;AAGd/D,MAAAA,KAAK,EAAEG,MAAI,CAACH,KAAL,GAAa8D;AAHN,MAAhB;;AAKA,QAAI,QAAQI,IAAR,CAAaF,SAAb,CAAJ,EAA6BC,UAAU,CAACzD,IAAX,GAAkByD,UAAU,CAACzD,IAAX,GAAkBsD,UAApC;AAC7B,QAAI,OAAOI,IAAP,CAAYF,SAAZ,CAAJ,EAA4BC,UAAU,CAACvD,GAAX,GAAiBuD,UAAU,CAACvD,GAAX,GAAiBqD,WAAlC;AAC5B3D,IAAAA,aAAa,CAAC6D,UAAD,CAAb;AACAjD,IAAAA,aAAa,CAAC;AACZjB,MAAAA,MAAM,EAAEkE,UAAU,CAAClE,MADP;AAEZS,MAAAA,IAAI,EAAEyD,UAAU,CAACzD,IAFL;AAGZE,MAAAA,GAAG,EAAEuD,UAAU,CAACvD,GAHJ;AAIZV,MAAAA,KAAK,EAAEiE,UAAU,CAACjE;AAJN,KAAD,CAAb;AAMD,GAhBD;;AAkBA,MAAMuE,UAAU,GAAG,SAAbA,UAAa,GAAM;AACvBzC,IAAAA,mBAAmB,CAAC,KAAD,CAAnB;AACAJ,IAAAA,gBAAgB,CAAC,IAAD,CAAhB;AACAJ,IAAAA,YAAY,CAACnB,MAAD,CAAZ;AACAc,IAAAA,gBAAgB,CAAC,YAAD,EAAed,MAAI,CAACqE,QAApB,CAAhB;AACD,GALD;;AAOA,MAAMC,aAAa,GAAG,SAAhBA,aAAgB,GAAM;AAC1B,QAAMC,MAAM,GAAGC,UAAU,EAAzB;AACAvD,IAAAA,SAAS,iCACJjB,MADI;AAEPG,MAAAA,EAAE,EAAEoE,MAFG;AAGPlE,MAAAA,IAAI,EAAEL,MAAI,CAACK,IAAL,GAAY,EAHX;AAIPE,MAAAA,GAAG,EAAEP,MAAI,CAACO,GAAL,GAAW;AAJT,OAAT;AAMAO,IAAAA,gBAAgB,CAAC,eAAD,EAAkBd,MAAI,CAACqE,QAAvB,CAAhB;AACA9C,IAAAA,gBAAgB,CAACgD,MAAD,CAAhB;;AACA,QAAI,CAAC7C,gBAAL,EAAuB;AACrBC,MAAAA,mBAAmB,CAAC,IAAD,CAAnB;AACD;AACF,GAbD;;AAeA,MAAM8C,cAAc,GAAG,SAAjBA,cAAiB,CAAAvC,KAAK,EAAI;AAC9B;AACA,QAAMwC,QAAQ,GAAGC,QAAQ,CAACC,aAAT,CAAuB,oBAAvB,CAAjB;AACA,QAAQC,YAAR,GAAuCH,QAAvC,CAAQG,YAAR;AAAA,QAAsBC,YAAtB,GAAuCJ,QAAvC,CAAsBI,YAAtB;AACA,QAAMC,YAAY,GAAGC,MAAM,CAACC,WAAP,GAAqBH,YAA1C;;AACA,QAAI5C,KAAK,CAACgD,OAAN,GAAgBH,YAAhB,IAAgCF,YAAhC,IACGM,KAAK,CAACC,IAAN,CAAWlD,KAAK,CAACmD,MAAN,CAAaC,SAAxB,EACAC,IADA,CACK,UAAAC,MAAM;AAAA,aAAI9F,iCAAiC,CAAC+F,QAAlC,CAA2CD,MAA3C,CAAJ;AAAA,KADX,CADP,EAE2E;AACzE;AACD;;AACD7D,IAAAA,mBAAmB,CAAC,KAAD,CAAnB;AACAJ,IAAAA,gBAAgB,CAAC,IAAD,CAAhB;AACD,GAZD;;AAcA,MAAMmE,kBAAkB,GAAG,SAArBA,kBAAqB,CAAAC,CAAC,EAAI;AAC9B,QACEA,CAAC,CAACN,MAAF,CAASO,eAAT,KAA6B,MAA7B,IACGnE,gBAFL,EAGE;AACA;AACA;AACD;;AAEDkE,IAAAA,CAAC,CAACE,cAAF;AACA/E,IAAAA,gBAAgB,CAAC,iBAAD,EAAoBd,MAAI,CAACqE,QAAzB,CAAhB;AACA7C,IAAAA,mBAAmB,CAAC;AAClBrB,MAAAA,EAAE,EAAFA,EADkB;AAElBG,MAAAA,MAAM,EAANA,MAFkB;AAGlBwF,MAAAA,QAAQ,EAAEC,WAAW,CAACJ,CAAD;AAHH,KAAD,CAAnB;AAKD,GAhBD;;AAkBA,MAAMK,aAAa,GAAG,SAAhBA,aAAgB,CAAAL,CAAC,EAAI;AACzB,QACEA,CAAC,CAACN,MAAF,CAASO,eAAT,KAA6B,MAA7B,IACGnE,gBAFL,EAGE;AACA;AACA;AACD;;AAEDE,IAAAA,mBAAmB,CAAC,IAAD,CAAnB;AACD,GAVD;;AAYA,MAAMsE,mBAAmB,GAAG,SAAtBA,mBAAsB,CAAAN,CAAC,EAAI;AAC/B,QAAIA,CAAC,CAACO,MAAN,EAAc;AACZ,UAAM3B,MAAM,GAAGC,UAAU,EAAzB;AACA,UAAM2B,SAAS,GAAGnG,MAAlB;AACAoG,MAAAA,UAAU,CAAC,YAAM;AACfnF,QAAAA,SAAS,iCACJkF,SADI;AAEPhG,UAAAA,EAAE,EAAEoE,MAFG;AAGPlE,UAAAA,IAAI,EAAE8F,SAAS,CAAC9F,IAHT;AAIPE,UAAAA,GAAG,EAAE4F,SAAS,CAAC5F;AAJR,WAAT;AAMAO,QAAAA,gBAAgB,CAAC,eAAD,EAAkBqF,SAAS,CAAC9B,QAA5B,CAAhB;AACD,OARS,CAAV;AASD;AACF,GAdD;;AAgBA,MAAMgC,gBAAgB,GAAG,SAAnBA,gBAAmB,GAAM;AAC7BvF,IAAAA,gBAAgB,CAACd,MAAI,CAACI,QAAL,GAAgB,kBAAhB,GAAqC,gBAAtC,EAAwDJ,MAAI,CAACqE,QAA7D,CAAhB;AACAnD,IAAAA,YAAY,CAAC;AAAEf,MAAAA,EAAE,EAAEH,MAAI,CAACG;AAAX,KAAD,EAAkB;AAAEC,MAAAA,QAAQ,EAAEJ,MAAI,CAACI,QAAL,GAAgB,KAAhB,GAAwB;AAApC,KAAlB,CAAZ;;AACA,QAAI,CAACJ,MAAI,CAACI,QAAV,EAAoB;AAClBmB,MAAAA,gBAAgB,CAACvB,MAAI,CAACG,EAAN,EAAU,KAAV,CAAhB;AACAwB,MAAAA,mBAAmB,CAAC,KAAD,CAAnB;AACD;AACF,GAPD;;AASA,sBACE2E,KAACC,YAAD;AAAA,4BACEC,IAAC,cAAD;AACE,MAAA,UAAU,6BAAsB3E,UAAU,GAAG,aAAH,GAAmB,EAAnD,CADZ;AAEE,MAAA,KAAK,kCACA4E,SAAS,CAACpG,IAAD,EAAOE,GAAP,EAAYkC,UAAZ,CADT;AAEH7C,QAAAA,MAAM,EAAEa,WAFL;AAGHJ,QAAAA,IAAI,EAAEK,SAHH;AAIHH,QAAAA,GAAG,EAAEI,QAJF;AAKHd,QAAAA,KAAK,EAAEe;AALJ,QAFP;AAAA,6BAUE4F;AACE,QAAA,GAAG,EAAEnD,IADP;AAEE,QAAA,SAAS,YAAKqD,UAAL,SAA6BtG,QAAQ,GAAG,WAAH,GAAiB,EAAtD,CAFX;AAGE,QAAA,aAAa,EAAEsF,kBAHjB;AAIE,QAAA,aAAa,EAAEM,aAJjB;AAKE,QAAA,WAAW,EAAEC,mBALf;AAME,QAAA,WAAW,EAAEhE,MANf;AAOE,QAAA,KAAK,EAAEtC,eAPT;AAAA,kBASGI;AATH;AAVF,MADF,eAuBEyG,IAAC,eAAD;AACE,MAAA,gBAAgB,EAAEH,gBADpB;AAEE,MAAA,UAAU,EAAEjC,UAFd;AAGE,MAAA,aAAa,EAAEE,aAHjB;AAIE,MAAA,UAAU,EAAE7B,UAJd;AAKE,MAAA,IAAI,EAAEzC,MALR;AAME,MAAA,cAAc,EAAEyE,cANlB;AAOE,MAAA,QAAQ,EAAEN,QAPZ;AAQE,MAAA,YAAY,EAAET,YARhB;AASE,MAAA,MAAM,EAAEpD,MATV;AAUE,MAAA,WAAW,EAAEG,WAVf;AAWE,MAAA,SAAS,EAAEC,SAXb;AAYE,MAAA,QAAQ,EAAEC,QAZZ;AAaE,MAAA,UAAU,EAAEC;AAbd,MAvBF;AAAA,IADF;AAyCD,CAjTD;;AAmTAd,aAAa,CAAC6G,SAAd,GAA0B;AACxB5G,EAAAA,QAAQ,EAAE6G,SAAS,CAACC,GADI;AAExB3G,EAAAA,2BAA2B,EAAE0G,SAAS,CAACE,IAFf;AAGxB7G,EAAAA,aAAa,EAAE2G,SAAS,CAACE,IAHD;AAIxB9G,EAAAA,IAAI,EAAE4G,SAAS,CAACG,KAAV,CAAgB;AACpBnH,IAAAA,MAAM,EAAEgH,SAAS,CAACI,SAAV,CAAoB,CAC1BJ,SAAS,CAACK,MADgB,EAE1BL,SAAS,CAACM,MAFgB,CAApB,CADY;AAKpB/G,IAAAA,EAAE,EAAEyG,SAAS,CAACM,MALM;AAMpB9G,IAAAA,QAAQ,EAAEwG,SAAS,CAACO,IANA;AAOpB9C,IAAAA,QAAQ,EAAEuC,SAAS,CAACM,MAPA;AAQpB7G,IAAAA,IAAI,EAAEuG,SAAS,CAACI,SAAV,CAAoB,CACxBJ,SAAS,CAACK,MADc,EAExBL,SAAS,CAACM,MAFc,CAApB,CARc;AAYpB5G,IAAAA,MAAM,EAAEsG,SAAS,CAACM,MAZE;AAapB3G,IAAAA,GAAG,EAAEqG,SAAS,CAACI,SAAV,CAAoB,CACvBJ,SAAS,CAACK,MADa,EAEvBL,SAAS,CAACM,MAFa,CAApB,CAbe;AAiBpBrH,IAAAA,KAAK,EAAE+G,SAAS,CAACI,SAAV,CAAoB,CACzBJ,SAAS,CAACK,MADe,EAEzBL,SAAS,CAACM,MAFe,CAApB;AAjBa,GAAhB;AAJkB,CAA1B;AA4BA,mCAAeE,IAAI,CAACtH,aAAD,CAAnB;;;;"}
@@ -8,6 +8,8 @@ import CustomToolbarWrapper from './TextEditor/CustomToolbar/CustomToolbarWrappe
8
8
  import DraggableItemActions from './DraggableItem/DraggableItemActions.js';
9
9
  import ItemPositioner from './ItemPositioner.js';
10
10
  import withClickOutside from './withClickOutside.js';
11
+ import { useBuilderStore } from '../contexts/BuilderContext.js';
12
+ import { isSelectedItem } from '../utils/functions.js';
11
13
  import { jsxs, jsx } from 'react/jsx-runtime';
12
14
 
13
15
  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; }
@@ -46,21 +48,32 @@ var PageItemResizer = function PageItemResizer(_ref) {
46
48
  deleteItem = _ref.deleteItem,
47
49
  duplicateItem = _ref.duplicateItem,
48
50
  isDragging = _ref.isDragging,
49
- isMultipleItemSelected = _ref.isMultipleItemSelected,
50
- isSelectedElement = _ref.isSelectedElement,
51
- isTextEditorOpen = _ref.isTextEditorOpen,
52
51
  item = _ref.item,
53
52
  onClickOutside = _ref.onClickOutside,
54
53
  onResize = _ref.onResize,
55
54
  onResizeStop = _ref.onResizeStop,
56
55
  pageID = _ref.pageID,
57
- setActiveElement = _ref.setActiveElement,
58
- setIsRightPanelOpen = _ref.setIsRightPanelOpen,
59
56
  stateHeight = _ref.stateHeight,
60
57
  stateLeft = _ref.stateLeft,
61
58
  stateTop = _ref.stateTop,
62
- stateWidth = _ref.stateWidth,
63
- zoom = _ref.zoom;
59
+ stateWidth = _ref.stateWidth;
60
+ var zoom = useBuilderStore(function (state) {
61
+ return state.zoom;
62
+ });
63
+ var setIsRightPanelOpen = useBuilderStore(function (state) {
64
+ return state.setIsRightPanelOpen;
65
+ });
66
+ var setActiveElement = useBuilderStore(function (state) {
67
+ return state.setActiveElement;
68
+ });
69
+ var activeElement = useBuilderStore(function (state) {
70
+ return state.activeElement;
71
+ });
72
+ var isTextEditorOpen = useBuilderStore(function (state) {
73
+ return state.isTextEditorOpen;
74
+ });
75
+ var isSelected = isSelectedItem(item.id, activeElement);
76
+ var isMultipleItemSelected = activeElement !== null && activeElement.length > 1;
64
77
  var requestRef = useRef();
65
78
 
66
79
  var _useState = useState(false),
@@ -128,7 +141,7 @@ var PageItemResizer = function PageItemResizer(_ref) {
128
141
  setIsRightPanelOpen(true);
129
142
  }, [item.id, setIsRightPanelOpen, setActiveElement]);
130
143
  var isLocked = item.isLocked;
131
- if (isDragging || !isSelectedElement) return null;
144
+ if (isDragging || !isSelected) return null;
132
145
  return /*#__PURE__*/createPortal( /*#__PURE__*/jsxs(ItemPositioner, {
133
146
  style: itemPositionerStyle,
134
147
  children: [/*#__PURE__*/jsx(ResizableWithClickOutside, _objectSpread(_objectSpread({
@@ -1 +1 @@
1
- {"version":3,"file":"PageItemResizer.js","sources":["../../../src/components/PageItemResizer.js"],"sourcesContent":["import {\n useCallback,\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';\n\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 'reportItemMenu',\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 changeLockStatus,\n deleteItem,\n duplicateItem,\n isDragging,\n isMultipleItemSelected,\n isSelectedElement,\n isTextEditorOpen,\n item,\n onClickOutside,\n onResize,\n onResizeStop,\n pageID,\n setActiveElement,\n setIsRightPanelOpen,\n stateHeight,\n stateLeft,\n stateTop,\n stateWidth,\n zoom,\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 itemPositionerStyle = useMemo(() => ({\n height: Math.round(stateHeight * zoom),\n left: Math.round(stateLeft * zoom),\n pointerEvents: 'none',\n position: 'absolute',\n top: Math.round(stateTop * zoom),\n touchAction: 'none',\n width: Math.round(stateWidth * zoom),\n }), [stateHeight, stateLeft, stateTop, stateWidth, zoom]);\n\n const size = useMemo(() => ({\n height: Math.round(stateHeight * zoom),\n width: Math.round(stateWidth * zoom),\n }), [stateHeight, stateWidth, zoom]);\n\n const openSettings = useCallback(() => {\n setActiveElement(item.id);\n setIsRightPanelOpen(true);\n }, [item.id, setIsRightPanelOpen, setActiveElement]);\n\n const { isLocked } = item;\n\n if (isDragging || !isSelectedElement) return null;\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 <DraggableItemActions\n changeLockStatus={changeLockStatus}\n deleteItem={deleteItem}\n duplicateItem={duplicateItem}\n isLocked={item.isLocked}\n isMultipleItemSelected={isMultipleItemSelected}\n openSettings={openSettings}\n />\n <TextEditorToolbar\n isTextEditorOpen={isTextEditorOpen}\n itemWidth={stateWidth * zoom}\n />\n </ItemPositioner>,\n document.querySelector(`.jfReport-page[data-id=\"${pageID}\"]`),\n );\n};\n\nexport default PageItemResizer;\n"],"names":["ResizableWithClickOutside","withClickOutside","Resizable","enableResize","bottom","bottomLeft","bottomRight","left","right","top","topLeft","topRight","lockAspectRatioTypes","exceptionalClasses","PageItemResizer","changeLockStatus","deleteItem","duplicateItem","isDragging","isMultipleItemSelected","isSelectedElement","isTextEditorOpen","item","onClickOutside","onResize","onResizeStop","pageID","setActiveElement","setIsRightPanelOpen","stateHeight","stateLeft","stateTop","stateWidth","zoom","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","itemPositionerStyle","useMemo","pointerEvents","position","touchAction","size","openSettings","useCallback","id","isLocked","createPortal","_jsxs","_jsx","classNames","hideVerticalHandle","hideHorizontalHandle","includes","itemType","resizeStaticProps","TextEditorToolbar","document","querySelector"],"mappings":"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"}
1
+ {"version":3,"file":"PageItemResizer.js","sources":["../../../src/components/PageItemResizer.js"],"sourcesContent":["import {\n useCallback,\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';\nimport { isSelectedItem } from '../utils/functions';\n\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 'reportItemMenu',\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 changeLockStatus,\n deleteItem,\n duplicateItem,\n isDragging,\n item,\n onClickOutside,\n onResize,\n onResizeStop,\n pageID,\n stateHeight,\n stateLeft,\n stateTop,\n stateWidth,\n}) => {\n const zoom = useBuilderStore(state => state.zoom);\n const setIsRightPanelOpen = useBuilderStore(state => state.setIsRightPanelOpen);\n const setActiveElement = useBuilderStore(state => state.setActiveElement);\n const activeElement = useBuilderStore(state => state.activeElement);\n const isTextEditorOpen = useBuilderStore(state => state.isTextEditorOpen);\n\n const isSelected = isSelectedItem(item.id, activeElement);\n const isMultipleItemSelected = activeElement !== null && activeElement.length > 1;\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 itemPositionerStyle = useMemo(() => ({\n height: Math.round(stateHeight * zoom),\n left: Math.round(stateLeft * zoom),\n pointerEvents: 'none',\n position: 'absolute',\n top: Math.round(stateTop * zoom),\n touchAction: 'none',\n width: Math.round(stateWidth * zoom),\n }), [stateHeight, stateLeft, stateTop, stateWidth, zoom]);\n\n const size = useMemo(() => ({\n height: Math.round(stateHeight * zoom),\n width: Math.round(stateWidth * zoom),\n }), [stateHeight, stateWidth, zoom]);\n\n const openSettings = useCallback(() => {\n setActiveElement(item.id);\n setIsRightPanelOpen(true);\n }, [item.id, setIsRightPanelOpen, setActiveElement]);\n\n const { isLocked } = item;\n\n if (isDragging || !isSelected) return null;\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 <DraggableItemActions\n changeLockStatus={changeLockStatus}\n deleteItem={deleteItem}\n duplicateItem={duplicateItem}\n isLocked={item.isLocked}\n isMultipleItemSelected={isMultipleItemSelected}\n openSettings={openSettings}\n />\n <TextEditorToolbar\n isTextEditorOpen={isTextEditorOpen}\n itemWidth={stateWidth * zoom}\n />\n </ItemPositioner>,\n document.querySelector(`.jfReport-page[data-id=\"${pageID}\"]`),\n );\n};\n\nexport default PageItemResizer;\n"],"names":["ResizableWithClickOutside","withClickOutside","Resizable","enableResize","bottom","bottomLeft","bottomRight","left","right","top","topLeft","topRight","lockAspectRatioTypes","exceptionalClasses","PageItemResizer","changeLockStatus","deleteItem","duplicateItem","isDragging","item","onClickOutside","onResize","onResizeStop","pageID","stateHeight","stateLeft","stateTop","stateWidth","zoom","useBuilderStore","state","setIsRightPanelOpen","setActiveElement","activeElement","isTextEditorOpen","isSelected","isSelectedItem","id","isMultipleItemSelected","length","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","itemPositionerStyle","useMemo","pointerEvents","position","touchAction","size","openSettings","useCallback","isLocked","createPortal","_jsxs","_jsx","classNames","hideVerticalHandle","hideHorizontalHandle","includes","itemType","resizeStaticProps","TextEditorToolbar","document","querySelector"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,IAAMA,yBAAyB,GAAGC,gBAAgB,CAACC,SAAD,CAAlD;AAEA,IAAMC,YAAY,GAAG;AACnBC,EAAAA,MAAM,EAAE,IADW;AAEnBC,EAAAA,UAAU,EAAE,IAFO;AAGnBC,EAAAA,WAAW,EAAE,IAHM;AAInBC,EAAAA,IAAI,EAAE,IAJa;AAKnBC,EAAAA,KAAK,EAAE,IALY;AAMnBC,EAAAA,GAAG,EAAE,IANc;AAOnBC,EAAAA,OAAO,EAAE,IAPU;AAQnBC,EAAAA,QAAQ,EAAE;AARS,CAArB;AAUA,IAAMC,oBAAoB,GAAG,CAAC,OAAD,EAAU,MAAV,CAA7B;AACA,IAAMC,kBAAkB,GAAG,CACzB,cADyB,EAEzB,gBAFyB,EAGzB,eAHyB,EAIzB,oBAJyB,EAKzB,mBALyB,EAMzB,eANyB,EAOzB,SAPyB,EAQzB,YARyB,EASzB,mBATyB,EAUzB,2BAVyB,CAA3B;;IAaMC,eAAe,GAAG,SAAlBA,eAAkB,OAclB;AAAA,MAbJC,gBAaI,QAbJA,gBAaI;AAAA,MAZJC,UAYI,QAZJA,UAYI;AAAA,MAXJC,aAWI,QAXJA,aAWI;AAAA,MAVJC,UAUI,QAVJA,UAUI;AAAA,MATJC,IASI,QATJA,IASI;AAAA,MARJC,cAQI,QARJA,cAQI;AAAA,MAPJC,QAOI,QAPJA,QAOI;AAAA,MANJC,YAMI,QANJA,YAMI;AAAA,MALJC,MAKI,QALJA,MAKI;AAAA,MAJJC,WAII,QAJJA,WAII;AAAA,MAHJC,SAGI,QAHJA,SAGI;AAAA,MAFJC,QAEI,QAFJA,QAEI;AAAA,MADJC,UACI,QADJA,UACI;AACJ,MAAMC,IAAI,GAAGC,eAAe,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACF,IAAV;AAAA,GAAN,CAA5B;AACA,MAAMG,mBAAmB,GAAGF,eAAe,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACC,mBAAV;AAAA,GAAN,CAA3C;AACA,MAAMC,gBAAgB,GAAGH,eAAe,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACE,gBAAV;AAAA,GAAN,CAAxC;AACA,MAAMC,aAAa,GAAGJ,eAAe,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACG,aAAV;AAAA,GAAN,CAArC;AACA,MAAMC,gBAAgB,GAAGL,eAAe,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACI,gBAAV;AAAA,GAAN,CAAxC;AAEA,MAAMC,UAAU,GAAGC,cAAc,CAACjB,IAAI,CAACkB,EAAN,EAAUJ,aAAV,CAAjC;AACA,MAAMK,sBAAsB,GAAGL,aAAa,KAAK,IAAlB,IAA0BA,aAAa,CAACM,MAAd,GAAuB,CAAhF;AAEA,MAAMC,UAAU,GAAGC,MAAM,EAAzB;;AACA,kBAA8CC,QAAQ,CAAC,KAAD,CAAtD;AAAA;AAAA,MAAOC,eAAP;AAAA,MAAwBC,kBAAxB;;AAEA,MAAMC,WAAW,GAAG,SAAdA,WAAc,CAAAC,CAAC,EAAI;AACvB,QAAI,CAACA,CAAC,CAACC,QAAP,EAAiBH,kBAAkB,CAAC,KAAD,CAAlB;AAClB,GAFD;;AAIA,MAAMI,aAAa,GAAG,SAAhBA,aAAgB,CAAAF,CAAC,EAAI;AACzB,QAAIA,CAAC,CAACC,QAAN,EAAgBH,kBAAkB,CAAC,IAAD,CAAlB;AACjB,GAFD;;AAIA,MAAMK,aAAa,GAAG,SAAhBA,aAAgB,CAACC,UAAD,EAAaC,WAAb,EAA0BC,SAA1B,EAAwC;AAC5D,WAAO,YAAM;AACX/B,MAAAA,QAAQ,CAAC6B,UAAD,EAAaC,WAAb,EAA0BC,SAA1B,CAAR;AACAZ,MAAAA,UAAU,CAACa,OAAX,GAAqBC,SAArB;AACD,KAHD;AAID,GALD;;AAOA,MAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAAAT,CAAC,EAAI;AACzBA,IAAAA,CAAC,CAACU,cAAF;AACAC,IAAAA,MAAM,CAACC,gBAAP,CAAwB,SAAxB,EAAmCV,aAAnC;AACAS,IAAAA,MAAM,CAACC,gBAAP,CAAwB,OAAxB,EAAiCb,WAAjC;AACD,GAJD;;AAMA,MAAMc,WAAW,GAAG,SAAdA,WAAc,CAACb,CAAD,EAAIM,SAAJ,EAAeQ,GAAf,SAAmE;AAAA,QAArCT,WAAqC,SAA7CU,MAA6C;AAAA,QAAjBX,UAAiB,SAAxBY,KAAwB;;AACrF,QAAI,CAACtB,UAAU,CAACa,OAAhB,EAAyB;AACvBb,MAAAA,UAAU,CAACa,OAAX,GAAqBU,MAAM,CACxBC,qBADkB,CAEjBf,aAAa,CACXgB,IAAI,CAACC,KAAL,CAAWhB,UAAU,IAAI,IAAItB,IAAR,CAArB,CADW,EAEXqC,IAAI,CAACC,KAAL,CAAWf,WAAW,IAAI,IAAIvB,IAAR,CAAtB,CAFW,EAGXwB,SAHW,CAFI,CAArB;AAQD;AACF,GAXD;;AAaA,MAAMe,WAAW,GAAG,SAAdA,WAAc,CAACrB,CAAD,EAAIM,SAAJ,EAAeQ,GAAf,SAAmE;AAAA,QAArCT,WAAqC,SAA7CU,MAA6C;AAAA,QAAjBX,UAAiB,SAAxBY,KAAwB;AACrFxC,IAAAA,YAAY,CACV2C,IAAI,CAACC,KAAL,CAAWhB,UAAU,IAAI,IAAItB,IAAR,CAArB,CADU,EAEVqC,IAAI,CAACC,KAAL,CAAWf,WAAW,IAAI,IAAIvB,IAAR,CAAtB,CAFU,EAGVwB,SAHU,CAAZ;AAKAK,IAAAA,MAAM,CAACW,mBAAP,CAA2B,SAA3B,EAAsCpB,aAAtC;AACAS,IAAAA,MAAM,CAACW,mBAAP,CAA2B,OAA3B,EAAoCvB,WAApC;AACD,GARD;;AAUA,MAAMwB,mBAAmB,GAAGC,OAAO,CAAC;AAAA,WAAO;AACzCT,MAAAA,MAAM,EAAEI,IAAI,CAACC,KAAL,CAAW1C,WAAW,GAAGI,IAAzB,CADiC;AAEzCrB,MAAAA,IAAI,EAAE0D,IAAI,CAACC,KAAL,CAAWzC,SAAS,GAAGG,IAAvB,CAFmC;AAGzC2C,MAAAA,aAAa,EAAE,MAH0B;AAIzCC,MAAAA,QAAQ,EAAE,UAJ+B;AAKzC/D,MAAAA,GAAG,EAAEwD,IAAI,CAACC,KAAL,CAAWxC,QAAQ,GAAGE,IAAtB,CALoC;AAMzC6C,MAAAA,WAAW,EAAE,MAN4B;AAOzCX,MAAAA,KAAK,EAAEG,IAAI,CAACC,KAAL,CAAWvC,UAAU,GAAGC,IAAxB;AAPkC,KAAP;AAAA,GAAD,EAQ/B,CAACJ,WAAD,EAAcC,SAAd,EAAyBC,QAAzB,EAAmCC,UAAnC,EAA+CC,IAA/C,CAR+B,CAAnC;AAUA,MAAM8C,IAAI,GAAGJ,OAAO,CAAC;AAAA,WAAO;AAC1BT,MAAAA,MAAM,EAAEI,IAAI,CAACC,KAAL,CAAW1C,WAAW,GAAGI,IAAzB,CADkB;AAE1BkC,MAAAA,KAAK,EAAEG,IAAI,CAACC,KAAL,CAAWvC,UAAU,GAAGC,IAAxB;AAFmB,KAAP;AAAA,GAAD,EAGhB,CAACJ,WAAD,EAAcG,UAAd,EAA0BC,IAA1B,CAHgB,CAApB;AAKA,MAAM+C,YAAY,GAAGC,WAAW,CAAC,YAAM;AACrC5C,IAAAA,gBAAgB,CAACb,IAAI,CAACkB,EAAN,CAAhB;AACAN,IAAAA,mBAAmB,CAAC,IAAD,CAAnB;AACD,GAH+B,EAG7B,CAACZ,IAAI,CAACkB,EAAN,EAAUN,mBAAV,EAA+BC,gBAA/B,CAH6B,CAAhC;AAKA,MAAQ6C,QAAR,GAAqB1D,IAArB,CAAQ0D,QAAR;AAEA,MAAI3D,UAAU,IAAI,CAACiB,UAAnB,EAA+B,OAAO,IAAP;AAC/B,sBAAO2C,YAAY,eACjBC,KAAC,cAAD;AACE,IAAA,KAAK,EAAEV,mBADT;AAAA,4BAGEW,IAAC,yBAAD;AACE,MAAA,SAAS,EAAEC,UAAU,CACnB,mBADmB,EAEnB;AAAEC,QAAAA,kBAAkB,EAAE,EAAE/D,IAAI,CAAC0C,MAAL,GAAc,EAAhB;AAAtB,OAFmB,EAGnB;AAAEsB,QAAAA,oBAAoB,EAAE,EAAEhE,IAAI,CAAC2C,KAAL,GAAa,EAAf;AAAxB,OAHmB,CADvB;AAME,MAAA,MAAM,EAAE,CAAC3C,IAAI,CAAC0D,QAAN,IAAkB1E,YAN5B;AAOE,MAAA,kBAAkB,EAAEU,kBAPtB;AAQE,MAAA,eAAe,EAAED,oBAAoB,CAACwE,QAArB,CAA8BjE,IAAI,CAACkE,QAAnC,KAAgD1C,eARnE;AASE,MAAA,cAAc,EAAEvB,cATlB;AAUE,MAAA,QAAQ,EAAEuC,WAVZ;AAWE,MAAA,aAAa,EAAEJ,aAXjB;AAYE,MAAA,YAAY,EAAEY,WAZhB;AAaE,MAAA,IAAI,EAAEO;AAbR,OAcMY,iBAdN;AAeE,MAAA,4BAA4B,qCAA8BT,QAAQ,GAAG,WAAH,GAAiB,EAAvD;AAf9B,OAHF,eAoBEG,IAAC,oBAAD;AACE,MAAA,gBAAgB,EAAEjE,gBADpB;AAEE,MAAA,UAAU,EAAEC,UAFd;AAGE,MAAA,aAAa,EAAEC,aAHjB;AAIE,MAAA,QAAQ,EAAEE,IAAI,CAAC0D,QAJjB;AAKE,MAAA,sBAAsB,EAAEvC,sBAL1B;AAME,MAAA,YAAY,EAAEqC;AANhB,MApBF,eA4BEK,IAACO,oBAAD;AACE,MAAA,gBAAgB,EAAErD,gBADpB;AAEE,MAAA,SAAS,EAAEP,UAAU,GAAGC;AAF1B,MA5BF;AAAA,IADiB,EAkCjB4D,QAAQ,CAACC,aAAT,oCAAkDlE,MAAlD,SAlCiB,CAAnB;AAoCD;;;;"}
@@ -162,11 +162,9 @@ var SortablePageList = function SortablePageList() {
162
162
  ref: virtuosoRef,
163
163
  fixedItemHeight: 127,
164
164
  itemContent: function itemContent(index) {
165
- var page = pageGetter(index);
166
- if (!page) return null;
167
165
  return /*#__PURE__*/jsx(SortablePageItemRenderer, {
168
166
  data: itemData,
169
- id: page.id,
167
+ id: index.toString(),
170
168
  index: index,
171
169
  style: {
172
170
  height: 127