@jotforminc/dnd-builder 2.4.5 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/lib/cjs/components/Presentation/PresentationWrapper.js +10 -10
- package/lib/cjs/components/Presentation/PresentationWrapper.js.map +1 -1
- package/lib/cjs/components/Preview/StaticScene.js +78 -46
- package/lib/cjs/components/Preview/StaticScene.js.map +1 -1
- package/lib/cjs/utils/presentationContext.js +8 -0
- package/lib/cjs/utils/presentationContext.js.map +1 -1
- package/lib/esm/components/Presentation/PresentationWrapper.js +11 -11
- package/lib/esm/components/Presentation/PresentationWrapper.js.map +1 -1
- package/lib/esm/components/Preview/StaticScene.js +79 -48
- package/lib/esm/components/Preview/StaticScene.js.map +1 -1
- package/lib/esm/utils/presentationContext.js +8 -0
- package/lib/esm/utils/presentationContext.js.map +1 -1
- package/package.json +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## [2.5.0](https://github.com/jotform/dnd-builder/compare/v2.4.6...v2.5.0) (2023-02-28)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* **static-scene:** zoom-pan-pinch feature is supported now by dnd-builder ([55644e9](https://github.com/jotform/dnd-builder/commit/55644e9aead43ca2655906e0beab984a756b4d28))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* **presentation-wrapper:** gesture should work for only fit case ([f1c2cc2](https://github.com/jotform/dnd-builder/commit/f1c2cc2d38a0bfc0352a7ea4f65852ae8e827cf0))
|
|
16
|
+
* **presentation-wrapper:** when isFullScreen is set, fitToScreen should recalculate ([055c746](https://github.com/jotform/dnd-builder/commit/055c74665706742d134bc6a988af282656cea714))
|
|
17
|
+
|
|
18
|
+
### [2.4.6](https://github.com/jotform/dnd-builder/compare/v2.4.4...v2.4.6) (2023-02-27)
|
|
19
|
+
|
|
5
20
|
### [2.4.5](https://github.com/jotform/dnd-builder/compare/v2.4.4...v2.4.5) (2023-02-01)
|
|
6
21
|
|
|
7
22
|
### [2.4.4](https://github.com/jotform/dnd-builder/compare/v2.4.3...v2.4.4) (2022-08-09)
|
|
@@ -43,9 +43,11 @@ var PresentationWrapper = function PresentationWrapper(_ref) {
|
|
|
43
43
|
|
|
44
44
|
var _usePresentationConte = presentationContext.usePresentationContext(),
|
|
45
45
|
currentPage = _usePresentationConte.currentPage,
|
|
46
|
+
fittedZoom = _usePresentationConte.fittedZoom,
|
|
46
47
|
isFullscreen = _usePresentationConte.isFullscreen,
|
|
47
48
|
pageCount = _usePresentationConte.pageCount,
|
|
48
49
|
setCurrentPage = _usePresentationConte.setCurrentPage,
|
|
50
|
+
setFittedZoom = _usePresentationConte.setFittedZoom,
|
|
49
51
|
setIsFullscreen = _usePresentationConte.setIsFullscreen,
|
|
50
52
|
setShowControlsInFullScreen = _usePresentationConte.setShowControlsInFullScreen,
|
|
51
53
|
showControlsInFullScreen = _usePresentationConte.showControlsInFullScreen;
|
|
@@ -54,11 +56,6 @@ var PresentationWrapper = function PresentationWrapper(_ref) {
|
|
|
54
56
|
setZoom = _useBuilderContext.setZoom,
|
|
55
57
|
zoom = _useBuilderContext.zoom;
|
|
56
58
|
|
|
57
|
-
var _useState = React.useState(1),
|
|
58
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
59
|
-
fittedZoom = _useState2[0],
|
|
60
|
-
setFittedZoom = _useState2[1];
|
|
61
|
-
|
|
62
59
|
var fitToScreen = React.useCallback(function () {
|
|
63
60
|
var delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
64
61
|
return setTimeout(function () {
|
|
@@ -75,8 +72,8 @@ var PresentationWrapper = function PresentationWrapper(_ref) {
|
|
|
75
72
|
}, delay);
|
|
76
73
|
}, [settings, isFullscreen, useFixedPresentationBar, pageCount]);
|
|
77
74
|
React.useEffect(function () {
|
|
78
|
-
fitToScreen();
|
|
79
|
-
}, []);
|
|
75
|
+
fitToScreen(100);
|
|
76
|
+
}, [isFullscreen]);
|
|
80
77
|
React.useEffect(function () {
|
|
81
78
|
if (isFullscreen) {
|
|
82
79
|
setShowControlsInFullScreen(true);
|
|
@@ -132,10 +129,13 @@ var PresentationWrapper = function PresentationWrapper(_ref) {
|
|
|
132
129
|
event = _ref2.event;
|
|
133
130
|
|
|
134
131
|
event.preventDefault();
|
|
135
|
-
var clientWidth = event.target.clientWidth;
|
|
136
132
|
|
|
137
|
-
if (
|
|
138
|
-
|
|
133
|
+
if (fittedZoom === zoom) {
|
|
134
|
+
var clientWidth = event.target.clientWidth;
|
|
135
|
+
|
|
136
|
+
if (axis === 'x' && window.innerWidth / 4 < distance && clientWidth * zoom < window.innerWidth) {
|
|
137
|
+
return v < 0 ? pageChanger(1)() : pageChanger(-1)();
|
|
138
|
+
}
|
|
139
139
|
}
|
|
140
140
|
} // onPinchEnd: ({ movement: [d] }) => {
|
|
141
141
|
// const zoomStep = Number(parseFloat(d / 1000).toFixed(1));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PresentationWrapper.js","sources":["../../../../src/components/Presentation/PresentationWrapper.js"],"sourcesContent":["import {\n useCallback,\n useEffect,\n useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport Modal from 'react-modal';\nimport classNames from 'classnames';\nimport { useGesture } from 'react-use-gesture';\nimport PresentationBar from './PresentationBar';\nimport ProgressBar from './ProgressBar';\nimport { useBuilderContext } from '../../utils/builderContext';\nimport { useEventListener, useFullscreenChange } from '../../utils/hooks';\nimport {\n changePage,\n throttle,\n zoomHandler,\n} from '../../utils/functions';\nimport { usePresentationContext } from '../../utils/presentationContext';\nimport { usePropContext } from '../../utils/propContext';\n// import { ZOOM_MIN, ZOOM_MAX } from '../../constants/zoom';\n\nconst PresentationWrapper = ({\n children,\n presentationBarActions,\n useFixedPresentationBar,\n}) => {\n const { onAnEventTrigger, settings } = usePropContext();\n const {\n currentPage,\n isFullscreen,\n pageCount,\n setCurrentPage,\n setIsFullscreen,\n setShowControlsInFullScreen,\n showControlsInFullScreen,\n } = usePresentationContext();\n\n const { setZoom, zoom } = useBuilderContext();\n const [fittedZoom, setFittedZoom] = useState(1);\n\n const fitToScreen = useCallback((delay = 0) => setTimeout(() => {\n const newZoom = zoomHandler({\n handler: setZoom,\n isFullscreen,\n isModeCustomize: false,\n limitZoom: false,\n settings,\n useFixedPresentationBar,\n useProgressBar: pageCount > 2,\n });\n setFittedZoom(newZoom);\n }, delay), [settings, isFullscreen, useFixedPresentationBar, pageCount]);\n\n useEffect(() => { fitToScreen(); }, []);\n\n useEffect(() => {\n if (isFullscreen) {\n setShowControlsInFullScreen(true);\n setTimeout(() => setShowControlsInFullScreen(false), 1500);\n }\n }, [isFullscreen]);\n\n const pageChanger = action => changePage({\n action,\n currentPage,\n pageCount,\n setCurrentPage,\n });\n\n const handleKeyboardEvent = useCallback(e => {\n if (e.keyCode === 39) {\n pageChanger(1)();\n } else if (e.keyCode === 37) {\n pageChanger(-1)();\n }\n });\n\n const setControlVisibility = e => {\n // TODO :: timeout in n out for better ux\n if (!isFullscreen) return;\n if (showControlsInFullScreen && window.innerHeight - e.clientY >= 200) {\n setShowControlsInFullScreen(false);\n } else if (!showControlsInFullScreen && window.innerHeight - e.clientY < 200) {\n setShowControlsInFullScreen(true);\n }\n };\n\n useEventListener('keydown', handleKeyboardEvent);\n useEventListener('mousemove', throttle(setControlVisibility, 150));\n useEventListener('gesturestart', e => e.preventDefault());\n useEventListener('gesturechange', e => e.preventDefault());\n useFullscreenChange(isFullscreen, setIsFullscreen, fitToScreen);\n\n const gesture = useGesture({\n onDragEnd: ({\n axis, direction: [v], distance, event,\n }) => {\n event.preventDefault();\n const { clientWidth } = event.target;\n if (axis === 'x'\n && window.innerWidth / 4 < distance\n && clientWidth * zoom < window.innerWidth) {\n return v < 0 ? pageChanger(1)() : pageChanger(-1)();\n }\n },\n // onPinchEnd: ({ movement: [d] }) => {\n // const zoomStep = Number(parseFloat(d / 1000).toFixed(1));\n // const newZoomValue = Number(((Math.round((zoom + zoomStep) * 10)) / 10).toFixed(2));\n // if (zoom !== newZoomValue && newZoomValue <= ZOOM_MAX) {\n // const minZoom = Math.min(fittedZoom, ZOOM_MIN);\n // setZoom(Math.max(newZoomValue, minZoom));\n // }\n // },\n });\n\n return (\n <>\n <Modal\n appElement={document.getElementById('root')}\n className={classNames('jfPresentation jfFields', { black: isFullscreen })}\n closeTimeoutMS={300}\n contentLabel=\"Report Presentation\"\n id=\"presentationModal\"\n isOpen={true}\n overlayClassName={classNames(\n 'jfPresentation-overlay',\n { fixedPresentationBar: useFixedPresentationBar, isFullscreen },\n )}\n portalClassName=\"PresentationModal\"\n shouldCloseOnEsc={false}\n shouldFocusAfterRender={false}\n >\n {children(currentPage - 1, gesture)}\n <PresentationBar\n currentPage={currentPage}\n fittedZoom={fittedZoom}\n fitToScreen={fitToScreen}\n isFullscreen={isFullscreen}\n isVisible={(!isFullscreen || (isFullscreen && showControlsInFullScreen))}\n onAnEventTrigger={onAnEventTrigger}\n pageCount={pageCount}\n presentationBarActions={presentationBarActions}\n setCurrentPage={setCurrentPage}\n setIsFullscreen={setIsFullscreen}\n settings={settings}\n setZoom={setZoom}\n zoom={zoom}\n />\n <ProgressBar\n currentPage={currentPage}\n pageCount={pageCount}\n />\n </Modal>\n </>\n );\n};\n\nPresentationWrapper.propTypes = {\n children: PropTypes.any,\n presentationBarActions: PropTypes.arrayOf(PropTypes.shape({})),\n useFixedPresentationBar: PropTypes.bool,\n};\n\nPresentationWrapper.defaultProps = {\n children: () => {},\n presentationBarActions: [],\n useFixedPresentationBar: false,\n};\n\nexport default PresentationWrapper;\n"],"names":["PresentationWrapper","children","presentationBarActions","useFixedPresentationBar","usePropContext","onAnEventTrigger","settings","usePresentationContext","currentPage","isFullscreen","pageCount","setCurrentPage","setIsFullscreen","setShowControlsInFullScreen","showControlsInFullScreen","useBuilderContext","setZoom","zoom","useState","fittedZoom","setFittedZoom","fitToScreen","useCallback","delay","setTimeout","newZoom","zoomHandler","handler","isModeCustomize","limitZoom","useProgressBar","useEffect","pageChanger","action","changePage","handleKeyboardEvent","e","keyCode","setControlVisibility","window","innerHeight","clientY","useEventListener","throttle","preventDefault","useFullscreenChange","gesture","useGesture","onDragEnd","axis","direction","v","distance","event","clientWidth","target","innerWidth","_jsx","_jsxs","Modal","document","getElementById","classNames","black","fixedPresentationBar","propTypes","PropTypes","any","arrayOf","shape","bool","defaultProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PresentationWrapper.js","sources":["../../../../src/components/Presentation/PresentationWrapper.js"],"sourcesContent":["import {\n useCallback,\n useEffect,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport Modal from 'react-modal';\nimport classNames from 'classnames';\nimport { useGesture } from 'react-use-gesture';\nimport PresentationBar from './PresentationBar';\nimport ProgressBar from './ProgressBar';\nimport { useBuilderContext } from '../../utils/builderContext';\nimport { useEventListener, useFullscreenChange } from '../../utils/hooks';\nimport {\n changePage,\n throttle,\n zoomHandler,\n} from '../../utils/functions';\nimport { usePresentationContext } from '../../utils/presentationContext';\nimport { usePropContext } from '../../utils/propContext';\n// import { ZOOM_MIN, ZOOM_MAX } from '../../constants/zoom';\n\nconst PresentationWrapper = ({\n children,\n presentationBarActions,\n useFixedPresentationBar,\n}) => {\n const { onAnEventTrigger, settings } = usePropContext();\n const {\n currentPage,\n fittedZoom,\n isFullscreen,\n pageCount,\n setCurrentPage,\n setFittedZoom,\n setIsFullscreen,\n setShowControlsInFullScreen,\n showControlsInFullScreen,\n } = usePresentationContext();\n\n const { setZoom, zoom } = useBuilderContext();\n\n const fitToScreen = useCallback((delay = 0) => setTimeout(() => {\n const newZoom = zoomHandler({\n handler: setZoom,\n isFullscreen,\n isModeCustomize: false,\n limitZoom: false,\n settings,\n useFixedPresentationBar,\n useProgressBar: pageCount > 2,\n });\n setFittedZoom(newZoom);\n }, delay), [settings, isFullscreen, useFixedPresentationBar, pageCount]);\n\n useEffect(() => { fitToScreen(100); }, [isFullscreen]);\n\n useEffect(() => {\n if (isFullscreen) {\n setShowControlsInFullScreen(true);\n setTimeout(() => setShowControlsInFullScreen(false), 1500);\n }\n }, [isFullscreen]);\n\n const pageChanger = action => changePage({\n action,\n currentPage,\n pageCount,\n setCurrentPage,\n });\n\n const handleKeyboardEvent = useCallback(e => {\n if (e.keyCode === 39) {\n pageChanger(1)();\n } else if (e.keyCode === 37) {\n pageChanger(-1)();\n }\n });\n\n const setControlVisibility = e => {\n // TODO :: timeout in n out for better ux\n if (!isFullscreen) return;\n if (showControlsInFullScreen && window.innerHeight - e.clientY >= 200) {\n setShowControlsInFullScreen(false);\n } else if (!showControlsInFullScreen && window.innerHeight - e.clientY < 200) {\n setShowControlsInFullScreen(true);\n }\n };\n\n useEventListener('keydown', handleKeyboardEvent);\n useEventListener('mousemove', throttle(setControlVisibility, 150));\n useEventListener('gesturestart', e => e.preventDefault());\n useEventListener('gesturechange', e => e.preventDefault());\n useFullscreenChange(isFullscreen, setIsFullscreen, fitToScreen);\n\n const gesture = useGesture({\n onDragEnd: ({\n axis, direction: [v], distance, event,\n }) => {\n event.preventDefault();\n if (fittedZoom === zoom) {\n const { clientWidth } = event.target;\n if (axis === 'x'\n && window.innerWidth / 4 < distance\n && clientWidth * zoom < window.innerWidth) {\n return v < 0 ? pageChanger(1)() : pageChanger(-1)();\n }\n }\n },\n // onPinchEnd: ({ movement: [d] }) => {\n // const zoomStep = Number(parseFloat(d / 1000).toFixed(1));\n // const newZoomValue = Number(((Math.round((zoom + zoomStep) * 10)) / 10).toFixed(2));\n // if (zoom !== newZoomValue && newZoomValue <= ZOOM_MAX) {\n // const minZoom = Math.min(fittedZoom, ZOOM_MIN);\n // setZoom(Math.max(newZoomValue, minZoom));\n // }\n // },\n });\n\n return (\n <>\n <Modal\n appElement={document.getElementById('root')}\n className={classNames('jfPresentation jfFields', { black: isFullscreen })}\n closeTimeoutMS={300}\n contentLabel=\"Report Presentation\"\n id=\"presentationModal\"\n isOpen={true}\n overlayClassName={classNames(\n 'jfPresentation-overlay',\n { fixedPresentationBar: useFixedPresentationBar, isFullscreen },\n )}\n portalClassName=\"PresentationModal\"\n shouldCloseOnEsc={false}\n shouldFocusAfterRender={false}\n >\n {children(currentPage - 1, gesture)}\n <PresentationBar\n currentPage={currentPage}\n fittedZoom={fittedZoom}\n fitToScreen={fitToScreen}\n isFullscreen={isFullscreen}\n isVisible={(!isFullscreen || (isFullscreen && showControlsInFullScreen))}\n onAnEventTrigger={onAnEventTrigger}\n pageCount={pageCount}\n presentationBarActions={presentationBarActions}\n setCurrentPage={setCurrentPage}\n setIsFullscreen={setIsFullscreen}\n settings={settings}\n setZoom={setZoom}\n zoom={zoom}\n />\n <ProgressBar\n currentPage={currentPage}\n pageCount={pageCount}\n />\n </Modal>\n </>\n );\n};\n\nPresentationWrapper.propTypes = {\n children: PropTypes.any,\n presentationBarActions: PropTypes.arrayOf(PropTypes.shape({})),\n useFixedPresentationBar: PropTypes.bool,\n};\n\nPresentationWrapper.defaultProps = {\n children: () => {},\n presentationBarActions: [],\n useFixedPresentationBar: false,\n};\n\nexport default PresentationWrapper;\n"],"names":["PresentationWrapper","children","presentationBarActions","useFixedPresentationBar","usePropContext","onAnEventTrigger","settings","usePresentationContext","currentPage","fittedZoom","isFullscreen","pageCount","setCurrentPage","setFittedZoom","setIsFullscreen","setShowControlsInFullScreen","showControlsInFullScreen","useBuilderContext","setZoom","zoom","fitToScreen","useCallback","delay","setTimeout","newZoom","zoomHandler","handler","isModeCustomize","limitZoom","useProgressBar","useEffect","pageChanger","action","changePage","handleKeyboardEvent","e","keyCode","setControlVisibility","window","innerHeight","clientY","useEventListener","throttle","preventDefault","useFullscreenChange","gesture","useGesture","onDragEnd","axis","direction","v","distance","event","clientWidth","target","innerWidth","_jsx","_jsxs","Modal","document","getElementById","classNames","black","fixedPresentationBar","propTypes","PropTypes","any","arrayOf","shape","bool","defaultProps"],"mappings":"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"}
|
|
@@ -2,11 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
require('core-js/modules/es.array.concat.js');
|
|
4
4
|
require('core-js/modules/es.array.map.js');
|
|
5
|
+
require('core-js/modules/es.array.slice.js');
|
|
5
6
|
require('core-js/modules/es.number.to-fixed.js');
|
|
6
7
|
require('core-js/modules/es.object.to-string.js');
|
|
7
8
|
require('core-js/modules/es.regexp.to-string.js');
|
|
8
9
|
var React = require('react');
|
|
9
10
|
var PropTypes = require('prop-types');
|
|
11
|
+
var classNames$1 = require('classnames');
|
|
12
|
+
var reactZoomPanPinch = require('react-zoom-pan-pinch');
|
|
10
13
|
var classNames = require('../../constants/classNames.js');
|
|
11
14
|
var StaticPage = require('./StaticPage.js');
|
|
12
15
|
var propContext = require('../../utils/propContext.js');
|
|
@@ -20,6 +23,7 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
20
23
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
21
24
|
|
|
22
25
|
var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
|
|
26
|
+
var classNames__default = /*#__PURE__*/_interopDefaultLegacy(classNames$1);
|
|
23
27
|
|
|
24
28
|
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; }
|
|
25
29
|
|
|
@@ -39,6 +43,7 @@ var StaticScene = function StaticScene(_ref) {
|
|
|
39
43
|
presentationPage = _ref.presentationPage;
|
|
40
44
|
|
|
41
45
|
var _usePresentationConte = presentationContext.usePresentationContext(),
|
|
46
|
+
fittedZoom = _usePresentationConte.fittedZoom,
|
|
42
47
|
isFullscreen = _usePresentationConte.isFullscreen,
|
|
43
48
|
showControlsInFullScreen = _usePresentationConte.showControlsInFullScreen;
|
|
44
49
|
|
|
@@ -47,19 +52,11 @@ var StaticScene = function StaticScene(_ref) {
|
|
|
47
52
|
settings = _usePropContext.settings;
|
|
48
53
|
|
|
49
54
|
var _useBuilderContext = builderContext.useBuilderContext(),
|
|
55
|
+
setZoom = _useBuilderContext.setZoom,
|
|
50
56
|
zoom = _useBuilderContext.zoom;
|
|
51
57
|
|
|
52
58
|
var viewPortRef = React.useRef({});
|
|
53
|
-
var
|
|
54
|
-
var pageContainerStyles = React.useRef({});
|
|
55
|
-
var zoomAdjusterStyles = React.useRef({});
|
|
56
|
-
zoom = mode === 'print' ? 1 : zoom;
|
|
57
|
-
React.useEffect(function () {
|
|
58
|
-
if (viewPortRef.current) {
|
|
59
|
-
viewPortRef.current.scrollTop = lastScrollPosition;
|
|
60
|
-
}
|
|
61
|
-
}, []); // set last scroll position after changing mode
|
|
62
|
-
|
|
59
|
+
var transformRefs = React.useRef([]);
|
|
63
60
|
var reportBackgroundColor = settings.reportBackgroundColor,
|
|
64
61
|
_settings$reportLayou = settings.reportLayout,
|
|
65
62
|
reportLayout = _settings$reportLayou === void 0 ? 'A4 Landscape' : _settings$reportLayou,
|
|
@@ -71,31 +68,42 @@ var StaticScene = function StaticScene(_ref) {
|
|
|
71
68
|
reportPageTransition = _settings$reportPageT === void 0 ? 'noAnimation' : _settings$reportPageT;
|
|
72
69
|
var width = parseInt(reportLayoutWidth, 10);
|
|
73
70
|
var height = parseInt(reportLayoutHeight, 10);
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
};
|
|
84
|
-
zoomAdjusterStyles.current = {
|
|
85
|
-
height: parseFloat((height * zoom).toFixed(1)),
|
|
86
|
-
margin: '0',
|
|
87
|
-
width: parseFloat((width * zoom).toFixed(1))
|
|
88
|
-
};
|
|
89
|
-
|
|
90
|
-
if (viewPortRef.current.clientWidth < zoomAdjusterStyles.current.width) {
|
|
91
|
-
delete pageStyles.current.justifyContent;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
if (viewPortRef.current.clientHeight < zoomAdjusterStyles.current.height) {
|
|
95
|
-
delete pageStyles.current.alignItems;
|
|
96
|
-
}
|
|
71
|
+
React.useEffect(function () {
|
|
72
|
+
if (mode === 'print') {
|
|
73
|
+
setZoom(1);
|
|
74
|
+
}
|
|
75
|
+
}, [mode]);
|
|
76
|
+
React.useEffect(function () {
|
|
77
|
+
if (viewPortRef.current) {
|
|
78
|
+
viewPortRef.current.scrollTop = lastScrollPosition;
|
|
79
|
+
}
|
|
80
|
+
}, []); // set last scroll position after changing mode
|
|
97
81
|
|
|
82
|
+
React.useEffect(function () {
|
|
83
|
+
transformRefs.current = transformRefs.current.slice(0, pages.length);
|
|
84
|
+
}, [pages]);
|
|
85
|
+
var pageContainerStyles = React.useMemo(function () {
|
|
86
|
+
return {
|
|
87
|
+
height: height,
|
|
88
|
+
width: width
|
|
89
|
+
};
|
|
90
|
+
}, [width, height]);
|
|
98
91
|
var transitionStyle = hooks.usePageTransition(reportPageTransition, presentationPage);
|
|
92
|
+
var handleZoom = React.useCallback(function (zoomPanPinch) {
|
|
93
|
+
var fixedValue = parseFloat(zoomPanPinch.state.scale.toFixed(2));
|
|
94
|
+
var roundValue = parseFloat((Math.round(fixedValue * 100) / 100).toFixed(1));
|
|
95
|
+
|
|
96
|
+
if (roundValue <= 2 && roundValue >= 0.5) {
|
|
97
|
+
setZoom(roundValue);
|
|
98
|
+
}
|
|
99
|
+
}, []);
|
|
100
|
+
React.useEffect(function () {
|
|
101
|
+
if (transformRefs.current.length > 0) {
|
|
102
|
+
for (var i = 0; i < pages.length; i++) {
|
|
103
|
+
transformRefs.current[i].centerView(zoom);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}, [pages.length, zoom, isFullscreen]);
|
|
99
107
|
return /*#__PURE__*/jsxRuntime.jsxs("main", {
|
|
100
108
|
className: classNames.mainWrapper,
|
|
101
109
|
children: [/*#__PURE__*/jsxRuntime.jsx("div", _objectSpread(_objectSpread({
|
|
@@ -106,25 +114,49 @@ var StaticScene = function StaticScene(_ref) {
|
|
|
106
114
|
className: "".concat(classNames.canvas, " ").concat(reportPageTransition),
|
|
107
115
|
style: transitionStyle,
|
|
108
116
|
children: pages.map(function (page, index) {
|
|
117
|
+
var _cNames;
|
|
118
|
+
|
|
109
119
|
var backgroundColor = page.backgroundColor;
|
|
110
120
|
|
|
111
|
-
var style = _objectSpread(_objectSpread({}, pageContainerStyles
|
|
121
|
+
var style = _objectSpread(_objectSpread({}, pageContainerStyles), {}, {
|
|
112
122
|
backgroundColor: backgroundColor ? backgroundColor : reportBackgroundColor || '#fff'
|
|
113
123
|
});
|
|
114
124
|
|
|
115
125
|
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
116
|
-
className:
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
126
|
+
className: classNames__default['default']((_cNames = {}, _defineProperty(_cNames, classNames.page, true), _defineProperty(_cNames, string.slugify(reportLayout), true), _defineProperty(_cNames, "activePage", index === presentationPage), _cNames)),
|
|
127
|
+
children: /*#__PURE__*/jsxRuntime.jsx(reactZoomPanPinch.TransformWrapper, {
|
|
128
|
+
ref: function ref(element) {
|
|
129
|
+
transformRefs.current[index] = element;
|
|
130
|
+
},
|
|
131
|
+
centerOnInit: true,
|
|
132
|
+
centerZoomedOut: true,
|
|
133
|
+
disablePadding: true,
|
|
134
|
+
doubleClick: {
|
|
135
|
+
step: 0.2
|
|
136
|
+
},
|
|
137
|
+
initialScale: zoom,
|
|
138
|
+
maxScale: 2,
|
|
139
|
+
minScale: 0.5,
|
|
140
|
+
onZoom: handleZoom,
|
|
141
|
+
panning: {
|
|
142
|
+
disabled: zoom <= fittedZoom
|
|
143
|
+
},
|
|
144
|
+
pinch: {
|
|
145
|
+
step: 1
|
|
146
|
+
},
|
|
147
|
+
children: /*#__PURE__*/jsxRuntime.jsx(reactZoomPanPinch.TransformComponent, {
|
|
148
|
+
wrapperStyle: {
|
|
149
|
+
height: '100%',
|
|
150
|
+
width: '100%'
|
|
151
|
+
},
|
|
152
|
+
children: /*#__PURE__*/jsxRuntime.jsx(StaticPage, {
|
|
153
|
+
acceptedItems: acceptedItems,
|
|
154
|
+
additionalPageItems: additionalPageItems,
|
|
155
|
+
hashCode: hashCode,
|
|
156
|
+
itemAccessor: itemAccessor,
|
|
157
|
+
items: page.items,
|
|
158
|
+
style: style
|
|
159
|
+
})
|
|
128
160
|
})
|
|
129
161
|
})
|
|
130
162
|
}, "page_".concat(index.toString()));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StaticScene.js","sources":["../../../../src/components/Preview/StaticScene.js"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport * as classNames from '../../constants/classNames';\nimport StaticPage from './StaticPage';\nimport { usePropContext } from '../../utils/propContext';\nimport { useBuilderContext } from '../../utils/builderContext';\nimport { slugify } from '../../utils/string';\nimport { usePageTransition } from '../../utils/hooks';\nimport { usePresentationContext } from '../../utils/presentationContext';\nimport ZoomControls from '../Builder/ZoomControls';\n\nconst StaticScene = ({\n additionalPageItems,\n gesture,\n hashCode,\n hideZoom,\n itemAccessor,\n lastScrollPosition,\n mode,\n pages,\n presentationPage,\n}) => {\n const { isFullscreen, showControlsInFullScreen } = usePresentationContext();\n const { acceptedItems, settings } = usePropContext();\n let { zoom } = useBuilderContext();\n const viewPortRef = useRef({});\n const pageStyles = useRef({});\n const pageContainerStyles = useRef({});\n const zoomAdjusterStyles = useRef({});\n zoom = mode === 'print' ? 1 : zoom;\n useEffect(() => {\n if (viewPortRef.current) {\n viewPortRef.current.scrollTop = lastScrollPosition;\n }\n }, []); // set last scroll position after changing mode\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 pageStyles.current = {\n alignItems: 'center',\n justifyContent: 'center',\n };\n pageContainerStyles.current = {\n height,\n transform: `scale(${zoom})`,\n transformOrigin: '0 0',\n width,\n };\n zoomAdjusterStyles.current = {\n height: parseFloat((height * zoom).toFixed(1)),\n margin: '0',\n width: parseFloat((width * zoom).toFixed(1)),\n };\n\n if (viewPortRef.current.clientWidth < zoomAdjusterStyles.current.width) {\n delete pageStyles.current.justifyContent;\n }\n\n if (viewPortRef.current.clientHeight < zoomAdjusterStyles.current.height) {\n delete pageStyles.current.alignItems;\n }\n\n const transitionStyle = usePageTransition(reportPageTransition, presentationPage);\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.current,\n backgroundColor: backgroundColor ? backgroundColor : reportBackgroundColor || '#fff',\n };\n return (\n <div\n key={`page_${index.toString()}`}\n className={`${\n classNames.page\n } ${\n slugify(reportLayout)\n } ${\n index === presentationPage ? 'activePage' : ''\n }`}\n style={pageStyles.current}\n >\n <div\n className={`jfReport-zoomAdjuster ${mode !== 'preview' ? 'd-flex' : ''}`}\n style={zoomAdjusterStyles.current}\n >\n <StaticPage\n acceptedItems={acceptedItems}\n additionalPageItems={additionalPageItems}\n hashCode={hashCode}\n itemAccessor={itemAccessor}\n items={page.items}\n style={style}\n />\n </div>\n </div>\n );\n })}\n </div>\n </div>\n <ZoomControls\n pages={pages}\n showZoom={(!isFullscreen || (isFullscreen && showControlsInFullScreen)) && !hideZoom}\n />\n </main>\n );\n};\n\nStaticScene.propTypes = {\n additionalPageItems: PropTypes.arrayOf(PropTypes.node),\n gesture: PropTypes.func,\n hashCode: PropTypes.string,\n hideZoom: PropTypes.bool,\n itemAccessor: PropTypes.func,\n lastScrollPosition: PropTypes.number,\n mode: PropTypes.string,\n pages: PropTypes.arrayOf(PropTypes.shape({})),\n presentationPage: PropTypes.number,\n};\n\nStaticScene.defaultProps = {\n additionalPageItems: [],\n gesture: () => {},\n hashCode: '',\n hideZoom: false,\n itemAccessor: () => {},\n lastScrollPosition: 0,\n mode: 'preview',\n pages: [],\n presentationPage: 0,\n};\n\nexport default StaticScene;\n"],"names":["StaticScene","additionalPageItems","gesture","hashCode","hideZoom","itemAccessor","lastScrollPosition","mode","pages","presentationPage","usePresentationContext","isFullscreen","showControlsInFullScreen","usePropContext","acceptedItems","settings","useBuilderContext","zoom","viewPortRef","useRef","pageStyles","pageContainerStyles","zoomAdjusterStyles","useEffect","current","scrollTop","reportBackgroundColor","reportLayout","reportLayoutHeight","reportLayoutWidth","reportPageTransition","width","parseInt","height","alignItems","justifyContent","transform","transformOrigin","parseFloat","toFixed","margin","clientWidth","clientHeight","transitionStyle","usePageTransition","_jsxs","classNames","_jsx","map","page","index","backgroundColor","style","slugify","items","toString","propTypes","PropTypes","arrayOf","node","func","string","bool","number","shape","defaultProps"],"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 { TransformWrapper, TransformComponent } from 'react-zoom-pan-pinch';\nimport * as classNames from '../../constants/classNames';\nimport StaticPage from './StaticPage';\nimport { usePropContext } from '../../utils/propContext';\nimport { useBuilderContext } from '../../utils/builderContext';\nimport { slugify } from '../../utils/string';\nimport { usePageTransition } from '../../utils/hooks';\nimport { usePresentationContext } from '../../utils/presentationContext';\nimport ZoomControls from '../Builder/ZoomControls';\n\nconst StaticScene = ({\n additionalPageItems,\n gesture,\n hashCode,\n hideZoom,\n itemAccessor,\n lastScrollPosition,\n mode,\n pages,\n presentationPage,\n}) => {\n const { fittedZoom, isFullscreen, showControlsInFullScreen } = usePresentationContext();\n const { acceptedItems, settings } = usePropContext();\n const { setZoom, zoom } = useBuilderContext();\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 if (mode === 'print') {\n setZoom(1);\n }\n }, [mode]);\n\n useEffect(() => {\n if (viewPortRef.current) {\n viewPortRef.current.scrollTop = lastScrollPosition;\n }\n }, []); // set last scroll position after changing mode\n\n useEffect(() => {\n transformRefs.current = transformRefs.current.slice(0, pages.length);\n }, [pages]);\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 }, []);\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, isFullscreen]);\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 >\n <TransformWrapper\n ref={element => { transformRefs.current[index] = element; }}\n centerOnInit={true}\n centerZoomedOut={true}\n disablePadding={true}\n doubleClick={{\n step: 0.2,\n }}\n initialScale={zoom}\n maxScale={2}\n minScale={0.5}\n onZoom={handleZoom}\n panning={{\n disabled: zoom <= fittedZoom,\n }}\n pinch={{\n step: 1,\n }}\n >\n <TransformComponent\n wrapperStyle={{ height: '100%', width: '100%' }}\n >\n <StaticPage\n acceptedItems={acceptedItems}\n additionalPageItems={additionalPageItems}\n hashCode={hashCode}\n itemAccessor={itemAccessor}\n items={page.items}\n style={style}\n />\n </TransformComponent>\n </TransformWrapper>\n </div>\n );\n })}\n </div>\n </div>\n <ZoomControls\n pages={pages}\n showZoom={(!isFullscreen || (isFullscreen && showControlsInFullScreen)) && !hideZoom}\n />\n </main>\n );\n};\n\nStaticScene.propTypes = {\n additionalPageItems: PropTypes.arrayOf(PropTypes.node),\n gesture: PropTypes.func,\n hashCode: PropTypes.string,\n hideZoom: PropTypes.bool,\n itemAccessor: PropTypes.func,\n lastScrollPosition: PropTypes.number,\n mode: PropTypes.string,\n pages: PropTypes.arrayOf(PropTypes.shape({})),\n presentationPage: PropTypes.number,\n};\n\nStaticScene.defaultProps = {\n additionalPageItems: [],\n gesture: () => {},\n hashCode: '',\n hideZoom: false,\n itemAccessor: () => {},\n lastScrollPosition: 0,\n mode: 'preview',\n pages: [],\n presentationPage: 0,\n};\n\nexport default StaticScene;\n"],"names":["StaticScene","additionalPageItems","gesture","hashCode","hideZoom","itemAccessor","lastScrollPosition","mode","pages","presentationPage","usePresentationContext","fittedZoom","isFullscreen","showControlsInFullScreen","usePropContext","acceptedItems","settings","useBuilderContext","setZoom","zoom","viewPortRef","useRef","transformRefs","reportBackgroundColor","reportLayout","reportLayoutHeight","reportLayoutWidth","reportPageTransition","width","parseInt","height","useEffect","current","scrollTop","slice","length","pageContainerStyles","useMemo","transitionStyle","usePageTransition","handleZoom","useCallback","zoomPanPinch","fixedValue","parseFloat","state","scale","toFixed","roundValue","Math","round","i","centerView","_jsxs","classNames","_jsx","map","page","index","backgroundColor","style","cNames","slugify","TransformWrapper","element","step","disabled","TransformComponent","items","toString","propTypes","PropTypes","arrayOf","node","func","string","bool","number","shape","defaultProps"],"mappings":"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"}
|
|
@@ -36,6 +36,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
|
|
|
36
36
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
37
37
|
var PresentationContext = /*#__PURE__*/React.createContext({
|
|
38
38
|
currentPage: 1,
|
|
39
|
+
fittedZoom: 1,
|
|
39
40
|
isFullscreen: false,
|
|
40
41
|
pageCount: 0,
|
|
41
42
|
showZoomInFullScreen: false
|
|
@@ -80,11 +81,18 @@ var PresentationProvider = /*#__PURE__*/function (_React$Component) {
|
|
|
80
81
|
});
|
|
81
82
|
});
|
|
82
83
|
|
|
84
|
+
_defineProperty(_assertThisInitialized(_this), "setFittedZoom", function (fittedZoom) {
|
|
85
|
+
_this.setState({
|
|
86
|
+
fittedZoom: fittedZoom
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
|
|
83
90
|
_this.state = {
|
|
84
91
|
currentPage: props.currentPage,
|
|
85
92
|
isFullscreen: props.isFullscreen,
|
|
86
93
|
pageCount: props.pageCount,
|
|
87
94
|
setCurrentPage: _this.setCurrentPage,
|
|
95
|
+
setFittedZoom: _this.setFittedZoom,
|
|
88
96
|
setIsFullscreen: _this.setIsFullscreen,
|
|
89
97
|
setShowControlsInFullScreen: _this.setShowControlsInFullScreen
|
|
90
98
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presentationContext.js","sources":["../../../src/utils/presentationContext.js"],"sourcesContent":["/* eslint-disable react/no-unused-state */\nimport React, { createContext, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nexport const PresentationContext = createContext({\n currentPage: 1,\n isFullscreen: false,\n pageCount: 0,\n showZoomInFullScreen: false,\n});\n\nexport const usePresentationContext = () => {\n const context = useContext(PresentationContext);\n if (!context) {\n throw new Error('PresentationContext must be used with PresentationProvider!');\n }\n return context;\n};\n\nexport class PresentationProvider extends React.Component {\n static getDerivedStateFromProps(nextProps, prevState) {\n const updates = {};\n const {\n pageCount,\n } = prevState;\n\n if (nextProps.pageCount !== pageCount) {\n updates.pageCount = nextProps.pageCount;\n }\n\n return updates;\n }\n\n constructor(props) {\n super(props);\n this.state = {\n currentPage: props.currentPage,\n isFullscreen: props.isFullscreen,\n pageCount: props.pageCount,\n setCurrentPage: this.setCurrentPage,\n setIsFullscreen: this.setIsFullscreen,\n setShowControlsInFullScreen: this.setShowControlsInFullScreen,\n };\n }\n\n setCurrentPage = currentPage => {\n this.setState({ currentPage });\n };\n\n setIsFullscreen = isFullscreen => {\n this.setState({ isFullscreen, showControlsInFullScreen: false });\n };\n\n setShowControlsInFullScreen = showControlsInFullScreen => {\n this.setState({ showControlsInFullScreen });\n }\n\n render() {\n const { children } = this.props;\n return (\n <PresentationContext.Provider value={this.state}>\n {children}\n </PresentationContext.Provider>\n );\n }\n}\n\nPresentationProvider.propTypes = {\n children: PropTypes.any,\n currentPage: PropTypes.number,\n isFullscreen: PropTypes.bool,\n pageCount: PropTypes.number,\n};\n\nPresentationProvider.defaultProps = {\n children: null,\n currentPage: 1,\n isFullscreen: false,\n pageCount: 1,\n};\n\nexport const PresentationConsumer = PresentationContext.Consumer;\n"],"names":["PresentationContext","createContext","currentPage","isFullscreen","pageCount","showZoomInFullScreen","usePresentationContext","context","useContext","Error","PresentationProvider","props","setState","showControlsInFullScreen","state","setCurrentPage","setIsFullscreen","setShowControlsInFullScreen","children","_jsx","nextProps","prevState","updates","React","Component","propTypes","PropTypes","any","number","bool","defaultProps","Consumer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIaA,mBAAmB,gBAAGC,mBAAa,CAAC;AAC/CC,EAAAA,WAAW,EAAE,CADkC;AAE/CC,EAAAA,
|
|
1
|
+
{"version":3,"file":"presentationContext.js","sources":["../../../src/utils/presentationContext.js"],"sourcesContent":["/* eslint-disable react/no-unused-state */\nimport React, { createContext, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nexport const PresentationContext = createContext({\n currentPage: 1,\n fittedZoom: 1,\n isFullscreen: false,\n pageCount: 0,\n showZoomInFullScreen: false,\n});\n\nexport const usePresentationContext = () => {\n const context = useContext(PresentationContext);\n if (!context) {\n throw new Error('PresentationContext must be used with PresentationProvider!');\n }\n return context;\n};\n\nexport class PresentationProvider extends React.Component {\n static getDerivedStateFromProps(nextProps, prevState) {\n const updates = {};\n const {\n pageCount,\n } = prevState;\n\n if (nextProps.pageCount !== pageCount) {\n updates.pageCount = nextProps.pageCount;\n }\n\n return updates;\n }\n\n constructor(props) {\n super(props);\n this.state = {\n currentPage: props.currentPage,\n isFullscreen: props.isFullscreen,\n pageCount: props.pageCount,\n setCurrentPage: this.setCurrentPage,\n setFittedZoom: this.setFittedZoom,\n setIsFullscreen: this.setIsFullscreen,\n setShowControlsInFullScreen: this.setShowControlsInFullScreen,\n };\n }\n\n setCurrentPage = currentPage => {\n this.setState({ currentPage });\n };\n\n setIsFullscreen = isFullscreen => {\n this.setState({ isFullscreen, showControlsInFullScreen: false });\n };\n\n setShowControlsInFullScreen = showControlsInFullScreen => {\n this.setState({ showControlsInFullScreen });\n }\n\n setFittedZoom = fittedZoom => {\n this.setState({ fittedZoom });\n }\n\n render() {\n const { children } = this.props;\n return (\n <PresentationContext.Provider value={this.state}>\n {children}\n </PresentationContext.Provider>\n );\n }\n}\n\nPresentationProvider.propTypes = {\n children: PropTypes.any,\n currentPage: PropTypes.number,\n isFullscreen: PropTypes.bool,\n pageCount: PropTypes.number,\n};\n\nPresentationProvider.defaultProps = {\n children: null,\n currentPage: 1,\n isFullscreen: false,\n pageCount: 1,\n};\n\nexport const PresentationConsumer = PresentationContext.Consumer;\n"],"names":["PresentationContext","createContext","currentPage","fittedZoom","isFullscreen","pageCount","showZoomInFullScreen","usePresentationContext","context","useContext","Error","PresentationProvider","props","setState","showControlsInFullScreen","state","setCurrentPage","setFittedZoom","setIsFullscreen","setShowControlsInFullScreen","children","_jsx","nextProps","prevState","updates","React","Component","propTypes","PropTypes","any","number","bool","defaultProps","Consumer"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useCallback, useEffect } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import Modal from 'react-modal';
|
|
4
4
|
import classNames from 'classnames';
|
|
@@ -35,9 +35,11 @@ var PresentationWrapper = function PresentationWrapper(_ref) {
|
|
|
35
35
|
|
|
36
36
|
var _usePresentationConte = usePresentationContext(),
|
|
37
37
|
currentPage = _usePresentationConte.currentPage,
|
|
38
|
+
fittedZoom = _usePresentationConte.fittedZoom,
|
|
38
39
|
isFullscreen = _usePresentationConte.isFullscreen,
|
|
39
40
|
pageCount = _usePresentationConte.pageCount,
|
|
40
41
|
setCurrentPage = _usePresentationConte.setCurrentPage,
|
|
42
|
+
setFittedZoom = _usePresentationConte.setFittedZoom,
|
|
41
43
|
setIsFullscreen = _usePresentationConte.setIsFullscreen,
|
|
42
44
|
setShowControlsInFullScreen = _usePresentationConte.setShowControlsInFullScreen,
|
|
43
45
|
showControlsInFullScreen = _usePresentationConte.showControlsInFullScreen;
|
|
@@ -46,11 +48,6 @@ var PresentationWrapper = function PresentationWrapper(_ref) {
|
|
|
46
48
|
setZoom = _useBuilderContext.setZoom,
|
|
47
49
|
zoom = _useBuilderContext.zoom;
|
|
48
50
|
|
|
49
|
-
var _useState = useState(1),
|
|
50
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
51
|
-
fittedZoom = _useState2[0],
|
|
52
|
-
setFittedZoom = _useState2[1];
|
|
53
|
-
|
|
54
51
|
var fitToScreen = useCallback(function () {
|
|
55
52
|
var delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
56
53
|
return setTimeout(function () {
|
|
@@ -67,8 +64,8 @@ var PresentationWrapper = function PresentationWrapper(_ref) {
|
|
|
67
64
|
}, delay);
|
|
68
65
|
}, [settings, isFullscreen, useFixedPresentationBar, pageCount]);
|
|
69
66
|
useEffect(function () {
|
|
70
|
-
fitToScreen();
|
|
71
|
-
}, []);
|
|
67
|
+
fitToScreen(100);
|
|
68
|
+
}, [isFullscreen]);
|
|
72
69
|
useEffect(function () {
|
|
73
70
|
if (isFullscreen) {
|
|
74
71
|
setShowControlsInFullScreen(true);
|
|
@@ -124,10 +121,13 @@ var PresentationWrapper = function PresentationWrapper(_ref) {
|
|
|
124
121
|
event = _ref2.event;
|
|
125
122
|
|
|
126
123
|
event.preventDefault();
|
|
127
|
-
var clientWidth = event.target.clientWidth;
|
|
128
124
|
|
|
129
|
-
if (
|
|
130
|
-
|
|
125
|
+
if (fittedZoom === zoom) {
|
|
126
|
+
var clientWidth = event.target.clientWidth;
|
|
127
|
+
|
|
128
|
+
if (axis === 'x' && window.innerWidth / 4 < distance && clientWidth * zoom < window.innerWidth) {
|
|
129
|
+
return v < 0 ? pageChanger(1)() : pageChanger(-1)();
|
|
130
|
+
}
|
|
131
131
|
}
|
|
132
132
|
} // onPinchEnd: ({ movement: [d] }) => {
|
|
133
133
|
// const zoomStep = Number(parseFloat(d / 1000).toFixed(1));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PresentationWrapper.js","sources":["../../../../src/components/Presentation/PresentationWrapper.js"],"sourcesContent":["import {\n useCallback,\n useEffect,\n useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport Modal from 'react-modal';\nimport classNames from 'classnames';\nimport { useGesture } from 'react-use-gesture';\nimport PresentationBar from './PresentationBar';\nimport ProgressBar from './ProgressBar';\nimport { useBuilderContext } from '../../utils/builderContext';\nimport { useEventListener, useFullscreenChange } from '../../utils/hooks';\nimport {\n changePage,\n throttle,\n zoomHandler,\n} from '../../utils/functions';\nimport { usePresentationContext } from '../../utils/presentationContext';\nimport { usePropContext } from '../../utils/propContext';\n// import { ZOOM_MIN, ZOOM_MAX } from '../../constants/zoom';\n\nconst PresentationWrapper = ({\n children,\n presentationBarActions,\n useFixedPresentationBar,\n}) => {\n const { onAnEventTrigger, settings } = usePropContext();\n const {\n currentPage,\n isFullscreen,\n pageCount,\n setCurrentPage,\n setIsFullscreen,\n setShowControlsInFullScreen,\n showControlsInFullScreen,\n } = usePresentationContext();\n\n const { setZoom, zoom } = useBuilderContext();\n const [fittedZoom, setFittedZoom] = useState(1);\n\n const fitToScreen = useCallback((delay = 0) => setTimeout(() => {\n const newZoom = zoomHandler({\n handler: setZoom,\n isFullscreen,\n isModeCustomize: false,\n limitZoom: false,\n settings,\n useFixedPresentationBar,\n useProgressBar: pageCount > 2,\n });\n setFittedZoom(newZoom);\n }, delay), [settings, isFullscreen, useFixedPresentationBar, pageCount]);\n\n useEffect(() => { fitToScreen(); }, []);\n\n useEffect(() => {\n if (isFullscreen) {\n setShowControlsInFullScreen(true);\n setTimeout(() => setShowControlsInFullScreen(false), 1500);\n }\n }, [isFullscreen]);\n\n const pageChanger = action => changePage({\n action,\n currentPage,\n pageCount,\n setCurrentPage,\n });\n\n const handleKeyboardEvent = useCallback(e => {\n if (e.keyCode === 39) {\n pageChanger(1)();\n } else if (e.keyCode === 37) {\n pageChanger(-1)();\n }\n });\n\n const setControlVisibility = e => {\n // TODO :: timeout in n out for better ux\n if (!isFullscreen) return;\n if (showControlsInFullScreen && window.innerHeight - e.clientY >= 200) {\n setShowControlsInFullScreen(false);\n } else if (!showControlsInFullScreen && window.innerHeight - e.clientY < 200) {\n setShowControlsInFullScreen(true);\n }\n };\n\n useEventListener('keydown', handleKeyboardEvent);\n useEventListener('mousemove', throttle(setControlVisibility, 150));\n useEventListener('gesturestart', e => e.preventDefault());\n useEventListener('gesturechange', e => e.preventDefault());\n useFullscreenChange(isFullscreen, setIsFullscreen, fitToScreen);\n\n const gesture = useGesture({\n onDragEnd: ({\n axis, direction: [v], distance, event,\n }) => {\n event.preventDefault();\n const { clientWidth } = event.target;\n if (axis === 'x'\n && window.innerWidth / 4 < distance\n && clientWidth * zoom < window.innerWidth) {\n return v < 0 ? pageChanger(1)() : pageChanger(-1)();\n }\n },\n // onPinchEnd: ({ movement: [d] }) => {\n // const zoomStep = Number(parseFloat(d / 1000).toFixed(1));\n // const newZoomValue = Number(((Math.round((zoom + zoomStep) * 10)) / 10).toFixed(2));\n // if (zoom !== newZoomValue && newZoomValue <= ZOOM_MAX) {\n // const minZoom = Math.min(fittedZoom, ZOOM_MIN);\n // setZoom(Math.max(newZoomValue, minZoom));\n // }\n // },\n });\n\n return (\n <>\n <Modal\n appElement={document.getElementById('root')}\n className={classNames('jfPresentation jfFields', { black: isFullscreen })}\n closeTimeoutMS={300}\n contentLabel=\"Report Presentation\"\n id=\"presentationModal\"\n isOpen={true}\n overlayClassName={classNames(\n 'jfPresentation-overlay',\n { fixedPresentationBar: useFixedPresentationBar, isFullscreen },\n )}\n portalClassName=\"PresentationModal\"\n shouldCloseOnEsc={false}\n shouldFocusAfterRender={false}\n >\n {children(currentPage - 1, gesture)}\n <PresentationBar\n currentPage={currentPage}\n fittedZoom={fittedZoom}\n fitToScreen={fitToScreen}\n isFullscreen={isFullscreen}\n isVisible={(!isFullscreen || (isFullscreen && showControlsInFullScreen))}\n onAnEventTrigger={onAnEventTrigger}\n pageCount={pageCount}\n presentationBarActions={presentationBarActions}\n setCurrentPage={setCurrentPage}\n setIsFullscreen={setIsFullscreen}\n settings={settings}\n setZoom={setZoom}\n zoom={zoom}\n />\n <ProgressBar\n currentPage={currentPage}\n pageCount={pageCount}\n />\n </Modal>\n </>\n );\n};\n\nPresentationWrapper.propTypes = {\n children: PropTypes.any,\n presentationBarActions: PropTypes.arrayOf(PropTypes.shape({})),\n useFixedPresentationBar: PropTypes.bool,\n};\n\nPresentationWrapper.defaultProps = {\n children: () => {},\n presentationBarActions: [],\n useFixedPresentationBar: false,\n};\n\nexport default PresentationWrapper;\n"],"names":["PresentationWrapper","children","presentationBarActions","useFixedPresentationBar","usePropContext","onAnEventTrigger","settings","usePresentationContext","currentPage","isFullscreen","pageCount","setCurrentPage","setIsFullscreen","setShowControlsInFullScreen","showControlsInFullScreen","useBuilderContext","setZoom","zoom","useState","fittedZoom","setFittedZoom","fitToScreen","useCallback","delay","setTimeout","newZoom","zoomHandler","handler","isModeCustomize","limitZoom","useProgressBar","useEffect","pageChanger","action","changePage","handleKeyboardEvent","e","keyCode","setControlVisibility","window","innerHeight","clientY","useEventListener","throttle","preventDefault","useFullscreenChange","gesture","useGesture","onDragEnd","axis","direction","v","distance","event","clientWidth","target","innerWidth","_jsx","_jsxs","document","getElementById","classNames","black","fixedPresentationBar","propTypes","PropTypes","any","arrayOf","shape","bool","defaultProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;IAsBMA,mBAAmB,GAAG,SAAtBA,mBAAsB,OAItB;AAAA,MAHJC,QAGI,QAHJA,QAGI;AAAA,MAFJC,sBAEI,QAFJA,sBAEI;AAAA,MADJC,uBACI,QADJA,uBACI;;AACJ,wBAAuCC,cAAc,EAArD;AAAA,MAAQC,gBAAR,mBAAQA,gBAAR;AAAA,MAA0BC,QAA1B,mBAA0BA,QAA1B;;AACA,8BAQIC,sBAAsB,EAR1B;AAAA,MACEC,WADF,yBACEA,WADF;AAAA,MAEEC,YAFF,yBAEEA,YAFF;AAAA,MAGEC,SAHF,yBAGEA,SAHF;AAAA,MAIEC,cAJF,yBAIEA,cAJF;AAAA,MAKEC,eALF,yBAKEA,eALF;AAAA,MAMEC,2BANF,yBAMEA,2BANF;AAAA,MAOEC,wBAPF,yBAOEA,wBAPF;;AAUA,2BAA0BC,iBAAiB,EAA3C;AAAA,MAAQC,OAAR,sBAAQA,OAAR;AAAA,MAAiBC,IAAjB,sBAAiBA,IAAjB;;AACA,kBAAoCC,QAAQ,CAAC,CAAD,CAA5C;AAAA;AAAA,MAAOC,UAAP;AAAA,MAAmBC,aAAnB;;AAEA,MAAMC,WAAW,GAAGC,WAAW,CAAC;AAAA,QAACC,KAAD,uEAAS,CAAT;AAAA,WAAeC,UAAU,CAAC,YAAM;AAC9D,UAAMC,OAAO,GAAGC,WAAW,CAAC;AAC1BC,QAAAA,OAAO,EAAEX,OADiB;AAE1BP,QAAAA,YAAY,EAAZA,YAF0B;AAG1BmB,QAAAA,eAAe,EAAE,KAHS;AAI1BC,QAAAA,SAAS,EAAE,KAJe;AAK1BvB,QAAAA,QAAQ,EAARA,QAL0B;AAM1BH,QAAAA,uBAAuB,EAAvBA,uBAN0B;AAO1B2B,QAAAA,cAAc,EAAEpB,SAAS,GAAG;AAPF,OAAD,CAA3B;AASAU,MAAAA,aAAa,CAACK,OAAD,CAAb;AACD,KAXwD,EAWtDF,KAXsD,CAAzB;AAAA,GAAD,EAWpB,CAACjB,QAAD,EAAWG,YAAX,EAAyBN,uBAAzB,EAAkDO,SAAlD,CAXoB,CAA/B;AAaAqB,EAAAA,SAAS,CAAC,YAAM;AAAEV,IAAAA,WAAW;AAAK,GAAzB,EAA2B,EAA3B,CAAT;AAEAU,EAAAA,SAAS,CAAC,YAAM;AACd,QAAItB,YAAJ,EAAkB;AAChBI,MAAAA,2BAA2B,CAAC,IAAD,CAA3B;AACAW,MAAAA,UAAU,CAAC;AAAA,eAAMX,2BAA2B,CAAC,KAAD,CAAjC;AAAA,OAAD,EAA2C,IAA3C,CAAV;AACD;AACF,GALQ,EAKN,CAACJ,YAAD,CALM,CAAT;;AAOA,MAAMuB,WAAW,GAAG,SAAdA,WAAc,CAAAC,MAAM;AAAA,WAAIC,UAAU,CAAC;AACvCD,MAAAA,MAAM,EAANA,MADuC;AAEvCzB,MAAAA,WAAW,EAAXA,WAFuC;AAGvCE,MAAAA,SAAS,EAATA,SAHuC;AAIvCC,MAAAA,cAAc,EAAdA;AAJuC,KAAD,CAAd;AAAA,GAA1B;;AAOA,MAAMwB,mBAAmB,GAAGb,WAAW,CAAC,UAAAc,CAAC,EAAI;AAC3C,QAAIA,CAAC,CAACC,OAAF,KAAc,EAAlB,EAAsB;AACpBL,MAAAA,WAAW,CAAC,CAAD,CAAX;AACD,KAFD,MAEO,IAAII,CAAC,CAACC,OAAF,KAAc,EAAlB,EAAsB;AAC3BL,MAAAA,WAAW,CAAC,CAAC,CAAF,CAAX;AACD;AACF,GANsC,CAAvC;;AAQA,MAAMM,oBAAoB,GAAG,SAAvBA,oBAAuB,CAAAF,CAAC,EAAI;AAChC;AACA,QAAI,CAAC3B,YAAL,EAAmB;;AACnB,QAAIK,wBAAwB,IAAIyB,MAAM,CAACC,WAAP,GAAqBJ,CAAC,CAACK,OAAvB,IAAkC,GAAlE,EAAuE;AACrE5B,MAAAA,2BAA2B,CAAC,KAAD,CAA3B;AACD,KAFD,MAEO,IAAI,CAACC,wBAAD,IAA6ByB,MAAM,CAACC,WAAP,GAAqBJ,CAAC,CAACK,OAAvB,GAAiC,GAAlE,EAAuE;AAC5E5B,MAAAA,2BAA2B,CAAC,IAAD,CAA3B;AACD;AACF,GARD;;AAUA6B,EAAAA,gBAAgB,CAAC,SAAD,EAAYP,mBAAZ,CAAhB;AACAO,EAAAA,gBAAgB,CAAC,WAAD,EAAcC,QAAQ,CAACL,oBAAD,EAAuB,GAAvB,CAAtB,CAAhB;AACAI,EAAAA,gBAAgB,CAAC,cAAD,EAAiB,UAAAN,CAAC;AAAA,WAAIA,CAAC,CAACQ,cAAF,EAAJ;AAAA,GAAlB,CAAhB;AACAF,EAAAA,gBAAgB,CAAC,eAAD,EAAkB,UAAAN,CAAC;AAAA,WAAIA,CAAC,CAACQ,cAAF,EAAJ;AAAA,GAAnB,CAAhB;AACAC,EAAAA,mBAAmB,CAACpC,YAAD,EAAeG,eAAf,EAAgCS,WAAhC,CAAnB;AAEA,MAAMyB,OAAO,GAAGC,UAAU,CAAC;AACzBC,IAAAA,SAAS,EAAE,0BAEL;AAAA,UADJC,IACI,SADJA,IACI;AAAA,iDADEC,SACF;AAAA,UADcC,CACd;AAAA,UADkBC,QAClB,SADkBA,QAClB;AAAA,UAD4BC,KAC5B,SAD4BA,KAC5B;;AACJA,MAAAA,KAAK,CAACT,cAAN;AACA,UAAQU,WAAR,GAAwBD,KAAK,CAACE,MAA9B,CAAQD,WAAR;;AACA,UAAIL,IAAI,KAAK,GAAT,IACDV,MAAM,CAACiB,UAAP,GAAoB,CAApB,GAAwBJ,QADvB,IAEDE,WAAW,GAAGrC,IAAd,GAAqBsB,MAAM,CAACiB,UAF/B,EAE2C;AACzC,eAAOL,CAAC,GAAG,CAAJ,GAAQnB,WAAW,CAAC,CAAD,CAAX,EAAR,GAA2BA,WAAW,CAAC,CAAC,CAAF,CAAX,EAAlC;AACD;AACF,KAXwB;AAazB;AACA;AACA;AACA;AACA;AACA;AACA;;AAnByB,GAAD,CAA1B;AAsBA,sBACEyB;AAAA,2BACEC,KAAC,KAAD;AACE,MAAA,UAAU,EAAEC,QAAQ,CAACC,cAAT,CAAwB,MAAxB,CADd;AAEE,MAAA,SAAS,EAAEC,UAAU,CAAC,yBAAD,EAA4B;AAAEC,QAAAA,KAAK,EAAErD;AAAT,OAA5B,CAFvB;AAGE,MAAA,cAAc,EAAE,GAHlB;AAIE,MAAA,YAAY,EAAC,qBAJf;AAKE,MAAA,EAAE,EAAC,mBALL;AAME,MAAA,MAAM,EAAE,IANV;AAOE,MAAA,gBAAgB,EAAEoD,UAAU,CAC1B,wBAD0B,EAE1B;AAAEE,QAAAA,oBAAoB,EAAE5D,uBAAxB;AAAiDM,QAAAA,YAAY,EAAZA;AAAjD,OAF0B,CAP9B;AAWE,MAAA,eAAe,EAAC,mBAXlB;AAYE,MAAA,gBAAgB,EAAE,KAZpB;AAaE,MAAA,sBAAsB,EAAE,KAb1B;AAAA,iBAeGR,QAAQ,CAACO,WAAW,GAAG,CAAf,EAAkBsC,OAAlB,CAfX,eAgBEW,IAAC,eAAD;AACE,QAAA,WAAW,EAAEjD,WADf;AAEE,QAAA,UAAU,EAAEW,UAFd;AAGE,QAAA,WAAW,EAAEE,WAHf;AAIE,QAAA,YAAY,EAAEZ,YAJhB;AAKE,QAAA,SAAS,EAAG,CAACA,YAAD,IAAkBA,YAAY,IAAIK,wBALhD;AAME,QAAA,gBAAgB,EAAET,gBANpB;AAOE,QAAA,SAAS,EAAEK,SAPb;AAQE,QAAA,sBAAsB,EAAER,sBAR1B;AASE,QAAA,cAAc,EAAES,cATlB;AAUE,QAAA,eAAe,EAAEC,eAVnB;AAWE,QAAA,QAAQ,EAAEN,QAXZ;AAYE,QAAA,OAAO,EAAEU,OAZX;AAaE,QAAA,IAAI,EAAEC;AAbR,QAhBF,eA+BEwC,IAAC,WAAD;AACE,QAAA,WAAW,EAAEjD,WADf;AAEE,QAAA,SAAS,EAAEE;AAFb,QA/BF;AAAA;AADF,IADF;AAwCD;;AAEDV,mBAAmB,CAACgE,SAApB,GAAgC;AAC9B/D,EAAAA,QAAQ,EAAEgE,SAAS,CAACC,GADU;AAE9BhE,EAAAA,sBAAsB,EAAE+D,SAAS,CAACE,OAAV,CAAkBF,SAAS,CAACG,KAAV,CAAgB,EAAhB,CAAlB,CAFM;AAG9BjE,EAAAA,uBAAuB,EAAE8D,SAAS,CAACI;AAHL,CAAhC;AAMArE,mBAAmB,CAACsE,YAApB,GAAmC;AACjCrE,EAAAA,QAAQ,EAAE,oBAAM,EADiB;AAEjCC,EAAAA,sBAAsB,EAAE,EAFS;AAGjCC,EAAAA,uBAAuB,EAAE;AAHQ,CAAnC;;;;"}
|
|
1
|
+
{"version":3,"file":"PresentationWrapper.js","sources":["../../../../src/components/Presentation/PresentationWrapper.js"],"sourcesContent":["import {\n useCallback,\n useEffect,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport Modal from 'react-modal';\nimport classNames from 'classnames';\nimport { useGesture } from 'react-use-gesture';\nimport PresentationBar from './PresentationBar';\nimport ProgressBar from './ProgressBar';\nimport { useBuilderContext } from '../../utils/builderContext';\nimport { useEventListener, useFullscreenChange } from '../../utils/hooks';\nimport {\n changePage,\n throttle,\n zoomHandler,\n} from '../../utils/functions';\nimport { usePresentationContext } from '../../utils/presentationContext';\nimport { usePropContext } from '../../utils/propContext';\n// import { ZOOM_MIN, ZOOM_MAX } from '../../constants/zoom';\n\nconst PresentationWrapper = ({\n children,\n presentationBarActions,\n useFixedPresentationBar,\n}) => {\n const { onAnEventTrigger, settings } = usePropContext();\n const {\n currentPage,\n fittedZoom,\n isFullscreen,\n pageCount,\n setCurrentPage,\n setFittedZoom,\n setIsFullscreen,\n setShowControlsInFullScreen,\n showControlsInFullScreen,\n } = usePresentationContext();\n\n const { setZoom, zoom } = useBuilderContext();\n\n const fitToScreen = useCallback((delay = 0) => setTimeout(() => {\n const newZoom = zoomHandler({\n handler: setZoom,\n isFullscreen,\n isModeCustomize: false,\n limitZoom: false,\n settings,\n useFixedPresentationBar,\n useProgressBar: pageCount > 2,\n });\n setFittedZoom(newZoom);\n }, delay), [settings, isFullscreen, useFixedPresentationBar, pageCount]);\n\n useEffect(() => { fitToScreen(100); }, [isFullscreen]);\n\n useEffect(() => {\n if (isFullscreen) {\n setShowControlsInFullScreen(true);\n setTimeout(() => setShowControlsInFullScreen(false), 1500);\n }\n }, [isFullscreen]);\n\n const pageChanger = action => changePage({\n action,\n currentPage,\n pageCount,\n setCurrentPage,\n });\n\n const handleKeyboardEvent = useCallback(e => {\n if (e.keyCode === 39) {\n pageChanger(1)();\n } else if (e.keyCode === 37) {\n pageChanger(-1)();\n }\n });\n\n const setControlVisibility = e => {\n // TODO :: timeout in n out for better ux\n if (!isFullscreen) return;\n if (showControlsInFullScreen && window.innerHeight - e.clientY >= 200) {\n setShowControlsInFullScreen(false);\n } else if (!showControlsInFullScreen && window.innerHeight - e.clientY < 200) {\n setShowControlsInFullScreen(true);\n }\n };\n\n useEventListener('keydown', handleKeyboardEvent);\n useEventListener('mousemove', throttle(setControlVisibility, 150));\n useEventListener('gesturestart', e => e.preventDefault());\n useEventListener('gesturechange', e => e.preventDefault());\n useFullscreenChange(isFullscreen, setIsFullscreen, fitToScreen);\n\n const gesture = useGesture({\n onDragEnd: ({\n axis, direction: [v], distance, event,\n }) => {\n event.preventDefault();\n if (fittedZoom === zoom) {\n const { clientWidth } = event.target;\n if (axis === 'x'\n && window.innerWidth / 4 < distance\n && clientWidth * zoom < window.innerWidth) {\n return v < 0 ? pageChanger(1)() : pageChanger(-1)();\n }\n }\n },\n // onPinchEnd: ({ movement: [d] }) => {\n // const zoomStep = Number(parseFloat(d / 1000).toFixed(1));\n // const newZoomValue = Number(((Math.round((zoom + zoomStep) * 10)) / 10).toFixed(2));\n // if (zoom !== newZoomValue && newZoomValue <= ZOOM_MAX) {\n // const minZoom = Math.min(fittedZoom, ZOOM_MIN);\n // setZoom(Math.max(newZoomValue, minZoom));\n // }\n // },\n });\n\n return (\n <>\n <Modal\n appElement={document.getElementById('root')}\n className={classNames('jfPresentation jfFields', { black: isFullscreen })}\n closeTimeoutMS={300}\n contentLabel=\"Report Presentation\"\n id=\"presentationModal\"\n isOpen={true}\n overlayClassName={classNames(\n 'jfPresentation-overlay',\n { fixedPresentationBar: useFixedPresentationBar, isFullscreen },\n )}\n portalClassName=\"PresentationModal\"\n shouldCloseOnEsc={false}\n shouldFocusAfterRender={false}\n >\n {children(currentPage - 1, gesture)}\n <PresentationBar\n currentPage={currentPage}\n fittedZoom={fittedZoom}\n fitToScreen={fitToScreen}\n isFullscreen={isFullscreen}\n isVisible={(!isFullscreen || (isFullscreen && showControlsInFullScreen))}\n onAnEventTrigger={onAnEventTrigger}\n pageCount={pageCount}\n presentationBarActions={presentationBarActions}\n setCurrentPage={setCurrentPage}\n setIsFullscreen={setIsFullscreen}\n settings={settings}\n setZoom={setZoom}\n zoom={zoom}\n />\n <ProgressBar\n currentPage={currentPage}\n pageCount={pageCount}\n />\n </Modal>\n </>\n );\n};\n\nPresentationWrapper.propTypes = {\n children: PropTypes.any,\n presentationBarActions: PropTypes.arrayOf(PropTypes.shape({})),\n useFixedPresentationBar: PropTypes.bool,\n};\n\nPresentationWrapper.defaultProps = {\n children: () => {},\n presentationBarActions: [],\n useFixedPresentationBar: false,\n};\n\nexport default PresentationWrapper;\n"],"names":["PresentationWrapper","children","presentationBarActions","useFixedPresentationBar","usePropContext","onAnEventTrigger","settings","usePresentationContext","currentPage","fittedZoom","isFullscreen","pageCount","setCurrentPage","setFittedZoom","setIsFullscreen","setShowControlsInFullScreen","showControlsInFullScreen","useBuilderContext","setZoom","zoom","fitToScreen","useCallback","delay","setTimeout","newZoom","zoomHandler","handler","isModeCustomize","limitZoom","useProgressBar","useEffect","pageChanger","action","changePage","handleKeyboardEvent","e","keyCode","setControlVisibility","window","innerHeight","clientY","useEventListener","throttle","preventDefault","useFullscreenChange","gesture","useGesture","onDragEnd","axis","direction","v","distance","event","clientWidth","target","innerWidth","_jsx","_jsxs","document","getElementById","classNames","black","fixedPresentationBar","propTypes","PropTypes","any","arrayOf","shape","bool","defaultProps"],"mappings":"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"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import 'core-js/modules/es.array.concat.js';
|
|
2
2
|
import 'core-js/modules/es.array.map.js';
|
|
3
|
+
import 'core-js/modules/es.array.slice.js';
|
|
3
4
|
import 'core-js/modules/es.number.to-fixed.js';
|
|
4
5
|
import 'core-js/modules/es.object.to-string.js';
|
|
5
6
|
import 'core-js/modules/es.regexp.to-string.js';
|
|
6
|
-
import { useRef, useEffect } from 'react';
|
|
7
|
+
import { useRef, useEffect, useMemo, useCallback } from 'react';
|
|
7
8
|
import PropTypes from 'prop-types';
|
|
8
|
-
import
|
|
9
|
+
import classNames from 'classnames';
|
|
10
|
+
import { TransformWrapper, TransformComponent } from 'react-zoom-pan-pinch';
|
|
11
|
+
import { mainWrapper, canvas, viewport, page } from '../../constants/classNames.js';
|
|
9
12
|
import StaticPage from './StaticPage.js';
|
|
10
13
|
import { usePropContext } from '../../utils/propContext.js';
|
|
11
14
|
import { useBuilderContext } from '../../utils/builderContext.js';
|
|
@@ -33,6 +36,7 @@ var StaticScene = function StaticScene(_ref) {
|
|
|
33
36
|
presentationPage = _ref.presentationPage;
|
|
34
37
|
|
|
35
38
|
var _usePresentationConte = usePresentationContext(),
|
|
39
|
+
fittedZoom = _usePresentationConte.fittedZoom,
|
|
36
40
|
isFullscreen = _usePresentationConte.isFullscreen,
|
|
37
41
|
showControlsInFullScreen = _usePresentationConte.showControlsInFullScreen;
|
|
38
42
|
|
|
@@ -41,19 +45,11 @@ var StaticScene = function StaticScene(_ref) {
|
|
|
41
45
|
settings = _usePropContext.settings;
|
|
42
46
|
|
|
43
47
|
var _useBuilderContext = useBuilderContext(),
|
|
48
|
+
setZoom = _useBuilderContext.setZoom,
|
|
44
49
|
zoom = _useBuilderContext.zoom;
|
|
45
50
|
|
|
46
51
|
var viewPortRef = useRef({});
|
|
47
|
-
var
|
|
48
|
-
var pageContainerStyles = useRef({});
|
|
49
|
-
var zoomAdjusterStyles = useRef({});
|
|
50
|
-
zoom = mode === 'print' ? 1 : zoom;
|
|
51
|
-
useEffect(function () {
|
|
52
|
-
if (viewPortRef.current) {
|
|
53
|
-
viewPortRef.current.scrollTop = lastScrollPosition;
|
|
54
|
-
}
|
|
55
|
-
}, []); // set last scroll position after changing mode
|
|
56
|
-
|
|
52
|
+
var transformRefs = useRef([]);
|
|
57
53
|
var reportBackgroundColor = settings.reportBackgroundColor,
|
|
58
54
|
_settings$reportLayou = settings.reportLayout,
|
|
59
55
|
reportLayout = _settings$reportLayou === void 0 ? 'A4 Landscape' : _settings$reportLayou,
|
|
@@ -65,31 +61,42 @@ var StaticScene = function StaticScene(_ref) {
|
|
|
65
61
|
reportPageTransition = _settings$reportPageT === void 0 ? 'noAnimation' : _settings$reportPageT;
|
|
66
62
|
var width = parseInt(reportLayoutWidth, 10);
|
|
67
63
|
var height = parseInt(reportLayoutHeight, 10);
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
};
|
|
78
|
-
zoomAdjusterStyles.current = {
|
|
79
|
-
height: parseFloat((height * zoom).toFixed(1)),
|
|
80
|
-
margin: '0',
|
|
81
|
-
width: parseFloat((width * zoom).toFixed(1))
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
if (viewPortRef.current.clientWidth < zoomAdjusterStyles.current.width) {
|
|
85
|
-
delete pageStyles.current.justifyContent;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
if (viewPortRef.current.clientHeight < zoomAdjusterStyles.current.height) {
|
|
89
|
-
delete pageStyles.current.alignItems;
|
|
90
|
-
}
|
|
64
|
+
useEffect(function () {
|
|
65
|
+
if (mode === 'print') {
|
|
66
|
+
setZoom(1);
|
|
67
|
+
}
|
|
68
|
+
}, [mode]);
|
|
69
|
+
useEffect(function () {
|
|
70
|
+
if (viewPortRef.current) {
|
|
71
|
+
viewPortRef.current.scrollTop = lastScrollPosition;
|
|
72
|
+
}
|
|
73
|
+
}, []); // set last scroll position after changing mode
|
|
91
74
|
|
|
75
|
+
useEffect(function () {
|
|
76
|
+
transformRefs.current = transformRefs.current.slice(0, pages.length);
|
|
77
|
+
}, [pages]);
|
|
78
|
+
var pageContainerStyles = useMemo(function () {
|
|
79
|
+
return {
|
|
80
|
+
height: height,
|
|
81
|
+
width: width
|
|
82
|
+
};
|
|
83
|
+
}, [width, height]);
|
|
92
84
|
var transitionStyle = usePageTransition(reportPageTransition, presentationPage);
|
|
85
|
+
var handleZoom = useCallback(function (zoomPanPinch) {
|
|
86
|
+
var fixedValue = parseFloat(zoomPanPinch.state.scale.toFixed(2));
|
|
87
|
+
var roundValue = parseFloat((Math.round(fixedValue * 100) / 100).toFixed(1));
|
|
88
|
+
|
|
89
|
+
if (roundValue <= 2 && roundValue >= 0.5) {
|
|
90
|
+
setZoom(roundValue);
|
|
91
|
+
}
|
|
92
|
+
}, []);
|
|
93
|
+
useEffect(function () {
|
|
94
|
+
if (transformRefs.current.length > 0) {
|
|
95
|
+
for (var i = 0; i < pages.length; i++) {
|
|
96
|
+
transformRefs.current[i].centerView(zoom);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}, [pages.length, zoom, isFullscreen]);
|
|
93
100
|
return /*#__PURE__*/jsxs("main", {
|
|
94
101
|
className: mainWrapper,
|
|
95
102
|
children: [/*#__PURE__*/jsx("div", _objectSpread(_objectSpread({
|
|
@@ -100,25 +107,49 @@ var StaticScene = function StaticScene(_ref) {
|
|
|
100
107
|
className: "".concat(canvas, " ").concat(reportPageTransition),
|
|
101
108
|
style: transitionStyle,
|
|
102
109
|
children: pages.map(function (page$1, index) {
|
|
110
|
+
var _cNames;
|
|
111
|
+
|
|
103
112
|
var backgroundColor = page$1.backgroundColor;
|
|
104
113
|
|
|
105
|
-
var style = _objectSpread(_objectSpread({}, pageContainerStyles
|
|
114
|
+
var style = _objectSpread(_objectSpread({}, pageContainerStyles), {}, {
|
|
106
115
|
backgroundColor: backgroundColor ? backgroundColor : reportBackgroundColor || '#fff'
|
|
107
116
|
});
|
|
108
117
|
|
|
109
118
|
return /*#__PURE__*/jsx("div", {
|
|
110
|
-
className:
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
119
|
+
className: classNames((_cNames = {}, _defineProperty(_cNames, page, true), _defineProperty(_cNames, slugify(reportLayout), true), _defineProperty(_cNames, "activePage", index === presentationPage), _cNames)),
|
|
120
|
+
children: /*#__PURE__*/jsx(TransformWrapper, {
|
|
121
|
+
ref: function ref(element) {
|
|
122
|
+
transformRefs.current[index] = element;
|
|
123
|
+
},
|
|
124
|
+
centerOnInit: true,
|
|
125
|
+
centerZoomedOut: true,
|
|
126
|
+
disablePadding: true,
|
|
127
|
+
doubleClick: {
|
|
128
|
+
step: 0.2
|
|
129
|
+
},
|
|
130
|
+
initialScale: zoom,
|
|
131
|
+
maxScale: 2,
|
|
132
|
+
minScale: 0.5,
|
|
133
|
+
onZoom: handleZoom,
|
|
134
|
+
panning: {
|
|
135
|
+
disabled: zoom <= fittedZoom
|
|
136
|
+
},
|
|
137
|
+
pinch: {
|
|
138
|
+
step: 1
|
|
139
|
+
},
|
|
140
|
+
children: /*#__PURE__*/jsx(TransformComponent, {
|
|
141
|
+
wrapperStyle: {
|
|
142
|
+
height: '100%',
|
|
143
|
+
width: '100%'
|
|
144
|
+
},
|
|
145
|
+
children: /*#__PURE__*/jsx(StaticPage, {
|
|
146
|
+
acceptedItems: acceptedItems,
|
|
147
|
+
additionalPageItems: additionalPageItems,
|
|
148
|
+
hashCode: hashCode,
|
|
149
|
+
itemAccessor: itemAccessor,
|
|
150
|
+
items: page$1.items,
|
|
151
|
+
style: style
|
|
152
|
+
})
|
|
122
153
|
})
|
|
123
154
|
})
|
|
124
155
|
}, "page_".concat(index.toString()));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StaticScene.js","sources":["../../../../src/components/Preview/StaticScene.js"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport * as classNames from '../../constants/classNames';\nimport StaticPage from './StaticPage';\nimport { usePropContext } from '../../utils/propContext';\nimport { useBuilderContext } from '../../utils/builderContext';\nimport { slugify } from '../../utils/string';\nimport { usePageTransition } from '../../utils/hooks';\nimport { usePresentationContext } from '../../utils/presentationContext';\nimport ZoomControls from '../Builder/ZoomControls';\n\nconst StaticScene = ({\n additionalPageItems,\n gesture,\n hashCode,\n hideZoom,\n itemAccessor,\n lastScrollPosition,\n mode,\n pages,\n presentationPage,\n}) => {\n const { isFullscreen, showControlsInFullScreen } = usePresentationContext();\n const { acceptedItems, settings } = usePropContext();\n let { zoom } = useBuilderContext();\n const viewPortRef = useRef({});\n const pageStyles = useRef({});\n const pageContainerStyles = useRef({});\n const zoomAdjusterStyles = useRef({});\n zoom = mode === 'print' ? 1 : zoom;\n useEffect(() => {\n if (viewPortRef.current) {\n viewPortRef.current.scrollTop = lastScrollPosition;\n }\n }, []); // set last scroll position after changing mode\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 pageStyles.current = {\n alignItems: 'center',\n justifyContent: 'center',\n };\n pageContainerStyles.current = {\n height,\n transform: `scale(${zoom})`,\n transformOrigin: '0 0',\n width,\n };\n zoomAdjusterStyles.current = {\n height: parseFloat((height * zoom).toFixed(1)),\n margin: '0',\n width: parseFloat((width * zoom).toFixed(1)),\n };\n\n if (viewPortRef.current.clientWidth < zoomAdjusterStyles.current.width) {\n delete pageStyles.current.justifyContent;\n }\n\n if (viewPortRef.current.clientHeight < zoomAdjusterStyles.current.height) {\n delete pageStyles.current.alignItems;\n }\n\n const transitionStyle = usePageTransition(reportPageTransition, presentationPage);\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.current,\n backgroundColor: backgroundColor ? backgroundColor : reportBackgroundColor || '#fff',\n };\n return (\n <div\n key={`page_${index.toString()}`}\n className={`${\n classNames.page\n } ${\n slugify(reportLayout)\n } ${\n index === presentationPage ? 'activePage' : ''\n }`}\n style={pageStyles.current}\n >\n <div\n className={`jfReport-zoomAdjuster ${mode !== 'preview' ? 'd-flex' : ''}`}\n style={zoomAdjusterStyles.current}\n >\n <StaticPage\n acceptedItems={acceptedItems}\n additionalPageItems={additionalPageItems}\n hashCode={hashCode}\n itemAccessor={itemAccessor}\n items={page.items}\n style={style}\n />\n </div>\n </div>\n );\n })}\n </div>\n </div>\n <ZoomControls\n pages={pages}\n showZoom={(!isFullscreen || (isFullscreen && showControlsInFullScreen)) && !hideZoom}\n />\n </main>\n );\n};\n\nStaticScene.propTypes = {\n additionalPageItems: PropTypes.arrayOf(PropTypes.node),\n gesture: PropTypes.func,\n hashCode: PropTypes.string,\n hideZoom: PropTypes.bool,\n itemAccessor: PropTypes.func,\n lastScrollPosition: PropTypes.number,\n mode: PropTypes.string,\n pages: PropTypes.arrayOf(PropTypes.shape({})),\n presentationPage: PropTypes.number,\n};\n\nStaticScene.defaultProps = {\n additionalPageItems: [],\n gesture: () => {},\n hashCode: '',\n hideZoom: false,\n itemAccessor: () => {},\n lastScrollPosition: 0,\n mode: 'preview',\n pages: [],\n presentationPage: 0,\n};\n\nexport default StaticScene;\n"],"names":["StaticScene","additionalPageItems","gesture","hashCode","hideZoom","itemAccessor","lastScrollPosition","mode","pages","presentationPage","usePresentationContext","isFullscreen","showControlsInFullScreen","usePropContext","acceptedItems","settings","useBuilderContext","zoom","viewPortRef","useRef","pageStyles","pageContainerStyles","zoomAdjusterStyles","useEffect","current","scrollTop","reportBackgroundColor","reportLayout","reportLayoutHeight","reportLayoutWidth","reportPageTransition","width","parseInt","height","alignItems","justifyContent","transform","transformOrigin","parseFloat","toFixed","margin","clientWidth","clientHeight","transitionStyle","usePageTransition","_jsxs","classNames","_jsx","map","page","index","backgroundColor","style","slugify","items","toString","propTypes","PropTypes","arrayOf","node","func","string","bool","number","shape","defaultProps"],"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 { TransformWrapper, TransformComponent } from 'react-zoom-pan-pinch';\nimport * as classNames from '../../constants/classNames';\nimport StaticPage from './StaticPage';\nimport { usePropContext } from '../../utils/propContext';\nimport { useBuilderContext } from '../../utils/builderContext';\nimport { slugify } from '../../utils/string';\nimport { usePageTransition } from '../../utils/hooks';\nimport { usePresentationContext } from '../../utils/presentationContext';\nimport ZoomControls from '../Builder/ZoomControls';\n\nconst StaticScene = ({\n additionalPageItems,\n gesture,\n hashCode,\n hideZoom,\n itemAccessor,\n lastScrollPosition,\n mode,\n pages,\n presentationPage,\n}) => {\n const { fittedZoom, isFullscreen, showControlsInFullScreen } = usePresentationContext();\n const { acceptedItems, settings } = usePropContext();\n const { setZoom, zoom } = useBuilderContext();\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 if (mode === 'print') {\n setZoom(1);\n }\n }, [mode]);\n\n useEffect(() => {\n if (viewPortRef.current) {\n viewPortRef.current.scrollTop = lastScrollPosition;\n }\n }, []); // set last scroll position after changing mode\n\n useEffect(() => {\n transformRefs.current = transformRefs.current.slice(0, pages.length);\n }, [pages]);\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 }, []);\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, isFullscreen]);\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 >\n <TransformWrapper\n ref={element => { transformRefs.current[index] = element; }}\n centerOnInit={true}\n centerZoomedOut={true}\n disablePadding={true}\n doubleClick={{\n step: 0.2,\n }}\n initialScale={zoom}\n maxScale={2}\n minScale={0.5}\n onZoom={handleZoom}\n panning={{\n disabled: zoom <= fittedZoom,\n }}\n pinch={{\n step: 1,\n }}\n >\n <TransformComponent\n wrapperStyle={{ height: '100%', width: '100%' }}\n >\n <StaticPage\n acceptedItems={acceptedItems}\n additionalPageItems={additionalPageItems}\n hashCode={hashCode}\n itemAccessor={itemAccessor}\n items={page.items}\n style={style}\n />\n </TransformComponent>\n </TransformWrapper>\n </div>\n );\n })}\n </div>\n </div>\n <ZoomControls\n pages={pages}\n showZoom={(!isFullscreen || (isFullscreen && showControlsInFullScreen)) && !hideZoom}\n />\n </main>\n );\n};\n\nStaticScene.propTypes = {\n additionalPageItems: PropTypes.arrayOf(PropTypes.node),\n gesture: PropTypes.func,\n hashCode: PropTypes.string,\n hideZoom: PropTypes.bool,\n itemAccessor: PropTypes.func,\n lastScrollPosition: PropTypes.number,\n mode: PropTypes.string,\n pages: PropTypes.arrayOf(PropTypes.shape({})),\n presentationPage: PropTypes.number,\n};\n\nStaticScene.defaultProps = {\n additionalPageItems: [],\n gesture: () => {},\n hashCode: '',\n hideZoom: false,\n itemAccessor: () => {},\n lastScrollPosition: 0,\n mode: 'preview',\n pages: [],\n presentationPage: 0,\n};\n\nexport default StaticScene;\n"],"names":["StaticScene","additionalPageItems","gesture","hashCode","hideZoom","itemAccessor","lastScrollPosition","mode","pages","presentationPage","usePresentationContext","fittedZoom","isFullscreen","showControlsInFullScreen","usePropContext","acceptedItems","settings","useBuilderContext","setZoom","zoom","viewPortRef","useRef","transformRefs","reportBackgroundColor","reportLayout","reportLayoutHeight","reportLayoutWidth","reportPageTransition","width","parseInt","height","useEffect","current","scrollTop","slice","length","pageContainerStyles","useMemo","transitionStyle","usePageTransition","handleZoom","useCallback","zoomPanPinch","fixedValue","parseFloat","state","scale","toFixed","roundValue","Math","round","i","centerView","_jsxs","classNames","_jsx","map","page","index","backgroundColor","style","cNames","slugify","element","step","disabled","items","toString","propTypes","PropTypes","arrayOf","node","func","string","bool","number","shape","defaultProps"],"mappings":"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"}
|
|
@@ -27,6 +27,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
|
|
|
27
27
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
28
28
|
var PresentationContext = /*#__PURE__*/createContext({
|
|
29
29
|
currentPage: 1,
|
|
30
|
+
fittedZoom: 1,
|
|
30
31
|
isFullscreen: false,
|
|
31
32
|
pageCount: 0,
|
|
32
33
|
showZoomInFullScreen: false
|
|
@@ -71,11 +72,18 @@ var PresentationProvider = /*#__PURE__*/function (_React$Component) {
|
|
|
71
72
|
});
|
|
72
73
|
});
|
|
73
74
|
|
|
75
|
+
_defineProperty(_assertThisInitialized(_this), "setFittedZoom", function (fittedZoom) {
|
|
76
|
+
_this.setState({
|
|
77
|
+
fittedZoom: fittedZoom
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
|
|
74
81
|
_this.state = {
|
|
75
82
|
currentPage: props.currentPage,
|
|
76
83
|
isFullscreen: props.isFullscreen,
|
|
77
84
|
pageCount: props.pageCount,
|
|
78
85
|
setCurrentPage: _this.setCurrentPage,
|
|
86
|
+
setFittedZoom: _this.setFittedZoom,
|
|
79
87
|
setIsFullscreen: _this.setIsFullscreen,
|
|
80
88
|
setShowControlsInFullScreen: _this.setShowControlsInFullScreen
|
|
81
89
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presentationContext.js","sources":["../../../src/utils/presentationContext.js"],"sourcesContent":["/* eslint-disable react/no-unused-state */\nimport React, { createContext, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nexport const PresentationContext = createContext({\n currentPage: 1,\n isFullscreen: false,\n pageCount: 0,\n showZoomInFullScreen: false,\n});\n\nexport const usePresentationContext = () => {\n const context = useContext(PresentationContext);\n if (!context) {\n throw new Error('PresentationContext must be used with PresentationProvider!');\n }\n return context;\n};\n\nexport class PresentationProvider extends React.Component {\n static getDerivedStateFromProps(nextProps, prevState) {\n const updates = {};\n const {\n pageCount,\n } = prevState;\n\n if (nextProps.pageCount !== pageCount) {\n updates.pageCount = nextProps.pageCount;\n }\n\n return updates;\n }\n\n constructor(props) {\n super(props);\n this.state = {\n currentPage: props.currentPage,\n isFullscreen: props.isFullscreen,\n pageCount: props.pageCount,\n setCurrentPage: this.setCurrentPage,\n setIsFullscreen: this.setIsFullscreen,\n setShowControlsInFullScreen: this.setShowControlsInFullScreen,\n };\n }\n\n setCurrentPage = currentPage => {\n this.setState({ currentPage });\n };\n\n setIsFullscreen = isFullscreen => {\n this.setState({ isFullscreen, showControlsInFullScreen: false });\n };\n\n setShowControlsInFullScreen = showControlsInFullScreen => {\n this.setState({ showControlsInFullScreen });\n }\n\n render() {\n const { children } = this.props;\n return (\n <PresentationContext.Provider value={this.state}>\n {children}\n </PresentationContext.Provider>\n );\n }\n}\n\nPresentationProvider.propTypes = {\n children: PropTypes.any,\n currentPage: PropTypes.number,\n isFullscreen: PropTypes.bool,\n pageCount: PropTypes.number,\n};\n\nPresentationProvider.defaultProps = {\n children: null,\n currentPage: 1,\n isFullscreen: false,\n pageCount: 1,\n};\n\nexport const PresentationConsumer = PresentationContext.Consumer;\n"],"names":["PresentationContext","createContext","currentPage","isFullscreen","pageCount","showZoomInFullScreen","usePresentationContext","context","useContext","Error","PresentationProvider","props","setState","showControlsInFullScreen","state","setCurrentPage","setIsFullscreen","setShowControlsInFullScreen","children","_jsx","nextProps","prevState","updates","React","Component","propTypes","PropTypes","any","number","bool","defaultProps","Consumer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;IAIaA,mBAAmB,gBAAGC,aAAa,CAAC;AAC/CC,EAAAA,WAAW,EAAE,CADkC;AAE/CC,EAAAA,
|
|
1
|
+
{"version":3,"file":"presentationContext.js","sources":["../../../src/utils/presentationContext.js"],"sourcesContent":["/* eslint-disable react/no-unused-state */\nimport React, { createContext, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nexport const PresentationContext = createContext({\n currentPage: 1,\n fittedZoom: 1,\n isFullscreen: false,\n pageCount: 0,\n showZoomInFullScreen: false,\n});\n\nexport const usePresentationContext = () => {\n const context = useContext(PresentationContext);\n if (!context) {\n throw new Error('PresentationContext must be used with PresentationProvider!');\n }\n return context;\n};\n\nexport class PresentationProvider extends React.Component {\n static getDerivedStateFromProps(nextProps, prevState) {\n const updates = {};\n const {\n pageCount,\n } = prevState;\n\n if (nextProps.pageCount !== pageCount) {\n updates.pageCount = nextProps.pageCount;\n }\n\n return updates;\n }\n\n constructor(props) {\n super(props);\n this.state = {\n currentPage: props.currentPage,\n isFullscreen: props.isFullscreen,\n pageCount: props.pageCount,\n setCurrentPage: this.setCurrentPage,\n setFittedZoom: this.setFittedZoom,\n setIsFullscreen: this.setIsFullscreen,\n setShowControlsInFullScreen: this.setShowControlsInFullScreen,\n };\n }\n\n setCurrentPage = currentPage => {\n this.setState({ currentPage });\n };\n\n setIsFullscreen = isFullscreen => {\n this.setState({ isFullscreen, showControlsInFullScreen: false });\n };\n\n setShowControlsInFullScreen = showControlsInFullScreen => {\n this.setState({ showControlsInFullScreen });\n }\n\n setFittedZoom = fittedZoom => {\n this.setState({ fittedZoom });\n }\n\n render() {\n const { children } = this.props;\n return (\n <PresentationContext.Provider value={this.state}>\n {children}\n </PresentationContext.Provider>\n );\n }\n}\n\nPresentationProvider.propTypes = {\n children: PropTypes.any,\n currentPage: PropTypes.number,\n isFullscreen: PropTypes.bool,\n pageCount: PropTypes.number,\n};\n\nPresentationProvider.defaultProps = {\n children: null,\n currentPage: 1,\n isFullscreen: false,\n pageCount: 1,\n};\n\nexport const PresentationConsumer = PresentationContext.Consumer;\n"],"names":["PresentationContext","createContext","currentPage","fittedZoom","isFullscreen","pageCount","showZoomInFullScreen","usePresentationContext","context","useContext","Error","PresentationProvider","props","setState","showControlsInFullScreen","state","setCurrentPage","setFittedZoom","setIsFullscreen","setShowControlsInFullScreen","children","_jsx","nextProps","prevState","updates","React","Component","propTypes","PropTypes","any","number","bool","defaultProps","Consumer"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jotforminc/dnd-builder",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.0",
|
|
4
4
|
"files": [
|
|
5
5
|
"lib"
|
|
6
6
|
],
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"intersection-observer": "0.12.0",
|
|
16
16
|
"lodash.isequal": "4.5.0",
|
|
17
17
|
"memoize-one": "5.1.1",
|
|
18
|
-
"nanoid": "3.1.
|
|
18
|
+
"nanoid": "3.1.31",
|
|
19
19
|
"object-hash": "2.1.1",
|
|
20
20
|
"prop-types": "15.7.2",
|
|
21
21
|
"re-resizable": "6.9.0",
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
"react-sortable-hoc": "2.0.0",
|
|
32
32
|
"react-use-gesture": "9.0.4",
|
|
33
33
|
"react-window": "1.8.6",
|
|
34
|
+
"react-zoom-pan-pinch": "^3.0.1",
|
|
34
35
|
"recharts": "2.0.7",
|
|
35
36
|
"regenerator-runtime": "0.13.7"
|
|
36
37
|
},
|