@jotforminc/dnd-builder 3.1.1 → 3.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/index.d.ts +428 -0
  3. package/lib/cjs/components/AlignmentGuides.js +28 -18
  4. package/lib/cjs/components/AlignmentGuides.js.map +1 -1
  5. package/lib/cjs/components/Builder/ContextMenu.js +4 -1
  6. package/lib/cjs/components/Builder/ContextMenu.js.map +1 -1
  7. package/lib/cjs/components/Builder/DraggableLayer.js +1 -5
  8. package/lib/cjs/components/Builder/DraggableLayer.js.map +1 -1
  9. package/lib/cjs/components/Builder/Element.js +7 -4
  10. package/lib/cjs/components/Builder/Element.js.map +1 -1
  11. package/lib/cjs/components/Builder/Page.js +56 -62
  12. package/lib/cjs/components/Builder/Page.js.map +1 -1
  13. package/lib/cjs/components/Builder/Scene.js +30 -251
  14. package/lib/cjs/components/Builder/Scene.js.map +1 -1
  15. package/lib/cjs/components/Builder/SelectionBox.js +48 -0
  16. package/lib/cjs/components/Builder/SelectionBox.js.map +1 -0
  17. package/lib/cjs/components/Builder/Tabs.js +15 -20
  18. package/lib/cjs/components/Builder/Tabs.js.map +1 -1
  19. package/lib/cjs/components/DraggableItem/DraggableItem.js +78 -135
  20. package/lib/cjs/components/DraggableItem/DraggableItem.js.map +1 -1
  21. package/lib/cjs/components/DraggableItem/DraggableItemActions.js +69 -29
  22. package/lib/cjs/components/DraggableItem/DraggableItemActions.js.map +1 -1
  23. package/lib/cjs/components/DraggableItem/DraggableItemLayer.js +8 -8
  24. package/lib/cjs/components/DraggableItem/DraggableItemLayer.js.map +1 -1
  25. package/lib/cjs/components/PageItemResizer.js +41 -43
  26. package/lib/cjs/components/PageItemResizer.js.map +1 -1
  27. package/lib/cjs/components/Panels/AllSlidesPanel/AllSlidesPanel.js +1 -3
  28. package/lib/cjs/components/Panels/AllSlidesPanel/AllSlidesPanel.js.map +1 -1
  29. package/lib/cjs/components/Panels/AllSlidesPanel/PageList.js +0 -6
  30. package/lib/cjs/components/Panels/AllSlidesPanel/PageList.js.map +1 -1
  31. package/lib/cjs/components/Panels/LeftPanel/LeftPanel.js +1 -4
  32. package/lib/cjs/components/Panels/LeftPanel/LeftPanel.js.map +1 -1
  33. package/lib/cjs/components/Panels/LeftPanel/LeftPanelOpener.js +6 -7
  34. package/lib/cjs/components/Panels/LeftPanel/LeftPanelOpener.js.map +1 -1
  35. package/lib/cjs/components/Panels/RightPanel/RightPanel.js +7 -7
  36. package/lib/cjs/components/Panels/RightPanel/RightPanel.js.map +1 -1
  37. package/lib/cjs/components/Panels/RightPanel/RightPanelToggler.js +9 -10
  38. package/lib/cjs/components/Panels/RightPanel/RightPanelToggler.js.map +1 -1
  39. package/lib/cjs/components/Panels/SlidesPanel/SlidesPanel.js +1 -3
  40. package/lib/cjs/components/Panels/SlidesPanel/SlidesPanel.js.map +1 -1
  41. package/lib/cjs/components/Panels/SlidesPanel/SlidesPanelToggler.js +8 -6
  42. package/lib/cjs/components/Panels/SlidesPanel/SlidesPanelToggler.js.map +1 -1
  43. package/lib/cjs/components/ReportItemsWrapper.js +5 -11
  44. package/lib/cjs/components/ReportItemsWrapper.js.map +1 -1
  45. package/lib/cjs/components/Settings/PageLayer/LayerDragOverlay.js +2 -4
  46. package/lib/cjs/components/Settings/PageLayer/LayerDragOverlay.js.map +1 -1
  47. package/lib/cjs/components/Settings/PageLayer/LayerItem.js +12 -7
  48. package/lib/cjs/components/Settings/PageLayer/LayerItem.js.map +1 -1
  49. package/lib/cjs/components/Settings/PageLayer/PageLayer.js +2 -4
  50. package/lib/cjs/components/Settings/PageLayer/PageLayer.js.map +1 -1
  51. package/lib/cjs/components/TextEditor/CustomToolbar/CustomToolbarWrapper.js +3 -8
  52. package/lib/cjs/components/TextEditor/CustomToolbar/CustomToolbarWrapper.js.map +1 -1
  53. package/lib/cjs/constants/texts.js +0 -1
  54. package/lib/cjs/constants/texts.js.map +1 -1
  55. package/lib/cjs/contexts/BuilderContext.js +47 -23
  56. package/lib/cjs/contexts/BuilderContext.js.map +1 -1
  57. package/lib/cjs/styles/_jfReportsPages.scss +8 -1
  58. package/lib/cjs/styles/_jfReportsPanels.scss +4 -2
  59. package/lib/cjs/utils/functions.js +124 -34
  60. package/lib/cjs/utils/functions.js.map +1 -1
  61. package/lib/cjs/utils/hooks.js +7 -7
  62. package/lib/cjs/utils/hooks.js.map +1 -1
  63. package/lib/cjs/utils/useKeyboardActions.js +263 -0
  64. package/lib/cjs/utils/useKeyboardActions.js.map +1 -0
  65. package/lib/cjs/utils/useMarqueeSelection.js +156 -0
  66. package/lib/cjs/utils/useMarqueeSelection.js.map +1 -0
  67. package/lib/esm/components/AlignmentGuides.js +28 -18
  68. package/lib/esm/components/AlignmentGuides.js.map +1 -1
  69. package/lib/esm/components/Builder/ContextMenu.js +4 -1
  70. package/lib/esm/components/Builder/ContextMenu.js.map +1 -1
  71. package/lib/esm/components/Builder/DraggableLayer.js +1 -5
  72. package/lib/esm/components/Builder/DraggableLayer.js.map +1 -1
  73. package/lib/esm/components/Builder/Element.js +7 -4
  74. package/lib/esm/components/Builder/Element.js.map +1 -1
  75. package/lib/esm/components/Builder/Page.js +58 -64
  76. package/lib/esm/components/Builder/Page.js.map +1 -1
  77. package/lib/esm/components/Builder/Scene.js +32 -253
  78. package/lib/esm/components/Builder/Scene.js.map +1 -1
  79. package/lib/esm/components/Builder/SelectionBox.js +42 -0
  80. package/lib/esm/components/Builder/SelectionBox.js.map +1 -0
  81. package/lib/esm/components/Builder/Tabs.js +15 -20
  82. package/lib/esm/components/Builder/Tabs.js.map +1 -1
  83. package/lib/esm/components/DraggableItem/DraggableItem.js +80 -137
  84. package/lib/esm/components/DraggableItem/DraggableItem.js.map +1 -1
  85. package/lib/esm/components/DraggableItem/DraggableItemActions.js +72 -28
  86. package/lib/esm/components/DraggableItem/DraggableItemActions.js.map +1 -1
  87. package/lib/esm/components/DraggableItem/DraggableItemLayer.js +9 -9
  88. package/lib/esm/components/DraggableItem/DraggableItemLayer.js.map +1 -1
  89. package/lib/esm/components/PageItemResizer.js +42 -44
  90. package/lib/esm/components/PageItemResizer.js.map +1 -1
  91. package/lib/esm/components/Panels/AllSlidesPanel/AllSlidesPanel.js +2 -4
  92. package/lib/esm/components/Panels/AllSlidesPanel/AllSlidesPanel.js.map +1 -1
  93. package/lib/esm/components/Panels/AllSlidesPanel/PageList.js +0 -6
  94. package/lib/esm/components/Panels/AllSlidesPanel/PageList.js.map +1 -1
  95. package/lib/esm/components/Panels/LeftPanel/LeftPanel.js +3 -6
  96. package/lib/esm/components/Panels/LeftPanel/LeftPanel.js.map +1 -1
  97. package/lib/esm/components/Panels/LeftPanel/LeftPanelOpener.js +6 -7
  98. package/lib/esm/components/Panels/LeftPanel/LeftPanelOpener.js.map +1 -1
  99. package/lib/esm/components/Panels/RightPanel/RightPanel.js +7 -7
  100. package/lib/esm/components/Panels/RightPanel/RightPanel.js.map +1 -1
  101. package/lib/esm/components/Panels/RightPanel/RightPanelToggler.js +9 -10
  102. package/lib/esm/components/Panels/RightPanel/RightPanelToggler.js.map +1 -1
  103. package/lib/esm/components/Panels/SlidesPanel/SlidesPanel.js +2 -4
  104. package/lib/esm/components/Panels/SlidesPanel/SlidesPanel.js.map +1 -1
  105. package/lib/esm/components/Panels/SlidesPanel/SlidesPanelToggler.js +8 -6
  106. package/lib/esm/components/Panels/SlidesPanel/SlidesPanelToggler.js.map +1 -1
  107. package/lib/esm/components/ReportItemsWrapper.js +5 -11
  108. package/lib/esm/components/ReportItemsWrapper.js.map +1 -1
  109. package/lib/esm/components/Settings/PageLayer/LayerDragOverlay.js +2 -4
  110. package/lib/esm/components/Settings/PageLayer/LayerDragOverlay.js.map +1 -1
  111. package/lib/esm/components/Settings/PageLayer/LayerItem.js +12 -7
  112. package/lib/esm/components/Settings/PageLayer/LayerItem.js.map +1 -1
  113. package/lib/esm/components/Settings/PageLayer/PageLayer.js +2 -4
  114. package/lib/esm/components/Settings/PageLayer/PageLayer.js.map +1 -1
  115. package/lib/esm/components/TextEditor/CustomToolbar/CustomToolbarWrapper.js +3 -8
  116. package/lib/esm/components/TextEditor/CustomToolbar/CustomToolbarWrapper.js.map +1 -1
  117. package/lib/esm/constants/texts.js +0 -1
  118. package/lib/esm/constants/texts.js.map +1 -1
  119. package/lib/esm/contexts/BuilderContext.js +47 -23
  120. package/lib/esm/contexts/BuilderContext.js.map +1 -1
  121. package/lib/esm/styles/_jfReportsPages.scss +8 -1
  122. package/lib/esm/styles/_jfReportsPanels.scss +4 -2
  123. package/lib/esm/utils/functions.js +121 -34
  124. package/lib/esm/utils/functions.js.map +1 -1
  125. package/lib/esm/utils/hooks.js +7 -7
  126. package/lib/esm/utils/hooks.js.map +1 -1
  127. package/lib/esm/utils/useKeyboardActions.js +261 -0
  128. package/lib/esm/utils/useKeyboardActions.js.map +1 -0
  129. package/lib/esm/utils/useMarqueeSelection.js +154 -0
  130. package/lib/esm/utils/useMarqueeSelection.js.map +1 -0
  131. package/package.json +11 -7
