@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
package/CHANGELOG.md CHANGED
@@ -2,6 +2,30 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
4
4
 
5
+ ## [3.6.3](https://github.com/jotform/dnd-builder/compare/v3.6.2...v3.6.3) (2026-04-09)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * **dnd-builder:** fix mobile context handling ([83a9845](https://github.com/jotform/dnd-builder/commit/83a98457eedb793e540881c3eee65007724e7d4c))
11
+ * **dnd-builder:** slide item functionality fixes and more menu improvements ([5e799c6](https://github.com/jotform/dnd-builder/commit/5e799c6863f400105ebd3f7dd41ed863dd92dbd1))
12
+
13
+ ## [3.6.2](https://github.com/jotform/dnd-builder/compare/v3.6.0...v3.6.2) (2026-04-07)
14
+
15
+
16
+ ### Bug Fixes
17
+
18
+ * **dnd-builder:** enable text edit in double click ([78c134b](https://github.com/jotform/dnd-builder/commit/78c134b2b9b9c9730114c55001755560272baced))
19
+ * **dnd-builder:** improve panel management and slide item interactions ([b7366f5](https://github.com/jotform/dnd-builder/commit/b7366f5a73e783bfbacf5989678ecabb8506888a))
20
+ * **dnd-builder:** page actions visibility changes ([2ce60e4](https://github.com/jotform/dnd-builder/commit/2ce60e46ad84c9ae37feb244120055943b276cb2))
21
+
22
+ ## [3.6.1](https://github.com/jotform/dnd-builder/compare/v3.6.0...v3.6.1) (2026-04-07)
23
+
24
+
25
+ ### Bug Fixes
26
+
27
+ * **dnd-builder:** enable rich text edit in double click ([78c134b](https://github.com/jotform/dnd-builder/commit/78c134b2b9b9c9730114c55001755560272baced))
28
+
5
29
  ## [3.6.0](https://github.com/jotform/dnd-builder/compare/v3.5.6...v3.6.0) (2026-04-06)
6
30
 
7
31
 
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+
5
+ var _path;
6
+
7
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
8
+
9
+ function SvgEllipsisVertical(props) {
10
+ return /*#__PURE__*/React.createElement("svg", _extends({
11
+ xmlns: "http://www.w3.org/2000/svg",
12
+ fill: "currentColor",
13
+ viewBox: "0 0 24 24"
14
+ }, props), _path || (_path = /*#__PURE__*/React.createElement("path", {
15
+ fillRule: "evenodd",
16
+ d: "M12 7a2.5 2.5 0 110-5 2.5 2.5 0 010 5zm0 7.5a2.5 2.5 0 110-5 2.5 2.5 0 010 5zm-2.5 5a2.5 2.5 0 105 0 2.5 2.5 0 00-5 0z",
17
+ clipRule: "evenodd"
18
+ })));
19
+ }
20
+
21
+ module.exports = SvgEllipsisVertical;
22
+ //# sourceMappingURL=ellipsis-vertical.svg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ellipsis-vertical.svg.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;"}
@@ -74,11 +74,6 @@ var BuilderWrapper = function BuilderWrapper(_ref) {
74
74
  var selectedPageIndexReference = isSlidesPanelOpen ? 0 : -1;
75
75
  hooks.usePageVisibility(handlePageVisibility, pageCount, selectedPageIndexReference);
76
76
  hooks.useFitZoom();
77
- React.useEffect(function () {
78
- if (functions.slidesAsNavigator(slidesListType)) {
79
- setIsSlidesNavigatorOpen(true);
80
- }
81
- }, [slidesListType, setIsSlidesNavigatorOpen]);
82
77
  React.useEffect(function () {
83
78
  if (!decidedWhichPanelToOpen.current) {
84
79
  if (pageCount > 1) {
@@ -86,20 +81,28 @@ var BuilderWrapper = function BuilderWrapper(_ref) {
86
81
  setIsLeftPanelOpen(false);
87
82
  }
88
83
 
84
+ if (functions.isSlidesListType(slidesListType, 'NAVIGATOR')) {
85
+ setIsSlidesNavigatorOpen(true);
86
+ }
87
+
89
88
  setIsSlidesPanelOpen(shouldShowRightPanelInitially);
90
89
  } else {
91
90
  if (isSlidesPanelOpen) {
92
91
  setIsSlidesPanelOpen(false);
93
92
  }
94
93
 
94
+ if (functions.isSlidesListType(slidesListType, 'NAVIGATOR') && isSlidesNavigatorOpen) {
95
+ setIsSlidesNavigatorOpen(false);
96
+ }
97
+
95
98
  setIsLeftPanelOpen(true);
96
99
  }
97
100
 
98
101
  decidedWhichPanelToOpen.current = true;
99
102
  }
100
- }, [pageCount, isLeftPanelOpen, isSlidesPanelOpen, isSlidesNavigatorOpen, setIsLeftPanelOpen, setIsSlidesPanelOpen, setIsSlidesNavigatorOpen, shouldShowRightPanelInitially]);
103
+ }, [pageCount, isLeftPanelOpen, isSlidesPanelOpen, isSlidesNavigatorOpen, setIsLeftPanelOpen, setIsSlidesPanelOpen, setIsSlidesNavigatorOpen, shouldShowRightPanelInitially, slidesListType]);
101
104
  return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
102
- children: [functions.slidesAsNavigator(slidesListType) && /*#__PURE__*/jsxRuntime.jsx(SlidesNavigator, {}), /*#__PURE__*/jsxRuntime.jsx(ReportWrapper, {
105
+ children: [functions.isSlidesListType(slidesListType, 'NAVIGATOR') && /*#__PURE__*/jsxRuntime.jsx(SlidesNavigator, {}), /*#__PURE__*/jsxRuntime.jsx(ReportWrapper, {
103
106
  mode: "customize",
104
107
  children: children
105
108
  })]
@@ -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,5 +1,6 @@
1
1
  'use strict';
2
2
 
3
+ require('core-js/modules/es.array.concat.js');
3
4
  require('core-js/modules/es.array.find.js');
4
5
  require('core-js/modules/es.array.find-index.js');
5
6
  var PropTypes = require('prop-types');
@@ -18,6 +19,18 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
18
19
 
19
20
  var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
20
21
 
22
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
23
+
24
+ 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."); }
25
+
26
+ 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); }
27
+
28
+ 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; }
29
+
30
+ 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; }
31
+
32
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
33
+
21
34
  var PageActions = function PageActions(_ref) {
22
35
  var _ref$order = _ref.order,
23
36
  order = _ref$order === void 0 ? 0 : _ref$order,
@@ -55,6 +68,24 @@ var PageActions = function PageActions(_ref) {
55
68
  var isSelectedItemExists = React.useMemo(function () {
56
69
  return (selectedItems === null || selectedItems === void 0 ? void 0 : selectedItems.length) > 0;
57
70
  }, [selectedItems]);
71
+ var setOverPage = BuilderContext.useBuilderStore(function (state) {
72
+ return state.setOverPage;
73
+ });
74
+ var setOutPage = BuilderContext.useBuilderStore(function (state) {
75
+ return state.setOutPage;
76
+ });
77
+ var overPageId = BuilderContext.useBuilderStore(function (state) {
78
+ return state.overedPageId;
79
+ });
80
+
81
+ var _useState = React.useState(isSelectedItemExists),
82
+ _useState2 = _slicedToArray(_useState, 2),
83
+ toolbarDisabled = _useState2[0],
84
+ setToolbarDisabled = _useState2[1];
85
+
86
+ React.useEffect(function () {
87
+ setToolbarDisabled(isSelectedItemExists);
88
+ }, [isSelectedItemExists]);
58
89
 
59
90
  var pageSettings = function pageSettings() {
60
91
  setEditedElement("p_".concat(pageID));
@@ -82,6 +113,24 @@ var PageActions = function PageActions(_ref) {
82
113
  onAnEventTrigger('duplicatePage', order + 1);
83
114
  };
84
115
 
116
+ var isOverPage = React.useMemo(function () {
117
+ return overPageId === pageID;
118
+ }, [overPageId, pageID]);
119
+ var pageToolbarMouseOver = React.useCallback(function () {
120
+ if (isSelectedItemExists) {
121
+ setToolbarDisabled(false);
122
+ }
123
+
124
+ setOverPage(pageID);
125
+ }, [pageID, setToolbarDisabled, setOverPage, isSelectedItemExists]);
126
+ var pageToolbarMouseOut = React.useCallback(function () {
127
+ if (isSelectedItemExists) {
128
+ setToolbarDisabled(true);
129
+ }
130
+
131
+ setOutPage(null);
132
+ }, [setOutPage, setToolbarDisabled, isSelectedItemExists]);
133
+
85
134
  var _useTranslatedTexts = hooks.useTranslatedTexts(),
86
135
  ADD_NEW_PAGE = _useTranslatedTexts.ADD_NEW_PAGE,
87
136
  DUPLICATE_PAGE = _useTranslatedTexts.DUPLICATE_PAGE;
@@ -94,7 +143,9 @@ var PageActions = function PageActions(_ref) {
94
143
  className: "jfReport-pageInfo d-flex j-center",
95
144
  id: "pageActions-id-".concat(order),
96
145
  children: /*#__PURE__*/jsxRuntime.jsxs("div", {
97
- className: "floatingController page-toolbar".concat(isSelectedItemExists ? ' disabled' : ''),
146
+ className: "floatingController page-toolbar".concat(toolbarDisabled ? ' disabled' : '').concat(isOverPage ? ' active' : ' inactive'),
147
+ onMouseOut: pageToolbarMouseOut,
148
+ onMouseOver: pageToolbarMouseOver,
98
149
  children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
99
150
  className: "floatingController-container",
100
151
  children: [/*#__PURE__*/jsxRuntime.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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"}
@@ -22,7 +22,6 @@ var DraggableLayer = require('./DraggableLayer.js');
22
22
  var useKeyboardActions = require('../../utils/useKeyboardActions.js');
23
23
  var useMarqueeSelection = require('../../utils/useMarqueeSelection.js');
24
24
  var SlidesNavigatorToggle = require('./SlidesNavigatorToggle.js');
25
- var panel = require('../../constants/panel.js');
26
25
  var jsxRuntime = require('react/jsx-runtime');
27
26
 
28
27
  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; }
@@ -56,6 +55,12 @@ var Scene = function Scene() {
56
55
  var slidesListType = BuilderContext.useBuilderStore(function (state) {
57
56
  return state.slidesListType;
58
57
  });
58
+ var setOverPage = BuilderContext.useBuilderStore(function (state) {
59
+ return state.setOverPage;
60
+ });
61
+ var setOutPage = BuilderContext.useBuilderStore(function (state) {
62
+ return state.setOutPage;
63
+ });
59
64
  var pageStyles = React.useRef({});
60
65
  var pageContainerStyles = React.useRef({});
61
66
  var viewPortRef = React.useRef({});
@@ -146,8 +151,13 @@ var Scene = function Scene() {
146
151
  transformOrigin: '0 0',
147
152
  width: width
148
153
  };
154
+ var pageOverHandler = React.useCallback(function (pageId) {
155
+ setOverPage(pageId);
156
+ }, [setOverPage]);
157
+ var pageOutHandler = React.useCallback(function () {
158
+ setOutPage(null);
159
+ }, [setOutPage]);
149
160
  return /*#__PURE__*/jsxRuntime.jsxs("main", {
150
- // Builder.js
151
161
  className: classNames.mainWrapper,
152
162
  children: [/*#__PURE__*/jsxRuntime.jsx(DraggableLayer, {
153
163
  pageRefs: refs.current
@@ -159,38 +169,38 @@ var Scene = function Scene() {
159
169
  ref: canvasRef,
160
170
  className: classNames.canvas,
161
171
  children: [pages.map(function (page, index) {
162
- return (
163
- /*#__PURE__*/
164
- // TODO: This part can be moved into a different component
165
- jsxRuntime.jsxs(React.Fragment, {
166
- children: [/*#__PURE__*/jsxRuntime.jsx(PageActions, {
167
- order: page.order,
168
- pageID: page.id
169
- }), /*#__PURE__*/jsxRuntime.jsxs("div", {
170
- ref: refs.current[page.id],
171
- className: classNames.page,
172
- "data-id": page.id,
173
- "data-order": page.order,
174
- id: "presentation-page-".concat(page.id.toString()),
175
- style: _objectSpread(_objectSpread({}, pageStyles.current), {}, {
176
- position: 'relative'
177
- }),
178
- children: [/*#__PURE__*/jsxRuntime.jsx(Page, {
179
- items: page.items,
180
- page: page,
181
- pageIndex: index,
182
- style: pageContainerStyles.current
183
- }), selectionPageId === page.id && selectionBox && /*#__PURE__*/jsxRuntime.jsx(SelectionBox, {
184
- selectionBox: selectionBox
185
- })]
186
- }, "page_".concat(page.id))]
187
- }, page.id)
188
- );
172
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
173
+ onMouseOut: pageOutHandler,
174
+ onMouseOver: function onMouseOver() {
175
+ return pageOverHandler(page.id);
176
+ },
177
+ children: [/*#__PURE__*/jsxRuntime.jsx(PageActions, {
178
+ order: page.order,
179
+ pageID: page.id
180
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
181
+ ref: refs.current[page.id],
182
+ className: classNames.page,
183
+ "data-id": page.id,
184
+ "data-order": page.order,
185
+ id: "presentation-page-".concat(page.id.toString()),
186
+ style: _objectSpread(_objectSpread({}, pageStyles.current), {}, {
187
+ position: 'relative'
188
+ }),
189
+ children: [/*#__PURE__*/jsxRuntime.jsx(Page, {
190
+ items: page.items,
191
+ page: page,
192
+ pageIndex: index,
193
+ style: pageContainerStyles.current
194
+ }), selectionPageId === page.id && selectionBox && /*#__PURE__*/jsxRuntime.jsx(SelectionBox, {
195
+ selectionBox: selectionBox
196
+ })]
197
+ }, "page_".concat(page.id))]
198
+ }, page.id);
189
199
  }), /*#__PURE__*/jsxRuntime.jsx(PageAdder, {})]
190
200
  })
191
201
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
192
202
  className: "bottom-actions-container",
193
- children: [slidesListType === panel.SLIDES_LIST_TYPE_MAP.NAVIGATOR && /*#__PURE__*/jsxRuntime.jsx(SlidesNavigatorToggle, {}), /*#__PURE__*/jsxRuntime.jsx(ZoomControls, {})]
203
+ children: [functions.isSlidesListType(slidesListType, 'NAVIGATOR') && /*#__PURE__*/jsxRuntime.jsx(SlidesNavigatorToggle, {}), /*#__PURE__*/jsxRuntime.jsx(ZoomControls, {})]
194
204
  }), contextMenuProps && /*#__PURE__*/jsxRuntime.jsx(ContextMenu, {
195
205
  exceptionalClasses: ['contextMenu-button'],
196
206
  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","Fragment","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,48 @@
1
+ 'use strict';
2
+
3
+ var hooks = require('../../../utils/hooks.js');
4
+ var PropContext = require('../../../contexts/PropContext.js');
5
+ var BuilderContext = require('../../../contexts/BuilderContext.js');
6
+ var functions = require('../../../utils/functions.js');
7
+ var jsxRuntime = require('react/jsx-runtime');
8
+ var plus = require('../../../assets/svg/plus.svg.js');
9
+
10
+ var AddSlideButton = function AddSlideButton() {
11
+ var _useTranslatedTexts = hooks.useTranslatedTexts(),
12
+ ADD_SLIDE = _useTranslatedTexts.ADD_SLIDE;
13
+
14
+ var onPageAdd = PropContext.usePropStore(function (state) {
15
+ return state.onPageAdd;
16
+ });
17
+ var visiblePageOrder = BuilderContext.useBuilderStore(function (state) {
18
+ return state.visiblePageOrder;
19
+ });
20
+ var setVisiblePageOrder = BuilderContext.useBuilderStore(function (state) {
21
+ return state.setVisiblePageOrder;
22
+ });
23
+
24
+ var onAddItemClick = function onAddItemClick() {
25
+ var newPageIndex = visiblePageOrder + 1;
26
+ onPageAdd(newPageIndex);
27
+ functions.scrollToTarget("pageActions-id-".concat(newPageIndex), 350);
28
+ window.setTimeout(function () {
29
+ setVisiblePageOrder(newPageIndex);
30
+ }, 100);
31
+ };
32
+
33
+ return /*#__PURE__*/jsxRuntime.jsxs("button", {
34
+ className: "slides-navigator-add-item",
35
+ onClick: onAddItemClick,
36
+ title: ADD_SLIDE,
37
+ type: "button",
38
+ children: [/*#__PURE__*/jsxRuntime.jsx(plus, {
39
+ className: "slides-navigator-add-item-icon"
40
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
41
+ className: "slides-navigator-add-item-text",
42
+ children: ADD_SLIDE
43
+ })]
44
+ });
45
+ };
46
+
47
+ module.exports = AddSlideButton;
48
+ //# 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,wBAAkB,EAAxC;AAAA,MAAQC,SAAR,uBAAQA,SAAR;;AACA,MAAMC,SAAS,GAAGC,wBAAY,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACF,SAAV;AAAA,GAAN,CAA9B;AACA,MAAMG,gBAAgB,GAAGC,8BAAe,CAAC,UAAAF,KAAK;AAAA,WAAIA,KAAK,CAACC,gBAAV;AAAA,GAAN,CAAxC;AACA,MAAME,mBAAmB,GAAGD,8BAAe,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,wBAAc,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,eAACC,IAAD;AAAY,MAAA,SAAS,EAAC;AAAtB,MANF,eAOED;AAAM,MAAA,SAAS,EAAC,gCAAhB;AAAA,gBAAkDb;AAAlD,MAPF;AAAA,IADF;AAWD;;;;"}