@jotforminc/dnd-builder 3.6.0 → 3.6.3

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 (70) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/lib/cjs/assets/svg/ellipsis-vertical.svg.js +22 -0
  3. package/lib/cjs/assets/svg/ellipsis-vertical.svg.js.map +1 -0
  4. package/lib/cjs/components/Builder/BuilderWrapper.js +10 -7
  5. package/lib/cjs/components/Builder/BuilderWrapper.js.map +1 -1
  6. package/lib/cjs/components/Builder/PageActions.js +52 -1
  7. package/lib/cjs/components/Builder/PageActions.js.map +1 -1
  8. package/lib/cjs/components/Builder/Scene.js +40 -30
  9. package/lib/cjs/components/Builder/Scene.js.map +1 -1
  10. package/lib/cjs/components/Panels/SlidesNavigator/AddSlideButton.js +48 -0
  11. package/lib/cjs/components/Panels/SlidesNavigator/AddSlideButton.js.map +1 -0
  12. package/lib/cjs/components/Panels/SlidesNavigator/MoreMenu/SlideItemMoreMenu.js +70 -27
  13. package/lib/cjs/components/Panels/SlidesNavigator/MoreMenu/SlideItemMoreMenu.js.map +1 -1
  14. package/lib/cjs/components/Panels/SlidesNavigator/MoreMenuOverlay.js +20 -0
  15. package/lib/cjs/components/Panels/SlidesNavigator/MoreMenuOverlay.js.map +1 -0
  16. package/lib/cjs/components/Panels/SlidesNavigator/SlideItem.js +11 -9
  17. package/lib/cjs/components/Panels/SlidesNavigator/SlideItem.js.map +1 -1
  18. package/lib/cjs/components/Panels/SlidesNavigator/SlideItemsList.js +11 -5
  19. package/lib/cjs/components/Panels/SlidesNavigator/SlideItemsList.js.map +1 -1
  20. package/lib/cjs/components/Panels/SlidesNavigator/SlidesNavigator.js +2 -32
  21. package/lib/cjs/components/Panels/SlidesNavigator/SlidesNavigator.js.map +1 -1
  22. package/lib/cjs/components/Panels/SlidesPanel/SlidesPanel.js +1 -1
  23. package/lib/cjs/components/Panels/SlidesPanel/SlidesPanel.js.map +1 -1
  24. package/lib/cjs/components/TextEditor/TextEditor.js +2 -2
  25. package/lib/cjs/components/TextEditor/TextEditor.js.map +1 -1
  26. package/lib/cjs/contexts/BuilderContext.js +97 -13
  27. package/lib/cjs/contexts/BuilderContext.js.map +1 -1
  28. package/lib/cjs/styles/_jfReportsFloatings.scss +12 -1
  29. package/lib/cjs/styles/slides-navigator.scss +40 -0
  30. package/lib/cjs/utils/functions.js +5 -7
  31. package/lib/cjs/utils/functions.js.map +1 -1
  32. package/lib/cjs/utils/hooks.js +29 -4
  33. package/lib/cjs/utils/hooks.js.map +1 -1
  34. package/lib/cjs/utils/icons.js +2 -0
  35. package/lib/cjs/utils/icons.js.map +1 -1
  36. package/lib/esm/assets/svg/ellipsis-vertical.svg.js +20 -0
  37. package/lib/esm/assets/svg/ellipsis-vertical.svg.js.map +1 -0
  38. package/lib/esm/components/Builder/BuilderWrapper.js +11 -8
  39. package/lib/esm/components/Builder/BuilderWrapper.js.map +1 -1
  40. package/lib/esm/components/Builder/PageActions.js +53 -2
  41. package/lib/esm/components/Builder/PageActions.js.map +1 -1
  42. package/lib/esm/components/Builder/Scene.js +42 -32
  43. package/lib/esm/components/Builder/Scene.js.map +1 -1
  44. package/lib/esm/components/Panels/SlidesNavigator/AddSlideButton.js +46 -0
  45. package/lib/esm/components/Panels/SlidesNavigator/AddSlideButton.js.map +1 -0
  46. package/lib/esm/components/Panels/SlidesNavigator/MoreMenu/SlideItemMoreMenu.js +72 -29
  47. package/lib/esm/components/Panels/SlidesNavigator/MoreMenu/SlideItemMoreMenu.js.map +1 -1
  48. package/lib/esm/components/Panels/SlidesNavigator/MoreMenuOverlay.js +18 -0
  49. package/lib/esm/components/Panels/SlidesNavigator/MoreMenuOverlay.js.map +1 -0
  50. package/lib/esm/components/Panels/SlidesNavigator/SlideItem.js +11 -9
  51. package/lib/esm/components/Panels/SlidesNavigator/SlideItem.js.map +1 -1
  52. package/lib/esm/components/Panels/SlidesNavigator/SlideItemsList.js +12 -6
  53. package/lib/esm/components/Panels/SlidesNavigator/SlideItemsList.js.map +1 -1
  54. package/lib/esm/components/Panels/SlidesNavigator/SlidesNavigator.js +2 -32
  55. package/lib/esm/components/Panels/SlidesNavigator/SlidesNavigator.js.map +1 -1
  56. package/lib/esm/components/Panels/SlidesPanel/SlidesPanel.js +2 -2
  57. package/lib/esm/components/Panels/SlidesPanel/SlidesPanel.js.map +1 -1
  58. package/lib/esm/components/TextEditor/TextEditor.js +2 -2
  59. package/lib/esm/components/TextEditor/TextEditor.js.map +1 -1
  60. package/lib/esm/contexts/BuilderContext.js +97 -13
  61. package/lib/esm/contexts/BuilderContext.js.map +1 -1
  62. package/lib/esm/styles/_jfReportsFloatings.scss +12 -1
  63. package/lib/esm/styles/slides-navigator.scss +40 -0
  64. package/lib/esm/utils/functions.js +5 -6
  65. package/lib/esm/utils/functions.js.map +1 -1
  66. package/lib/esm/utils/hooks.js +29 -5
  67. package/lib/esm/utils/hooks.js.map +1 -1
  68. package/lib/esm/utils/icons.js +1 -0
  69. package/lib/esm/utils/icons.js.map +1 -1
  70. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"BuilderWrapper.js","sources":["../../../../src/components/Builder/BuilderWrapper.js"],"sourcesContent":["import { useCallback, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport isEqual from 'lodash.isequal';\nimport ReportWrapper from '../ReportWrapper';\nimport { usePropStore } from '../../contexts/PropContext';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport {\n useFitZoom, usePageVisibility, usePrevious, useSelectedElements,\n} from '../../utils/hooks';\nimport SlidesNavigator from '../Panels/SlidesNavigator/SlidesNavigator';\nimport { slidesAsNavigator } from '../../utils/functions';\n\nconst BuilderWrapper = ({ children }) => {\n const decidedWhichPanelToOpen = useRef(false);\n\n const pageCount = usePropStore(state => state.pages.length);\n const isLeftPanelOpen = useBuilderStore(state => state.isLeftPanelOpen);\n const isSlidesPanelOpen = useBuilderStore(state => state.isSlidesPanelOpen);\n const isSlidesNavigatorOpen = useBuilderStore(state => state.isSlidesNavigatorOpen);\n const setIsLeftPanelOpen = useBuilderStore(state => state.setIsLeftPanelOpen);\n const setIsSlidesPanelOpen = useBuilderStore(state => state.setIsSlidesPanelOpen);\n const setIsSlidesNavigatorOpen = useBuilderStore(state => state.setIsSlidesNavigatorOpen);\n const shouldShowRightPanelInitially = useBuilderStore(state => state.shouldShowRightPanelInitially);\n const onSelectedItemsChanged = usePropStore(state => state.onSelectedItemsChanged);\n const onPageVisibilityChanged = usePropStore(state => state.onPageVisibilityChanged);\n const setVisiblePageOrder = useBuilderStore(state => state.setVisiblePageOrder);\n const slidesListType = useBuilderStore(state => state.slidesListType);\n const selectedItems = useSelectedElements();\n const prevSelectedItems = usePrevious(selectedItems);\n\n useEffect(() => {\n if (prevSelectedItems && !isEqual(prevSelectedItems, selectedItems)) {\n onSelectedItemsChanged(selectedItems);\n }\n }, [\n selectedItems,\n onSelectedItemsChanged,\n prevSelectedItems,\n ]);\n\n const handlePageVisibility = useCallback(index => {\n if (index && !Number.isNaN(index)) {\n setVisiblePageOrder(index);\n onPageVisibilityChanged(index);\n }\n }, [setVisiblePageOrder, onPageVisibilityChanged]);\n\n // for initial page visibility check and slides panel visibility usage\n const selectedPageIndexReference = isSlidesPanelOpen ? 0 : -1;\n usePageVisibility(handlePageVisibility, pageCount, selectedPageIndexReference);\n\n useFitZoom();\n\n useEffect(() => {\n if (slidesAsNavigator(slidesListType)) {\n setIsSlidesNavigatorOpen(true);\n }\n }, [slidesListType, setIsSlidesNavigatorOpen]);\n\n useEffect(() => {\n if (!decidedWhichPanelToOpen.current) {\n if (pageCount > 1) {\n if (isLeftPanelOpen) {\n setIsLeftPanelOpen(false);\n }\n setIsSlidesPanelOpen(shouldShowRightPanelInitially);\n } else {\n if (isSlidesPanelOpen) {\n setIsSlidesPanelOpen(false);\n }\n setIsLeftPanelOpen(true);\n }\n\n decidedWhichPanelToOpen.current = true;\n }\n }, [\n pageCount,\n isLeftPanelOpen,\n isSlidesPanelOpen,\n isSlidesNavigatorOpen,\n setIsLeftPanelOpen,\n setIsSlidesPanelOpen,\n setIsSlidesNavigatorOpen,\n shouldShowRightPanelInitially,\n ]);\n\n return (\n <>\n {slidesAsNavigator(slidesListType) && <SlidesNavigator />}\n <ReportWrapper mode=\"customize\">\n {children}\n </ReportWrapper>\n </>\n );\n};\n\nBuilderWrapper.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default BuilderWrapper;\n"],"names":["BuilderWrapper","children","decidedWhichPanelToOpen","useRef","pageCount","usePropStore","state","pages","length","isLeftPanelOpen","useBuilderStore","isSlidesPanelOpen","isSlidesNavigatorOpen","setIsLeftPanelOpen","setIsSlidesPanelOpen","setIsSlidesNavigatorOpen","shouldShowRightPanelInitially","onSelectedItemsChanged","onPageVisibilityChanged","setVisiblePageOrder","slidesListType","selectedItems","useSelectedElements","prevSelectedItems","usePrevious","useEffect","isEqual","handlePageVisibility","useCallback","index","Number","isNaN","selectedPageIndexReference","usePageVisibility","useFitZoom","slidesAsNavigator","current","_jsxs","_jsx","propTypes","PropTypes","node","isRequired"],"mappings":"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"}