@@ -33,8 +33,6 @@ var getDraggedItem = function getDraggedItem(_ref, item) {
33
33
  var DraggableItemLayer = function DraggableItemLayer(_ref2) {
34
34
  var _ref2$collectedProps = _ref2.collectedProps,
35
35
  collectedProps = _ref2$collectedProps === void 0 ? {} : _ref2$collectedProps,
36
- _ref2$guides = _ref2.guides,
37
- guides = _ref2$guides === void 0 ? {} : _ref2$guides,
38
36
  _ref2$pageRefs = _ref2.pageRefs,
39
37
  pageRefs = _ref2$pageRefs === void 0 ? {} : _ref2$pageRefs;
40
38
  var currentOffset = collectedProps.currentOffset,
@@ -44,6 +42,9 @@ var DraggableItemLayer = function DraggableItemLayer(_ref2) {
44
42
  var zoom = BuilderContext.useBuilderStore(function (state) {
45
43
  return state.zoom;
46
44
  });
45
+ var guides = BuilderContext.useBuilderStore(function (state) {
46
+ return state.guides;
47
+ });
47
48
  var acceptedItems = PropContext.usePropStore(function (state) {
48
49
  return state.acceptedItems;
49
50
  });
@@ -78,7 +79,7 @@ var DraggableItemLayer = function DraggableItemLayer(_ref2) {
78
79
 
79
80
  var newMatches = functions.getMatchesForItem(newItem, guides, zoom);
80
81
 
81
- var _getCoordinatesFromMa = functions.getCoordinatesFromMatches(newItem, newMatches),
82
+ var _getCoordinatesFromMa = functions.getCoordinatesFromMatches(newItem, newMatches, zoom),
82
83
  left = _getCoordinatesFromMa.left,
83
84
  top = _getCoordinatesFromMa.top;
84
85
 
@@ -112,10 +113,10 @@ var DraggableItemLayer = function DraggableItemLayer(_ref2) {
112
113
  zIndex: 100
113
114
  };
114
115
  }, [zoom]);
115
- var activeItems = hooks.useActiveElement();
116
- var hasActiveItems = activeItems !== null && activeItems.length > 0; // for a element is added from the left panel
116
+ var selectedElements = hooks.useSelectedElements();
117
+ var hasActiveItems = selectedElements.length > 0; // for a element is added from the left panel
117
118
 
118
- var activeElements = hasActiveItems ? activeItems : [referenceItem];
119
+ var activeElements = hasActiveItems ? selectedElements : [referenceItem];
119
120
  return activeElements.map(function (activeItem) {
120
121
  var coords = hasActiveItems ? {
121
122
  x: refCoords.x - (referenceItem.left - activeItem.left) * zoom,
@@ -136,7 +137,7 @@ var DraggableItemLayer = function DraggableItemLayer(_ref2) {
136
137
  });
137
138
  }
138
139
  })
139
- }, item.id);
140
+ }, activeItem.id);
140
141
  });
141
142
  };
142
143
 
@@ -154,7 +155,6 @@ DraggableItemLayer.propTypes = {
154
155
  item: PropTypes__default['default'].shape({}),
155
156
  itemType: PropTypes__default['default'].string
156
157
  }),
157
- guides: PropTypes__default['default'].shape({}),
158
158
  pageRefs: PropTypes__default['default'].shape({})
159
159
  };
160
160
  var DraggableItemLayer$1 = /*#__PURE__*/React.memo(DraggableItemLayer);
