@jotforminc/dnd-builder 3.7.0 → 3.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/lib/cjs/assets/svg/angles-left.svg.js +22 -0
  3. package/lib/cjs/assets/svg/angles-left.svg.js.map +1 -0
  4. package/lib/cjs/components/Builder/Scene.js +1 -4
  5. package/lib/cjs/components/Builder/Scene.js.map +1 -1
  6. package/lib/cjs/components/Builder/SlidesNavigatorToggle.js +5 -2
  7. package/lib/cjs/components/Builder/SlidesNavigatorToggle.js.map +1 -1
  8. package/lib/cjs/components/Builder/ZoomControls.js +7 -2
  9. package/lib/cjs/components/Builder/ZoomControls.js.map +1 -1
  10. package/lib/cjs/components/Preview/StaticScene.js +33 -8
  11. package/lib/cjs/components/Preview/StaticScene.js.map +1 -1
  12. package/lib/cjs/constants/zoom.js +5 -1
  13. package/lib/cjs/constants/zoom.js.map +1 -1
  14. package/lib/cjs/contexts/BuilderContext.js +2 -3
  15. package/lib/cjs/contexts/BuilderContext.js.map +1 -1
  16. package/lib/cjs/contexts/Providers.js +1 -6
  17. package/lib/cjs/contexts/Providers.js.map +1 -1
  18. package/lib/cjs/styles/_jfReportsFloatings.scss +31 -0
  19. package/lib/cjs/styles/_jfReportsViewModes.scss +1 -1
  20. package/lib/cjs/utils/icons.js +2 -0
  21. package/lib/cjs/utils/icons.js.map +1 -1
  22. package/lib/esm/assets/svg/angles-left.svg.js +20 -0
  23. package/lib/esm/assets/svg/angles-left.svg.js.map +1 -0
  24. package/lib/esm/components/Builder/Scene.js +1 -4
  25. package/lib/esm/components/Builder/Scene.js.map +1 -1
  26. package/lib/esm/components/Builder/SlidesNavigatorToggle.js +5 -2
  27. package/lib/esm/components/Builder/SlidesNavigatorToggle.js.map +1 -1
  28. package/lib/esm/components/Builder/ZoomControls.js +9 -4
  29. package/lib/esm/components/Builder/ZoomControls.js.map +1 -1
  30. package/lib/esm/components/Preview/StaticScene.js +33 -8
  31. package/lib/esm/components/Preview/StaticScene.js.map +1 -1
  32. package/lib/esm/constants/zoom.js +4 -2
  33. package/lib/esm/constants/zoom.js.map +1 -1
  34. package/lib/esm/contexts/BuilderContext.js +2 -3
  35. package/lib/esm/contexts/BuilderContext.js.map +1 -1
  36. package/lib/esm/contexts/Providers.js +1 -6
  37. package/lib/esm/contexts/Providers.js.map +1 -1
  38. package/lib/esm/styles/_jfReportsFloatings.scss +31 -0
  39. package/lib/esm/styles/_jfReportsViewModes.scss +1 -1
  40. package/lib/esm/utils/icons.js +1 -0
  41. package/lib/esm/utils/icons.js.map +1 -1
  42. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,15 @@
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.7.1](https://github.com/jotform/dnd-builder/compare/v3.7.0...v3.7.1) (2026-04-20)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * **dnd-builder:** zoom actions some updates ([a33afc5](https://github.com/jotform/dnd-builder/commit/a33afc52dacdf5187fe572428c4ed707b36ab3f3))
11
+ * improve zoom behavior and responsiveness in preview mode ([cfbca2b](https://github.com/jotform/dnd-builder/commit/cfbca2b8131159068ccfc81ce0aae8389f596a64))
12
+ * remove comment in css ([6784c70](https://github.com/jotform/dnd-builder/commit/6784c70caf91d7708cbc1d1d09b51e02d05d2799))
13
+
5
14
  ## [3.7.0](https://github.com/jotform/dnd-builder/compare/v3.6.5...v3.7.0) (2026-04-20)
6
15
 
7
16
 
@@ -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 SvgAnglesLeft(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: "M11.707 8.707a1 1 0 00-1.414-1.414l-4 4a1 1 0 000 1.414l4 4a1 1 0 001.414-1.414L8.414 12l3.293-3.293zm6 0a1 1 0 00-1.414-1.414l-4 4a1 1 0 000 1.414l4 4a1 1 0 001.414-1.414L14.414 12l3.293-3.293z",
17
+ clipRule: "evenodd"
18
+ })));
19
+ }
20
+
21
+ module.exports = SvgAnglesLeft;
22
+ //# sourceMappingURL=angles-left.svg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"angles-left.svg.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;"}
@@ -61,9 +61,6 @@ var Scene = function Scene() {
61
61
  var setOutPage = BuilderContext.useBuilderStore(function (state) {
62
62
  return state.setOutPage;
63
63
  });
64
- var shouldShowZoomControls = BuilderContext.useBuilderStore(function (state) {
65
- return state.shouldShowZoomControls;
66
- });
67
64
  var pageStyles = React.useRef({});
68
65
  var pageContainerStyles = React.useRef({});
69
66
  var viewPortRef = React.useRef({});
@@ -203,7 +200,7 @@ var Scene = function Scene() {
203
200
  })
204
201
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
205
202
  className: "bottom-actions-container",
206
- children: [functions.isSlidesListType(slidesListType, 'NAVIGATOR') && /*#__PURE__*/jsxRuntime.jsx(SlidesNavigatorToggle, {}), shouldShowZoomControls && /*#__PURE__*/jsxRuntime.jsx(ZoomControls, {})]
203
+ children: [functions.isSlidesListType(slidesListType, 'NAVIGATOR') && /*#__PURE__*/jsxRuntime.jsx(SlidesNavigatorToggle, {}), /*#__PURE__*/jsxRuntime.jsx(ZoomControls, {})]
207
204
  }), contextMenuProps && /*#__PURE__*/jsxRuntime.jsx(ContextMenu, {
208
205
  exceptionalClasses: ['contextMenu-button'],
209
206
  height: height,
@@ -1 +1 @@
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 const shouldShowZoomControls = useBuilderStore(state => state.shouldShowZoomControls);\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 {shouldShowZoomControls && <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","shouldShowZoomControls","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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"}
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4BMA,KAAK,GAAG,SAARA,KAAQ,GAAM;AAClB,MAAMC,KAAK,GAAGC,wBAAY,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACF,KAAV;AAAA,GAAN,CAA1B;AACA,MAAMG,QAAQ,GAAGF,wBAAY,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACC,QAAV;AAAA,GAAN,CAA7B;AACA,MAAMC,gBAAgB,GAAGC,8BAAe,CAAC,UAAAH,KAAK;AAAA,WAAIA,KAAK,CAACE,gBAAV;AAAA,GAAN,CAAxC;AACA,MAAME,mBAAmB,GAAGD,8BAAe,CAAC,UAAAH,KAAK;AAAA,WAAIA,KAAK,CAACI,mBAAV;AAAA,GAAN,CAA3C;AACA,MAAMC,SAAS,GAAGF,8BAAe,CAAC,UAAAH,KAAK;AAAA,WAAIA,KAAK,CAACK,SAAV;AAAA,GAAN,CAAjC;AACA,MAAMC,IAAI,GAAGH,8BAAe,CAAC,UAAAH,KAAK;AAAA,WAAIA,KAAK,CAACM,IAAV;AAAA,GAAN,CAA5B;AACA,MAAMC,kBAAkB,GAAGJ,8BAAe,CAAC,UAAAH,KAAK;AAAA,WAAIA,KAAK,CAACO,kBAAV;AAAA,GAAN,CAA1C;AACA,MAAMC,cAAc,GAAGL,8BAAe,CAAC,UAAAH,KAAK;AAAA,WAAIA,KAAK,CAACQ,cAAV;AAAA,GAAN,CAAtC;AACA,MAAMC,WAAW,GAAGN,8BAAe,CAAC,UAAAH,KAAK;AAAA,WAAIA,KAAK,CAACS,WAAV;AAAA,GAAN,CAAnC;AACA,MAAMC,UAAU,GAAGP,8BAAe,CAAC,UAAAH,KAAK;AAAA,WAAIA,KAAK,CAACU,UAAV;AAAA,GAAN,CAAlC;AAEA,MAAMC,UAAU,GAAGC,YAAM,CAAC,EAAD,CAAzB;AACA,MAAMC,mBAAmB,GAAGD,YAAM,CAAC,EAAD,CAAlC;AACA,MAAME,WAAW,GAAGF,YAAM,CAAC,EAAD,CAA1B;AACA,MAAMG,SAAS,GAAGH,YAAM,CAAC,IAAD,CAAxB;AAEA;;AACA,MAAMI,IAAI,GAAGJ,YAAM,CAACd,KAAK,CAACmB,MAAN,CAAa,UAACC,GAAD,EAAMC,IAAN,EAAe;AAC9CD,IAAAA,GAAG,CAACC,IAAI,CAACC,EAAN,CAAH,gBAAeC,eAAS,CAAC,IAAD,CAAxB;AACA,WAAOH,GAAP;AACD,GAHmB,EAGjB,EAHiB,CAAD,CAAnB,CAlBkB;;AAwBlBI,EAAAA,kBAAkB;;AAClB,6BAA0CC,mBAAmB,CAACR,SAAD,CAA7D;AAAA,MAAQS,YAAR,wBAAQA,YAAR;AAAA,MAAsBC,eAAtB,wBAAsBA,eAAtB,CAzBkB;;;AA4BlBC,EAAAA,eAAS,CAAC,YAAM;AACd5B,IAAAA,KAAK,CAAC6B,OAAN,CAAc,UAAAC,IAAI,EAAI;AACpB,UAAI,CAACZ,IAAI,CAACa,OAAL,CAAaD,IAAI,CAACR,EAAlB,CAAL,EAA4B;AAC1BJ,QAAAA,IAAI,CAACa,OAAL,CAAaD,IAAI,CAACR,EAAlB,iBAAwBC,eAAS,CAAC,IAAD,CAAjC;AACD;AACF,KAJD;AAKD,GANQ,EAMN,CAACvB,KAAD,CANM,CAAT,CA5BkB;;AAqClB4B,EAAAA,eAAS,CAAC,YAAM;AACdrB,IAAAA,SAAS,CAACP,KAAK,CAACmB,MAAN,CAAa,UAACC,GAAD,EAAMU,IAAN,EAAe;AACpC,UAAME,WAAW,GAAG,EAApB;AACA,UAAMC,OAAO,GAAGf,IAAI,CAACa,OAAL,CAAaD,IAAI,CAACR,EAAlB,CAAhB;;AACA,UAAIW,OAAO,IAAIA,OAAO,CAACF,OAAvB,EAAgC;AAC9B,oCAEIE,OAAO,CAACF,OAAR,CAAgBG,qBAAhB,EAFJ;AAAA,YACEC,OADF,yBACEA,MADF;AAAA,YACUC,IADV,yBACUA,IADV;AAAA,YACgBC,GADhB,yBACgBA,GADhB;AAAA,YACqBC,MADrB,yBACqBA,KADrB;;AAGA,YAAMC,WAAW,GAAG;AAClBJ,UAAAA,MAAM,EAANA,OADkB;AACVC,UAAAA,IAAI,EAAJA,IADU;AACJC,UAAAA,GAAG,EAAHA,GADI;AACCC,UAAAA,KAAK,EAALA;AADD,SAApB;AAGAN,QAAAA,WAAW,CAACO,WAAZ,GAA0B;AACxBC,UAAAA,CAAC,EAAEC,iCAAuB,CAACF,WAAD,EAAc,GAAd,CAAvB,CAA0CG,GAA1C,CAA8C,UAAAC,KAAK;AAAA,mBAAIA,KAAK,GAAGJ,WAAW,CAACH,IAAxB;AAAA,WAAnD,CADqB;AAExBQ,UAAAA,CAAC,EAAEH,iCAAuB,CAACF,WAAD,EAAc,GAAd,CAAvB,CAA0CG,GAA1C,CAA8C,UAAAC,KAAK;AAAA,mBAAIA,KAAK,GAAGJ,WAAW,CAACF,GAAxB;AAAA,WAAnD;AAFqB,SAA1B;AAIAP,QAAAA,IAAI,CAACe,KAAL,CAAWhB,OAAX,CAAmB,UAAAiB,IAAI,EAAI;AACzBd,UAAAA,WAAW,CAACc,IAAI,CAACxB,EAAN,CAAX,GAAuB;AACrBkB,YAAAA,CAAC,EAAEC,iCAAuB,CAACK,IAAD,EAAO,GAAP,EAAYtC,IAAZ,CADL;AAErBoC,YAAAA,CAAC,EAAEH,iCAAuB,CAACK,IAAD,EAAO,GAAP,EAAYtC,IAAZ;AAFL,WAAvB;AAID,SALD;AAMD;;AACDY,MAAAA,GAAG,CAACU,IAAI,CAACR,EAAN,CAAH,GAAeU,WAAf;AACA,aAAOZ,GAAP;AACD,KAvBS,EAuBP,EAvBO,CAAD,CAAT;AAwBD,GAzBQ,EAyBN,CAACpB,KAAD,EAAQQ,IAAR,EAAcD,SAAd,CAzBM,CAAT,CArCkB;;AAiElBqB,EAAAA,eAAS,CAAC,YAAM;AACd,QAAIZ,WAAW,CAACe,OAAhB,EAAyB;AACvBf,MAAAA,WAAW,CAACe,OAAZ,CAAoBgB,SAApB,GAAgCtC,kBAAhC;AACD;AACF,GAJQ,EAIN,CAACA,kBAAD,CAJM,CAAT;AAMA,8BAA+DN,QAA/D,CAAQ6C,kBAAR;AAAA,MAAQA,kBAAR,sCAA6B,GAA7B;AAAA,+BAA+D7C,QAA/D,CAAkC8C,iBAAlC;AAAA,MAAkCA,iBAAlC,uCAAsD,IAAtD,0BAvEkB;;AA0ElB,MAAIX,KAAK,GAAGY,QAAQ,CAACD,iBAAD,EAAoB,EAApB,CAApB;AACA,MAAId,MAAM,GAAGe,QAAQ,CAACF,kBAAD,EAAqB,EAArB,CAArB;AACAV,EAAAA,KAAK,GAAGa,MAAM,CAACC,KAAP,CAAad,KAAb,IAAsB,CAAtB,GAA0BA,KAAlC;AACAH,EAAAA,MAAM,GAAGgB,MAAM,CAACC,KAAP,CAAajB,MAAb,IAAuB,CAAvB,GAA2BA,MAApC;AACA,MAAMkB,SAAS,GAAGF,MAAM,CAACC,KAAP,CAAa5C,IAAb,IAAqB,CAArB,GAAyBA,IAA3C;AAEAK,EAAAA,UAAU,CAACkB,OAAX,GAAqB;AACnBI,IAAAA,MAAM,EAAEmB,UAAU,CAAC,CAACnB,MAAM,GAAGkB,SAAV,EAAqBE,OAArB,CAA6B,CAA7B,CAAD,CADC;AAEnBjB,IAAAA,KAAK,EAAEgB,UAAU,CAAC,CAAChB,KAAK,GAAGe,SAAT,EAAoBE,OAApB,CAA4B,CAA5B,CAAD;AAFE,GAArB;AAIAxC,EAAAA,mBAAmB,CAACgB,OAApB,GAA8B;AAC5BI,IAAAA,MAAM,EAANA,MAD4B;AAE5BqB,IAAAA,SAAS,kBAAWH,SAAX,MAFmB;AAG5BI,IAAAA,eAAe,EAAE,KAHW;AAI5BnB,IAAAA,KAAK,EAALA;AAJ4B,GAA9B;AAOA,MAAMoB,eAAe,GAAGC,iBAAW,CAAC,UAAAC,MAAM,EAAI;AAC5CjD,IAAAA,WAAW,CAACiD,MAAD,CAAX;AACD,GAFkC,EAEhC,CAACjD,WAAD,CAFgC,CAAnC;AAIA,MAAMkD,cAAc,GAAGF,iBAAW,CAAC,YAAM;AACvC/C,IAAAA,UAAU,CAAC,IAAD,CAAV;AACD,GAFiC,EAE/B,CAACA,UAAD,CAF+B,CAAlC;AAIA,sBACEkD;AACE,IAAA,SAAS,EAAEC,sBADb;AAAA,4BAGEC,eAAC,cAAD;AACE,MAAA,QAAQ,EAAE9C,IAAI,CAACa;AADjB,MAHF,eAMEiC;AACE,MAAA,GAAG,EAAEhD,WADP;AAEE,MAAA,SAAS,EAAE+C,mBAFb;AAGE,mBAAWvD,IAHb;AAAA,6BAKEsD;AACE,QAAA,GAAG,EAAE7C,SADP;AAEE,QAAA,SAAS,EAAE8C,iBAFb;AAAA,mBAIG/D,KAAK,CAAC0C,GAAN,CAAU,UAACZ,IAAD,EAAOmC,KAAP;AAAA,8BACTH;AAEE,YAAA,UAAU,EAAED,cAFd;AAGE,YAAA,WAAW,EAAE;AAAA,qBAAMH,eAAe,CAAC5B,IAAI,CAACR,EAAN,CAArB;AAAA,aAHf;AAAA,oCAKE0C,eAAC,WAAD;AACE,cAAA,KAAK,EAAElC,IAAI,CAACoC,KADd;AAEE,cAAA,MAAM,EAAEpC,IAAI,CAACR;AAFf,cALF,eASEwC;AAEE,cAAA,GAAG,EAAE5C,IAAI,CAACa,OAAL,CAAaD,IAAI,CAACR,EAAlB,CAFP;AAGE,cAAA,SAAS,EAAEyC,eAHb;AAIE,yBAASjC,IAAI,CAACR,EAJhB;AAKE,4BAAYQ,IAAI,CAACoC,KALnB;AAME,cAAA,EAAE,8BAAuBpC,IAAI,CAACR,EAAL,CAAQ6C,QAAR,EAAvB,CANJ;AAOE,cAAA,KAAK,kCAAOtD,UAAU,CAACkB,OAAlB;AAA2BqC,gBAAAA,QAAQ,EAAE;AAArC,gBAPP;AAAA,sCASEJ,eAAC,IAAD;AACE,gBAAA,KAAK,EAAElC,IAAI,CAACe,KADd;AAEE,gBAAA,IAAI,EAAEf,IAFR;AAGE,gBAAA,SAAS,EAAEmC,KAHb;AAIE,gBAAA,KAAK,EAAElD,mBAAmB,CAACgB;AAJ7B,gBATF,EAeGJ,eAAe,KAAKG,IAAI,CAACR,EAAzB,IAA+BI,YAA/B,iBACCsC,eAAC,YAAD;AAAc,gBAAA,YAAY,EAAEtC;AAA5B,gBAhBJ;AAAA,8BACeI,IAAI,CAACR,EADpB,EATF;AAAA,aACOQ,IAAI,CAACR,EADZ,CADS;AAAA,SAAV,CAJH,eAmCE0C,eAAC,SAAD,KAnCF;AAAA;AALF,MANF,eAiDEF;AAAK,MAAA,SAAS,EAAC,0BAAf;AAAA,iBACGO,0BAAgB,CAAC3D,cAAD,EAAiB,WAAjB,CAAhB,iBAAiDsD,eAAC,qBAAD,KADpD,eAEEA,eAAC,YAAD,KAFF;AAAA,MAjDF,EAqDG5D,gBAAgB,iBAEb4D,eAAC,WAAD;AACE,MAAA,kBAAkB,EAAE,CAAC,oBAAD,CADtB;AAEE,MAAA,MAAM,EAAE7B,MAFV;AAGE,MAAA,IAAI,EAAEmC,sBAAY,CAAClE,gBAAgB,CAACkB,EAAlB,EAAsBtB,KAAtB,CAHpB;AAIE,MAAA,KAAK,EAAEuE,yBAAe,CAACnE,gBAAgB,CAACoE,MAAlB,EAA0BxE,KAA1B,CAJxB;AAKE,MAAA,cAAc,EAAE;AAAA,eAAMM,mBAAmB,CAAC,IAAD,CAAzB;AAAA,OALlB;AAME,MAAA,QAAQ,EAAEF,gBAAgB,CAACgE,QAN7B;AAOE,MAAA,KAAK,EAAE9B;AAPT,MAvDN;AAAA,IADF;AAoED;;;;"}
@@ -3,6 +3,7 @@
3
3
  var BuilderContext = require('../../contexts/BuilderContext.js');
4
4
  var hooks = require('../../utils/hooks.js');
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
+ var anglesLeft = require('../../assets/svg/angles-left.svg.js');
6
7
  var slides = require('../../assets/svg/slides.svg.js');
7
8
 
8
9
  var SlidesNavigatorToggle = function SlidesNavigatorToggle() {
@@ -29,8 +30,10 @@ var SlidesNavigatorToggle = function SlidesNavigatorToggle() {
29
30
  onClick: slidesNavigatorToggleHandler,
30
31
  title: SLIDES_NAVIGATOR_TOGGLE,
31
32
  type: "button",
32
- children: /*#__PURE__*/jsxRuntime.jsx(slides, {
33
- className: "toolbar-icon"
33
+ children: isSlidesNavigatorOpen ? /*#__PURE__*/jsxRuntime.jsx(anglesLeft, {
34
+ className: "toolbar-icon angles-left"
35
+ }) : /*#__PURE__*/jsxRuntime.jsx(slides, {
36
+ className: "toolbar-icon slides"
34
37
  })
35
38
  })
36
39
  })
@@ -1 +1 @@
1
- {"version":3,"file":"SlidesNavigatorToggle.js","sources":["../../../../src/components/Builder/SlidesNavigatorToggle.js"],"sourcesContent":["import { useBuilderStore } from '../../contexts/BuilderContext';\nimport { useTranslatedTexts } from '../../utils/hooks';\nimport * as icons from '../../utils/icons';\n\nconst SlidesNavigatorToggle = () => {\n const setIsSlidesNavigatorOpen = useBuilderStore(state => state.setIsSlidesNavigatorOpen);\n const isSlidesNavigatorOpen = useBuilderStore(state => state.isSlidesNavigatorOpen);\n const { SLIDES_NAVIGATOR_TOGGLE } = useTranslatedTexts();\n\n const slidesNavigatorToggleHandler = () => {\n setIsSlidesNavigatorOpen(!isSlidesNavigatorOpen);\n };\n\n return (\n <div className=\"floatingController slides-navigator-toggle\">\n <div className=\"floatingController-container\">\n <button\n className=\"controllerItem\"\n onClick={slidesNavigatorToggleHandler}\n title={SLIDES_NAVIGATOR_TOGGLE}\n type=\"button\"\n >\n <icons.slides className=\"toolbar-icon\" />\n </button>\n </div>\n </div>\n );\n};\n\nexport default SlidesNavigatorToggle;\n"],"names":["SlidesNavigatorToggle","setIsSlidesNavigatorOpen","useBuilderStore","state","isSlidesNavigatorOpen","useTranslatedTexts","SLIDES_NAVIGATOR_TOGGLE","slidesNavigatorToggleHandler","_jsx","icons.slides"],"mappings":";;;;;;;IAIMA,qBAAqB,GAAG,SAAxBA,qBAAwB,GAAM;AAClC,MAAMC,wBAAwB,GAAGC,8BAAe,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACF,wBAAV;AAAA,GAAN,CAAhD;AACA,MAAMG,qBAAqB,GAAGF,8BAAe,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACC,qBAAV;AAAA,GAAN,CAA7C;;AACA,4BAAoCC,wBAAkB,EAAtD;AAAA,MAAQC,uBAAR,uBAAQA,uBAAR;;AAEA,MAAMC,4BAA4B,GAAG,SAA/BA,4BAA+B,GAAM;AACzCN,IAAAA,wBAAwB,CAAC,CAACG,qBAAF,CAAxB;AACD,GAFD;;AAIA,sBACEI;AAAK,IAAA,SAAS,EAAC,4CAAf;AAAA,2BACEA;AAAK,MAAA,SAAS,EAAC,8BAAf;AAAA,6BACEA;AACE,QAAA,SAAS,EAAC,gBADZ;AAEE,QAAA,OAAO,EAAED,4BAFX;AAGE,QAAA,KAAK,EAAED,uBAHT;AAIE,QAAA,IAAI,EAAC,QAJP;AAAA,+BAMEE,eAACC,MAAD;AAAc,UAAA,SAAS,EAAC;AAAxB;AANF;AADF;AADF,IADF;AAcD;;;;"}
1
+ {"version":3,"file":"SlidesNavigatorToggle.js","sources":["../../../../src/components/Builder/SlidesNavigatorToggle.js"],"sourcesContent":["import { useBuilderStore } from '../../contexts/BuilderContext';\nimport { useTranslatedTexts } from '../../utils/hooks';\nimport * as icons from '../../utils/icons';\n\nconst SlidesNavigatorToggle = () => {\n const setIsSlidesNavigatorOpen = useBuilderStore(state => state.setIsSlidesNavigatorOpen);\n const isSlidesNavigatorOpen = useBuilderStore(state => state.isSlidesNavigatorOpen);\n const { SLIDES_NAVIGATOR_TOGGLE } = useTranslatedTexts();\n\n const slidesNavigatorToggleHandler = () => {\n setIsSlidesNavigatorOpen(!isSlidesNavigatorOpen);\n };\n\n return (\n <div className=\"floatingController slides-navigator-toggle\">\n <div className=\"floatingController-container\">\n <button\n className=\"controllerItem\"\n onClick={slidesNavigatorToggleHandler}\n title={SLIDES_NAVIGATOR_TOGGLE}\n type=\"button\"\n >\n {isSlidesNavigatorOpen ? <icons.anglesLeft className=\"toolbar-icon angles-left\" /> : <icons.slides className=\"toolbar-icon slides\" />}\n </button>\n </div>\n </div>\n );\n};\n\nexport default SlidesNavigatorToggle;\n"],"names":["SlidesNavigatorToggle","setIsSlidesNavigatorOpen","useBuilderStore","state","isSlidesNavigatorOpen","useTranslatedTexts","SLIDES_NAVIGATOR_TOGGLE","slidesNavigatorToggleHandler","_jsx","icons.anglesLeft","icons.slides"],"mappings":";;;;;;;;IAIMA,qBAAqB,GAAG,SAAxBA,qBAAwB,GAAM;AAClC,MAAMC,wBAAwB,GAAGC,8BAAe,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACF,wBAAV;AAAA,GAAN,CAAhD;AACA,MAAMG,qBAAqB,GAAGF,8BAAe,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACC,qBAAV;AAAA,GAAN,CAA7C;;AACA,4BAAoCC,wBAAkB,EAAtD;AAAA,MAAQC,uBAAR,uBAAQA,uBAAR;;AAEA,MAAMC,4BAA4B,GAAG,SAA/BA,4BAA+B,GAAM;AACzCN,IAAAA,wBAAwB,CAAC,CAACG,qBAAF,CAAxB;AACD,GAFD;;AAIA,sBACEI;AAAK,IAAA,SAAS,EAAC,4CAAf;AAAA,2BACEA;AAAK,MAAA,SAAS,EAAC,8BAAf;AAAA,6BACEA;AACE,QAAA,SAAS,EAAC,gBADZ;AAEE,QAAA,OAAO,EAAED,4BAFX;AAGE,QAAA,KAAK,EAAED,uBAHT;AAIE,QAAA,IAAI,EAAC,QAJP;AAAA,kBAMGF,qBAAqB,gBAAGI,eAACC,UAAD;AAAkB,UAAA,SAAS,EAAC;AAA5B,UAAH,gBAA+DD,eAACE,MAAD;AAAc,UAAA,SAAS,EAAC;AAAxB;AANvF;AADF;AADF,IADF;AAcD;;;;"}
@@ -20,6 +20,9 @@ var ZoomControls = function ZoomControls() {
20
20
  var zoom$1 = BuilderContext.useBuilderStore(function (state) {
21
21
  return state.zoom;
22
22
  });
23
+ var resizedWidth = hooks.useResizeListener();
24
+ var minZoom = resizedWidth < 768 ? zoom.ZOOM_MOBILE_MIN : zoom.ZOOM_MIN;
25
+ var maxZoom = resizedWidth < 768 ? zoom.ZOOM_MOBILE_MAX : zoom.ZOOM_MAX;
23
26
  var onAnEventTrigger = PropContext.usePropStore(function (state) {
24
27
  return state.onAnEventTrigger;
25
28
  });
@@ -34,7 +37,7 @@ var ZoomControls = function ZoomControls() {
34
37
  var decreaseZoom = function decreaseZoom() {
35
38
  onAnEventTrigger('zoomOut', 'report');
36
39
 
37
- if (zoom$1 > zoom.ZOOM_STEP + zoom.ZOOM_MIN) {
40
+ if (zoom$1 > minZoom) {
38
41
  setZoom(parseFloat((zoom$1 - zoom.ZOOM_STEP).toFixed(1)), reportLayoutWidth);
39
42
  }
40
43
  };
@@ -42,7 +45,7 @@ var ZoomControls = function ZoomControls() {
42
45
  var increaseZoom = function increaseZoom() {
43
46
  onAnEventTrigger('zoomIn', 'report');
44
47
 
45
- if (zoom$1 < zoom.ZOOM_MAX) {
48
+ if (zoom$1 < maxZoom) {
46
49
  setZoom(parseFloat((zoom$1 + zoom.ZOOM_STEP).toFixed(1)), reportLayoutWidth);
47
50
  }
48
51
  };
@@ -74,6 +77,7 @@ var ZoomControls = function ZoomControls() {
74
77
  className: "floatingController-container",
75
78
  children: [/*#__PURE__*/jsxRuntime.jsx("button", {
76
79
  className: "controllerItem",
80
+ disabled: zoom$1 === maxZoom,
77
81
  onClick: increaseZoom,
78
82
  title: ZOOM_IN,
79
83
  type: "button",
@@ -85,6 +89,7 @@ var ZoomControls = function ZoomControls() {
85
89
  children: [zoomValue, "%"]
86
90
  }), /*#__PURE__*/jsxRuntime.jsx("button", {
87
91
  className: "controllerItem",
92
+ disabled: zoom$1 === minZoom,
88
93
  onClick: decreaseZoom,
89
94
  title: ZOOM_OUT,
90
95
  type: "button",
@@ -1 +1 @@
1
- {"version":3,"file":"ZoomControls.js","sources":["../../../../src/components/Builder/ZoomControls.js"],"sourcesContent":["import { useMemo } from 'react';\nimport * as icons from '../../utils/icons';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport { usePropStore } from '../../contexts/PropContext';\nimport {\n ZOOM_STEP,\n ZOOM_MIN,\n ZOOM_MAX,\n ZOOM_MULTIPLIER,\n} from '../../constants/zoom';\nimport { useTranslatedTexts } from '../../utils/hooks';\n\nconst ZoomControls = () => {\n const setZoom = useBuilderStore(state => state.setZoom);\n const zoom = useBuilderStore(state => state.zoom);\n\n const onAnEventTrigger = usePropStore(state => state.onAnEventTrigger);\n const settings = usePropStore(state => state.settings);\n\n const { reportLayoutHeight = 794, reportLayoutWidth = 1123 } = settings;\n const decreaseZoom = () => {\n onAnEventTrigger('zoomOut', 'report');\n if (zoom > (ZOOM_STEP + ZOOM_MIN)) {\n setZoom(parseFloat((zoom - ZOOM_STEP).toFixed(1)), reportLayoutWidth);\n }\n };\n const increaseZoom = () => {\n onAnEventTrigger('zoomIn', 'report');\n if (zoom < (ZOOM_MAX)) {\n setZoom(parseFloat((zoom + ZOOM_STEP).toFixed(1)), reportLayoutWidth);\n }\n };\n const fitZoom = () => {\n const { innerHeight, innerWidth } = window;\n const newScale = Math.min(\n (innerWidth - 400) / reportLayoutWidth,\n innerHeight / reportLayoutHeight,\n );\n let newZoom = Math.floor(newScale * 10) / 10;\n if (newZoom < 0.5) newZoom = 0.5;\n if (newZoom > 1) newZoom = 1;\n onAnEventTrigger('fitZoom', 'report');\n setZoom(newZoom, reportLayoutWidth);\n };\n\n const zoomValue = useMemo(() => {\n return Number.isNaN(zoom) ? 100 : (zoom * ZOOM_MULTIPLIER).toFixed(0);\n }, [zoom]);\n\n const { FIT_TO_SCENE, ZOOM_IN, ZOOM_OUT } = useTranslatedTexts();\n\n return (\n <div className=\"floatingController zoom-toolbar\">\n <div className=\"floatingController-container\">\n <button\n className=\"controllerItem\"\n onClick={increaseZoom}\n title={ZOOM_IN}\n type=\"button\"\n >\n <icons.plus className=\"toolbar-icon\" />\n </button>\n <div className=\"controllerIndicator\">\n {zoomValue}\n %\n </div>\n <button\n className=\"controllerItem\"\n onClick={decreaseZoom}\n title={ZOOM_OUT}\n type=\"button\"\n >\n <icons.minus className=\"toolbar-icon\" />\n </button>\n </div>\n <div className=\"floatingController-container\">\n <button\n className=\"controllerItem\"\n onClick={fitZoom}\n title={FIT_TO_SCENE}\n type=\"button\"\n >\n <icons.fit className=\"toolbar-icon\" />\n </button>\n </div>\n </div>\n );\n};\n\nexport default ZoomControls;\n"],"names":["ZoomControls","setZoom","useBuilderStore","state","zoom","onAnEventTrigger","usePropStore","settings","reportLayoutHeight","reportLayoutWidth","decreaseZoom","ZOOM_STEP","ZOOM_MIN","parseFloat","toFixed","increaseZoom","ZOOM_MAX","fitZoom","window","innerHeight","innerWidth","newScale","Math","min","newZoom","floor","zoomValue","useMemo","Number","isNaN","ZOOM_MULTIPLIER","useTranslatedTexts","FIT_TO_SCENE","ZOOM_IN","ZOOM_OUT","_jsxs","_jsx","icons.plus","icons.minus","icons.fit"],"mappings":"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"}
1
+ {"version":3,"file":"ZoomControls.js","sources":["../../../../src/components/Builder/ZoomControls.js"],"sourcesContent":["import { useMemo } from 'react';\nimport * as icons from '../../utils/icons';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport { usePropStore } from '../../contexts/PropContext';\nimport {\n ZOOM_STEP,\n ZOOM_MIN,\n ZOOM_MAX,\n ZOOM_MULTIPLIER,\n ZOOM_MOBILE_MIN,\n ZOOM_MOBILE_MAX,\n} from '../../constants/zoom';\nimport { useResizeListener, useTranslatedTexts } from '../../utils/hooks';\n\nconst ZoomControls = () => {\n const setZoom = useBuilderStore(state => state.setZoom);\n const zoom = useBuilderStore(state => state.zoom);\n const resizedWidth = useResizeListener();\n const minZoom = resizedWidth < 768 ? ZOOM_MOBILE_MIN : ZOOM_MIN;\n const maxZoom = resizedWidth < 768 ? ZOOM_MOBILE_MAX : ZOOM_MAX;\n\n const onAnEventTrigger = usePropStore(state => state.onAnEventTrigger);\n const settings = usePropStore(state => state.settings);\n\n const { reportLayoutHeight = 794, reportLayoutWidth = 1123 } = settings;\n const decreaseZoom = () => {\n onAnEventTrigger('zoomOut', 'report');\n if (zoom > minZoom) {\n setZoom(parseFloat((zoom - ZOOM_STEP).toFixed(1)), reportLayoutWidth);\n }\n };\n const increaseZoom = () => {\n onAnEventTrigger('zoomIn', 'report');\n if (zoom < maxZoom) {\n setZoom(parseFloat((zoom + ZOOM_STEP).toFixed(1)), reportLayoutWidth);\n }\n };\n const fitZoom = () => {\n const { innerHeight, innerWidth } = window;\n const newScale = Math.min(\n (innerWidth - 400) / reportLayoutWidth,\n innerHeight / reportLayoutHeight,\n );\n let newZoom = Math.floor(newScale * 10) / 10;\n if (newZoom < 0.5) newZoom = 0.5;\n if (newZoom > 1) newZoom = 1;\n onAnEventTrigger('fitZoom', 'report');\n setZoom(newZoom, reportLayoutWidth);\n };\n\n const zoomValue = useMemo(() => {\n return Number.isNaN(zoom) ? 100 : (zoom * ZOOM_MULTIPLIER).toFixed(0);\n }, [zoom]);\n\n const { FIT_TO_SCENE, ZOOM_IN, ZOOM_OUT } = useTranslatedTexts();\n\n return (\n <div className=\"floatingController zoom-toolbar\">\n <div className=\"floatingController-container\">\n <button\n className=\"controllerItem\"\n disabled={zoom === maxZoom}\n onClick={increaseZoom}\n title={ZOOM_IN}\n type=\"button\"\n >\n <icons.plus className=\"toolbar-icon\" />\n </button>\n <div className=\"controllerIndicator\">\n {zoomValue}\n %\n </div>\n <button\n className=\"controllerItem\"\n disabled={zoom === minZoom}\n onClick={decreaseZoom}\n title={ZOOM_OUT}\n type=\"button\"\n >\n <icons.minus className=\"toolbar-icon\" />\n </button>\n </div>\n <div className=\"floatingController-container\">\n <button\n className=\"controllerItem\"\n onClick={fitZoom}\n title={FIT_TO_SCENE}\n type=\"button\"\n >\n <icons.fit className=\"toolbar-icon\" />\n </button>\n </div>\n </div>\n );\n};\n\nexport default ZoomControls;\n"],"names":["ZoomControls","setZoom","useBuilderStore","state","zoom","resizedWidth","useResizeListener","minZoom","ZOOM_MOBILE_MIN","ZOOM_MIN","maxZoom","ZOOM_MOBILE_MAX","ZOOM_MAX","onAnEventTrigger","usePropStore","settings","reportLayoutHeight","reportLayoutWidth","decreaseZoom","parseFloat","ZOOM_STEP","toFixed","increaseZoom","fitZoom","window","innerHeight","innerWidth","newScale","Math","min","newZoom","floor","zoomValue","useMemo","Number","isNaN","ZOOM_MULTIPLIER","useTranslatedTexts","FIT_TO_SCENE","ZOOM_IN","ZOOM_OUT","_jsxs","_jsx","icons.plus","icons.minus","icons.fit"],"mappings":"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"}
@@ -3,6 +3,8 @@
3
3
  require('core-js/modules/es.array.concat.js');
4
4
  require('core-js/modules/es.array.map.js');
5
5
  require('core-js/modules/es.array.slice.js');
6
+ require('core-js/modules/es.number.constructor.js');
7
+ require('core-js/modules/es.number.is-nan.js');
6
8
  require('core-js/modules/es.number.to-fixed.js');
7
9
  require('core-js/modules/es.object.to-string.js');
8
10
  require('core-js/modules/es.regexp.to-string.js');
@@ -70,6 +72,8 @@ var StaticScene = function StaticScene(_ref) {
70
72
  reportPageTransition = _settings$reportPageT === void 0 ? 'noAnimation' : _settings$reportPageT;
71
73
  var width = parseInt(reportLayoutWidth, 10);
72
74
  var height = parseInt(reportLayoutHeight, 10);
75
+ var zoomToUse = Number.isNaN(zoom) ? 1 : zoom;
76
+ var isPreviewCssZoom = mode === 'preview';
73
77
  React.useEffect(function () {
74
78
  transformRefs.current = transformRefs.current.slice(0, pages.length);
75
79
  }, [pages.length]);
@@ -89,18 +93,25 @@ var StaticScene = function StaticScene(_ref) {
89
93
  }
90
94
  }, [setZoom]);
91
95
  React.useEffect(function () {
96
+ if (mode !== 'presentation') {
97
+ return;
98
+ }
99
+
92
100
  if (transformRefs.current.length > 0) {
93
101
  for (var i = 0; i < pages.length; i++) {
94
- transformRefs.current[i].centerView(zoom);
102
+ var _transformRefs$curren, _transformRefs$curren2;
103
+
104
+ (_transformRefs$curren = transformRefs.current[i]) === null || _transformRefs$curren === void 0 ? void 0 : (_transformRefs$curren2 = _transformRefs$curren.centerView) === null || _transformRefs$curren2 === void 0 ? void 0 : _transformRefs$curren2.call(_transformRefs$curren, zoom);
95
105
  }
96
106
  }
97
- }, [pages.length, zoom]);
107
+ }, [pages.length, zoom, mode]);
98
108
  var isEnabledZoomControls = (!isFullscreen || isFullscreen && showControlsInFullScreen) && !hideZoom;
99
109
  return /*#__PURE__*/jsxRuntime.jsxs("main", {
100
110
  className: classNames.mainWrapper,
101
111
  children: [/*#__PURE__*/jsxRuntime.jsx("div", _objectSpread(_objectSpread({
102
112
  ref: viewPortRef,
103
- className: classNames.viewport
113
+ className: classNames.viewport,
114
+ "data-zoom": isPreviewCssZoom ? zoom : undefined
104
115
  }, gesture()), {}, {
105
116
  children: /*#__PURE__*/jsxRuntime.jsx("div", {
106
117
  className: "".concat(classNames.canvas, " ").concat(reportPageTransition),
@@ -109,15 +120,26 @@ var StaticScene = function StaticScene(_ref) {
109
120
  var _cNames;
110
121
 
111
122
  var backgroundColor = page.backgroundColor;
112
-
113
- var style = _objectSpread(_objectSpread({}, pageContainerStyles), {}, {
114
- backgroundColor: backgroundColor ? backgroundColor : reportBackgroundColor || '#fff'
123
+ var bg = backgroundColor ? backgroundColor : reportBackgroundColor || '#fff';
124
+ var style = isPreviewCssZoom ? {
125
+ backgroundColor: bg,
126
+ height: height,
127
+ transform: "scale(".concat(zoomToUse, ")"),
128
+ transformOrigin: '0 0',
129
+ width: width
130
+ } : _objectSpread(_objectSpread({}, pageContainerStyles), {}, {
131
+ backgroundColor: bg
115
132
  });
116
-
133
+ var pageOuterStyle = isPreviewCssZoom ? {
134
+ height: parseFloat((height * zoomToUse).toFixed(1)),
135
+ position: 'relative',
136
+ width: parseFloat((width * zoomToUse).toFixed(1))
137
+ } : undefined;
117
138
  return /*#__PURE__*/jsxRuntime.jsx("div", {
118
139
  className: classNames__default['default']((_cNames = {}, _defineProperty(_cNames, classNames.page, true), _defineProperty(_cNames, string.slugify(reportLayout), true), _defineProperty(_cNames, "activePage", index === presentationPage), _cNames)),
119
140
  "data-id": page.id,
120
141
  id: "presentation-page-".concat(page.id.toString()),
142
+ style: pageOuterStyle,
121
143
  children: /*#__PURE__*/jsxRuntime.jsx(StaticPage.StaticPageWithZoomPanPinch, {
122
144
  handleZoom: handleZoom,
123
145
  items: page.items,
@@ -130,7 +152,10 @@ var StaticScene = function StaticScene(_ref) {
130
152
  }, "page_".concat(index.toString()));
131
153
  })
132
154
  })
133
- })), isEnabledZoomControls && /*#__PURE__*/jsxRuntime.jsx(ZoomControls, {})]
155
+ })), isEnabledZoomControls && /*#__PURE__*/jsxRuntime.jsx("div", {
156
+ className: "bottom-actions-container",
157
+ children: /*#__PURE__*/jsxRuntime.jsx(ZoomControls, {})
158
+ })]
134
159
  });
135
160
  };
136
161
 
@@ -1 +1 @@
1
- {"version":3,"file":"StaticScene.js","sources":["../../../../src/components/Preview/StaticScene.js"],"sourcesContent":["import {\n useCallback, useEffect, useMemo, useRef,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport cNames from 'classnames';\nimport * as classNames from '../../constants/classNames';\nimport { StaticPageWithZoomPanPinch } from './StaticPage';\nimport { usePropStore } from '../../contexts/PropContext';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport { slugify } from '../../utils/string';\nimport { usePageTransition } from '../../utils/hooks';\nimport { usePresentationStore } from '../../contexts/PresentationContext';\nimport ZoomControls from '../Builder/ZoomControls';\n\nconst StaticScene = ({\n gesture = () => {},\n hideZoom = false,\n mode = '',\n presentationPage = 0,\n}) => {\n const setZoom = useBuilderStore(state => state.setZoom);\n const zoom = useBuilderStore(state => state.zoom);\n\n const isFullscreen = usePresentationStore(state => state.isFullscreen);\n const showControlsInFullScreen = usePresentationStore(state => state.showControlsInFullScreen);\n\n const settings = usePropStore(state => state.settings);\n const pages = usePropStore(state => state.pages);\n\n const viewPortRef = useRef({});\n const transformRefs = useRef([]);\n\n const {\n reportBackgroundColor,\n reportLayout = 'A4 Landscape',\n reportLayoutHeight = 794,\n reportLayoutWidth = 1123,\n reportPageTransition = 'noAnimation',\n } = settings;\n const width = parseInt(reportLayoutWidth, 10);\n const height = parseInt(reportLayoutHeight, 10);\n\n useEffect(() => {\n transformRefs.current = transformRefs.current.slice(0, pages.length);\n }, [pages.length]);\n\n const pageContainerStyles = useMemo(() => ({\n height,\n width,\n }), [width, height]);\n\n const transitionStyle = usePageTransition(reportPageTransition, presentationPage);\n\n const handleZoom = useCallback(zoomPanPinch => {\n const fixedValue = parseFloat(zoomPanPinch.state.scale.toFixed(2));\n const roundValue = parseFloat((Math.round((fixedValue * 100)) / 100).toFixed(1));\n if (roundValue <= 2 && roundValue >= 0.5) {\n setZoom(roundValue);\n }\n }, [setZoom]);\n\n useEffect(() => {\n if (transformRefs.current.length > 0) {\n for (let i = 0; i < pages.length; i++) {\n transformRefs.current[i].centerView(zoom);\n }\n }\n }, [pages.length, zoom]);\n\n const isEnabledZoomControls = (!isFullscreen || (isFullscreen && showControlsInFullScreen)) && !hideZoom;\n\n return (\n <main\n className={classNames.mainWrapper}\n >\n <div\n ref={viewPortRef}\n className={classNames.viewport}\n {...gesture()}\n >\n <div\n className={`${classNames.canvas} ${reportPageTransition}`}\n style={transitionStyle}\n >\n {pages.map((page, index) => {\n const { backgroundColor } = page;\n const style = {\n ...pageContainerStyles,\n backgroundColor: backgroundColor ? backgroundColor : reportBackgroundColor || '#fff',\n };\n return (\n <div\n key={`page_${index.toString()}`}\n className={cNames({\n [classNames.page]: true,\n [slugify(reportLayout)]: true,\n activePage: index === presentationPage,\n })}\n data-id={page.id}\n id={`presentation-page-${page.id.toString()}`}\n >\n <StaticPageWithZoomPanPinch\n handleZoom={handleZoom}\n items={page.items}\n mode={mode}\n refSetter={element => { transformRefs.current[index] = element; }}\n style={style}\n />\n </div>\n );\n })}\n </div>\n </div>\n {isEnabledZoomControls && <ZoomControls />}\n </main>\n );\n};\n\nStaticScene.propTypes = {\n gesture: PropTypes.func,\n hideZoom: PropTypes.bool,\n mode: PropTypes.string.isRequired,\n presentationPage: PropTypes.number,\n};\n\nexport default StaticScene;\n"],"names":["StaticScene","gesture","hideZoom","mode","presentationPage","setZoom","useBuilderStore","state","zoom","isFullscreen","usePresentationStore","showControlsInFullScreen","settings","usePropStore","pages","viewPortRef","useRef","transformRefs","reportBackgroundColor","reportLayout","reportLayoutHeight","reportLayoutWidth","reportPageTransition","width","parseInt","height","useEffect","current","slice","length","pageContainerStyles","useMemo","transitionStyle","usePageTransition","handleZoom","useCallback","zoomPanPinch","fixedValue","parseFloat","scale","toFixed","roundValue","Math","round","i","centerView","isEnabledZoomControls","_jsxs","classNames","_jsx","map","page","index","backgroundColor","style","cNames","slugify","id","toString","StaticPageWithZoomPanPinch","items","element","propTypes","PropTypes","func","bool","string","isRequired","number"],"mappings":"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"}
1
+ {"version":3,"file":"StaticScene.js","sources":["../../../../src/components/Preview/StaticScene.js"],"sourcesContent":["import {\n useCallback, useEffect, useMemo, useRef,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport cNames from 'classnames';\nimport * as classNames from '../../constants/classNames';\nimport { StaticPageWithZoomPanPinch } from './StaticPage';\nimport { usePropStore } from '../../contexts/PropContext';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport { slugify } from '../../utils/string';\nimport { usePageTransition } from '../../utils/hooks';\nimport { usePresentationStore } from '../../contexts/PresentationContext';\nimport ZoomControls from '../Builder/ZoomControls';\n\nconst StaticScene = ({\n gesture = () => {},\n hideZoom = false,\n mode = '',\n presentationPage = 0,\n}) => {\n const setZoom = useBuilderStore(state => state.setZoom);\n const zoom = useBuilderStore(state => state.zoom);\n\n const isFullscreen = usePresentationStore(state => state.isFullscreen);\n const showControlsInFullScreen = usePresentationStore(state => state.showControlsInFullScreen);\n\n const settings = usePropStore(state => state.settings);\n const pages = usePropStore(state => state.pages);\n\n const viewPortRef = useRef({});\n const transformRefs = useRef([]);\n\n const {\n reportBackgroundColor,\n reportLayout = 'A4 Landscape',\n reportLayoutHeight = 794,\n reportLayoutWidth = 1123,\n reportPageTransition = 'noAnimation',\n } = settings;\n const width = parseInt(reportLayoutWidth, 10);\n const height = parseInt(reportLayoutHeight, 10);\n const zoomToUse = Number.isNaN(zoom) ? 1 : zoom;\n const isPreviewCssZoom = mode === 'preview';\n\n useEffect(() => {\n transformRefs.current = transformRefs.current.slice(0, pages.length);\n }, [pages.length]);\n\n const pageContainerStyles = useMemo(() => ({\n height,\n width,\n }), [width, height]);\n\n const transitionStyle = usePageTransition(reportPageTransition, presentationPage);\n\n const handleZoom = useCallback(zoomPanPinch => {\n const fixedValue = parseFloat(zoomPanPinch.state.scale.toFixed(2));\n const roundValue = parseFloat((Math.round((fixedValue * 100)) / 100).toFixed(1));\n if (roundValue <= 2 && roundValue >= 0.5) {\n setZoom(roundValue);\n }\n }, [setZoom]);\n\n useEffect(() => {\n if (mode !== 'presentation') {\n return;\n }\n if (transformRefs.current.length > 0) {\n for (let i = 0; i < pages.length; i++) {\n transformRefs.current[i]?.centerView?.(zoom);\n }\n }\n }, [pages.length, zoom, mode]);\n\n const isEnabledZoomControls = (!isFullscreen || (isFullscreen && showControlsInFullScreen)) && !hideZoom;\n\n return (\n <main\n className={classNames.mainWrapper}\n >\n <div\n ref={viewPortRef}\n className={classNames.viewport}\n data-zoom={isPreviewCssZoom ? zoom : undefined}\n {...gesture()}\n >\n <div\n className={`${classNames.canvas} ${reportPageTransition}`}\n style={transitionStyle}\n >\n {pages.map((page, index) => {\n const { backgroundColor } = page;\n const bg = backgroundColor ? backgroundColor : reportBackgroundColor || '#fff';\n\n const style = isPreviewCssZoom ? {\n backgroundColor: bg,\n height,\n transform: `scale(${zoomToUse})`,\n transformOrigin: '0 0',\n width,\n } : {\n ...pageContainerStyles,\n backgroundColor: bg,\n };\n\n const pageOuterStyle = isPreviewCssZoom ? {\n height: parseFloat((height * zoomToUse).toFixed(1)),\n position: 'relative',\n width: parseFloat((width * zoomToUse).toFixed(1)),\n } : undefined;\n\n return (\n <div\n key={`page_${index.toString()}`}\n className={cNames({\n [classNames.page]: true,\n [slugify(reportLayout)]: true,\n activePage: index === presentationPage,\n })}\n data-id={page.id}\n id={`presentation-page-${page.id.toString()}`}\n style={pageOuterStyle}\n >\n <StaticPageWithZoomPanPinch\n handleZoom={handleZoom}\n items={page.items}\n mode={mode}\n refSetter={element => { transformRefs.current[index] = element; }}\n style={style}\n />\n </div>\n );\n })}\n </div>\n </div>\n {isEnabledZoomControls && (\n <div className=\"bottom-actions-container\">\n <ZoomControls />\n </div>\n )}\n </main>\n );\n};\n\nStaticScene.propTypes = {\n gesture: PropTypes.func,\n hideZoom: PropTypes.bool,\n mode: PropTypes.string.isRequired,\n presentationPage: PropTypes.number,\n};\n\nexport default StaticScene;\n"],"names":["StaticScene","gesture","hideZoom","mode","presentationPage","setZoom","useBuilderStore","state","zoom","isFullscreen","usePresentationStore","showControlsInFullScreen","settings","usePropStore","pages","viewPortRef","useRef","transformRefs","reportBackgroundColor","reportLayout","reportLayoutHeight","reportLayoutWidth","reportPageTransition","width","parseInt","height","zoomToUse","Number","isNaN","isPreviewCssZoom","useEffect","current","slice","length","pageContainerStyles","useMemo","transitionStyle","usePageTransition","handleZoom","useCallback","zoomPanPinch","fixedValue","parseFloat","scale","toFixed","roundValue","Math","round","i","centerView","isEnabledZoomControls","_jsxs","classNames","_jsx","undefined","map","page","index","backgroundColor","bg","style","transform","transformOrigin","pageOuterStyle","position","cNames","slugify","id","toString","StaticPageWithZoomPanPinch","items","element","propTypes","PropTypes","func","bool","string","isRequired","number"],"mappings":"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"}
@@ -3,12 +3,16 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var ZOOM_MAX = 2;
6
- var ZOOM_MIN = 0.4;
6
+ var ZOOM_MOBILE_MAX = 1;
7
+ var ZOOM_MIN = 0.5;
8
+ var ZOOM_MOBILE_MIN = 0.2;
7
9
  var ZOOM_STEP = 0.1;
8
10
  var ZOOM_MULTIPLIER = 100;
9
11
 
10
12
  exports.ZOOM_MAX = ZOOM_MAX;
11
13
  exports.ZOOM_MIN = ZOOM_MIN;
14
+ exports.ZOOM_MOBILE_MAX = ZOOM_MOBILE_MAX;
15
+ exports.ZOOM_MOBILE_MIN = ZOOM_MOBILE_MIN;
12
16
  exports.ZOOM_MULTIPLIER = ZOOM_MULTIPLIER;
13
17
  exports.ZOOM_STEP = ZOOM_STEP;
14
18
  //# sourceMappingURL=zoom.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zoom.js","sources":["../../../src/constants/zoom.js"],"sourcesContent":["export const ZOOM_MAX = 2;\nexport const ZOOM_MIN = 0.4;\nexport const ZOOM_STEP = 0.1;\nexport const ZOOM_MULTIPLIER = 100;\n"],"names":["ZOOM_MAX","ZOOM_MIN","ZOOM_STEP","ZOOM_MULTIPLIER"],"mappings":";;;;IAAaA,QAAQ,GAAG;IACXC,QAAQ,GAAG;IACXC,SAAS,GAAG;IACZC,eAAe,GAAG;;;;;;;"}
1
+ {"version":3,"file":"zoom.js","sources":["../../../src/constants/zoom.js"],"sourcesContent":["export const ZOOM_MAX = 2;\nexport const ZOOM_MOBILE_MAX = 1;\nexport const ZOOM_MIN = 0.5;\nexport const ZOOM_MOBILE_MIN = 0.2;\nexport const ZOOM_STEP = 0.1;\nexport const ZOOM_MULTIPLIER = 100;\n"],"names":["ZOOM_MAX","ZOOM_MOBILE_MAX","ZOOM_MIN","ZOOM_MOBILE_MIN","ZOOM_STEP","ZOOM_MULTIPLIER"],"mappings":";;;;IAAaA,QAAQ,GAAG;IACXC,eAAe,GAAG;IAClBC,QAAQ,GAAG;IACXC,eAAe,GAAG;IAClBC,SAAS,GAAG;IACZC,eAAe,GAAG;;;;;;;;;"}
@@ -39,7 +39,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
39
39
 
40
40
  var builderStore = function builderStore(props) {
41
41
  return zustand.createStore(function (set, get) {
42
- var _props$shouldShowRigh, _props$shouldShowZoom, _props$defaultZoom;
42
+ var _props$shouldShowRigh, _props$defaultZoom;
43
43
 
44
44
  return {
45
45
  activeElements: props.activeElement || [],
@@ -269,7 +269,7 @@ var builderStore = function builderStore(props) {
269
269
  zoom: zoom
270
270
  });
271
271
 
272
- if (layoutWidth) {
272
+ if (layoutWidth && get().mode === 'customize') {
273
273
  var _document$querySelect = document.querySelector('.jfReport-pane .toolItemWrapper'),
274
274
  paneWidth = _document$querySelect.clientWidth;
275
275
 
@@ -291,7 +291,6 @@ var builderStore = function builderStore(props) {
291
291
  },
292
292
  shouldFitZoomInitially: !!props.defaultZoom,
293
293
  shouldShowRightPanelInitially: (_props$shouldShowRigh = props.shouldShowRightPanelInitially) !== null && _props$shouldShowRigh !== void 0 ? _props$shouldShowRigh : true,
294
- shouldShowZoomControls: (_props$shouldShowZoom = props.shouldShowZoomControls) !== null && _props$shouldShowZoom !== void 0 ? _props$shouldShowZoom : true,
295
294
  slidesListType: props.slidesListType || panel.SLIDES_LIST_TYPE_MAP.PANEL,
296
295
  visiblePageOrder: 1,
297
296
  zoom: (_props$defaultZoom = props.defaultZoom) !== null && _props$defaultZoom !== void 0 ? _props$defaultZoom : 0.8
@@ -1 +1 @@
1
- {"version":3,"file":"BuilderContext.js","sources":["../../../src/contexts/BuilderContext.js"],"sourcesContent":["/* eslint-disable complexity */\nimport { createContext, useContext, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { createStore, useStore } from 'zustand';\nimport { SLIDES_LIST_TYPE_MAP } from '../constants/panel';\n\nconst builderStore = props => {\n return createStore((set, get) => ({\n activeElements: props.activeElement || [],\n activeTab: props.activeTab || { left: 0, right: 0 },\n clickOutsideIgnoreSelectors: props.clickOutsideIgnoreSelectors || [],\n contextMenuProps: props.contextMenuProps || false,\n editedElement: props.editedElement || 'l_layout',\n guides: {},\n isLeftPanelOpen: props.isLeftPanelOpen || false,\n isResize: false,\n isRightPanelOpen: props.isRightPanelOpen || false,\n isSlidesNavigatorOpen: props.isSlidesNavigatorOpen || false,\n isSlidesPanelOpen: props.isSlidesPanelOpen || false,\n isTextEditorOpen: props.isTextEditorOpen || false,\n lastScrollPosition: props.lastScrollPosition || 0,\n matches: {},\n onRightPanelsToggled: props.onRightPanelsToggled || (() => {}),\n overedPageId: props.activePageId || null,\n resetActiveElements: props.resetActiveElements || (() => {\n set({ activeElements: [], editedElement: 'l_layout' });\n }),\n restoreLeftPanelWhenNavigatorCloses: false,\n restoreSlidesNavigatorWhenLeftCloses: false,\n setActiveElements: props.setActiveElements || ((itemID, edit = true, replace = true) => {\n const { activeElements } = get();\n set({\n activeElements: replace ? [itemID] : [...activeElements, itemID],\n ...edit ? { editedElement: !itemID ? 'l_layout' : `i_${itemID}` } : {},\n });\n }),\n setActiveElementsSelection: props.setActiveElementsSelection || (itemIDs => {\n if (!itemIDs || itemIDs.length === 0) {\n set({ activeElements: [], editedElement: 'l_layout' });\n } else if (itemIDs.length === 1) {\n set({\n activeElements: itemIDs,\n editedElement: `i_${itemIDs[0]}`,\n });\n } else {\n set({ activeElements: itemIDs });\n }\n }),\n setActiveTab: props.setActiveTab || ((panel, tabIndex) => {\n const { activeTab } = get();\n set({ activeTab: { ...activeTab, [panel]: tabIndex } });\n }),\n setContextMenuProps: status => {\n set({ contextMenuProps: status });\n },\n setEditedElement: id => {\n set({ editedElement: id });\n },\n setGuides: guides => {\n set({ guides });\n },\n setIsLeftPanelOpen: props.setIsLeftPanelOpen || (status => {\n const {\n isEnoughCanvasSize,\n isSlidesNavigatorOpen: previousIsSlidesNavigatorOpen,\n restoreSlidesNavigatorWhenLeftCloses,\n } = get();\n\n if (status) {\n if (previousIsSlidesNavigatorOpen) {\n set({\n isLeftPanelOpen: true,\n isSlidesNavigatorOpen: false,\n restoreLeftPanelWhenNavigatorCloses: false,\n restoreSlidesNavigatorWhenLeftCloses: true,\n ...!isEnoughCanvasSize && { isRightPanelOpen: false },\n });\n } else {\n set({\n isLeftPanelOpen: true,\n restoreLeftPanelWhenNavigatorCloses: false,\n restoreSlidesNavigatorWhenLeftCloses: false,\n ...!isEnoughCanvasSize && { isRightPanelOpen: false },\n });\n }\n return;\n }\n\n if (restoreSlidesNavigatorWhenLeftCloses) {\n set({\n isLeftPanelOpen: false,\n isSlidesNavigatorOpen: true,\n restoreSlidesNavigatorWhenLeftCloses: false,\n });\n return;\n }\n\n set({ isLeftPanelOpen: false });\n }),\n setIsResize: status => {\n set({ isResize: status });\n },\n setIsRightPanelOpen: props.setIsRightPanelOpen || (status => {\n const { isEnoughCanvasSize, onRightPanelsToggled } = get();\n set({\n isRightPanelOpen: status,\n ...status && !isEnoughCanvasSize && {\n isLeftPanelOpen: false,\n restoreLeftPanelWhenNavigatorCloses: false,\n restoreSlidesNavigatorWhenLeftCloses: false,\n },\n ...status && { isSlidesPanelOpen: false },\n });\n onRightPanelsToggled(status);\n }),\n setIsSlidesNavigatorOpen: status => {\n const {\n isLeftPanelOpen: previousIsLeftPanelOpen,\n restoreLeftPanelWhenNavigatorCloses,\n } = get();\n\n if (status) {\n if (previousIsLeftPanelOpen) {\n set({\n isLeftPanelOpen: false,\n isSlidesNavigatorOpen: true,\n restoreLeftPanelWhenNavigatorCloses: true,\n restoreSlidesNavigatorWhenLeftCloses: false,\n });\n } else {\n set({\n isSlidesNavigatorOpen: true,\n restoreLeftPanelWhenNavigatorCloses: false,\n restoreSlidesNavigatorWhenLeftCloses: false,\n });\n }\n return;\n }\n\n if (restoreLeftPanelWhenNavigatorCloses) {\n set({\n isLeftPanelOpen: true,\n isSlidesNavigatorOpen: false,\n restoreLeftPanelWhenNavigatorCloses: false,\n });\n return;\n }\n\n set({\n isSlidesNavigatorOpen: false,\n restoreSlidesNavigatorWhenLeftCloses: false,\n });\n },\n setIsSlidesPanelOpen: props.setIsSlidesPanelOpen || (status => {\n const { isEnoughCanvasSize, onRightPanelsToggled } = get();\n set({\n isSlidesPanelOpen: status,\n ...status && !isEnoughCanvasSize && {\n isLeftPanelOpen: false,\n restoreLeftPanelWhenNavigatorCloses: false,\n restoreSlidesNavigatorWhenLeftCloses: false,\n },\n ...status && { isRightPanelOpen: false },\n });\n onRightPanelsToggled(status);\n }),\n setIsTextEditorOpen: status => {\n set({ isTextEditorOpen: status });\n },\n setMatches: matches => {\n set({ matches });\n },\n setOutPage: outPageId => {\n set({ overedPageId: outPageId });\n },\n setOverPage: overPageId => {\n set({ overedPageId: overPageId });\n },\n setVisiblePageOrder: visiblePageOrder => {\n set({ visiblePageOrder });\n },\n setZoom: (zoom, layoutWidth) => {\n set({ zoom });\n if (layoutWidth) {\n const { clientWidth: paneWidth } = document.querySelector('.jfReport-pane .toolItemWrapper');\n const sceneWidth = parseInt(layoutWidth, 10) * zoom;\n if (window.innerWidth - sceneWidth + 100 > (paneWidth * 2)) {\n set({ isEnoughCanvasSize: true });\n } else {\n set({\n isEnoughCanvasSize: false,\n isLeftPanelOpen: false,\n restoreLeftPanelWhenNavigatorCloses: false,\n restoreSlidesNavigatorWhenLeftCloses: false,\n });\n }\n }\n },\n shouldFitZoomInitially: !!props.defaultZoom,\n shouldShowRightPanelInitially: props.shouldShowRightPanelInitially ?? true,\n shouldShowZoomControls: props.shouldShowZoomControls ?? true,\n slidesListType: props.slidesListType || SLIDES_LIST_TYPE_MAP.PANEL,\n visiblePageOrder: 1,\n zoom: props.defaultZoom ?? 0.8,\n }));\n};\n\nconst BuilderContext = createContext(null);\n\nexport const BuilderProvider = ({ children, value, ...props }) => {\n const storeRef = useRef();\n if (!storeRef.current) {\n storeRef.current = builderStore(props);\n }\n\n return (\n <BuilderContext.Provider value={storeRef.current}>\n {children}\n </BuilderContext.Provider>\n );\n};\n\nBuilderProvider.propTypes = {\n children: PropTypes.any,\n value: PropTypes.object,\n};\n\nexport const BuilderConsumer = BuilderContext.Consumer;\n\nexport const useBuilderStore = selector => {\n const context = useContext(BuilderContext);\n if (!context) {\n throw new Error('useBuilderStore must be used with BuilderProvider!');\n }\n return useStore(context, selector);\n};\n"],"names":["builderStore","props","createStore","set","get","activeElements","activeElement","activeTab","left","right","clickOutsideIgnoreSelectors","contextMenuProps","editedElement","guides","isLeftPanelOpen","isResize","isRightPanelOpen","isSlidesNavigatorOpen","isSlidesPanelOpen","isTextEditorOpen","lastScrollPosition","matches","onRightPanelsToggled","overedPageId","activePageId","resetActiveElements","restoreLeftPanelWhenNavigatorCloses","restoreSlidesNavigatorWhenLeftCloses","setActiveElements","itemID","edit","replace","setActiveElementsSelection","itemIDs","length","setActiveTab","panel","tabIndex","setContextMenuProps","status","setEditedElement","id","setGuides","setIsLeftPanelOpen","isEnoughCanvasSize","previousIsSlidesNavigatorOpen","setIsResize","setIsRightPanelOpen","setIsSlidesNavigatorOpen","previousIsLeftPanelOpen","setIsSlidesPanelOpen","setIsTextEditorOpen","setMatches","setOutPage","outPageId","setOverPage","overPageId","setVisiblePageOrder","visiblePageOrder","setZoom","zoom","layoutWidth","document","querySelector","paneWidth","clientWidth","sceneWidth","parseInt","window","innerWidth","shouldFitZoomInitially","defaultZoom","shouldShowRightPanelInitially","shouldShowZoomControls","slidesListType","SLIDES_LIST_TYPE_MAP","PANEL","BuilderContext","createContext","BuilderProvider","children","value","storeRef","useRef","current","_jsx","propTypes","PropTypes","any","object","Consumer","useBuilderStore","selector","context","useContext","Error","useStore"],"mappings":"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"}
1
+ {"version":3,"file":"BuilderContext.js","sources":["../../../src/contexts/BuilderContext.js"],"sourcesContent":["/* eslint-disable complexity */\nimport { createContext, useContext, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { createStore, useStore } from 'zustand';\nimport { SLIDES_LIST_TYPE_MAP } from '../constants/panel';\n\nconst builderStore = props => {\n return createStore((set, get) => ({\n activeElements: props.activeElement || [],\n activeTab: props.activeTab || { left: 0, right: 0 },\n clickOutsideIgnoreSelectors: props.clickOutsideIgnoreSelectors || [],\n contextMenuProps: props.contextMenuProps || false,\n editedElement: props.editedElement || 'l_layout',\n guides: {},\n isLeftPanelOpen: props.isLeftPanelOpen || false,\n isResize: false,\n isRightPanelOpen: props.isRightPanelOpen || false,\n isSlidesNavigatorOpen: props.isSlidesNavigatorOpen || false,\n isSlidesPanelOpen: props.isSlidesPanelOpen || false,\n isTextEditorOpen: props.isTextEditorOpen || false,\n lastScrollPosition: props.lastScrollPosition || 0,\n matches: {},\n onRightPanelsToggled: props.onRightPanelsToggled || (() => {}),\n overedPageId: props.activePageId || null,\n resetActiveElements: props.resetActiveElements || (() => {\n set({ activeElements: [], editedElement: 'l_layout' });\n }),\n restoreLeftPanelWhenNavigatorCloses: false,\n restoreSlidesNavigatorWhenLeftCloses: false,\n setActiveElements: props.setActiveElements || ((itemID, edit = true, replace = true) => {\n const { activeElements } = get();\n set({\n activeElements: replace ? [itemID] : [...activeElements, itemID],\n ...edit ? { editedElement: !itemID ? 'l_layout' : `i_${itemID}` } : {},\n });\n }),\n setActiveElementsSelection: props.setActiveElementsSelection || (itemIDs => {\n if (!itemIDs || itemIDs.length === 0) {\n set({ activeElements: [], editedElement: 'l_layout' });\n } else if (itemIDs.length === 1) {\n set({\n activeElements: itemIDs,\n editedElement: `i_${itemIDs[0]}`,\n });\n } else {\n set({ activeElements: itemIDs });\n }\n }),\n setActiveTab: props.setActiveTab || ((panel, tabIndex) => {\n const { activeTab } = get();\n set({ activeTab: { ...activeTab, [panel]: tabIndex } });\n }),\n setContextMenuProps: status => {\n set({ contextMenuProps: status });\n },\n setEditedElement: id => {\n set({ editedElement: id });\n },\n setGuides: guides => {\n set({ guides });\n },\n setIsLeftPanelOpen: props.setIsLeftPanelOpen || (status => {\n const {\n isEnoughCanvasSize,\n isSlidesNavigatorOpen: previousIsSlidesNavigatorOpen,\n restoreSlidesNavigatorWhenLeftCloses,\n } = get();\n\n if (status) {\n if (previousIsSlidesNavigatorOpen) {\n set({\n isLeftPanelOpen: true,\n isSlidesNavigatorOpen: false,\n restoreLeftPanelWhenNavigatorCloses: false,\n restoreSlidesNavigatorWhenLeftCloses: true,\n ...!isEnoughCanvasSize && { isRightPanelOpen: false },\n });\n } else {\n set({\n isLeftPanelOpen: true,\n restoreLeftPanelWhenNavigatorCloses: false,\n restoreSlidesNavigatorWhenLeftCloses: false,\n ...!isEnoughCanvasSize && { isRightPanelOpen: false },\n });\n }\n return;\n }\n\n if (restoreSlidesNavigatorWhenLeftCloses) {\n set({\n isLeftPanelOpen: false,\n isSlidesNavigatorOpen: true,\n restoreSlidesNavigatorWhenLeftCloses: false,\n });\n return;\n }\n\n set({ isLeftPanelOpen: false });\n }),\n setIsResize: status => {\n set({ isResize: status });\n },\n setIsRightPanelOpen: props.setIsRightPanelOpen || (status => {\n const { isEnoughCanvasSize, onRightPanelsToggled } = get();\n set({\n isRightPanelOpen: status,\n ...status && !isEnoughCanvasSize && {\n isLeftPanelOpen: false,\n restoreLeftPanelWhenNavigatorCloses: false,\n restoreSlidesNavigatorWhenLeftCloses: false,\n },\n ...status && { isSlidesPanelOpen: false },\n });\n onRightPanelsToggled(status);\n }),\n setIsSlidesNavigatorOpen: status => {\n const {\n isLeftPanelOpen: previousIsLeftPanelOpen,\n restoreLeftPanelWhenNavigatorCloses,\n } = get();\n\n if (status) {\n if (previousIsLeftPanelOpen) {\n set({\n isLeftPanelOpen: false,\n isSlidesNavigatorOpen: true,\n restoreLeftPanelWhenNavigatorCloses: true,\n restoreSlidesNavigatorWhenLeftCloses: false,\n });\n } else {\n set({\n isSlidesNavigatorOpen: true,\n restoreLeftPanelWhenNavigatorCloses: false,\n restoreSlidesNavigatorWhenLeftCloses: false,\n });\n }\n return;\n }\n\n if (restoreLeftPanelWhenNavigatorCloses) {\n set({\n isLeftPanelOpen: true,\n isSlidesNavigatorOpen: false,\n restoreLeftPanelWhenNavigatorCloses: false,\n });\n return;\n }\n\n set({\n isSlidesNavigatorOpen: false,\n restoreSlidesNavigatorWhenLeftCloses: false,\n });\n },\n setIsSlidesPanelOpen: props.setIsSlidesPanelOpen || (status => {\n const { isEnoughCanvasSize, onRightPanelsToggled } = get();\n set({\n isSlidesPanelOpen: status,\n ...status && !isEnoughCanvasSize && {\n isLeftPanelOpen: false,\n restoreLeftPanelWhenNavigatorCloses: false,\n restoreSlidesNavigatorWhenLeftCloses: false,\n },\n ...status && { isRightPanelOpen: false },\n });\n onRightPanelsToggled(status);\n }),\n setIsTextEditorOpen: status => {\n set({ isTextEditorOpen: status });\n },\n setMatches: matches => {\n set({ matches });\n },\n setOutPage: outPageId => {\n set({ overedPageId: outPageId });\n },\n setOverPage: overPageId => {\n set({ overedPageId: overPageId });\n },\n setVisiblePageOrder: visiblePageOrder => {\n set({ visiblePageOrder });\n },\n setZoom: (zoom, layoutWidth) => {\n set({ zoom });\n if (layoutWidth && get().mode === 'customize') {\n const { clientWidth: paneWidth } = document.querySelector('.jfReport-pane .toolItemWrapper');\n const sceneWidth = parseInt(layoutWidth, 10) * zoom;\n if (window.innerWidth - sceneWidth + 100 > (paneWidth * 2)) {\n set({ isEnoughCanvasSize: true });\n } else {\n set({\n isEnoughCanvasSize: false,\n isLeftPanelOpen: false,\n restoreLeftPanelWhenNavigatorCloses: false,\n restoreSlidesNavigatorWhenLeftCloses: false,\n });\n }\n }\n },\n shouldFitZoomInitially: !!props.defaultZoom,\n shouldShowRightPanelInitially: props.shouldShowRightPanelInitially ?? true,\n slidesListType: props.slidesListType || SLIDES_LIST_TYPE_MAP.PANEL,\n visiblePageOrder: 1,\n zoom: props.defaultZoom ?? 0.8,\n }));\n};\n\nconst BuilderContext = createContext(null);\n\nexport const BuilderProvider = ({ children, value, ...props }) => {\n const storeRef = useRef();\n if (!storeRef.current) {\n storeRef.current = builderStore(props);\n }\n\n return (\n <BuilderContext.Provider value={storeRef.current}>\n {children}\n </BuilderContext.Provider>\n );\n};\n\nBuilderProvider.propTypes = {\n children: PropTypes.any,\n value: PropTypes.object,\n};\n\nexport const BuilderConsumer = BuilderContext.Consumer;\n\nexport const useBuilderStore = selector => {\n const context = useContext(BuilderContext);\n if (!context) {\n throw new Error('useBuilderStore must be used with BuilderProvider!');\n }\n return useStore(context, selector);\n};\n"],"names":["builderStore","props","createStore","set","get","activeElements","activeElement","activeTab","left","right","clickOutsideIgnoreSelectors","contextMenuProps","editedElement","guides","isLeftPanelOpen","isResize","isRightPanelOpen","isSlidesNavigatorOpen","isSlidesPanelOpen","isTextEditorOpen","lastScrollPosition","matches","onRightPanelsToggled","overedPageId","activePageId","resetActiveElements","restoreLeftPanelWhenNavigatorCloses","restoreSlidesNavigatorWhenLeftCloses","setActiveElements","itemID","edit","replace","setActiveElementsSelection","itemIDs","length","setActiveTab","panel","tabIndex","setContextMenuProps","status","setEditedElement","id","setGuides","setIsLeftPanelOpen","isEnoughCanvasSize","previousIsSlidesNavigatorOpen","setIsResize","setIsRightPanelOpen","setIsSlidesNavigatorOpen","previousIsLeftPanelOpen","setIsSlidesPanelOpen","setIsTextEditorOpen","setMatches","setOutPage","outPageId","setOverPage","overPageId","setVisiblePageOrder","visiblePageOrder","setZoom","zoom","layoutWidth","mode","document","querySelector","paneWidth","clientWidth","sceneWidth","parseInt","window","innerWidth","shouldFitZoomInitially","defaultZoom","shouldShowRightPanelInitially","slidesListType","SLIDES_LIST_TYPE_MAP","PANEL","BuilderContext","createContext","BuilderProvider","children","value","storeRef","useRef","current","_jsx","propTypes","PropTypes","any","object","Consumer","useBuilderStore","selector","context","useContext","Error","useStore"],"mappings":"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"}
@@ -12,7 +12,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
12
12
 
13
13
  var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
14
14
 
15
- var _excluded = ["children", "clickOutsideIgnoreSelectors", "defaultZoom", "lastScrollPosition", "mode", "onRightPanelsToggled", "presentationBarActions", "shouldShowRightPanelInitially", "shouldShowZoomControls", "slidesListType", "useFixedPresentationBar"];
15
+ var _excluded = ["children", "clickOutsideIgnoreSelectors", "defaultZoom", "lastScrollPosition", "mode", "onRightPanelsToggled", "presentationBarActions", "shouldShowRightPanelInitially", "slidesListType", "useFixedPresentationBar"];
16
16
 
17
17
  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; }
18
18
 
@@ -33,7 +33,6 @@ var Providers = function Providers(_ref) {
33
33
  onRightPanelsToggled = _ref.onRightPanelsToggled,
34
34
  presentationBarActions = _ref.presentationBarActions,
35
35
  shouldShowRightPanelInitially = _ref.shouldShowRightPanelInitially,
36
- shouldShowZoomControls = _ref.shouldShowZoomControls,
37
36
  slidesListType = _ref.slidesListType,
38
37
  useFixedPresentationBar = _ref.useFixedPresentationBar,
39
38
  props = _objectWithoutProperties(_ref, _excluded);
@@ -44,7 +43,6 @@ var Providers = function Providers(_ref) {
44
43
  lastScrollPosition: lastScrollPosition,
45
44
  onRightPanelsToggled: onRightPanelsToggled,
46
45
  shouldShowRightPanelInitially: shouldShowRightPanelInitially,
47
- shouldShowZoomControls: shouldShowZoomControls,
48
46
  slidesListType: slidesListType,
49
47
  children: /*#__PURE__*/jsxRuntime.jsx(PropContext.PropProvider, _objectSpread(_objectSpread({}, props), {}, {
50
48
  children: mode === 'customize' ? children : /*#__PURE__*/jsxRuntime.jsx(PresentationContext.PresentationProvider, {
@@ -83,9 +81,6 @@ Providers.propTypes = {
83
81
  /** Flag for fixed action bar */
84
82
  shouldShowRightPanelInitially: PropTypes__default['default'].bool,
85
83
 
86
- /** Flag for whether to show the zoom controls */
87
- shouldShowZoomControls: PropTypes__default['default'].bool,
88
-
89
84
  /** Flag for whether to show the right panel initially */
90
85
  slidesListType: PropTypes__default['default'].oneOf(Object.values(panel.SLIDES_LIST_TYPE_MAP)),
91
86
 
@@ -1 +1 @@
1
- {"version":3,"file":"Providers.js","sources":["../../../src/contexts/Providers.js"],"sourcesContent":["import PropTypes from 'prop-types';\nimport { BuilderProvider } from './BuilderContext';\nimport { PresentationProvider } from './PresentationContext';\nimport { PropProvider } from './PropContext';\nimport { SLIDES_LIST_TYPE_MAP } from '../constants/panel';\n\nconst Providers = ({\n children,\n clickOutsideIgnoreSelectors,\n defaultZoom,\n lastScrollPosition,\n mode,\n onRightPanelsToggled,\n presentationBarActions,\n shouldShowRightPanelInitially,\n shouldShowZoomControls,\n slidesListType,\n useFixedPresentationBar,\n ...props\n}) => {\n return (\n <BuilderProvider\n clickOutsideIgnoreSelectors={clickOutsideIgnoreSelectors}\n defaultZoom={defaultZoom}\n lastScrollPosition={lastScrollPosition}\n onRightPanelsToggled={onRightPanelsToggled}\n shouldShowRightPanelInitially={shouldShowRightPanelInitially}\n shouldShowZoomControls={shouldShowZoomControls}\n slidesListType={slidesListType}\n >\n <PropProvider {...props}>\n {mode === 'customize' ? children : (\n <PresentationProvider\n presentationBarActions={presentationBarActions}\n useFixedPresentationBar={useFixedPresentationBar}\n >\n {children}\n </PresentationProvider>\n )}\n </PropProvider>\n </BuilderProvider>\n );\n};\n\nProviders.propTypes = {\n children: PropTypes.node.isRequired,\n /** CSS selectors ignored by right panel click-outside logic */\n clickOutsideIgnoreSelectors: PropTypes.arrayOf(PropTypes.string),\n /** Default zoom */\n defaultZoom: PropTypes.number,\n /** Last scroll position */\n lastScrollPosition: PropTypes.number,\n /** Mode of the report */\n mode: PropTypes.oneOf(['customize', 'presentation', 'preview', 'print']),\n /** Function called when the slides or the right panel is\n * toggled takes a boolean value to indicate whether or\n * not the panel is toggled open.\n */\n onRightPanelsToggled: PropTypes.func,\n /** To pass in action definitions that will be rendered as buttons */\n presentationBarActions: PropTypes.arrayOf(PropTypes.shape({})),\n /** Flag for fixed action bar */\n shouldShowRightPanelInitially: PropTypes.bool,\n /** Flag for whether to show the zoom controls */\n shouldShowZoomControls: PropTypes.bool,\n /** Flag for whether to show the right panel initially */\n slidesListType: PropTypes.oneOf(Object.values(SLIDES_LIST_TYPE_MAP)),\n /** Slides list type for the report */\n useFixedPresentationBar: PropTypes.bool,\n};\n\nexport default Providers;\n"],"names":["Providers","children","clickOutsideIgnoreSelectors","defaultZoom","lastScrollPosition","mode","onRightPanelsToggled","presentationBarActions","shouldShowRightPanelInitially","shouldShowZoomControls","slidesListType","useFixedPresentationBar","props","_jsx","BuilderProvider","PropProvider","PresentationProvider","propTypes","PropTypes","node","isRequired","arrayOf","string","number","oneOf","func","shape","bool","Object","values","SLIDES_LIST_TYPE_MAP"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;IAMMA,SAAS,GAAG,SAAZA,SAAY,OAaZ;AAAA,MAZJC,QAYI,QAZJA,QAYI;AAAA,MAXJC,2BAWI,QAXJA,2BAWI;AAAA,MAVJC,WAUI,QAVJA,WAUI;AAAA,MATJC,kBASI,QATJA,kBASI;AAAA,MARJC,IAQI,QARJA,IAQI;AAAA,MAPJC,oBAOI,QAPJA,oBAOI;AAAA,MANJC,sBAMI,QANJA,sBAMI;AAAA,MALJC,6BAKI,QALJA,6BAKI;AAAA,MAJJC,sBAII,QAJJA,sBAII;AAAA,MAHJC,cAGI,QAHJA,cAGI;AAAA,MAFJC,uBAEI,QAFJA,uBAEI;AAAA,MADDC,KACC;;AACJ,sBACEC,eAACC,8BAAD;AACE,IAAA,2BAA2B,EAAEZ,2BAD/B;AAEE,IAAA,WAAW,EAAEC,WAFf;AAGE,IAAA,kBAAkB,EAAEC,kBAHtB;AAIE,IAAA,oBAAoB,EAAEE,oBAJxB;AAKE,IAAA,6BAA6B,EAAEE,6BALjC;AAME,IAAA,sBAAsB,EAAEC,sBAN1B;AAOE,IAAA,cAAc,EAAEC,cAPlB;AAAA,2BASEG,eAACE,wBAAD,kCAAkBH,KAAlB;AAAA,gBACGP,IAAI,KAAK,WAAT,GAAuBJ,QAAvB,gBACCY,eAACG,wCAAD;AACE,QAAA,sBAAsB,EAAET,sBAD1B;AAEE,QAAA,uBAAuB,EAAEI,uBAF3B;AAAA,kBAIGV;AAJH;AAFJ;AATF,IADF;AAsBD;;AAEDD,SAAS,CAACiB,SAAV,GAAsB;AACpBhB,EAAAA,QAAQ,EAAEiB,6BAAS,CAACC,IAAV,CAAeC,UADL;;AAEpB;AACAlB,EAAAA,2BAA2B,EAAEgB,6BAAS,CAACG,OAAV,CAAkBH,6BAAS,CAACI,MAA5B,CAHT;;AAIpB;AACAnB,EAAAA,WAAW,EAAEe,6BAAS,CAACK,MALH;;AAMpB;AACAnB,EAAAA,kBAAkB,EAAEc,6BAAS,CAACK,MAPV;;AAQpB;AACAlB,EAAAA,IAAI,EAAEa,6BAAS,CAACM,KAAV,CAAgB,CAAC,WAAD,EAAc,cAAd,EAA8B,SAA9B,EAAyC,OAAzC,CAAhB,CATc;;AAUpB;AACF;AACA;AACA;AACElB,EAAAA,oBAAoB,EAAEY,6BAAS,CAACO,IAdZ;;AAepB;AACAlB,EAAAA,sBAAsB,EAAEW,6BAAS,CAACG,OAAV,CAAkBH,6BAAS,CAACQ,KAAV,CAAgB,EAAhB,CAAlB,CAhBJ;;AAiBpB;AACAlB,EAAAA,6BAA6B,EAAEU,6BAAS,CAACS,IAlBrB;;AAmBpB;AACAlB,EAAAA,sBAAsB,EAAES,6BAAS,CAACS,IApBd;;AAqBpB;AACAjB,EAAAA,cAAc,EAAEQ,6BAAS,CAACM,KAAV,CAAgBI,MAAM,CAACC,MAAP,CAAcC,0BAAd,CAAhB,CAtBI;;AAuBpB;AACAnB,EAAAA,uBAAuB,EAAEO,6BAAS,CAACS;AAxBf,CAAtB;;;;"}
1
+ {"version":3,"file":"Providers.js","sources":["../../../src/contexts/Providers.js"],"sourcesContent":["import PropTypes from 'prop-types';\nimport { BuilderProvider } from './BuilderContext';\nimport { PresentationProvider } from './PresentationContext';\nimport { PropProvider } from './PropContext';\nimport { SLIDES_LIST_TYPE_MAP } from '../constants/panel';\n\nconst Providers = ({\n children,\n clickOutsideIgnoreSelectors,\n defaultZoom,\n lastScrollPosition,\n mode,\n onRightPanelsToggled,\n presentationBarActions,\n shouldShowRightPanelInitially,\n slidesListType,\n useFixedPresentationBar,\n ...props\n}) => {\n return (\n <BuilderProvider\n clickOutsideIgnoreSelectors={clickOutsideIgnoreSelectors}\n defaultZoom={defaultZoom}\n lastScrollPosition={lastScrollPosition}\n onRightPanelsToggled={onRightPanelsToggled}\n shouldShowRightPanelInitially={shouldShowRightPanelInitially}\n slidesListType={slidesListType}\n >\n <PropProvider {...props}>\n {mode === 'customize' ? children : (\n <PresentationProvider\n presentationBarActions={presentationBarActions}\n useFixedPresentationBar={useFixedPresentationBar}\n >\n {children}\n </PresentationProvider>\n )}\n </PropProvider>\n </BuilderProvider>\n );\n};\n\nProviders.propTypes = {\n children: PropTypes.node.isRequired,\n /** CSS selectors ignored by right panel click-outside logic */\n clickOutsideIgnoreSelectors: PropTypes.arrayOf(PropTypes.string),\n /** Default zoom */\n defaultZoom: PropTypes.number,\n /** Last scroll position */\n lastScrollPosition: PropTypes.number,\n /** Mode of the report */\n mode: PropTypes.oneOf(['customize', 'presentation', 'preview', 'print']),\n /** Function called when the slides or the right panel is\n * toggled takes a boolean value to indicate whether or\n * not the panel is toggled open.\n */\n onRightPanelsToggled: PropTypes.func,\n /** To pass in action definitions that will be rendered as buttons */\n presentationBarActions: PropTypes.arrayOf(PropTypes.shape({})),\n /** Flag for fixed action bar */\n shouldShowRightPanelInitially: PropTypes.bool,\n /** Flag for whether to show the right panel initially */\n slidesListType: PropTypes.oneOf(Object.values(SLIDES_LIST_TYPE_MAP)),\n /** Slides list type for the report */\n useFixedPresentationBar: PropTypes.bool,\n};\n\nexport default Providers;\n"],"names":["Providers","children","clickOutsideIgnoreSelectors","defaultZoom","lastScrollPosition","mode","onRightPanelsToggled","presentationBarActions","shouldShowRightPanelInitially","slidesListType","useFixedPresentationBar","props","_jsx","BuilderProvider","PropProvider","PresentationProvider","propTypes","PropTypes","node","isRequired","arrayOf","string","number","oneOf","func","shape","bool","Object","values","SLIDES_LIST_TYPE_MAP"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;IAMMA,SAAS,GAAG,SAAZA,SAAY,OAYZ;AAAA,MAXJC,QAWI,QAXJA,QAWI;AAAA,MAVJC,2BAUI,QAVJA,2BAUI;AAAA,MATJC,WASI,QATJA,WASI;AAAA,MARJC,kBAQI,QARJA,kBAQI;AAAA,MAPJC,IAOI,QAPJA,IAOI;AAAA,MANJC,oBAMI,QANJA,oBAMI;AAAA,MALJC,sBAKI,QALJA,sBAKI;AAAA,MAJJC,6BAII,QAJJA,6BAII;AAAA,MAHJC,cAGI,QAHJA,cAGI;AAAA,MAFJC,uBAEI,QAFJA,uBAEI;AAAA,MADDC,KACC;;AACJ,sBACEC,eAACC,8BAAD;AACE,IAAA,2BAA2B,EAAEX,2BAD/B;AAEE,IAAA,WAAW,EAAEC,WAFf;AAGE,IAAA,kBAAkB,EAAEC,kBAHtB;AAIE,IAAA,oBAAoB,EAAEE,oBAJxB;AAKE,IAAA,6BAA6B,EAAEE,6BALjC;AAME,IAAA,cAAc,EAAEC,cANlB;AAAA,2BAQEG,eAACE,wBAAD,kCAAkBH,KAAlB;AAAA,gBACGN,IAAI,KAAK,WAAT,GAAuBJ,QAAvB,gBACCW,eAACG,wCAAD;AACE,QAAA,sBAAsB,EAAER,sBAD1B;AAEE,QAAA,uBAAuB,EAAEG,uBAF3B;AAAA,kBAIGT;AAJH;AAFJ;AARF,IADF;AAqBD;;AAEDD,SAAS,CAACgB,SAAV,GAAsB;AACpBf,EAAAA,QAAQ,EAAEgB,6BAAS,CAACC,IAAV,CAAeC,UADL;;AAEpB;AACAjB,EAAAA,2BAA2B,EAAEe,6BAAS,CAACG,OAAV,CAAkBH,6BAAS,CAACI,MAA5B,CAHT;;AAIpB;AACAlB,EAAAA,WAAW,EAAEc,6BAAS,CAACK,MALH;;AAMpB;AACAlB,EAAAA,kBAAkB,EAAEa,6BAAS,CAACK,MAPV;;AAQpB;AACAjB,EAAAA,IAAI,EAAEY,6BAAS,CAACM,KAAV,CAAgB,CAAC,WAAD,EAAc,cAAd,EAA8B,SAA9B,EAAyC,OAAzC,CAAhB,CATc;;AAUpB;AACF;AACA;AACA;AACEjB,EAAAA,oBAAoB,EAAEW,6BAAS,CAACO,IAdZ;;AAepB;AACAjB,EAAAA,sBAAsB,EAAEU,6BAAS,CAACG,OAAV,CAAkBH,6BAAS,CAACQ,KAAV,CAAgB,EAAhB,CAAlB,CAhBJ;;AAiBpB;AACAjB,EAAAA,6BAA6B,EAAES,6BAAS,CAACS,IAlBrB;;AAmBpB;AACAjB,EAAAA,cAAc,EAAEQ,6BAAS,CAACM,KAAV,CAAgBI,MAAM,CAACC,MAAP,CAAcC,0BAAd,CAAhB,CApBI;;AAqBpB;AACAnB,EAAAA,uBAAuB,EAAEO,6BAAS,CAACS;AAtBf,CAAtB;;;;"}