1
+ {"version":3,"file":"BuilderWrapper.js","sources":["../../../../src/components/Builder/BuilderWrapper.js"],"sourcesContent":["import { useCallback, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport isEqual from 'lodash.isequal';\nimport ReportWrapper from '../ReportWrapper';\nimport { usePropStore } from '../../contexts/PropContext';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport {\n useFitZoom, usePageVisibility, usePrevious, useSelectedElements,\n} from '../../utils/hooks';\nimport SlidesNavigator from '../Panels/SlidesNavigator/SlidesNavigator';\nimport { isSlidesListType } from '../../utils/functions';\n\nconst BuilderWrapper = ({ children }) => {\n const decidedWhichPanelToOpen = useRef(false);\n\n const pageCount = usePropStore(state => state.pages.length);\n const isLeftPanelOpen = useBuilderStore(state => state.isLeftPanelOpen);\n const isSlidesPanelOpen = useBuilderStore(state => state.isSlidesPanelOpen);\n const isSlidesNavigatorOpen = useBuilderStore(state => state.isSlidesNavigatorOpen);\n const setIsLeftPanelOpen = useBuilderStore(state => state.setIsLeftPanelOpen);\n const setIsSlidesPanelOpen = useBuilderStore(state => state.setIsSlidesPanelOpen);\n const setIsSlidesNavigatorOpen = useBuilderStore(state => state.setIsSlidesNavigatorOpen);\n const shouldShowRightPanelInitially = useBuilderStore(state => state.shouldShowRightPanelInitially);\n const onSelectedItemsChanged = usePropStore(state => state.onSelectedItemsChanged);\n const onPageVisibilityChanged = usePropStore(state => state.onPageVisibilityChanged);\n const setVisiblePageOrder = useBuilderStore(state => state.setVisiblePageOrder);\n const slidesListType = useBuilderStore(state => state.slidesListType);\n const selectedItems = useSelectedElements();\n const prevSelectedItems = usePrevious(selectedItems);\n\n useEffect(() => {\n if (prevSelectedItems && !isEqual(prevSelectedItems, selectedItems)) {\n onSelectedItemsChanged(selectedItems);\n }\n }, [\n selectedItems,\n onSelectedItemsChanged,\n prevSelectedItems,\n ]);\n\n const handlePageVisibility = useCallback(index => {\n if (index && !Number.isNaN(index)) {\n setVisiblePageOrder(index);\n onPageVisibilityChanged(index);\n }\n }, [setVisiblePageOrder, onPageVisibilityChanged]);\n\n // for initial page visibility check and slides panel visibility usage\n const selectedPageIndexReference = isSlidesPanelOpen ? 0 : -1;\n usePageVisibility(handlePageVisibility, pageCount, selectedPageIndexReference);\n\n useFitZoom();\n\n useEffect(() => {\n if (!decidedWhichPanelToOpen.current) {\n if (pageCount > 1) {\n if (isLeftPanelOpen) {\n setIsLeftPanelOpen(false);\n }\n if (isSlidesListType(slidesListType, 'NAVIGATOR')) {\n setIsSlidesNavigatorOpen(true);\n }\n setIsSlidesPanelOpen(shouldShowRightPanelInitially);\n } else {\n if (isSlidesPanelOpen) {\n setIsSlidesPanelOpen(false);\n }\n if (isSlidesListType(slidesListType, 'NAVIGATOR') && isSlidesNavigatorOpen) {\n setIsSlidesNavigatorOpen(false);\n }\n setIsLeftPanelOpen(true);\n }\n\n decidedWhichPanelToOpen.current = true;\n }\n }, [pageCount, isLeftPanelOpen, isSlidesPanelOpen, isSlidesNavigatorOpen, setIsLeftPanelOpen, setIsSlidesPanelOpen, setIsSlidesNavigatorOpen, shouldShowRightPanelInitially, slidesListType]);\n\n return (\n <>\n {isSlidesListType(slidesListType, 'NAVIGATOR') && <SlidesNavigator />}\n <ReportWrapper mode=\"customize\">\n {children}\n </ReportWrapper>\n </>\n );\n};\n\nBuilderWrapper.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default BuilderWrapper;\n"],"names":["BuilderWrapper","children","decidedWhichPanelToOpen","useRef","pageCount","usePropStore","state","pages","length","isLeftPanelOpen","useBuilderStore","isSlidesPanelOpen","isSlidesNavigatorOpen","setIsLeftPanelOpen","setIsSlidesPanelOpen","setIsSlidesNavigatorOpen","shouldShowRightPanelInitially","onSelectedItemsChanged","onPageVisibilityChanged","setVisiblePageOrder","slidesListType","selectedItems","useSelectedElements","prevSelectedItems","usePrevious","useEffect","isEqual","handlePageVisibility","useCallback","index","Number","isNaN","selectedPageIndexReference","usePageVisibility","useFitZoom","current","isSlidesListType","_jsxs","_jsx","propTypes","PropTypes","node","isRequired"],"mappings":"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"}
@@ -1,7 +1,8 @@
1
+ import 'core-js/modules/es.array.concat.js';
1
2
  import 'core-js/modules/es.array.find.js';
2
3
  import 'core-js/modules/es.array.find-index.js';
3
4
  import PropTypes from 'prop-types';
4
- import { useMemo } from 'react';
5
+ import { useMemo, useState, useEffect, useCallback } from 'react';
5
6
  import { scrollToTarget } from '../../utils/functions.js';
6
7
  import { useSelectedElements, useTranslatedTexts } from '../../utils/hooks.js';
7
8
  import { useBuilderStore } from '../../contexts/BuilderContext.js';
@@ -12,6 +13,18 @@ import SvgDuplicate from '../../assets/svg/duplicate.svg.js';
12
13
  import SvgTrash from '../../assets/svg/trash.svg.js';
13
14
  import SvgPlus from '../../assets/svg/plus.svg.js';
14
15
 