@@ -1 +1 @@
1
- {"version":3,"file":"DraggableItemLayer.js","sources":["../../../../src/components/DraggableItem/DraggableItemLayer.js"],"sourcesContent":["import { memo, useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport ReportItemRenderer from '../Builder/ReportItemRenderer';\nimport { getCoordinatesFromMatches, getCorrectDroppedOffsetValue, getMatchesForItem } from '../../utils/functions';\nimport ItemPositioner from '../ItemPositioner';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport { usePropStore } from '../../contexts/PropContext';\nimport { useActiveElement } from '../../utils/hooks';\n\nconst getDraggedItem = ({ defaultItem = {}, details }, item) => ({\n ...defaultItem,\n ...details,\n ...item,\n id: 'temp',\n});\n\nconst DraggableItemLayer = ({\n collectedProps = {},\n guides = {},\n pageRefs = {},\n}) => {\n const {\n currentOffset,\n initialOffset,\n isDragging,\n item,\n } = collectedProps;\n const zoom = useBuilderStore(state => state.zoom);\n\n const acceptedItems = usePropStore(state => state.acceptedItems);\n const itemAccessor = usePropStore(state => state.itemAccessor);\n\n const referenceItem = useMemo(() => {\n const _item = item.id ? item : getDraggedItem(acceptedItems[item.itemType], item);\n\n // for a element that is dragging to the left panel\n if (!_item.pageID) {\n const element = document.elementFromPoint(currentOffset.x, currentOffset.y);\n if (element && element.closest('.jfReport-page')) {\n const pageID = element.closest('.jfReport-page').getAttribute('data-id');\n return { ..._item, pageID };\n }\n }\n\n return _item;\n }, [\n item,\n acceptedItems,\n currentOffset.x,\n currentOffset.y,\n ]);\n\n const { pageID } = referenceItem;\n\n const refCoords = useMemo(() => {\n if (pageID) {\n const dropTargetPosition = pageRefs[pageID].current.getBoundingClientRect();\n const coords = getCorrectDroppedOffsetValue(\n currentOffset,\n initialOffset,\n dropTargetPosition,\n zoom,\n );\n const newItem = { ...referenceItem, ...coords };\n const newMatches = getMatchesForItem(newItem, guides, zoom);\n const { left, top } = getCoordinatesFromMatches(newItem, newMatches);\n return {\n x: (left * zoom) + dropTargetPosition.left,\n y: (top * zoom) + dropTargetPosition.top,\n };\n }\n return {\n x: currentOffset.x,\n y: currentOffset.y,\n };\n }, [\n currentOffset,\n initialOffset,\n referenceItem,\n pageID,\n pageRefs,\n zoom,\n guides,\n ]);\n\n const getItemStyle = useCallback(({ x, y }, { height, width }) => {\n return {\n cursor: 'grabbing',\n height,\n left: x,\n outlineColor: '#4277ff',\n pointerEvents: 'none',\n position: 'fixed',\n top: y,\n transform: `scale(${zoom})`,\n transformOrigin: '0 0',\n width,\n zIndex: 100,\n };\n }, [zoom]);\n\n const activeItems = useActiveElement();\n\n const hasActiveItems = activeItems !== null && activeItems.length > 0;\n\n // for a element is added from the left panel\n const activeElements = hasActiveItems ? activeItems : [referenceItem];\n\n return activeElements.map(activeItem => {\n const coords = hasActiveItems ? {\n x: refCoords.x - ((referenceItem.left - activeItem.left) * zoom),\n y: refCoords.y - ((referenceItem.top - activeItem.top) * zoom),\n } : refCoords;\n\n const exactItem = hasActiveItems ? activeItem : referenceItem;\n\n return (\n <ItemPositioner\n key={item.id}\n classNames=\"reportItem isDraggingLayerElement\"\n style={getItemStyle(coords, exactItem)}\n >\n <ReportItemRenderer item={exactItem}>\n {ReportItem => (\n <ReportItem\n isDragging={isDragging}\n item={exactItem}\n itemAccessor={itemAccessor}\n zoom={zoom}\n />\n )}\n </ReportItemRenderer>\n </ItemPositioner>\n );\n });\n};\n\nDraggableItemLayer.propTypes = {\n collectedProps: PropTypes.shape({\n currentOffset: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n }),\n initialOffset: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n }),\n isDragging: PropTypes.bool,\n item: PropTypes.shape({}),\n itemType: PropTypes.string,\n }),\n guides: PropTypes.shape({}),\n pageRefs: PropTypes.shape({}),\n};\n\nexport default memo(DraggableItemLayer);\n"],"names":["getDraggedItem","item","defaultItem","details","id","DraggableItemLayer","collectedProps","guides","pageRefs","currentOffset","initialOffset","isDragging","zoom","useBuilderStore","state","acceptedItems","usePropStore","itemAccessor","referenceItem","useMemo","_item","itemType","pageID","element","document","elementFromPoint","x","y","closest","getAttribute","refCoords","dropTargetPosition","current","getBoundingClientRect","coords","getCorrectDroppedOffsetValue","newItem","newMatches","getMatchesForItem","getCoordinatesFromMatches","left","top","getItemStyle","useCallback","height","width","cursor","outlineColor","pointerEvents","position","transform","transformOrigin","zIndex","activeItems","useActiveElement","hasActiveItems","length","activeElements","map","activeItem","exactItem","_jsx","ReportItem","propTypes","PropTypes","shape","number","bool","string","memo"],"mappings":"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"}
1
+ {"version":3,"file":"DraggableItemLayer.js","sources":["../../../../src/components/DraggableItem/DraggableItemLayer.js"],"sourcesContent":["import { memo, useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport ReportItemRenderer from '../Builder/ReportItemRenderer';\nimport { getCoordinatesFromMatches, getCorrectDroppedOffsetValue, getMatchesForItem } from '../../utils/functions';\nimport ItemPositioner from '../ItemPositioner';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport { usePropStore } from '../../contexts/PropContext';\nimport { useSelectedElements } from '../../utils/hooks';\n\nconst getDraggedItem = ({ defaultItem = {}, details }, item) => ({\n ...defaultItem,\n ...details,\n ...item,\n id: 'temp',\n});\n\nconst DraggableItemLayer = ({\n collectedProps = {},\n pageRefs = {},\n}) => {\n const {\n currentOffset,\n initialOffset,\n isDragging,\n item,\n } = collectedProps;\n const zoom = useBuilderStore(state => state.zoom);\n const guides = useBuilderStore(state => state.guides);\n\n const acceptedItems = usePropStore(state => state.acceptedItems);\n const itemAccessor = usePropStore(state => state.itemAccessor);\n\n const referenceItem = useMemo(() => {\n const _item = item.id ? item : getDraggedItem(acceptedItems[item.itemType], item);\n\n // for a element that is dragging to the left panel\n if (!_item.pageID) {\n const element = document.elementFromPoint(currentOffset.x, currentOffset.y);\n if (element && element.closest('.jfReport-page')) {\n const pageID = element.closest('.jfReport-page').getAttribute('data-id');\n return { ..._item, pageID };\n }\n }\n\n return _item;\n }, [\n item,\n acceptedItems,\n currentOffset.x,\n currentOffset.y,\n ]);\n\n const { pageID } = referenceItem;\n\n const refCoords = useMemo(() => {\n if (pageID) {\n const dropTargetPosition = pageRefs[pageID].current.getBoundingClientRect();\n const coords = getCorrectDroppedOffsetValue(\n currentOffset,\n initialOffset,\n dropTargetPosition,\n zoom,\n );\n const newItem = { ...referenceItem, ...coords };\n const newMatches = getMatchesForItem(newItem, guides, zoom);\n const { left, top } = getCoordinatesFromMatches(newItem, newMatches, zoom);\n return {\n x: (left * zoom) + dropTargetPosition.left,\n y: (top * zoom) + dropTargetPosition.top,\n };\n }\n return {\n x: currentOffset.x,\n y: currentOffset.y,\n };\n }, [\n currentOffset,\n initialOffset,\n referenceItem,\n pageID,\n pageRefs,\n zoom,\n guides,\n ]);\n\n const getItemStyle = useCallback(({ x, y }, { height, width }) => {\n return {\n cursor: 'grabbing',\n height,\n left: x,\n outlineColor: '#4277ff',\n pointerEvents: 'none',\n position: 'fixed',\n top: y,\n transform: `scale(${zoom})`,\n transformOrigin: '0 0',\n width,\n zIndex: 100,\n };\n }, [zoom]);\n\n const selectedElements = useSelectedElements();\n\n const hasActiveItems = selectedElements.length > 0;\n\n // for a element is added from the left panel\n const activeElements = hasActiveItems ? selectedElements : [referenceItem];\n\n return activeElements.map(activeItem => {\n const coords = hasActiveItems ? {\n x: refCoords.x - ((referenceItem.left - activeItem.left) * zoom),\n y: refCoords.y - ((referenceItem.top - activeItem.top) * zoom),\n } : refCoords;\n\n const exactItem = hasActiveItems ? activeItem : referenceItem;\n\n return (\n <ItemPositioner\n key={activeItem.id}\n classNames=\"reportItem isDraggingLayerElement\"\n style={getItemStyle(coords, exactItem)}\n >\n <ReportItemRenderer item={exactItem}>\n {ReportItem => (\n <ReportItem\n isDragging={isDragging}\n item={exactItem}\n itemAccessor={itemAccessor}\n zoom={zoom}\n />\n )}\n </ReportItemRenderer>\n </ItemPositioner>\n );\n });\n};\n\nDraggableItemLayer.propTypes = {\n collectedProps: PropTypes.shape({\n currentOffset: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n }),\n initialOffset: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n }),\n isDragging: PropTypes.bool,\n item: PropTypes.shape({}),\n itemType: PropTypes.string,\n }),\n pageRefs: PropTypes.shape({}),\n};\n\nexport default memo(DraggableItemLayer);\n"],"names":["getDraggedItem","item","defaultItem","details","id","DraggableItemLayer","collectedProps","pageRefs","currentOffset","initialOffset","isDragging","zoom","useBuilderStore","state","guides","acceptedItems","usePropStore","itemAccessor","referenceItem","useMemo","_item","itemType","pageID","element","document","elementFromPoint","x","y","closest","getAttribute","refCoords","dropTargetPosition","current","getBoundingClientRect","coords","getCorrectDroppedOffsetValue","newItem","newMatches","getMatchesForItem","getCoordinatesFromMatches","left","top","getItemStyle","useCallback","height","width","cursor","outlineColor","pointerEvents","position","transform","transformOrigin","zIndex","selectedElements","useSelectedElements","hasActiveItems","length","activeElements","map","activeItem","exactItem","_jsx","ReportItem","propTypes","PropTypes","shape","number","bool","string","memo"],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  'use strict';
2
2
 
3
+ require('core-js/modules/es.array.from.js');
3
4
  require('core-js/modules/es.array.includes.js');
5
+ require('core-js/modules/es.string.iterator.js');
4
6
  var React = require('react');
5
7
  var reResizable = require('re-resizable');
6
8
  var reactDom = require('react-dom');
@@ -11,7 +13,6 @@ var DraggableItemActions = require('./DraggableItem/DraggableItemActions.js');
11
13
  var ItemPositioner = require('./ItemPositioner.js');
12
14
  var withClickOutside = require('./withClickOutside.js');
13
15
  var BuilderContext = require('../contexts/BuilderContext.js');
14
- var functions = require('../utils/functions.js');
15
16
  var jsxRuntime = require('react/jsx-runtime');
16
17
 
17
18
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -35,6 +36,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
35
36
  function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
36
37
 
37
38
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
39
+ var exceptionalClassesForClickOutside = ['contextMenu-itemLabel', 'contextMenu-item'];
38
40
  var ResizableWithClickOutside = withClickOutside(reResizable.Resizable);
39
41
  var enableResize = {
40
42
  bottom: true,
@@ -50,36 +52,24 @@ var lockAspectRatioTypes = ['image', 'icon'];
50
52
  var exceptionalClasses = ['reportHandle', 'reportItemMenu', 'jfReport-pane', 'pageSettingSideBtn', 'reportItemWrapper', 'reportRotater', 'forZoom', 'ql-toolbar', 'jSheetContextMenu', 'reset-default-contextMenu'];
51
53
 
52
54
  var PageItemResizer = function PageItemResizer(_ref) {
53
- var changeLockStatus = _ref.changeLockStatus,
54
- deleteItem = _ref.deleteItem,
55
- duplicateItem = _ref.duplicateItem,
56
- isDragging = _ref.isDragging,
57
- item = _ref.item,
58
- onClickOutside = _ref.onClickOutside,
55
+ var item = _ref.item,
59
56
  onResize = _ref.onResize,
60
- onResizeStop = _ref.onResizeStop,
61
- pageID = _ref.pageID,
62
- stateHeight = _ref.stateHeight,
63
- stateLeft = _ref.stateLeft,
64
- stateTop = _ref.stateTop,
65
- stateWidth = _ref.stateWidth;
57
+ onResizeStop = _ref.onResizeStop;
66
58
  var zoom = BuilderContext.useBuilderStore(function (state) {
67
59
  return state.zoom;
68
60
  });
69
61
  var setIsRightPanelOpen = BuilderContext.useBuilderStore(function (state) {
70
62
  return state.setIsRightPanelOpen;
71
63
  });
72
- var setActiveElement = BuilderContext.useBuilderStore(function (state) {
73
- return state.setActiveElement;
64
+ var resetActiveElements = BuilderContext.useBuilderStore(function (state) {
65
+ return state.resetActiveElements;
74
66
  });
75
- var activeElement = BuilderContext.useBuilderStore(function (state) {
76
- return state.activeElement;
67
+ var isMultipleItemSelected = BuilderContext.useBuilderStore(function (state) {
68
+ return state.activeElements.length > 1;
77
69
  });
78
70
  var isTextEditorOpen = BuilderContext.useBuilderStore(function (state) {
79
71
  return state.isTextEditorOpen;
80
72
  });
81
- var isSelected = functions.isSelectedItem(item.id, activeElement);
82
- var isMultipleItemSelected = activeElement !== null && activeElement.length > 1;
83
73
  var requestRef = React.useRef();
84
74
 
85
75
  var _useState = React.useState(false),
@@ -125,29 +115,45 @@ var PageItemResizer = function PageItemResizer(_ref) {
125
115
  window.removeEventListener('keyup', handleKeyUp);
126
116
  };
127
117
 
118
+ var onClickOutside = function onClickOutside(event) {
119
+ // clickoutside should not work for scrollbar
120
+ var viewPort = document.querySelector('.jfReport-viewport');
121
+ var clientHeight = viewPort.clientHeight,
122
+ offsetHeight = viewPort.offsetHeight;
123
+ var headerHeight = window.innerHeight - offsetHeight;
124
+
125
+ if (event.clientY - headerHeight >= clientHeight || Array.from(event.target.classList).some(function (xClass) {
126
+ return exceptionalClassesForClickOutside.includes(xClass);
127
+ })) {
128
+ return;
129
+ }
130
+
131
+ setIsRightPanelOpen(false);
132
+ resetActiveElements();
133
+
134
+ if (document.activeElement) {
135
+ document.activeElement.blur();
136
+ }
137
+ };
138
+
128
139
  var itemPositionerStyle = React.useMemo(function () {
129
140
  return {
130
- height: Math.round(stateHeight * zoom),
131
- left: Math.round(stateLeft * zoom),
141
+ height: Math.round(item.height * zoom),
142
+ left: Math.round(item.left * zoom),
132
143
  pointerEvents: 'none',
133
144
  position: 'absolute',
134
- top: Math.round(stateTop * zoom),
145
+ top: Math.round(item.top * zoom),
135
146
  touchAction: 'none',
136
- width: Math.round(stateWidth * zoom)
147
+ width: Math.round(item.width * zoom)
137
148
  };
138
- }, [stateHeight, stateLeft, stateTop, stateWidth, zoom]);
149
+ }, [item.height, item.left, item.top, item.width, zoom]);
139
150
  var size = React.useMemo(function () {
140
151
  return {
141
- height: Math.round(stateHeight * zoom),
142
- width: Math.round(stateWidth * zoom)
152
+ height: Math.round(item.height * zoom),
153
+ width: Math.round(item.width * zoom)
143
154
  };
144
- }, [stateHeight, stateWidth, zoom]);
145
- var openSettings = React.useCallback(function () {
146
- setActiveElement(item.id);
147
- setIsRightPanelOpen(true);
148
- }, [item.id, setIsRightPanelOpen, setActiveElement]);
155
+ }, [item.height, item.width, zoom]);
149
156
  var isLocked = item.isLocked;
150
- if (isDragging || !isSelected) return null;
151
157
  return /*#__PURE__*/reactDom.createPortal( /*#__PURE__*/jsxRuntime.jsxs(ItemPositioner, {
152
158
  style: itemPositionerStyle,
153
159
  children: [/*#__PURE__*/jsxRuntime.jsx(ResizableWithClickOutside, _objectSpread(_objectSpread({
@@ -166,18 +172,10 @@ var PageItemResizer = function PageItemResizer(_ref) {
166
172
  size: size
167
173
  }, staticProps.resizeStaticProps), {}, {
168
174
  withClickOutsideWrapperClass: "reportItemResizer-wrapper".concat(isLocked ? ' isLocked' : '')
169
- })), /*#__PURE__*/jsxRuntime.jsx(DraggableItemActions, {
170
- changeLockStatus: changeLockStatus,
171
- deleteItem: deleteItem,
172
- duplicateItem: duplicateItem,
173
- isLocked: item.isLocked,
174
- isMultipleItemSelected: isMultipleItemSelected,
175
- openSettings: openSettings
176
- }), /*#__PURE__*/jsxRuntime.jsx(CustomToolbarWrapper, {
177
- isTextEditorOpen: isTextEditorOpen,
178
- itemWidth: stateWidth * zoom
175
+ })), !isMultipleItemSelected && /*#__PURE__*/jsxRuntime.jsx(DraggableItemActions, {}), isTextEditorOpen && /*#__PURE__*/jsxRuntime.jsx(CustomToolbarWrapper, {
176
+ itemWidth: item.width * zoom
179
177
  })]
180
- }), document.querySelector(".jfReport-page[data-id=\"".concat(pageID, "\"]")));
178
+ }), document.querySelector(".jfReport-page[data-id=\"".concat(item.pageID, "\"]")));
181
179
  };
