@jotforminc/dnd-builder 2.9.13 → 2.9.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/lib/cjs/components/Builder/Builder.js +48 -50
- package/lib/cjs/components/Builder/Builder.js.map +1 -1
- package/lib/cjs/components/Builder/DndWrapper.js +14 -16
- package/lib/cjs/components/Builder/DndWrapper.js.map +1 -1
- package/lib/cjs/components/Builder/Element.js +19 -15
- package/lib/cjs/components/Builder/Element.js.map +1 -1
- package/lib/cjs/components/Builder/Page.js +15 -11
- package/lib/cjs/components/Builder/Page.js.map +1 -1
- package/lib/cjs/components/Builder/Scene.js +2 -2
- package/lib/cjs/components/Builder/Scene.js.map +1 -1
- package/lib/cjs/components/DraggableItem/DraggableItem.js +44 -31
- package/lib/cjs/components/DraggableItem/DraggableItem.js.map +1 -1
- package/lib/cjs/components/DraggableItem/DraggableItemLayer.js +2 -2
- package/lib/cjs/components/DraggableItem/DraggableItemLayer.js.map +1 -1
- package/lib/cjs/components/Elements/Image.js +4 -3
- package/lib/cjs/components/Elements/Image.js.map +1 -1
- package/lib/cjs/components/Report.js +10 -9
- package/lib/cjs/components/Report.js.map +1 -1
- package/lib/cjs/components/ReportWrapper.js +10 -12
- package/lib/cjs/components/ReportWrapper.js.map +1 -1
- package/lib/cjs/styles/_jfPrint.scss +12 -0
- package/lib/esm/components/Builder/Builder.js +48 -50
- package/lib/esm/components/Builder/Builder.js.map +1 -1
- package/lib/esm/components/Builder/DndWrapper.js +8 -7
- package/lib/esm/components/Builder/DndWrapper.js.map +1 -1
- package/lib/esm/components/Builder/Element.js +18 -14
- package/lib/esm/components/Builder/Element.js.map +1 -1
- package/lib/esm/components/Builder/Page.js +16 -12
- package/lib/esm/components/Builder/Page.js.map +1 -1
- package/lib/esm/components/Builder/Scene.js +2 -2
- package/lib/esm/components/Builder/Scene.js.map +1 -1
- package/lib/esm/components/DraggableItem/DraggableItem.js +43 -30
- package/lib/esm/components/DraggableItem/DraggableItem.js.map +1 -1
- package/lib/esm/components/DraggableItem/DraggableItemLayer.js +1 -1
- package/lib/esm/components/DraggableItem/DraggableItemLayer.js.map +1 -1
- package/lib/esm/components/Elements/Image.js +4 -3
- package/lib/esm/components/Elements/Image.js.map +1 -1
- package/lib/esm/components/Report.js +10 -9
- package/lib/esm/components/Report.js.map +1 -1
- package/lib/esm/components/ReportWrapper.js +10 -12
- package/lib/esm/components/ReportWrapper.js.map +1 -1
- package/lib/esm/styles/_jfPrint.scss +12 -0
- package/package.json +10 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Page.js","sources":["../../../../src/components/Builder/Page.js"],"sourcesContent":["import {\n useState,\n useRef,\n memo,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { useDrop } from 'react-dnd-cjs';\nimport { ACCEPTED_TYPES } from '../../constants/itemTypes';\nimport AlignmentGuides from '../AlignmentGuides';\nimport ReportItemsWrapper from '../ReportItemsWrapper';\nimport { useBuilderContext } from '../../utils/builderContext';\nimport { usePropContext } from '../../utils/propContext';\nimport {\n proximityListener,\n calculateGuidePositions,\n getCorrectDroppedOffsetValue,\n} from '../../utils/functions';\nimport * as classNames from '../../constants/classNames';\n\nconst emptyObject = {};\n\nconst Page = ({\n activeElement,\n additionalPageItems,\n guides,\n hashCode,\n itemAccessor,\n items,\n onDrop,\n onItemAdd,\n onItemChange,\n onItemRemove,\n onItemResize,\n page,\n pageRef,\n style,\n}) => {\n const {\n isRightPanelOpen,\n isTextEditorOpen,\n setActiveElement,\n setContextMenuProps,\n setIsRightPanelOpen,\n zoom,\n } = useBuilderContext();\n const { acceptedItems, onAnEventTrigger, settings } = usePropContext();\n const [matches, setMatches] = useState({});\n const [isResize, setIsResize] = useState(false);\n const requestRef = useRef();\n\n const drawAlignmentGuides = (item, monitor) => {\n return () => {\n try {\n if (!monitor || monitor.getSourceClientOffset() === null) {\n requestRef.current = undefined;\n return;\n }\n const coords = getCorrectDroppedOffsetValue(\n monitor,\n pageRef.current.getBoundingClientRect(),\n zoom,\n );\n const activeItem = {\n ...item, ...coords,\n };\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 const match = proximityListener(item.id, _guides);\n setMatches(match);\n requestRef.current = undefined;\n } catch (error) {\n setMatches({});\n }\n };\n };\n\n const onHover = (item, monitor) => {\n if (!requestRef.current) {\n requestRef.current = global.requestAnimationFrame(drawAlignmentGuides(item, monitor));\n }\n };\n\n const [{ isOver }, drop] = useDrop({\n accept: ACCEPTED_TYPES,\n collect: monitor => {\n return {\n isOver: monitor.isOver(),\n };\n },\n drop: onDrop,\n hover: onHover,\n });\n\n const { reportBackgroundColor } = settings;\n const { backgroundColor } = page;\n const bgColor = backgroundColor ? backgroundColor : reportBackgroundColor || '#fff';\n\n return (\n <>\n <div\n ref={drop}\n className={classNames.pageContainer}\n style={{\n backgroundColor: bgColor,\n ...style,\n }}\n >\n <div className=\"jfReport-hider o-hidden f-all p-relative\">\n <ReportItemsWrapper\n acceptedItems={acceptedItems}\n activeElement={activeElement}\n guides={guides}\n hashCode={hashCode}\n isResize={isResize}\n isRightPanelOpen={isRightPanelOpen}\n isTextEditorOpen={isTextEditorOpen}\n itemAccessor={itemAccessor}\n // if we send matches all the time, DraggableItems are also rendered on dragging\n items={items}\n matches={isResize ? matches : emptyObject}\n onAnEventTrigger={onAnEventTrigger}\n onItemAdd={onItemAdd}\n onItemChange={onItemChange}\n onItemRemove={onItemRemove}\n onItemResize={onItemResize}\n setActiveElement={setActiveElement}\n setContextMenuProps={setContextMenuProps}\n setIsResize={setIsResize}\n setIsRightPanelOpen={setIsRightPanelOpen}\n setMatches={setMatches}\n zoom={zoom}\n />\n {additionalPageItems}\n <AlignmentGuides\n axis=\"x\"\n guides={guides}\n matches={matches}\n show={(isOver || isResize)}\n zoom={zoom}\n />\n <AlignmentGuides\n axis=\"y\"\n guides={guides}\n matches={matches}\n show={(isOver || isResize)}\n zoom={zoom}\n />\n </div>\n </div>\n </>\n );\n};\n\nPage.propTypes = {\n activeElement: PropTypes.arrayOf(PropTypes.string),\n additionalPageItems: PropTypes.arrayOf(PropTypes.node),\n guides: PropTypes.shape({}),\n hashCode: PropTypes.string,\n itemAccessor: PropTypes.func,\n items: PropTypes.arrayOf(\n PropTypes.shape({}),\n ),\n onDrop: PropTypes.func,\n onItemAdd: PropTypes.func,\n onItemChange: PropTypes.func,\n onItemRemove: PropTypes.func,\n onItemResize: PropTypes.func,\n page: PropTypes.shape({\n backgroundColor: PropTypes.string,\n }),\n pageRef: PropTypes.shape({\n current: PropTypes.any,\n }),\n style: PropTypes.shape({}),\n};\n\nPage.defaultProps = {\n activeElement: null,\n additionalPageItems: [],\n guides: {},\n hashCode: '',\n itemAccessor: () => {},\n items: [],\n onDrop: () => {},\n onItemAdd: () => {},\n onItemChange: () => {},\n onItemRemove: () => {},\n onItemResize: () => {},\n page: {},\n pageRef: {},\n style: {},\n};\n\nexport default memo(Page);\n"],"names":["emptyObject","Page","activeElement","additionalPageItems","guides","hashCode","itemAccessor","items","onDrop","onItemAdd","onItemChange","onItemRemove","onItemResize","page","pageRef","style","useBuilderContext","isRightPanelOpen","isTextEditorOpen","setActiveElement","setContextMenuProps","setIsRightPanelOpen","zoom","usePropContext","acceptedItems","onAnEventTrigger","settings","useState","matches","setMatches","isResize","setIsResize","requestRef","useRef","drawAlignmentGuides","item","monitor","getSourceClientOffset","current","undefined","coords","getCorrectDroppedOffsetValue","getBoundingClientRect","activeItem","_guides","id","x","calculateGuidePositions","y","match","proximityListener","error","onHover","global","requestAnimationFrame","useDrop","accept","ACCEPTED_TYPES","collect","isOver","drop","hover","reportBackgroundColor","backgroundColor","bgColor","_jsx","classNames","_jsxs","propTypes","PropTypes","arrayOf","string","node","shape","func","any","defaultProps","memo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Page.js","sources":["../../../../src/components/Builder/Page.js"],"sourcesContent":["import {\n useState,\n useRef,\n memo,\n useMemo,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { useDrop } from 'react-dnd';\nimport { ACCEPTED_TYPES } from '../../constants/itemTypes';\nimport AlignmentGuides from '../AlignmentGuides';\nimport ReportItemsWrapper from '../ReportItemsWrapper';\nimport { useBuilderContext } from '../../utils/builderContext';\nimport { usePropContext } from '../../utils/propContext';\nimport {\n proximityListener,\n calculateGuidePositions,\n getCorrectDroppedOffsetValue,\n} from '../../utils/functions';\nimport * as classNames from '../../constants/classNames';\n\nconst emptyObject = {};\n\nconst Page = ({\n activeElement,\n additionalPageItems,\n guides,\n hashCode,\n itemAccessor,\n items,\n onDrop,\n onItemAdd,\n onItemChange,\n onItemRemove,\n onItemResize,\n page,\n pageRef,\n style,\n}) => {\n const {\n isRightPanelOpen,\n isTextEditorOpen,\n setActiveElement,\n setContextMenuProps,\n setIsRightPanelOpen,\n zoom,\n } = useBuilderContext();\n const { acceptedItems, onAnEventTrigger, settings } = usePropContext();\n const [matches, setMatches] = useState({});\n const [isResize, setIsResize] = useState(false);\n const requestRef = useRef();\n\n const drawAlignmentGuides = (item, monitor) => {\n return () => {\n try {\n if (!monitor || monitor.getSourceClientOffset() === null) {\n requestRef.current = undefined;\n return;\n }\n const coords = getCorrectDroppedOffsetValue(\n monitor,\n pageRef.current.getBoundingClientRect(),\n zoom,\n );\n const activeItem = {\n ...item, ...coords,\n };\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 const match = proximityListener(item.id, _guides);\n setMatches(match);\n requestRef.current = undefined;\n } catch (error) {\n setMatches({});\n }\n };\n };\n\n const onHover = (item, monitor) => {\n if (!requestRef.current) {\n requestRef.current = global.requestAnimationFrame(drawAlignmentGuides(item, monitor));\n }\n };\n\n const dropConfig = useMemo(() => ({\n accept: ACCEPTED_TYPES,\n collect: monitor => {\n return {\n isOver: monitor.isOver(),\n };\n },\n drop: onDrop,\n hover: onHover,\n }), [onDrop, onHover]);\n\n const [{ isOver }, drop] = useDrop(dropConfig);\n\n const { reportBackgroundColor } = settings;\n const { backgroundColor } = page;\n const bgColor = backgroundColor ? backgroundColor : reportBackgroundColor || '#fff';\n\n return (\n <>\n <div\n ref={drop}\n className={classNames.pageContainer}\n style={{\n backgroundColor: bgColor,\n ...style,\n }}\n >\n <div className=\"jfReport-hider o-hidden f-all p-relative\">\n <ReportItemsWrapper\n acceptedItems={acceptedItems}\n activeElement={activeElement}\n guides={guides}\n hashCode={hashCode}\n isResize={isResize}\n isRightPanelOpen={isRightPanelOpen}\n isTextEditorOpen={isTextEditorOpen}\n itemAccessor={itemAccessor}\n // if we send matches all the time, DraggableItems are also rendered on dragging\n items={items}\n matches={isResize ? matches : emptyObject}\n onAnEventTrigger={onAnEventTrigger}\n onItemAdd={onItemAdd}\n onItemChange={onItemChange}\n onItemRemove={onItemRemove}\n onItemResize={onItemResize}\n setActiveElement={setActiveElement}\n setContextMenuProps={setContextMenuProps}\n setIsResize={setIsResize}\n setIsRightPanelOpen={setIsRightPanelOpen}\n setMatches={setMatches}\n zoom={zoom}\n />\n {additionalPageItems}\n <AlignmentGuides\n axis=\"x\"\n guides={guides}\n matches={matches}\n show={(isOver || isResize)}\n zoom={zoom}\n />\n <AlignmentGuides\n axis=\"y\"\n guides={guides}\n matches={matches}\n show={(isOver || isResize)}\n zoom={zoom}\n />\n </div>\n </div>\n </>\n );\n};\n\nPage.propTypes = {\n activeElement: PropTypes.arrayOf(PropTypes.string),\n additionalPageItems: PropTypes.arrayOf(PropTypes.node),\n guides: PropTypes.shape({}),\n hashCode: PropTypes.string,\n itemAccessor: PropTypes.func,\n items: PropTypes.arrayOf(\n PropTypes.shape({}),\n ),\n onDrop: PropTypes.func,\n onItemAdd: PropTypes.func,\n onItemChange: PropTypes.func,\n onItemRemove: PropTypes.func,\n onItemResize: PropTypes.func,\n page: PropTypes.shape({\n backgroundColor: PropTypes.string,\n }),\n pageRef: PropTypes.shape({\n current: PropTypes.any,\n }),\n style: PropTypes.shape({}),\n};\n\nPage.defaultProps = {\n activeElement: null,\n additionalPageItems: [],\n guides: {},\n hashCode: '',\n itemAccessor: () => {},\n items: [],\n onDrop: () => {},\n onItemAdd: () => {},\n onItemChange: () => {},\n onItemRemove: () => {},\n onItemResize: () => {},\n page: {},\n pageRef: {},\n style: {},\n};\n\nexport default memo(Page);\n"],"names":["emptyObject","Page","activeElement","additionalPageItems","guides","hashCode","itemAccessor","items","onDrop","onItemAdd","onItemChange","onItemRemove","onItemResize","page","pageRef","style","useBuilderContext","isRightPanelOpen","isTextEditorOpen","setActiveElement","setContextMenuProps","setIsRightPanelOpen","zoom","usePropContext","acceptedItems","onAnEventTrigger","settings","useState","matches","setMatches","isResize","setIsResize","requestRef","useRef","drawAlignmentGuides","item","monitor","getSourceClientOffset","current","undefined","coords","getCorrectDroppedOffsetValue","getBoundingClientRect","activeItem","_guides","id","x","calculateGuidePositions","y","match","proximityListener","error","onHover","global","requestAnimationFrame","dropConfig","useMemo","accept","ACCEPTED_TYPES","collect","isOver","drop","hover","useDrop","reportBackgroundColor","backgroundColor","bgColor","_jsx","classNames","_jsxs","propTypes","PropTypes","arrayOf","string","node","shape","func","any","defaultProps","memo"],"mappings":"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"}
|
|
@@ -26,7 +26,7 @@ import generateId from '../../utils/generateId.js';
|
|
|
26
26
|
import { EVENT_IGNORED_ROLES } from '../../constants/eventIgnoredRoles.js';
|
|
27
27
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
28
28
|
|
|
29
|
-
var _excluded = ["id", "itemType"
|
|
29
|
+
var _excluded = ["id", "itemType"];
|
|
30
30
|
|
|
31
31
|
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; }
|
|
32
32
|
|
|
@@ -156,11 +156,11 @@ var Scene = function Scene(_ref) {
|
|
|
156
156
|
var dropped = useCallback(function (pageID, _ref2, monitor, ref) {
|
|
157
157
|
var id = _ref2.id,
|
|
158
158
|
itemType = _ref2.itemType,
|
|
159
|
-
type = _ref2.type,
|
|
160
159
|
additionalData = _objectWithoutProperties(_ref2, _excluded);
|
|
161
160
|
|
|
162
161
|
var pageClient = ref.current.getBoundingClientRect();
|
|
163
162
|
var coords = getCorrectDroppedOffsetValue(monitor, pageClient, zoom);
|
|
163
|
+
var type = monitor.getItemType();
|
|
164
164
|
|
|
165
165
|
switch (type) {
|
|
166
166
|
case DROPPABLE_ITEM_TYPE:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Scene.js","sources":["../../../../src/components/Builder/Scene.js"],"sourcesContent":["/* eslint-disable complexity */\nimport {\n useCallback,\n createRef,\n Fragment,\n useEffect,\n useRef,\n useState,\n memo,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport * as classNames from '../../constants/classNames';\nimport ContextMenu from './ContextMenu';\nimport PageActions from './PageActions';\nimport PageAdder from './PageAdder';\nimport ZoomControls from './ZoomControls';\nimport { useBuilderContext } from '../../utils/builderContext';\nimport { usePropContext } from '../../utils/propContext';\nimport {\n DRAGGABLE_ITEM_TYPE,\n DROPPABLE_ITEM_TYPE,\n} from '../../constants/itemTypes';\nimport Page from './Page';\nimport {\n calculateGuidePositions,\n findItemById,\n findItemsOnPage,\n getCorrectDroppedOffsetValue,\n getCorrectDroppedOffsetValueBySnap,\n getMostVisiblePage,\n getSelectedItems,\n} from '../../utils/functions';\nimport { useEventListener } from '../../utils/hooks';\nimport DraggableItemLayer from '../DraggableItem/DraggableItemLayer';\nimport generateId from '../../utils/generateId';\nimport { EVENT_IGNORED_ROLES } from '../../constants/eventIgnoredRoles';\n\nconst Scene = ({\n additionalPageItems,\n hashCode,\n itemAccessor,\n lastScrollPosition,\n onItemAdd,\n onItemChange,\n onItemMove,\n onItemRemove,\n onItemResize,\n onItemsMove,\n onPageAdd,\n onPageChange,\n onPageDuplicate,\n onPageOrdersChange,\n onPageRemove,\n pages,\n}) => {\n const pageCount = pages.length;\n /* Builder Context */\n const {\n activeElement,\n contextMenuProps,\n isRightPanelOpen,\n setActiveElement,\n setContextMenuProps,\n setEditedElement,\n setIsRightPanelOpen,\n zoom,\n } = useBuilderContext();\n const {\n acceptedItems,\n disableInteraction,\n onAnEventTrigger,\n settings,\n } = usePropContext();\n const [itemToPaste, setItemToPaste] = useState(null);\n const isHeaderHidden = useRef(false);\n\n const pageStyles = useRef({});\n const pageContainerStyles = useRef({});\n const viewPortRef = useRef({});\n\n /* Page Refs */\n const refs = pages.reduce((acc, curr) => {\n acc[curr.id] = createRef(null);\n return acc;\n }, {});\n\n const isMultipleItemSelected = activeElement !== null && activeElement.length > 1;\n\n /* Calculate snap guides */\n const [guides, setGuides] = useState({});\n const keyDownCount = useRef(null);\n useEffect(() => {\n const _guides = pages.reduce((acc, page) => {\n const _pageGuides = {};\n if (refs[page.id]) {\n const pageRef = refs[page.id];\n const {\n height, left, top, width,\n } = pageRef.current.getBoundingClientRect();\n const boundingBox = {\n height, left, top, width,\n };\n _pageGuides.boundingBox = {\n x: calculateGuidePositions(boundingBox, 'x').map(value => value - boundingBox.left),\n y: calculateGuidePositions(boundingBox, 'y').map(value => value - boundingBox.top),\n };\n page.items.forEach(item => {\n _pageGuides[item.id] = {\n x: calculateGuidePositions(item, 'x', zoom),\n y: calculateGuidePositions(item, 'y', zoom),\n };\n });\n }\n acc[page.id] = _pageGuides;\n return acc;\n }, {});\n setGuides(_guides);\n }, [pages, zoom]);\n /* When an item dropped */\n const dropped = useCallback(\n (pageID, {\n id, itemType, type, ...additionalData\n }, monitor, ref) => {\n const pageClient = ref.current.getBoundingClientRect();\n const coords = getCorrectDroppedOffsetValue(\n monitor,\n pageClient,\n zoom,\n );\n switch (type) {\n case DROPPABLE_ITEM_TYPE: {\n const itemID = generateId();\n onItemAdd({\n ...acceptedItems[itemType].details,\n id: itemID,\n pageID,\n ...coords,\n ...additionalData,\n });\n onAnEventTrigger('reportItemAdd', itemType);\n setActiveElement(itemID);\n setIsRightPanelOpen(true);\n break;\n }\n case DRAGGABLE_ITEM_TYPE: {\n const dragCoords = getCorrectDroppedOffsetValueBySnap(coords, guides, id, pages, zoom);\n if (isMultipleItemSelected) {\n const leftDifference = additionalData.left - dragCoords.left;\n const topDifference = additionalData.top - dragCoords.top;\n const items = activeElement.reduce((acc, curr) => {\n const tempItem = findItemById(curr, pages);\n acc[curr] = {\n id: curr,\n left: tempItem.left - leftDifference,\n pageID,\n top: tempItem.top - topDifference,\n };\n return acc;\n }, {});\n onItemsMove({\n items,\n });\n } else {\n onItemMove({\n id,\n pageID,\n ...dragCoords,\n });\n }\n break;\n }\n default: {\n throw new Error('You have to be specify item type');\n }\n }\n },\n [pages, guides, zoom, activeElement],\n );\n\n useEffect(() => {\n if (viewPortRef.current) {\n viewPortRef.current.scrollTop = lastScrollPosition;\n }\n }, []); // set last scroll position after changing mode\n\n useEffect(() => {\n if (document.body.classList.contains('hideHeader') && isHeaderHidden) {\n document.body.classList.remove('hideHeader');\n }\n }, []); // reset hideHeader\n\n const foundItem = findItemById(activeElement === null ? null : activeElement[0], pages);\n\n const selectedItems = getSelectedItems(activeElement, pages);\n const moveItemWithKeyboard = (event, direction, value) => {\n event.preventDefault();\n selectedItems.forEach(item => {\n if (item.isLocked) {\n return false;\n }\n onItemChange(\n { id: item.id },\n {\n ...item,\n [direction]: item[direction] + value,\n },\n );\n });\n };\n\n const selectNextOrPrevElement = (event, deletedItem) => {\n if (event.preventDefault) event.preventDefault();\n const referenceItem = deletedItem ? deletedItem : foundItem;\n\n const page = pages.find(_page => _page.id === referenceItem.pageID);\n if (!page || (page && !page.items.length)) return setActiveElement(null);\n const { items } = page;\n\n const currentIndex = items.findIndex(item => item.id === referenceItem.id);\n\n // Pages are not updated in time so here is an unnecessary check\n if (items.length === 1 && deletedItem) {\n return setActiveElement(null);\n }\n\n if (event.shiftKey) {\n if (items[currentIndex - 1]) setActiveElement(items[currentIndex - 1].id);\n else setActiveElement(items[items.length - 1].id);\n } else if (items[currentIndex + 1]) {\n setActiveElement(items[currentIndex + 1].id);\n } else setActiveElement(items[0].id);\n };\n\n const onItemRemoveFromPage = e => {\n // Firefox updates browser history on backspace\n e.preventDefault();\n if (isMultipleItemSelected) return;\n if (foundItem.isLocked) {\n return false;\n }\n setActiveElement(null);\n onItemRemove(foundItem);\n selectNextOrPrevElement({ shiftKey: false }, foundItem);\n onAnEventTrigger('removeItem', foundItem.itemType);\n };\n\n const handlePaste = () => {\n if (isMultipleItemSelected) return;\n const itemID = generateId();\n const pageID = getMostVisiblePage(true);\n const offset = itemToPaste.pageID === pageID ? 50 : 0;\n\n const item = {\n ...itemToPaste,\n id: itemID,\n left: itemToPaste.left + offset,\n pageID,\n top: itemToPaste.top + offset,\n };\n\n onItemAdd(item);\n\n onAnEventTrigger('pasteItem', itemToPaste.itemType);\n setActiveElement(itemID);\n // set as last reference to paste\n setItemToPaste(item);\n };\n\n const keyboardActions = event => {\n const {\n key,\n metaKey,\n shiftKey,\n } = event;\n\n if (metaKey) {\n if (key === 'l') {\n // Lock\n if (isMultipleItemSelected) return;\n event.preventDefault(); // Dont focus to URL bar\n onAnEventTrigger(\n foundItem.isLocked ? 'unlockReportItem' : 'lockReportItem',\n foundItem.itemType,\n );\n onItemChange(\n { id: foundItem.id },\n { isLocked: foundItem.isLocked ? false : true },\n );\n return;\n }\n\n if (key === 'c' || key === 'x') {\n if (isMultipleItemSelected) return;\n // Copy or Cut\n if (key === 'x') {\n onItemRemoveFromPage(event);\n onAnEventTrigger('cutItem', foundItem.itemType);\n } else {\n onAnEventTrigger('copyItem', foundItem.itemType);\n }\n\n setItemToPaste(foundItem);\n return;\n }\n\n if (foundItem && key === 'd') {\n if (isMultipleItemSelected) return;\n // Duplicate\n event.preventDefault();\n const itemID = generateId();\n onItemAdd({\n ...foundItem,\n id: itemID,\n left: foundItem.left + 50,\n top: foundItem.top + 50,\n });\n onAnEventTrigger('duplicateItem', foundItem.itemType);\n setActiveElement(itemID);\n if (!isRightPanelOpen) {\n setIsRightPanelOpen(true);\n }\n return;\n }\n }\n\n keyDownCount.current++;\n const movementValue = shiftKey ? 10 : 1 + keyDownCount.current;\n\n // Others\n switch (key) {\n case 'Backspace': return onItemRemoveFromPage(event);\n case 'Delete': return onItemRemoveFromPage(event);\n case 'Escape': return setActiveElement(null);\n case 'ArrowLeft': return moveItemWithKeyboard(event, 'left', -movementValue);\n case 'ArrowUp': return moveItemWithKeyboard(event, 'top', -movementValue);\n case 'ArrowRight': return moveItemWithKeyboard(event, 'left', movementValue);\n case 'ArrowDown': return moveItemWithKeyboard(event, 'top', movementValue);\n case 'Tab': return selectNextOrPrevElement(event);\n default:\n }\n };\n\n const onScroll = e => {\n const { scrollTop } = e.currentTarget;\n const hiddenHeaderHeight = 70;\n const headerHidingLimit = isHeaderHidden ? 230 : 300;\n if (scrollTop > headerHidingLimit + hiddenHeaderHeight && !isHeaderHidden.current) {\n isHeaderHidden.current = true;\n document.body.classList.add('hideHeader');\n } else if (scrollTop < headerHidingLimit && isHeaderHidden.current) {\n isHeaderHidden.current = false;\n document.body.classList.remove('hideHeader');\n }\n };\n\n const 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 itemAccessor={itemAccessor}\n pageRefs={refs}\n pages={pages}\n />\n\n <div\n ref={viewPortRef}\n className={classNames.viewport}\n data-zoom={zoom}\n onScroll={onScroll}\n >\n <div\n className={classNames.canvas}\n >\n {pages.map((page, index) => (\n // TODO: This part can be moved into a different component\n <Fragment key={page.id}>\n <PageActions\n disableInteraction={disableInteraction}\n onAnEventTrigger={onAnEventTrigger}\n onPageAdd={onPageAdd}\n onPageDuplicate={onPageDuplicate}\n onPageOrdersChange={onPageOrdersChange}\n onPageRemove={onPageRemove}\n order={page.order}\n pageCount={pageCount}\n pageID={page.id}\n pages={pages}\n setEditedElement={setEditedElement}\n setIsRightPanelOpen={setIsRightPanelOpen}\n />\n <div\n key={`page_${page.id}`}\n ref={refs[page.id]}\n className={classNames.page}\n data-id={page.id}\n data-order={page.order}\n id={`presentation-page-${page.id.toString()}`}\n style={pageStyles.current}\n >\n <Page\n activeElement={activeElement}\n additionalPageItems={additionalPageItems}\n guides={guides[page.id]}\n hashCode={hashCode}\n itemAccessor={itemAccessor}\n items={page.items}\n // TODO: dont use inline functions\n onDrop={(item, monitor) => dropped(page.id, item, monitor, refs[page.id])}\n onItemAdd={onItemAdd}\n onItemChange={onItemChange}\n onItemRemove={onItemRemove}\n onItemResize={onItemResize}\n page={page}\n pageIndex={index}\n pageRef={refs[page.id]}\n style={pageContainerStyles.current}\n />\n </div>\n </Fragment>\n ))}\n <PageAdder\n onPageAdd={onPageAdd}\n pageCount={pageCount}\n />\n </div>\n </div>\n <ZoomControls\n mode=\"customize\"\n pages={pages}\n />\n {contextMenuProps\n && (\n <ContextMenu\n exceptionalClasses={['contextMenu-button']}\n height={height}\n item={findItemById(contextMenuProps.id, pages)}\n items={findItemsOnPage(contextMenuProps.pageID, pages)}\n onAnEventTrigger={onAnEventTrigger}\n onClickOutside={() => setContextMenuProps(null)}\n onItemChange={onItemChange}\n onItemRemove={onItemRemove}\n onPageChange={onPageChange}\n position={contextMenuProps.position}\n width={width}\n />\n )}\n </main>\n );\n};\n\nScene.propTypes = {\n additionalPageItems: PropTypes.arrayOf(PropTypes.node),\n hashCode: PropTypes.string,\n itemAccessor: PropTypes.func,\n lastScrollPosition: PropTypes.number,\n onItemAdd: PropTypes.func,\n onItemChange: PropTypes.func,\n onItemMove: PropTypes.func,\n onItemRemove: PropTypes.func,\n onItemResize: PropTypes.func,\n onItemsMove: PropTypes.func,\n onPageAdd: PropTypes.func,\n onPageChange: PropTypes.func,\n onPageDuplicate: PropTypes.func,\n onPageOrdersChange: PropTypes.func,\n onPageRemove: PropTypes.func,\n pages: PropTypes.arrayOf(\n PropTypes.shape({}),\n ),\n};\n\nScene.defaultProps = {\n additionalPageItems: [],\n hashCode: '',\n itemAccessor: () => {},\n lastScrollPosition: 0,\n onItemAdd: () => {},\n onItemChange: () => {},\n onItemMove: () => {},\n onItemRemove: () => {},\n onItemResize: () => {},\n onItemsMove: () => {},\n onPageAdd: () => {},\n onPageChange: () => {},\n onPageDuplicate: () => {},\n onPageOrdersChange: () => {},\n onPageRemove: () => {},\n pages: [],\n};\n\nexport default memo(Scene);\n"],"names":["Scene","additionalPageItems","hashCode","itemAccessor","lastScrollPosition","onItemAdd","onItemChange","onItemMove","onItemRemove","onItemResize","onItemsMove","onPageAdd","onPageChange","onPageDuplicate","onPageOrdersChange","onPageRemove","pages","pageCount","length","useBuilderContext","activeElement","contextMenuProps","isRightPanelOpen","setActiveElement","setContextMenuProps","setEditedElement","setIsRightPanelOpen","zoom","usePropContext","acceptedItems","disableInteraction","onAnEventTrigger","settings","useState","itemToPaste","setItemToPaste","isHeaderHidden","useRef","pageStyles","pageContainerStyles","viewPortRef","refs","reduce","acc","curr","id","createRef","isMultipleItemSelected","guides","setGuides","keyDownCount","useEffect","_guides","page","_pageGuides","pageRef","current","getBoundingClientRect","height","left","top","width","boundingBox","x","calculateGuidePositions","map","value","y","items","forEach","item","dropped","useCallback","pageID","monitor","ref","itemType","type","additionalData","pageClient","coords","getCorrectDroppedOffsetValue","DROPPABLE_ITEM_TYPE","itemID","generateId","details","DRAGGABLE_ITEM_TYPE","dragCoords","getCorrectDroppedOffsetValueBySnap","leftDifference","topDifference","tempItem","findItemById","Error","scrollTop","document","body","classList","contains","remove","foundItem","selectedItems","getSelectedItems","moveItemWithKeyboard","event","direction","preventDefault","isLocked","selectNextOrPrevElement","deletedItem","referenceItem","find","_page","currentIndex","findIndex","shiftKey","onItemRemoveFromPage","e","handlePaste","getMostVisiblePage","offset","keyboardActions","key","metaKey","movementValue","onScroll","currentTarget","hiddenHeaderHeight","headerHidingLimit","add","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","propTypes","PropTypes","arrayOf","node","string","func","number","shape","defaultProps","memo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Scene.js","sources":["../../../../src/components/Builder/Scene.js"],"sourcesContent":["/* eslint-disable complexity */\nimport {\n useCallback,\n createRef,\n Fragment,\n useEffect,\n useRef,\n useState,\n memo,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport * as classNames from '../../constants/classNames';\nimport ContextMenu from './ContextMenu';\nimport PageActions from './PageActions';\nimport PageAdder from './PageAdder';\nimport ZoomControls from './ZoomControls';\nimport { useBuilderContext } from '../../utils/builderContext';\nimport { usePropContext } from '../../utils/propContext';\nimport {\n DRAGGABLE_ITEM_TYPE,\n DROPPABLE_ITEM_TYPE,\n} from '../../constants/itemTypes';\nimport Page from './Page';\nimport {\n calculateGuidePositions,\n findItemById,\n findItemsOnPage,\n getCorrectDroppedOffsetValue,\n getCorrectDroppedOffsetValueBySnap,\n getMostVisiblePage,\n getSelectedItems,\n} from '../../utils/functions';\nimport { useEventListener } from '../../utils/hooks';\nimport DraggableItemLayer from '../DraggableItem/DraggableItemLayer';\nimport generateId from '../../utils/generateId';\nimport { EVENT_IGNORED_ROLES } from '../../constants/eventIgnoredRoles';\n\nconst Scene = ({\n additionalPageItems,\n hashCode,\n itemAccessor,\n lastScrollPosition,\n onItemAdd,\n onItemChange,\n onItemMove,\n onItemRemove,\n onItemResize,\n onItemsMove,\n onPageAdd,\n onPageChange,\n onPageDuplicate,\n onPageOrdersChange,\n onPageRemove,\n pages,\n}) => {\n const pageCount = pages.length;\n /* Builder Context */\n const {\n activeElement,\n contextMenuProps,\n isRightPanelOpen,\n setActiveElement,\n setContextMenuProps,\n setEditedElement,\n setIsRightPanelOpen,\n zoom,\n } = useBuilderContext();\n const {\n acceptedItems,\n disableInteraction,\n onAnEventTrigger,\n settings,\n } = usePropContext();\n const [itemToPaste, setItemToPaste] = useState(null);\n const isHeaderHidden = useRef(false);\n\n const pageStyles = useRef({});\n const pageContainerStyles = useRef({});\n const viewPortRef = useRef({});\n\n /* Page Refs */\n const refs = pages.reduce((acc, curr) => {\n acc[curr.id] = createRef(null);\n return acc;\n }, {});\n\n const isMultipleItemSelected = activeElement !== null && activeElement.length > 1;\n\n /* Calculate snap guides */\n const [guides, setGuides] = useState({});\n const keyDownCount = useRef(null);\n useEffect(() => {\n const _guides = pages.reduce((acc, page) => {\n const _pageGuides = {};\n if (refs[page.id]) {\n const pageRef = refs[page.id];\n const {\n height, left, top, width,\n } = pageRef.current.getBoundingClientRect();\n const boundingBox = {\n height, left, top, width,\n };\n _pageGuides.boundingBox = {\n x: calculateGuidePositions(boundingBox, 'x').map(value => value - boundingBox.left),\n y: calculateGuidePositions(boundingBox, 'y').map(value => value - boundingBox.top),\n };\n page.items.forEach(item => {\n _pageGuides[item.id] = {\n x: calculateGuidePositions(item, 'x', zoom),\n y: calculateGuidePositions(item, 'y', zoom),\n };\n });\n }\n acc[page.id] = _pageGuides;\n return acc;\n }, {});\n setGuides(_guides);\n }, [pages, zoom]);\n /* When an item dropped */\n const dropped = useCallback(\n (pageID, {\n id, itemType, ...additionalData\n }, monitor, ref) => {\n const pageClient = ref.current.getBoundingClientRect();\n const coords = getCorrectDroppedOffsetValue(\n monitor,\n pageClient,\n zoom,\n );\n const type = monitor.getItemType();\n switch (type) {\n case DROPPABLE_ITEM_TYPE: {\n const itemID = generateId();\n onItemAdd({\n ...acceptedItems[itemType].details,\n id: itemID,\n pageID,\n ...coords,\n ...additionalData,\n });\n onAnEventTrigger('reportItemAdd', itemType);\n setActiveElement(itemID);\n setIsRightPanelOpen(true);\n break;\n }\n case DRAGGABLE_ITEM_TYPE: {\n const dragCoords = getCorrectDroppedOffsetValueBySnap(coords, guides, id, pages, zoom);\n if (isMultipleItemSelected) {\n const leftDifference = additionalData.left - dragCoords.left;\n const topDifference = additionalData.top - dragCoords.top;\n const items = activeElement.reduce((acc, curr) => {\n const tempItem = findItemById(curr, pages);\n acc[curr] = {\n id: curr,\n left: tempItem.left - leftDifference,\n pageID,\n top: tempItem.top - topDifference,\n };\n return acc;\n }, {});\n onItemsMove({\n items,\n });\n } else {\n onItemMove({\n id,\n pageID,\n ...dragCoords,\n });\n }\n break;\n }\n default: {\n throw new Error('You have to be specify item type');\n }\n }\n },\n [pages, guides, zoom, activeElement],\n );\n\n useEffect(() => {\n if (viewPortRef.current) {\n viewPortRef.current.scrollTop = lastScrollPosition;\n }\n }, []); // set last scroll position after changing mode\n\n useEffect(() => {\n if (document.body.classList.contains('hideHeader') && isHeaderHidden) {\n document.body.classList.remove('hideHeader');\n }\n }, []); // reset hideHeader\n\n const foundItem = findItemById(activeElement === null ? null : activeElement[0], pages);\n\n const selectedItems = getSelectedItems(activeElement, pages);\n const moveItemWithKeyboard = (event, direction, value) => {\n event.preventDefault();\n selectedItems.forEach(item => {\n if (item.isLocked) {\n return false;\n }\n onItemChange(\n { id: item.id },\n {\n ...item,\n [direction]: item[direction] + value,\n },\n );\n });\n };\n\n const selectNextOrPrevElement = (event, deletedItem) => {\n if (event.preventDefault) event.preventDefault();\n const referenceItem = deletedItem ? deletedItem : foundItem;\n\n const page = pages.find(_page => _page.id === referenceItem.pageID);\n if (!page || (page && !page.items.length)) return setActiveElement(null);\n const { items } = page;\n\n const currentIndex = items.findIndex(item => item.id === referenceItem.id);\n\n // Pages are not updated in time so here is an unnecessary check\n if (items.length === 1 && deletedItem) {\n return setActiveElement(null);\n }\n\n if (event.shiftKey) {\n if (items[currentIndex - 1]) setActiveElement(items[currentIndex - 1].id);\n else setActiveElement(items[items.length - 1].id);\n } else if (items[currentIndex + 1]) {\n setActiveElement(items[currentIndex + 1].id);\n } else setActiveElement(items[0].id);\n };\n\n const onItemRemoveFromPage = e => {\n // Firefox updates browser history on backspace\n e.preventDefault();\n if (isMultipleItemSelected) return;\n if (foundItem.isLocked) {\n return false;\n }\n setActiveElement(null);\n onItemRemove(foundItem);\n selectNextOrPrevElement({ shiftKey: false }, foundItem);\n onAnEventTrigger('removeItem', foundItem.itemType);\n };\n\n const handlePaste = () => {\n if (isMultipleItemSelected) return;\n const itemID = generateId();\n const pageID = getMostVisiblePage(true);\n const offset = itemToPaste.pageID === pageID ? 50 : 0;\n\n const item = {\n ...itemToPaste,\n id: itemID,\n left: itemToPaste.left + offset,\n pageID,\n top: itemToPaste.top + offset,\n };\n\n onItemAdd(item);\n\n onAnEventTrigger('pasteItem', itemToPaste.itemType);\n setActiveElement(itemID);\n // set as last reference to paste\n setItemToPaste(item);\n };\n\n const keyboardActions = event => {\n const {\n key,\n metaKey,\n shiftKey,\n } = event;\n\n if (metaKey) {\n if (key === 'l') {\n // Lock\n if (isMultipleItemSelected) return;\n event.preventDefault(); // Dont focus to URL bar\n onAnEventTrigger(\n foundItem.isLocked ? 'unlockReportItem' : 'lockReportItem',\n foundItem.itemType,\n );\n onItemChange(\n { id: foundItem.id },\n { isLocked: foundItem.isLocked ? false : true },\n );\n return;\n }\n\n if (key === 'c' || key === 'x') {\n if (isMultipleItemSelected) return;\n // Copy or Cut\n if (key === 'x') {\n onItemRemoveFromPage(event);\n onAnEventTrigger('cutItem', foundItem.itemType);\n } else {\n onAnEventTrigger('copyItem', foundItem.itemType);\n }\n\n setItemToPaste(foundItem);\n return;\n }\n\n if (foundItem && key === 'd') {\n if (isMultipleItemSelected) return;\n // Duplicate\n event.preventDefault();\n const itemID = generateId();\n onItemAdd({\n ...foundItem,\n id: itemID,\n left: foundItem.left + 50,\n top: foundItem.top + 50,\n });\n onAnEventTrigger('duplicateItem', foundItem.itemType);\n setActiveElement(itemID);\n if (!isRightPanelOpen) {\n setIsRightPanelOpen(true);\n }\n return;\n }\n }\n\n keyDownCount.current++;\n const movementValue = shiftKey ? 10 : 1 + keyDownCount.current;\n\n // Others\n switch (key) {\n case 'Backspace': return onItemRemoveFromPage(event);\n case 'Delete': return onItemRemoveFromPage(event);\n case 'Escape': return setActiveElement(null);\n case 'ArrowLeft': return moveItemWithKeyboard(event, 'left', -movementValue);\n case 'ArrowUp': return moveItemWithKeyboard(event, 'top', -movementValue);\n case 'ArrowRight': return moveItemWithKeyboard(event, 'left', movementValue);\n case 'ArrowDown': return moveItemWithKeyboard(event, 'top', movementValue);\n case 'Tab': return selectNextOrPrevElement(event);\n default:\n }\n };\n\n const onScroll = e => {\n const { scrollTop } = e.currentTarget;\n const hiddenHeaderHeight = 70;\n const headerHidingLimit = isHeaderHidden ? 230 : 300;\n if (scrollTop > headerHidingLimit + hiddenHeaderHeight && !isHeaderHidden.current) {\n isHeaderHidden.current = true;\n document.body.classList.add('hideHeader');\n } else if (scrollTop < headerHidingLimit && isHeaderHidden.current) {\n isHeaderHidden.current = false;\n document.body.classList.remove('hideHeader');\n }\n };\n\n const 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 itemAccessor={itemAccessor}\n pageRefs={refs}\n pages={pages}\n />\n\n <div\n ref={viewPortRef}\n className={classNames.viewport}\n data-zoom={zoom}\n onScroll={onScroll}\n >\n <div\n className={classNames.canvas}\n >\n {pages.map((page, index) => (\n // TODO: This part can be moved into a different component\n <Fragment key={page.id}>\n <PageActions\n disableInteraction={disableInteraction}\n onAnEventTrigger={onAnEventTrigger}\n onPageAdd={onPageAdd}\n onPageDuplicate={onPageDuplicate}\n onPageOrdersChange={onPageOrdersChange}\n onPageRemove={onPageRemove}\n order={page.order}\n pageCount={pageCount}\n pageID={page.id}\n pages={pages}\n setEditedElement={setEditedElement}\n setIsRightPanelOpen={setIsRightPanelOpen}\n />\n <div\n key={`page_${page.id}`}\n ref={refs[page.id]}\n className={classNames.page}\n data-id={page.id}\n data-order={page.order}\n id={`presentation-page-${page.id.toString()}`}\n style={pageStyles.current}\n >\n <Page\n activeElement={activeElement}\n additionalPageItems={additionalPageItems}\n guides={guides[page.id]}\n hashCode={hashCode}\n itemAccessor={itemAccessor}\n items={page.items}\n // TODO: dont use inline functions\n onDrop={(item, monitor) => dropped(page.id, item, monitor, refs[page.id])}\n onItemAdd={onItemAdd}\n onItemChange={onItemChange}\n onItemRemove={onItemRemove}\n onItemResize={onItemResize}\n page={page}\n pageIndex={index}\n pageRef={refs[page.id]}\n style={pageContainerStyles.current}\n />\n </div>\n </Fragment>\n ))}\n <PageAdder\n onPageAdd={onPageAdd}\n pageCount={pageCount}\n />\n </div>\n </div>\n <ZoomControls\n mode=\"customize\"\n pages={pages}\n />\n {contextMenuProps\n && (\n <ContextMenu\n exceptionalClasses={['contextMenu-button']}\n height={height}\n item={findItemById(contextMenuProps.id, pages)}\n items={findItemsOnPage(contextMenuProps.pageID, pages)}\n onAnEventTrigger={onAnEventTrigger}\n onClickOutside={() => setContextMenuProps(null)}\n onItemChange={onItemChange}\n onItemRemove={onItemRemove}\n onPageChange={onPageChange}\n position={contextMenuProps.position}\n width={width}\n />\n )}\n </main>\n );\n};\n\nScene.propTypes = {\n additionalPageItems: PropTypes.arrayOf(PropTypes.node),\n hashCode: PropTypes.string,\n itemAccessor: PropTypes.func,\n lastScrollPosition: PropTypes.number,\n onItemAdd: PropTypes.func,\n onItemChange: PropTypes.func,\n onItemMove: PropTypes.func,\n onItemRemove: PropTypes.func,\n onItemResize: PropTypes.func,\n onItemsMove: PropTypes.func,\n onPageAdd: PropTypes.func,\n onPageChange: PropTypes.func,\n onPageDuplicate: PropTypes.func,\n onPageOrdersChange: PropTypes.func,\n onPageRemove: PropTypes.func,\n pages: PropTypes.arrayOf(\n PropTypes.shape({}),\n ),\n};\n\nScene.defaultProps = {\n additionalPageItems: [],\n hashCode: '',\n itemAccessor: () => {},\n lastScrollPosition: 0,\n onItemAdd: () => {},\n onItemChange: () => {},\n onItemMove: () => {},\n onItemRemove: () => {},\n onItemResize: () => {},\n onItemsMove: () => {},\n onPageAdd: () => {},\n onPageChange: () => {},\n onPageDuplicate: () => {},\n onPageOrdersChange: () => {},\n onPageRemove: () => {},\n pages: [],\n};\n\nexport default memo(Scene);\n"],"names":["Scene","additionalPageItems","hashCode","itemAccessor","lastScrollPosition","onItemAdd","onItemChange","onItemMove","onItemRemove","onItemResize","onItemsMove","onPageAdd","onPageChange","onPageDuplicate","onPageOrdersChange","onPageRemove","pages","pageCount","length","useBuilderContext","activeElement","contextMenuProps","isRightPanelOpen","setActiveElement","setContextMenuProps","setEditedElement","setIsRightPanelOpen","zoom","usePropContext","acceptedItems","disableInteraction","onAnEventTrigger","settings","useState","itemToPaste","setItemToPaste","isHeaderHidden","useRef","pageStyles","pageContainerStyles","viewPortRef","refs","reduce","acc","curr","id","createRef","isMultipleItemSelected","guides","setGuides","keyDownCount","useEffect","_guides","page","_pageGuides","pageRef","current","getBoundingClientRect","height","left","top","width","boundingBox","x","calculateGuidePositions","map","value","y","items","forEach","item","dropped","useCallback","pageID","monitor","ref","itemType","additionalData","pageClient","coords","getCorrectDroppedOffsetValue","type","getItemType","DROPPABLE_ITEM_TYPE","itemID","generateId","details","DRAGGABLE_ITEM_TYPE","dragCoords","getCorrectDroppedOffsetValueBySnap","leftDifference","topDifference","tempItem","findItemById","Error","scrollTop","document","body","classList","contains","remove","foundItem","selectedItems","getSelectedItems","moveItemWithKeyboard","event","direction","preventDefault","isLocked","selectNextOrPrevElement","deletedItem","referenceItem","find","_page","currentIndex","findIndex","shiftKey","onItemRemoveFromPage","e","handlePaste","getMostVisiblePage","offset","keyboardActions","key","metaKey","movementValue","onScroll","currentTarget","hiddenHeaderHeight","headerHidingLimit","add","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","propTypes","PropTypes","arrayOf","node","string","func","number","shape","defaultProps","memo"],"mappings":"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"}
|
|
@@ -6,8 +6,8 @@ import 'core-js/modules/es.string.iterator.js';
|
|
|
6
6
|
import 'core-js/modules/web.dom-collections.for-each.js';
|
|
7
7
|
import { memo, useState, useEffect } from 'react';
|
|
8
8
|
import PropTypes from 'prop-types';
|
|
9
|
-
import { useDrag } from 'react-dnd
|
|
10
|
-
import { getEmptyImage } from 'react-dnd-html5-backend
|
|
9
|
+
import { useDrag } from 'react-dnd';
|
|
10
|
+
import { getEmptyImage } from 'react-dnd-html5-backend';
|
|
11
11
|
import isEqual from 'lodash.isequal';
|
|
12
12
|
import ItemPositioner from '../ItemPositioner.js';
|
|
13
13
|
import { DRAGGABLE_ITEM_TYPE } from '../../constants/itemTypes.js';
|
|
@@ -86,32 +86,36 @@ var DraggableItem = function DraggableItem(_ref) {
|
|
|
86
86
|
}
|
|
87
87
|
};
|
|
88
88
|
|
|
89
|
-
var
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
89
|
+
var _canDrag = !item.isLocked && !isTextEditorOpen;
|
|
90
|
+
|
|
91
|
+
var _useDrag = useDrag(function () {
|
|
92
|
+
return {
|
|
93
|
+
canDrag: function canDrag() {
|
|
94
|
+
return _canDrag;
|
|
95
|
+
},
|
|
96
|
+
collect: function collect(monitor) {
|
|
97
|
+
return {
|
|
98
|
+
isDragging: monitor.isDragging()
|
|
99
|
+
};
|
|
100
|
+
},
|
|
101
|
+
end: function end() {
|
|
102
|
+
removeEventListenerForSidebar();
|
|
103
|
+
},
|
|
104
|
+
isDragging: function isDragging() {
|
|
105
|
+
return isMultipleItemSelected && isSelected || !isMultipleItemSelected && isSelected;
|
|
106
|
+
},
|
|
107
|
+
item: function item() {
|
|
108
|
+
return {
|
|
109
|
+
height: height,
|
|
110
|
+
id: id,
|
|
111
|
+
left: left,
|
|
112
|
+
top: top,
|
|
113
|
+
width: width
|
|
114
|
+
};
|
|
115
|
+
},
|
|
116
|
+
type: DRAGGABLE_ITEM_TYPE
|
|
117
|
+
};
|
|
118
|
+
}, [_canDrag, height, id, left, top, width, isMultipleItemSelected, isSelected]),
|
|
115
119
|
_useDrag2 = _slicedToArray(_useDrag, 3),
|
|
116
120
|
isDragging = _useDrag2[0].isDragging,
|
|
117
121
|
drag = _useDrag2[1],
|
|
@@ -131,11 +135,20 @@ var DraggableItem = function DraggableItem(_ref) {
|
|
|
131
135
|
stateWidth = _useState2$.width,
|
|
132
136
|
setResizeSize = _useState2[1];
|
|
133
137
|
|
|
138
|
+
useEffect(function () {
|
|
139
|
+
if (!isDragging) return;
|
|
140
|
+
if (!isSelected) select();
|
|
141
|
+
addEventListenerForSidebar();
|
|
142
|
+
return function () {
|
|
143
|
+
removeEventListenerForSidebar();
|
|
144
|
+
};
|
|
145
|
+
}, [isDragging, isSelected, select]);
|
|
134
146
|
useEffect(function () {
|
|
135
147
|
preview(getEmptyImage(), {
|
|
136
148
|
captureDraggingState: true
|
|
137
149
|
});
|
|
138
|
-
|
|
150
|
+
}, [preview]);
|
|
151
|
+
useEffect(function () {
|
|
139
152
|
if (width !== stateWidth || height !== stateHeight || left !== stateLeft || top !== stateTop) {
|
|
140
153
|
setResizeSize({
|
|
141
154
|
height: height,
|
|
@@ -144,7 +157,7 @@ var DraggableItem = function DraggableItem(_ref) {
|
|
|
144
157
|
width: width
|
|
145
158
|
});
|
|
146
159
|
}
|
|
147
|
-
}, [width, height, left, top]);
|
|
160
|
+
}, [width, height, left, top, stateWidth, stateHeight, stateLeft, stateTop]);
|
|
148
161
|
|
|
149
162
|
var onResizeStop = function onResizeStop(deltaWidth, deltaHeight, direction) {
|
|
150
163
|
var activeItem = _objectSpread(_objectSpread({}, item), {}, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DraggableItem.js","sources":["../../../../src/components/DraggableItem/DraggableItem.js"],"sourcesContent":["import { useEffect, useState, memo } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDrag } from 'react-dnd-cjs';\nimport { getEmptyImage } from 'react-dnd-html5-backend-cjs';\nimport isEqual from 'lodash.isequal';\nimport ItemPositioner from '../ItemPositioner';\nimport { DRAGGABLE_ITEM_TYPE } from '../../constants/itemTypes';\nimport {\n getStyles,\n getPosition, calculateGuidePositions, proximityListener,\n} from '../../utils/functions';\nimport PageItemResizer from '../PageItemResizer';\nimport ErrorBoundary from '../ErrorBoundary';\nimport * as classNames from '../../constants/classNames';\nimport generateId from '../../utils/generateId';\nimport {\n addEventListenerForSidebar,\n removeEventListenerForSidebar,\n} from '../../utils/scrollZoneFunctions';\n\nconst exceptionalClassesForClickOutside = ['contextMenu-itemLabel', 'contextMenu-item'];\nconst reportItemStyle = {\n height: '100%',\n width: '100%',\n};\n\nconst DraggableItem = ({\n children,\n guides,\n isMultipleItemSelected,\n isResize,\n isRightPanelOpen,\n isSelected,\n isTextEditorOpen,\n item,\n matches,\n onAnEventTrigger,\n onItemAdd,\n onItemChange,\n onItemRemove,\n onItemResize,\n setActiveElement,\n setContextMenuProps,\n setIsResize,\n setIsRightPanelOpen,\n setMatches,\n zoom,\n}) => {\n const {\n height,\n id,\n isLocked,\n left,\n pageID,\n top,\n width,\n } = item;\n\n const select = event => {\n if (!isSelected) {\n if (!event || !event.metaKey) {\n if (isLocked) {\n setActiveElement(id, false);\n setIsRightPanelOpen(false);\n } else {\n setActiveElement(id);\n }\n } else {\n setActiveElement(id, undefined, true);\n }\n }\n };\n\n const [{ isDragging }, drag, preview] = useDrag({\n begin: () => {\n if (!isSelected) select();\n addEventListenerForSidebar();\n },\n canDrag: (!item.isLocked && !isTextEditorOpen) ? true : false,\n collect: monitor => ({\n isDragging: monitor.isDragging(),\n }),\n end: () => {\n removeEventListenerForSidebar();\n },\n isDragging: () => {\n return (isMultipleItemSelected && isSelected) || (!isMultipleItemSelected && isSelected);\n },\n item: {\n height,\n id,\n left,\n top,\n type: DRAGGABLE_ITEM_TYPE,\n width,\n },\n });\n\n const [\n {\n height: stateHeight,\n left: stateLeft,\n top: stateTop,\n width: stateWidth,\n },\n setResizeSize,\n ] = useState({\n height,\n left,\n top,\n width,\n });\n\n useEffect(() => {\n preview(getEmptyImage(), { captureDraggingState: true });\n if (width !== stateWidth || height !== stateHeight || left !== stateLeft || top !== stateTop) {\n setResizeSize({\n height,\n left,\n top,\n width,\n });\n }\n }, [width, height, left, top]);\n\n const onResizeStop = (deltaWidth, deltaHeight, direction) => {\n const activeItem = {\n ...item,\n height: item.height + deltaHeight,\n width: item.width + deltaWidth,\n };\n if (/left/i.test(direction)) activeItem.left = activeItem.left - deltaWidth;\n if (/top/i.test(direction)) activeItem.top = activeItem.top - deltaHeight;\n let newActiveBoxLeft = activeItem.left;\n let newActiveBoxTop = activeItem.top;\n Object.keys(matches).forEach(axis => {\n const { activeBoxGuides, matchedArray, proximity } = matches[axis];\n const activeBoxProximityIndex = proximity.activeBoxIndex;\n const matchedBoxProximityIndex = proximity.matchedBoxIndex;\n if (axis === 'x') {\n if (activeBoxGuides[activeBoxProximityIndex] > matchedArray[matchedBoxProximityIndex]) {\n newActiveBoxLeft = activeItem.left - proximity.value;\n } else {\n newActiveBoxLeft = activeItem.left + proximity.value;\n }\n } else if (activeBoxGuides[activeBoxProximityIndex]\n > matchedArray[matchedBoxProximityIndex]) {\n newActiveBoxTop = activeItem.top - proximity.value;\n } else {\n newActiveBoxTop = activeItem.top + proximity.value;\n }\n });\n\n let newResizeSize = {\n height: activeItem.height,\n left: activeItem.left,\n top: activeItem.top,\n width: activeItem.width,\n };\n\n if (!(/top/i.test(direction) && /left/i.test(direction))) {\n newResizeSize = {\n ...newResizeSize,\n height: newResizeSize.height + (newActiveBoxTop - activeItem.top),\n width: newResizeSize.width + (newActiveBoxLeft - activeItem.left),\n };\n }\n if (/top/i.test(direction) && newActiveBoxTop !== newResizeSize.top) {\n newResizeSize.top = newActiveBoxTop;\n }\n if (/left/i.test(direction) && newActiveBoxLeft !== newResizeSize.left) {\n newResizeSize.left = newActiveBoxLeft;\n }\n setIsResize(false);\n onItemResize(item, newResizeSize);\n };\n\n const onResize = (deltaWidth, deltaHeight, direction) => {\n if (!isResize) { setIsResize(true); }\n const activeItem = {\n ...item,\n height: item.height + deltaHeight,\n width: item.width + deltaWidth,\n };\n if (/left/i.test(direction)) activeItem.left = activeItem.left - deltaWidth;\n if (/top/i.test(direction)) activeItem.top = activeItem.top - deltaHeight;\n const _guides = {\n ...guides,\n [item.id]: {\n ...guides[item.id],\n x: calculateGuidePositions(activeItem, 'x', zoom),\n y: calculateGuidePositions(activeItem, 'y', zoom),\n },\n };\n setMatches(proximityListener(item.id, _guides));\n setResizeSize({\n height: activeItem.height,\n left: activeItem.left,\n top: activeItem.top,\n width: activeItem.width,\n });\n };\n\n const deleteItem = () => {\n setIsRightPanelOpen(false);\n setActiveElement(null);\n onItemRemove(item);\n onAnEventTrigger('removeItem', item.itemType);\n };\n\n const duplicateItem = () => {\n const itemID = generateId();\n onItemAdd({\n ...item,\n id: itemID,\n left: item.left + 50,\n top: item.top + 50,\n });\n onAnEventTrigger('duplicateItem', item.itemType);\n setActiveElement(itemID);\n if (!isRightPanelOpen) {\n setIsRightPanelOpen(true);\n }\n };\n\n const onClickOutside = event => {\n // clickoutside should not work for scrollbar\n const viewPort = document.querySelector('.jfReport-viewport');\n const { clientHeight, offsetHeight } = viewPort;\n const headerHeight = window.innerHeight - offsetHeight;\n if (event.clientY - headerHeight >= clientHeight\n || Array.from(event.target.classList)\n .some(xClass => exceptionalClassesForClickOutside.includes(xClass))) {\n return;\n }\n setIsRightPanelOpen(false);\n setActiveElement(null);\n };\n\n const onContextMenuClick = e => {\n if (\n e.target.contentEditable === 'true'\n || isTextEditorOpen\n ) {\n // Dont override behaviour on text edits.\n return;\n }\n\n e.preventDefault();\n onAnEventTrigger('openContextMenu', item.itemType);\n setContextMenuProps({\n id,\n pageID,\n position: getPosition(e),\n });\n };\n\n const onDoubleClick = e => {\n if (\n e.target.contentEditable === 'true'\n || isTextEditorOpen\n ) {\n // Dont override behaviour on text edits.\n return;\n }\n\n setIsRightPanelOpen(true);\n };\n\n const duplicateWithAltKey = e => {\n if (e.altKey) {\n const itemID = generateId();\n const itemToAdd = item;\n setTimeout(() => {\n onItemAdd({\n ...itemToAdd,\n id: itemID,\n left: itemToAdd.left,\n top: itemToAdd.top,\n });\n onAnEventTrigger('duplicateItem', itemToAdd.itemType);\n });\n }\n };\n\n const changeLockStatus = () => {\n onAnEventTrigger(item.isLocked ? 'unlockReportItem' : 'lockReportItem', item.itemType);\n onItemChange({ id: item.id }, { isLocked: item.isLocked ? false : true });\n if (!item.isLocked) {\n setActiveElement(item.id, false);\n setIsRightPanelOpen(false);\n }\n };\n\n return (\n <ErrorBoundary>\n <ItemPositioner\n classNames={`reportItemWrapper${isSelected ? ' isSelected' : ''}`}\n style={{\n ...getStyles(left, top, isDragging),\n height: stateHeight,\n left: stateLeft,\n top: stateTop,\n width: stateWidth,\n }}\n >\n <div\n ref={drag}\n className={`${classNames.reportItem}${isLocked ? ' isLocked' : ''}`}\n onClick={select}\n onContextMenu={onContextMenuClick}\n onDoubleClick={onDoubleClick}\n onDragStart={duplicateWithAltKey}\n onKeyDown={() => {}}\n style={reportItemStyle}\n >\n {children}\n </div>\n </ItemPositioner>\n <PageItemResizer\n changeLockStatus={changeLockStatus}\n deleteItem={deleteItem}\n duplicateItem={duplicateItem}\n isDragging={isDragging}\n isMultipleItemSelected={isMultipleItemSelected}\n isRightPanelOpen={isRightPanelOpen}\n isSelectedElement={isSelected}\n isTextEditorOpen={isTextEditorOpen}\n item={item}\n onClickOutside={onClickOutside}\n onResize={onResize}\n onResizeStop={onResizeStop}\n pageID={pageID}\n setActiveElement={setActiveElement}\n setIsRightPanelOpen={setIsRightPanelOpen}\n stateHeight={stateHeight}\n stateLeft={stateLeft}\n stateTop={stateTop}\n stateWidth={stateWidth}\n zoom={zoom}\n />\n </ErrorBoundary>\n );\n};\n\nDraggableItem.propTypes = {\n children: PropTypes.any,\n guides: PropTypes.shape({}),\n isMultipleItemSelected: PropTypes.bool,\n isResize: PropTypes.bool,\n isRightPanelOpen: PropTypes.bool,\n isSelected: PropTypes.bool,\n isTextEditorOpen: PropTypes.bool,\n item: PropTypes.shape({\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n id: PropTypes.string,\n isLocked: PropTypes.bool,\n itemType: PropTypes.string,\n left: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n pageID: PropTypes.string,\n top: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n width: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n }),\n matches: PropTypes.shape({}),\n onAnEventTrigger: PropTypes.func,\n onItemAdd: PropTypes.func,\n onItemChange: PropTypes.func,\n onItemRemove: PropTypes.func,\n onItemResize: PropTypes.func,\n setActiveElement: PropTypes.func,\n setContextMenuProps: PropTypes.func,\n setIsResize: PropTypes.func,\n setIsRightPanelOpen: PropTypes.func,\n setMatches: PropTypes.func,\n zoom: PropTypes.number,\n};\n\nDraggableItem.defaultProps = {\n children: null,\n guides: {},\n isMultipleItemSelected: false,\n isResize: false,\n isRightPanelOpen: false,\n isSelected: false,\n isTextEditorOpen: false,\n item: {},\n matches: {},\n onAnEventTrigger: () => {},\n onItemAdd: () => {},\n onItemChange: () => {},\n onItemRemove: () => {},\n onItemResize: () => {},\n setActiveElement: () => {},\n setContextMenuProps: () => {},\n setIsResize: () => {},\n setIsRightPanelOpen: () => {},\n setMatches: () => {},\n zoom: 1,\n};\n\n// avoid unnecessary renders while resizing\nconst areEqual = (prevProps, nextProps) => {\n if (prevProps.hashCode !== nextProps.hashCode) return false;\n if (!isEqual(prevProps.item, nextProps.item)) return false;\n if (prevProps.matches !== nextProps.matches) return false;\n if (prevProps.isTextEditorOpen !== nextProps.isTextEditorOpen) return false;\n if ((prevProps.isSelected && nextProps.isSelected) || prevProps.isResize !== nextProps.isResize) {\n return false;\n }\n if (prevProps.isSelected !== nextProps.isSelected) return false;\n return true;\n};\n\nexport default memo(DraggableItem, areEqual);\n"],"names":["exceptionalClassesForClickOutside","reportItemStyle","height","width","DraggableItem","children","guides","isMultipleItemSelected","isResize","isRightPanelOpen","isSelected","isTextEditorOpen","item","matches","onAnEventTrigger","onItemAdd","onItemChange","onItemRemove","onItemResize","setActiveElement","setContextMenuProps","setIsResize","setIsRightPanelOpen","setMatches","zoom","id","isLocked","left","pageID","top","select","event","metaKey","undefined","useDrag","begin","addEventListenerForSidebar","canDrag","collect","monitor","isDragging","end","removeEventListenerForSidebar","type","DRAGGABLE_ITEM_TYPE","drag","preview","useState","stateHeight","stateLeft","stateTop","stateWidth","setResizeSize","useEffect","getEmptyImage","captureDraggingState","onResizeStop","deltaWidth","deltaHeight","direction","activeItem","test","newActiveBoxLeft","newActiveBoxTop","Object","keys","forEach","axis","activeBoxGuides","matchedArray","proximity","activeBoxProximityIndex","activeBoxIndex","matchedBoxProximityIndex","matchedBoxIndex","value","newResizeSize","onResize","_guides","x","calculateGuidePositions","y","proximityListener","deleteItem","itemType","duplicateItem","itemID","generateId","onClickOutside","viewPort","document","querySelector","clientHeight","offsetHeight","headerHeight","window","innerHeight","clientY","Array","from","target","classList","some","xClass","includes","onContextMenuClick","e","contentEditable","preventDefault","position","getPosition","onDoubleClick","duplicateWithAltKey","altKey","itemToAdd","setTimeout","changeLockStatus","_jsxs","ErrorBoundary","_jsx","getStyles","classNames","propTypes","PropTypes","any","shape","bool","oneOfType","number","string","func","defaultProps","areEqual","prevProps","nextProps","hashCode","isEqual","memo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DraggableItem.js","sources":["../../../../src/components/DraggableItem/DraggableItem.js"],"sourcesContent":["import { useEffect, useState, memo } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDrag } from 'react-dnd';\nimport { getEmptyImage } from 'react-dnd-html5-backend';\nimport isEqual from 'lodash.isequal';\nimport ItemPositioner from '../ItemPositioner';\nimport { DRAGGABLE_ITEM_TYPE } from '../../constants/itemTypes';\nimport {\n getStyles,\n getPosition, calculateGuidePositions, proximityListener,\n} from '../../utils/functions';\nimport PageItemResizer from '../PageItemResizer';\nimport ErrorBoundary from '../ErrorBoundary';\nimport * as classNames from '../../constants/classNames';\nimport generateId from '../../utils/generateId';\nimport {\n addEventListenerForSidebar,\n removeEventListenerForSidebar,\n} from '../../utils/scrollZoneFunctions';\n\nconst exceptionalClassesForClickOutside = ['contextMenu-itemLabel', 'contextMenu-item'];\nconst reportItemStyle = {\n height: '100%',\n width: '100%',\n};\n\nconst DraggableItem = ({\n children,\n guides,\n isMultipleItemSelected,\n isResize,\n isRightPanelOpen,\n isSelected,\n isTextEditorOpen,\n item,\n matches,\n onAnEventTrigger,\n onItemAdd,\n onItemChange,\n onItemRemove,\n onItemResize,\n setActiveElement,\n setContextMenuProps,\n setIsResize,\n setIsRightPanelOpen,\n setMatches,\n zoom,\n}) => {\n const {\n height,\n id,\n isLocked,\n left,\n pageID,\n top,\n width,\n } = item;\n\n const select = event => {\n if (!isSelected) {\n if (!event || !event.metaKey) {\n if (isLocked) {\n setActiveElement(id, false);\n setIsRightPanelOpen(false);\n } else {\n setActiveElement(id);\n }\n } else {\n setActiveElement(id, undefined, true);\n }\n }\n };\n\n const canDrag = !item.isLocked && !isTextEditorOpen;\n\n const [{ isDragging }, drag, preview] = useDrag(() => ({\n canDrag: () => canDrag,\n\n collect: monitor => ({\n isDragging: monitor.isDragging(),\n }),\n\n end: () => {\n removeEventListenerForSidebar();\n },\n\n isDragging: () => (isMultipleItemSelected && isSelected)\n || (!isMultipleItemSelected && isSelected),\n\n item: () => ({\n height,\n id,\n left,\n top,\n width,\n }),\n\n type: DRAGGABLE_ITEM_TYPE,\n }), [\n canDrag,\n height, id, left, top, width,\n isMultipleItemSelected, isSelected,\n ]);\n\n const [\n {\n height: stateHeight,\n left: stateLeft,\n top: stateTop,\n width: stateWidth,\n },\n setResizeSize,\n ] = useState({\n height,\n left,\n top,\n width,\n });\n\n useEffect(() => {\n if (!isDragging) return;\n if (!isSelected) select();\n addEventListenerForSidebar();\n return () => {\n removeEventListenerForSidebar();\n };\n }, [isDragging, isSelected, select]);\n\n useEffect(() => {\n preview(getEmptyImage(), { captureDraggingState: true });\n }, [preview]);\n\n useEffect(() => {\n if (width !== stateWidth || height !== stateHeight || left !== stateLeft || top !== stateTop) {\n setResizeSize({\n height,\n left,\n top,\n width,\n });\n }\n }, [width, height, left, top, stateWidth, stateHeight, stateLeft, stateTop]);\n\n const onResizeStop = (deltaWidth, deltaHeight, direction) => {\n const activeItem = {\n ...item,\n height: item.height + deltaHeight,\n width: item.width + deltaWidth,\n };\n if (/left/i.test(direction)) activeItem.left = activeItem.left - deltaWidth;\n if (/top/i.test(direction)) activeItem.top = activeItem.top - deltaHeight;\n let newActiveBoxLeft = activeItem.left;\n let newActiveBoxTop = activeItem.top;\n Object.keys(matches).forEach(axis => {\n const { activeBoxGuides, matchedArray, proximity } = matches[axis];\n const activeBoxProximityIndex = proximity.activeBoxIndex;\n const matchedBoxProximityIndex = proximity.matchedBoxIndex;\n if (axis === 'x') {\n if (activeBoxGuides[activeBoxProximityIndex] > matchedArray[matchedBoxProximityIndex]) {\n newActiveBoxLeft = activeItem.left - proximity.value;\n } else {\n newActiveBoxLeft = activeItem.left + proximity.value;\n }\n } else if (activeBoxGuides[activeBoxProximityIndex]\n > matchedArray[matchedBoxProximityIndex]) {\n newActiveBoxTop = activeItem.top - proximity.value;\n } else {\n newActiveBoxTop = activeItem.top + proximity.value;\n }\n });\n\n let newResizeSize = {\n height: activeItem.height,\n left: activeItem.left,\n top: activeItem.top,\n width: activeItem.width,\n };\n\n if (!(/top/i.test(direction) && /left/i.test(direction))) {\n newResizeSize = {\n ...newResizeSize,\n height: newResizeSize.height + (newActiveBoxTop - activeItem.top),\n width: newResizeSize.width + (newActiveBoxLeft - activeItem.left),\n };\n }\n if (/top/i.test(direction) && newActiveBoxTop !== newResizeSize.top) {\n newResizeSize.top = newActiveBoxTop;\n }\n if (/left/i.test(direction) && newActiveBoxLeft !== newResizeSize.left) {\n newResizeSize.left = newActiveBoxLeft;\n }\n setIsResize(false);\n onItemResize(item, newResizeSize);\n };\n\n const onResize = (deltaWidth, deltaHeight, direction) => {\n if (!isResize) { setIsResize(true); }\n const activeItem = {\n ...item,\n height: item.height + deltaHeight,\n width: item.width + deltaWidth,\n };\n if (/left/i.test(direction)) activeItem.left = activeItem.left - deltaWidth;\n if (/top/i.test(direction)) activeItem.top = activeItem.top - deltaHeight;\n const _guides = {\n ...guides,\n [item.id]: {\n ...guides[item.id],\n x: calculateGuidePositions(activeItem, 'x', zoom),\n y: calculateGuidePositions(activeItem, 'y', zoom),\n },\n };\n setMatches(proximityListener(item.id, _guides));\n setResizeSize({\n height: activeItem.height,\n left: activeItem.left,\n top: activeItem.top,\n width: activeItem.width,\n });\n };\n\n const deleteItem = () => {\n setIsRightPanelOpen(false);\n setActiveElement(null);\n onItemRemove(item);\n onAnEventTrigger('removeItem', item.itemType);\n };\n\n const duplicateItem = () => {\n const itemID = generateId();\n onItemAdd({\n ...item,\n id: itemID,\n left: item.left + 50,\n top: item.top + 50,\n });\n onAnEventTrigger('duplicateItem', item.itemType);\n setActiveElement(itemID);\n if (!isRightPanelOpen) {\n setIsRightPanelOpen(true);\n }\n };\n\n const onClickOutside = event => {\n // clickoutside should not work for scrollbar\n const viewPort = document.querySelector('.jfReport-viewport');\n const { clientHeight, offsetHeight } = viewPort;\n const headerHeight = window.innerHeight - offsetHeight;\n if (event.clientY - headerHeight >= clientHeight\n || Array.from(event.target.classList)\n .some(xClass => exceptionalClassesForClickOutside.includes(xClass))) {\n return;\n }\n setIsRightPanelOpen(false);\n setActiveElement(null);\n };\n\n const onContextMenuClick = e => {\n if (\n e.target.contentEditable === 'true'\n || isTextEditorOpen\n ) {\n // Dont override behaviour on text edits.\n return;\n }\n\n e.preventDefault();\n onAnEventTrigger('openContextMenu', item.itemType);\n setContextMenuProps({\n id,\n pageID,\n position: getPosition(e),\n });\n };\n\n const onDoubleClick = e => {\n if (\n e.target.contentEditable === 'true'\n || isTextEditorOpen\n ) {\n // Dont override behaviour on text edits.\n return;\n }\n\n setIsRightPanelOpen(true);\n };\n\n const duplicateWithAltKey = e => {\n if (e.altKey) {\n const itemID = generateId();\n const itemToAdd = item;\n setTimeout(() => {\n onItemAdd({\n ...itemToAdd,\n id: itemID,\n left: itemToAdd.left,\n top: itemToAdd.top,\n });\n onAnEventTrigger('duplicateItem', itemToAdd.itemType);\n });\n }\n };\n\n const changeLockStatus = () => {\n onAnEventTrigger(item.isLocked ? 'unlockReportItem' : 'lockReportItem', item.itemType);\n onItemChange({ id: item.id }, { isLocked: item.isLocked ? false : true });\n if (!item.isLocked) {\n setActiveElement(item.id, false);\n setIsRightPanelOpen(false);\n }\n };\n\n return (\n <ErrorBoundary>\n <ItemPositioner\n classNames={`reportItemWrapper${isSelected ? ' isSelected' : ''}`}\n style={{\n ...getStyles(left, top, isDragging),\n height: stateHeight,\n left: stateLeft,\n top: stateTop,\n width: stateWidth,\n }}\n >\n <div\n ref={drag}\n className={`${classNames.reportItem}${isLocked ? ' isLocked' : ''}`}\n onClick={select}\n onContextMenu={onContextMenuClick}\n onDoubleClick={onDoubleClick}\n onDragStart={duplicateWithAltKey}\n onKeyDown={() => {}}\n style={reportItemStyle}\n >\n {children}\n </div>\n </ItemPositioner>\n <PageItemResizer\n changeLockStatus={changeLockStatus}\n deleteItem={deleteItem}\n duplicateItem={duplicateItem}\n isDragging={isDragging}\n isMultipleItemSelected={isMultipleItemSelected}\n isRightPanelOpen={isRightPanelOpen}\n isSelectedElement={isSelected}\n isTextEditorOpen={isTextEditorOpen}\n item={item}\n onClickOutside={onClickOutside}\n onResize={onResize}\n onResizeStop={onResizeStop}\n pageID={pageID}\n setActiveElement={setActiveElement}\n setIsRightPanelOpen={setIsRightPanelOpen}\n stateHeight={stateHeight}\n stateLeft={stateLeft}\n stateTop={stateTop}\n stateWidth={stateWidth}\n zoom={zoom}\n />\n </ErrorBoundary>\n );\n};\n\nDraggableItem.propTypes = {\n children: PropTypes.any,\n guides: PropTypes.shape({}),\n isMultipleItemSelected: PropTypes.bool,\n isResize: PropTypes.bool,\n isRightPanelOpen: PropTypes.bool,\n isSelected: PropTypes.bool,\n isTextEditorOpen: PropTypes.bool,\n item: PropTypes.shape({\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n id: PropTypes.string,\n isLocked: PropTypes.bool,\n itemType: PropTypes.string,\n left: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n pageID: PropTypes.string,\n top: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n width: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n }),\n matches: PropTypes.shape({}),\n onAnEventTrigger: PropTypes.func,\n onItemAdd: PropTypes.func,\n onItemChange: PropTypes.func,\n onItemRemove: PropTypes.func,\n onItemResize: PropTypes.func,\n setActiveElement: PropTypes.func,\n setContextMenuProps: PropTypes.func,\n setIsResize: PropTypes.func,\n setIsRightPanelOpen: PropTypes.func,\n setMatches: PropTypes.func,\n zoom: PropTypes.number,\n};\n\nDraggableItem.defaultProps = {\n children: null,\n guides: {},\n isMultipleItemSelected: false,\n isResize: false,\n isRightPanelOpen: false,\n isSelected: false,\n isTextEditorOpen: false,\n item: {},\n matches: {},\n onAnEventTrigger: () => {},\n onItemAdd: () => {},\n onItemChange: () => {},\n onItemRemove: () => {},\n onItemResize: () => {},\n setActiveElement: () => {},\n setContextMenuProps: () => {},\n setIsResize: () => {},\n setIsRightPanelOpen: () => {},\n setMatches: () => {},\n zoom: 1,\n};\n\n// avoid unnecessary renders while resizing\nconst areEqual = (prevProps, nextProps) => {\n if (prevProps.hashCode !== nextProps.hashCode) return false;\n if (!isEqual(prevProps.item, nextProps.item)) return false;\n if (prevProps.matches !== nextProps.matches) return false;\n if (prevProps.isTextEditorOpen !== nextProps.isTextEditorOpen) return false;\n if ((prevProps.isSelected && nextProps.isSelected) || prevProps.isResize !== nextProps.isResize) {\n return false;\n }\n if (prevProps.isSelected !== nextProps.isSelected) return false;\n return true;\n};\n\nexport default memo(DraggableItem, areEqual);\n"],"names":["exceptionalClassesForClickOutside","reportItemStyle","height","width","DraggableItem","children","guides","isMultipleItemSelected","isResize","isRightPanelOpen","isSelected","isTextEditorOpen","item","matches","onAnEventTrigger","onItemAdd","onItemChange","onItemRemove","onItemResize","setActiveElement","setContextMenuProps","setIsResize","setIsRightPanelOpen","setMatches","zoom","id","isLocked","left","pageID","top","select","event","metaKey","undefined","canDrag","useDrag","collect","monitor","isDragging","end","removeEventListenerForSidebar","type","DRAGGABLE_ITEM_TYPE","drag","preview","useState","stateHeight","stateLeft","stateTop","stateWidth","setResizeSize","useEffect","addEventListenerForSidebar","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","defaultProps","areEqual","prevProps","nextProps","hashCode","isEqual","memo"],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ import 'core-js/modules/web.dom-collections.for-each.js';
|
|
|
8
8
|
import { memo } from 'react';
|
|
9
9
|
import PropTypes from 'prop-types';
|
|
10
10
|
import memoizeOne from 'memoize-one';
|
|
11
|
-
import { useDragLayer } from 'react-dnd
|
|
11
|
+
import { useDragLayer } from 'react-dnd';
|
|
12
12
|
import ReportItemRenderer from '../Builder/ReportItemRenderer.js';
|
|
13
13
|
import { calculateGuidePositions, proximityListener } from '../../utils/functions.js';
|
|
14
14
|
import ItemPositioner from '../ItemPositioner.js';
|