16
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
17
+
18
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
19
+
20
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
21
+
22
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
23
+
24
+ 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; }
25
+
26
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
27
+
15
28
  var PageActions = function PageActions(_ref) {
16
29
  var _ref$order = _ref.order,
17
30
  order = _ref$order === void 0 ? 0 : _ref$order,
@@ -49,6 +62,24 @@ var PageActions = function PageActions(_ref) {
49
62
  var isSelectedItemExists = useMemo(function () {
50
63
  return (selectedItems === null || selectedItems === void 0 ? void 0 : selectedItems.length) > 0;
51
64
  }, [selectedItems]);
65
+ var setOverPage = useBuilderStore(function (state) {
66
+ return state.setOverPage;
67
+ });
68
+ var setOutPage = useBuilderStore(function (state) {
69
+ return state.setOutPage;
70
+ });
71
+ var overPageId = useBuilderStore(function (state) {
72
+ return state.overedPageId;
73
+ });
74
+
75
+ var _useState = useState(isSelectedItemExists),
76
+ _useState2 = _slicedToArray(_useState, 2),
77
+ toolbarDisabled = _useState2[0],
78
+ setToolbarDisabled = _useState2[1];
79
+
80
+ useEffect(function () {
81
+ setToolbarDisabled(isSelectedItemExists);
82
+ }, [isSelectedItemExists]);
52
83
 
53
84
  var pageSettings = function pageSettings() {
54
85
  setEditedElement("p_".concat(pageID));
@@ -76,6 +107,24 @@ var PageActions = function PageActions(_ref) {
76
107
  onAnEventTrigger('duplicatePage', order + 1);
77
108
  };
78
109
 
110
+ var isOverPage = useMemo(function () {
111
+ return overPageId === pageID;
112
+ }, [overPageId, pageID]);
113
+ var pageToolbarMouseOver = useCallback(function () {
114
+ if (isSelectedItemExists) {
115
+ setToolbarDisabled(false);
116
+ }
117
+
118
+ setOverPage(pageID);
119
+ }, [pageID, setToolbarDisabled, setOverPage, isSelectedItemExists]);
120
+ var pageToolbarMouseOut = useCallback(function () {
121
+ if (isSelectedItemExists) {
122
+ setToolbarDisabled(true);
123
+ }
124
+
125
+ setOutPage(null);
126
+ }, [setOutPage, setToolbarDisabled, isSelectedItemExists]);
127
+
79
128
  var _useTranslatedTexts = useTranslatedTexts(),
80
129
  ADD_NEW_PAGE = _useTranslatedTexts.ADD_NEW_PAGE,
81
130
  DUPLICATE_PAGE = _useTranslatedTexts.DUPLICATE_PAGE;
@@ -88,7 +137,9 @@ var PageActions = function PageActions(_ref) {
88
137
  className: "jfReport-pageInfo d-flex j-center",
89
138
  id: "pageActions-id-".concat(order),
90
139
  children: /*#__PURE__*/jsxs("div", {
91
- className: "floatingController page-toolbar".concat(isSelectedItemExists ? ' disabled' : ''),
140
+ className: "floatingController page-toolbar".concat(toolbarDisabled ? ' disabled' : '').concat(isOverPage ? ' active' : ' inactive'),
141
+ onMouseOut: pageToolbarMouseOut,
142
+ onMouseOver: pageToolbarMouseOver,
92
143
  children: [/*#__PURE__*/jsxs("div", {
93
144
  className: "floatingController-container",
94
145
  children: [/*#__PURE__*/jsx("button", {
@@ -1 +1 @@
1
- {"version":3,"file":"PageActions.js","sources":["../../../../src/components/Builder/PageActions.js"],"sourcesContent":["import PropTypes from 'prop-types';\nimport { useMemo } from 'react';\nimport * as icons from '../../utils/icons';\nimport { moveItemInArrayFromIndexToIndex, scrollToTarget } from '../../utils/functions';\nimport { useSelectedElements, useTranslatedTexts } from '../../utils/hooks';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport { usePropStore } from '../../contexts/PropContext';\n\nconst PageActions = ({\n order = 0,\n pageID = '',\n}) => {\n const pages = usePropStore(state => state.pages);\n const pageCount = pages.length;\n const onAnEventTrigger = usePropStore(state => state.onAnEventTrigger);\n const onPageAdd = usePropStore(state => state.onPageAdd);\n const onPageDuplicate = usePropStore(state => state.onPageDuplicate);\n const onPageOrdersChange = usePropStore(state => state.onPageOrdersChange);\n const onPageRemove = usePropStore(state => state.onPageRemove);\n const disableInteraction = usePropStore(state => state.disableInteraction);\n\n const setIsRightPanelOpen = useBuilderStore(state => state.setIsRightPanelOpen);\n const setEditedElement = useBuilderStore(state => state.setEditedElement);\n\n const selectedItems = useSelectedElements();\n const isSelectedItemExists = useMemo(() => selectedItems?.length > 0, [selectedItems]);\n\n const pageSettings = () => {\n setEditedElement(`p_${pageID}`);\n setIsRightPanelOpen(true);\n };\n\n const onPageAddClick = () => {\n const newPageIndex = order + 1;\n onPageAdd(newPageIndex);\n scrollToTarget(`pageActions-id-${newPageIndex}`, 350);\n onAnEventTrigger('addNewPage', newPageIndex);\n };\n\n const onPageRemoveClick = () => {\n onPageRemove(pageID);\n onAnEventTrigger('removePage', pageID);\n };\n\n const changeOrder = direction => {\n return () => {\n const pageIndex = pages.findIndex(page => page.id === pageID);\n const editedPages = moveItemInArrayFromIndexToIndex(\n pages,\n pageIndex,\n pageIndex + direction,\n );\n const pageOrders = editedPages.reduce((acc, page, index) => {\n const newOrder = index + 1;\n acc[page.id] = {\n order: newOrder,\n };\n return acc;\n }, {});\n onPageOrdersChange(pageOrders);\n scrollToTarget(`pageActions-id-${order + direction}`);\n onAnEventTrigger('changePageOrder', direction);\n };\n };\n\n const onPageDuplicateClick = () => {\n const foundPage = pages.find(page => page.id === pageID);\n onPageDuplicate(foundPage);\n scrollToTarget(`pageActions-id-${order + 1}`, 350);\n onAnEventTrigger('duplicatePage', order + 1);\n };\n\n const {\n ADD_NEW_PAGE, DUPLICATE_PAGE, MOVE_PAGE_DOWNWARDS,\n MOVE_PAGE_UPWARDS, PAGE_SETTINGS, REMOVE_PAGE,\n } = useTranslatedTexts();\n return (\n <div\n className=\"jfReport-pageInfo d-flex j-center\"\n id={`pageActions-id-${order}`}\n >\n <div className={`floatingController page-toolbar${isSelectedItemExists ? ' disabled' : ''}`}>\n <div className=\"floatingController-container\">\n <button\n key=\"Slide Settings\"\n className=\"controllerItem\"\n onClick={pageSettings}\n title={PAGE_SETTINGS}\n type=\"button\"\n >\n <icons.pageSettings className=\"toolbar-icon\" />\n </button>\n <button\n key=\"Duplicate Page\"\n className=\"controllerItem\"\n disabled={disableInteraction.indexOf('duplicate') > -1}\n onClick={onPageDuplicateClick}\n title={DUPLICATE_PAGE}\n type=\"button\"\n >\n <icons.duplicate className=\"toolbar-icon\" />\n </button>\n <button\n key=\"Remove Slide\"\n className=\"controllerItem error\"\n disabled={disableInteraction.indexOf('remove') > -1}\n onClick={onPageRemoveClick}\n title={REMOVE_PAGE}\n type=\"button\"\n >\n <icons.trash className=\"toolbar-icon\" />\n </button>\n </div>\n {false && (\n <div className=\"floatingController-container\">\n <button\n key=\"Move Page Upwards\"\n className={`controllerItem${order === 1 ? ' disabled' : ''}`}\n onClick={changeOrder(-1)}\n title={MOVE_PAGE_UPWARDS}\n type=\"button\"\n >\n <icons.angleUp className=\"toolbar-icon\" />\n </button>\n <button\n key=\"Move Page Downwards\"\n className={`controllerItem${order === pageCount ? ' disabled' : ''}`}\n onClick={changeOrder(1)}\n title={MOVE_PAGE_DOWNWARDS}\n type=\"button\"\n >\n <icons.angleDown className=\"toolbar-icon\" />\n </button>\n </div>\n )}\n <div className=\"floatingController-container\">\n <button\n key=\"Add Slide\"\n className=\"controllerItem primary\"\n disabled={disableInteraction.indexOf('add') > -1}\n onClick={onPageAddClick}\n title={ADD_NEW_PAGE}\n type=\"button\"\n >\n <icons.plus className=\"toolbar-icon\" />\n </button>\n </div>\n </div>\n </div>\n );\n};\n\nPageActions.propTypes = {\n order: PropTypes.number,\n pageID: PropTypes.string,\n};\n\nexport default PageActions;\n"],"names":["PageActions","order","pageID","pages","usePropStore","state","length","onAnEventTrigger","onPageAdd","onPageDuplicate","onPageOrdersChange","onPageRemove","disableInteraction","setIsRightPanelOpen","useBuilderStore","setEditedElement","selectedItems","useSelectedElements","isSelectedItemExists","useMemo","pageSettings","onPageAddClick","newPageIndex","scrollToTarget","onPageRemoveClick","onPageDuplicateClick","foundPage","find","page","id","useTranslatedTexts","ADD_NEW_PAGE","DUPLICATE_PAGE","MOVE_PAGE_DOWNWARDS","MOVE_PAGE_UPWARDS","PAGE_SETTINGS","REMOVE_PAGE","_jsx","_jsxs","icons.pageSettings","indexOf","icons.duplicate","icons.trash","icons.plus","propTypes","PropTypes","number","string"],"mappings":"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"}
1
+ {"version":3,"file":"PageActions.js","sources":["../../../../src/components/Builder/PageActions.js"],"sourcesContent":["/* eslint-disable jsx-a11y/mouse-events-have-key-events */\nimport PropTypes from 'prop-types';\nimport {\n useCallback, useEffect, useMemo, useState,\n} from 'react';\nimport * as icons from '../../utils/icons';\nimport { moveItemInArrayFromIndexToIndex, scrollToTarget } from '../../utils/functions';\nimport { useSelectedElements, useTranslatedTexts } from '../../utils/hooks';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport { usePropStore } from '../../contexts/PropContext';\n\nconst PageActions = ({\n order = 0,\n pageID = '',\n}) => {\n const pages = usePropStore(state => state.pages);\n const pageCount = pages.length;\n const onAnEventTrigger = usePropStore(state => state.onAnEventTrigger);\n const onPageAdd = usePropStore(state => state.onPageAdd);\n const onPageDuplicate = usePropStore(state => state.onPageDuplicate);\n const onPageOrdersChange = usePropStore(state => state.onPageOrdersChange);\n const onPageRemove = usePropStore(state => state.onPageRemove);\n const disableInteraction = usePropStore(state => state.disableInteraction);\n\n const setIsRightPanelOpen = useBuilderStore(state => state.setIsRightPanelOpen);\n const setEditedElement = useBuilderStore(state => state.setEditedElement);\n\n const selectedItems = useSelectedElements();\n const isSelectedItemExists = useMemo(() => selectedItems?.length > 0, [selectedItems]);\n\n const setOverPage = useBuilderStore(state => state.setOverPage);\n const setOutPage = useBuilderStore(state => state.setOutPage);\n const overPageId = useBuilderStore(state => state.overedPageId);\n\n const [toolbarDisabled, setToolbarDisabled] = useState(isSelectedItemExists);\n\n useEffect(() => {\n setToolbarDisabled(isSelectedItemExists);\n }, [isSelectedItemExists]);\n\n const pageSettings = () => {\n setEditedElement(`p_${pageID}`);\n setIsRightPanelOpen(true);\n };\n\n const onPageAddClick = () => {\n const newPageIndex = order + 1;\n onPageAdd(newPageIndex);\n scrollToTarget(`pageActions-id-${newPageIndex}`, 350);\n onAnEventTrigger('addNewPage', newPageIndex);\n };\n\n const onPageRemoveClick = () => {\n onPageRemove(pageID);\n onAnEventTrigger('removePage', pageID);\n };\n\n const changeOrder = direction => {\n return () => {\n const pageIndex = pages.findIndex(page => page.id === pageID);\n const editedPages = moveItemInArrayFromIndexToIndex(\n pages,\n pageIndex,\n pageIndex + direction,\n );\n const pageOrders = editedPages.reduce((acc, page, index) => {\n const newOrder = index + 1;\n acc[page.id] = {\n order: newOrder,\n };\n return acc;\n }, {});\n onPageOrdersChange(pageOrders);\n scrollToTarget(`pageActions-id-${order + direction}`);\n onAnEventTrigger('changePageOrder', direction);\n };\n };\n\n const onPageDuplicateClick = () => {\n const foundPage = pages.find(page => page.id === pageID);\n onPageDuplicate(foundPage);\n scrollToTarget(`pageActions-id-${order + 1}`, 350);\n onAnEventTrigger('duplicatePage', order + 1);\n };\n\n const isOverPage = useMemo(() => overPageId === pageID, [overPageId, pageID]);\n\n const pageToolbarMouseOver = useCallback(() => {\n if (isSelectedItemExists) {\n setToolbarDisabled(false);\n }\n setOverPage(pageID);\n }, [pageID, setToolbarDisabled, setOverPage, isSelectedItemExists]);\n\n const pageToolbarMouseOut = useCallback(() => {\n if (isSelectedItemExists) {\n setToolbarDisabled(true);\n }\n setOutPage(null);\n }, [setOutPage, setToolbarDisabled, isSelectedItemExists]);\n\n const {\n ADD_NEW_PAGE, DUPLICATE_PAGE, MOVE_PAGE_DOWNWARDS,\n MOVE_PAGE_UPWARDS, PAGE_SETTINGS, REMOVE_PAGE,\n } = useTranslatedTexts();\n return (\n <div\n className=\"jfReport-pageInfo d-flex j-center\"\n id={`pageActions-id-${order}`}\n >\n <div\n className={`floatingController page-toolbar${toolbarDisabled ? ' disabled' : ''}${isOverPage ? ' active' : ' inactive'}`}\n onMouseOut={pageToolbarMouseOut}\n onMouseOver={pageToolbarMouseOver}\n >\n <div className=\"floatingController-container\">\n <button\n key=\"Slide Settings\"\n className=\"controllerItem\"\n onClick={pageSettings}\n title={PAGE_SETTINGS}\n type=\"button\"\n >\n <icons.pageSettings className=\"toolbar-icon\" />\n </button>\n <button\n key=\"Duplicate Page\"\n className=\"controllerItem\"\n disabled={disableInteraction.indexOf('duplicate') > -1}\n onClick={onPageDuplicateClick}\n title={DUPLICATE_PAGE}\n type=\"button\"\n >\n <icons.duplicate className=\"toolbar-icon\" />\n </button>\n <button\n key=\"Remove Slide\"\n className=\"controllerItem error\"\n disabled={disableInteraction.indexOf('remove') > -1}\n onClick={onPageRemoveClick}\n title={REMOVE_PAGE}\n type=\"button\"\n >\n <icons.trash className=\"toolbar-icon\" />\n </button>\n </div>\n {false && (\n <div className=\"floatingController-container\">\n <button\n key=\"Move Page Upwards\"\n className={`controllerItem${order === 1 ? ' disabled' : ''}`}\n onClick={changeOrder(-1)}\n title={MOVE_PAGE_UPWARDS}\n type=\"button\"\n >\n <icons.angleUp className=\"toolbar-icon\" />\n </button>\n <button\n key=\"Move Page Downwards\"\n className={`controllerItem${order === pageCount ? ' disabled' : ''}`}\n onClick={changeOrder(1)}\n title={MOVE_PAGE_DOWNWARDS}\n type=\"button\"\n >\n <icons.angleDown className=\"toolbar-icon\" />\n </button>\n </div>\n )}\n <div className=\"floatingController-container\">\n <button\n key=\"Add Slide\"\n className=\"controllerItem primary\"\n disabled={disableInteraction.indexOf('add') > -1}\n onClick={onPageAddClick}\n title={ADD_NEW_PAGE}\n type=\"button\"\n >\n <icons.plus className=\"toolbar-icon\" />\n </button>\n </div>\n </div>\n </div>\n );\n};\n\nPageActions.propTypes = {\n order: PropTypes.number,\n pageID: PropTypes.string,\n};\n\nexport default PageActions;\n"],"names":["PageActions","order","pageID","pages","usePropStore","state","length","onAnEventTrigger","onPageAdd","onPageDuplicate","onPageOrdersChange","onPageRemove","disableInteraction","setIsRightPanelOpen","useBuilderStore","setEditedElement","selectedItems","useSelectedElements","isSelectedItemExists","useMemo","setOverPage","setOutPage","overPageId","overedPageId","useState","toolbarDisabled","setToolbarDisabled","useEffect","pageSettings","onPageAddClick","newPageIndex","scrollToTarget","onPageRemoveClick","onPageDuplicateClick","foundPage","find","page","id","isOverPage","pageToolbarMouseOver","useCallback","pageToolbarMouseOut","useTranslatedTexts","ADD_NEW_PAGE","DUPLICATE_PAGE","MOVE_PAGE_DOWNWARDS","MOVE_PAGE_UPWARDS","PAGE_SETTINGS","REMOVE_PAGE","_jsx","_jsxs","icons.pageSettings","indexOf","icons.duplicate","icons.trash","icons.plus","propTypes","PropTypes","number","string"],"mappings":"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"}
@@ -5,7 +5,7 @@ import 'core-js/modules/es.number.to-fixed.js';
5
5
  import 'core-js/modules/es.object.to-string.js';
6
6
  import 'core-js/modules/es.regexp.to-string.js';
7
7
  import 'core-js/modules/web.dom-collections.for-each.js';
8
- import { useRef, createRef, useEffect, Fragment } from 'react';
8
+ import { useRef, createRef, useEffect, useCallback } from 'react';
9
9
  import { mainWrapper, viewport, canvas, page } from '../../constants/classNames.js';
10
10
  import ContextMenu from './ContextMenu.js';
11
11
  import PageActions from './PageActions.js';
@@ -15,12 +15,11 @@ import SelectionBox from './SelectionBox.js';
15
15
  import { useBuilderStore } from '../../contexts/BuilderContext.js';
16
16
  import { usePropStore } from '../../contexts/PropContext.js';
17
17
  import Page from './Page.js';
18
- import { calculateGuidePositions, findItemById, findItemsOnPage } from '../../utils/functions.js';
18
+ import { calculateGuidePositions, isSlidesListType, findItemById, findItemsOnPage } from '../../utils/functions.js';
19
19
  import DraggableLayer from './DraggableLayer.js';
20
20
  import useKeyboardActions from '../../utils/useKeyboardActions.js';
21
21
  import useMarqueeSelection from '../../utils/useMarqueeSelection.js';
22
22
  import SlidesNavigatorToggle from './SlidesNavigatorToggle.js';
23
- import { SLIDES_LIST_TYPE_MAP } from '../../constants/panel.js';
24
23
  import { jsxs, jsx } from 'react/jsx-runtime';
25
24
 
26
25
  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; }
@@ -54,6 +53,12 @@ var Scene = function Scene() {
54
53
  var slidesListType = useBuilderStore(function (state) {
55
54
  return state.slidesListType;
56
55
  });
56
+ var setOverPage = useBuilderStore(function (state) {
57
+ return state.setOverPage;
58
+ });
59
+ var setOutPage = useBuilderStore(function (state) {
60
+ return state.setOutPage;
61
+ });
57
62
  var pageStyles = useRef({});
58
63
  var pageContainerStyles = useRef({});
59
64
  var viewPortRef = useRef({});
@@ -144,8 +149,13 @@ var Scene = function Scene() {
144
149
  transformOrigin: '0 0',
145
150
  width: width
146
151
  };
152
+ var pageOverHandler = useCallback(function (pageId) {
153
+ setOverPage(pageId);
154
+ }, [setOverPage]);
155
+ var pageOutHandler = useCallback(function () {
156
+ setOutPage(null);
157
+ }, [setOutPage]);
147
158
  return /*#__PURE__*/jsxs("main", {
148
- // Builder.js
149
159
  className: mainWrapper,
150
160
  children: [/*#__PURE__*/jsx(DraggableLayer, {
151
161
  pageRefs: refs.current
@@ -157,38 +167,38 @@ var Scene = function Scene() {
157
167
  ref: canvasRef,
158
168
  className: canvas,
159
169
  children: [pages.map(function (page$1, index) {
160
- return (
161
- /*#__PURE__*/
162
- // TODO: This part can be moved into a different component
163
- jsxs(Fragment, {
164
- children: [/*#__PURE__*/jsx(PageActions, {
165
- order: page$1.order,
166
- pageID: page$1.id
167
- }), /*#__PURE__*/jsxs("div", {
168
- ref: refs.current[page$1.id],
169
- className: page,
170
- "data-id": page$1.id,
171
- "data-order": page$1.order,
172
- id: "presentation-page-".concat(page$1.id.toString()),
173
- style: _objectSpread(_objectSpread({}, pageStyles.current), {}, {
174
- position: 'relative'
175
- }),
176
- children: [/*#__PURE__*/jsx(Page, {
177
- items: page$1.items,
178
- page: page$1,
179
- pageIndex: index,
180
- style: pageContainerStyles.current
181
- }), selectionPageId === page$1.id && selectionBox && /*#__PURE__*/jsx(SelectionBox, {
182
- selectionBox: selectionBox
183
- })]
184
- }, "page_".concat(page$1.id))]
185
- }, page$1.id)
186
- );
170
+ return /*#__PURE__*/jsxs("div", {
171
+ onMouseOut: pageOutHandler,
172
+ onMouseOver: function onMouseOver() {
173
+ return pageOverHandler(page$1.id);
174
+ },
175
+ children: [/*#__PURE__*/jsx(PageActions, {
176
+ order: page$1.order,
177
+ pageID: page$1.id
178
+ }), /*#__PURE__*/jsxs("div", {
179
+ ref: refs.current[page$1.id],
180
+ className: page,
181
+ "data-id": page$1.id,
182
+ "data-order": page$1.order,
183
+ id: "presentation-page-".concat(page$1.id.toString()),
184
+ style: _objectSpread(_objectSpread({}, pageStyles.current), {}, {
185
+ position: 'relative'
186
+ }),
187
+ children: [/*#__PURE__*/jsx(Page, {
188
+ items: page$1.items,
189
+ page: page$1,
190
+ pageIndex: index,
191
+ style: pageContainerStyles.current
192
+ }), selectionPageId === page$1.id && selectionBox && /*#__PURE__*/jsx(SelectionBox, {
193
+ selectionBox: selectionBox
194
+ })]
195
+ }, "page_".concat(page$1.id))]
196
+ }, page$1.id);
187
197
  }), /*#__PURE__*/jsx(PageAdder, {})]
188
198
  })
189
199
  }), /*#__PURE__*/jsxs("div", {
190
200
  className: "bottom-actions-container",
191
- children: [slidesListType === SLIDES_LIST_TYPE_MAP.NAVIGATOR && /*#__PURE__*/jsx(SlidesNavigatorToggle, {}), /*#__PURE__*/jsx(ZoomControls, {})]
201
+ children: [isSlidesListType(slidesListType, 'NAVIGATOR') && /*#__PURE__*/jsx(SlidesNavigatorToggle, {}), /*#__PURE__*/jsx(ZoomControls, {})]
192
202
  }), contextMenuProps && /*#__PURE__*/jsx(ContextMenu, {
193
203
  exceptionalClasses: ['contextMenu-button'],
194
204
  height: height,
@@ -1 +1 @@
1
- {"version":3,"file":"Scene.js","sources":["../../../../src/components/Builder/Scene.js"],"sourcesContent":["/* eslint-disable complexity */\nimport {\n createRef,\n Fragment,\n useEffect,\n useRef,\n} from 'react';\nimport * as classNames from '../../constants/classNames';\nimport ContextMenu from './ContextMenu';\nimport PageActions from './PageActions';\nimport PageAdder from './PageAdder';\nimport ZoomControls from './ZoomControls';\nimport SelectionBox from './SelectionBox';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport { usePropStore } from '../../contexts/PropContext';\nimport Page from './Page';\nimport {\n calculateGuidePositions,\n findItemById,\n findItemsOnPage,\n} from '../../utils/functions';\nimport DraggableLayer from './DraggableLayer';\nimport useKeyboardActions from '../../utils/useKeyboardActions';\nimport useMarqueeSelection from '../../utils/useMarqueeSelection';\nimport SlidesNavigatorToggle from './SlidesNavigatorToggle';\nimport { SLIDES_LIST_TYPE_MAP } from '../../constants/panel';\n\nconst Scene = () => {\n const pages = usePropStore(state => state.pages);\n const settings = usePropStore(state => state.settings);\n const contextMenuProps = useBuilderStore(state => state.contextMenuProps);\n const setContextMenuProps = useBuilderStore(state => state.setContextMenuProps);\n const setGuides = useBuilderStore(state => state.setGuides);\n const zoom = useBuilderStore(state => state.zoom);\n const lastScrollPosition = useBuilderStore(state => state.lastScrollPosition);\n const slidesListType = useBuilderStore(state => state.slidesListType);\n\n const pageStyles = useRef({});\n const pageContainerStyles = useRef({});\n const viewPortRef = useRef({});\n const canvasRef = useRef(null);\n\n /* Page Refs */\n const refs = useRef(pages.reduce((acc, curr) => {\n acc[curr.id] = createRef(null);\n return acc;\n }, {}));\n\n // Custom hooks\n useKeyboardActions();\n const { selectionBox, selectionPageId } = useMarqueeSelection(canvasRef);\n\n // Update refs when new pages are added\n useEffect(() => {\n pages.forEach(page => {\n if (!refs.current[page.id]) {\n refs.current[page.id] = createRef(null);\n }\n });\n }, [pages]);\n\n // Calculate guides for snap functionality\n useEffect(() => {\n setGuides(pages.reduce((acc, page) => {\n const _pageGuides = {};\n const pageRef = refs.current[page.id];\n if (pageRef && pageRef.current) {\n const {\n height, left, top, width,\n } = pageRef.current.getBoundingClientRect();\n const boundingBox = {\n height, left, top, width,\n };\n _pageGuides.boundingBox = {\n x: calculateGuidePositions(boundingBox, 'x').map(value => value - boundingBox.left),\n y: calculateGuidePositions(boundingBox, 'y').map(value => value - boundingBox.top),\n };\n page.items.forEach(item => {\n _pageGuides[item.id] = {\n x: calculateGuidePositions(item, 'x', zoom),\n y: calculateGuidePositions(item, 'y', zoom),\n };\n });\n }\n acc[page.id] = _pageGuides;\n return acc;\n }, {}));\n }, [pages, zoom, setGuides]);\n\n // Restore scroll position after mode change\n useEffect(() => {\n if (viewPortRef.current) {\n viewPortRef.current.scrollTop = lastScrollPosition;\n }\n }, [lastScrollPosition]);\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 <DraggableLayer\n pageRefs={refs.current}\n />\n <div\n ref={viewPortRef}\n className={classNames.viewport}\n data-zoom={zoom}\n >\n <div\n ref={canvasRef}\n className={classNames.canvas}\n >\n {pages.map((page, index) => (\n // TODO: This part can be moved into a different component\n <Fragment key={page.id}>\n <PageActions\n order={page.order}\n pageID={page.id}\n />\n <div\n key={`page_${page.id}`}\n ref={refs.current[page.id]}\n className={classNames.page}\n data-id={page.id}\n data-order={page.order}\n id={`presentation-page-${page.id.toString()}`}\n style={{ ...pageStyles.current, position: 'relative' }}\n >\n <Page\n items={page.items}\n page={page}\n pageIndex={index}\n style={pageContainerStyles.current}\n />\n {selectionPageId === page.id && selectionBox && (\n <SelectionBox selectionBox={selectionBox} />\n )}\n </div>\n </Fragment>\n ))}\n <PageAdder />\n </div>\n </div>\n <div className=\"bottom-actions-container\">\n {slidesListType === SLIDES_LIST_TYPE_MAP.NAVIGATOR && <SlidesNavigatorToggle />}\n <ZoomControls />\n </div>\n {contextMenuProps\n && (\n <ContextMenu\n exceptionalClasses={['contextMenu-button']}\n height={height}\n item={findItemById(contextMenuProps.id, pages)}\n items={findItemsOnPage(contextMenuProps.pageID, pages)}\n onClickOutside={() => setContextMenuProps(null)}\n position={contextMenuProps.position}\n width={width}\n />\n )}\n </main>\n );\n};\n\nexport default Scene;\n"],"names":["Scene","pages","usePropStore","state","settings","contextMenuProps","useBuilderStore","setContextMenuProps","setGuides","zoom","lastScrollPosition","slidesListType","pageStyles","useRef","pageContainerStyles","viewPortRef","canvasRef","refs","reduce","acc","curr","id","createRef","useKeyboardActions","useMarqueeSelection","selectionBox","selectionPageId","useEffect","forEach","page","current","_pageGuides","pageRef","getBoundingClientRect","height","left","top","width","boundingBox","x","calculateGuidePositions","map","value","y","items","item","scrollTop","reportLayoutHeight","reportLayoutWidth","parseInt","Number","isNaN","zoomToUse","parseFloat","toFixed","transform","transformOrigin","_jsxs","classNames","_jsx","index","order","toString","position","SLIDES_LIST_TYPE_MAP","NAVIGATOR","findItemById","findItemsOnPage","pageID"],"mappings":"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"}
1
+ {"version":3,"file":"Scene.js","sources":["../../../../src/components/Builder/Scene.js"],"sourcesContent":["/* eslint-disable jsx-a11y/mouse-events-have-key-events */\n/* eslint-disable complexity */\nimport {\n createRef,\n useCallback,\n useEffect,\n useRef,\n} from 'react';\nimport * as classNames from '../../constants/classNames';\nimport ContextMenu from './ContextMenu';\nimport PageActions from './PageActions';\nimport PageAdder from './PageAdder';\nimport ZoomControls from './ZoomControls';\nimport SelectionBox from './SelectionBox';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport { usePropStore } from '../../contexts/PropContext';\nimport Page from './Page';\nimport {\n calculateGuidePositions,\n findItemById,\n findItemsOnPage,\n isSlidesListType,\n} from '../../utils/functions';\nimport DraggableLayer from './DraggableLayer';\nimport useKeyboardActions from '../../utils/useKeyboardActions';\nimport useMarqueeSelection from '../../utils/useMarqueeSelection';\nimport SlidesNavigatorToggle from './SlidesNavigatorToggle';\n\nconst Scene = () => {\n const pages = usePropStore(state => state.pages);\n const settings = usePropStore(state => state.settings);\n const contextMenuProps = useBuilderStore(state => state.contextMenuProps);\n const setContextMenuProps = useBuilderStore(state => state.setContextMenuProps);\n const setGuides = useBuilderStore(state => state.setGuides);\n const zoom = useBuilderStore(state => state.zoom);\n const lastScrollPosition = useBuilderStore(state => state.lastScrollPosition);\n const slidesListType = useBuilderStore(state => state.slidesListType);\n const setOverPage = useBuilderStore(state => state.setOverPage);\n const setOutPage = useBuilderStore(state => state.setOutPage);\n\n const pageStyles = useRef({});\n const pageContainerStyles = useRef({});\n const viewPortRef = useRef({});\n const canvasRef = useRef(null);\n\n /* Page Refs */\n const refs = useRef(pages.reduce((acc, curr) => {\n acc[curr.id] = createRef(null);\n return acc;\n }, {}));\n\n // Custom hooks\n useKeyboardActions();\n const { selectionBox, selectionPageId } = useMarqueeSelection(canvasRef);\n\n // Update refs when new pages are added\n useEffect(() => {\n pages.forEach(page => {\n if (!refs.current[page.id]) {\n refs.current[page.id] = createRef(null);\n }\n });\n }, [pages]);\n\n // Calculate guides for snap functionality\n useEffect(() => {\n setGuides(pages.reduce((acc, page) => {\n const _pageGuides = {};\n const pageRef = refs.current[page.id];\n if (pageRef && pageRef.current) {\n const {\n height, left, top, width,\n } = pageRef.current.getBoundingClientRect();\n const boundingBox = {\n height, left, top, width,\n };\n _pageGuides.boundingBox = {\n x: calculateGuidePositions(boundingBox, 'x').map(value => value - boundingBox.left),\n y: calculateGuidePositions(boundingBox, 'y').map(value => value - boundingBox.top),\n };\n page.items.forEach(item => {\n _pageGuides[item.id] = {\n x: calculateGuidePositions(item, 'x', zoom),\n y: calculateGuidePositions(item, 'y', zoom),\n };\n });\n }\n acc[page.id] = _pageGuides;\n return acc;\n }, {}));\n }, [pages, zoom, setGuides]);\n\n // Restore scroll position after mode change\n useEffect(() => {\n if (viewPortRef.current) {\n viewPortRef.current.scrollTop = lastScrollPosition;\n }\n }, [lastScrollPosition]);\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 const pageOverHandler = useCallback(pageId => {\n setOverPage(pageId);\n }, [setOverPage]);\n\n const pageOutHandler = useCallback(() => {\n setOutPage(null);\n }, [setOutPage]);\n\n return (\n <main\n className={classNames.mainWrapper}\n >\n <DraggableLayer\n pageRefs={refs.current}\n />\n <div\n ref={viewPortRef}\n className={classNames.viewport}\n data-zoom={zoom}\n >\n <div\n ref={canvasRef}\n className={classNames.canvas}\n >\n {pages.map((page, index) => (\n <div\n key={page.id}\n onMouseOut={pageOutHandler}\n onMouseOver={() => pageOverHandler(page.id)}\n >\n <PageActions\n order={page.order}\n pageID={page.id}\n />\n <div\n key={`page_${page.id}`}\n ref={refs.current[page.id]}\n className={classNames.page}\n data-id={page.id}\n data-order={page.order}\n id={`presentation-page-${page.id.toString()}`}\n style={{ ...pageStyles.current, position: 'relative' }}\n >\n <Page\n items={page.items}\n page={page}\n pageIndex={index}\n style={pageContainerStyles.current}\n />\n {selectionPageId === page.id && selectionBox && (\n <SelectionBox selectionBox={selectionBox} />\n )}\n </div>\n </div>\n ))}\n <PageAdder />\n </div>\n </div>\n <div className=\"bottom-actions-container\">\n {isSlidesListType(slidesListType, 'NAVIGATOR') && <SlidesNavigatorToggle />}\n <ZoomControls />\n </div>\n {contextMenuProps\n && (\n <ContextMenu\n exceptionalClasses={['contextMenu-button']}\n height={height}\n item={findItemById(contextMenuProps.id, pages)}\n items={findItemsOnPage(contextMenuProps.pageID, pages)}\n onClickOutside={() => setContextMenuProps(null)}\n position={contextMenuProps.position}\n width={width}\n />\n )}\n </main>\n );\n};\n\nexport default Scene;\n"],"names":["Scene","pages","usePropStore","state","settings","contextMenuProps","useBuilderStore","setContextMenuProps","setGuides","zoom","lastScrollPosition","slidesListType","setOverPage","setOutPage","pageStyles","useRef","pageContainerStyles","viewPortRef","canvasRef","refs","reduce","acc","curr","id","createRef","useKeyboardActions","useMarqueeSelection","selectionBox","selectionPageId","useEffect","forEach","page","current","_pageGuides","pageRef","getBoundingClientRect","height","left","top","width","boundingBox","x","calculateGuidePositions","map","value","y","items","item","scrollTop","reportLayoutHeight","reportLayoutWidth","parseInt","Number","isNaN","zoomToUse","parseFloat","toFixed","transform","transformOrigin","pageOverHandler","useCallback","pageId","pageOutHandler","_jsxs","classNames","_jsx","index","order","toString","position","isSlidesListType","findItemById","findItemsOnPage","pageID"],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import { useTranslatedTexts } from '../../../utils/hooks.js';
2
+ import { usePropStore } from '../../../contexts/PropContext.js';
3
+ import { useBuilderStore } from '../../../contexts/BuilderContext.js';
4
+ import { scrollToTarget } from '../../../utils/functions.js';
5
+ import { jsxs, jsx } from 'react/jsx-runtime';
6
+ import SvgPlus from '../../../assets/svg/plus.svg.js';
7
+
8
+ var AddSlideButton = function AddSlideButton() {
9
+ var _useTranslatedTexts = useTranslatedTexts(),
10
+ ADD_SLIDE = _useTranslatedTexts.ADD_SLIDE;
11
+
12
+ var onPageAdd = usePropStore(function (state) {
13
+ return state.onPageAdd;
14
+ });
15
+ var visiblePageOrder = useBuilderStore(function (state) {
16
+ return state.visiblePageOrder;
17
+ });
18
+ var setVisiblePageOrder = useBuilderStore(function (state) {
19
+ return state.setVisiblePageOrder;
20
+ });
21
+
22
+ var onAddItemClick = function onAddItemClick() {
23
+ var newPageIndex = visiblePageOrder + 1;
24
+ onPageAdd(newPageIndex);
25
+ scrollToTarget("pageActions-id-".concat(newPageIndex), 350);
26
+ window.setTimeout(function () {
27
+ setVisiblePageOrder(newPageIndex);
28
+ }, 100);
29
+ };
30
+
31
+ return /*#__PURE__*/jsxs("button", {
32
+ className: "slides-navigator-add-item",
33
+ onClick: onAddItemClick,
34
+ title: ADD_SLIDE,
35
+ type: "button",
36
+ children: [/*#__PURE__*/jsx(SvgPlus, {
37
+ className: "slides-navigator-add-item-icon"
38
+ }), /*#__PURE__*/jsx("span", {
39
+ className: "slides-navigator-add-item-text",
40
+ children: ADD_SLIDE
41
+ })]
42
+ });
43
+ };
44
+
45
+ export default AddSlideButton;
46
+ //# sourceMappingURL=AddSlideButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AddSlideButton.js","sources":["../../../../../src/components/Panels/SlidesNavigator/AddSlideButton.js"],"sourcesContent":["import * as icons from '../../../utils/icons';\nimport { useTranslatedTexts } from '../../../utils/hooks';\nimport { usePropStore } from '../../../contexts/PropContext';\nimport { useBuilderStore } from '../../../contexts/BuilderContext';\nimport { scrollToTarget } from '../../../utils/functions';\n\nconst AddSlideButton = () => {\n const { ADD_SLIDE } = useTranslatedTexts();\n const onPageAdd = usePropStore(state => state.onPageAdd);\n const visiblePageOrder = useBuilderStore(state => state.visiblePageOrder);\n const setVisiblePageOrder = useBuilderStore(state => state.setVisiblePageOrder);\n\n const onAddItemClick = () => {\n const newPageIndex = visiblePageOrder + 1;\n onPageAdd(newPageIndex);\n scrollToTarget(`pageActions-id-${newPageIndex}`, 350);\n window.setTimeout(() => {\n setVisiblePageOrder(newPageIndex);\n }, 100);\n };\n\n return (\n <button\n className=\"slides-navigator-add-item\"\n onClick={onAddItemClick}\n title={ADD_SLIDE}\n type=\"button\"\n >\n <icons.plus className=\"slides-navigator-add-item-icon\" />\n <span className=\"slides-navigator-add-item-text\">{ADD_SLIDE}</span>\n </button>\n );\n};\n\nexport default AddSlideButton;\n"],"names":["AddSlideButton","useTranslatedTexts","ADD_SLIDE","onPageAdd","usePropStore","state","visiblePageOrder","useBuilderStore","setVisiblePageOrder","onAddItemClick","newPageIndex","scrollToTarget","window","setTimeout","_jsxs","_jsx","icons.plus"],"mappings":";;;;;;;IAMMA,cAAc,GAAG,SAAjBA,cAAiB,GAAM;AAC3B,4BAAsBC,kBAAkB,EAAxC;AAAA,MAAQC,SAAR,uBAAQA,SAAR;;AACA,MAAMC,SAAS,GAAGC,YAAY,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACF,SAAV;AAAA,GAAN,CAA9B;AACA,MAAMG,gBAAgB,GAAGC,eAAe,CAAC,UAAAF,KAAK;AAAA,WAAIA,KAAK,CAACC,gBAAV;AAAA,GAAN,CAAxC;AACA,MAAME,mBAAmB,GAAGD,eAAe,CAAC,UAAAF,KAAK;AAAA,WAAIA,KAAK,CAACG,mBAAV;AAAA,GAAN,CAA3C;;AAEA,MAAMC,cAAc,GAAG,SAAjBA,cAAiB,GAAM;AAC3B,QAAMC,YAAY,GAAGJ,gBAAgB,GAAG,CAAxC;AACAH,IAAAA,SAAS,CAACO,YAAD,CAAT;AACAC,IAAAA,cAAc,0BAAmBD,YAAnB,GAAmC,GAAnC,CAAd;AACAE,IAAAA,MAAM,CAACC,UAAP,CAAkB,YAAM;AACtBL,MAAAA,mBAAmB,CAACE,YAAD,CAAnB;AACD,KAFD,EAEG,GAFH;AAGD,GAPD;;AASA,sBACEI;AACE,IAAA,SAAS,EAAC,2BADZ;AAEE,IAAA,OAAO,EAAEL,cAFX;AAGE,IAAA,KAAK,EAAEP,SAHT;AAIE,IAAA,IAAI,EAAC,QAJP;AAAA,4BAMEa,IAACC,OAAD;AAAY,MAAA,SAAS,EAAC;AAAtB,MANF,eAOED;AAAM,MAAA,SAAS,EAAC,gCAAhB;AAAA,gBAAkDb;AAAlD,MAPF;AAAA,IADF;AAWD;;;;"}
@@ -2,14 +2,15 @@ import 'core-js/modules/es.array.map.js';
2
2
  import { forwardRef, useState, useCallback, useMemo, useImperativeHandle } from 'react';
3
3
  import { useFloating, offset, flip, shift, autoPlacement, autoUpdate, useClick, useDismiss, useRole, useFocus, useInteractions, useId, FloatingPortal } from '@floating-ui/react';
4
4
  import PropTypes from 'prop-types';
5
- import { useTranslatedTexts } from '../../../../utils/hooks.js';
5
+ import { useResizeListener, useTranslatedTexts } from '../../../../utils/hooks.js';
6
6
  import { usePropStore } from '../../../../contexts/PropContext.js';
7
- import { scrollToTarget } from '../../../../utils/functions.js';
8
7
  import { useBuilderStore } from '../../../../contexts/BuilderContext.js';
9
- import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
8
+ import MoreMenuOverlay from '../MoreMenuOverlay.js';
9
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
10
10
  import SvgPlus from '../../../../assets/svg/plus.svg.js';
11
11
  import SvgDuplicate from '../../../../assets/svg/duplicate.svg.js';
12
12
  import SvgTrash from '../../../../assets/svg/trash.svg.js';
13
+ import SvgEllipsisVertical from '../../../../assets/svg/ellipsis-vertical.svg.js';
13
14
 
14
15
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
15
16
 
@@ -28,9 +29,11 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
28
29
  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; }
29
30
 
30
31
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
32
+ var PAGE_ACTIONS_SYNC_MS = 100;
31
33
  var SlideItemMoreMenu = /*#__PURE__*/forwardRef(function (_ref, ref) {
32
34
  var order = _ref.order,
33
- page = _ref.page;
35
+ page = _ref.page,
36
+ selected = _ref.selected;
34
37
 
35
38
  var _useState = useState(false),
36
39
  _useState2 = _slicedToArray(_useState, 2),
@@ -48,6 +51,8 @@ var SlideItemMoreMenu = /*#__PURE__*/forwardRef(function (_ref, ref) {
48
51
  var setVisiblePageOrder = useBuilderStore(function (state) {
49
52
  return state.setVisiblePageOrder;
50
53
  });
54
+ var viewportWidth = useResizeListener(true);
55
+ var isMobile = viewportWidth > 0 && viewportWidth < 480;
51
56
  var openCardContextMenu = useCallback(function (e) {
52
57
  var useMousePointer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
53
58
  if (isOpen) return;
@@ -131,7 +136,8 @@ var SlideItemMoreMenu = /*#__PURE__*/forwardRef(function (_ref, ref) {
131
136
  var focus = useFocus(context);
132
137
 
133
138
  var _useInteractions = useInteractions([click, dismiss, role, focus]),
134
- getFloatingProps = _useInteractions.getFloatingProps;
139
+ getFloatingProps = _useInteractions.getFloatingProps,
140
+ getReferenceProps = _useInteractions.getReferenceProps;
135
141
 
136
142
  var headingId = useId();
137
143
  var customStyles = {
@@ -141,32 +147,52 @@ var SlideItemMoreMenu = /*#__PURE__*/forwardRef(function (_ref, ref) {
141
147
  transform: 'translate(9px, 0px)',
142
148
  zIndex: '99999'
143
149
  };
144
- var nextPageIndex = order + 1;
150
+ var mobileCustomStyles = {
151
+ animation: 'fadeInTop 200ms ease-in-out forwards',
152
+ borderBottomLeftRadius: '0px',
153
+ borderBottomRightRadius: '0px',
154
+ borderTopLeftRadius: '16px',
155
+ borderTopRightRadius: '16px',
156
+ bottom: 0,
157
+ boxShadow: 'rgba(37, 45, 91, 0.04) 0px 2px 4px 0px, rgba(84, 95, 111, 0.16) 0px 8px 16px 0px',
158
+ height: 'auto',
159
+ left: '0',
160
+ maxHeight: '100%',
161
+ maxWidth: '100%',
162
+ padding: '8px',
163
+ position: 'fixed',
164
+ top: 'unset',
165
+ transform: 'translate(0px, 0px)',
166
+ width: '100vw',
167
+ willChange: 'unset',
168
+ zIndex: '99999'
169
+ };
145
170
  var handleAddNewSlide = useCallback(function () {
146
- onPageAdd(nextPageIndex);
147
- onAnEventTrigger('addNewPageFromSlides', nextPageIndex);
171
+ var nextPageOrder = order + 1;
172
+ onPageAdd(nextPageOrder);
173
+ onAnEventTrigger('addNewPageFromSlides', nextPageOrder);
148
174
  setIsOpen(false);
149
- setTimeout(function () {
150
- setVisiblePageOrder(nextPageIndex);
151
- scrollToTarget("pageActions-id-".concat(nextPageIndex), 350);
152
- }, 100);
153
- }, [onPageAdd, nextPageIndex, onAnEventTrigger, setVisiblePageOrder]);
175
+ window.setTimeout(function () {
176
+ setVisiblePageOrder(nextPageOrder);
177
+ }, PAGE_ACTIONS_SYNC_MS);
178
+ }, [onPageAdd, order, onAnEventTrigger, setVisiblePageOrder]);
154
179
  var handleDuplicateSlide = useCallback(function () {
180
+ var nextPageOrder = order + 1;
155
181
  onPageDuplicate(page);
156
- onAnEventTrigger('duplicatePage', nextPageIndex);
182
+ onAnEventTrigger('duplicatePage', nextPageOrder);
157
183
  setIsOpen(false);
158
- setTimeout(function () {
159
- setVisiblePageOrder(nextPageIndex);
160
- scrollToTarget("pageActions-id-".concat(nextPageIndex), 350);
161
- }, 100);
162
- }, [onPageDuplicate, page, nextPageIndex, onAnEventTrigger, setVisiblePageOrder]);
184
+ window.setTimeout(function () {
185
+ setVisiblePageOrder(nextPageOrder);
186
+ }, PAGE_ACTIONS_SYNC_MS);
187
+ }, [onPageDuplicate, page, order, onAnEventTrigger, setVisiblePageOrder]);
163
188
  var handleDeleteSlide = useCallback(function () {
164
189
  onPageRemove(page.id);
165
190
  onAnEventTrigger('removePageFromSlides', page.id);
166
191
  setIsOpen(false);
167
- setTimeout(function () {
168
- setVisiblePageOrder(Math.max(order - 1, 1));
169
- }, 100);
192
+ var visibleOrderAfterDelete = Math.max(order - 1, 1);
193
+ window.setTimeout(function () {
194
+ setVisiblePageOrder(visibleOrderAfterDelete);
195
+ }, PAGE_ACTIONS_SYNC_MS);
170
196
  }, [page, order, onPageRemove, onAnEventTrigger, setVisiblePageOrder]);
171
197
  var schemaOptions = useMemo(function () {
172
198
  return [{
@@ -210,16 +236,32 @@ var SlideItemMoreMenu = /*#__PURE__*/forwardRef(function (_ref, ref) {
210
236
  handleOpenMenu: handleOpenMenu
211
237
  };
212
238
  }, [handleOpenMenu]);
213
- return /*#__PURE__*/jsx(Fragment, {
214
- children: isOpen && /*#__PURE__*/jsx(FloatingPortal, {
215
- children: /*#__PURE__*/jsx("div", _objectSpread(_objectSpread({
239
+
240
+ var styles = _objectSpread(_objectSpread({}, floatingStyles), isMobile ? mobileCustomStyles : customStyles);
241
+
242
+ return /*#__PURE__*/jsxs(Fragment, {
243
+ children: [isMobile && selected && /*#__PURE__*/jsx("button", _objectSpread(_objectSpread({
244
+ type: "button"
245
+ }, getReferenceProps()), {}, {
246
+ ref: refs.setReference,
247
+ className: "slides-navigator-context-menu-button",
248
+ "data-testid": "more-menu-button-".concat(page.id),
249
+ children: /*#__PURE__*/jsx(SvgEllipsisVertical, {
250
+ style: {
251
+ flexShrink: 0,
252
+ height: '16px',
253
+ width: '14px'
254
+ }
255
+ })
256
+ })), isOpen && /*#__PURE__*/jsxs(FloatingPortal, {
257
+ children: [/*#__PURE__*/jsx(MoreMenuOverlay, {}), /*#__PURE__*/jsx("div", _objectSpread(_objectSpread({
216
258
  ref: refs.setFloating,
217
259
  alignItems: "start",
218
260
  "aria-labelledby": headingId,
219
261
  className: "slides-navigator-context-menu",
220
262
  direction: "column",
221
263
  justifyContent: "start",
222
- style: _objectSpread(_objectSpread({}, floatingStyles), customStyles)
264
+ style: styles
223
265
  }, getFloatingProps()), {}, {
224
266
  children: /*#__PURE__*/jsx("div", {
225
267
  className: "slides-navigator-context-menu-items",
@@ -236,15 +278,16 @@ var SlideItemMoreMenu = /*#__PURE__*/forwardRef(function (_ref, ref) {
236
278
  }, schemaOption.id);
237
279
  })
238
280
  })
239
- }))
240
- })
281
+ }))]
282
+ })]
241
283
  });
242
284
  });
243
285
  SlideItemMoreMenu.propTypes = {
244
286
  order: PropTypes.number.isRequired,
245
287
  page: PropTypes.shape({
246
288
  id: PropTypes.string.isRequired
247
- }).isRequired
289
+ }).isRequired,
290
+ selected: PropTypes.bool.isRequired
248
291
  };
249
292
 
250
293
  export default SlideItemMoreMenu;