182
180
 
183
181
  module.exports = PageItemResizer;
@@ -1 +1 @@
1
- {"version":3,"file":"PageItemResizer.js","sources":["../../../src/components/PageItemResizer.js"],"sourcesContent":["import {\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { Resizable } from 're-resizable';\nimport { createPortal } from 'react-dom';\nimport classNames from 'classnames';\nimport { resizeStaticProps } from '../constants/staticProps';\nimport TextEditorToolbar from './TextEditor/CustomToolbar';\n\nimport DraggableItemActions from './DraggableItem/DraggableItemActions';\nimport ItemPositioner from './ItemPositioner';\nimport withClickOutside from './withClickOutside';\nimport { useBuilderStore } from '../contexts/BuilderContext';\nimport { isSelectedItem } from '../utils/functions';\n\nconst ResizableWithClickOutside = withClickOutside(Resizable);\n\nconst enableResize = {\n bottom: true,\n bottomLeft: true,\n bottomRight: true,\n left: true,\n right: true,\n top: true,\n topLeft: true,\n topRight: true,\n};\nconst lockAspectRatioTypes = ['image', 'icon'];\nconst exceptionalClasses = [\n 'reportHandle',\n 'reportItemMenu',\n 'jfReport-pane',\n 'pageSettingSideBtn',\n 'reportItemWrapper',\n 'reportRotater',\n 'forZoom',\n 'ql-toolbar',\n 'jSheetContextMenu',\n 'reset-default-contextMenu',\n];\n\nconst PageItemResizer = ({\n changeLockStatus,\n deleteItem,\n duplicateItem,\n isDragging,\n item,\n onClickOutside,\n onResize,\n onResizeStop,\n pageID,\n stateHeight,\n stateLeft,\n stateTop,\n stateWidth,\n}) => {\n const zoom = useBuilderStore(state => state.zoom);\n const setIsRightPanelOpen = useBuilderStore(state => state.setIsRightPanelOpen);\n const setActiveElement = useBuilderStore(state => state.setActiveElement);\n const activeElement = useBuilderStore(state => state.activeElement);\n const isTextEditorOpen = useBuilderStore(state => state.isTextEditorOpen);\n\n const isSelected = isSelectedItem(item.id, activeElement);\n const isMultipleItemSelected = activeElement !== null && activeElement.length > 1;\n\n const requestRef = useRef();\n const [lockAspectRatio, setLockAspectRatio] = useState(false);\n\n const handleKeyUp = e => {\n if (!e.shiftKey) setLockAspectRatio(false);\n };\n\n const handleKeyDown = e => {\n if (e.shiftKey) setLockAspectRatio(true);\n };\n\n const seriousResize = (deltaWidth, deltaHeight, direction) => {\n return () => {\n onResize(deltaWidth, deltaHeight, direction);\n requestRef.current = undefined;\n };\n };\n\n const onResizeStart = e => {\n e.preventDefault();\n window.addEventListener('keydown', handleKeyDown);\n window.addEventListener('keyup', handleKeyUp);\n };\n\n const onResizeRAF = (e, direction, ref, { height: deltaHeight, width: deltaWidth }) => {\n if (!requestRef.current) {\n requestRef.current = global\n .requestAnimationFrame(\n seriousResize(\n Math.round(deltaWidth * (1 / zoom)),\n Math.round(deltaHeight * (1 / zoom)),\n direction,\n ),\n );\n }\n };\n\n const onResizeEnd = (e, direction, ref, { height: deltaHeight, width: deltaWidth }) => {\n onResizeStop(\n Math.round(deltaWidth * (1 / zoom)),\n Math.round(deltaHeight * (1 / zoom)),\n direction,\n );\n window.removeEventListener('keydown', handleKeyDown);\n window.removeEventListener('keyup', handleKeyUp);\n };\n\n const itemPositionerStyle = useMemo(() => ({\n height: Math.round(stateHeight * zoom),\n left: Math.round(stateLeft * zoom),\n pointerEvents: 'none',\n position: 'absolute',\n top: Math.round(stateTop * zoom),\n touchAction: 'none',\n width: Math.round(stateWidth * zoom),\n }), [stateHeight, stateLeft, stateTop, stateWidth, zoom]);\n\n const size = useMemo(() => ({\n height: Math.round(stateHeight * zoom),\n width: Math.round(stateWidth * zoom),\n }), [stateHeight, stateWidth, zoom]);\n\n const openSettings = useCallback(() => {\n setActiveElement(item.id);\n setIsRightPanelOpen(true);\n }, [item.id, setIsRightPanelOpen, setActiveElement]);\n\n const { isLocked } = item;\n\n if (isDragging || !isSelected) return null;\n return createPortal(\n <ItemPositioner\n style={itemPositionerStyle}\n >\n <ResizableWithClickOutside\n className={classNames(\n 'reportItemResizer',\n { hideVerticalHandle: !(item.height > 50) },\n { hideHorizontalHandle: !(item.width > 50) },\n )}\n enable={!item.isLocked && enableResize}\n exceptionalClasses={exceptionalClasses}\n lockAspectRatio={lockAspectRatioTypes.includes(item.itemType) || lockAspectRatio}\n onClickOutside={onClickOutside}\n onResize={onResizeRAF}\n onResizeStart={onResizeStart}\n onResizeStop={onResizeEnd}\n size={size}\n {...resizeStaticProps}\n withClickOutsideWrapperClass={`reportItemResizer-wrapper${isLocked ? ' isLocked' : ''}`}\n />\n <DraggableItemActions\n changeLockStatus={changeLockStatus}\n deleteItem={deleteItem}\n duplicateItem={duplicateItem}\n isLocked={item.isLocked}\n isMultipleItemSelected={isMultipleItemSelected}\n openSettings={openSettings}\n />\n <TextEditorToolbar\n isTextEditorOpen={isTextEditorOpen}\n itemWidth={stateWidth * zoom}\n />\n </ItemPositioner>,\n document.querySelector(`.jfReport-page[data-id=\"${pageID}\"]`),\n );\n};\n\nexport default PageItemResizer;\n"],"names":["ResizableWithClickOutside","withClickOutside","Resizable","enableResize","bottom","bottomLeft","bottomRight","left","right","top","topLeft","topRight","lockAspectRatioTypes","exceptionalClasses","PageItemResizer","changeLockStatus","deleteItem","duplicateItem","isDragging","item","onClickOutside","onResize","onResizeStop","pageID","stateHeight","stateLeft","stateTop","stateWidth","zoom","useBuilderStore","state","setIsRightPanelOpen","setActiveElement","activeElement","isTextEditorOpen","isSelected","isSelectedItem","id","isMultipleItemSelected","length","requestRef","useRef","useState","lockAspectRatio","setLockAspectRatio","handleKeyUp","e","shiftKey","handleKeyDown","seriousResize","deltaWidth","deltaHeight","direction","current","undefined","onResizeStart","preventDefault","window","addEventListener","onResizeRAF","ref","height","width","global","requestAnimationFrame","Math","round","onResizeEnd","removeEventListener","itemPositionerStyle","useMemo","pointerEvents","position","touchAction","size","openSettings","useCallback","isLocked","createPortal","_jsxs","_jsx","classNames","hideVerticalHandle","hideHorizontalHandle","includes","itemType","resizeStaticProps","TextEditorToolbar","document","querySelector"],"mappings":"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"}
1
+ {"version":3,"file":"PageItemResizer.js","sources":["../../../src/components/PageItemResizer.js"],"sourcesContent":["import {\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { Resizable } from 're-resizable';\nimport { createPortal } from 'react-dom';\nimport classNames from 'classnames';\nimport { resizeStaticProps } from '../constants/staticProps';\nimport TextEditorToolbar from './TextEditor/CustomToolbar';\n\nimport DraggableItemActions from './DraggableItem/DraggableItemActions';\nimport ItemPositioner from './ItemPositioner';\nimport withClickOutside from './withClickOutside';\nimport { useBuilderStore } from '../contexts/BuilderContext';\n\nconst exceptionalClassesForClickOutside = ['contextMenu-itemLabel', 'contextMenu-item'];\nconst ResizableWithClickOutside = withClickOutside(Resizable);\n\nconst enableResize = {\n bottom: true,\n bottomLeft: true,\n bottomRight: true,\n left: true,\n right: true,\n top: true,\n topLeft: true,\n topRight: true,\n};\nconst lockAspectRatioTypes = ['image', 'icon'];\nconst exceptionalClasses = [\n 'reportHandle',\n 'reportItemMenu',\n 'jfReport-pane',\n 'pageSettingSideBtn',\n 'reportItemWrapper',\n 'reportRotater',\n 'forZoom',\n 'ql-toolbar',\n 'jSheetContextMenu',\n 'reset-default-contextMenu',\n];\n\nconst PageItemResizer = ({\n item,\n onResize,\n onResizeStop,\n}) => {\n const zoom = useBuilderStore(state => state.zoom);\n const setIsRightPanelOpen = useBuilderStore(state => state.setIsRightPanelOpen);\n const resetActiveElements = useBuilderStore(state => state.resetActiveElements);\n const isMultipleItemSelected = useBuilderStore(state => state.activeElements.length > 1);\n const isTextEditorOpen = useBuilderStore(state => state.isTextEditorOpen);\n\n const requestRef = useRef();\n const [lockAspectRatio, setLockAspectRatio] = useState(false);\n\n const handleKeyUp = e => {\n if (!e.shiftKey) setLockAspectRatio(false);\n };\n\n const handleKeyDown = e => {\n if (e.shiftKey) setLockAspectRatio(true);\n };\n\n const seriousResize = (deltaWidth, deltaHeight, direction) => {\n return () => {\n onResize(deltaWidth, deltaHeight, direction);\n requestRef.current = undefined;\n };\n };\n\n const onResizeStart = e => {\n e.preventDefault();\n window.addEventListener('keydown', handleKeyDown);\n window.addEventListener('keyup', handleKeyUp);\n };\n\n const onResizeRAF = (e, direction, ref, { height: deltaHeight, width: deltaWidth }) => {\n if (!requestRef.current) {\n requestRef.current = global\n .requestAnimationFrame(\n seriousResize(\n Math.round(deltaWidth * (1 / zoom)),\n Math.round(deltaHeight * (1 / zoom)),\n direction,\n ),\n );\n }\n };\n\n const onResizeEnd = (e, direction, ref, { height: deltaHeight, width: deltaWidth }) => {\n onResizeStop(\n Math.round(deltaWidth * (1 / zoom)),\n Math.round(deltaHeight * (1 / zoom)),\n direction,\n );\n window.removeEventListener('keydown', handleKeyDown);\n window.removeEventListener('keyup', handleKeyUp);\n };\n\n const onClickOutside = event => {\n // clickoutside should not work for scrollbar\n const viewPort = document.querySelector('.jfReport-viewport');\n const { clientHeight, offsetHeight } = viewPort;\n const headerHeight = window.innerHeight - offsetHeight;\n if (event.clientY - headerHeight >= clientHeight\n || Array.from(event.target.classList)\n .some(xClass => exceptionalClassesForClickOutside.includes(xClass))) {\n return;\n }\n setIsRightPanelOpen(false);\n resetActiveElements();\n if (document.activeElement) {\n document.activeElement.blur();\n }\n };\n\n const itemPositionerStyle = useMemo(() => ({\n height: Math.round(item.height * zoom),\n left: Math.round(item.left * zoom),\n pointerEvents: 'none',\n position: 'absolute',\n top: Math.round(item.top * zoom),\n touchAction: 'none',\n width: Math.round(item.width * zoom),\n }), [item.height, item.left, item.top, item.width, zoom]);\n\n const size = useMemo(() => ({\n height: Math.round(item.height * zoom),\n width: Math.round(item.width * zoom),\n }), [item.height, item.width, zoom]);\n\n const { isLocked } = item;\n\n return createPortal(\n <ItemPositioner\n style={itemPositionerStyle}\n >\n <ResizableWithClickOutside\n className={classNames(\n 'reportItemResizer',\n { hideVerticalHandle: !(item.height > 50) },\n { hideHorizontalHandle: !(item.width > 50) },\n )}\n enable={!item.isLocked && enableResize}\n exceptionalClasses={exceptionalClasses}\n lockAspectRatio={lockAspectRatioTypes.includes(item.itemType) || lockAspectRatio}\n onClickOutside={onClickOutside}\n onResize={onResizeRAF}\n onResizeStart={onResizeStart}\n onResizeStop={onResizeEnd}\n size={size}\n {...resizeStaticProps}\n withClickOutsideWrapperClass={`reportItemResizer-wrapper${isLocked ? ' isLocked' : ''}`}\n />\n {!isMultipleItemSelected && <DraggableItemActions />}\n {isTextEditorOpen && (\n <TextEditorToolbar\n itemWidth={item.width * zoom}\n />\n )}\n </ItemPositioner>,\n document.querySelector(`.jfReport-page[data-id=\"${item.pageID}\"]`),\n );\n};\n\nexport default PageItemResizer;\n"],"names":["exceptionalClassesForClickOutside","ResizableWithClickOutside","withClickOutside","Resizable","enableResize","bottom","bottomLeft","bottomRight","left","right","top","topLeft","topRight","lockAspectRatioTypes","exceptionalClasses","PageItemResizer","item","onResize","onResizeStop","zoom","useBuilderStore","state","setIsRightPanelOpen","resetActiveElements","isMultipleItemSelected","activeElements","length","isTextEditorOpen","requestRef","useRef","useState","lockAspectRatio","setLockAspectRatio","handleKeyUp","e","shiftKey","handleKeyDown","seriousResize","deltaWidth","deltaHeight","direction","current","undefined","onResizeStart","preventDefault","window","addEventListener","onResizeRAF","ref","height","width","global","requestAnimationFrame","Math","round","onResizeEnd","removeEventListener","onClickOutside","event","viewPort","document","querySelector","clientHeight","offsetHeight","headerHeight","innerHeight","clientY","Array","from","target","classList","some","xClass","includes","activeElement","blur","itemPositionerStyle","useMemo","pointerEvents","position","touchAction","size","isLocked","createPortal","_jsxs","_jsx","classNames","hideVerticalHandle","hideHorizontalHandle","itemType","resizeStaticProps","TextEditorToolbar","pageID"],"mappings":"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"}
@@ -144,7 +144,5 @@ var AllSlidesPanel = function AllSlidesPanel() {
144
144
  });
