@jotforminc/dnd-builder 2.9.15 → 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 +2 -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 +1 -1
- 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 +1 -1
- 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":"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';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DraggableItemLayer.js","sources":["../../../../src/components/DraggableItem/DraggableItemLayer.js"],"sourcesContent":["import { memo } from 'react';\nimport PropTypes from 'prop-types';\nimport memoizeOne from 'memoize-one';\nimport { useDragLayer } from 'react-dnd-cjs';\nimport ReportItemRenderer from '../Builder/ReportItemRenderer';\nimport { proximityListener, calculateGuidePositions } from '../../utils/functions';\nimport ItemPositioner from '../ItemPositioner';\nimport { useBuilderContext } from '../../utils/builderContext';\nimport { usePropContext } from '../../utils/propContext';\nimport getMergedItem from '../../utils/getMergedItem';\n\nconst layerStyles = ({ x, y }) => ({\n left: x,\n pointerEvents: 'none',\n position: 'fixed',\n top: y,\n zIndex: 100,\n});\n\nconst getDraggedItem = ({ defaultItem = {}, details }, item) => ({\n ...defaultItem,\n ...details,\n ...item,\n id: 'temp',\n});\n\nconst getMemoizedDraggedItem = memoizeOne(getDraggedItem);\n\nconst getAdditionalItems = memoizeOne((activeElems, __itemId, _pages, _acceptedItems) => {\n if (activeElems === null || activeElems.length === 1) return [];\n const index = activeElems.findIndex(aE => aE === __itemId);\n const act = [...activeElems.slice(0, index), ...activeElems.slice(index + 1)];\n const items = act.map(_i => {\n const _item = _pages.reduce((acc, curr) => {\n if (acc) {\n return acc;\n }\n return curr.items.find(el => el.id === _i);\n }, undefined);\n const defItem = (_acceptedItems[_item.itemType]\n && _acceptedItems[_item.itemType].defaultItem);\n return { ...defItem, ..._item };\n });\n return items;\n});\n\nfunction getItemStyles(initialOffset, currentOffset, ref, pageGuides, item, zoom) {\n if (ref.current) {\n const dropTargetPosition = ref.current.getBoundingClientRect();\n const { x: finalX, y: finalY } = currentOffset;\n const { x: initialX, y: initialY } = initialOffset;\n const newYposition = finalY > initialY\n ? (initialY + (finalY - initialY)) - dropTargetPosition.top\n : initialY - (initialY - finalY) - dropTargetPosition.top;\n\n const newXposition = finalX > initialX\n ? (initialX + (finalX - initialX)) - dropTargetPosition.left\n : initialX - (initialX - finalX) - dropTargetPosition.left;\n\n const newItem = {\n ...item,\n left: newXposition / zoom,\n top: newYposition / zoom,\n };\n const _guides = {\n ...pageGuides,\n [item.id]: {\n ...pageGuides[item.id],\n x: calculateGuidePositions(newItem, 'x', zoom),\n y: calculateGuidePositions(newItem, 'y', zoom),\n },\n };\n\n const match = proximityListener(item.id, _guides);\n let newActiveBoxLeft = newXposition;\n let newActiveBoxTop = newYposition;\n const haveMatch = Object.keys(match).length > 0;\n const haveXMatch = haveMatch && match.x;\n const haveYMatch = haveMatch && match.y;\n Object.keys(match).forEach(axis => {\n const { activeBoxGuides, matchedArray, proximity } = match[axis];\n const activeBoxProximityIndex = proximity.activeBoxIndex;\n const matchedBoxProximityIndex = proximity.matchedBoxIndex;\n if (axis === 'x') {\n if (activeBoxGuides[activeBoxProximityIndex] > matchedArray[matchedBoxProximityIndex]) {\n newActiveBoxLeft = newItem.left - proximity.value;\n } else {\n newActiveBoxLeft = newItem.left + proximity.value;\n }\n } else if (activeBoxGuides[activeBoxProximityIndex]\n > matchedArray[matchedBoxProximityIndex]) {\n newActiveBoxTop = newItem.top - proximity.value;\n } else {\n newActiveBoxTop = newItem.top + proximity.value;\n }\n });\n return {\n x: (newActiveBoxLeft * (haveXMatch ? zoom : 1)) + dropTargetPosition.left,\n y: (newActiveBoxTop * (haveYMatch ? zoom : 1)) + dropTargetPosition.top,\n };\n }\n}\n\nconst DraggableItemLayer = ({\n guides, itemAccessor, pageRefs, pages,\n}) => {\n const {\n currentOffset,\n initialOffset,\n isDragging,\n item,\n } = useDragLayer(monitor => ({\n currentOffset: monitor.getSourceClientOffset(),\n initialOffset: monitor.getInitialSourceClientOffset(),\n isDragging: monitor.isDragging(),\n item: monitor.getItem(),\n itemType: monitor.getItemType(),\n }));\n\n const { acceptedItems } = usePropContext();\n const { activeElement, zoom } = useBuilderContext();\n\n if (!currentOffset || !isDragging) {\n return null;\n }\n let draggedItem = pages.reduce((acc, curr) => {\n if (acc) {\n return acc;\n }\n return curr.items.find(el => el.id === item.id);\n }, undefined);\n\n let pageID;\n if (draggedItem) {\n pageID = draggedItem.pageID;\n } else {\n draggedItem = getMemoizedDraggedItem(acceptedItems[item.itemType], item);\n }\n const element = document.elementFromPoint(currentOffset.x, currentOffset.y);\n if (element && element.closest('.jfReport-page')) { // add polyfill if will we use that one\n pageID = element.closest('.jfReport-page').getAttribute('data-id');\n if (!draggedItem.pageID) {\n draggedItem.pageID = pageID;\n }\n }\n\n const ref = pageRefs[pageID];\n let itemStyle = {};\n // No page\n if (!ref || !ref.current) {\n itemStyle = {\n x: currentOffset.x,\n y: currentOffset.y,\n };\n } else { // In the page\n const pageGuides = guides[pageID];\n itemStyle = getItemStyles(\n initialOffset,\n currentOffset,\n pageRefs[pageID],\n pageGuides,\n draggedItem,\n zoom,\n );\n }\n\n const additionalitems = getAdditionalItems(\n activeElement,\n draggedItem.id,\n pages,\n acceptedItems,\n );\n\n const mergedItem = getMergedItem(draggedItem, acceptedItems);\n\n return (\n <>\n <ItemPositioner\n classNames={`reportItem${isDragging ? ' isDraggingLayerElement' : ''}`}\n style={{\n ...layerStyles(itemStyle),\n height: draggedItem.height,\n outlineColor: '#4277ff',\n transform: `scale(${zoom})`,\n transformOrigin: '0 0',\n width: draggedItem.width,\n }}\n >\n <ReportItemRenderer item={draggedItem}>\n {ReportItem => (\n <ReportItem\n isDragging={isDragging}\n item={mergedItem}\n itemAccessor={itemAccessor}\n zoom={zoom}\n />\n )}\n </ReportItemRenderer>\n </ItemPositioner>\n {additionalitems.map(ii => {\n const __itemStyle = {\n x: itemStyle.x - ((draggedItem.left - ii.left) * zoom),\n y: itemStyle.y - ((draggedItem.top - ii.top) * zoom),\n };\n return (\n <ItemPositioner\n key={ii.id}\n classNames={`reportItem${isDragging ? ' isDraggingLayerElement' : ''}`}\n style={{\n ...layerStyles(__itemStyle),\n height: ii.height,\n outlineColor: '#4277ff',\n transform: `scale(${zoom})`,\n transformOrigin: '0 0',\n width: ii.width,\n }}\n >\n <ReportItemRenderer item={ii}>\n {ReportItem => (\n <ReportItem\n isDragging={isDragging}\n item={ii}\n itemAccessor={itemAccessor}\n zoom={zoom}\n />\n )}\n </ReportItemRenderer>\n </ItemPositioner>\n );\n })}\n </>\n );\n};\n\nDraggableItemLayer.propTypes = {\n guides: PropTypes.shape({}),\n itemAccessor: PropTypes.func,\n pageRefs: PropTypes.shape({}),\n pages: PropTypes.arrayOf(\n PropTypes.shape({}),\n ),\n};\n\nDraggableItemLayer.defaultProps = {\n guides: {},\n itemAccessor: () => {},\n pageRefs: {},\n pages: [],\n};\n\nexport default memo(DraggableItemLayer);\n"],"names":["layerStyles","x","y","left","pointerEvents","position","top","zIndex","getDraggedItem","item","defaultItem","details","id","getMemoizedDraggedItem","memoizeOne","getAdditionalItems","activeElems","__itemId","_pages","_acceptedItems","length","index","findIndex","aE","act","slice","items","map","_i","_item","reduce","acc","curr","find","el","undefined","defItem","itemType","getItemStyles","initialOffset","currentOffset","ref","pageGuides","zoom","current","dropTargetPosition","getBoundingClientRect","finalX","finalY","initialX","initialY","newYposition","newXposition","newItem","_guides","calculateGuidePositions","match","proximityListener","newActiveBoxLeft","newActiveBoxTop","haveMatch","Object","keys","haveXMatch","haveYMatch","forEach","axis","activeBoxGuides","matchedArray","proximity","activeBoxProximityIndex","activeBoxIndex","matchedBoxProximityIndex","matchedBoxIndex","value","DraggableItemLayer","guides","itemAccessor","pageRefs","pages","useDragLayer","monitor","getSourceClientOffset","getInitialSourceClientOffset","isDragging","getItem","getItemType","usePropContext","acceptedItems","useBuilderContext","activeElement","draggedItem","pageID","element","document","elementFromPoint","closest","getAttribute","itemStyle","additionalitems","mergedItem","getMergedItem","_jsxs","_jsx","height","outlineColor","transform","transformOrigin","width","ReportItem","ii","__itemStyle","propTypes","PropTypes","shape","func","arrayOf","defaultProps","memo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DraggableItemLayer.js","sources":["../../../../src/components/DraggableItem/DraggableItemLayer.js"],"sourcesContent":["import { memo } from 'react';\nimport PropTypes from 'prop-types';\nimport memoizeOne from 'memoize-one';\nimport { useDragLayer } from 'react-dnd';\nimport ReportItemRenderer from '../Builder/ReportItemRenderer';\nimport { proximityListener, calculateGuidePositions } from '../../utils/functions';\nimport ItemPositioner from '../ItemPositioner';\nimport { useBuilderContext } from '../../utils/builderContext';\nimport { usePropContext } from '../../utils/propContext';\nimport getMergedItem from '../../utils/getMergedItem';\n\nconst layerStyles = ({ x, y }) => ({\n left: x,\n pointerEvents: 'none',\n position: 'fixed',\n top: y,\n zIndex: 100,\n});\n\nconst getDraggedItem = ({ defaultItem = {}, details }, item) => ({\n ...defaultItem,\n ...details,\n ...item,\n id: 'temp',\n});\n\nconst getMemoizedDraggedItem = memoizeOne(getDraggedItem);\n\nconst getAdditionalItems = memoizeOne((activeElems, __itemId, _pages, _acceptedItems) => {\n if (activeElems === null || activeElems.length === 1) return [];\n const index = activeElems.findIndex(aE => aE === __itemId);\n const act = [...activeElems.slice(0, index), ...activeElems.slice(index + 1)];\n const items = act.map(_i => {\n const _item = _pages.reduce((acc, curr) => {\n if (acc) {\n return acc;\n }\n return curr.items.find(el => el.id === _i);\n }, undefined);\n const defItem = (_acceptedItems[_item.itemType]\n && _acceptedItems[_item.itemType].defaultItem);\n return { ...defItem, ..._item };\n });\n return items;\n});\n\nfunction getItemStyles(initialOffset, currentOffset, ref, pageGuides, item, zoom) {\n if (ref.current) {\n const dropTargetPosition = ref.current.getBoundingClientRect();\n const { x: finalX, y: finalY } = currentOffset;\n const { x: initialX, y: initialY } = initialOffset;\n const newYposition = finalY > initialY\n ? (initialY + (finalY - initialY)) - dropTargetPosition.top\n : initialY - (initialY - finalY) - dropTargetPosition.top;\n\n const newXposition = finalX > initialX\n ? (initialX + (finalX - initialX)) - dropTargetPosition.left\n : initialX - (initialX - finalX) - dropTargetPosition.left;\n\n const newItem = {\n ...item,\n left: newXposition / zoom,\n top: newYposition / zoom,\n };\n const _guides = {\n ...pageGuides,\n [item.id]: {\n ...pageGuides[item.id],\n x: calculateGuidePositions(newItem, 'x', zoom),\n y: calculateGuidePositions(newItem, 'y', zoom),\n },\n };\n\n const match = proximityListener(item.id, _guides);\n let newActiveBoxLeft = newXposition;\n let newActiveBoxTop = newYposition;\n const haveMatch = Object.keys(match).length > 0;\n const haveXMatch = haveMatch && match.x;\n const haveYMatch = haveMatch && match.y;\n Object.keys(match).forEach(axis => {\n const { activeBoxGuides, matchedArray, proximity } = match[axis];\n const activeBoxProximityIndex = proximity.activeBoxIndex;\n const matchedBoxProximityIndex = proximity.matchedBoxIndex;\n if (axis === 'x') {\n if (activeBoxGuides[activeBoxProximityIndex] > matchedArray[matchedBoxProximityIndex]) {\n newActiveBoxLeft = newItem.left - proximity.value;\n } else {\n newActiveBoxLeft = newItem.left + proximity.value;\n }\n } else if (activeBoxGuides[activeBoxProximityIndex]\n > matchedArray[matchedBoxProximityIndex]) {\n newActiveBoxTop = newItem.top - proximity.value;\n } else {\n newActiveBoxTop = newItem.top + proximity.value;\n }\n });\n return {\n x: (newActiveBoxLeft * (haveXMatch ? zoom : 1)) + dropTargetPosition.left,\n y: (newActiveBoxTop * (haveYMatch ? zoom : 1)) + dropTargetPosition.top,\n };\n }\n}\n\nconst DraggableItemLayer = ({\n guides, itemAccessor, pageRefs, pages,\n}) => {\n const {\n currentOffset,\n initialOffset,\n isDragging,\n item,\n } = useDragLayer(monitor => ({\n currentOffset: monitor.getSourceClientOffset(),\n initialOffset: monitor.getInitialSourceClientOffset(),\n isDragging: monitor.isDragging(),\n item: monitor.getItem(),\n itemType: monitor.getItemType(),\n }));\n\n const { acceptedItems } = usePropContext();\n const { activeElement, zoom } = useBuilderContext();\n\n if (!currentOffset || !isDragging) {\n return null;\n }\n let draggedItem = pages.reduce((acc, curr) => {\n if (acc) {\n return acc;\n }\n return curr.items.find(el => el.id === item.id);\n }, undefined);\n\n let pageID;\n if (draggedItem) {\n pageID = draggedItem.pageID;\n } else {\n draggedItem = getMemoizedDraggedItem(acceptedItems[item.itemType], item);\n }\n const element = document.elementFromPoint(currentOffset.x, currentOffset.y);\n if (element && element.closest('.jfReport-page')) { // add polyfill if will we use that one\n pageID = element.closest('.jfReport-page').getAttribute('data-id');\n if (!draggedItem.pageID) {\n draggedItem.pageID = pageID;\n }\n }\n\n const ref = pageRefs[pageID];\n let itemStyle = {};\n // No page\n if (!ref || !ref.current) {\n itemStyle = {\n x: currentOffset.x,\n y: currentOffset.y,\n };\n } else { // In the page\n const pageGuides = guides[pageID];\n itemStyle = getItemStyles(\n initialOffset,\n currentOffset,\n pageRefs[pageID],\n pageGuides,\n draggedItem,\n zoom,\n );\n }\n\n const additionalitems = getAdditionalItems(\n activeElement,\n draggedItem.id,\n pages,\n acceptedItems,\n );\n\n const mergedItem = getMergedItem(draggedItem, acceptedItems);\n\n return (\n <>\n <ItemPositioner\n classNames={`reportItem${isDragging ? ' isDraggingLayerElement' : ''}`}\n style={{\n ...layerStyles(itemStyle),\n height: draggedItem.height,\n outlineColor: '#4277ff',\n transform: `scale(${zoom})`,\n transformOrigin: '0 0',\n width: draggedItem.width,\n }}\n >\n <ReportItemRenderer item={draggedItem}>\n {ReportItem => (\n <ReportItem\n isDragging={isDragging}\n item={mergedItem}\n itemAccessor={itemAccessor}\n zoom={zoom}\n />\n )}\n </ReportItemRenderer>\n </ItemPositioner>\n {additionalitems.map(ii => {\n const __itemStyle = {\n x: itemStyle.x - ((draggedItem.left - ii.left) * zoom),\n y: itemStyle.y - ((draggedItem.top - ii.top) * zoom),\n };\n return (\n <ItemPositioner\n key={ii.id}\n classNames={`reportItem${isDragging ? ' isDraggingLayerElement' : ''}`}\n style={{\n ...layerStyles(__itemStyle),\n height: ii.height,\n outlineColor: '#4277ff',\n transform: `scale(${zoom})`,\n transformOrigin: '0 0',\n width: ii.width,\n }}\n >\n <ReportItemRenderer item={ii}>\n {ReportItem => (\n <ReportItem\n isDragging={isDragging}\n item={ii}\n itemAccessor={itemAccessor}\n zoom={zoom}\n />\n )}\n </ReportItemRenderer>\n </ItemPositioner>\n );\n })}\n </>\n );\n};\n\nDraggableItemLayer.propTypes = {\n guides: PropTypes.shape({}),\n itemAccessor: PropTypes.func,\n pageRefs: PropTypes.shape({}),\n pages: PropTypes.arrayOf(\n PropTypes.shape({}),\n ),\n};\n\nDraggableItemLayer.defaultProps = {\n guides: {},\n itemAccessor: () => {},\n pageRefs: {},\n pages: [],\n};\n\nexport default memo(DraggableItemLayer);\n"],"names":["layerStyles","x","y","left","pointerEvents","position","top","zIndex","getDraggedItem","item","defaultItem","details","id","getMemoizedDraggedItem","memoizeOne","getAdditionalItems","activeElems","__itemId","_pages","_acceptedItems","length","index","findIndex","aE","act","slice","items","map","_i","_item","reduce","acc","curr","find","el","undefined","defItem","itemType","getItemStyles","initialOffset","currentOffset","ref","pageGuides","zoom","current","dropTargetPosition","getBoundingClientRect","finalX","finalY","initialX","initialY","newYposition","newXposition","newItem","_guides","calculateGuidePositions","match","proximityListener","newActiveBoxLeft","newActiveBoxTop","haveMatch","Object","keys","haveXMatch","haveYMatch","forEach","axis","activeBoxGuides","matchedArray","proximity","activeBoxProximityIndex","activeBoxIndex","matchedBoxProximityIndex","matchedBoxIndex","value","DraggableItemLayer","guides","itemAccessor","pageRefs","pages","useDragLayer","monitor","getSourceClientOffset","getInitialSourceClientOffset","isDragging","getItem","getItemType","usePropContext","acceptedItems","useBuilderContext","activeElement","draggedItem","pageID","element","document","elementFromPoint","closest","getAttribute","itemStyle","additionalitems","mergedItem","getMergedItem","_jsxs","_jsx","height","outlineColor","transform","transformOrigin","width","ReportItem","ii","__itemStyle","propTypes","PropTypes","shape","func","arrayOf","defaultProps","memo"],"mappings":"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"}
|
|
@@ -21,7 +21,7 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
|
|
|
21
21
|
|
|
22
22
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
23
23
|
var ITEM_TYPE = 'image';
|
|
24
|
-
var DEFAULT_LOGO_SRC = 'https://
|
|
24
|
+
var DEFAULT_LOGO_SRC = 'https://cdn.jotfor.ms/assets/resources/icon/jotform-logomark-transparent-400x400.png';
|
|
25
25
|
var imageWrapperStyle = {
|
|
26
26
|
height: 'inherit',
|
|
27
27
|
width: 'inherit'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Image.js","sources":["../../../../src/components/Elements/Image.js"],"sourcesContent":["/* eslint max-len: [\"error\", { \"code\": 120 }] */\nimport { memo, useState, useEffect } from 'react';\nimport {\n func,\n number,\n oneOfType,\n shape,\n string,\n} from 'prop-types';\n\nconst ITEM_TYPE = 'image';\n\nconst DEFAULT_LOGO_SRC = 'https://
|
|
1
|
+
{"version":3,"file":"Image.js","sources":["../../../../src/components/Elements/Image.js"],"sourcesContent":["/* eslint max-len: [\"error\", { \"code\": 120 }] */\nimport { memo, useState, useEffect } from 'react';\nimport {\n func,\n number,\n oneOfType,\n shape,\n string,\n} from 'prop-types';\n\nconst ITEM_TYPE = 'image';\n\nconst DEFAULT_LOGO_SRC = 'https://cdn.jotfor.ms/assets/resources/icon/jotform-logomark-transparent-400x400.png';\n\nconst imageWrapperStyle = {\n height: 'inherit',\n width: 'inherit',\n};\n\nconst imageStyle = {\n height: '100%',\n width: '100%',\n};\n\nconst settings = [\n {\n hideWhen: {\n url: '',\n },\n ifValueEquals: {\n '': {\n height: {\n cast: 'integer',\n value: 400,\n },\n width: {\n cast: 'integer',\n value: 400,\n },\n },\n },\n key: 'url',\n section: 'GENERAL',\n type: 'imageThumbnailWithDelete',\n },\n {\n hideWhen: {\n url: '',\n },\n key: 'sizeSettings',\n label: 'Size',\n section: 'GENERAL',\n type: 'sizeSettings',\n value: (_, { height, width }) => `${width}x${height}`,\n },\n {\n hideWhen: {\n url: '',\n },\n key: 'roundedCorners',\n label: 'Rounded Corners',\n range: [0, 30],\n section: 'GENERAL',\n showWhen: {\n shapeType: 'rectangle',\n },\n simple: true,\n type: 'slider',\n },\n {\n hideWhen: {\n url: '',\n },\n key: 'opacity',\n label: 'Opacity',\n range: [0, 100],\n section: 'GENERAL',\n type: 'slider',\n },\n {\n key: 'url',\n label: 'Enter URL',\n section: 'ENTER URL',\n showWhen: { url: '' },\n type: 'enterImageURL',\n useImageSizeUpdate: true,\n },\n];\n\nexport const ImageElement = ({ item, itemAccessor }) => {\n const [isLoading, setIsLoading] = useState(true);\n const [isErrored, setIsErrored] = useState(false);\n\n const {\n opacity,\n roundedCorners,\n url,\n } = item;\n\n const additionalProps = itemAccessor(item);\n const defaultURL = additionalProps?.defaultURL || DEFAULT_LOGO_SRC;\n const imageUrl = additionalProps?.url || url;\n\n useEffect(() => {\n setIsLoading(true);\n setIsErrored(false);\n }, [imageUrl, setIsLoading, setIsErrored]);\n\n // TODO :: do we want to show a loading placeholder?\n\n return (\n <>\n <div\n style={{\n ...imageWrapperStyle,\n display: isLoading || isErrored ? 'none' : 'block',\n }}\n >\n <img\n alt=\"reportImage\"\n onError={() => {\n setIsLoading(false);\n setIsErrored(true);\n }}\n onLoad={() => setIsLoading(false)}\n src={imageUrl || defaultURL}\n style={{\n ...imageStyle,\n borderRadius: `${roundedCorners}px`,\n display: isErrored ? 'none' : '',\n opacity: parseFloat(opacity),\n }}\n />\n </div>\n {isErrored && (\n <div\n style={{\n ...imageWrapperStyle,\n background: '#fafafa',\n paddingTop: '40%',\n textAlign: 'center',\n }}\n >\n Image was not loaded!\n </div>\n )}\n </>\n );\n};\n\nImageElement.propTypes = {\n item: shape({\n defaultURL: string,\n height: oneOfType([\n number,\n string,\n ]),\n id: string,\n opacity: oneOfType([\n number,\n string,\n ]),\n roundedCorners: oneOfType([\n number,\n string,\n ]),\n url: string,\n width: oneOfType([\n number,\n string,\n ]),\n }),\n itemAccessor: func,\n};\n\nImageElement.defaultProps = {\n item: {\n opacity: 1,\n },\n itemAccessor: () => {},\n};\n\nconst details = {\n height: 400,\n itemType: ITEM_TYPE,\n opacity: 1,\n roundedCorners: 0,\n url: '',\n width: 400,\n};\n\nexport default {\n Component: memo(ImageElement),\n details,\n itemType: ITEM_TYPE,\n settings,\n};\n"],"names":["ITEM_TYPE","DEFAULT_LOGO_SRC","imageWrapperStyle","height","width","imageStyle","settings","hideWhen","url","ifValueEquals","cast","value","key","section","type","label","_","range","showWhen","shapeType","simple","useImageSizeUpdate","ImageElement","item","itemAccessor","useState","isLoading","setIsLoading","isErrored","setIsErrored","opacity","roundedCorners","additionalProps","defaultURL","imageUrl","useEffect","_jsxs","_jsx","display","borderRadius","parseFloat","background","paddingTop","textAlign","propTypes","shape","string","oneOfType","number","id","func","defaultProps","details","itemType","Component","memo"],"mappings":"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"}
|