@jotforminc/dnd-builder 2.5.9 → 2.6.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.
- package/CHANGELOG.md +16 -0
- package/lib/cjs/components/PageItemResizer.js +1 -1
- package/lib/cjs/components/PageItemResizer.js.map +1 -1
- package/lib/cjs/components/Presentation/PresentationBar/PresentationBar.js +19 -0
- package/lib/cjs/components/Presentation/PresentationBar/PresentationBar.js.map +1 -1
- package/lib/esm/components/PageItemResizer.js +1 -1
- package/lib/esm/components/PageItemResizer.js.map +1 -1
- package/lib/esm/components/Presentation/PresentationBar/PresentationBar.js +19 -0
- package/lib/esm/components/Presentation/PresentationBar/PresentationBar.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,22 @@
|
|
|
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.6.1](https://github.com/jotform/dnd-builder/compare/v2.6.0...v2.6.1) (2023-10-03)
|
|
6
|
+
|
|
7
|
+
## [2.6.0](https://github.com/jotform/dnd-builder/compare/v2.5.10...v2.6.0) (2023-10-03)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### Features
|
|
11
|
+
|
|
12
|
+
* exceptionalClass update for contextMenu in pageItemResizer ([5b8e161](https://github.com/jotform/dnd-builder/commit/5b8e161df9adfb1b701b67346f91872f326dbbac))
|
|
13
|
+
|
|
14
|
+
### [2.5.10](https://github.com/jotform/dnd-builder/compare/v2.5.9...v2.5.10) (2023-09-13)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Bug Fixes
|
|
18
|
+
|
|
19
|
+
* **dnd-builder:** temporary fix for chromium svg rendering issue ([8d3b566](https://github.com/jotform/dnd-builder/commit/8d3b56612a423d1e786692dbd0f686d5546a9bd8))
|
|
20
|
+
|
|
5
21
|
### [2.5.9](https://github.com/jotform/dnd-builder/compare/v2.5.6...v2.5.9) (2023-08-23)
|
|
6
22
|
|
|
7
23
|
|
|
@@ -45,7 +45,7 @@ var enableResize = {
|
|
|
45
45
|
topRight: true
|
|
46
46
|
};
|
|
47
47
|
var lockAspectRatioTypes = ['image', 'icon'];
|
|
48
|
-
var exceptionalClasses = ['reportHandle', 'reportItemMenu', 'jfReport-pane', 'pageSettingSideBtn', 'reportItemWrapper', 'reportRotater', 'forZoom', 'ql-toolbar'];
|
|
48
|
+
var exceptionalClasses = ['reportHandle', 'reportItemMenu', 'jfReport-pane', 'pageSettingSideBtn', 'reportItemWrapper', 'reportRotater', 'forZoom', 'ql-toolbar', 'jSheetContextMenu'];
|
|
49
49
|
|
|
50
50
|
var PageItemResizer = function PageItemResizer(_ref) {
|
|
51
51
|
var changeLockStatus = _ref.changeLockStatus,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageItemResizer.js","sources":["../../../src/components/PageItemResizer.js"],"sourcesContent":["import {\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { Resizable } from 're-resizable';\nimport { createPortal } from 'react-dom';\nimport classNames from 'classnames';\nimport { resizeStaticProps } from '../constants/staticProps';\nimport TextEditorToolbar from './TextEditor/CustomToolbar';\n\nimport DraggableItemActions from './DraggableItem/DraggableItemActions';\nimport ItemPositioner from './ItemPositioner';\nimport withClickOutside from './withClickOutside';\n\nconst ResizableWithClickOutside = withClickOutside(Resizable);\n\nconst enableResize = {\n bottom: true,\n bottomLeft: true,\n bottomRight: true,\n left: true,\n right: true,\n top: true,\n topLeft: true,\n topRight: true,\n};\nconst lockAspectRatioTypes = ['image', 'icon'];\nconst exceptionalClasses = [\n 'reportHandle',\n 'reportItemMenu',\n 'jfReport-pane',\n 'pageSettingSideBtn',\n 'reportItemWrapper',\n 'reportRotater',\n 'forZoom',\n 'ql-toolbar',\n];\n\nconst PageItemResizer = ({\n changeLockStatus,\n deleteItem,\n duplicateItem,\n isDragging,\n isMultipleItemSelected,\n isRightPanelOpen,\n isSelectedElement,\n isTextEditorOpen,\n item,\n onClickOutside,\n onResize,\n onResizeStop,\n pageID,\n setActiveElement,\n setIsRightPanelOpen,\n stateHeight,\n stateLeft,\n stateTop,\n stateWidth,\n zoom,\n}) => {\n const requestRef = useRef();\n const [lockAspectRatio, setLockAspectRatio] = useState(false);\n\n const handleKeyUp = e => {\n if (!e.shiftKey) setLockAspectRatio(false);\n };\n\n const handleKeyDown = e => {\n if (e.shiftKey) setLockAspectRatio(true);\n };\n\n const seriousResize = (deltaWidth, deltaHeight, direction) => {\n return () => {\n onResize(deltaWidth, deltaHeight, direction);\n requestRef.current = undefined;\n };\n };\n\n const onResizeStart = e => {\n e.preventDefault();\n window.addEventListener('keydown', handleKeyDown);\n window.addEventListener('keyup', handleKeyUp);\n };\n\n const onResizeRAF = (e, direction, ref, { height: deltaHeight, width: deltaWidth }) => {\n if (!requestRef.current) {\n requestRef.current = global\n .requestAnimationFrame(\n seriousResize(\n Math.round(deltaWidth * (1 / zoom)),\n Math.round(deltaHeight * (1 / zoom)),\n direction,\n ),\n );\n }\n };\n\n const onResizeEnd = (e, direction, ref, { height: deltaHeight, width: deltaWidth }) => {\n onResizeStop(\n Math.round(deltaWidth * (1 / zoom)),\n Math.round(deltaHeight * (1 / zoom)),\n direction,\n );\n window.removeEventListener('keydown', handleKeyDown);\n window.removeEventListener('keyup', handleKeyUp);\n };\n\n const itemPositionerStyle = useMemo(() => ({\n height: Math.round(stateHeight * zoom),\n left: Math.round(stateLeft * zoom),\n pointerEvents: 'none',\n position: 'absolute',\n top: Math.round(stateTop * zoom),\n touchAction: 'none',\n width: Math.round(stateWidth * zoom),\n }), [stateHeight, stateLeft, stateTop, stateWidth, zoom]);\n\n const size = useMemo(() => ({\n height: Math.round(stateHeight * zoom),\n width: Math.round(stateWidth * zoom),\n }), [stateHeight, stateWidth, zoom]);\n\n const openSettings = useCallback(() => {\n setActiveElement(item.id);\n if (!isRightPanelOpen) {\n setIsRightPanelOpen(true);\n }\n }, [item.id, isRightPanelOpen, setIsRightPanelOpen]);\n\n const { isLocked } = item;\n\n if (isDragging || !isSelectedElement) return null;\n return createPortal(\n <ItemPositioner\n style={itemPositionerStyle}\n >\n <ResizableWithClickOutside\n className={classNames(\n 'reportItemResizer',\n { hideVerticalHandle: !(item.height > 50) },\n { hideHorizontalHandle: !(item.width > 50) },\n )}\n enable={!item.isLocked && enableResize}\n exceptionalClasses={exceptionalClasses}\n lockAspectRatio={lockAspectRatioTypes.includes(item.itemType) || lockAspectRatio}\n onClickOutside={onClickOutside}\n onResize={onResizeRAF}\n onResizeStart={onResizeStart}\n onResizeStop={onResizeEnd}\n size={size}\n {...resizeStaticProps}\n withClickOutsideWrapperClass={`reportItemResizer-wrapper${isLocked ? ' isLocked' : ''}`}\n />\n <DraggableItemActions\n changeLockStatus={changeLockStatus}\n deleteItem={deleteItem}\n duplicateItem={duplicateItem}\n isLocked={item.isLocked}\n isMultipleItemSelected={isMultipleItemSelected}\n openSettings={openSettings}\n />\n <TextEditorToolbar\n isTextEditorOpen={isTextEditorOpen}\n itemWidth={stateWidth * zoom}\n />\n </ItemPositioner>,\n document.querySelector(`.jfReport-page[data-id=\"${pageID}\"]`),\n );\n};\n\nexport default PageItemResizer;\n"],"names":["ResizableWithClickOutside","withClickOutside","Resizable","enableResize","bottom","bottomLeft","bottomRight","left","right","top","topLeft","topRight","lockAspectRatioTypes","exceptionalClasses","PageItemResizer","changeLockStatus","deleteItem","duplicateItem","isDragging","isMultipleItemSelected","isRightPanelOpen","isSelectedElement","isTextEditorOpen","item","onClickOutside","onResize","onResizeStop","pageID","setActiveElement","setIsRightPanelOpen","stateHeight","stateLeft","stateTop","stateWidth","zoom","requestRef","useRef","useState","lockAspectRatio","setLockAspectRatio","handleKeyUp","e","shiftKey","handleKeyDown","seriousResize","deltaWidth","deltaHeight","direction","current","undefined","onResizeStart","preventDefault","window","addEventListener","onResizeRAF","ref","height","width","global","requestAnimationFrame","Math","round","onResizeEnd","removeEventListener","itemPositionerStyle","useMemo","pointerEvents","position","touchAction","size","openSettings","useCallback","id","isLocked","createPortal","_jsxs","_jsx","classNames","hideVerticalHandle","hideHorizontalHandle","includes","itemType","resizeStaticProps","TextEditorToolbar","document","querySelector"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PageItemResizer.js","sources":["../../../src/components/PageItemResizer.js"],"sourcesContent":["import {\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { Resizable } from 're-resizable';\nimport { createPortal } from 'react-dom';\nimport classNames from 'classnames';\nimport { resizeStaticProps } from '../constants/staticProps';\nimport TextEditorToolbar from './TextEditor/CustomToolbar';\n\nimport DraggableItemActions from './DraggableItem/DraggableItemActions';\nimport ItemPositioner from './ItemPositioner';\nimport withClickOutside from './withClickOutside';\n\nconst ResizableWithClickOutside = withClickOutside(Resizable);\n\nconst enableResize = {\n bottom: true,\n bottomLeft: true,\n bottomRight: true,\n left: true,\n right: true,\n top: true,\n topLeft: true,\n topRight: true,\n};\nconst lockAspectRatioTypes = ['image', 'icon'];\nconst exceptionalClasses = [\n 'reportHandle',\n 'reportItemMenu',\n 'jfReport-pane',\n 'pageSettingSideBtn',\n 'reportItemWrapper',\n 'reportRotater',\n 'forZoom',\n 'ql-toolbar',\n 'jSheetContextMenu',\n];\n\nconst PageItemResizer = ({\n changeLockStatus,\n deleteItem,\n duplicateItem,\n isDragging,\n isMultipleItemSelected,\n isRightPanelOpen,\n isSelectedElement,\n isTextEditorOpen,\n item,\n onClickOutside,\n onResize,\n onResizeStop,\n pageID,\n setActiveElement,\n setIsRightPanelOpen,\n stateHeight,\n stateLeft,\n stateTop,\n stateWidth,\n zoom,\n}) => {\n const requestRef = useRef();\n const [lockAspectRatio, setLockAspectRatio] = useState(false);\n\n const handleKeyUp = e => {\n if (!e.shiftKey) setLockAspectRatio(false);\n };\n\n const handleKeyDown = e => {\n if (e.shiftKey) setLockAspectRatio(true);\n };\n\n const seriousResize = (deltaWidth, deltaHeight, direction) => {\n return () => {\n onResize(deltaWidth, deltaHeight, direction);\n requestRef.current = undefined;\n };\n };\n\n const onResizeStart = e => {\n e.preventDefault();\n window.addEventListener('keydown', handleKeyDown);\n window.addEventListener('keyup', handleKeyUp);\n };\n\n const onResizeRAF = (e, direction, ref, { height: deltaHeight, width: deltaWidth }) => {\n if (!requestRef.current) {\n requestRef.current = global\n .requestAnimationFrame(\n seriousResize(\n Math.round(deltaWidth * (1 / zoom)),\n Math.round(deltaHeight * (1 / zoom)),\n direction,\n ),\n );\n }\n };\n\n const onResizeEnd = (e, direction, ref, { height: deltaHeight, width: deltaWidth }) => {\n onResizeStop(\n Math.round(deltaWidth * (1 / zoom)),\n Math.round(deltaHeight * (1 / zoom)),\n direction,\n );\n window.removeEventListener('keydown', handleKeyDown);\n window.removeEventListener('keyup', handleKeyUp);\n };\n\n const itemPositionerStyle = useMemo(() => ({\n height: Math.round(stateHeight * zoom),\n left: Math.round(stateLeft * zoom),\n pointerEvents: 'none',\n position: 'absolute',\n top: Math.round(stateTop * zoom),\n touchAction: 'none',\n width: Math.round(stateWidth * zoom),\n }), [stateHeight, stateLeft, stateTop, stateWidth, zoom]);\n\n const size = useMemo(() => ({\n height: Math.round(stateHeight * zoom),\n width: Math.round(stateWidth * zoom),\n }), [stateHeight, stateWidth, zoom]);\n\n const openSettings = useCallback(() => {\n setActiveElement(item.id);\n if (!isRightPanelOpen) {\n setIsRightPanelOpen(true);\n }\n }, [item.id, isRightPanelOpen, setIsRightPanelOpen]);\n\n const { isLocked } = item;\n\n if (isDragging || !isSelectedElement) return null;\n return createPortal(\n <ItemPositioner\n style={itemPositionerStyle}\n >\n <ResizableWithClickOutside\n className={classNames(\n 'reportItemResizer',\n { hideVerticalHandle: !(item.height > 50) },\n { hideHorizontalHandle: !(item.width > 50) },\n )}\n enable={!item.isLocked && enableResize}\n exceptionalClasses={exceptionalClasses}\n lockAspectRatio={lockAspectRatioTypes.includes(item.itemType) || lockAspectRatio}\n onClickOutside={onClickOutside}\n onResize={onResizeRAF}\n onResizeStart={onResizeStart}\n onResizeStop={onResizeEnd}\n size={size}\n {...resizeStaticProps}\n withClickOutsideWrapperClass={`reportItemResizer-wrapper${isLocked ? ' isLocked' : ''}`}\n />\n <DraggableItemActions\n changeLockStatus={changeLockStatus}\n deleteItem={deleteItem}\n duplicateItem={duplicateItem}\n isLocked={item.isLocked}\n isMultipleItemSelected={isMultipleItemSelected}\n openSettings={openSettings}\n />\n <TextEditorToolbar\n isTextEditorOpen={isTextEditorOpen}\n itemWidth={stateWidth * zoom}\n />\n </ItemPositioner>,\n document.querySelector(`.jfReport-page[data-id=\"${pageID}\"]`),\n );\n};\n\nexport default PageItemResizer;\n"],"names":["ResizableWithClickOutside","withClickOutside","Resizable","enableResize","bottom","bottomLeft","bottomRight","left","right","top","topLeft","topRight","lockAspectRatioTypes","exceptionalClasses","PageItemResizer","changeLockStatus","deleteItem","duplicateItem","isDragging","isMultipleItemSelected","isRightPanelOpen","isSelectedElement","isTextEditorOpen","item","onClickOutside","onResize","onResizeStop","pageID","setActiveElement","setIsRightPanelOpen","stateHeight","stateLeft","stateTop","stateWidth","zoom","requestRef","useRef","useState","lockAspectRatio","setLockAspectRatio","handleKeyUp","e","shiftKey","handleKeyDown","seriousResize","deltaWidth","deltaHeight","direction","current","undefined","onResizeStart","preventDefault","window","addEventListener","onResizeRAF","ref","height","width","global","requestAnimationFrame","Math","round","onResizeEnd","removeEventListener","itemPositionerStyle","useMemo","pointerEvents","position","touchAction","size","openSettings","useCallback","id","isLocked","createPortal","_jsxs","_jsx","classNames","hideVerticalHandle","hideHorizontalHandle","includes","itemType","resizeStaticProps","TextEditorToolbar","document","querySelector"],"mappings":"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"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
require('core-js/modules/web.dom-collections.for-each.js');
|
|
4
|
+
var React = require('react');
|
|
3
5
|
var PropTypes = require('prop-types');
|
|
4
6
|
var PageNavigation = require('./PageNavigation.js');
|
|
5
7
|
var PresentationActions = require('./PresentationActions.js');
|
|
@@ -62,6 +64,23 @@ var PresentationBar = function PresentationBar(_ref) {
|
|
|
62
64
|
});
|
|
63
65
|
};
|
|
64
66
|
|
|
67
|
+
React.useLayoutEffect(function () {
|
|
68
|
+
// Hi, this is a horrible solution to a horrible Chromium bug.
|
|
69
|
+
// It is temporary, and once chromium crew solves the
|
|
70
|
+
// https://bugs.chromium.org/p/chromium/issues/detail?id=1440024
|
|
71
|
+
// we will be able to remove it, the idea itself comes from
|
|
72
|
+
// them, btw https://bugs.chromium.org/p/chromium/issues/detail?id=1440024#c3
|
|
73
|
+
if (window.chrome) {
|
|
74
|
+
// Detaching and re-attaching to dom likely forces a re-draw
|
|
75
|
+
// of the svg.
|
|
76
|
+
document.querySelectorAll('svg.recharts-surface').forEach(function (domNode) {
|
|
77
|
+
var parent = domNode.parentElement;
|
|
78
|
+
parent.removeChild(domNode);
|
|
79
|
+
parent.appendChild(domNode);
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
|
|
65
84
|
var handleZoomChange = function handleZoomChange(e) {
|
|
66
85
|
setZoom(e.target.value / 100, false, reportLayoutWidth);
|
|
67
86
|
e.target.blur(); // prevent mixup with other keyboard shortcuts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PresentationBar.js","sources":["../../../../../src/components/Presentation/PresentationBar/PresentationBar.js"],"sourcesContent":["import PropTypes from 'prop-types';\nimport PageNavigation from './PageNavigation';\nimport PresentationActions from './PresentationActions';\nimport SelectZoom from './SelectZoom';\nimport {\n changePage,\n closeFullscreen,\n openFullscreenHelper,\n} from '../../../utils/functions';\n\nconst PresentationBar = ({\n currentPage,\n fitToScreen,\n fittedZoom,\n isFullscreen,\n isVisible,\n onAnEventTrigger,\n pageCount,\n presentationBarActions,\n setCurrentPage,\n setIsFullscreen,\n setZoom,\n settings,\n zoom,\n}) => {\n const { reportLayoutWidth = 1123 } = settings;\n\n const toggleFullscreen = goFullscreen => () => {\n if (goFullscreen) {\n const openRequest = openFullscreenHelper();\n if (openRequest && openRequest.then) {\n openRequest.then(fitToScreen);\n } else {\n fitToScreen(500);\n }\n } else {\n const closeRequest = closeFullscreen();\n if (closeRequest && closeRequest.then) {\n closeRequest.then(fitToScreen);\n } else {\n fitToScreen(600); // magic number for safari :(\n }\n }\n\n onAnEventTrigger('clickedFullscreen');\n setIsFullscreen(goFullscreen);\n };\n\n const pageChanger = action => changePage({\n action,\n currentPage,\n pageCount,\n setCurrentPage,\n });\n\n const handleZoomChange = e => {\n setZoom(e.target.value / 100, false, reportLayoutWidth);\n e.target.blur(); // prevent mixup with other keyboard shortcuts\n };\n\n return (\n <div className=\"jfPresentation-barContainer d-flex j-center f-width\">\n <div\n className={`\n floatingController p-relative d-flex a-center j-between w-fit forBar\n ${isVisible ? '' : ' hidden'}\n `}\n >\n <div className=\"toolSection-dropdownWrapper isDark\">\n <SelectZoom\n fittedZoom={fittedZoom}\n handleZoomChange={handleZoomChange}\n zoom={zoom}\n />\n </div>\n {pageCount > 1 && (\n <>\n <div className=\"divider\" />\n <PageNavigation\n currentPage={currentPage}\n decrease={pageChanger(-1)}\n increase={pageChanger(1)}\n isVisible={pageCount > 1}\n pageCount={pageCount}\n />\n <div className=\"divider\" />\n </>\n )}\n <PresentationActions\n isFullscreen={isFullscreen}\n presentationBarActions={presentationBarActions}\n toggleFullscreen={toggleFullscreen}\n />\n </div>\n </div>\n );\n};\n\nPresentationBar.propTypes = {\n currentPage: PropTypes.number,\n fitToScreen: PropTypes.func,\n fittedZoom: PropTypes.number,\n isFullscreen: PropTypes.bool,\n isVisible: PropTypes.bool,\n onAnEventTrigger: PropTypes.func,\n pageCount: PropTypes.number,\n presentationBarActions: PropTypes.arrayOf(PropTypes.shape({})),\n setCurrentPage: PropTypes.func,\n setIsFullscreen: PropTypes.func,\n setZoom: PropTypes.func,\n settings: PropTypes.shape({\n reportLayoutWidth: PropTypes.string,\n }),\n zoom: PropTypes.number,\n};\n\nPresentationBar.defaultProps = {\n currentPage: 1,\n fitToScreen: f => f,\n fittedZoom: 1,\n isFullscreen: false,\n isVisible: true,\n onAnEventTrigger: f => f,\n pageCount: 1,\n presentationBarActions: [],\n setCurrentPage: f => f,\n setIsFullscreen: f => f,\n setZoom: f => f,\n settings: {},\n zoom: 1,\n};\n\nexport default PresentationBar;\n"],"names":["PresentationBar","currentPage","fitToScreen","fittedZoom","isFullscreen","isVisible","onAnEventTrigger","pageCount","presentationBarActions","setCurrentPage","setIsFullscreen","setZoom","settings","zoom","reportLayoutWidth","toggleFullscreen","goFullscreen","openRequest","openFullscreenHelper","then","closeRequest","closeFullscreen","pageChanger","action","changePage","handleZoomChange","e","target","value","blur","_jsx","_jsxs","propTypes","PropTypes","number","func","bool","arrayOf","shape","string","defaultProps","f"],"mappings":"
|
|
1
|
+
{"version":3,"file":"PresentationBar.js","sources":["../../../../../src/components/Presentation/PresentationBar/PresentationBar.js"],"sourcesContent":["import { useLayoutEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport PageNavigation from './PageNavigation';\nimport PresentationActions from './PresentationActions';\nimport SelectZoom from './SelectZoom';\nimport {\n changePage,\n closeFullscreen,\n openFullscreenHelper,\n} from '../../../utils/functions';\n\nconst PresentationBar = ({\n currentPage,\n fitToScreen,\n fittedZoom,\n isFullscreen,\n isVisible,\n onAnEventTrigger,\n pageCount,\n presentationBarActions,\n setCurrentPage,\n setIsFullscreen,\n setZoom,\n settings,\n zoom,\n}) => {\n const { reportLayoutWidth = 1123 } = settings;\n\n const toggleFullscreen = goFullscreen => () => {\n if (goFullscreen) {\n const openRequest = openFullscreenHelper();\n if (openRequest && openRequest.then) {\n openRequest.then(fitToScreen);\n } else {\n fitToScreen(500);\n }\n } else {\n const closeRequest = closeFullscreen();\n if (closeRequest && closeRequest.then) {\n closeRequest.then(fitToScreen);\n } else {\n fitToScreen(600); // magic number for safari :(\n }\n }\n\n onAnEventTrigger('clickedFullscreen');\n setIsFullscreen(goFullscreen);\n };\n\n const pageChanger = action => changePage({\n action,\n currentPage,\n pageCount,\n setCurrentPage,\n });\n\n useLayoutEffect(() => {\n // Hi, this is a horrible solution to a horrible Chromium bug.\n // It is temporary, and once chromium crew solves the\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1440024\n // we will be able to remove it, the idea itself comes from\n // them, btw https://bugs.chromium.org/p/chromium/issues/detail?id=1440024#c3\n if (window.chrome) {\n // Detaching and re-attaching to dom likely forces a re-draw\n // of the svg.\n document.querySelectorAll('svg.recharts-surface').forEach(domNode => {\n const parent = domNode.parentElement;\n parent.removeChild(domNode);\n parent.appendChild(domNode);\n });\n }\n });\n\n const handleZoomChange = e => {\n setZoom(e.target.value / 100, false, reportLayoutWidth);\n e.target.blur(); // prevent mixup with other keyboard shortcuts\n };\n\n return (\n <div className=\"jfPresentation-barContainer d-flex j-center f-width\">\n <div\n className={`\n floatingController p-relative d-flex a-center j-between w-fit forBar\n ${isVisible ? '' : ' hidden'}\n `}\n >\n <div className=\"toolSection-dropdownWrapper isDark\">\n <SelectZoom\n fittedZoom={fittedZoom}\n handleZoomChange={handleZoomChange}\n zoom={zoom}\n />\n </div>\n {pageCount > 1 && (\n <>\n <div className=\"divider\" />\n <PageNavigation\n currentPage={currentPage}\n decrease={pageChanger(-1)}\n increase={pageChanger(1)}\n isVisible={pageCount > 1}\n pageCount={pageCount}\n />\n <div className=\"divider\" />\n </>\n )}\n <PresentationActions\n isFullscreen={isFullscreen}\n presentationBarActions={presentationBarActions}\n toggleFullscreen={toggleFullscreen}\n />\n </div>\n </div>\n );\n};\n\nPresentationBar.propTypes = {\n currentPage: PropTypes.number,\n fitToScreen: PropTypes.func,\n fittedZoom: PropTypes.number,\n isFullscreen: PropTypes.bool,\n isVisible: PropTypes.bool,\n onAnEventTrigger: PropTypes.func,\n pageCount: PropTypes.number,\n presentationBarActions: PropTypes.arrayOf(PropTypes.shape({})),\n setCurrentPage: PropTypes.func,\n setIsFullscreen: PropTypes.func,\n setZoom: PropTypes.func,\n settings: PropTypes.shape({\n reportLayoutWidth: PropTypes.string,\n }),\n zoom: PropTypes.number,\n};\n\nPresentationBar.defaultProps = {\n currentPage: 1,\n fitToScreen: f => f,\n fittedZoom: 1,\n isFullscreen: false,\n isVisible: true,\n onAnEventTrigger: f => f,\n pageCount: 1,\n presentationBarActions: [],\n setCurrentPage: f => f,\n setIsFullscreen: f => f,\n setZoom: f => f,\n settings: {},\n zoom: 1,\n};\n\nexport default PresentationBar;\n"],"names":["PresentationBar","currentPage","fitToScreen","fittedZoom","isFullscreen","isVisible","onAnEventTrigger","pageCount","presentationBarActions","setCurrentPage","setIsFullscreen","setZoom","settings","zoom","reportLayoutWidth","toggleFullscreen","goFullscreen","openRequest","openFullscreenHelper","then","closeRequest","closeFullscreen","pageChanger","action","changePage","useLayoutEffect","window","chrome","document","querySelectorAll","forEach","domNode","parent","parentElement","removeChild","appendChild","handleZoomChange","e","target","value","blur","_jsx","_jsxs","propTypes","PropTypes","number","func","bool","arrayOf","shape","string","defaultProps","f"],"mappings":"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"}
|
|
@@ -39,7 +39,7 @@ var enableResize = {
|
|
|
39
39
|
topRight: true
|
|
40
40
|
};
|
|
41
41
|
var lockAspectRatioTypes = ['image', 'icon'];
|
|
42
|
-
var exceptionalClasses = ['reportHandle', 'reportItemMenu', 'jfReport-pane', 'pageSettingSideBtn', 'reportItemWrapper', 'reportRotater', 'forZoom', 'ql-toolbar'];
|
|
42
|
+
var exceptionalClasses = ['reportHandle', 'reportItemMenu', 'jfReport-pane', 'pageSettingSideBtn', 'reportItemWrapper', 'reportRotater', 'forZoom', 'ql-toolbar', 'jSheetContextMenu'];
|
|
43
43
|
|
|
44
44
|
var PageItemResizer = function PageItemResizer(_ref) {
|
|
45
45
|
var changeLockStatus = _ref.changeLockStatus,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageItemResizer.js","sources":["../../../src/components/PageItemResizer.js"],"sourcesContent":["import {\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { Resizable } from 're-resizable';\nimport { createPortal } from 'react-dom';\nimport classNames from 'classnames';\nimport { resizeStaticProps } from '../constants/staticProps';\nimport TextEditorToolbar from './TextEditor/CustomToolbar';\n\nimport DraggableItemActions from './DraggableItem/DraggableItemActions';\nimport ItemPositioner from './ItemPositioner';\nimport withClickOutside from './withClickOutside';\n\nconst ResizableWithClickOutside = withClickOutside(Resizable);\n\nconst enableResize = {\n bottom: true,\n bottomLeft: true,\n bottomRight: true,\n left: true,\n right: true,\n top: true,\n topLeft: true,\n topRight: true,\n};\nconst lockAspectRatioTypes = ['image', 'icon'];\nconst exceptionalClasses = [\n 'reportHandle',\n 'reportItemMenu',\n 'jfReport-pane',\n 'pageSettingSideBtn',\n 'reportItemWrapper',\n 'reportRotater',\n 'forZoom',\n 'ql-toolbar',\n];\n\nconst PageItemResizer = ({\n changeLockStatus,\n deleteItem,\n duplicateItem,\n isDragging,\n isMultipleItemSelected,\n isRightPanelOpen,\n isSelectedElement,\n isTextEditorOpen,\n item,\n onClickOutside,\n onResize,\n onResizeStop,\n pageID,\n setActiveElement,\n setIsRightPanelOpen,\n stateHeight,\n stateLeft,\n stateTop,\n stateWidth,\n zoom,\n}) => {\n const requestRef = useRef();\n const [lockAspectRatio, setLockAspectRatio] = useState(false);\n\n const handleKeyUp = e => {\n if (!e.shiftKey) setLockAspectRatio(false);\n };\n\n const handleKeyDown = e => {\n if (e.shiftKey) setLockAspectRatio(true);\n };\n\n const seriousResize = (deltaWidth, deltaHeight, direction) => {\n return () => {\n onResize(deltaWidth, deltaHeight, direction);\n requestRef.current = undefined;\n };\n };\n\n const onResizeStart = e => {\n e.preventDefault();\n window.addEventListener('keydown', handleKeyDown);\n window.addEventListener('keyup', handleKeyUp);\n };\n\n const onResizeRAF = (e, direction, ref, { height: deltaHeight, width: deltaWidth }) => {\n if (!requestRef.current) {\n requestRef.current = global\n .requestAnimationFrame(\n seriousResize(\n Math.round(deltaWidth * (1 / zoom)),\n Math.round(deltaHeight * (1 / zoom)),\n direction,\n ),\n );\n }\n };\n\n const onResizeEnd = (e, direction, ref, { height: deltaHeight, width: deltaWidth }) => {\n onResizeStop(\n Math.round(deltaWidth * (1 / zoom)),\n Math.round(deltaHeight * (1 / zoom)),\n direction,\n );\n window.removeEventListener('keydown', handleKeyDown);\n window.removeEventListener('keyup', handleKeyUp);\n };\n\n const itemPositionerStyle = useMemo(() => ({\n height: Math.round(stateHeight * zoom),\n left: Math.round(stateLeft * zoom),\n pointerEvents: 'none',\n position: 'absolute',\n top: Math.round(stateTop * zoom),\n touchAction: 'none',\n width: Math.round(stateWidth * zoom),\n }), [stateHeight, stateLeft, stateTop, stateWidth, zoom]);\n\n const size = useMemo(() => ({\n height: Math.round(stateHeight * zoom),\n width: Math.round(stateWidth * zoom),\n }), [stateHeight, stateWidth, zoom]);\n\n const openSettings = useCallback(() => {\n setActiveElement(item.id);\n if (!isRightPanelOpen) {\n setIsRightPanelOpen(true);\n }\n }, [item.id, isRightPanelOpen, setIsRightPanelOpen]);\n\n const { isLocked } = item;\n\n if (isDragging || !isSelectedElement) return null;\n return createPortal(\n <ItemPositioner\n style={itemPositionerStyle}\n >\n <ResizableWithClickOutside\n className={classNames(\n 'reportItemResizer',\n { hideVerticalHandle: !(item.height > 50) },\n { hideHorizontalHandle: !(item.width > 50) },\n )}\n enable={!item.isLocked && enableResize}\n exceptionalClasses={exceptionalClasses}\n lockAspectRatio={lockAspectRatioTypes.includes(item.itemType) || lockAspectRatio}\n onClickOutside={onClickOutside}\n onResize={onResizeRAF}\n onResizeStart={onResizeStart}\n onResizeStop={onResizeEnd}\n size={size}\n {...resizeStaticProps}\n withClickOutsideWrapperClass={`reportItemResizer-wrapper${isLocked ? ' isLocked' : ''}`}\n />\n <DraggableItemActions\n changeLockStatus={changeLockStatus}\n deleteItem={deleteItem}\n duplicateItem={duplicateItem}\n isLocked={item.isLocked}\n isMultipleItemSelected={isMultipleItemSelected}\n openSettings={openSettings}\n />\n <TextEditorToolbar\n isTextEditorOpen={isTextEditorOpen}\n itemWidth={stateWidth * zoom}\n />\n </ItemPositioner>,\n document.querySelector(`.jfReport-page[data-id=\"${pageID}\"]`),\n );\n};\n\nexport default PageItemResizer;\n"],"names":["ResizableWithClickOutside","withClickOutside","Resizable","enableResize","bottom","bottomLeft","bottomRight","left","right","top","topLeft","topRight","lockAspectRatioTypes","exceptionalClasses","PageItemResizer","changeLockStatus","deleteItem","duplicateItem","isDragging","isMultipleItemSelected","isRightPanelOpen","isSelectedElement","isTextEditorOpen","item","onClickOutside","onResize","onResizeStop","pageID","setActiveElement","setIsRightPanelOpen","stateHeight","stateLeft","stateTop","stateWidth","zoom","requestRef","useRef","useState","lockAspectRatio","setLockAspectRatio","handleKeyUp","e","shiftKey","handleKeyDown","seriousResize","deltaWidth","deltaHeight","direction","current","undefined","onResizeStart","preventDefault","window","addEventListener","onResizeRAF","ref","height","width","global","requestAnimationFrame","Math","round","onResizeEnd","removeEventListener","itemPositionerStyle","useMemo","pointerEvents","position","touchAction","size","openSettings","useCallback","id","isLocked","createPortal","_jsxs","_jsx","classNames","hideVerticalHandle","hideHorizontalHandle","includes","itemType","resizeStaticProps","TextEditorToolbar","document","querySelector"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,IAAMA,yBAAyB,GAAGC,gBAAgB,CAACC,SAAD,CAAlD;AAEA,IAAMC,YAAY,GAAG;AACnBC,EAAAA,MAAM,EAAE,IADW;AAEnBC,EAAAA,UAAU,EAAE,IAFO;AAGnBC,EAAAA,WAAW,EAAE,IAHM;AAInBC,EAAAA,IAAI,EAAE,IAJa;AAKnBC,EAAAA,KAAK,EAAE,IALY;AAMnBC,EAAAA,GAAG,EAAE,IANc;AAOnBC,EAAAA,OAAO,EAAE,IAPU;AAQnBC,EAAAA,QAAQ,EAAE;AARS,CAArB;AAUA,IAAMC,oBAAoB,GAAG,CAAC,OAAD,EAAU,MAAV,CAA7B;AACA,IAAMC,kBAAkB,GAAG,CACzB,cADyB,EAEzB,gBAFyB,EAGzB,eAHyB,EAIzB,oBAJyB,EAKzB,mBALyB,EAMzB,eANyB,EAOzB,SAPyB,EAQzB,YARyB,CAA3B;;IAWMC,eAAe,GAAG,SAAlBA,eAAkB,OAqBlB;AAAA,MApBJC,gBAoBI,QApBJA,gBAoBI;AAAA,MAnBJC,UAmBI,QAnBJA,UAmBI;AAAA,MAlBJC,aAkBI,QAlBJA,aAkBI;AAAA,MAjBJC,UAiBI,QAjBJA,UAiBI;AAAA,MAhBJC,sBAgBI,QAhBJA,sBAgBI;AAAA,MAfJC,gBAeI,QAfJA,gBAeI;AAAA,MAdJC,iBAcI,QAdJA,iBAcI;AAAA,MAbJC,gBAaI,QAbJA,gBAaI;AAAA,MAZJC,IAYI,QAZJA,IAYI;AAAA,MAXJC,cAWI,QAXJA,cAWI;AAAA,MAVJC,QAUI,QAVJA,QAUI;AAAA,MATJC,YASI,QATJA,YASI;AAAA,MARJC,MAQI,QARJA,MAQI;AAAA,MAPJC,gBAOI,QAPJA,gBAOI;AAAA,MANJC,mBAMI,QANJA,mBAMI;AAAA,MALJC,WAKI,QALJA,WAKI;AAAA,MAJJC,SAII,QAJJA,SAII;AAAA,MAHJC,QAGI,QAHJA,QAGI;AAAA,MAFJC,UAEI,QAFJA,UAEI;AAAA,MADJC,IACI,QADJA,IACI;AACJ,MAAMC,UAAU,GAAGC,MAAM,EAAzB;;AACA,kBAA8CC,QAAQ,CAAC,KAAD,CAAtD;AAAA;AAAA,MAAOC,eAAP;AAAA,MAAwBC,kBAAxB;;AAEA,MAAMC,WAAW,GAAG,SAAdA,WAAc,CAAAC,CAAC,EAAI;AACvB,QAAI,CAACA,CAAC,CAACC,QAAP,EAAiBH,kBAAkB,CAAC,KAAD,CAAlB;AAClB,GAFD;;AAIA,MAAMI,aAAa,GAAG,SAAhBA,aAAgB,CAAAF,CAAC,EAAI;AACzB,QAAIA,CAAC,CAACC,QAAN,EAAgBH,kBAAkB,CAAC,IAAD,CAAlB;AACjB,GAFD;;AAIA,MAAMK,aAAa,GAAG,SAAhBA,aAAgB,CAACC,UAAD,EAAaC,WAAb,EAA0BC,SAA1B,EAAwC;AAC5D,WAAO,YAAM;AACXtB,MAAAA,QAAQ,CAACoB,UAAD,EAAaC,WAAb,EAA0BC,SAA1B,CAAR;AACAZ,MAAAA,UAAU,CAACa,OAAX,GAAqBC,SAArB;AACD,KAHD;AAID,GALD;;AAOA,MAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAAAT,CAAC,EAAI;AACzBA,IAAAA,CAAC,CAACU,cAAF;AACAC,IAAAA,MAAM,CAACC,gBAAP,CAAwB,SAAxB,EAAmCV,aAAnC;AACAS,IAAAA,MAAM,CAACC,gBAAP,CAAwB,OAAxB,EAAiCb,WAAjC;AACD,GAJD;;AAMA,MAAMc,WAAW,GAAG,SAAdA,WAAc,CAACb,CAAD,EAAIM,SAAJ,EAAeQ,GAAf,SAAmE;AAAA,QAArCT,WAAqC,SAA7CU,MAA6C;AAAA,QAAjBX,UAAiB,SAAxBY,KAAwB;;AACrF,QAAI,CAACtB,UAAU,CAACa,OAAhB,EAAyB;AACvBb,MAAAA,UAAU,CAACa,OAAX,GAAqBU,MAAM,CACxBC,qBADkB,CAEjBf,aAAa,CACXgB,IAAI,CAACC,KAAL,CAAWhB,UAAU,IAAI,IAAIX,IAAR,CAArB,CADW,EAEX0B,IAAI,CAACC,KAAL,CAAWf,WAAW,IAAI,IAAIZ,IAAR,CAAtB,CAFW,EAGXa,SAHW,CAFI,CAArB;AAQD;AACF,GAXD;;AAaA,MAAMe,WAAW,GAAG,SAAdA,WAAc,CAACrB,CAAD,EAAIM,SAAJ,EAAeQ,GAAf,SAAmE;AAAA,QAArCT,WAAqC,SAA7CU,MAA6C;AAAA,QAAjBX,UAAiB,SAAxBY,KAAwB;AACrF/B,IAAAA,YAAY,CACVkC,IAAI,CAACC,KAAL,CAAWhB,UAAU,IAAI,IAAIX,IAAR,CAArB,CADU,EAEV0B,IAAI,CAACC,KAAL,CAAWf,WAAW,IAAI,IAAIZ,IAAR,CAAtB,CAFU,EAGVa,SAHU,CAAZ;AAKAK,IAAAA,MAAM,CAACW,mBAAP,CAA2B,SAA3B,EAAsCpB,aAAtC;AACAS,IAAAA,MAAM,CAACW,mBAAP,CAA2B,OAA3B,EAAoCvB,WAApC;AACD,GARD;;AAUA,MAAMwB,mBAAmB,GAAGC,OAAO,CAAC;AAAA,WAAO;AACzCT,MAAAA,MAAM,EAAEI,IAAI,CAACC,KAAL,CAAW/B,WAAW,GAAGI,IAAzB,CADiC;AAEzC3B,MAAAA,IAAI,EAAEqD,IAAI,CAACC,KAAL,CAAW9B,SAAS,GAAGG,IAAvB,CAFmC;AAGzCgC,MAAAA,aAAa,EAAE,MAH0B;AAIzCC,MAAAA,QAAQ,EAAE,UAJ+B;AAKzC1D,MAAAA,GAAG,EAAEmD,IAAI,CAACC,KAAL,CAAW7B,QAAQ,GAAGE,IAAtB,CALoC;AAMzCkC,MAAAA,WAAW,EAAE,MAN4B;AAOzCX,MAAAA,KAAK,EAAEG,IAAI,CAACC,KAAL,CAAW5B,UAAU,GAAGC,IAAxB;AAPkC,KAAP;AAAA,GAAD,EAQ/B,CAACJ,WAAD,EAAcC,SAAd,EAAyBC,QAAzB,EAAmCC,UAAnC,EAA+CC,IAA/C,CAR+B,CAAnC;AAUA,MAAMmC,IAAI,GAAGJ,OAAO,CAAC;AAAA,WAAO;AAC1BT,MAAAA,MAAM,EAAEI,IAAI,CAACC,KAAL,CAAW/B,WAAW,GAAGI,IAAzB,CADkB;AAE1BuB,MAAAA,KAAK,EAAEG,IAAI,CAACC,KAAL,CAAW5B,UAAU,GAAGC,IAAxB;AAFmB,KAAP;AAAA,GAAD,EAGhB,CAACJ,WAAD,EAAcG,UAAd,EAA0BC,IAA1B,CAHgB,CAApB;AAKA,MAAMoC,YAAY,GAAGC,WAAW,CAAC,YAAM;AACrC3C,IAAAA,gBAAgB,CAACL,IAAI,CAACiD,EAAN,CAAhB;;AACA,QAAI,CAACpD,gBAAL,EAAuB;AACrBS,MAAAA,mBAAmB,CAAC,IAAD,CAAnB;AACD;AACF,GAL+B,EAK7B,CAACN,IAAI,CAACiD,EAAN,EAAUpD,gBAAV,EAA4BS,mBAA5B,CAL6B,CAAhC;AAOA,MAAQ4C,QAAR,GAAqBlD,IAArB,CAAQkD,QAAR;AAEA,MAAIvD,UAAU,IAAI,CAACG,iBAAnB,EAAsC,OAAO,IAAP;AACtC,sBAAOqD,YAAY,eACjBC,KAAC,cAAD;AACE,IAAA,KAAK,EAAEX,mBADT;AAAA,4BAGEY,IAAC,yBAAD;AACE,MAAA,SAAS,EAAEC,UAAU,CACnB,mBADmB,EAEnB;AAAEC,QAAAA,kBAAkB,EAAE,EAAEvD,IAAI,CAACiC,MAAL,GAAc,EAAhB;AAAtB,OAFmB,EAGnB;AAAEuB,QAAAA,oBAAoB,EAAE,EAAExD,IAAI,CAACkC,KAAL,GAAa,EAAf;AAAxB,OAHmB,CADvB;AAME,MAAA,MAAM,EAAE,CAAClC,IAAI,CAACkD,QAAN,IAAkBtE,YAN5B;AAOE,MAAA,kBAAkB,EAAEU,kBAPtB;AAQE,MAAA,eAAe,EAAED,oBAAoB,CAACoE,QAArB,CAA8BzD,IAAI,CAAC0D,QAAnC,KAAgD3C,eARnE;AASE,MAAA,cAAc,EAAEd,cATlB;AAUE,MAAA,QAAQ,EAAE8B,WAVZ;AAWE,MAAA,aAAa,EAAEJ,aAXjB;AAYE,MAAA,YAAY,EAAEY,WAZhB;AAaE,MAAA,IAAI,EAAEO;AAbR,OAcMa,iBAdN;AAeE,MAAA,4BAA4B,qCAA8BT,QAAQ,GAAG,WAAH,GAAiB,EAAvD;AAf9B,OAHF,eAoBEG,IAAC,oBAAD;AACE,MAAA,gBAAgB,EAAE7D,gBADpB;AAEE,MAAA,UAAU,EAAEC,UAFd;AAGE,MAAA,aAAa,EAAEC,aAHjB;AAIE,MAAA,QAAQ,EAAEM,IAAI,CAACkD,QAJjB;AAKE,MAAA,sBAAsB,EAAEtD,sBAL1B;AAME,MAAA,YAAY,EAAEmD;AANhB,MApBF,eA4BEM,IAACO,oBAAD;AACE,MAAA,gBAAgB,EAAE7D,gBADpB;AAEE,MAAA,SAAS,EAAEW,UAAU,GAAGC;AAF1B,MA5BF;AAAA,IADiB,EAkCjBkD,QAAQ,CAACC,aAAT,oCAAkD1D,MAAlD,SAlCiB,CAAnB;AAoCD;;;;"}
|
|
1
|
+
{"version":3,"file":"PageItemResizer.js","sources":["../../../src/components/PageItemResizer.js"],"sourcesContent":["import {\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { Resizable } from 're-resizable';\nimport { createPortal } from 'react-dom';\nimport classNames from 'classnames';\nimport { resizeStaticProps } from '../constants/staticProps';\nimport TextEditorToolbar from './TextEditor/CustomToolbar';\n\nimport DraggableItemActions from './DraggableItem/DraggableItemActions';\nimport ItemPositioner from './ItemPositioner';\nimport withClickOutside from './withClickOutside';\n\nconst ResizableWithClickOutside = withClickOutside(Resizable);\n\nconst enableResize = {\n bottom: true,\n bottomLeft: true,\n bottomRight: true,\n left: true,\n right: true,\n top: true,\n topLeft: true,\n topRight: true,\n};\nconst lockAspectRatioTypes = ['image', 'icon'];\nconst exceptionalClasses = [\n 'reportHandle',\n 'reportItemMenu',\n 'jfReport-pane',\n 'pageSettingSideBtn',\n 'reportItemWrapper',\n 'reportRotater',\n 'forZoom',\n 'ql-toolbar',\n 'jSheetContextMenu',\n];\n\nconst PageItemResizer = ({\n changeLockStatus,\n deleteItem,\n duplicateItem,\n isDragging,\n isMultipleItemSelected,\n isRightPanelOpen,\n isSelectedElement,\n isTextEditorOpen,\n item,\n onClickOutside,\n onResize,\n onResizeStop,\n pageID,\n setActiveElement,\n setIsRightPanelOpen,\n stateHeight,\n stateLeft,\n stateTop,\n stateWidth,\n zoom,\n}) => {\n const requestRef = useRef();\n const [lockAspectRatio, setLockAspectRatio] = useState(false);\n\n const handleKeyUp = e => {\n if (!e.shiftKey) setLockAspectRatio(false);\n };\n\n const handleKeyDown = e => {\n if (e.shiftKey) setLockAspectRatio(true);\n };\n\n const seriousResize = (deltaWidth, deltaHeight, direction) => {\n return () => {\n onResize(deltaWidth, deltaHeight, direction);\n requestRef.current = undefined;\n };\n };\n\n const onResizeStart = e => {\n e.preventDefault();\n window.addEventListener('keydown', handleKeyDown);\n window.addEventListener('keyup', handleKeyUp);\n };\n\n const onResizeRAF = (e, direction, ref, { height: deltaHeight, width: deltaWidth }) => {\n if (!requestRef.current) {\n requestRef.current = global\n .requestAnimationFrame(\n seriousResize(\n Math.round(deltaWidth * (1 / zoom)),\n Math.round(deltaHeight * (1 / zoom)),\n direction,\n ),\n );\n }\n };\n\n const onResizeEnd = (e, direction, ref, { height: deltaHeight, width: deltaWidth }) => {\n onResizeStop(\n Math.round(deltaWidth * (1 / zoom)),\n Math.round(deltaHeight * (1 / zoom)),\n direction,\n );\n window.removeEventListener('keydown', handleKeyDown);\n window.removeEventListener('keyup', handleKeyUp);\n };\n\n const itemPositionerStyle = useMemo(() => ({\n height: Math.round(stateHeight * zoom),\n left: Math.round(stateLeft * zoom),\n pointerEvents: 'none',\n position: 'absolute',\n top: Math.round(stateTop * zoom),\n touchAction: 'none',\n width: Math.round(stateWidth * zoom),\n }), [stateHeight, stateLeft, stateTop, stateWidth, zoom]);\n\n const size = useMemo(() => ({\n height: Math.round(stateHeight * zoom),\n width: Math.round(stateWidth * zoom),\n }), [stateHeight, stateWidth, zoom]);\n\n const openSettings = useCallback(() => {\n setActiveElement(item.id);\n if (!isRightPanelOpen) {\n setIsRightPanelOpen(true);\n }\n }, [item.id, isRightPanelOpen, setIsRightPanelOpen]);\n\n const { isLocked } = item;\n\n if (isDragging || !isSelectedElement) return null;\n return createPortal(\n <ItemPositioner\n style={itemPositionerStyle}\n >\n <ResizableWithClickOutside\n className={classNames(\n 'reportItemResizer',\n { hideVerticalHandle: !(item.height > 50) },\n { hideHorizontalHandle: !(item.width > 50) },\n )}\n enable={!item.isLocked && enableResize}\n exceptionalClasses={exceptionalClasses}\n lockAspectRatio={lockAspectRatioTypes.includes(item.itemType) || lockAspectRatio}\n onClickOutside={onClickOutside}\n onResize={onResizeRAF}\n onResizeStart={onResizeStart}\n onResizeStop={onResizeEnd}\n size={size}\n {...resizeStaticProps}\n withClickOutsideWrapperClass={`reportItemResizer-wrapper${isLocked ? ' isLocked' : ''}`}\n />\n <DraggableItemActions\n changeLockStatus={changeLockStatus}\n deleteItem={deleteItem}\n duplicateItem={duplicateItem}\n isLocked={item.isLocked}\n isMultipleItemSelected={isMultipleItemSelected}\n openSettings={openSettings}\n />\n <TextEditorToolbar\n isTextEditorOpen={isTextEditorOpen}\n itemWidth={stateWidth * zoom}\n />\n </ItemPositioner>,\n document.querySelector(`.jfReport-page[data-id=\"${pageID}\"]`),\n );\n};\n\nexport default PageItemResizer;\n"],"names":["ResizableWithClickOutside","withClickOutside","Resizable","enableResize","bottom","bottomLeft","bottomRight","left","right","top","topLeft","topRight","lockAspectRatioTypes","exceptionalClasses","PageItemResizer","changeLockStatus","deleteItem","duplicateItem","isDragging","isMultipleItemSelected","isRightPanelOpen","isSelectedElement","isTextEditorOpen","item","onClickOutside","onResize","onResizeStop","pageID","setActiveElement","setIsRightPanelOpen","stateHeight","stateLeft","stateTop","stateWidth","zoom","requestRef","useRef","useState","lockAspectRatio","setLockAspectRatio","handleKeyUp","e","shiftKey","handleKeyDown","seriousResize","deltaWidth","deltaHeight","direction","current","undefined","onResizeStart","preventDefault","window","addEventListener","onResizeRAF","ref","height","width","global","requestAnimationFrame","Math","round","onResizeEnd","removeEventListener","itemPositionerStyle","useMemo","pointerEvents","position","touchAction","size","openSettings","useCallback","id","isLocked","createPortal","_jsxs","_jsx","classNames","hideVerticalHandle","hideHorizontalHandle","includes","itemType","resizeStaticProps","TextEditorToolbar","document","querySelector"],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import 'core-js/modules/web.dom-collections.for-each.js';
|
|
2
|
+
import { useLayoutEffect } from 'react';
|
|
1
3
|
import PropTypes from 'prop-types';
|
|
2
4
|
import PageNavigation from './PageNavigation.js';
|
|
3
5
|
import PresentationActions from './PresentationActions.js';
|
|
@@ -56,6 +58,23 @@ var PresentationBar = function PresentationBar(_ref) {
|
|
|
56
58
|
});
|
|
57
59
|
};
|
|
58
60
|
|
|
61
|
+
useLayoutEffect(function () {
|
|
62
|
+
// Hi, this is a horrible solution to a horrible Chromium bug.
|
|
63
|
+
// It is temporary, and once chromium crew solves the
|
|
64
|
+
// https://bugs.chromium.org/p/chromium/issues/detail?id=1440024
|
|
65
|
+
// we will be able to remove it, the idea itself comes from
|
|
66
|
+
// them, btw https://bugs.chromium.org/p/chromium/issues/detail?id=1440024#c3
|
|
67
|
+
if (window.chrome) {
|
|
68
|
+
// Detaching and re-attaching to dom likely forces a re-draw
|
|
69
|
+
// of the svg.
|
|
70
|
+
document.querySelectorAll('svg.recharts-surface').forEach(function (domNode) {
|
|
71
|
+
var parent = domNode.parentElement;
|
|
72
|
+
parent.removeChild(domNode);
|
|
73
|
+
parent.appendChild(domNode);
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
|
|
59
78
|
var handleZoomChange = function handleZoomChange(e) {
|
|
60
79
|
setZoom(e.target.value / 100, false, reportLayoutWidth);
|
|
61
80
|
e.target.blur(); // prevent mixup with other keyboard shortcuts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PresentationBar.js","sources":["../../../../../src/components/Presentation/PresentationBar/PresentationBar.js"],"sourcesContent":["import PropTypes from 'prop-types';\nimport PageNavigation from './PageNavigation';\nimport PresentationActions from './PresentationActions';\nimport SelectZoom from './SelectZoom';\nimport {\n changePage,\n closeFullscreen,\n openFullscreenHelper,\n} from '../../../utils/functions';\n\nconst PresentationBar = ({\n currentPage,\n fitToScreen,\n fittedZoom,\n isFullscreen,\n isVisible,\n onAnEventTrigger,\n pageCount,\n presentationBarActions,\n setCurrentPage,\n setIsFullscreen,\n setZoom,\n settings,\n zoom,\n}) => {\n const { reportLayoutWidth = 1123 } = settings;\n\n const toggleFullscreen = goFullscreen => () => {\n if (goFullscreen) {\n const openRequest = openFullscreenHelper();\n if (openRequest && openRequest.then) {\n openRequest.then(fitToScreen);\n } else {\n fitToScreen(500);\n }\n } else {\n const closeRequest = closeFullscreen();\n if (closeRequest && closeRequest.then) {\n closeRequest.then(fitToScreen);\n } else {\n fitToScreen(600); // magic number for safari :(\n }\n }\n\n onAnEventTrigger('clickedFullscreen');\n setIsFullscreen(goFullscreen);\n };\n\n const pageChanger = action => changePage({\n action,\n currentPage,\n pageCount,\n setCurrentPage,\n });\n\n const handleZoomChange = e => {\n setZoom(e.target.value / 100, false, reportLayoutWidth);\n e.target.blur(); // prevent mixup with other keyboard shortcuts\n };\n\n return (\n <div className=\"jfPresentation-barContainer d-flex j-center f-width\">\n <div\n className={`\n floatingController p-relative d-flex a-center j-between w-fit forBar\n ${isVisible ? '' : ' hidden'}\n `}\n >\n <div className=\"toolSection-dropdownWrapper isDark\">\n <SelectZoom\n fittedZoom={fittedZoom}\n handleZoomChange={handleZoomChange}\n zoom={zoom}\n />\n </div>\n {pageCount > 1 && (\n <>\n <div className=\"divider\" />\n <PageNavigation\n currentPage={currentPage}\n decrease={pageChanger(-1)}\n increase={pageChanger(1)}\n isVisible={pageCount > 1}\n pageCount={pageCount}\n />\n <div className=\"divider\" />\n </>\n )}\n <PresentationActions\n isFullscreen={isFullscreen}\n presentationBarActions={presentationBarActions}\n toggleFullscreen={toggleFullscreen}\n />\n </div>\n </div>\n );\n};\n\nPresentationBar.propTypes = {\n currentPage: PropTypes.number,\n fitToScreen: PropTypes.func,\n fittedZoom: PropTypes.number,\n isFullscreen: PropTypes.bool,\n isVisible: PropTypes.bool,\n onAnEventTrigger: PropTypes.func,\n pageCount: PropTypes.number,\n presentationBarActions: PropTypes.arrayOf(PropTypes.shape({})),\n setCurrentPage: PropTypes.func,\n setIsFullscreen: PropTypes.func,\n setZoom: PropTypes.func,\n settings: PropTypes.shape({\n reportLayoutWidth: PropTypes.string,\n }),\n zoom: PropTypes.number,\n};\n\nPresentationBar.defaultProps = {\n currentPage: 1,\n fitToScreen: f => f,\n fittedZoom: 1,\n isFullscreen: false,\n isVisible: true,\n onAnEventTrigger: f => f,\n pageCount: 1,\n presentationBarActions: [],\n setCurrentPage: f => f,\n setIsFullscreen: f => f,\n setZoom: f => f,\n settings: {},\n zoom: 1,\n};\n\nexport default PresentationBar;\n"],"names":["PresentationBar","currentPage","fitToScreen","fittedZoom","isFullscreen","isVisible","onAnEventTrigger","pageCount","presentationBarActions","setCurrentPage","setIsFullscreen","setZoom","settings","zoom","reportLayoutWidth","toggleFullscreen","goFullscreen","openRequest","openFullscreenHelper","then","closeRequest","closeFullscreen","pageChanger","action","changePage","handleZoomChange","e","target","value","blur","_jsx","_jsxs","propTypes","PropTypes","number","func","bool","arrayOf","shape","string","defaultProps","f"],"mappings":"
|
|
1
|
+
{"version":3,"file":"PresentationBar.js","sources":["../../../../../src/components/Presentation/PresentationBar/PresentationBar.js"],"sourcesContent":["import { useLayoutEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport PageNavigation from './PageNavigation';\nimport PresentationActions from './PresentationActions';\nimport SelectZoom from './SelectZoom';\nimport {\n changePage,\n closeFullscreen,\n openFullscreenHelper,\n} from '../../../utils/functions';\n\nconst PresentationBar = ({\n currentPage,\n fitToScreen,\n fittedZoom,\n isFullscreen,\n isVisible,\n onAnEventTrigger,\n pageCount,\n presentationBarActions,\n setCurrentPage,\n setIsFullscreen,\n setZoom,\n settings,\n zoom,\n}) => {\n const { reportLayoutWidth = 1123 } = settings;\n\n const toggleFullscreen = goFullscreen => () => {\n if (goFullscreen) {\n const openRequest = openFullscreenHelper();\n if (openRequest && openRequest.then) {\n openRequest.then(fitToScreen);\n } else {\n fitToScreen(500);\n }\n } else {\n const closeRequest = closeFullscreen();\n if (closeRequest && closeRequest.then) {\n closeRequest.then(fitToScreen);\n } else {\n fitToScreen(600); // magic number for safari :(\n }\n }\n\n onAnEventTrigger('clickedFullscreen');\n setIsFullscreen(goFullscreen);\n };\n\n const pageChanger = action => changePage({\n action,\n currentPage,\n pageCount,\n setCurrentPage,\n });\n\n useLayoutEffect(() => {\n // Hi, this is a horrible solution to a horrible Chromium bug.\n // It is temporary, and once chromium crew solves the\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1440024\n // we will be able to remove it, the idea itself comes from\n // them, btw https://bugs.chromium.org/p/chromium/issues/detail?id=1440024#c3\n if (window.chrome) {\n // Detaching and re-attaching to dom likely forces a re-draw\n // of the svg.\n document.querySelectorAll('svg.recharts-surface').forEach(domNode => {\n const parent = domNode.parentElement;\n parent.removeChild(domNode);\n parent.appendChild(domNode);\n });\n }\n });\n\n const handleZoomChange = e => {\n setZoom(e.target.value / 100, false, reportLayoutWidth);\n e.target.blur(); // prevent mixup with other keyboard shortcuts\n };\n\n return (\n <div className=\"jfPresentation-barContainer d-flex j-center f-width\">\n <div\n className={`\n floatingController p-relative d-flex a-center j-between w-fit forBar\n ${isVisible ? '' : ' hidden'}\n `}\n >\n <div className=\"toolSection-dropdownWrapper isDark\">\n <SelectZoom\n fittedZoom={fittedZoom}\n handleZoomChange={handleZoomChange}\n zoom={zoom}\n />\n </div>\n {pageCount > 1 && (\n <>\n <div className=\"divider\" />\n <PageNavigation\n currentPage={currentPage}\n decrease={pageChanger(-1)}\n increase={pageChanger(1)}\n isVisible={pageCount > 1}\n pageCount={pageCount}\n />\n <div className=\"divider\" />\n </>\n )}\n <PresentationActions\n isFullscreen={isFullscreen}\n presentationBarActions={presentationBarActions}\n toggleFullscreen={toggleFullscreen}\n />\n </div>\n </div>\n );\n};\n\nPresentationBar.propTypes = {\n currentPage: PropTypes.number,\n fitToScreen: PropTypes.func,\n fittedZoom: PropTypes.number,\n isFullscreen: PropTypes.bool,\n isVisible: PropTypes.bool,\n onAnEventTrigger: PropTypes.func,\n pageCount: PropTypes.number,\n presentationBarActions: PropTypes.arrayOf(PropTypes.shape({})),\n setCurrentPage: PropTypes.func,\n setIsFullscreen: PropTypes.func,\n setZoom: PropTypes.func,\n settings: PropTypes.shape({\n reportLayoutWidth: PropTypes.string,\n }),\n zoom: PropTypes.number,\n};\n\nPresentationBar.defaultProps = {\n currentPage: 1,\n fitToScreen: f => f,\n fittedZoom: 1,\n isFullscreen: false,\n isVisible: true,\n onAnEventTrigger: f => f,\n pageCount: 1,\n presentationBarActions: [],\n setCurrentPage: f => f,\n setIsFullscreen: f => f,\n setZoom: f => f,\n settings: {},\n zoom: 1,\n};\n\nexport default PresentationBar;\n"],"names":["PresentationBar","currentPage","fitToScreen","fittedZoom","isFullscreen","isVisible","onAnEventTrigger","pageCount","presentationBarActions","setCurrentPage","setIsFullscreen","setZoom","settings","zoom","reportLayoutWidth","toggleFullscreen","goFullscreen","openRequest","openFullscreenHelper","then","closeRequest","closeFullscreen","pageChanger","action","changePage","useLayoutEffect","window","chrome","document","querySelectorAll","forEach","domNode","parent","parentElement","removeChild","appendChild","handleZoomChange","e","target","value","blur","_jsx","_jsxs","propTypes","PropTypes","number","func","bool","arrayOf","shape","string","defaultProps","f"],"mappings":"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"}
|