145
145
  };
146
146
 
147
- var AllSlidesPanel$1 = /*#__PURE__*/React.memo(AllSlidesPanel);
148
-
149
- module.exports = AllSlidesPanel$1;
147
+ module.exports = AllSlidesPanel;
150
148
  //# sourceMappingURL=AllSlidesPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AllSlidesPanel.js","sources":["../../../../../src/components/Panels/AllSlidesPanel/AllSlidesPanel.js"],"sourcesContent":["import { memo, useCallback, useState } from 'react';\nimport classNames from 'classnames';\nimport Panel from '../../Builder/Panel';\nimport { useBuilderStore } from '../../../contexts/BuilderContext';\nimport { usePropStore } from '../../../contexts/PropContext';\nimport { arrayMove } from '../../../utils/functions';\nimport AllSlidesPanelToggler from './AllSlidesPanelToggler';\nimport PageList from './PageList';\nimport PageActionsBar from './PageActionsBar';\n\nconst AllSlidesPanel = () => {\n const isAllSlidesPanelOpen = useBuilderStore(state => state.isAllSlidesPanelOpen);\n const setIsAllSlidesPanelOpen = useBuilderStore(state => state.setIsAllSlidesPanelOpen);\n\n const useExperimentalFeatures = usePropStore(state => state.useExperimentalFeatures);\n const onPageOrdersChange = usePropStore(state => state.onPageOrdersChange);\n const pages = usePropStore(state => state.pages);\n const onAnEventTrigger = usePropStore(state => state.onAnEventTrigger);\n\n const [selectedPages, setSelectedPages] = useState([]);\n const [animationEnd, setAnimationEnd] = useState(false);\n\n const onPageSort = useCallback(({ newIndex, oldIndex }) => {\n const newPageOrders = arrayMove(pages, oldIndex, newIndex).reduce((acc, page, index) => {\n acc[page.id] = { order: index + 1 };\n return acc;\n }, {});\n onPageOrdersChange(newPageOrders);\n onAnEventTrigger('sortPageFromAllSlides');\n }, [pages, onPageOrdersChange, onAnEventTrigger]);\n\n const onPageClick = useCallback(e => {\n const pageID = e.target.getAttribute('data-id');\n if (selectedPages.indexOf(pageID) > -1) {\n setSelectedPages(selectedPages.filter(pid => pid !== pageID));\n } else {\n setSelectedPages([...selectedPages, pageID]);\n }\n }, [selectedPages]);\n\n const onPageSelectAll = () => {\n const getAllPageIds = pages.map(page => page.id);\n setSelectedPages(getAllPageIds);\n };\n\n const onPageDeselect = () => {\n setSelectedPages([]);\n };\n\n const onClosePanel = () => {\n setAnimationEnd(false);\n setIsAllSlidesPanelOpen(false);\n };\n\n const onAnimationEnd = () => {\n if (!isAllSlidesPanelOpen) {\n setAnimationEnd(true);\n }\n };\n\n // Panel className\n const panelAdditionalClassName = classNames(\n 'forAllSlides p-absolute f-all',\n {\n isIdle: !isAllSlidesPanelOpen,\n },\n { hidden: !useExperimentalFeatures },\n );\n\n return (\n <Panel\n additionalClassName={panelAdditionalClassName}\n onAnimationEnd={onAnimationEnd}\n >\n <AllSlidesPanelToggler onClosePanel={onClosePanel} />\n {(isAllSlidesPanelOpen || (!isAllSlidesPanelOpen && !animationEnd)) && (\n <div className=\"toolItemWrapper f-height d-flex\">\n <div className=\"toolItem-tabContent f-width\">\n <PageList\n onPageClick={onPageClick}\n onSortEnd={onPageSort}\n selectedPages={selectedPages}\n />\n <PageActionsBar\n onPageDeselect={onPageDeselect}\n onPageSelectAll={onPageSelectAll}\n pageCount={pages.length}\n selectedPagesCount={selectedPages.length}\n />\n </div>\n </div>\n )}\n </Panel>\n );\n};\n\nexport default memo(AllSlidesPanel);\n"],"names":["AllSlidesPanel","isAllSlidesPanelOpen","useBuilderStore","state","setIsAllSlidesPanelOpen","useExperimentalFeatures","usePropStore","onPageOrdersChange","pages","onAnEventTrigger","useState","selectedPages","setSelectedPages","animationEnd","setAnimationEnd","onPageSort","useCallback","newIndex","oldIndex","newPageOrders","arrayMove","reduce","acc","page","index","id","order","onPageClick","e","pageID","target","getAttribute","indexOf","filter","pid","onPageSelectAll","getAllPageIds","map","onPageDeselect","onClosePanel","onAnimationEnd","panelAdditionalClassName","classNames","isIdle","hidden","_jsxs","_jsx","length","memo"],"mappings":"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"}
