@jotforminc/dnd-builder 2.8.0 → 2.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,17 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [2.8.2](https://github.com/jotform/dnd-builder/compare/v2.8.1...v2.8.2) (2023-12-25)
6
+
7
+ ### [2.8.1](https://github.com/jotform/dnd-builder/compare/v2.8.0...v2.8.1) (2023-11-27)
8
+
9
+
10
+ ### Bug Fixes
11
+
12
+ * **dnd-builder:** escape escape key ([a4c95e1](https://github.com/jotform/dnd-builder/commit/a4c95e18f41ed546f1cb6fa291a91912fc430537))
13
+ * **dnd-builder:** lint ([7bed875](https://github.com/jotform/dnd-builder/commit/7bed87572c51d0d16cfdf4f8018f9297d744f161))
14
+ * **dnd-builder:** lint ([11b993d](https://github.com/jotform/dnd-builder/commit/11b993d529f9aaee41fa0bf2a25845cf76b3c6eb))
15
+
5
16
  ## [2.8.0](https://github.com/jotform/dnd-builder/compare/v2.7.1...v2.8.0) (2023-11-27)
6
17
 
7
18
 
@@ -23,6 +23,7 @@ var functions = require('../../utils/functions.js');
23
23
  var hooks = require('../../utils/hooks.js');
24
24
  var DraggableItemLayer = require('../DraggableItem/DraggableItemLayer.js');
25
25
  var generateId = require('../../utils/generateId.js');
26
+ var eventIgnoredRoles = require('../../constants/eventIgnoredRoles.js');
26
27
  var jsxRuntime = require('react/jsx-runtime');
27
28
 
28
29
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -402,9 +403,19 @@ var Scene = function Scene(_ref) {
402
403
  }
403
404
  };
404
405
 
406
+ var shouldSuppressKeyboardEvent = function shouldSuppressKeyboardEvent(e) {
407
+ return eventIgnoredRoles.EVENT_IGNORED_ROLES.some(function (role) {
408
+ return e.target.closest("[role=".concat(role, "]"));
409
+ });
410
+ };
411
+
405
412
  var handleKeyboardEvent = function handleKeyboardEvent(e) {
406
413
  var shouldPaste = itemToPaste && e.key === 'v' && e.metaKey;
407
414
 
415
+ if (shouldSuppressKeyboardEvent(e)) {
416
+ return;
417
+ }
418
+
408
419
  if (activeElement && !shouldPaste) {
409
420
  var arrowKeyCodes = ['ArrowLeft', 'ArrowUp', 'ArrowDown', 'ArrowBottom'];
410
421
  if (arrowKeyCodes.includes(e.key)) e.preventDefault();
@@ -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';\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 handleKeyboardEvent = e => {\n const shouldPaste = itemToPaste && e.key === 'v' && e.metaKey;\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 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","handleKeyboardEvent","shouldPaste","arrowKeyCodes","includes","useEventListener","reportLayoutHeight","reportLayoutWidth","parseInt","Number","isNaN","zoomToUse","parseFloat","toFixed","transform","transformOrigin","_jsxs","classNames","_jsx","index","Fragment","order","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, 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 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","Fragment","order","findItemsOnPage","position","propTypes","PropTypes","arrayOf","node","string","func","number","shape","defaultProps","memo"],"mappings":"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"}
@@ -15,7 +15,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
15
15
 
16
16
  var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
17
17
 
18
- var _excluded = ["component", "onSortEnd", "pageCount", "reportSettings"];
18
+ var _excluded = ["component", "onPageAdd", "onSortEnd", "pageCount", "reportSettings"];
19
19
 
20
20
  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; }
21
21
 
@@ -41,6 +41,7 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
41
41
 
42
42
  var ListWrapper = function ListWrapper(_ref) {
43
43
  var Component = _ref.component,
44
+ onPageAdd = _ref.onPageAdd,
44
45
  onSortEnd = _ref.onSortEnd,
45
46
  pageCount = _ref.pageCount,
46
47
  reportSettings = _ref.reportSettings,
@@ -83,12 +84,19 @@ var ListWrapper = function ListWrapper(_ref) {
83
84
  };
84
85
  }, [reportSettings]);
85
86
 
86
- var _onSortEnd = function _onSortEnd(sortEvent, nativeEvent) {
87
+ var _onSortEnd = React.useCallback(function (sortEvent, nativeEvent) {
87
88
  if (onSortEnd) {
88
89
  onSortEnd(sortEvent, nativeEvent, outerRef.current);
89
90
  }
90
- };
91
+ }, [onSortEnd]);
91
92
 
93
+ React.useEffect(function () {
94
+ if (selectedPageIndex !== -1) {
95
+ var instance = outerRef.current.getWrappedInstance();
96
+ var list = instance.sortablePageListRef.current;
97
+ list.scrollToItem(selectedPageIndex);
98
+ }
99
+ }, [selectedPageIndex]);
92
100
  React.useEffect(function () {
93
101
  // for page thumbnails actions
94
102
  if (!scrollTracking) {
@@ -98,23 +106,7 @@ var ListWrapper = function ListWrapper(_ref) {
98
106
  }, [pageCount]);
99
107
  hooks.usePageVisibility(function (index) {
100
108
  if (scrollTracking && index !== selectedPageIndex && !Number.isNaN(index)) {
101
- var instance = outerRef.current.getWrappedInstance();
102
- var list = instance.sortableOuterRef.current;
103
109
  setSelectedPageIndex(index);
104
-
105
- if (selectedPageIndex === -1 && index !== 1) {
106
- setTimeout(function () {
107
- list.scrollTo({
108
- behavior: 'smooth',
109
- top: (index - 1) * 120 + 7
110
- });
111
- }, 300);
112
- } else {
113
- list.scrollTo({
114
- behavior: 'smooth',
115
- top: (index - 1) * 120 + 7
116
- });
117
- }
118
110
  } else if (!scrollTracking && index === selectedPageIndex) {
119
111
  setScrollTracking(true);
120
112
  }
@@ -128,14 +120,12 @@ var ListWrapper = function ListWrapper(_ref) {
128
120
  // for page thumbnails actions
129
121
  functions.scrollToTarget("pageActions-id-".concat(order));
130
122
  }
131
- }, [selectedPageIndex]);
132
-
133
- var onPageAdd = function onPageAdd(index) {
123
+ }, []);
124
+ var handlePageAdd = React.useCallback(function (index) {
134
125
  setScrollTracking(false);
135
126
  setSelectedPageIndex(index);
136
- otherProps.onPageAdd(index);
137
- };
138
-
127
+ onPageAdd(index);
128
+ }, [onPageAdd]);
139
129
  return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
140
130
  children: [/*#__PURE__*/jsxRuntime.jsx(recharts.ResponsiveContainer, {
141
131
  children: /*#__PURE__*/jsxRuntime.jsx(ResponsiveContent, {
@@ -159,7 +149,7 @@ var ListWrapper = function ListWrapper(_ref) {
159
149
  className: "jfReport-pane-footer",
160
150
  children: /*#__PURE__*/jsxRuntime.jsx(PageAdder, {
161
151
  additionalClass: "forOptions",
162
- onPageAdd: onPageAdd,
152
+ onPageAdd: handlePageAdd,
163
153
  pageCount: pageCount
164
154
  })
165
155
  })]
@@ -168,6 +158,7 @@ var ListWrapper = function ListWrapper(_ref) {
168
158
 
169
159
  ListWrapper.propTypes = {
170
160
  component: PropTypes__default['default'].any,
161
+ onPageAdd: PropTypes__default['default'].func,
171
162
  onSortEnd: PropTypes__default['default'].func,
172
163
  pageCount: PropTypes__default['default'].number,
173
164
  reportSettings: PropTypes__default['default'].shape({
@@ -178,6 +169,7 @@ ListWrapper.propTypes = {
178
169
  };
179
170
  ListWrapper.defaultProps = {
180
171
  component: null,
172
+ onPageAdd: function onPageAdd() {},
181
173
  onSortEnd: function onSortEnd() {},
182
174
  pageCount: 0,
183
175
  reportSettings: {}
@@ -1 +1 @@
1
- {"version":3,"file":"ListWrapper.js","sources":["../../../../../src/components/Panels/SlidesPanel/ListWrapper.js"],"sourcesContent":["import {\n memo, useCallback, useRef, useState, useMemo, useEffect,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { ResponsiveContainer } from 'recharts';\nimport ResponsiveContent from '../../ResponsiveContent';\nimport PageAdder from '../../Builder/PageAdder';\nimport { getScaleForPageThumbnail, scrollToTarget } from '../../../utils/functions';\nimport { usePageVisibility } from '../../../utils/hooks';\n\nconst ListWrapper = ({\n component: Component,\n onSortEnd,\n pageCount,\n reportSettings,\n ...otherProps\n}) => {\n const outerRef = useRef(null);\n const [selectedPageIndex, setSelectedPageIndex] = useState(-1);\n const [scrollTracking, setScrollTracking] = useState(true);\n const {\n reportBackgroundColor,\n reportLayoutHeight = 794,\n reportLayoutWidth = 1123,\n } = reportSettings;\n const width = parseInt(reportLayoutWidth, 10);\n const height = parseInt(reportLayoutHeight, 10);\n const { left, scale, top } = getScaleForPageThumbnail(width, height);\n\n const pageContainerStyles = useMemo(() => ({\n backgroundColor: reportBackgroundColor || '#fff',\n height: height,\n left,\n top,\n transform: `scale(${scale})`,\n transformOrigin: '0 0',\n width: width,\n }), [reportSettings]);\n\n const _onSortEnd = (sortEvent, nativeEvent) => {\n if (onSortEnd) {\n onSortEnd(sortEvent, nativeEvent, outerRef.current);\n }\n };\n\n useEffect(() => { // for page thumbnails actions\n if (!scrollTracking) {\n scrollToTarget(`pageActions-id-${selectedPageIndex}`, 0, {});\n setScrollTracking(true);\n }\n }, [pageCount]);\n\n usePageVisibility(index => {\n if (scrollTracking && index !== selectedPageIndex && !Number.isNaN(index)) {\n const instance = outerRef.current.getWrappedInstance();\n const list = instance.sortableOuterRef.current;\n setSelectedPageIndex(index);\n if (selectedPageIndex === -1 && index !== 1) {\n setTimeout(() => {\n list.scrollTo({ behavior: 'smooth', top: ((index - 1) * 120) + 7 });\n }, 300);\n } else {\n list.scrollTo({ behavior: 'smooth', top: ((index - 1) * 120) + 7 });\n }\n } else if (!scrollTracking && index === selectedPageIndex) {\n setScrollTracking(true);\n }\n }, scrollTracking, pageCount, selectedPageIndex);\n\n const onPageClick = useCallback(e => {\n const order = e.target.getAttribute('data-order');\n setScrollTracking(false);\n setSelectedPageIndex(parseInt(order, 10));\n if (!e.target.classList.contains('controllerItem')) { // for page thumbnails actions\n scrollToTarget(`pageActions-id-${order}`);\n }\n }, [selectedPageIndex]);\n\n const onPageAdd = index => {\n setScrollTracking(false);\n setSelectedPageIndex(index);\n otherProps.onPageAdd(index);\n };\n\n return (\n <>\n <ResponsiveContainer>\n <ResponsiveContent>\n {(containerWidth, containerHeight) => (\n <Component\n ref={outerRef}\n distance={50}\n height={containerHeight}\n helperClass=\"pageThumbnailHelper\"\n lockAxis=\"y\"\n onPageClick={onPageClick}\n onSortEnd={_onSortEnd}\n pageContainerStyle={pageContainerStyles}\n pageCount={pageCount}\n selectedPageIndex={selectedPageIndex}\n width={containerWidth}\n {...otherProps}\n />\n )}\n </ResponsiveContent>\n </ResponsiveContainer>\n <div className=\"jfReport-pane-footer\">\n <PageAdder\n additionalClass=\"forOptions\"\n onPageAdd={onPageAdd}\n pageCount={pageCount}\n />\n </div>\n </>\n );\n};\n\nListWrapper.propTypes = {\n component: PropTypes.any,\n onSortEnd: PropTypes.func,\n pageCount: PropTypes.number,\n reportSettings: PropTypes.shape({\n reportBackgroundColor: PropTypes.string,\n reportLayoutHeight: PropTypes.string,\n reportLayoutWidth: PropTypes.string,\n }),\n};\n\nListWrapper.defaultProps = {\n component: null,\n onSortEnd: () => {},\n pageCount: 0,\n reportSettings: {},\n};\n\nexport default memo(ListWrapper);\n"],"names":["ListWrapper","Component","component","onSortEnd","pageCount","reportSettings","otherProps","outerRef","useRef","useState","selectedPageIndex","setSelectedPageIndex","scrollTracking","setScrollTracking","reportBackgroundColor","reportLayoutHeight","reportLayoutWidth","width","parseInt","height","getScaleForPageThumbnail","left","scale","top","pageContainerStyles","useMemo","backgroundColor","transform","transformOrigin","_onSortEnd","sortEvent","nativeEvent","current","useEffect","scrollToTarget","usePageVisibility","index","Number","isNaN","instance","getWrappedInstance","list","sortableOuterRef","setTimeout","scrollTo","behavior","onPageClick","useCallback","e","order","target","getAttribute","classList","contains","onPageAdd","_jsxs","_jsx","ResponsiveContainer","containerWidth","containerHeight","propTypes","PropTypes","any","func","number","shape","string","defaultProps","memo"],"mappings":"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"}
1
+ {"version":3,"file":"ListWrapper.js","sources":["../../../../../src/components/Panels/SlidesPanel/ListWrapper.js"],"sourcesContent":["import {\n memo, useCallback, useRef, useState, useMemo, useEffect,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { ResponsiveContainer } from 'recharts';\nimport ResponsiveContent from '../../ResponsiveContent';\nimport PageAdder from '../../Builder/PageAdder';\nimport { getScaleForPageThumbnail, scrollToTarget } from '../../../utils/functions';\nimport { usePageVisibility } from '../../../utils/hooks';\n\nconst ListWrapper = ({\n component: Component,\n onPageAdd,\n onSortEnd,\n pageCount,\n reportSettings,\n ...otherProps\n}) => {\n const outerRef = useRef(null);\n const [selectedPageIndex, setSelectedPageIndex] = useState(-1);\n const [scrollTracking, setScrollTracking] = useState(true);\n const {\n reportBackgroundColor,\n reportLayoutHeight = 794,\n reportLayoutWidth = 1123,\n } = reportSettings;\n const width = parseInt(reportLayoutWidth, 10);\n const height = parseInt(reportLayoutHeight, 10);\n const { left, scale, top } = getScaleForPageThumbnail(width, height);\n\n const pageContainerStyles = useMemo(() => ({\n backgroundColor: reportBackgroundColor || '#fff',\n height: height,\n left,\n top,\n transform: `scale(${scale})`,\n transformOrigin: '0 0',\n width: width,\n }), [reportSettings]);\n\n const _onSortEnd = useCallback((sortEvent, nativeEvent) => {\n if (onSortEnd) {\n onSortEnd(sortEvent, nativeEvent, outerRef.current);\n }\n }, [onSortEnd]);\n\n useEffect(() => {\n if (selectedPageIndex !== -1) {\n const instance = outerRef.current.getWrappedInstance();\n const list = instance.sortablePageListRef.current;\n list.scrollToItem(selectedPageIndex);\n }\n }, [selectedPageIndex]);\n\n useEffect(() => { // for page thumbnails actions\n if (!scrollTracking) {\n scrollToTarget(`pageActions-id-${selectedPageIndex}`, 0, {});\n setScrollTracking(true);\n }\n }, [pageCount]);\n\n usePageVisibility(index => {\n if (scrollTracking && index !== selectedPageIndex && !Number.isNaN(index)) {\n setSelectedPageIndex(index);\n } else if (!scrollTracking && index === selectedPageIndex) {\n setScrollTracking(true);\n }\n }, scrollTracking, pageCount, selectedPageIndex);\n\n const onPageClick = useCallback(e => {\n const order = e.target.getAttribute('data-order');\n setScrollTracking(false);\n setSelectedPageIndex(parseInt(order, 10));\n if (!e.target.classList.contains('controllerItem')) { // for page thumbnails actions\n scrollToTarget(`pageActions-id-${order}`);\n }\n }, []);\n\n const handlePageAdd = useCallback(index => {\n setScrollTracking(false);\n setSelectedPageIndex(index);\n onPageAdd(index);\n }, [onPageAdd]);\n\n return (\n <>\n <ResponsiveContainer>\n <ResponsiveContent>\n {(containerWidth, containerHeight) => (\n <Component\n ref={outerRef}\n distance={50}\n height={containerHeight}\n helperClass=\"pageThumbnailHelper\"\n lockAxis=\"y\"\n onPageClick={onPageClick}\n onSortEnd={_onSortEnd}\n pageContainerStyle={pageContainerStyles}\n pageCount={pageCount}\n selectedPageIndex={selectedPageIndex}\n width={containerWidth}\n {...otherProps}\n />\n )}\n </ResponsiveContent>\n </ResponsiveContainer>\n <div className=\"jfReport-pane-footer\">\n <PageAdder\n additionalClass=\"forOptions\"\n onPageAdd={handlePageAdd}\n pageCount={pageCount}\n />\n </div>\n </>\n );\n};\n\nListWrapper.propTypes = {\n component: PropTypes.any,\n onPageAdd: PropTypes.func,\n onSortEnd: PropTypes.func,\n pageCount: PropTypes.number,\n reportSettings: PropTypes.shape({\n reportBackgroundColor: PropTypes.string,\n reportLayoutHeight: PropTypes.string,\n reportLayoutWidth: PropTypes.string,\n }),\n};\n\nListWrapper.defaultProps = {\n component: null,\n onPageAdd: () => {},\n onSortEnd: () => {},\n pageCount: 0,\n reportSettings: {},\n};\n\nexport default memo(ListWrapper);\n"],"names":["ListWrapper","Component","component","onPageAdd","onSortEnd","pageCount","reportSettings","otherProps","outerRef","useRef","useState","selectedPageIndex","setSelectedPageIndex","scrollTracking","setScrollTracking","reportBackgroundColor","reportLayoutHeight","reportLayoutWidth","width","parseInt","height","getScaleForPageThumbnail","left","scale","top","pageContainerStyles","useMemo","backgroundColor","transform","transformOrigin","_onSortEnd","useCallback","sortEvent","nativeEvent","current","useEffect","instance","getWrappedInstance","list","sortablePageListRef","scrollToItem","scrollToTarget","usePageVisibility","index","Number","isNaN","onPageClick","e","order","target","getAttribute","classList","contains","handlePageAdd","_jsxs","_jsx","ResponsiveContainer","containerWidth","containerHeight","propTypes","PropTypes","any","func","number","shape","string","defaultProps","memo"],"mappings":"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"}
@@ -65,7 +65,6 @@ var SortablePageList = function SortablePageList(Component) {
65
65
 
66
66
  _this = _super.call(this, props);
67
67
  _this.sortablePageListRef = /*#__PURE__*/React.createRef();
68
- _this.sortableOuterRef = /*#__PURE__*/React.createRef();
69
68
  return _this;
70
69
  }
71
70
 
@@ -101,7 +100,6 @@ var SortablePageList = function SortablePageList(Component) {
101
100
  itemCount: pageCount,
102
101
  itemData: this.itemData,
103
102
  itemSize: 127,
104
- outerRef: this.sortableOuterRef,
105
103
  width: width,
106
104
  children: SortablePageItemRenderer
107
105
  });
@@ -1 +1 @@
1
- {"version":3,"file":"SortablePageList.js","sources":["../../../../../src/components/Panels/SlidesPanel/SortablePageList.js"],"sourcesContent":["import { PureComponent, createRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { SortableContainer } from 'react-sortable-hoc';\nimport memoize from 'memoize-one';\nimport SortablePageItemRenderer from './SortablePageItemRenderer';\n\nconst createItemData = memoize((\n acceptedItems,\n additionalPageItems,\n disableInteraction,\n hashCode,\n itemAccessor,\n onAnEventTrigger,\n onPageAdd,\n onPageClick,\n onPageDuplicate,\n onPageRemove,\n pageContainerStyle,\n pageGetter,\n selectedPageIndex,\n) => ({\n acceptedItems,\n additionalPageItems,\n disableInteraction,\n hashCode,\n itemAccessor,\n onAnEventTrigger,\n onPageAdd,\n onPageClick,\n onPageDuplicate,\n onPageRemove,\n pageContainerStyle,\n pageGetter,\n selectedPageIndex,\n}));\n\nconst SortablePageList = Component => {\n class ReactWindowList extends PureComponent {\n constructor(props) {\n super(props);\n\n this.sortablePageListRef = createRef();\n this.sortableOuterRef = createRef();\n }\n\n get itemData() {\n const {\n acceptedItems,\n additionalPageItems,\n disableInteraction,\n hashCode,\n itemAccessor,\n onAnEventTrigger,\n onPageAdd,\n onPageClick,\n onPageDuplicate,\n onPageRemove,\n pageContainerStyle,\n pageGetter,\n selectedPageIndex,\n } = this.props;\n return createItemData(\n acceptedItems,\n additionalPageItems,\n disableInteraction,\n hashCode,\n itemAccessor,\n onAnEventTrigger,\n onPageAdd,\n onPageClick,\n onPageDuplicate,\n onPageRemove,\n pageContainerStyle,\n pageGetter,\n selectedPageIndex,\n );\n }\n\n render() {\n const { height, pageCount, width } = this.props;\n\n return (\n <Component\n ref={this.sortablePageListRef}\n height={height}\n itemCount={pageCount}\n itemData={this.itemData}\n itemSize={127}\n outerRef={this.sortableOuterRef}\n width={width}\n >\n {SortablePageItemRenderer}\n </Component>\n );\n }\n }\n\n ReactWindowList.propTypes = {\n acceptedItems: PropTypes.shape({}),\n additionalPageItems: PropTypes.arrayOf(PropTypes.node),\n disableInteraction: PropTypes.arrayOf(PropTypes.string),\n hashCode: PropTypes.string,\n height: PropTypes.number,\n itemAccessor: PropTypes.func,\n onAnEventTrigger: PropTypes.func,\n onPageAdd: PropTypes.func,\n onPageClick: PropTypes.func,\n onPageDuplicate: PropTypes.func,\n onPageRemove: PropTypes.func,\n pageContainerStyle: PropTypes.shape({}),\n pageCount: PropTypes.number,\n pageGetter: PropTypes.func,\n selectedPageIndex: PropTypes.number,\n width: PropTypes.number,\n };\n\n ReactWindowList.defaultProps = {\n acceptedItems: {},\n additionalPageItems: [],\n disableInteraction: [],\n hashCode: '',\n height: 0,\n itemAccessor: () => {},\n onAnEventTrigger: () => {},\n onPageAdd: () => {},\n onPageClick: () => {},\n onPageDuplicate: () => {},\n onPageRemove: () => {},\n pageContainerStyle: {},\n pageCount: 0,\n pageGetter: () => {},\n selectedPageIndex: 1,\n width: 0,\n };\n\n return SortableContainer(ReactWindowList, { withRef: true });\n};\n\nexport default memoize(SortablePageList);\n"],"names":["createItemData","memoize","acceptedItems","additionalPageItems","disableInteraction","hashCode","itemAccessor","onAnEventTrigger","onPageAdd","onPageClick","onPageDuplicate","onPageRemove","pageContainerStyle","pageGetter","selectedPageIndex","SortablePageList","Component","ReactWindowList","props","sortablePageListRef","createRef","sortableOuterRef","height","pageCount","width","_jsx","itemData","SortablePageItemRenderer","PureComponent","propTypes","PropTypes","shape","arrayOf","node","string","number","func","defaultProps","SortableContainer","withRef"],"mappings":"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"}
1
+ {"version":3,"file":"SortablePageList.js","sources":["../../../../../src/components/Panels/SlidesPanel/SortablePageList.js"],"sourcesContent":["import { PureComponent, createRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { SortableContainer } from 'react-sortable-hoc';\nimport memoize from 'memoize-one';\nimport SortablePageItemRenderer from './SortablePageItemRenderer';\n\nconst createItemData = memoize((\n acceptedItems,\n additionalPageItems,\n disableInteraction,\n hashCode,\n itemAccessor,\n onAnEventTrigger,\n onPageAdd,\n onPageClick,\n onPageDuplicate,\n onPageRemove,\n pageContainerStyle,\n pageGetter,\n selectedPageIndex,\n) => ({\n acceptedItems,\n additionalPageItems,\n disableInteraction,\n hashCode,\n itemAccessor,\n onAnEventTrigger,\n onPageAdd,\n onPageClick,\n onPageDuplicate,\n onPageRemove,\n pageContainerStyle,\n pageGetter,\n selectedPageIndex,\n}));\n\nconst SortablePageList = Component => {\n class ReactWindowList extends PureComponent {\n constructor(props) {\n super(props);\n\n this.sortablePageListRef = createRef();\n }\n\n get itemData() {\n const {\n acceptedItems,\n additionalPageItems,\n disableInteraction,\n hashCode,\n itemAccessor,\n onAnEventTrigger,\n onPageAdd,\n onPageClick,\n onPageDuplicate,\n onPageRemove,\n pageContainerStyle,\n pageGetter,\n selectedPageIndex,\n } = this.props;\n return createItemData(\n acceptedItems,\n additionalPageItems,\n disableInteraction,\n hashCode,\n itemAccessor,\n onAnEventTrigger,\n onPageAdd,\n onPageClick,\n onPageDuplicate,\n onPageRemove,\n pageContainerStyle,\n pageGetter,\n selectedPageIndex,\n );\n }\n\n render() {\n const { height, pageCount, width } = this.props;\n\n return (\n <Component\n ref={this.sortablePageListRef}\n height={height}\n itemCount={pageCount}\n itemData={this.itemData}\n itemSize={127}\n width={width}\n >\n {SortablePageItemRenderer}\n </Component>\n );\n }\n }\n\n ReactWindowList.propTypes = {\n acceptedItems: PropTypes.shape({}),\n additionalPageItems: PropTypes.arrayOf(PropTypes.node),\n disableInteraction: PropTypes.arrayOf(PropTypes.string),\n hashCode: PropTypes.string,\n height: PropTypes.number,\n itemAccessor: PropTypes.func,\n onAnEventTrigger: PropTypes.func,\n onPageAdd: PropTypes.func,\n onPageClick: PropTypes.func,\n onPageDuplicate: PropTypes.func,\n onPageRemove: PropTypes.func,\n pageContainerStyle: PropTypes.shape({}),\n pageCount: PropTypes.number,\n pageGetter: PropTypes.func,\n selectedPageIndex: PropTypes.number,\n width: PropTypes.number,\n };\n\n ReactWindowList.defaultProps = {\n acceptedItems: {},\n additionalPageItems: [],\n disableInteraction: [],\n hashCode: '',\n height: 0,\n itemAccessor: () => {},\n onAnEventTrigger: () => {},\n onPageAdd: () => {},\n onPageClick: () => {},\n onPageDuplicate: () => {},\n onPageRemove: () => {},\n pageContainerStyle: {},\n pageCount: 0,\n pageGetter: () => {},\n selectedPageIndex: 1,\n width: 0,\n };\n\n return SortableContainer(ReactWindowList, { withRef: true });\n};\n\nexport default memoize(SortablePageList);\n"],"names":["createItemData","memoize","acceptedItems","additionalPageItems","disableInteraction","hashCode","itemAccessor","onAnEventTrigger","onPageAdd","onPageClick","onPageDuplicate","onPageRemove","pageContainerStyle","pageGetter","selectedPageIndex","SortablePageList","Component","ReactWindowList","props","sortablePageListRef","createRef","height","pageCount","width","_jsx","itemData","SortablePageItemRenderer","PureComponent","propTypes","PropTypes","shape","arrayOf","node","string","number","func","defaultProps","SortableContainer","withRef"],"mappings":"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"}
@@ -8,6 +8,7 @@ require('core-js/modules/es.string.includes.js');
8
8
  require('core-js/modules/es.string.iterator.js');
9
9
  var React = require('react');
10
10
  var PropTypes = require('prop-types');
11
+ var eventIgnoredRoles = require('../constants/eventIgnoredRoles.js');
11
12
  var jsxRuntime = require('react/jsx-runtime');
12
13
 
13
14
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -19,7 +20,6 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
19
20
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
20
21
 
21
22
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
22
- var IGNORED_ROLES = ['dialog'];
23
23
 
24
24
  function getDisplayName(WrappedComponent) {
25
25
  return WrappedComponent.displayName || WrappedComponent.name || 'Component';
@@ -39,7 +39,7 @@ function withClickOutside(WrappedComponent) {
39
39
  return exceptionalClasses.includes(xClass);
40
40
  }) || exceptionalClasses.some(function (item) {
41
41
  return event.target.closest(".".concat(item));
42
- }) || IGNORED_ROLES.some(function (role) {
42
+ }) || eventIgnoredRoles.EVENT_IGNORED_ROLES.some(function (role) {
43
43
  return event.target.closest("[role=".concat(role, "]"));
44
44
  }))) {
45
45
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"withClickOutside.js","sources":["../../../src/components/withClickOutside.js"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nconst IGNORED_ROLES = [\n 'dialog',\n];\n\nfunction getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n}\n\nfunction withClickOutside(WrappedComponent) {\n function WithClickOutside(props) {\n const {\n exceptionalClasses,\n onClickOutside,\n withClickOutsideWrapperClass,\n } = props;\n\n const wrapper = useRef(null);\n\n const handleClickOutside = event => {\n const { classList } = event.target;\n if (\n exceptionalClasses\n && (\n classList.contains(exceptionalClasses)\n || Array.from(classList).some(xClass => exceptionalClasses.includes(xClass))\n || exceptionalClasses.some(item => event.target.closest(`.${item}`))\n || IGNORED_ROLES.some(role => event.target.closest(`[role=${role}]`))\n )\n ) {\n return;\n }\n\n if (wrapper.current && !wrapper.current.contains(event.target)) {\n onClickOutside(event);\n }\n };\n\n useEffect(() => {\n window.addEventListener('mousedown', handleClickOutside, true);\n return () => {\n window.removeEventListener('mousedown', handleClickOutside, true);\n };\n }, []);\n\n // should we memoize this?\n const propsToFilter = ['withClickOutsideWrapperClass', 'exceptionalClasses'];\n const componentName = getDisplayName(WrappedComponent);\n if (componentName === 'Resizable') {\n // beceause resizable wrapper directly passes props to an html el\n propsToFilter.push('onClickOutside');\n }\n const filteredProps = Object.keys(props).reduce((allProps, propKey) => {\n const _allProps = allProps;\n if (propsToFilter.indexOf(propKey) === -1) {\n _allProps[propKey] = props[propKey];\n }\n return _allProps;\n }, {});\n\n return (\n <div\n ref={wrapper}\n className={withClickOutsideWrapperClass}\n >\n <WrappedComponent\n {...filteredProps}\n />\n </div>\n );\n }\n\n WithClickOutside.propTypes = {\n exceptionalClasses: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n onClickOutside: PropTypes.func.isRequired,\n withClickOutsideWrapperClass: PropTypes.string,\n };\n\n WithClickOutside.defaultProps = {\n exceptionalClasses: null,\n withClickOutsideWrapperClass: null,\n };\n\n WithClickOutside.displayName = `inlineEdit(${getDisplayName(WrappedComponent)})`;\n\n return WithClickOutside;\n}\n\nexport default withClickOutside;\n"],"names":["IGNORED_ROLES","getDisplayName","WrappedComponent","displayName","name","withClickOutside","WithClickOutside","props","exceptionalClasses","onClickOutside","withClickOutsideWrapperClass","wrapper","useRef","handleClickOutside","event","classList","target","contains","Array","from","some","xClass","includes","item","closest","role","current","useEffect","window","addEventListener","removeEventListener","propsToFilter","componentName","push","filteredProps","Object","keys","reduce","allProps","propKey","_allProps","indexOf","_jsx","propTypes","PropTypes","oneOfType","string","arrayOf","func","isRequired","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"withClickOutside.js","sources":["../../../src/components/withClickOutside.js"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { EVENT_IGNORED_ROLES } from '../constants/eventIgnoredRoles';\n\nfunction getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n}\n\nfunction withClickOutside(WrappedComponent) {\n function WithClickOutside(props) {\n const {\n exceptionalClasses,\n onClickOutside,\n withClickOutsideWrapperClass,\n } = props;\n\n const wrapper = useRef(null);\n\n const handleClickOutside = event => {\n const { classList } = event.target;\n if (\n exceptionalClasses\n && (\n classList.contains(exceptionalClasses)\n || Array.from(classList).some(xClass => exceptionalClasses.includes(xClass))\n || exceptionalClasses.some(item => event.target.closest(`.${item}`))\n || EVENT_IGNORED_ROLES.some(role => event.target.closest(`[role=${role}]`))\n )\n ) {\n return;\n }\n\n if (wrapper.current && !wrapper.current.contains(event.target)) {\n onClickOutside(event);\n }\n };\n\n useEffect(() => {\n window.addEventListener('mousedown', handleClickOutside, true);\n return () => {\n window.removeEventListener('mousedown', handleClickOutside, true);\n };\n }, []);\n\n // should we memoize this?\n const propsToFilter = ['withClickOutsideWrapperClass', 'exceptionalClasses'];\n const componentName = getDisplayName(WrappedComponent);\n if (componentName === 'Resizable') {\n // beceause resizable wrapper directly passes props to an html el\n propsToFilter.push('onClickOutside');\n }\n const filteredProps = Object.keys(props).reduce((allProps, propKey) => {\n const _allProps = allProps;\n if (propsToFilter.indexOf(propKey) === -1) {\n _allProps[propKey] = props[propKey];\n }\n return _allProps;\n }, {});\n\n return (\n <div\n ref={wrapper}\n className={withClickOutsideWrapperClass}\n >\n <WrappedComponent\n {...filteredProps}\n />\n </div>\n );\n }\n\n WithClickOutside.propTypes = {\n exceptionalClasses: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n onClickOutside: PropTypes.func.isRequired,\n withClickOutsideWrapperClass: PropTypes.string,\n };\n\n WithClickOutside.defaultProps = {\n exceptionalClasses: null,\n withClickOutsideWrapperClass: null,\n };\n\n WithClickOutside.displayName = `inlineEdit(${getDisplayName(WrappedComponent)})`;\n\n return WithClickOutside;\n}\n\nexport default withClickOutside;\n"],"names":["getDisplayName","WrappedComponent","displayName","name","withClickOutside","WithClickOutside","props","exceptionalClasses","onClickOutside","withClickOutsideWrapperClass","wrapper","useRef","handleClickOutside","event","classList","target","contains","Array","from","some","xClass","includes","item","closest","EVENT_IGNORED_ROLES","role","current","useEffect","window","addEventListener","removeEventListener","propsToFilter","componentName","push","filteredProps","Object","keys","reduce","allProps","propKey","_allProps","indexOf","_jsx","propTypes","PropTypes","oneOfType","string","arrayOf","func","isRequired","defaultProps"],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ /**
6
+ * If an HTML Tag has its role attribute set as one of the
7
+ * members of this array, events that originate from it
8
+ * should be ignored by event handlers.
9
+ */
10
+ var EVENT_IGNORED_ROLES = ['dialog'];
11
+
12
+ exports.EVENT_IGNORED_ROLES = EVENT_IGNORED_ROLES;
13
+ //# sourceMappingURL=eventIgnoredRoles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventIgnoredRoles.js","sources":["../../../src/constants/eventIgnoredRoles.js"],"sourcesContent":["/**\n * If an HTML Tag has its role attribute set as one of the\n * members of this array, events that originate from it\n * should be ignored by event handlers.\n */\nexport const EVENT_IGNORED_ROLES = [\n 'dialog',\n];\n"],"names":["EVENT_IGNORED_ROLES"],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;IACaA,mBAAmB,GAAG,CACjC,QADiC;;;;"}
@@ -21,6 +21,7 @@ import { calculateGuidePositions, getCorrectDroppedOffsetValue, getCorrectDroppe
21
21
  import { useEventListener } from '../../utils/hooks.js';
22
22
  import DraggableItemLayer from '../DraggableItem/DraggableItemLayer.js';
23
23
  import generateId from '../../utils/generateId.js';
24
+ import { EVENT_IGNORED_ROLES } from '../../constants/eventIgnoredRoles.js';
24
25
  import { jsxs, jsx } from 'react/jsx-runtime';
25
26
 
26
27
  var _excluded = ["id", "itemType", "type"];
@@ -396,9 +397,19 @@ var Scene = function Scene(_ref) {
396
397
  }
397
398
  };
398
399
 
400
+ var shouldSuppressKeyboardEvent = function shouldSuppressKeyboardEvent(e) {
401
+ return EVENT_IGNORED_ROLES.some(function (role) {
402
+ return e.target.closest("[role=".concat(role, "]"));
403
+ });
404
+ };
405
+
399
406
  var handleKeyboardEvent = function handleKeyboardEvent(e) {
400
407
  var shouldPaste = itemToPaste && e.key === 'v' && e.metaKey;
401
408
 
409
+ if (shouldSuppressKeyboardEvent(e)) {
410
+ return;
411
+ }
412
+
402
413
  if (activeElement && !shouldPaste) {
403
414
  var arrowKeyCodes = ['ArrowLeft', 'ArrowUp', 'ArrowDown', 'ArrowBottom'];
404
415
  if (arrowKeyCodes.includes(e.key)) e.preventDefault();
@@ -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';\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 handleKeyboardEvent = e => {\n const shouldPaste = itemToPaste && e.key === 'v' && e.metaKey;\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 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","handleKeyboardEvent","shouldPaste","arrowKeyCodes","includes","useEventListener","reportLayoutHeight","reportLayoutWidth","parseInt","Number","isNaN","zoomToUse","parseFloat","toFixed","transform","transformOrigin","_jsxs","classNames","_jsx","index","order","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, 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 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","findItemsOnPage","position","propTypes","PropTypes","arrayOf","node","string","func","number","shape","defaultProps","memo"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import 'core-js/modules/es.number.constructor.js';
2
2
  import 'core-js/modules/es.number.is-nan.js';
3
- import { memo, useRef, useState, useMemo, useEffect, useCallback } from 'react';
3
+ import { memo, useRef, useState, useMemo, useCallback, useEffect } from 'react';
4
4
  import PropTypes from 'prop-types';
5
5
  import { ResponsiveContainer } from 'recharts';
6
6
  import ResponsiveContent from '../../ResponsiveContent.js';
@@ -9,7 +9,7 @@ import { scrollToTarget, getScaleForPageThumbnail } from '../../../utils/functio
9
9
  import { usePageVisibility } from '../../../utils/hooks.js';
10
10
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
11
11
 
12
- var _excluded = ["component", "onSortEnd", "pageCount", "reportSettings"];
12
+ var _excluded = ["component", "onPageAdd", "onSortEnd", "pageCount", "reportSettings"];
13
13
 
14
14
  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; }
15
15
 
@@ -35,6 +35,7 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
35
35
 
36
36
  var ListWrapper = function ListWrapper(_ref) {
37
37
  var Component = _ref.component,
38
+ onPageAdd = _ref.onPageAdd,
38
39
  onSortEnd = _ref.onSortEnd,
39
40
  pageCount = _ref.pageCount,
40
41
  reportSettings = _ref.reportSettings,
@@ -77,12 +78,19 @@ var ListWrapper = function ListWrapper(_ref) {
77
78
  };
78
79
  }, [reportSettings]);
79
80
 
80
- var _onSortEnd = function _onSortEnd(sortEvent, nativeEvent) {
81
+ var _onSortEnd = useCallback(function (sortEvent, nativeEvent) {
81
82
  if (onSortEnd) {
82
83
  onSortEnd(sortEvent, nativeEvent, outerRef.current);
83
84
  }
84
- };
85
+ }, [onSortEnd]);
85
86
 
87
+ useEffect(function () {
88
+ if (selectedPageIndex !== -1) {
89
+ var instance = outerRef.current.getWrappedInstance();
90
+ var list = instance.sortablePageListRef.current;
91
+ list.scrollToItem(selectedPageIndex);
92
+ }
93
+ }, [selectedPageIndex]);
86
94
  useEffect(function () {
87
95
  // for page thumbnails actions
88
96
  if (!scrollTracking) {
@@ -92,23 +100,7 @@ var ListWrapper = function ListWrapper(_ref) {
92
100
  }, [pageCount]);
93
101
  usePageVisibility(function (index) {
94
102
  if (scrollTracking && index !== selectedPageIndex && !Number.isNaN(index)) {
95
- var instance = outerRef.current.getWrappedInstance();
96
- var list = instance.sortableOuterRef.current;
97
103
  setSelectedPageIndex(index);
98
-
99
- if (selectedPageIndex === -1 && index !== 1) {
100
- setTimeout(function () {
101
- list.scrollTo({
102
- behavior: 'smooth',
103
- top: (index - 1) * 120 + 7
104
- });
105
- }, 300);
106
- } else {
107
- list.scrollTo({
108
- behavior: 'smooth',
109
- top: (index - 1) * 120 + 7
110
- });
111
- }
112
104
  } else if (!scrollTracking && index === selectedPageIndex) {
113
105
  setScrollTracking(true);
114
106
  }
@@ -122,14 +114,12 @@ var ListWrapper = function ListWrapper(_ref) {
122
114
  // for page thumbnails actions
123
115
  scrollToTarget("pageActions-id-".concat(order));
124
116
  }
125
- }, [selectedPageIndex]);
126
-
127
- var onPageAdd = function onPageAdd(index) {
117
+ }, []);
118
+ var handlePageAdd = useCallback(function (index) {
128
119
  setScrollTracking(false);
129
120
  setSelectedPageIndex(index);
130
- otherProps.onPageAdd(index);
131
- };
132
-
121
+ onPageAdd(index);
122
+ }, [onPageAdd]);
133
123
  return /*#__PURE__*/jsxs(Fragment, {
134
124
  children: [/*#__PURE__*/jsx(ResponsiveContainer, {
135
125
  children: /*#__PURE__*/jsx(ResponsiveContent, {
@@ -153,7 +143,7 @@ var ListWrapper = function ListWrapper(_ref) {
153
143
  className: "jfReport-pane-footer",
154
144
  children: /*#__PURE__*/jsx(PageAdder, {
155
145
  additionalClass: "forOptions",
156
- onPageAdd: onPageAdd,
146
+ onPageAdd: handlePageAdd,
157
147
  pageCount: pageCount
158
148
  })
159
149
  })]
@@ -162,6 +152,7 @@ var ListWrapper = function ListWrapper(_ref) {
162
152
 
163
153
  ListWrapper.propTypes = {
164
154
  component: PropTypes.any,
155
+ onPageAdd: PropTypes.func,
165
156
  onSortEnd: PropTypes.func,
166
157
  pageCount: PropTypes.number,
167
158
  reportSettings: PropTypes.shape({
@@ -172,6 +163,7 @@ ListWrapper.propTypes = {
172
163
  };
173
164
  ListWrapper.defaultProps = {
174
165
  component: null,
166
+ onPageAdd: function onPageAdd() {},
175
167
  onSortEnd: function onSortEnd() {},
176
168
  pageCount: 0,
177
169
  reportSettings: {}
@@ -1 +1 @@
1
- {"version":3,"file":"ListWrapper.js","sources":["../../../../../src/components/Panels/SlidesPanel/ListWrapper.js"],"sourcesContent":["import {\n memo, useCallback, useRef, useState, useMemo, useEffect,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { ResponsiveContainer } from 'recharts';\nimport ResponsiveContent from '../../ResponsiveContent';\nimport PageAdder from '../../Builder/PageAdder';\nimport { getScaleForPageThumbnail, scrollToTarget } from '../../../utils/functions';\nimport { usePageVisibility } from '../../../utils/hooks';\n\nconst ListWrapper = ({\n component: Component,\n onSortEnd,\n pageCount,\n reportSettings,\n ...otherProps\n}) => {\n const outerRef = useRef(null);\n const [selectedPageIndex, setSelectedPageIndex] = useState(-1);\n const [scrollTracking, setScrollTracking] = useState(true);\n const {\n reportBackgroundColor,\n reportLayoutHeight = 794,\n reportLayoutWidth = 1123,\n } = reportSettings;\n const width = parseInt(reportLayoutWidth, 10);\n const height = parseInt(reportLayoutHeight, 10);\n const { left, scale, top } = getScaleForPageThumbnail(width, height);\n\n const pageContainerStyles = useMemo(() => ({\n backgroundColor: reportBackgroundColor || '#fff',\n height: height,\n left,\n top,\n transform: `scale(${scale})`,\n transformOrigin: '0 0',\n width: width,\n }), [reportSettings]);\n\n const _onSortEnd = (sortEvent, nativeEvent) => {\n if (onSortEnd) {\n onSortEnd(sortEvent, nativeEvent, outerRef.current);\n }\n };\n\n useEffect(() => { // for page thumbnails actions\n if (!scrollTracking) {\n scrollToTarget(`pageActions-id-${selectedPageIndex}`, 0, {});\n setScrollTracking(true);\n }\n }, [pageCount]);\n\n usePageVisibility(index => {\n if (scrollTracking && index !== selectedPageIndex && !Number.isNaN(index)) {\n const instance = outerRef.current.getWrappedInstance();\n const list = instance.sortableOuterRef.current;\n setSelectedPageIndex(index);\n if (selectedPageIndex === -1 && index !== 1) {\n setTimeout(() => {\n list.scrollTo({ behavior: 'smooth', top: ((index - 1) * 120) + 7 });\n }, 300);\n } else {\n list.scrollTo({ behavior: 'smooth', top: ((index - 1) * 120) + 7 });\n }\n } else if (!scrollTracking && index === selectedPageIndex) {\n setScrollTracking(true);\n }\n }, scrollTracking, pageCount, selectedPageIndex);\n\n const onPageClick = useCallback(e => {\n const order = e.target.getAttribute('data-order');\n setScrollTracking(false);\n setSelectedPageIndex(parseInt(order, 10));\n if (!e.target.classList.contains('controllerItem')) { // for page thumbnails actions\n scrollToTarget(`pageActions-id-${order}`);\n }\n }, [selectedPageIndex]);\n\n const onPageAdd = index => {\n setScrollTracking(false);\n setSelectedPageIndex(index);\n otherProps.onPageAdd(index);\n };\n\n return (\n <>\n <ResponsiveContainer>\n <ResponsiveContent>\n {(containerWidth, containerHeight) => (\n <Component\n ref={outerRef}\n distance={50}\n height={containerHeight}\n helperClass=\"pageThumbnailHelper\"\n lockAxis=\"y\"\n onPageClick={onPageClick}\n onSortEnd={_onSortEnd}\n pageContainerStyle={pageContainerStyles}\n pageCount={pageCount}\n selectedPageIndex={selectedPageIndex}\n width={containerWidth}\n {...otherProps}\n />\n )}\n </ResponsiveContent>\n </ResponsiveContainer>\n <div className=\"jfReport-pane-footer\">\n <PageAdder\n additionalClass=\"forOptions\"\n onPageAdd={onPageAdd}\n pageCount={pageCount}\n />\n </div>\n </>\n );\n};\n\nListWrapper.propTypes = {\n component: PropTypes.any,\n onSortEnd: PropTypes.func,\n pageCount: PropTypes.number,\n reportSettings: PropTypes.shape({\n reportBackgroundColor: PropTypes.string,\n reportLayoutHeight: PropTypes.string,\n reportLayoutWidth: PropTypes.string,\n }),\n};\n\nListWrapper.defaultProps = {\n component: null,\n onSortEnd: () => {},\n pageCount: 0,\n reportSettings: {},\n};\n\nexport default memo(ListWrapper);\n"],"names":["ListWrapper","Component","component","onSortEnd","pageCount","reportSettings","otherProps","outerRef","useRef","useState","selectedPageIndex","setSelectedPageIndex","scrollTracking","setScrollTracking","reportBackgroundColor","reportLayoutHeight","reportLayoutWidth","width","parseInt","height","getScaleForPageThumbnail","left","scale","top","pageContainerStyles","useMemo","backgroundColor","transform","transformOrigin","_onSortEnd","sortEvent","nativeEvent","current","useEffect","scrollToTarget","usePageVisibility","index","Number","isNaN","instance","getWrappedInstance","list","sortableOuterRef","setTimeout","scrollTo","behavior","onPageClick","useCallback","e","order","target","getAttribute","classList","contains","onPageAdd","_jsxs","_jsx","containerWidth","containerHeight","propTypes","PropTypes","any","func","number","shape","string","defaultProps","memo"],"mappings":"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"}
1
+ {"version":3,"file":"ListWrapper.js","sources":["../../../../../src/components/Panels/SlidesPanel/ListWrapper.js"],"sourcesContent":["import {\n memo, useCallback, useRef, useState, useMemo, useEffect,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { ResponsiveContainer } from 'recharts';\nimport ResponsiveContent from '../../ResponsiveContent';\nimport PageAdder from '../../Builder/PageAdder';\nimport { getScaleForPageThumbnail, scrollToTarget } from '../../../utils/functions';\nimport { usePageVisibility } from '../../../utils/hooks';\n\nconst ListWrapper = ({\n component: Component,\n onPageAdd,\n onSortEnd,\n pageCount,\n reportSettings,\n ...otherProps\n}) => {\n const outerRef = useRef(null);\n const [selectedPageIndex, setSelectedPageIndex] = useState(-1);\n const [scrollTracking, setScrollTracking] = useState(true);\n const {\n reportBackgroundColor,\n reportLayoutHeight = 794,\n reportLayoutWidth = 1123,\n } = reportSettings;\n const width = parseInt(reportLayoutWidth, 10);\n const height = parseInt(reportLayoutHeight, 10);\n const { left, scale, top } = getScaleForPageThumbnail(width, height);\n\n const pageContainerStyles = useMemo(() => ({\n backgroundColor: reportBackgroundColor || '#fff',\n height: height,\n left,\n top,\n transform: `scale(${scale})`,\n transformOrigin: '0 0',\n width: width,\n }), [reportSettings]);\n\n const _onSortEnd = useCallback((sortEvent, nativeEvent) => {\n if (onSortEnd) {\n onSortEnd(sortEvent, nativeEvent, outerRef.current);\n }\n }, [onSortEnd]);\n\n useEffect(() => {\n if (selectedPageIndex !== -1) {\n const instance = outerRef.current.getWrappedInstance();\n const list = instance.sortablePageListRef.current;\n list.scrollToItem(selectedPageIndex);\n }\n }, [selectedPageIndex]);\n\n useEffect(() => { // for page thumbnails actions\n if (!scrollTracking) {\n scrollToTarget(`pageActions-id-${selectedPageIndex}`, 0, {});\n setScrollTracking(true);\n }\n }, [pageCount]);\n\n usePageVisibility(index => {\n if (scrollTracking && index !== selectedPageIndex && !Number.isNaN(index)) {\n setSelectedPageIndex(index);\n } else if (!scrollTracking && index === selectedPageIndex) {\n setScrollTracking(true);\n }\n }, scrollTracking, pageCount, selectedPageIndex);\n\n const onPageClick = useCallback(e => {\n const order = e.target.getAttribute('data-order');\n setScrollTracking(false);\n setSelectedPageIndex(parseInt(order, 10));\n if (!e.target.classList.contains('controllerItem')) { // for page thumbnails actions\n scrollToTarget(`pageActions-id-${order}`);\n }\n }, []);\n\n const handlePageAdd = useCallback(index => {\n setScrollTracking(false);\n setSelectedPageIndex(index);\n onPageAdd(index);\n }, [onPageAdd]);\n\n return (\n <>\n <ResponsiveContainer>\n <ResponsiveContent>\n {(containerWidth, containerHeight) => (\n <Component\n ref={outerRef}\n distance={50}\n height={containerHeight}\n helperClass=\"pageThumbnailHelper\"\n lockAxis=\"y\"\n onPageClick={onPageClick}\n onSortEnd={_onSortEnd}\n pageContainerStyle={pageContainerStyles}\n pageCount={pageCount}\n selectedPageIndex={selectedPageIndex}\n width={containerWidth}\n {...otherProps}\n />\n )}\n </ResponsiveContent>\n </ResponsiveContainer>\n <div className=\"jfReport-pane-footer\">\n <PageAdder\n additionalClass=\"forOptions\"\n onPageAdd={handlePageAdd}\n pageCount={pageCount}\n />\n </div>\n </>\n );\n};\n\nListWrapper.propTypes = {\n component: PropTypes.any,\n onPageAdd: PropTypes.func,\n onSortEnd: PropTypes.func,\n pageCount: PropTypes.number,\n reportSettings: PropTypes.shape({\n reportBackgroundColor: PropTypes.string,\n reportLayoutHeight: PropTypes.string,\n reportLayoutWidth: PropTypes.string,\n }),\n};\n\nListWrapper.defaultProps = {\n component: null,\n onPageAdd: () => {},\n onSortEnd: () => {},\n pageCount: 0,\n reportSettings: {},\n};\n\nexport default memo(ListWrapper);\n"],"names":["ListWrapper","Component","component","onPageAdd","onSortEnd","pageCount","reportSettings","otherProps","outerRef","useRef","useState","selectedPageIndex","setSelectedPageIndex","scrollTracking","setScrollTracking","reportBackgroundColor","reportLayoutHeight","reportLayoutWidth","width","parseInt","height","getScaleForPageThumbnail","left","scale","top","pageContainerStyles","useMemo","backgroundColor","transform","transformOrigin","_onSortEnd","useCallback","sortEvent","nativeEvent","current","useEffect","instance","getWrappedInstance","list","sortablePageListRef","scrollToItem","scrollToTarget","usePageVisibility","index","Number","isNaN","onPageClick","e","order","target","getAttribute","classList","contains","handlePageAdd","_jsxs","_jsx","containerWidth","containerHeight","propTypes","PropTypes","any","func","number","shape","string","defaultProps","memo"],"mappings":"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"}
@@ -58,7 +58,6 @@ var SortablePageList = function SortablePageList(Component) {
58
58
 
59
59
  _this = _super.call(this, props);
60
60
  _this.sortablePageListRef = /*#__PURE__*/createRef();
61
- _this.sortableOuterRef = /*#__PURE__*/createRef();
62
61
  return _this;
63
62
  }
64
63
 
@@ -94,7 +93,6 @@ var SortablePageList = function SortablePageList(Component) {
94
93
  itemCount: pageCount,
95
94
  itemData: this.itemData,
96
95
  itemSize: 127,
97
- outerRef: this.sortableOuterRef,
98
96
  width: width,
99
97
  children: SortablePageItemRenderer
100
98
  });
@@ -1 +1 @@
1
- {"version":3,"file":"SortablePageList.js","sources":["../../../../../src/components/Panels/SlidesPanel/SortablePageList.js"],"sourcesContent":["import { PureComponent, createRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { SortableContainer } from 'react-sortable-hoc';\nimport memoize from 'memoize-one';\nimport SortablePageItemRenderer from './SortablePageItemRenderer';\n\nconst createItemData = memoize((\n acceptedItems,\n additionalPageItems,\n disableInteraction,\n hashCode,\n itemAccessor,\n onAnEventTrigger,\n onPageAdd,\n onPageClick,\n onPageDuplicate,\n onPageRemove,\n pageContainerStyle,\n pageGetter,\n selectedPageIndex,\n) => ({\n acceptedItems,\n additionalPageItems,\n disableInteraction,\n hashCode,\n itemAccessor,\n onAnEventTrigger,\n onPageAdd,\n onPageClick,\n onPageDuplicate,\n onPageRemove,\n pageContainerStyle,\n pageGetter,\n selectedPageIndex,\n}));\n\nconst SortablePageList = Component => {\n class ReactWindowList extends PureComponent {\n constructor(props) {\n super(props);\n\n this.sortablePageListRef = createRef();\n this.sortableOuterRef = createRef();\n }\n\n get itemData() {\n const {\n acceptedItems,\n additionalPageItems,\n disableInteraction,\n hashCode,\n itemAccessor,\n onAnEventTrigger,\n onPageAdd,\n onPageClick,\n onPageDuplicate,\n onPageRemove,\n pageContainerStyle,\n pageGetter,\n selectedPageIndex,\n } = this.props;\n return createItemData(\n acceptedItems,\n additionalPageItems,\n disableInteraction,\n hashCode,\n itemAccessor,\n onAnEventTrigger,\n onPageAdd,\n onPageClick,\n onPageDuplicate,\n onPageRemove,\n pageContainerStyle,\n pageGetter,\n selectedPageIndex,\n );\n }\n\n render() {\n const { height, pageCount, width } = this.props;\n\n return (\n <Component\n ref={this.sortablePageListRef}\n height={height}\n itemCount={pageCount}\n itemData={this.itemData}\n itemSize={127}\n outerRef={this.sortableOuterRef}\n width={width}\n >\n {SortablePageItemRenderer}\n </Component>\n );\n }\n }\n\n ReactWindowList.propTypes = {\n acceptedItems: PropTypes.shape({}),\n additionalPageItems: PropTypes.arrayOf(PropTypes.node),\n disableInteraction: PropTypes.arrayOf(PropTypes.string),\n hashCode: PropTypes.string,\n height: PropTypes.number,\n itemAccessor: PropTypes.func,\n onAnEventTrigger: PropTypes.func,\n onPageAdd: PropTypes.func,\n onPageClick: PropTypes.func,\n onPageDuplicate: PropTypes.func,\n onPageRemove: PropTypes.func,\n pageContainerStyle: PropTypes.shape({}),\n pageCount: PropTypes.number,\n pageGetter: PropTypes.func,\n selectedPageIndex: PropTypes.number,\n width: PropTypes.number,\n };\n\n ReactWindowList.defaultProps = {\n acceptedItems: {},\n additionalPageItems: [],\n disableInteraction: [],\n hashCode: '',\n height: 0,\n itemAccessor: () => {},\n onAnEventTrigger: () => {},\n onPageAdd: () => {},\n onPageClick: () => {},\n onPageDuplicate: () => {},\n onPageRemove: () => {},\n pageContainerStyle: {},\n pageCount: 0,\n pageGetter: () => {},\n selectedPageIndex: 1,\n width: 0,\n };\n\n return SortableContainer(ReactWindowList, { withRef: true });\n};\n\nexport default memoize(SortablePageList);\n"],"names":["createItemData","memoize","acceptedItems","additionalPageItems","disableInteraction","hashCode","itemAccessor","onAnEventTrigger","onPageAdd","onPageClick","onPageDuplicate","onPageRemove","pageContainerStyle","pageGetter","selectedPageIndex","SortablePageList","Component","ReactWindowList","props","sortablePageListRef","createRef","sortableOuterRef","height","pageCount","width","_jsx","itemData","SortablePageItemRenderer","PureComponent","propTypes","PropTypes","shape","arrayOf","node","string","number","func","defaultProps","SortableContainer","withRef"],"mappings":"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"}
1
+ {"version":3,"file":"SortablePageList.js","sources":["../../../../../src/components/Panels/SlidesPanel/SortablePageList.js"],"sourcesContent":["import { PureComponent, createRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { SortableContainer } from 'react-sortable-hoc';\nimport memoize from 'memoize-one';\nimport SortablePageItemRenderer from './SortablePageItemRenderer';\n\nconst createItemData = memoize((\n acceptedItems,\n additionalPageItems,\n disableInteraction,\n hashCode,\n itemAccessor,\n onAnEventTrigger,\n onPageAdd,\n onPageClick,\n onPageDuplicate,\n onPageRemove,\n pageContainerStyle,\n pageGetter,\n selectedPageIndex,\n) => ({\n acceptedItems,\n additionalPageItems,\n disableInteraction,\n hashCode,\n itemAccessor,\n onAnEventTrigger,\n onPageAdd,\n onPageClick,\n onPageDuplicate,\n onPageRemove,\n pageContainerStyle,\n pageGetter,\n selectedPageIndex,\n}));\n\nconst SortablePageList = Component => {\n class ReactWindowList extends PureComponent {\n constructor(props) {\n super(props);\n\n this.sortablePageListRef = createRef();\n }\n\n get itemData() {\n const {\n acceptedItems,\n additionalPageItems,\n disableInteraction,\n hashCode,\n itemAccessor,\n onAnEventTrigger,\n onPageAdd,\n onPageClick,\n onPageDuplicate,\n onPageRemove,\n pageContainerStyle,\n pageGetter,\n selectedPageIndex,\n } = this.props;\n return createItemData(\n acceptedItems,\n additionalPageItems,\n disableInteraction,\n hashCode,\n itemAccessor,\n onAnEventTrigger,\n onPageAdd,\n onPageClick,\n onPageDuplicate,\n onPageRemove,\n pageContainerStyle,\n pageGetter,\n selectedPageIndex,\n );\n }\n\n render() {\n const { height, pageCount, width } = this.props;\n\n return (\n <Component\n ref={this.sortablePageListRef}\n height={height}\n itemCount={pageCount}\n itemData={this.itemData}\n itemSize={127}\n width={width}\n >\n {SortablePageItemRenderer}\n </Component>\n );\n }\n }\n\n ReactWindowList.propTypes = {\n acceptedItems: PropTypes.shape({}),\n additionalPageItems: PropTypes.arrayOf(PropTypes.node),\n disableInteraction: PropTypes.arrayOf(PropTypes.string),\n hashCode: PropTypes.string,\n height: PropTypes.number,\n itemAccessor: PropTypes.func,\n onAnEventTrigger: PropTypes.func,\n onPageAdd: PropTypes.func,\n onPageClick: PropTypes.func,\n onPageDuplicate: PropTypes.func,\n onPageRemove: PropTypes.func,\n pageContainerStyle: PropTypes.shape({}),\n pageCount: PropTypes.number,\n pageGetter: PropTypes.func,\n selectedPageIndex: PropTypes.number,\n width: PropTypes.number,\n };\n\n ReactWindowList.defaultProps = {\n acceptedItems: {},\n additionalPageItems: [],\n disableInteraction: [],\n hashCode: '',\n height: 0,\n itemAccessor: () => {},\n onAnEventTrigger: () => {},\n onPageAdd: () => {},\n onPageClick: () => {},\n onPageDuplicate: () => {},\n onPageRemove: () => {},\n pageContainerStyle: {},\n pageCount: 0,\n pageGetter: () => {},\n selectedPageIndex: 1,\n width: 0,\n };\n\n return SortableContainer(ReactWindowList, { withRef: true });\n};\n\nexport default memoize(SortablePageList);\n"],"names":["createItemData","memoize","acceptedItems","additionalPageItems","disableInteraction","hashCode","itemAccessor","onAnEventTrigger","onPageAdd","onPageClick","onPageDuplicate","onPageRemove","pageContainerStyle","pageGetter","selectedPageIndex","SortablePageList","Component","ReactWindowList","props","sortablePageListRef","createRef","height","pageCount","width","_jsx","itemData","SortablePageItemRenderer","PureComponent","propTypes","PropTypes","shape","arrayOf","node","string","number","func","defaultProps","SortableContainer","withRef"],"mappings":"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"}
@@ -6,6 +6,7 @@ import 'core-js/modules/es.string.includes.js';
6
6
  import 'core-js/modules/es.string.iterator.js';
7
7
  import { useRef, useEffect } from 'react';
8
8
  import PropTypes from 'prop-types';
9
+ import { EVENT_IGNORED_ROLES } from '../constants/eventIgnoredRoles.js';
9
10
  import { jsx } from 'react/jsx-runtime';
10
11
 
11
12
  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; }
@@ -13,7 +14,6 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
13
14
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
14
15
 
15
16
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
16
- var IGNORED_ROLES = ['dialog'];
17
17
 
18
18
  function getDisplayName(WrappedComponent) {
19
19
  return WrappedComponent.displayName || WrappedComponent.name || 'Component';
@@ -33,7 +33,7 @@ function withClickOutside(WrappedComponent) {
33
33
  return exceptionalClasses.includes(xClass);
34
34
  }) || exceptionalClasses.some(function (item) {
35
35
  return event.target.closest(".".concat(item));
36
- }) || IGNORED_ROLES.some(function (role) {
36
+ }) || EVENT_IGNORED_ROLES.some(function (role) {
37
37
  return event.target.closest("[role=".concat(role, "]"));
38
38
  }))) {
39
39
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"withClickOutside.js","sources":["../../../src/components/withClickOutside.js"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nconst IGNORED_ROLES = [\n 'dialog',\n];\n\nfunction getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n}\n\nfunction withClickOutside(WrappedComponent) {\n function WithClickOutside(props) {\n const {\n exceptionalClasses,\n onClickOutside,\n withClickOutsideWrapperClass,\n } = props;\n\n const wrapper = useRef(null);\n\n const handleClickOutside = event => {\n const { classList } = event.target;\n if (\n exceptionalClasses\n && (\n classList.contains(exceptionalClasses)\n || Array.from(classList).some(xClass => exceptionalClasses.includes(xClass))\n || exceptionalClasses.some(item => event.target.closest(`.${item}`))\n || IGNORED_ROLES.some(role => event.target.closest(`[role=${role}]`))\n )\n ) {\n return;\n }\n\n if (wrapper.current && !wrapper.current.contains(event.target)) {\n onClickOutside(event);\n }\n };\n\n useEffect(() => {\n window.addEventListener('mousedown', handleClickOutside, true);\n return () => {\n window.removeEventListener('mousedown', handleClickOutside, true);\n };\n }, []);\n\n // should we memoize this?\n const propsToFilter = ['withClickOutsideWrapperClass', 'exceptionalClasses'];\n const componentName = getDisplayName(WrappedComponent);\n if (componentName === 'Resizable') {\n // beceause resizable wrapper directly passes props to an html el\n propsToFilter.push('onClickOutside');\n }\n const filteredProps = Object.keys(props).reduce((allProps, propKey) => {\n const _allProps = allProps;\n if (propsToFilter.indexOf(propKey) === -1) {\n _allProps[propKey] = props[propKey];\n }\n return _allProps;\n }, {});\n\n return (\n <div\n ref={wrapper}\n className={withClickOutsideWrapperClass}\n >\n <WrappedComponent\n {...filteredProps}\n />\n </div>\n );\n }\n\n WithClickOutside.propTypes = {\n exceptionalClasses: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n onClickOutside: PropTypes.func.isRequired,\n withClickOutsideWrapperClass: PropTypes.string,\n };\n\n WithClickOutside.defaultProps = {\n exceptionalClasses: null,\n withClickOutsideWrapperClass: null,\n };\n\n WithClickOutside.displayName = `inlineEdit(${getDisplayName(WrappedComponent)})`;\n\n return WithClickOutside;\n}\n\nexport default withClickOutside;\n"],"names":["IGNORED_ROLES","getDisplayName","WrappedComponent","displayName","name","withClickOutside","WithClickOutside","props","exceptionalClasses","onClickOutside","withClickOutsideWrapperClass","wrapper","useRef","handleClickOutside","event","classList","target","contains","Array","from","some","xClass","includes","item","closest","role","current","useEffect","window","addEventListener","removeEventListener","propsToFilter","componentName","push","filteredProps","Object","keys","reduce","allProps","propKey","_allProps","indexOf","_jsx","propTypes","PropTypes","oneOfType","string","arrayOf","func","isRequired","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"withClickOutside.js","sources":["../../../src/components/withClickOutside.js"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { EVENT_IGNORED_ROLES } from '../constants/eventIgnoredRoles';\n\nfunction getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n}\n\nfunction withClickOutside(WrappedComponent) {\n function WithClickOutside(props) {\n const {\n exceptionalClasses,\n onClickOutside,\n withClickOutsideWrapperClass,\n } = props;\n\n const wrapper = useRef(null);\n\n const handleClickOutside = event => {\n const { classList } = event.target;\n if (\n exceptionalClasses\n && (\n classList.contains(exceptionalClasses)\n || Array.from(classList).some(xClass => exceptionalClasses.includes(xClass))\n || exceptionalClasses.some(item => event.target.closest(`.${item}`))\n || EVENT_IGNORED_ROLES.some(role => event.target.closest(`[role=${role}]`))\n )\n ) {\n return;\n }\n\n if (wrapper.current && !wrapper.current.contains(event.target)) {\n onClickOutside(event);\n }\n };\n\n useEffect(() => {\n window.addEventListener('mousedown', handleClickOutside, true);\n return () => {\n window.removeEventListener('mousedown', handleClickOutside, true);\n };\n }, []);\n\n // should we memoize this?\n const propsToFilter = ['withClickOutsideWrapperClass', 'exceptionalClasses'];\n const componentName = getDisplayName(WrappedComponent);\n if (componentName === 'Resizable') {\n // beceause resizable wrapper directly passes props to an html el\n propsToFilter.push('onClickOutside');\n }\n const filteredProps = Object.keys(props).reduce((allProps, propKey) => {\n const _allProps = allProps;\n if (propsToFilter.indexOf(propKey) === -1) {\n _allProps[propKey] = props[propKey];\n }\n return _allProps;\n }, {});\n\n return (\n <div\n ref={wrapper}\n className={withClickOutsideWrapperClass}\n >\n <WrappedComponent\n {...filteredProps}\n />\n </div>\n );\n }\n\n WithClickOutside.propTypes = {\n exceptionalClasses: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n onClickOutside: PropTypes.func.isRequired,\n withClickOutsideWrapperClass: PropTypes.string,\n };\n\n WithClickOutside.defaultProps = {\n exceptionalClasses: null,\n withClickOutsideWrapperClass: null,\n };\n\n WithClickOutside.displayName = `inlineEdit(${getDisplayName(WrappedComponent)})`;\n\n return WithClickOutside;\n}\n\nexport default withClickOutside;\n"],"names":["getDisplayName","WrappedComponent","displayName","name","withClickOutside","WithClickOutside","props","exceptionalClasses","onClickOutside","withClickOutsideWrapperClass","wrapper","useRef","handleClickOutside","event","classList","target","contains","Array","from","some","xClass","includes","item","closest","EVENT_IGNORED_ROLES","role","current","useEffect","window","addEventListener","removeEventListener","propsToFilter","componentName","push","filteredProps","Object","keys","reduce","allProps","propKey","_allProps","indexOf","_jsx","propTypes","PropTypes","oneOfType","string","arrayOf","func","isRequired","defaultProps"],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * If an HTML Tag has its role attribute set as one of the
3
+ * members of this array, events that originate from it
4
+ * should be ignored by event handlers.
5
+ */
6
+ var EVENT_IGNORED_ROLES = ['dialog'];
7
+
8
+ export { EVENT_IGNORED_ROLES };
9
+ //# sourceMappingURL=eventIgnoredRoles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventIgnoredRoles.js","sources":["../../../src/constants/eventIgnoredRoles.js"],"sourcesContent":["/**\n * If an HTML Tag has its role attribute set as one of the\n * members of this array, events that originate from it\n * should be ignored by event handlers.\n */\nexport const EVENT_IGNORED_ROLES = [\n 'dialog',\n];\n"],"names":["EVENT_IGNORED_ROLES"],"mappings":"AAAA;AACA;AACA;AACA;AACA;IACaA,mBAAmB,GAAG,CACjC,QADiC;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jotforminc/dnd-builder",
3
- "version": "2.8.0",
3
+ "version": "2.8.2",
4
4
  "files": [
5
5
  "lib"
6
6
  ],