@jotforminc/dnd-builder 3.6.2 → 3.6.4
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/assets/svg/ellipsis-vertical.svg.js +22 -0
- package/lib/cjs/assets/svg/ellipsis-vertical.svg.js.map +1 -0
- package/lib/cjs/components/Builder/BuilderWrapper.js +3 -3
- package/lib/cjs/components/Builder/BuilderWrapper.js.map +1 -1
- package/lib/cjs/components/Builder/Scene.js +9 -5
- package/lib/cjs/components/Builder/Scene.js.map +1 -1
- package/lib/cjs/components/Panels/SlidesNavigator/AddSlideButton.js +48 -0
- package/lib/cjs/components/Panels/SlidesNavigator/AddSlideButton.js.map +1 -0
- package/lib/cjs/components/Panels/SlidesNavigator/MoreMenu/SlideItemMoreMenu.js +52 -9
- package/lib/cjs/components/Panels/SlidesNavigator/MoreMenu/SlideItemMoreMenu.js.map +1 -1
- package/lib/cjs/components/Panels/SlidesNavigator/MoreMenuOverlay.js +20 -0
- package/lib/cjs/components/Panels/SlidesNavigator/MoreMenuOverlay.js.map +1 -0
- package/lib/cjs/components/Panels/SlidesNavigator/SlideItem.js +18 -6
- package/lib/cjs/components/Panels/SlidesNavigator/SlideItem.js.map +1 -1
- package/lib/cjs/components/Panels/SlidesNavigator/SlideItemDragOverlay.js +7 -1
- package/lib/cjs/components/Panels/SlidesNavigator/SlideItemDragOverlay.js.map +1 -1
- package/lib/cjs/components/Panels/SlidesNavigator/SlidesNavigator.js +2 -32
- package/lib/cjs/components/Panels/SlidesNavigator/SlidesNavigator.js.map +1 -1
- package/lib/cjs/components/Panels/SlidesNavigator/StaticSlideItem.js +2 -2
- package/lib/cjs/components/Panels/SlidesNavigator/StaticSlideItem.js.map +1 -1
- package/lib/cjs/components/Panels/SlidesPanel/SlidesPanel.js +1 -1
- package/lib/cjs/components/Panels/SlidesPanel/SlidesPanel.js.map +1 -1
- package/lib/cjs/styles/slides-navigator.scss +39 -0
- package/lib/cjs/utils/functions.js +5 -7
- package/lib/cjs/utils/functions.js.map +1 -1
- package/lib/cjs/utils/hooks.js +29 -4
- package/lib/cjs/utils/hooks.js.map +1 -1
- package/lib/cjs/utils/icons.js +2 -0
- package/lib/cjs/utils/icons.js.map +1 -1
- package/lib/esm/assets/svg/ellipsis-vertical.svg.js +20 -0
- package/lib/esm/assets/svg/ellipsis-vertical.svg.js.map +1 -0
- package/lib/esm/components/Builder/BuilderWrapper.js +4 -4
- package/lib/esm/components/Builder/BuilderWrapper.js.map +1 -1
- package/lib/esm/components/Builder/Scene.js +11 -7
- package/lib/esm/components/Builder/Scene.js.map +1 -1
- package/lib/esm/components/Panels/SlidesNavigator/AddSlideButton.js +46 -0
- package/lib/esm/components/Panels/SlidesNavigator/AddSlideButton.js.map +1 -0
- package/lib/esm/components/Panels/SlidesNavigator/MoreMenu/SlideItemMoreMenu.js +54 -11
- package/lib/esm/components/Panels/SlidesNavigator/MoreMenu/SlideItemMoreMenu.js.map +1 -1
- package/lib/esm/components/Panels/SlidesNavigator/MoreMenuOverlay.js +18 -0
- package/lib/esm/components/Panels/SlidesNavigator/MoreMenuOverlay.js.map +1 -0
- package/lib/esm/components/Panels/SlidesNavigator/SlideItem.js +18 -6
- package/lib/esm/components/Panels/SlidesNavigator/SlideItem.js.map +1 -1
- package/lib/esm/components/Panels/SlidesNavigator/SlideItemDragOverlay.js +7 -1
- package/lib/esm/components/Panels/SlidesNavigator/SlideItemDragOverlay.js.map +1 -1
- package/lib/esm/components/Panels/SlidesNavigator/SlidesNavigator.js +2 -32
- package/lib/esm/components/Panels/SlidesNavigator/SlidesNavigator.js.map +1 -1
- package/lib/esm/components/Panels/SlidesNavigator/StaticSlideItem.js +2 -2
- package/lib/esm/components/Panels/SlidesNavigator/StaticSlideItem.js.map +1 -1
- package/lib/esm/components/Panels/SlidesPanel/SlidesPanel.js +2 -2
- package/lib/esm/components/Panels/SlidesPanel/SlidesPanel.js.map +1 -1
- package/lib/esm/styles/slides-navigator.scss +39 -0
- package/lib/esm/utils/functions.js +5 -6
- package/lib/esm/utils/functions.js.map +1 -1
- package/lib/esm/utils/hooks.js +29 -5
- package/lib/esm/utils/hooks.js.map +1 -1
- package/lib/esm/utils/icons.js +1 -0
- package/lib/esm/utils/icons.js.map +1 -1
- package/package.json +1 -1
|
@@ -5,7 +5,7 @@ import 'core-js/modules/es.number.to-fixed.js';
|
|
|
5
5
|
import 'core-js/modules/es.object.to-string.js';
|
|
6
6
|
import 'core-js/modules/es.regexp.to-string.js';
|
|
7
7
|
import 'core-js/modules/web.dom-collections.for-each.js';
|
|
8
|
-
import { useRef, createRef, useEffect } from 'react';
|
|
8
|
+
import { useRef, createRef, useEffect, useCallback } from 'react';
|
|
9
9
|
import { mainWrapper, viewport, canvas, page } from '../../constants/classNames.js';
|
|
10
10
|
import ContextMenu from './ContextMenu.js';
|
|
11
11
|
import PageActions from './PageActions.js';
|
|
@@ -15,7 +15,7 @@ import SelectionBox from './SelectionBox.js';
|
|
|
15
15
|
import { useBuilderStore } from '../../contexts/BuilderContext.js';
|
|
16
16
|
import { usePropStore } from '../../contexts/PropContext.js';
|
|
17
17
|
import Page from './Page.js';
|
|
18
|
-
import { calculateGuidePositions,
|
|
18
|
+
import { calculateGuidePositions, isSlidesListType, findItemById, findItemsOnPage } from '../../utils/functions.js';
|
|
19
19
|
import DraggableLayer from './DraggableLayer.js';
|
|
20
20
|
import useKeyboardActions from '../../utils/useKeyboardActions.js';
|
|
21
21
|
import useMarqueeSelection from '../../utils/useMarqueeSelection.js';
|
|
@@ -149,6 +149,12 @@ var Scene = function Scene() {
|
|
|
149
149
|
transformOrigin: '0 0',
|
|
150
150
|
width: width
|
|
151
151
|
};
|
|
152
|
+
var pageOverHandler = useCallback(function (pageId) {
|
|
153
|
+
setOverPage(pageId);
|
|
154
|
+
}, [setOverPage]);
|
|
155
|
+
var pageOutHandler = useCallback(function () {
|
|
156
|
+
setOutPage(null);
|
|
157
|
+
}, [setOutPage]);
|
|
152
158
|
return /*#__PURE__*/jsxs("main", {
|
|
153
159
|
className: mainWrapper,
|
|
154
160
|
children: [/*#__PURE__*/jsx(DraggableLayer, {
|
|
@@ -162,11 +168,9 @@ var Scene = function Scene() {
|
|
|
162
168
|
className: canvas,
|
|
163
169
|
children: [pages.map(function (page$1, index) {
|
|
164
170
|
return /*#__PURE__*/jsxs("div", {
|
|
165
|
-
onMouseOut:
|
|
166
|
-
return setOutPage(null);
|
|
167
|
-
},
|
|
171
|
+
onMouseOut: pageOutHandler,
|
|
168
172
|
onMouseOver: function onMouseOver() {
|
|
169
|
-
return
|
|
173
|
+
return pageOverHandler(page$1.id);
|
|
170
174
|
},
|
|
171
175
|
children: [/*#__PURE__*/jsx(PageActions, {
|
|
172
176
|
order: page$1.order,
|
|
@@ -194,7 +198,7 @@ var Scene = function Scene() {
|
|
|
194
198
|
})
|
|
195
199
|
}), /*#__PURE__*/jsxs("div", {
|
|
196
200
|
className: "bottom-actions-container",
|
|
197
|
-
children: [
|
|
201
|
+
children: [isSlidesListType(slidesListType, 'NAVIGATOR') && /*#__PURE__*/jsx(SlidesNavigatorToggle, {}), /*#__PURE__*/jsx(ZoomControls, {})]
|
|
198
202
|
}), contextMenuProps && /*#__PURE__*/jsx(ContextMenu, {
|
|
199
203
|
exceptionalClasses: ['contextMenu-button'],
|
|
200
204
|
height: height,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Scene.js","sources":["../../../../src/components/Builder/Scene.js"],"sourcesContent":["/* eslint-disable jsx-a11y/mouse-events-have-key-events */\n/* eslint-disable complexity */\nimport {\n createRef,\n useEffect,\n useRef,\n} from 'react';\nimport * as classNames from '../../constants/classNames';\nimport ContextMenu from './ContextMenu';\nimport PageActions from './PageActions';\nimport PageAdder from './PageAdder';\nimport ZoomControls from './ZoomControls';\nimport SelectionBox from './SelectionBox';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport { usePropStore } from '../../contexts/PropContext';\nimport Page from './Page';\nimport {\n calculateGuidePositions,\n findItemById,\n findItemsOnPage,\n slidesAsNavigator,\n} from '../../utils/functions';\nimport DraggableLayer from './DraggableLayer';\nimport useKeyboardActions from '../../utils/useKeyboardActions';\nimport useMarqueeSelection from '../../utils/useMarqueeSelection';\nimport SlidesNavigatorToggle from './SlidesNavigatorToggle';\n\nconst Scene = () => {\n const pages = usePropStore(state => state.pages);\n const settings = usePropStore(state => state.settings);\n const contextMenuProps = useBuilderStore(state => state.contextMenuProps);\n const setContextMenuProps = useBuilderStore(state => state.setContextMenuProps);\n const setGuides = useBuilderStore(state => state.setGuides);\n const zoom = useBuilderStore(state => state.zoom);\n const lastScrollPosition = useBuilderStore(state => state.lastScrollPosition);\n const slidesListType = useBuilderStore(state => state.slidesListType);\n const setOverPage = useBuilderStore(state => state.setOverPage);\n const setOutPage = useBuilderStore(state => state.setOutPage);\n\n const pageStyles = useRef({});\n const pageContainerStyles = useRef({});\n const viewPortRef = useRef({});\n const canvasRef = useRef(null);\n\n /* Page Refs */\n const refs = useRef(pages.reduce((acc, curr) => {\n acc[curr.id] = createRef(null);\n return acc;\n }, {}));\n\n // Custom hooks\n useKeyboardActions();\n const { selectionBox, selectionPageId } = useMarqueeSelection(canvasRef);\n\n // Update refs when new pages are added\n useEffect(() => {\n pages.forEach(page => {\n if (!refs.current[page.id]) {\n refs.current[page.id] = createRef(null);\n }\n });\n }, [pages]);\n\n // Calculate guides for snap functionality\n useEffect(() => {\n setGuides(pages.reduce((acc, page) => {\n const _pageGuides = {};\n const pageRef = refs.current[page.id];\n if (pageRef && pageRef.current) {\n const {\n height, left, top, width,\n } = pageRef.current.getBoundingClientRect();\n const boundingBox = {\n height, left, top, width,\n };\n _pageGuides.boundingBox = {\n x: calculateGuidePositions(boundingBox, 'x').map(value => value - boundingBox.left),\n y: calculateGuidePositions(boundingBox, 'y').map(value => value - boundingBox.top),\n };\n page.items.forEach(item => {\n _pageGuides[item.id] = {\n x: calculateGuidePositions(item, 'x', zoom),\n y: calculateGuidePositions(item, 'y', zoom),\n };\n });\n }\n acc[page.id] = _pageGuides;\n return acc;\n }, {}));\n }, [pages, zoom, setGuides]);\n\n // Restore scroll position after mode change\n useEffect(() => {\n if (viewPortRef.current) {\n viewPortRef.current.scrollTop = lastScrollPosition;\n }\n }, [lastScrollPosition]);\n\n const { reportLayoutHeight = 794, reportLayoutWidth = 1123 } = settings;\n\n // TODO: Some strange shit is going on here on first render\n let width = parseInt(reportLayoutWidth, 10);\n let height = parseInt(reportLayoutHeight, 10);\n width = Number.isNaN(width) ? 1 : width;\n height = Number.isNaN(height) ? 1 : height;\n const zoomToUse = Number.isNaN(zoom) ? 1 : zoom;\n\n pageStyles.current = {\n height: parseFloat((height * zoomToUse).toFixed(1)),\n width: parseFloat((width * zoomToUse).toFixed(1)),\n };\n pageContainerStyles.current = {\n height,\n transform: `scale(${zoomToUse})`,\n transformOrigin: '0 0',\n width,\n };\n\n return (\n <main\n className={classNames.mainWrapper}\n >\n <DraggableLayer\n pageRefs={refs.current}\n />\n <div\n ref={viewPortRef}\n className={classNames.viewport}\n data-zoom={zoom}\n >\n <div\n ref={canvasRef}\n className={classNames.canvas}\n >\n {pages.map((page, index) => (\n <div\n key={page.id}\n onMouseOut={() => setOutPage(null)}\n onMouseOver={() => setOverPage(page.id)}\n >\n <PageActions\n order={page.order}\n pageID={page.id}\n />\n <div\n key={`page_${page.id}`}\n ref={refs.current[page.id]}\n className={classNames.page}\n data-id={page.id}\n data-order={page.order}\n id={`presentation-page-${page.id.toString()}`}\n style={{ ...pageStyles.current, position: 'relative' }}\n >\n <Page\n items={page.items}\n page={page}\n pageIndex={index}\n style={pageContainerStyles.current}\n />\n {selectionPageId === page.id && selectionBox && (\n <SelectionBox selectionBox={selectionBox} />\n )}\n </div>\n </div>\n ))}\n <PageAdder />\n </div>\n </div>\n <div className=\"bottom-actions-container\">\n {slidesAsNavigator(slidesListType) && <SlidesNavigatorToggle />}\n <ZoomControls />\n </div>\n {contextMenuProps\n && (\n <ContextMenu\n exceptionalClasses={['contextMenu-button']}\n height={height}\n item={findItemById(contextMenuProps.id, pages)}\n items={findItemsOnPage(contextMenuProps.pageID, pages)}\n onClickOutside={() => setContextMenuProps(null)}\n position={contextMenuProps.position}\n width={width}\n />\n )}\n </main>\n );\n};\n\nexport default Scene;\n"],"names":["Scene","pages","usePropStore","state","settings","contextMenuProps","useBuilderStore","setContextMenuProps","setGuides","zoom","lastScrollPosition","slidesListType","setOverPage","setOutPage","pageStyles","useRef","pageContainerStyles","viewPortRef","canvasRef","refs","reduce","acc","curr","id","createRef","useKeyboardActions","useMarqueeSelection","selectionBox","selectionPageId","useEffect","forEach","page","current","_pageGuides","pageRef","getBoundingClientRect","height","left","top","width","boundingBox","x","calculateGuidePositions","map","value","y","items","item","scrollTop","reportLayoutHeight","reportLayoutWidth","parseInt","Number","isNaN","zoomToUse","parseFloat","toFixed","transform","transformOrigin","_jsxs","classNames","_jsx","index","order","toString","position","slidesAsNavigator","findItemById","findItemsOnPage","pageID"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Scene.js","sources":["../../../../src/components/Builder/Scene.js"],"sourcesContent":["/* eslint-disable jsx-a11y/mouse-events-have-key-events */\n/* eslint-disable complexity */\nimport {\n createRef,\n useCallback,\n useEffect,\n useRef,\n} from 'react';\nimport * as classNames from '../../constants/classNames';\nimport ContextMenu from './ContextMenu';\nimport PageActions from './PageActions';\nimport PageAdder from './PageAdder';\nimport ZoomControls from './ZoomControls';\nimport SelectionBox from './SelectionBox';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport { usePropStore } from '../../contexts/PropContext';\nimport Page from './Page';\nimport {\n calculateGuidePositions,\n findItemById,\n findItemsOnPage,\n isSlidesListType,\n} from '../../utils/functions';\nimport DraggableLayer from './DraggableLayer';\nimport useKeyboardActions from '../../utils/useKeyboardActions';\nimport useMarqueeSelection from '../../utils/useMarqueeSelection';\nimport SlidesNavigatorToggle from './SlidesNavigatorToggle';\n\nconst Scene = () => {\n const pages = usePropStore(state => state.pages);\n const settings = usePropStore(state => state.settings);\n const contextMenuProps = useBuilderStore(state => state.contextMenuProps);\n const setContextMenuProps = useBuilderStore(state => state.setContextMenuProps);\n const setGuides = useBuilderStore(state => state.setGuides);\n const zoom = useBuilderStore(state => state.zoom);\n const lastScrollPosition = useBuilderStore(state => state.lastScrollPosition);\n const slidesListType = useBuilderStore(state => state.slidesListType);\n const setOverPage = useBuilderStore(state => state.setOverPage);\n const setOutPage = useBuilderStore(state => state.setOutPage);\n\n const pageStyles = useRef({});\n const pageContainerStyles = useRef({});\n const viewPortRef = useRef({});\n const canvasRef = useRef(null);\n\n /* Page Refs */\n const refs = useRef(pages.reduce((acc, curr) => {\n acc[curr.id] = createRef(null);\n return acc;\n }, {}));\n\n // Custom hooks\n useKeyboardActions();\n const { selectionBox, selectionPageId } = useMarqueeSelection(canvasRef);\n\n // Update refs when new pages are added\n useEffect(() => {\n pages.forEach(page => {\n if (!refs.current[page.id]) {\n refs.current[page.id] = createRef(null);\n }\n });\n }, [pages]);\n\n // Calculate guides for snap functionality\n useEffect(() => {\n setGuides(pages.reduce((acc, page) => {\n const _pageGuides = {};\n const pageRef = refs.current[page.id];\n if (pageRef && pageRef.current) {\n const {\n height, left, top, width,\n } = pageRef.current.getBoundingClientRect();\n const boundingBox = {\n height, left, top, width,\n };\n _pageGuides.boundingBox = {\n x: calculateGuidePositions(boundingBox, 'x').map(value => value - boundingBox.left),\n y: calculateGuidePositions(boundingBox, 'y').map(value => value - boundingBox.top),\n };\n page.items.forEach(item => {\n _pageGuides[item.id] = {\n x: calculateGuidePositions(item, 'x', zoom),\n y: calculateGuidePositions(item, 'y', zoom),\n };\n });\n }\n acc[page.id] = _pageGuides;\n return acc;\n }, {}));\n }, [pages, zoom, setGuides]);\n\n // Restore scroll position after mode change\n useEffect(() => {\n if (viewPortRef.current) {\n viewPortRef.current.scrollTop = lastScrollPosition;\n }\n }, [lastScrollPosition]);\n\n const { reportLayoutHeight = 794, reportLayoutWidth = 1123 } = settings;\n\n // TODO: Some strange shit is going on here on first render\n let width = parseInt(reportLayoutWidth, 10);\n let height = parseInt(reportLayoutHeight, 10);\n width = Number.isNaN(width) ? 1 : width;\n height = Number.isNaN(height) ? 1 : height;\n const zoomToUse = Number.isNaN(zoom) ? 1 : zoom;\n\n pageStyles.current = {\n height: parseFloat((height * zoomToUse).toFixed(1)),\n width: parseFloat((width * zoomToUse).toFixed(1)),\n };\n pageContainerStyles.current = {\n height,\n transform: `scale(${zoomToUse})`,\n transformOrigin: '0 0',\n width,\n };\n\n const pageOverHandler = useCallback(pageId => {\n setOverPage(pageId);\n }, [setOverPage]);\n\n const pageOutHandler = useCallback(() => {\n setOutPage(null);\n }, [setOutPage]);\n\n return (\n <main\n className={classNames.mainWrapper}\n >\n <DraggableLayer\n pageRefs={refs.current}\n />\n <div\n ref={viewPortRef}\n className={classNames.viewport}\n data-zoom={zoom}\n >\n <div\n ref={canvasRef}\n className={classNames.canvas}\n >\n {pages.map((page, index) => (\n <div\n key={page.id}\n onMouseOut={pageOutHandler}\n onMouseOver={() => pageOverHandler(page.id)}\n >\n <PageActions\n order={page.order}\n pageID={page.id}\n />\n <div\n key={`page_${page.id}`}\n ref={refs.current[page.id]}\n className={classNames.page}\n data-id={page.id}\n data-order={page.order}\n id={`presentation-page-${page.id.toString()}`}\n style={{ ...pageStyles.current, position: 'relative' }}\n >\n <Page\n items={page.items}\n page={page}\n pageIndex={index}\n style={pageContainerStyles.current}\n />\n {selectionPageId === page.id && selectionBox && (\n <SelectionBox selectionBox={selectionBox} />\n )}\n </div>\n </div>\n ))}\n <PageAdder />\n </div>\n </div>\n <div className=\"bottom-actions-container\">\n {isSlidesListType(slidesListType, 'NAVIGATOR') && <SlidesNavigatorToggle />}\n <ZoomControls />\n </div>\n {contextMenuProps\n && (\n <ContextMenu\n exceptionalClasses={['contextMenu-button']}\n height={height}\n item={findItemById(contextMenuProps.id, pages)}\n items={findItemsOnPage(contextMenuProps.pageID, pages)}\n onClickOutside={() => setContextMenuProps(null)}\n position={contextMenuProps.position}\n width={width}\n />\n )}\n </main>\n );\n};\n\nexport default Scene;\n"],"names":["Scene","pages","usePropStore","state","settings","contextMenuProps","useBuilderStore","setContextMenuProps","setGuides","zoom","lastScrollPosition","slidesListType","setOverPage","setOutPage","pageStyles","useRef","pageContainerStyles","viewPortRef","canvasRef","refs","reduce","acc","curr","id","createRef","useKeyboardActions","useMarqueeSelection","selectionBox","selectionPageId","useEffect","forEach","page","current","_pageGuides","pageRef","getBoundingClientRect","height","left","top","width","boundingBox","x","calculateGuidePositions","map","value","y","items","item","scrollTop","reportLayoutHeight","reportLayoutWidth","parseInt","Number","isNaN","zoomToUse","parseFloat","toFixed","transform","transformOrigin","pageOverHandler","useCallback","pageId","pageOutHandler","_jsxs","classNames","_jsx","index","order","toString","position","isSlidesListType","findItemById","findItemsOnPage","pageID"],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { useTranslatedTexts } from '../../../utils/hooks.js';
|
|
2
|
+
import { usePropStore } from '../../../contexts/PropContext.js';
|
|
3
|
+
import { useBuilderStore } from '../../../contexts/BuilderContext.js';
|
|
4
|
+
import { scrollToTarget } from '../../../utils/functions.js';
|
|
5
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
6
|
+
import SvgPlus from '../../../assets/svg/plus.svg.js';
|
|
7
|
+
|
|
8
|
+
var AddSlideButton = function AddSlideButton() {
|
|
9
|
+
var _useTranslatedTexts = useTranslatedTexts(),
|
|
10
|
+
ADD_SLIDE = _useTranslatedTexts.ADD_SLIDE;
|
|
11
|
+
|
|
12
|
+
var onPageAdd = usePropStore(function (state) {
|
|
13
|
+
return state.onPageAdd;
|
|
14
|
+
});
|
|
15
|
+
var visiblePageOrder = useBuilderStore(function (state) {
|
|
16
|
+
return state.visiblePageOrder;
|
|
17
|
+
});
|
|
18
|
+
var setVisiblePageOrder = useBuilderStore(function (state) {
|
|
19
|
+
return state.setVisiblePageOrder;
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
var onAddItemClick = function onAddItemClick() {
|
|
23
|
+
var newPageIndex = visiblePageOrder + 1;
|
|
24
|
+
onPageAdd(newPageIndex);
|
|
25
|
+
scrollToTarget("pageActions-id-".concat(newPageIndex), 350);
|
|
26
|
+
window.setTimeout(function () {
|
|
27
|
+
setVisiblePageOrder(newPageIndex);
|
|
28
|
+
}, 100);
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
return /*#__PURE__*/jsxs("button", {
|
|
32
|
+
className: "slides-navigator-add-item",
|
|
33
|
+
onClick: onAddItemClick,
|
|
34
|
+
title: ADD_SLIDE,
|
|
35
|
+
type: "button",
|
|
36
|
+
children: [/*#__PURE__*/jsx(SvgPlus, {
|
|
37
|
+
className: "slides-navigator-add-item-icon"
|
|
38
|
+
}), /*#__PURE__*/jsx("span", {
|
|
39
|
+
className: "slides-navigator-add-item-text",
|
|
40
|
+
children: ADD_SLIDE
|
|
41
|
+
})]
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
export default AddSlideButton;
|
|
46
|
+
//# sourceMappingURL=AddSlideButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AddSlideButton.js","sources":["../../../../../src/components/Panels/SlidesNavigator/AddSlideButton.js"],"sourcesContent":["import * as icons from '../../../utils/icons';\nimport { useTranslatedTexts } from '../../../utils/hooks';\nimport { usePropStore } from '../../../contexts/PropContext';\nimport { useBuilderStore } from '../../../contexts/BuilderContext';\nimport { scrollToTarget } from '../../../utils/functions';\n\nconst AddSlideButton = () => {\n const { ADD_SLIDE } = useTranslatedTexts();\n const onPageAdd = usePropStore(state => state.onPageAdd);\n const visiblePageOrder = useBuilderStore(state => state.visiblePageOrder);\n const setVisiblePageOrder = useBuilderStore(state => state.setVisiblePageOrder);\n\n const onAddItemClick = () => {\n const newPageIndex = visiblePageOrder + 1;\n onPageAdd(newPageIndex);\n scrollToTarget(`pageActions-id-${newPageIndex}`, 350);\n window.setTimeout(() => {\n setVisiblePageOrder(newPageIndex);\n }, 100);\n };\n\n return (\n <button\n className=\"slides-navigator-add-item\"\n onClick={onAddItemClick}\n title={ADD_SLIDE}\n type=\"button\"\n >\n <icons.plus className=\"slides-navigator-add-item-icon\" />\n <span className=\"slides-navigator-add-item-text\">{ADD_SLIDE}</span>\n </button>\n );\n};\n\nexport default AddSlideButton;\n"],"names":["AddSlideButton","useTranslatedTexts","ADD_SLIDE","onPageAdd","usePropStore","state","visiblePageOrder","useBuilderStore","setVisiblePageOrder","onAddItemClick","newPageIndex","scrollToTarget","window","setTimeout","_jsxs","_jsx","icons.plus"],"mappings":";;;;;;;IAMMA,cAAc,GAAG,SAAjBA,cAAiB,GAAM;AAC3B,4BAAsBC,kBAAkB,EAAxC;AAAA,MAAQC,SAAR,uBAAQA,SAAR;;AACA,MAAMC,SAAS,GAAGC,YAAY,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACF,SAAV;AAAA,GAAN,CAA9B;AACA,MAAMG,gBAAgB,GAAGC,eAAe,CAAC,UAAAF,KAAK;AAAA,WAAIA,KAAK,CAACC,gBAAV;AAAA,GAAN,CAAxC;AACA,MAAME,mBAAmB,GAAGD,eAAe,CAAC,UAAAF,KAAK;AAAA,WAAIA,KAAK,CAACG,mBAAV;AAAA,GAAN,CAA3C;;AAEA,MAAMC,cAAc,GAAG,SAAjBA,cAAiB,GAAM;AAC3B,QAAMC,YAAY,GAAGJ,gBAAgB,GAAG,CAAxC;AACAH,IAAAA,SAAS,CAACO,YAAD,CAAT;AACAC,IAAAA,cAAc,0BAAmBD,YAAnB,GAAmC,GAAnC,CAAd;AACAE,IAAAA,MAAM,CAACC,UAAP,CAAkB,YAAM;AACtBL,MAAAA,mBAAmB,CAACE,YAAD,CAAnB;AACD,KAFD,EAEG,GAFH;AAGD,GAPD;;AASA,sBACEI;AACE,IAAA,SAAS,EAAC,2BADZ;AAEE,IAAA,OAAO,EAAEL,cAFX;AAGE,IAAA,KAAK,EAAEP,SAHT;AAIE,IAAA,IAAI,EAAC,QAJP;AAAA,4BAMEa,IAACC,OAAD;AAAY,MAAA,SAAS,EAAC;AAAtB,MANF,eAOED;AAAM,MAAA,SAAS,EAAC,gCAAhB;AAAA,gBAAkDb;AAAlD,MAPF;AAAA,IADF;AAWD;;;;"}
|
|
@@ -2,13 +2,15 @@ import 'core-js/modules/es.array.map.js';
|
|
|
2
2
|
import { forwardRef, useState, useCallback, useMemo, useImperativeHandle } from 'react';
|
|
3
3
|
import { useFloating, offset, flip, shift, autoPlacement, autoUpdate, useClick, useDismiss, useRole, useFocus, useInteractions, useId, FloatingPortal } from '@floating-ui/react';
|
|
4
4
|
import PropTypes from 'prop-types';
|
|
5
|
-
import { useTranslatedTexts } from '../../../../utils/hooks.js';
|
|
5
|
+
import { useResizeListener, useTranslatedTexts } from '../../../../utils/hooks.js';
|
|
6
6
|
import { usePropStore } from '../../../../contexts/PropContext.js';
|
|
7
7
|
import { useBuilderStore } from '../../../../contexts/BuilderContext.js';
|
|
8
|
-
import
|
|
8
|
+
import MoreMenuOverlay from '../MoreMenuOverlay.js';
|
|
9
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
9
10
|
import SvgPlus from '../../../../assets/svg/plus.svg.js';
|
|
10
11
|
import SvgDuplicate from '../../../../assets/svg/duplicate.svg.js';
|
|
11
12
|
import SvgTrash from '../../../../assets/svg/trash.svg.js';
|
|
13
|
+
import SvgEllipsisVertical from '../../../../assets/svg/ellipsis-vertical.svg.js';
|
|
12
14
|
|
|
13
15
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
14
16
|
|
|
@@ -30,7 +32,8 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
|
30
32
|
var PAGE_ACTIONS_SYNC_MS = 100;
|
|
31
33
|
var SlideItemMoreMenu = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
32
34
|
var order = _ref.order,
|
|
33
|
-
page = _ref.page
|
|
35
|
+
page = _ref.page,
|
|
36
|
+
selected = _ref.selected;
|
|
34
37
|
|
|
35
38
|
var _useState = useState(false),
|
|
36
39
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -48,6 +51,8 @@ var SlideItemMoreMenu = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
48
51
|
var setVisiblePageOrder = useBuilderStore(function (state) {
|
|
49
52
|
return state.setVisiblePageOrder;
|
|
50
53
|
});
|
|
54
|
+
var viewportWidth = useResizeListener(true);
|
|
55
|
+
var isMobile = viewportWidth > 0 && viewportWidth < 480;
|
|
51
56
|
var openCardContextMenu = useCallback(function (e) {
|
|
52
57
|
var useMousePointer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
53
58
|
if (isOpen) return;
|
|
@@ -131,7 +136,8 @@ var SlideItemMoreMenu = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
131
136
|
var focus = useFocus(context);
|
|
132
137
|
|
|
133
138
|
var _useInteractions = useInteractions([click, dismiss, role, focus]),
|
|
134
|
-
getFloatingProps = _useInteractions.getFloatingProps
|
|
139
|
+
getFloatingProps = _useInteractions.getFloatingProps,
|
|
140
|
+
getReferenceProps = _useInteractions.getReferenceProps;
|
|
135
141
|
|
|
136
142
|
var headingId = useId();
|
|
137
143
|
var customStyles = {
|
|
@@ -141,6 +147,26 @@ var SlideItemMoreMenu = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
141
147
|
transform: 'translate(9px, 0px)',
|
|
142
148
|
zIndex: '99999'
|
|
143
149
|
};
|
|
150
|
+
var mobileCustomStyles = {
|
|
151
|
+
animation: 'fadeInTop 200ms ease-in-out forwards',
|
|
152
|
+
borderBottomLeftRadius: '0px',
|
|
153
|
+
borderBottomRightRadius: '0px',
|
|
154
|
+
borderTopLeftRadius: '16px',
|
|
155
|
+
borderTopRightRadius: '16px',
|
|
156
|
+
bottom: 0,
|
|
157
|
+
boxShadow: 'rgba(37, 45, 91, 0.04) 0px 2px 4px 0px, rgba(84, 95, 111, 0.16) 0px 8px 16px 0px',
|
|
158
|
+
height: 'auto',
|
|
159
|
+
left: '0',
|
|
160
|
+
maxHeight: '100%',
|
|
161
|
+
maxWidth: '100%',
|
|
162
|
+
padding: '8px',
|
|
163
|
+
position: 'fixed',
|
|
164
|
+
top: 'unset',
|
|
165
|
+
transform: 'translate(0px, 0px)',
|
|
166
|
+
width: '100vw',
|
|
167
|
+
willChange: 'unset',
|
|
168
|
+
zIndex: '99999'
|
|
169
|
+
};
|
|
144
170
|
var handleAddNewSlide = useCallback(function () {
|
|
145
171
|
var nextPageOrder = order + 1;
|
|
146
172
|
onPageAdd(nextPageOrder);
|
|
@@ -210,16 +236,32 @@ var SlideItemMoreMenu = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
210
236
|
handleOpenMenu: handleOpenMenu
|
|
211
237
|
};
|
|
212
238
|
}, [handleOpenMenu]);
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
239
|
+
|
|
240
|
+
var styles = _objectSpread(_objectSpread({}, floatingStyles), isMobile ? mobileCustomStyles : customStyles);
|
|
241
|
+
|
|
242
|
+
return /*#__PURE__*/jsxs(Fragment, {
|
|
243
|
+
children: [isMobile && selected && /*#__PURE__*/jsx("button", _objectSpread(_objectSpread({
|
|
244
|
+
type: "button"
|
|
245
|
+
}, getReferenceProps()), {}, {
|
|
246
|
+
ref: refs.setReference,
|
|
247
|
+
className: "slides-navigator-context-menu-button",
|
|
248
|
+
"data-testid": "more-menu-button-".concat(page.id),
|
|
249
|
+
children: /*#__PURE__*/jsx(SvgEllipsisVertical, {
|
|
250
|
+
style: {
|
|
251
|
+
flexShrink: 0,
|
|
252
|
+
height: '16px',
|
|
253
|
+
width: '14px'
|
|
254
|
+
}
|
|
255
|
+
})
|
|
256
|
+
})), isOpen && /*#__PURE__*/jsxs(FloatingPortal, {
|
|
257
|
+
children: [/*#__PURE__*/jsx(MoreMenuOverlay, {}), /*#__PURE__*/jsx("div", _objectSpread(_objectSpread({
|
|
216
258
|
ref: refs.setFloating,
|
|
217
259
|
alignItems: "start",
|
|
218
260
|
"aria-labelledby": headingId,
|
|
219
261
|
className: "slides-navigator-context-menu",
|
|
220
262
|
direction: "column",
|
|
221
263
|
justifyContent: "start",
|
|
222
|
-
style:
|
|
264
|
+
style: styles
|
|
223
265
|
}, getFloatingProps()), {}, {
|
|
224
266
|
children: /*#__PURE__*/jsx("div", {
|
|
225
267
|
className: "slides-navigator-context-menu-items",
|
|
@@ -236,15 +278,16 @@ var SlideItemMoreMenu = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
236
278
|
}, schemaOption.id);
|
|
237
279
|
})
|
|
238
280
|
})
|
|
239
|
-
}))
|
|
240
|
-
})
|
|
281
|
+
}))]
|
|
282
|
+
})]
|
|
241
283
|
});
|
|
242
284
|
});
|
|
243
285
|
SlideItemMoreMenu.propTypes = {
|
|
244
286
|
order: PropTypes.number.isRequired,
|
|
245
287
|
page: PropTypes.shape({
|
|
246
288
|
id: PropTypes.string.isRequired
|
|
247
|
-
}).isRequired
|
|
289
|
+
}).isRequired,
|
|
290
|
+
selected: PropTypes.bool.isRequired
|
|
248
291
|
};
|
|
249
292
|
|
|
250
293
|
export default SlideItemMoreMenu;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SlideItemMoreMenu.js","sources":["../../../../../../src/components/Panels/SlidesNavigator/MoreMenu/SlideItemMoreMenu.js"],"sourcesContent":["import {\n forwardRef, useCallback, useImperativeHandle, useMemo, useState,\n} from 'react';\nimport {\n useFloating,\n autoUpdate,\n offset,\n flip,\n shift,\n useDismiss,\n useRole,\n useClick,\n useInteractions,\n useId,\n useFocus,\n FloatingPortal,\n autoPlacement,\n} from '@floating-ui/react';\nimport PropTypes from 'prop-types';\nimport * as icons from '../../../../utils/icons';\nimport { useTranslatedTexts } from '../../../../utils/hooks';\nimport { usePropStore } from '../../../../contexts/PropContext';\nimport { useBuilderStore } from '../../../../contexts/BuilderContext';\n\nconst PAGE_ACTIONS_SYNC_MS = 100;\n\nconst SlideItemMoreMenu = forwardRef(({ order, page }, ref) => {\n const [isOpen, setIsOpen] = useState(false);\n const [rectPosition, setRectPosition] = useState({ left: 0, top: 0 });\n const setVisiblePageOrder = useBuilderStore(state => state.setVisiblePageOrder);\n\n const openCardContextMenu = useCallback((e, useMousePointer = false) => {\n if (isOpen) return;\n e.preventDefault();\n const cursorTarget = e.target;\n let { top } = cursorTarget.getBoundingClientRect();\n let { left } = cursorTarget.getBoundingClientRect();\n if (useMousePointer) {\n top = e.clientY;\n left = e.clientX;\n }\n const { innerHeight, innerWidth } = window;\n const floatingHeight = 196;\n const floatingWidth = 224;\n const innerLeftDecrement = (innerWidth - left) > floatingWidth;\n const innerTopDecrement = (innerHeight - top) > floatingHeight;\n const leftVal = !innerLeftDecrement ? left - floatingWidth : left;\n const topVal = !innerTopDecrement ? top - (floatingHeight) : top + (!useMousePointer ? 24 : 0);\n setRectPosition({ left: leftVal, top: topVal });\n }, [isOpen]);\n\n const onPageAdd = usePropStore(state => state.onPageAdd);\n const onPageDuplicate = usePropStore(state => state.onPageDuplicate);\n const onPageRemove = usePropStore(state => state.onPageRemove);\n const onAnEventTrigger = usePropStore(state => state.onAnEventTrigger);\n\n const { ADD_NEW_SLIDE, DELETE_SLIDE, DUPLICATE_SLIDE } = useTranslatedTexts();\n\n const { context, floatingStyles, refs } = useFloating({\n middleware: [\n offset({\n crossAxis: 10000,\n mainAxis: 5,\n }),\n flip({\n crossAxis: true,\n fallbackAxisSideDirection: 'none',\n }),\n shift(),\n autoPlacement({\n alignment: 'start',\n crossAxis: true,\n }),\n ],\n onOpenChange: nextOpen => {\n setIsOpen(nextOpen);\n },\n open: isOpen,\n placement: 'bottom',\n strategy: 'fixed',\n transform: true,\n whileElementsMounted: autoUpdate,\n });\n\n const click = useClick(context, {\n event: 'click',\n });\n const dismiss = useDismiss(context, { ancestorScroll: true });\n const role = useRole(context);\n const focus = useFocus(context);\n\n const { getFloatingProps } = useInteractions([\n click,\n dismiss,\n role,\n focus,\n ]);\n\n const headingId = useId();\n\n const customStyles = {\n boxShadow: '0px 2px 4px 0px rgba(37, 45, 91, 0.04), 0px 8px 16px 0px rgba(84, 95, 111, 0.16)',\n left: rectPosition.left,\n top: rectPosition.top,\n transform: 'translate(9px, 0px)',\n zIndex: '99999',\n };\n\n const handleAddNewSlide = useCallback(() => {\n const nextPageOrder = order + 1;\n onPageAdd(nextPageOrder);\n onAnEventTrigger('addNewPageFromSlides', nextPageOrder);\n setIsOpen(false);\n window.setTimeout(() => {\n setVisiblePageOrder(nextPageOrder);\n }, PAGE_ACTIONS_SYNC_MS);\n }, [onPageAdd, order, onAnEventTrigger, setVisiblePageOrder]);\n\n const handleDuplicateSlide = useCallback(() => {\n const nextPageOrder = order + 1;\n onPageDuplicate(page);\n onAnEventTrigger('duplicatePage', nextPageOrder);\n setIsOpen(false);\n window.setTimeout(() => {\n setVisiblePageOrder(nextPageOrder);\n }, PAGE_ACTIONS_SYNC_MS);\n }, [onPageDuplicate, page, order, onAnEventTrigger, setVisiblePageOrder]);\n\n const handleDeleteSlide = useCallback(() => {\n onPageRemove(page.id);\n onAnEventTrigger('removePageFromSlides', page.id);\n setIsOpen(false);\n const visibleOrderAfterDelete = Math.max(order - 1, 1);\n window.setTimeout(() => {\n setVisiblePageOrder(visibleOrderAfterDelete);\n }, PAGE_ACTIONS_SYNC_MS);\n }, [page, order, onPageRemove, onAnEventTrigger, setVisiblePageOrder]);\n\n const schemaOptions = useMemo(() => {\n return (\n [\n {\n className: 'slides-navigator-context-menu-item',\n icon: <icons.plus className=\"slides-navigator-context-menu-item-icon\" />,\n id: 'add_new_slide',\n isVisible: true,\n onClick: handleAddNewSlide,\n textClassName: 'slides-navigator-context-menu-item-text add',\n title: ADD_NEW_SLIDE,\n },\n {\n className: 'slides-navigator-context-menu-item',\n icon: <icons.duplicate className=\"slides-navigator-context-menu-item-icon\" />,\n id: 'duplicate_slide',\n isVisible: true,\n onClick: handleDuplicateSlide,\n textClassName: 'slides-navigator-context-menu-item-text duplicate',\n title: DUPLICATE_SLIDE,\n },\n {\n className: 'slides-navigator-context-menu-item',\n icon: <icons.trash className=\"slides-navigator-context-menu-item-icon delete\" />,\n id: 'delete_slide',\n isVisible: true,\n onClick: handleDeleteSlide,\n textClassName: 'slides-navigator-context-menu-item-text delete',\n title: DELETE_SLIDE,\n },\n ]\n );\n }, [handleAddNewSlide, handleDuplicateSlide, handleDeleteSlide, ADD_NEW_SLIDE, DUPLICATE_SLIDE, DELETE_SLIDE]);\n\n const handleOpenMenu = useCallback(e => {\n setIsOpen(true);\n openCardContextMenu(e, true);\n }, [openCardContextMenu]);\n\n useImperativeHandle(ref, () => {\n return {\n handleOpenMenu,\n };\n }, [handleOpenMenu]);\n\n return (\n <>\n {isOpen && (\n <FloatingPortal>\n {/* <PopoverOverlay /> */}\n <div\n ref={refs.setFloating}\n alignItems=\"start\"\n aria-labelledby={headingId}\n className=\"slides-navigator-context-menu\"\n direction=\"column\"\n justifyContent=\"start\"\n style={{\n ...floatingStyles,\n ...customStyles,\n }}\n {...getFloatingProps()}\n >\n <div\n className=\"slides-navigator-context-menu-items\"\n >\n {schemaOptions.map(schemaOption => {\n return (\n schemaOption.isVisible\n && (\n <button\n key={schemaOption.id}\n className={schemaOption.className}\n id={schemaOption.id}\n onClick={schemaOption.onClick}\n type=\"button\"\n >\n {schemaOption.icon}\n <span className={` ${schemaOption.textClassName}`}>{schemaOption.title}</span>\n </button>\n )\n );\n })}\n </div>\n </div>\n </FloatingPortal>\n )}\n </>\n );\n});\n\nSlideItemMoreMenu.propTypes = {\n order: PropTypes.number.isRequired,\n page: PropTypes.shape({\n id: PropTypes.string.isRequired,\n }).isRequired,\n};\n\nexport default SlideItemMoreMenu;\n"],"names":["PAGE_ACTIONS_SYNC_MS","SlideItemMoreMenu","forwardRef","ref","order","page","useState","isOpen","setIsOpen","left","top","rectPosition","setRectPosition","setVisiblePageOrder","useBuilderStore","state","openCardContextMenu","useCallback","e","useMousePointer","preventDefault","cursorTarget","target","getBoundingClientRect","clientY","clientX","window","innerHeight","innerWidth","floatingHeight","floatingWidth","innerLeftDecrement","innerTopDecrement","leftVal","topVal","onPageAdd","usePropStore","onPageDuplicate","onPageRemove","onAnEventTrigger","useTranslatedTexts","ADD_NEW_SLIDE","DELETE_SLIDE","DUPLICATE_SLIDE","useFloating","middleware","offset","crossAxis","mainAxis","flip","fallbackAxisSideDirection","shift","autoPlacement","alignment","onOpenChange","nextOpen","open","placement","strategy","transform","whileElementsMounted","autoUpdate","context","floatingStyles","refs","click","useClick","event","dismiss","useDismiss","ancestorScroll","role","useRole","focus","useFocus","useInteractions","getFloatingProps","headingId","useId","customStyles","boxShadow","zIndex","handleAddNewSlide","nextPageOrder","setTimeout","handleDuplicateSlide","handleDeleteSlide","id","visibleOrderAfterDelete","Math","max","schemaOptions","useMemo","className","icon","_jsx","icons.plus","isVisible","onClick","textClassName","title","icons.duplicate","icons.trash","handleOpenMenu","useImperativeHandle","setFloating","map","schemaOption","_jsxs","propTypes","PropTypes","number","isRequired","shape","string"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SlideItemMoreMenu.js","sources":["../../../../../../src/components/Panels/SlidesNavigator/MoreMenu/SlideItemMoreMenu.js"],"sourcesContent":["import {\n forwardRef, useCallback, useImperativeHandle, useMemo, useState,\n} from 'react';\nimport {\n useFloating,\n autoUpdate,\n offset,\n flip,\n shift,\n useDismiss,\n useRole,\n useClick,\n useInteractions,\n useId,\n useFocus,\n FloatingPortal,\n autoPlacement,\n} from '@floating-ui/react';\nimport PropTypes from 'prop-types';\nimport * as icons from '../../../../utils/icons';\nimport { useResizeListener, useTranslatedTexts } from '../../../../utils/hooks';\nimport { usePropStore } from '../../../../contexts/PropContext';\nimport { useBuilderStore } from '../../../../contexts/BuilderContext';\nimport MoreMenuOverlay from '../MoreMenuOverlay';\n\nconst PAGE_ACTIONS_SYNC_MS = 100;\n\nconst SlideItemMoreMenu = forwardRef(({ order, page, selected }, ref) => {\n const [isOpen, setIsOpen] = useState(false);\n const [rectPosition, setRectPosition] = useState({ left: 0, top: 0 });\n const setVisiblePageOrder = useBuilderStore(state => state.setVisiblePageOrder);\n const viewportWidth = useResizeListener(true);\n const isMobile = viewportWidth > 0 && viewportWidth < 480;\n\n const openCardContextMenu = useCallback((e, useMousePointer = false) => {\n if (isOpen) return;\n e.preventDefault();\n const cursorTarget = e.target;\n let { top } = cursorTarget.getBoundingClientRect();\n let { left } = cursorTarget.getBoundingClientRect();\n if (useMousePointer) {\n top = e.clientY;\n left = e.clientX;\n }\n const { innerHeight, innerWidth } = window;\n const floatingHeight = 196;\n const floatingWidth = 224;\n const innerLeftDecrement = (innerWidth - left) > floatingWidth;\n const innerTopDecrement = (innerHeight - top) > floatingHeight;\n const leftVal = !innerLeftDecrement ? left - floatingWidth : left;\n const topVal = !innerTopDecrement ? top - (floatingHeight) : top + (!useMousePointer ? 24 : 0);\n setRectPosition({ left: leftVal, top: topVal });\n }, [isOpen]);\n\n const onPageAdd = usePropStore(state => state.onPageAdd);\n const onPageDuplicate = usePropStore(state => state.onPageDuplicate);\n const onPageRemove = usePropStore(state => state.onPageRemove);\n const onAnEventTrigger = usePropStore(state => state.onAnEventTrigger);\n\n const { ADD_NEW_SLIDE, DELETE_SLIDE, DUPLICATE_SLIDE } = useTranslatedTexts();\n\n const { context, floatingStyles, refs } = useFloating({\n middleware: [\n offset({\n crossAxis: 10000,\n mainAxis: 5,\n }),\n flip({\n crossAxis: true,\n fallbackAxisSideDirection: 'none',\n }),\n shift(),\n autoPlacement({\n alignment: 'start',\n crossAxis: true,\n }),\n ],\n onOpenChange: nextOpen => {\n setIsOpen(nextOpen);\n },\n open: isOpen,\n placement: 'bottom',\n strategy: 'fixed',\n transform: true,\n whileElementsMounted: autoUpdate,\n });\n\n const click = useClick(context, {\n event: 'click',\n });\n const dismiss = useDismiss(context, { ancestorScroll: true });\n const role = useRole(context);\n const focus = useFocus(context);\n\n const { getFloatingProps, getReferenceProps } = useInteractions([\n click,\n dismiss,\n role,\n focus,\n ]);\n\n const headingId = useId();\n\n const customStyles = {\n boxShadow: '0px 2px 4px 0px rgba(37, 45, 91, 0.04), 0px 8px 16px 0px rgba(84, 95, 111, 0.16)',\n left: rectPosition.left,\n top: rectPosition.top,\n transform: 'translate(9px, 0px)',\n zIndex: '99999',\n };\n\n const mobileCustomStyles = {\n animation: 'fadeInTop 200ms ease-in-out forwards',\n borderBottomLeftRadius: '0px',\n borderBottomRightRadius: '0px',\n borderTopLeftRadius: '16px',\n borderTopRightRadius: '16px',\n bottom: 0,\n boxShadow: 'rgba(37, 45, 91, 0.04) 0px 2px 4px 0px, rgba(84, 95, 111, 0.16) 0px 8px 16px 0px',\n height: 'auto',\n left: '0',\n maxHeight: '100%',\n maxWidth: '100%',\n padding: '8px',\n position: 'fixed',\n top: 'unset',\n transform: 'translate(0px, 0px)',\n width: '100vw',\n willChange: 'unset',\n zIndex: '99999',\n };\n\n const handleAddNewSlide = useCallback(() => {\n const nextPageOrder = order + 1;\n onPageAdd(nextPageOrder);\n onAnEventTrigger('addNewPageFromSlides', nextPageOrder);\n setIsOpen(false);\n window.setTimeout(() => {\n setVisiblePageOrder(nextPageOrder);\n }, PAGE_ACTIONS_SYNC_MS);\n }, [onPageAdd, order, onAnEventTrigger, setVisiblePageOrder]);\n\n const handleDuplicateSlide = useCallback(() => {\n const nextPageOrder = order + 1;\n onPageDuplicate(page);\n onAnEventTrigger('duplicatePage', nextPageOrder);\n setIsOpen(false);\n window.setTimeout(() => {\n setVisiblePageOrder(nextPageOrder);\n }, PAGE_ACTIONS_SYNC_MS);\n }, [onPageDuplicate, page, order, onAnEventTrigger, setVisiblePageOrder]);\n\n const handleDeleteSlide = useCallback(() => {\n onPageRemove(page.id);\n onAnEventTrigger('removePageFromSlides', page.id);\n setIsOpen(false);\n const visibleOrderAfterDelete = Math.max(order - 1, 1);\n window.setTimeout(() => {\n setVisiblePageOrder(visibleOrderAfterDelete);\n }, PAGE_ACTIONS_SYNC_MS);\n }, [page, order, onPageRemove, onAnEventTrigger, setVisiblePageOrder]);\n\n const schemaOptions = useMemo(() => {\n return (\n [\n {\n className: 'slides-navigator-context-menu-item',\n icon: <icons.plus className=\"slides-navigator-context-menu-item-icon\" />,\n id: 'add_new_slide',\n isVisible: true,\n onClick: handleAddNewSlide,\n textClassName: 'slides-navigator-context-menu-item-text add',\n title: ADD_NEW_SLIDE,\n },\n {\n className: 'slides-navigator-context-menu-item',\n icon: <icons.duplicate className=\"slides-navigator-context-menu-item-icon\" />,\n id: 'duplicate_slide',\n isVisible: true,\n onClick: handleDuplicateSlide,\n textClassName: 'slides-navigator-context-menu-item-text duplicate',\n title: DUPLICATE_SLIDE,\n },\n {\n className: 'slides-navigator-context-menu-item',\n icon: <icons.trash className=\"slides-navigator-context-menu-item-icon delete\" />,\n id: 'delete_slide',\n isVisible: true,\n onClick: handleDeleteSlide,\n textClassName: 'slides-navigator-context-menu-item-text delete',\n title: DELETE_SLIDE,\n },\n ]\n );\n }, [handleAddNewSlide, handleDuplicateSlide, handleDeleteSlide, ADD_NEW_SLIDE, DUPLICATE_SLIDE, DELETE_SLIDE]);\n\n const handleOpenMenu = useCallback(e => {\n setIsOpen(true);\n openCardContextMenu(e, true);\n }, [openCardContextMenu]);\n\n useImperativeHandle(ref, () => {\n return {\n handleOpenMenu,\n };\n }, [handleOpenMenu]);\n\n const styles = { ...floatingStyles, ...(isMobile ? mobileCustomStyles : customStyles) };\n\n return (\n <>\n {(isMobile && selected) && (\n <button\n type=\"button\"\n {...getReferenceProps()}\n ref={refs.setReference}\n className=\"slides-navigator-context-menu-button\"\n data-testid={`more-menu-button-${page.id}`}\n >\n <icons.ellipsisVertical style={{ flexShrink: 0, height: '16px', width: '14px' }} />\n </button>\n )}\n {isOpen && (\n <FloatingPortal>\n <MoreMenuOverlay />\n <div\n ref={refs.setFloating}\n alignItems=\"start\"\n aria-labelledby={headingId}\n className=\"slides-navigator-context-menu\"\n direction=\"column\"\n justifyContent=\"start\"\n style={styles}\n {...getFloatingProps()}\n >\n <div\n className=\"slides-navigator-context-menu-items\"\n >\n {schemaOptions.map(schemaOption => {\n return (\n schemaOption.isVisible\n && (\n <button\n key={schemaOption.id}\n className={schemaOption.className}\n id={schemaOption.id}\n onClick={schemaOption.onClick}\n type=\"button\"\n >\n {schemaOption.icon}\n <span className={` ${schemaOption.textClassName}`}>{schemaOption.title}</span>\n </button>\n )\n );\n })}\n </div>\n </div>\n </FloatingPortal>\n )}\n </>\n );\n});\n\nSlideItemMoreMenu.propTypes = {\n order: PropTypes.number.isRequired,\n page: PropTypes.shape({\n id: PropTypes.string.isRequired,\n }).isRequired,\n selected: PropTypes.bool.isRequired,\n};\n\nexport default SlideItemMoreMenu;\n"],"names":["PAGE_ACTIONS_SYNC_MS","SlideItemMoreMenu","forwardRef","ref","order","page","selected","useState","isOpen","setIsOpen","left","top","rectPosition","setRectPosition","setVisiblePageOrder","useBuilderStore","state","viewportWidth","useResizeListener","isMobile","openCardContextMenu","useCallback","e","useMousePointer","preventDefault","cursorTarget","target","getBoundingClientRect","clientY","clientX","window","innerHeight","innerWidth","floatingHeight","floatingWidth","innerLeftDecrement","innerTopDecrement","leftVal","topVal","onPageAdd","usePropStore","onPageDuplicate","onPageRemove","onAnEventTrigger","useTranslatedTexts","ADD_NEW_SLIDE","DELETE_SLIDE","DUPLICATE_SLIDE","useFloating","middleware","offset","crossAxis","mainAxis","flip","fallbackAxisSideDirection","shift","autoPlacement","alignment","onOpenChange","nextOpen","open","placement","strategy","transform","whileElementsMounted","autoUpdate","context","floatingStyles","refs","click","useClick","event","dismiss","useDismiss","ancestorScroll","role","useRole","focus","useFocus","useInteractions","getFloatingProps","getReferenceProps","headingId","useId","customStyles","boxShadow","zIndex","mobileCustomStyles","animation","borderBottomLeftRadius","borderBottomRightRadius","borderTopLeftRadius","borderTopRightRadius","bottom","height","maxHeight","maxWidth","padding","position","width","willChange","handleAddNewSlide","nextPageOrder","setTimeout","handleDuplicateSlide","handleDeleteSlide","id","visibleOrderAfterDelete","Math","max","schemaOptions","useMemo","className","icon","_jsx","icons.plus","isVisible","onClick","textClassName","title","icons.duplicate","icons.trash","handleOpenMenu","useImperativeHandle","styles","_jsxs","setReference","icons.ellipsisVertical","flexShrink","setFloating","map","schemaOption","propTypes","PropTypes","number","isRequired","shape","string","bool"],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { FloatingOverlay } from '@floating-ui/react';
|
|
2
|
+
import { useResizeListener } from '../../../utils/hooks.js';
|
|
3
|
+
import { jsx } from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
var MoreMenuOverlay = function MoreMenuOverlay() {
|
|
6
|
+
var viewportWidth = useResizeListener(true);
|
|
7
|
+
var isMobile = viewportWidth > 0 && viewportWidth < 480;
|
|
8
|
+
return isMobile && /*#__PURE__*/jsx(FloatingOverlay, {
|
|
9
|
+
className: "jfSlidesMoreMenu-overlay",
|
|
10
|
+
style: {
|
|
11
|
+
backgroundColor: 'rgba(17, 24, 39, 0.6)',
|
|
12
|
+
zIndex: 99998
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export default MoreMenuOverlay;
|
|
18
|
+
//# sourceMappingURL=MoreMenuOverlay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MoreMenuOverlay.js","sources":["../../../../../src/components/Panels/SlidesNavigator/MoreMenuOverlay.js"],"sourcesContent":["import { FloatingOverlay } from '@floating-ui/react';\nimport { useResizeListener } from '../../../utils/hooks';\n\nconst MoreMenuOverlay = () => {\n const viewportWidth = useResizeListener(true);\n const isMobile = viewportWidth > 0 && viewportWidth < 480;\n\n return (\n isMobile && (\n <FloatingOverlay\n className=\"jfSlidesMoreMenu-overlay\"\n style={{\n backgroundColor: 'rgba(17, 24, 39, 0.6)',\n zIndex: 99998,\n }}\n />\n )\n );\n};\n\nexport default MoreMenuOverlay;\n"],"names":["MoreMenuOverlay","viewportWidth","useResizeListener","isMobile","_jsx","backgroundColor","zIndex"],"mappings":";;;;IAGMA,eAAe,GAAG,SAAlBA,eAAkB,GAAM;AAC5B,MAAMC,aAAa,GAAGC,iBAAiB,CAAC,IAAD,CAAvC;AACA,MAAMC,QAAQ,GAAGF,aAAa,GAAG,CAAhB,IAAqBA,aAAa,GAAG,GAAtD;AAEA,SACEE,QAAQ,iBACNC,IAAC,eAAD;AACE,IAAA,SAAS,EAAC,0BADZ;AAEE,IAAA,KAAK,EAAE;AACLC,MAAAA,eAAe,EAAE,uBADZ;AAELC,MAAAA,MAAM,EAAE;AAFH;AAFT,IAFJ;AAWD;;;;"}
|
|
@@ -9,6 +9,7 @@ import StaticSlideItem from './StaticSlideItem.js';
|
|
|
9
9
|
import SlideItemMoreMenu from './MoreMenu/SlideItemMoreMenu.js';
|
|
10
10
|
import { emptyFunction } from '../../../utils/functions.js';
|
|
11
11
|
import { useBuilderStore } from '../../../contexts/BuilderContext.js';
|
|
12
|
+
import { usePropStore } from '../../../contexts/PropContext.js';
|
|
12
13
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
13
14
|
|
|
14
15
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
@@ -30,6 +31,18 @@ var SlideItem = function SlideItem(_ref) {
|
|
|
30
31
|
reportWidth = _ref.reportWidth,
|
|
31
32
|
style = _ref.style;
|
|
32
33
|
var moreMenuRef = useRef(null);
|
|
34
|
+
var setVisiblePageOrder = useBuilderStore(function (state) {
|
|
35
|
+
return state.setVisiblePageOrder;
|
|
36
|
+
});
|
|
37
|
+
var visiblePageOrder = useBuilderStore(function (state) {
|
|
38
|
+
return state.visiblePageOrder;
|
|
39
|
+
});
|
|
40
|
+
var reportBackgroundColor = usePropStore(function (state) {
|
|
41
|
+
var _state$settings;
|
|
42
|
+
|
|
43
|
+
return (_state$settings = state.settings) === null || _state$settings === void 0 ? void 0 : _state$settings.reportBackgroundColor;
|
|
44
|
+
});
|
|
45
|
+
var selected = visiblePageOrder === order;
|
|
33
46
|
|
|
34
47
|
var _useSortable = useSortable({
|
|
35
48
|
id: id
|
|
@@ -41,12 +54,10 @@ var SlideItem = function SlideItem(_ref) {
|
|
|
41
54
|
transform = _useSortable.transform,
|
|
42
55
|
transition = _useSortable.transition;
|
|
43
56
|
|
|
44
|
-
var selected = useBuilderStore(useCallback(function (state) {
|
|
45
|
-
return state.visiblePageOrder.toString() === order.toString();
|
|
46
|
-
}, [order]));
|
|
47
57
|
var itemClickHandler = useCallback(function (e) {
|
|
58
|
+
setVisiblePageOrder(order);
|
|
48
59
|
onPageClick === null || onPageClick === void 0 ? void 0 : onPageClick(e);
|
|
49
|
-
}, [onPageClick]);
|
|
60
|
+
}, [onPageClick, setVisiblePageOrder, order]);
|
|
50
61
|
var handleContextMenu = useCallback(function (e) {
|
|
51
62
|
var _moreMenuRef$current;
|
|
52
63
|
|
|
@@ -92,7 +103,7 @@ var SlideItem = function SlideItem(_ref) {
|
|
|
92
103
|
}), /*#__PURE__*/jsx("div", {
|
|
93
104
|
className: "slides-navigator-item-content",
|
|
94
105
|
children: /*#__PURE__*/jsx(StaticSlideItem, {
|
|
95
|
-
backgroundColor: page.backgroundColor,
|
|
106
|
+
backgroundColor: page.backgroundColor || reportBackgroundColor || '#fff',
|
|
96
107
|
items: page.items,
|
|
97
108
|
reportHeight: reportHeight,
|
|
98
109
|
reportWidth: reportWidth
|
|
@@ -100,7 +111,8 @@ var SlideItem = function SlideItem(_ref) {
|
|
|
100
111
|
}), /*#__PURE__*/jsx(SlideItemMoreMenu, {
|
|
101
112
|
ref: moreMenuRef,
|
|
102
113
|
order: order,
|
|
103
|
-
page: page
|
|
114
|
+
page: page,
|
|
115
|
+
selected: selected
|
|
104
116
|
})]
|
|
105
117
|
})
|
|
106
118
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SlideItem.js","sources":["../../../../../src/components/Panels/SlidesNavigator/SlideItem.js"],"sourcesContent":["import {\n memo, useCallback, useMemo, useRef,\n} from 'react';\nimport { motion } from 'framer-motion';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport PropTypes from 'prop-types';\nimport StaticSlideItem from './StaticSlideItem';\nimport SlideItemMoreMenu from './MoreMenu/SlideItemMoreMenu';\nimport { emptyFunction } from '../../../utils/functions';\nimport { useBuilderStore } from '../../../contexts/BuilderContext';\n\nconst slideRevealTransition = {\n duration: 0.25,\n ease: [0.2, 0, 0.2, 1],\n};\n\nconst SlideItem = ({\n id,\n onPageClick,\n order,\n page,\n reportHeight,\n reportWidth,\n style,\n}) => {\n const moreMenuRef = useRef(null);\n\n const {\n attributes,\n isDragging,\n listeners,\n setNodeRef,\n transform,\n transition,\n } = useSortable({ id });\n\n const
|
|
1
|
+
{"version":3,"file":"SlideItem.js","sources":["../../../../../src/components/Panels/SlidesNavigator/SlideItem.js"],"sourcesContent":["import {\n memo, useCallback, useMemo, useRef,\n} from 'react';\nimport { motion } from 'framer-motion';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport PropTypes from 'prop-types';\nimport StaticSlideItem from './StaticSlideItem';\nimport SlideItemMoreMenu from './MoreMenu/SlideItemMoreMenu';\nimport { emptyFunction } from '../../../utils/functions';\nimport { useBuilderStore } from '../../../contexts/BuilderContext';\nimport { usePropStore } from '../../../contexts/PropContext';\n\nconst slideRevealTransition = {\n duration: 0.25,\n ease: [0.2, 0, 0.2, 1],\n};\n\nconst SlideItem = ({\n id,\n onPageClick,\n order,\n page,\n reportHeight,\n reportWidth,\n style,\n}) => {\n const moreMenuRef = useRef(null);\n const setVisiblePageOrder = useBuilderStore(state => state.setVisiblePageOrder);\n const visiblePageOrder = useBuilderStore(state => state.visiblePageOrder);\n const reportBackgroundColor = usePropStore(state => state.settings?.reportBackgroundColor);\n const selected = visiblePageOrder === order;\n\n const {\n attributes,\n isDragging,\n listeners,\n setNodeRef,\n transform,\n transition,\n } = useSortable({ id });\n\n const itemClickHandler = useCallback(e => {\n setVisiblePageOrder(order);\n onPageClick?.(e);\n }, [onPageClick, setVisiblePageOrder, order]);\n\n const handleContextMenu = useCallback(e => {\n e.preventDefault();\n moreMenuRef.current?.handleOpenMenu(e);\n }, []);\n\n const dragStyle = useMemo(() => {\n const baseStyle = {\n opacity: isDragging ? 0.5 : 1,\n transform: CSS.Transform.toString(transform),\n transition: transition,\n };\n\n return { ...baseStyle, ...style };\n }, [transform, transition, isDragging, style]);\n\n return (\n <div\n ref={setNodeRef}\n className={`slides-navigator-item${selected ? ' selected' : ''}`}\n data-id={page.id}\n data-order={order}\n onClick={itemClickHandler}\n onContextMenu={handleContextMenu}\n onKeyDown={emptyFunction}\n style={dragStyle}\n {...attributes}\n {...listeners}\n >\n <motion.div\n className=\"slides-navigator-item-motion\"\n initial={{ opacity: 0.25, scale: 0.95 }}\n transition={slideRevealTransition}\n viewport={{ amount: 0.2, once: true }}\n whileInView={{ opacity: 1, scale: 1 }}\n >\n <div className=\"slides-navigator-item-order\">{order}</div>\n <div\n className=\"slides-navigator-item-content\"\n >\n <StaticSlideItem\n backgroundColor={page.backgroundColor || reportBackgroundColor || '#fff'}\n items={page.items}\n reportHeight={reportHeight}\n reportWidth={reportWidth}\n />\n </div>\n <SlideItemMoreMenu\n ref={moreMenuRef}\n order={order}\n page={page}\n selected={selected}\n />\n </motion.div>\n </div>\n );\n};\n\nSlideItem.propTypes = {\n id: PropTypes.string.isRequired,\n onPageClick: PropTypes.func,\n order: PropTypes.number,\n page: PropTypes.shape({\n backgroundColor: PropTypes.string,\n id: PropTypes.string.isRequired,\n items: PropTypes.arrayOf(PropTypes.shape({})),\n }),\n reportHeight: PropTypes.number.isRequired,\n reportWidth: PropTypes.number.isRequired,\n style: PropTypes.shape({\n opacity: PropTypes.number,\n transform: PropTypes.string,\n transition: PropTypes.string,\n }),\n};\n\nfunction slideItemPropsAreEqual(prevProps, nextProps) {\n return prevProps.id === nextProps.id\n && prevProps.order === nextProps.order\n && prevProps.page === nextProps.page\n && prevProps.reportHeight === nextProps.reportHeight\n && prevProps.reportWidth === nextProps.reportWidth\n && prevProps.style === nextProps.style\n && prevProps.onPageClick === nextProps.onPageClick;\n}\n\nexport default memo(SlideItem, slideItemPropsAreEqual);\n"],"names":["slideRevealTransition","duration","ease","SlideItem","id","onPageClick","order","page","reportHeight","reportWidth","style","moreMenuRef","useRef","setVisiblePageOrder","useBuilderStore","state","visiblePageOrder","reportBackgroundColor","usePropStore","settings","selected","useSortable","attributes","isDragging","listeners","setNodeRef","transform","transition","itemClickHandler","useCallback","e","handleContextMenu","preventDefault","current","handleOpenMenu","dragStyle","useMemo","baseStyle","opacity","CSS","Transform","toString","_jsx","emptyFunction","_jsxs","scale","amount","once","backgroundColor","items","propTypes","PropTypes","string","isRequired","func","number","shape","arrayOf","slideItemPropsAreEqual","prevProps","nextProps","memo"],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { defaultDropAnimationSideEffects, DragOverlay } from '@dnd-kit/core';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import StaticSlideItem from './StaticSlideItem.js';
|
|
4
|
+
import { usePropStore } from '../../../contexts/PropContext.js';
|
|
4
5
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
5
6
|
|
|
6
7
|
var dropAnimation = {
|
|
@@ -18,6 +19,11 @@ var dropAnimation = {
|
|
|
18
19
|
|
|
19
20
|
var SlideItemDragOverlay = function SlideItemDragOverlay(_ref) {
|
|
20
21
|
var activePageData = _ref.activePageData;
|
|
22
|
+
var reportBackgroundColor = usePropStore(function (state) {
|
|
23
|
+
var _state$settings;
|
|
24
|
+
|
|
25
|
+
return (_state$settings = state.settings) === null || _state$settings === void 0 ? void 0 : _state$settings.reportBackgroundColor;
|
|
26
|
+
});
|
|
21
27
|
return /*#__PURE__*/jsx(DragOverlay, {
|
|
22
28
|
adjustScale: false,
|
|
23
29
|
dropAnimation: dropAnimation,
|
|
@@ -35,7 +41,7 @@ var SlideItemDragOverlay = function SlideItemDragOverlay(_ref) {
|
|
|
35
41
|
}), /*#__PURE__*/jsx("div", {
|
|
36
42
|
className: "slides-navigator-item-content",
|
|
37
43
|
children: /*#__PURE__*/jsx(StaticSlideItem, {
|
|
38
|
-
backgroundColor: activePageData.page.backgroundColor,
|
|
44
|
+
backgroundColor: activePageData.page.backgroundColor || reportBackgroundColor || '#fff',
|
|
39
45
|
items: activePageData.page.items,
|
|
40
46
|
reportHeight: activePageData.reportHeight,
|
|
41
47
|
reportWidth: activePageData.reportWidth
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SlideItemDragOverlay.js","sources":["../../../../../src/components/Panels/SlidesNavigator/SlideItemDragOverlay.js"],"sourcesContent":["import { DragOverlay, defaultDropAnimationSideEffects } from '@dnd-kit/core';\nimport PropTypes from 'prop-types';\nimport StaticSlideItem from './StaticSlideItem';\n\nconst dropAnimation = {\n duration: 150,\n easing: 'ease-out',\n sideEffects: defaultDropAnimationSideEffects({\n styles: { dragOverlay: { opacity: '0', transform: 'rotate(10deg) scale(1.2)' } },\n }),\n};\n\nconst SlideItemDragOverlay = ({ activePageData }) => {\n return (\n <DragOverlay\n adjustScale={false}\n dropAnimation={dropAnimation}\n style={{ cursor: 'grabbing' }}\n >\n {activePageData ? (\n <div\n className=\"slides-navigator-item\"\n style={{ opacity: 0.5 }}\n >\n <div className=\"slides-navigator-item-order\">{activePageData.page.order}</div>\n <div className=\"slides-navigator-item-content\">\n <StaticSlideItem\n backgroundColor={activePageData.page.backgroundColor}\n items={activePageData.page.items}\n reportHeight={activePageData.reportHeight}\n reportWidth={activePageData.reportWidth}\n />\n </div>\n </div>\n ) : null}\n </DragOverlay>\n );\n};\n\nSlideItemDragOverlay.propTypes = {\n activePageData: PropTypes.shape({\n page: PropTypes.shape({\n backgroundColor: PropTypes.string,\n items: PropTypes.arrayOf(PropTypes.shape({})),\n order: PropTypes.number,\n }),\n reportHeight: PropTypes.number,\n reportWidth: PropTypes.number,\n }),\n};\n\nexport default SlideItemDragOverlay;\n"],"names":["dropAnimation","duration","easing","sideEffects","defaultDropAnimationSideEffects","styles","dragOverlay","opacity","transform","SlideItemDragOverlay","activePageData","_jsx","cursor","_jsxs","page","order","backgroundColor","items","reportHeight","reportWidth","propTypes","PropTypes","shape","string","arrayOf","number"],"mappings":"
|
|
1
|
+
{"version":3,"file":"SlideItemDragOverlay.js","sources":["../../../../../src/components/Panels/SlidesNavigator/SlideItemDragOverlay.js"],"sourcesContent":["import { DragOverlay, defaultDropAnimationSideEffects } from '@dnd-kit/core';\nimport PropTypes from 'prop-types';\nimport StaticSlideItem from './StaticSlideItem';\nimport { usePropStore } from '../../../contexts/PropContext';\n\nconst dropAnimation = {\n duration: 150,\n easing: 'ease-out',\n sideEffects: defaultDropAnimationSideEffects({\n styles: { dragOverlay: { opacity: '0', transform: 'rotate(10deg) scale(1.2)' } },\n }),\n};\n\nconst SlideItemDragOverlay = ({ activePageData }) => {\n const reportBackgroundColor = usePropStore(state => state.settings?.reportBackgroundColor);\n\n return (\n <DragOverlay\n adjustScale={false}\n dropAnimation={dropAnimation}\n style={{ cursor: 'grabbing' }}\n >\n {activePageData ? (\n <div\n className=\"slides-navigator-item\"\n style={{ opacity: 0.5 }}\n >\n <div className=\"slides-navigator-item-order\">{activePageData.page.order}</div>\n <div className=\"slides-navigator-item-content\">\n <StaticSlideItem\n backgroundColor={activePageData.page.backgroundColor || reportBackgroundColor || '#fff'}\n items={activePageData.page.items}\n reportHeight={activePageData.reportHeight}\n reportWidth={activePageData.reportWidth}\n />\n </div>\n </div>\n ) : null}\n </DragOverlay>\n );\n};\n\nSlideItemDragOverlay.propTypes = {\n activePageData: PropTypes.shape({\n page: PropTypes.shape({\n backgroundColor: PropTypes.string,\n items: PropTypes.arrayOf(PropTypes.shape({})),\n order: PropTypes.number,\n }),\n reportHeight: PropTypes.number,\n reportWidth: PropTypes.number,\n }),\n};\n\nexport default SlideItemDragOverlay;\n"],"names":["dropAnimation","duration","easing","sideEffects","defaultDropAnimationSideEffects","styles","dragOverlay","opacity","transform","SlideItemDragOverlay","activePageData","reportBackgroundColor","usePropStore","state","settings","_jsx","cursor","_jsxs","page","order","backgroundColor","items","reportHeight","reportWidth","propTypes","PropTypes","shape","string","arrayOf","number"],"mappings":";;;;;;AAKA,IAAMA,aAAa,GAAG;AACpBC,EAAAA,QAAQ,EAAE,GADU;AAEpBC,EAAAA,MAAM,EAAE,UAFY;AAGpBC,EAAAA,WAAW,EAAEC,+BAA+B,CAAC;AAC3CC,IAAAA,MAAM,EAAE;AAAEC,MAAAA,WAAW,EAAE;AAAEC,QAAAA,OAAO,EAAE,GAAX;AAAgBC,QAAAA,SAAS,EAAE;AAA3B;AAAf;AADmC,GAAD;AAHxB,CAAtB;;IAQMC,oBAAoB,GAAG,SAAvBA,oBAAuB,OAAwB;AAAA,MAArBC,cAAqB,QAArBA,cAAqB;AACnD,MAAMC,qBAAqB,GAAGC,YAAY,CAAC,UAAAC,KAAK;AAAA;;AAAA,8BAAIA,KAAK,CAACC,QAAV,oDAAI,gBAAgBH,qBAApB;AAAA,GAAN,CAA1C;AAEA,sBACEI,IAAC,WAAD;AACE,IAAA,WAAW,EAAE,KADf;AAEE,IAAA,aAAa,EAAEf,aAFjB;AAGE,IAAA,KAAK,EAAE;AAAEgB,MAAAA,MAAM,EAAE;AAAV,KAHT;AAAA,cAKGN,cAAc,gBACbO;AACE,MAAA,SAAS,EAAC,uBADZ;AAEE,MAAA,KAAK,EAAE;AAAEV,QAAAA,OAAO,EAAE;AAAX,OAFT;AAAA,8BAIEQ;AAAK,QAAA,SAAS,EAAC,6BAAf;AAAA,kBAA8CL,cAAc,CAACQ,IAAf,CAAoBC;AAAlE,QAJF,eAKEJ;AAAK,QAAA,SAAS,EAAC,+BAAf;AAAA,+BACEA,IAAC,eAAD;AACE,UAAA,eAAe,EAAEL,cAAc,CAACQ,IAAf,CAAoBE,eAApB,IAAuCT,qBAAvC,IAAgE,MADnF;AAEE,UAAA,KAAK,EAAED,cAAc,CAACQ,IAAf,CAAoBG,KAF7B;AAGE,UAAA,YAAY,EAAEX,cAAc,CAACY,YAH/B;AAIE,UAAA,WAAW,EAAEZ,cAAc,CAACa;AAJ9B;AADF,QALF;AAAA,MADa,GAeX;AApBN,IADF;AAwBD;;AAEDd,oBAAoB,CAACe,SAArB,GAAiC;AAC/Bd,EAAAA,cAAc,EAAEe,SAAS,CAACC,KAAV,CAAgB;AAC9BR,IAAAA,IAAI,EAAEO,SAAS,CAACC,KAAV,CAAgB;AACpBN,MAAAA,eAAe,EAAEK,SAAS,CAACE,MADP;AAEpBN,MAAAA,KAAK,EAAEI,SAAS,CAACG,OAAV,CAAkBH,SAAS,CAACC,KAAV,CAAgB,EAAhB,CAAlB,CAFa;AAGpBP,MAAAA,KAAK,EAAEM,SAAS,CAACI;AAHG,KAAhB,CADwB;AAM9BP,IAAAA,YAAY,EAAEG,SAAS,CAACI,MANM;AAO9BN,IAAAA,WAAW,EAAEE,SAAS,CAACI;AAPO,GAAhB;AADe,CAAjC;;;;"}
|