1
+ {"version":3,"file":"AllSlidesPanel.js","sources":["../../../../../src/components/Panels/AllSlidesPanel/AllSlidesPanel.js"],"sourcesContent":["import { useCallback, useState } from 'react';\nimport classNames from 'classnames';\nimport Panel from '../../Builder/Panel';\nimport { useBuilderStore } from '../../../contexts/BuilderContext';\nimport { usePropStore } from '../../../contexts/PropContext';\nimport { arrayMove } from '../../../utils/functions';\nimport AllSlidesPanelToggler from './AllSlidesPanelToggler';\nimport PageList from './PageList';\nimport PageActionsBar from './PageActionsBar';\n\nconst AllSlidesPanel = () => {\n const isAllSlidesPanelOpen = useBuilderStore(state => state.isAllSlidesPanelOpen);\n const setIsAllSlidesPanelOpen = useBuilderStore(state => state.setIsAllSlidesPanelOpen);\n\n const useExperimentalFeatures = usePropStore(state => state.useExperimentalFeatures);\n const onPageOrdersChange = usePropStore(state => state.onPageOrdersChange);\n const pages = usePropStore(state => state.pages);\n const onAnEventTrigger = usePropStore(state => state.onAnEventTrigger);\n\n const [selectedPages, setSelectedPages] = useState([]);\n const [animationEnd, setAnimationEnd] = useState(false);\n\n const onPageSort = useCallback(({ newIndex, oldIndex }) => {\n const newPageOrders = arrayMove(pages, oldIndex, newIndex).reduce((acc, page, index) => {\n acc[page.id] = { order: index + 1 };\n return acc;\n }, {});\n onPageOrdersChange(newPageOrders);\n onAnEventTrigger('sortPageFromAllSlides');\n }, [pages, onPageOrdersChange, onAnEventTrigger]);\n\n const onPageClick = useCallback(e => {\n const pageID = e.target.getAttribute('data-id');\n if (selectedPages.indexOf(pageID) > -1) {\n setSelectedPages(selectedPages.filter(pid => pid !== pageID));\n } else {\n setSelectedPages([...selectedPages, pageID]);\n }\n }, [selectedPages]);\n\n const onPageSelectAll = () => {\n const getAllPageIds = pages.map(page => page.id);\n setSelectedPages(getAllPageIds);\n };\n\n const onPageDeselect = () => {\n setSelectedPages([]);\n };\n\n const onClosePanel = () => {\n setAnimationEnd(false);\n setIsAllSlidesPanelOpen(false);\n };\n\n const onAnimationEnd = () => {\n if (!isAllSlidesPanelOpen) {\n setAnimationEnd(true);\n }\n };\n\n // Panel className\n const panelAdditionalClassName = classNames(\n 'forAllSlides p-absolute f-all',\n {\n isIdle: !isAllSlidesPanelOpen,\n },\n { hidden: !useExperimentalFeatures },\n );\n\n return (\n <Panel\n additionalClassName={panelAdditionalClassName}\n onAnimationEnd={onAnimationEnd}\n >\n <AllSlidesPanelToggler onClosePanel={onClosePanel} />\n {(isAllSlidesPanelOpen || (!isAllSlidesPanelOpen && !animationEnd)) && (\n <div className=\"toolItemWrapper f-height d-flex\">\n <div className=\"toolItem-tabContent f-width\">\n <PageList\n onPageClick={onPageClick}\n onSortEnd={onPageSort}\n selectedPages={selectedPages}\n />\n <PageActionsBar\n onPageDeselect={onPageDeselect}\n onPageSelectAll={onPageSelectAll}\n pageCount={pages.length}\n selectedPagesCount={selectedPages.length}\n />\n </div>\n </div>\n )}\n </Panel>\n );\n};\n\nexport default AllSlidesPanel;\n"],"names":["AllSlidesPanel","isAllSlidesPanelOpen","useBuilderStore","state","setIsAllSlidesPanelOpen","useExperimentalFeatures","usePropStore","onPageOrdersChange","pages","onAnEventTrigger","useState","selectedPages","setSelectedPages","animationEnd","setAnimationEnd","onPageSort","useCallback","newIndex","oldIndex","newPageOrders","arrayMove","reduce","acc","page","index","id","order","onPageClick","e","pageID","target","getAttribute","indexOf","filter","pid","onPageSelectAll","getAllPageIds","map","onPageDeselect","onClosePanel","onAnimationEnd","panelAdditionalClassName","classNames","isIdle","hidden","_jsxs","_jsx","length"],"mappings":"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"}
@@ -168,12 +168,6 @@ var PageList = function PageList(_ref) {
168
168
  };
169
169
 
170
170
  PageList.propTypes = {
171
- acceptedItems: PropTypes__default['default'].shape({}),
172
- layoutSettings: PropTypes__default['default'].shape({
173
- reportBackgroundColor: PropTypes__default['default'].string,
174
- reportLayoutHeight: PropTypes__default['default'].string,
175
- reportLayoutWidth: PropTypes__default['default'].string
176
- }),
177
171
  onPageClick: PropTypes__default['default'].func,
178
172
  onSortEnd: PropTypes__default['default'].func,
179
173
  selectedPages: PropTypes__default['default'].arrayOf(PropTypes__default['default'].string)
@@ -1 +1 @@
1
- {"version":3,"file":"PageList.js","sources":["../../../../../src/components/Panels/AllSlidesPanel/PageList.js"],"sourcesContent":["import {\n memo, useRef, useState, useCallback, useMemo,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport {\n DndContext, closestCenter, KeyboardSensor, PointerSensor, useSensor, useSensors,\n} from '@dnd-kit/core';\nimport { SortableContext, rectSortingStrategy } from '@dnd-kit/sortable';\nimport PageItem from './PageItem';\nimport PageItemDragOverlay from './PageItemDragOverlay';\nimport { getScaleForPageThumbnailLarge } from '../../../utils/functions';\nimport PageAdder from '../../Builder/PageAdder';\nimport { usePropStore } from '../../../contexts/PropContext';\n\nconst PageList = ({\n onPageClick,\n onSortEnd,\n selectedPages,\n}) => {\n const layoutSettings = usePropStore(state => state.settings);\n const pages = usePropStore(state => state.pages);\n\n const [activeId, setActiveId] = useState(null);\n const pageContainerStyles = useRef({});\n const {\n reportBackgroundColor,\n reportLayoutHeight = 794,\n reportLayoutWidth = 1123,\n } = layoutSettings;\n const width = parseInt(reportLayoutWidth, 10);\n const height = parseInt(reportLayoutHeight, 10);\n const scale = getScaleForPageThumbnailLarge(width, height);\n\n pageContainerStyles.current = {\n height: height,\n transform: `scale(${scale})`,\n transformOrigin: '0 0',\n width: width,\n };\n\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n distance: 0,\n },\n }),\n useSensor(KeyboardSensor),\n );\n\n const handleDragStart = useCallback(event => {\n setActiveId(event.active.id);\n }, []);\n\n const handleDragEnd = useCallback(event => {\n const { active, over } = event;\n setActiveId(null);\n\n if (over && active.id !== over.id) {\n const oldIndex = pages.findIndex(page => page.id === active.id);\n const newIndex = pages.findIndex(page => page.id === over.id);\n\n if (oldIndex !== -1 && newIndex !== -1) {\n onSortEnd({ newIndex, oldIndex });\n }\n }\n }, [pages, onSortEnd]);\n\n const handleDragCancel = useCallback(() => {\n setActiveId(null);\n }, []);\n\n const items = useMemo(() => {\n if (!pages || pages.length === 0) return [];\n return pages.map(page => page.id);\n }, [pages]);\n\n const activePageData = useMemo(() => {\n if (!activeId || !pages) return null;\n\n const activePage = pages.find(page => page.id === activeId);\n if (!activePage) return null;\n\n const { backgroundColor } = activePage;\n const pageContainerLastStyle = {\n ...pageContainerStyles.current,\n backgroundColor: backgroundColor ? backgroundColor : reportBackgroundColor || '#fff',\n };\n\n return {\n page: activePage,\n pageContainerLastStyle,\n };\n }, [activeId, pages, reportBackgroundColor]);\n\n return (\n <DndContext\n collisionDetection={closestCenter}\n onDragCancel={handleDragCancel}\n onDragEnd={handleDragEnd}\n onDragStart={handleDragStart}\n sensors={sensors}\n >\n <SortableContext\n items={items}\n strategy={rectSortingStrategy}\n >\n <ul className=\"jfReport-pageThumbnailList d-flex j-between f-wrap\">\n {pages.map(page => {\n const { backgroundColor } = page;\n const style = {\n ...pageContainerStyles.current,\n backgroundColor: backgroundColor ? backgroundColor : reportBackgroundColor || '#fff',\n };\n return (\n <PageItem\n key={`item-${page.id}-${page.order}`}\n id={page.id}\n index={page.order - 1}\n isSelected={selectedPages.indexOf(page.id) > -1}\n onPageClick={onPageClick}\n order={page.order}\n page={page}\n style={style}\n />\n );\n })}\n <div className=\"thumbnailWrapper forPageAdder d-flex j-end dir-col\">\n <PageAdder />\n </div>\n <div className=\"spacer\" />\n <div className=\"spacer\" />\n <div className=\"spacer\" />\n </ul>\n </SortableContext>\n <PageItemDragOverlay\n activePageData={activePageData}\n />\n </DndContext>\n );\n};\n\nPageList.propTypes = {\n acceptedItems: PropTypes.shape({}),\n layoutSettings: PropTypes.shape({\n reportBackgroundColor: PropTypes.string,\n reportLayoutHeight: PropTypes.string,\n reportLayoutWidth: PropTypes.string,\n }),\n onPageClick: PropTypes.func,\n onSortEnd: PropTypes.func,\n selectedPages: PropTypes.arrayOf(PropTypes.string),\n};\n\nexport default memo(PageList);\n"],"names":["PageList","onPageClick","onSortEnd","selectedPages","layoutSettings","usePropStore","state","settings","pages","useState","activeId","setActiveId","pageContainerStyles","useRef","reportBackgroundColor","reportLayoutHeight","reportLayoutWidth","width","parseInt","height","scale","getScaleForPageThumbnailLarge","current","transform","transformOrigin","sensors","useSensors","useSensor","PointerSensor","activationConstraint","distance","KeyboardSensor","handleDragStart","useCallback","event","active","id","handleDragEnd","over","oldIndex","findIndex","page","newIndex","handleDragCancel","items","useMemo","length","map","activePageData","activePage","find","backgroundColor","pageContainerLastStyle","_jsxs","DndContext","closestCenter","_jsx","SortableContext","rectSortingStrategy","style","order","indexOf","propTypes","acceptedItems","PropTypes","shape","string","func","arrayOf","memo"],"mappings":"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"}
1
+ {"version":3,"file":"PageList.js","sources":["../../../../../src/components/Panels/AllSlidesPanel/PageList.js"],"sourcesContent":["import {\n memo, useRef, useState, useCallback, useMemo,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport {\n DndContext, closestCenter, KeyboardSensor, PointerSensor, useSensor, useSensors,\n} from '@dnd-kit/core';\nimport { SortableContext, rectSortingStrategy } from '@dnd-kit/sortable';\nimport PageItem from './PageItem';\nimport PageItemDragOverlay from './PageItemDragOverlay';\nimport { getScaleForPageThumbnailLarge } from '../../../utils/functions';\nimport PageAdder from '../../Builder/PageAdder';\nimport { usePropStore } from '../../../contexts/PropContext';\n\nconst PageList = ({\n onPageClick,\n onSortEnd,\n selectedPages,\n}) => {\n const layoutSettings = usePropStore(state => state.settings);\n const pages = usePropStore(state => state.pages);\n\n const [activeId, setActiveId] = useState(null);\n const pageContainerStyles = useRef({});\n const {\n reportBackgroundColor,\n reportLayoutHeight = 794,\n reportLayoutWidth = 1123,\n } = layoutSettings;\n const width = parseInt(reportLayoutWidth, 10);\n const height = parseInt(reportLayoutHeight, 10);\n const scale = getScaleForPageThumbnailLarge(width, height);\n\n pageContainerStyles.current = {\n height: height,\n transform: `scale(${scale})`,\n transformOrigin: '0 0',\n width: width,\n };\n\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n distance: 0,\n },\n }),\n useSensor(KeyboardSensor),\n );\n\n const handleDragStart = useCallback(event => {\n setActiveId(event.active.id);\n }, []);\n\n const handleDragEnd = useCallback(event => {\n const { active, over } = event;\n setActiveId(null);\n\n if (over && active.id !== over.id) {\n const oldIndex = pages.findIndex(page => page.id === active.id);\n const newIndex = pages.findIndex(page => page.id === over.id);\n\n if (oldIndex !== -1 && newIndex !== -1) {\n onSortEnd({ newIndex, oldIndex });\n }\n }\n }, [pages, onSortEnd]);\n\n const handleDragCancel = useCallback(() => {\n setActiveId(null);\n }, []);\n\n const items = useMemo(() => {\n if (!pages || pages.length === 0) return [];\n return pages.map(page => page.id);\n }, [pages]);\n\n const activePageData = useMemo(() => {\n if (!activeId || !pages) return null;\n\n const activePage = pages.find(page => page.id === activeId);\n if (!activePage) return null;\n\n const { backgroundColor } = activePage;\n const pageContainerLastStyle = {\n ...pageContainerStyles.current,\n backgroundColor: backgroundColor ? backgroundColor : reportBackgroundColor || '#fff',\n };\n\n return {\n page: activePage,\n pageContainerLastStyle,\n };\n }, [activeId, pages, reportBackgroundColor]);\n\n return (\n <DndContext\n collisionDetection={closestCenter}\n onDragCancel={handleDragCancel}\n onDragEnd={handleDragEnd}\n onDragStart={handleDragStart}\n sensors={sensors}\n >\n <SortableContext\n items={items}\n strategy={rectSortingStrategy}\n >\n <ul className=\"jfReport-pageThumbnailList d-flex j-between f-wrap\">\n {pages.map(page => {\n const { backgroundColor } = page;\n const style = {\n ...pageContainerStyles.current,\n backgroundColor: backgroundColor ? backgroundColor : reportBackgroundColor || '#fff',\n };\n return (\n <PageItem\n key={`item-${page.id}-${page.order}`}\n id={page.id}\n index={page.order - 1}\n isSelected={selectedPages.indexOf(page.id) > -1}\n onPageClick={onPageClick}\n order={page.order}\n page={page}\n style={style}\n />\n );\n })}\n <div className=\"thumbnailWrapper forPageAdder d-flex j-end dir-col\">\n <PageAdder />\n </div>\n <div className=\"spacer\" />\n <div className=\"spacer\" />\n <div className=\"spacer\" />\n </ul>\n </SortableContext>\n <PageItemDragOverlay\n activePageData={activePageData}\n />\n </DndContext>\n );\n};\n\nPageList.propTypes = {\n onPageClick: PropTypes.func,\n onSortEnd: PropTypes.func,\n selectedPages: PropTypes.arrayOf(PropTypes.string),\n};\n\nexport default memo(PageList);\n"],"names":["PageList","onPageClick","onSortEnd","selectedPages","layoutSettings","usePropStore","state","settings","pages","useState","activeId","setActiveId","pageContainerStyles","useRef","reportBackgroundColor","reportLayoutHeight","reportLayoutWidth","width","parseInt","height","scale","getScaleForPageThumbnailLarge","current","transform","transformOrigin","sensors","useSensors","useSensor","PointerSensor","activationConstraint","distance","KeyboardSensor","handleDragStart","useCallback","event","active","id","handleDragEnd","over","oldIndex","findIndex","page","newIndex","handleDragCancel","items","useMemo","length","map","activePageData","activePage","find","backgroundColor","pageContainerLastStyle","_jsxs","DndContext","closestCenter","_jsx","SortableContext","rectSortingStrategy","style","order","indexOf","propTypes","PropTypes","func","arrayOf","string","memo"],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  'use strict';
2
2
 
3
- var React = require('react');
4
3
  var classNames = require('classnames');
5
4
  var Panel = require('../../Builder/Panel.js');
6
5
  var BuilderContext = require('../../../contexts/BuilderContext.js');
@@ -25,7 +24,5 @@ var LeftPanel = function LeftPanel() {
25
24
  });
26
25
  };
27
26
 
28
- var LeftPanel$1 = /*#__PURE__*/React.memo(LeftPanel);
29
-
30
- module.exports = LeftPanel$1;
27
+ module.exports = LeftPanel;
31
28
  //# sourceMappingURL=LeftPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LeftPanel.js","sources":["../../../../../src/components/Panels/LeftPanel/LeftPanel.js"],"sourcesContent":["import { memo } from 'react';\nimport classNames from 'classnames';\nimport Panel from '../../Builder/Panel';\nimport { useBuilderStore } from '../../../contexts/BuilderContext';\nimport Elements from './Elements';\nimport LeftPanelOpener from './LeftPanelOpener';\n\nconst LeftPanel = () => {\n const isLeftPanelOpen = useBuilderStore(state => state.isLeftPanelOpen);\n\n const panelAdditionalClassName = classNames(\n 'jfReport-toolbox f-height',\n {\n isIdle: !isLeftPanelOpen,\n },\n );\n\n return (\n <Panel additionalClassName={panelAdditionalClassName}>\n <LeftPanelOpener />\n <Elements />\n </Panel>\n );\n};\n\nexport default memo(LeftPanel);\n"],"names":["LeftPanel","isLeftPanelOpen","useBuilderStore","state","panelAdditionalClassName","classNames","isIdle","_jsxs","_jsx","memo"],"mappings":";;;;;;;;;;;;;;AAOA,IAAMA,SAAS,GAAG,SAAZA,SAAY,GAAM;AACtB,MAAMC,eAAe,GAAGC,8BAAe,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACF,eAAV;AAAA,GAAN,CAAvC;AAEA,MAAMG,wBAAwB,GAAGC,8BAAU,CACzC,2BADyC,EAEzC;AACEC,IAAAA,MAAM,EAAE,CAACL;AADX,GAFyC,CAA3C;AAOA,sBACEM,gBAAC,KAAD;AAAO,IAAA,mBAAmB,EAAEH,wBAA5B;AAAA,4BACEI,eAAC,eAAD,KADF,eAEEA,eAAC,QAAD,KAFF;AAAA,IADF;AAMD,CAhBD;;AAkBA,+BAAeC,UAAI,CAACT,SAAD,CAAnB;;;;"}
1
+ {"version":3,"file":"LeftPanel.js","sources":["../../../../../src/components/Panels/LeftPanel/LeftPanel.js"],"sourcesContent":["import classNames from 'classnames';\nimport Panel from '../../Builder/Panel';\nimport { useBuilderStore } from '../../../contexts/BuilderContext';\nimport Elements from './Elements';\nimport LeftPanelOpener from './LeftPanelOpener';\n\nconst LeftPanel = () => {\n const isLeftPanelOpen = useBuilderStore(state => state.isLeftPanelOpen);\n\n const panelAdditionalClassName = classNames(\n 'jfReport-toolbox f-height',\n {\n isIdle: !isLeftPanelOpen,\n },\n );\n\n return (\n <Panel additionalClassName={panelAdditionalClassName}>\n <LeftPanelOpener />\n <Elements />\n </Panel>\n );\n};\n\nexport default LeftPanel;\n"],"names":["LeftPanel","isLeftPanelOpen","useBuilderStore","state","panelAdditionalClassName","classNames","isIdle","_jsxs","_jsx"],"mappings":";;;;;;;;;;;;;IAMMA,SAAS,GAAG,SAAZA,SAAY,GAAM;AACtB,MAAMC,eAAe,GAAGC,8BAAe,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACF,eAAV;AAAA,GAAN,CAAvC;AAEA,MAAMG,wBAAwB,GAAGC,8BAAU,CACzC,2BADyC,EAEzC;AACEC,IAAAA,MAAM,EAAE,CAACL;AADX,GAFyC,CAA3C;AAOA,sBACEM,gBAAC,KAAD;AAAO,IAAA,mBAAmB,EAAEH,wBAA5B;AAAA,4BACEI,eAAC,eAAD,KADF,eAEEA,eAAC,QAAD,KAFF;AAAA,IADF;AAMD;;;;"}
@@ -1,6 +1,5 @@
1
1
  'use strict';
2
2
 
3
- var React = require('react');
4
3
  var BuilderContext = require('../../../contexts/BuilderContext.js');
5
4
  var hooks = require('../../../utils/hooks.js');
6
5
  var jsxRuntime = require('react/jsx-runtime');
@@ -14,12 +13,14 @@ var LeftPanelToggler = function LeftPanelToggler() {
14
13
  var _useTranslatedTexts = hooks.useTranslatedTexts(),
15
14
  ADD_ELEMENT = _useTranslatedTexts.ADD_ELEMENT;
16
15
 
16
+ var onOpenLeftPanel = function onOpenLeftPanel() {
17
+ setIsLeftPanelOpen(true);
18
+ };
19
+
17
20
  return /*#__PURE__*/jsxRuntime.jsx(jsxRuntime.Fragment, {
18
21
  children: /*#__PURE__*/jsxRuntime.jsxs("button", {
19
22
  className: "paneToggler addElementToggle",
20
- onClick: function onClick() {
21
- setIsLeftPanelOpen(true);
22
- },
23
+ onClick: onOpenLeftPanel,
23
24
  title: ADD_ELEMENT,
24
25
  type: "button",
25
26
  children: [/*#__PURE__*/jsxRuntime.jsx("span", {
@@ -31,7 +32,5 @@ var LeftPanelToggler = function LeftPanelToggler() {
31
32
  });
32
33
  };
33
34
 
34
- var LeftPanelOpener = /*#__PURE__*/React.memo(LeftPanelToggler);
35
-
36
- module.exports = LeftPanelOpener;
35
+ module.exports = LeftPanelToggler;
37
36
  //# sourceMappingURL=LeftPanelOpener.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LeftPanelOpener.js","sources":["../../../../../src/components/Panels/LeftPanel/LeftPanelOpener.js"],"sourcesContent":["import { memo } from 'react';\nimport { useBuilderStore } from '../../../contexts/BuilderContext';\nimport * as icons from '../../../utils/icons';\nimport { useTranslatedTexts } from '../../../utils/hooks';\n\nconst LeftPanelToggler = () => {\n const setIsLeftPanelOpen = useBuilderStore(state => state.setIsLeftPanelOpen);\n const { ADD_ELEMENT } = useTranslatedTexts();\n return (\n <>\n <button\n className=\"paneToggler addElementToggle\"\n onClick={() => { setIsLeftPanelOpen(true); }}\n title={ADD_ELEMENT}\n type=\"button\"\n >\n <span>{ADD_ELEMENT}</span>\n <icons.plus className=\"jfReportSVG isWhite\" />\n </button>\n </>\n );\n};\n\nexport default memo(LeftPanelToggler);\n"],"names":["LeftPanelToggler","setIsLeftPanelOpen","useBuilderStore","state","useTranslatedTexts","ADD_ELEMENT","_jsx","_jsxs","icons.plus","memo"],"mappings":";;;;;;;;AAKA,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAmB,GAAM;AAC7B,MAAMC,kBAAkB,GAAGC,8BAAe,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACF,kBAAV;AAAA,GAAN,CAA1C;;AACA,4BAAwBG,wBAAkB,EAA1C;AAAA,MAAQC,WAAR,uBAAQA,WAAR;;AACA,sBACEC;AAAA,2BACEC;AACE,MAAA,SAAS,EAAC,8BADZ;AAEE,MAAA,OAAO,EAAE,mBAAM;AAAEN,QAAAA,kBAAkB,CAAC,IAAD,CAAlB;AAA2B,OAF9C;AAGE,MAAA,KAAK,EAAEI,WAHT;AAIE,MAAA,IAAI,EAAC,QAJP;AAAA,8BAMEC;AAAA,kBAAOD;AAAP,QANF,eAOEC,eAACE,IAAD;AAAY,QAAA,SAAS,EAAC;AAAtB,QAPF;AAAA;AADF,IADF;AAaD,CAhBD;;AAkBA,mCAAeC,UAAI,CAACT,gBAAD,CAAnB;;;;"}
1
+ {"version":3,"file":"LeftPanelOpener.js","sources":["../../../../../src/components/Panels/LeftPanel/LeftPanelOpener.js"],"sourcesContent":["import { useBuilderStore } from '../../../contexts/BuilderContext';\nimport * as icons from '../../../utils/icons';\nimport { useTranslatedTexts } from '../../../utils/hooks';\n\nconst LeftPanelToggler = () => {\n const setIsLeftPanelOpen = useBuilderStore(state => state.setIsLeftPanelOpen);\n const { ADD_ELEMENT } = useTranslatedTexts();\n\n const onOpenLeftPanel = () => {\n setIsLeftPanelOpen(true);\n };\n\n return (\n <>\n <button\n className=\"paneToggler addElementToggle\"\n onClick={onOpenLeftPanel}\n title={ADD_ELEMENT}\n type=\"button\"\n >\n <span>{ADD_ELEMENT}</span>\n <icons.plus className=\"jfReportSVG isWhite\" />\n </button>\n </>\n );\n};\n\nexport default LeftPanelToggler;\n"],"names":["LeftPanelToggler","setIsLeftPanelOpen","useBuilderStore","state","useTranslatedTexts","ADD_ELEMENT","onOpenLeftPanel","_jsx","_jsxs","icons.plus"],"mappings":";;;;;;;IAIMA,gBAAgB,GAAG,SAAnBA,gBAAmB,GAAM;AAC7B,MAAMC,kBAAkB,GAAGC,8BAAe,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACF,kBAAV;AAAA,GAAN,CAA1C;;AACA,4BAAwBG,wBAAkB,EAA1C;AAAA,MAAQC,WAAR,uBAAQA,WAAR;;AAEA,MAAMC,eAAe,GAAG,SAAlBA,eAAkB,GAAM;AAC5BL,IAAAA,kBAAkB,CAAC,IAAD,CAAlB;AACD,GAFD;;AAIA,sBACEM;AAAA,2BACEC;AACE,MAAA,SAAS,EAAC,8BADZ;AAEE,MAAA,OAAO,EAAEF,eAFX;AAGE,MAAA,KAAK,EAAED,WAHT;AAIE,MAAA,IAAI,EAAC,QAJP;AAAA,8BAMEE;AAAA,kBAAOF;AAAP,QANF,eAOEE,eAACE,IAAD;AAAY,QAAA,SAAS,EAAC;AAAtB,QAPF;AAAA;AADF,IADF;AAaD;;;;"}
@@ -46,8 +46,8 @@ var RightPanel = function RightPanel() {
46
46
  var isSlidesPanelOpen = BuilderContext.useBuilderStore(function (state) {
47
47
  return state.isSlidesPanelOpen;
48
48
  });
49
- var setActiveElement = BuilderContext.useBuilderStore(function (state) {
50
- return state.setActiveElement;
49
+ var resetActiveElements = BuilderContext.useBuilderStore(function (state) {
50
+ return state.resetActiveElements;
51
51
  });
52
52
  var setActiveTab = BuilderContext.useBuilderStore(function (state) {
53
53
  return state.setActiveTab;
@@ -89,7 +89,8 @@ var RightPanel = function RightPanel() {
89
89
  return acceptedItems[item.itemType];
90
90
  },
91
91
  title: function title(item) {
92
- return translatedTexts["".concat((acceptedItems[item.itemType].title || item.itemType).toLocaleUpperCase(), "_SETTINGS")];
92
+ var textKey = "".concat((acceptedItems[item.itemType].title || item.itemType).toLocaleUpperCase(), "_SETTINGS");
93
+ return translatedTexts[textKey] || acceptedItems[item.itemType].title;
93
94
  },
94
95
  updater: onItemChange
95
96
  },
@@ -124,7 +125,6 @@ var RightPanel = function RightPanel() {
124
125
  settings: pageItem.settings.map(function (setting) {
125
126
  if (setting.key === 'pageLayer') {
126
127
  return _objectSpread(_objectSpread({}, setting), {}, {
127
- setActiveElement: setActiveElement,
128
128
  updater: onItemChange
129
129
  });
130
130
  }
@@ -139,7 +139,7 @@ var RightPanel = function RightPanel() {
139
139
  updater: onPageChange
140
140
  }
141
141
  };
142
- }, [acceptedItems, layoutSettings, onItemChange, onPageChange, onSettingChange, translatedTexts, pages, setActiveElement]);
142
+ }, [acceptedItems, layoutSettings, onItemChange, onPageChange, onSettingChange, translatedTexts, pages]);
143
143
  var editedEl = React.useMemo(function () {
144
144
  return settingMap[editedElement.substr(0, 2)] || settingMap.l_;
145
145
  }, [editedElement, settingMap]);
@@ -197,8 +197,8 @@ var RightPanel = function RightPanel() {
197
197
  }
198
198
 
199
199
  setIsRightPanelOpen(false);
200
- setActiveElement(null);
201
- }, [editedElement, panelRef, setIsRightPanelOpen, setActiveElement]);
200
+ resetActiveElements();
201
+ }, [editedElement, setIsRightPanelOpen, resetActiveElements]);
202
202
  React.useEffect(function () {
203
203
  if (isRightPanelOpen) window.addEventListener('click', onClickOutsideForPanel, false);
204
204
  return function () {