@jotforminc/dnd-builder 3.5.6 → 3.6.2
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 +30 -0
- package/lib/cjs/components/Builder/Builder.js +1 -3
- package/lib/cjs/components/Builder/Builder.js.map +1 -1
- package/lib/cjs/components/Builder/BuilderWrapper.js +30 -5
- package/lib/cjs/components/Builder/BuilderWrapper.js.map +1 -1
- package/lib/cjs/components/Builder/PageActions.js +62 -54
- package/lib/cjs/components/Builder/PageActions.js.map +1 -1
- package/lib/cjs/components/Builder/Scene.js +43 -29
- package/lib/cjs/components/Builder/Scene.js.map +1 -1
- package/lib/cjs/components/Builder/SlidesNavigatorToggle.js +41 -0
- package/lib/cjs/components/Builder/SlidesNavigatorToggle.js.map +1 -0
- package/lib/cjs/components/PageItemResizer.js +1 -1
- package/lib/cjs/components/PageItemResizer.js.map +1 -1
- package/lib/cjs/components/Panels/LeftPanel/LeftPanelOpener.js +4 -6
- package/lib/cjs/components/Panels/LeftPanel/LeftPanelOpener.js.map +1 -1
- package/lib/cjs/components/Panels/RightPanel/RightPanel.js +1 -1
- package/lib/cjs/components/Panels/RightPanel/RightPanel.js.map +1 -1
- package/lib/cjs/components/Panels/SlidesNavigator/MoreMenu/SlideItemMoreMenu.js +257 -0
- package/lib/cjs/components/Panels/SlidesNavigator/MoreMenu/SlideItemMoreMenu.js.map +1 -0
- package/lib/cjs/components/Panels/SlidesNavigator/SlideItem.js +140 -0
- package/lib/cjs/components/Panels/SlidesNavigator/SlideItem.js.map +1 -0
- package/lib/cjs/components/Panels/{AllSlidesPanel/PageItemDragOverlay.js → SlidesNavigator/SlideItemDragOverlay.js} +29 -16
- package/lib/cjs/components/Panels/SlidesNavigator/SlideItemDragOverlay.js.map +1 -0
- package/lib/cjs/components/Panels/SlidesNavigator/SlideItemsList.js +238 -0
- package/lib/cjs/components/Panels/SlidesNavigator/SlideItemsList.js.map +1 -0
- package/lib/cjs/components/Panels/SlidesNavigator/SlidesNavigator.js +54 -0
- package/lib/cjs/components/Panels/SlidesNavigator/SlidesNavigator.js.map +1 -0
- package/lib/cjs/components/Panels/SlidesNavigator/StaticSlideItem.js +97 -0
- package/lib/cjs/components/Panels/SlidesNavigator/StaticSlideItem.js.map +1 -0
- package/lib/cjs/components/Panels/SlidesPanel/SlidesPanel.js +6 -17
- package/lib/cjs/components/Panels/SlidesPanel/SlidesPanel.js.map +1 -1
- package/lib/cjs/components/ReportWrapper.js +4 -4
- package/lib/cjs/components/ReportWrapper.js.map +1 -1
- package/lib/cjs/components/TextEditor/TextEditor.js +2 -2
- package/lib/cjs/components/TextEditor/TextEditor.js.map +1 -1
- package/lib/cjs/constants/panel.js +11 -0
- package/lib/cjs/constants/panel.js.map +1 -0
- package/lib/cjs/constants/texts.js +6 -1
- package/lib/cjs/constants/texts.js.map +1 -1
- package/lib/cjs/contexts/BuilderContext.js +111 -19
- package/lib/cjs/contexts/BuilderContext.js.map +1 -1
- package/lib/cjs/contexts/Providers.js +8 -1
- package/lib/cjs/contexts/Providers.js.map +1 -1
- package/lib/cjs/styles/_jfReportsFloatings.scss +51 -8
- package/lib/cjs/styles/_jfReportsHelpers.scss +1 -1
- package/lib/cjs/styles/_jfReportsMain.scss +8 -0
- package/lib/cjs/styles/_jfReportsPanels.scss +10 -7
- package/lib/cjs/styles/_jfReportsReportItem.scss +2 -2
- package/lib/cjs/styles/_jfReportsSlides.scss +2 -2
- package/lib/cjs/styles/_jfReportsVariables.scss +1 -0
- package/lib/cjs/styles/_jfReportsViewModes.scss +1 -0
- package/lib/cjs/styles/jfReportsBundle.scss +1 -0
- package/lib/cjs/styles/slides-navigator.scss +240 -0
- package/lib/cjs/utils/functions.js +9 -28
- package/lib/cjs/utils/functions.js.map +1 -1
- package/lib/cjs/utils/hooks.js +3 -1
- package/lib/cjs/utils/hooks.js.map +1 -1
- package/lib/cjs/utils/icons.js +0 -2
- package/lib/cjs/utils/icons.js.map +1 -1
- package/lib/esm/components/Builder/Builder.js +1 -3
- package/lib/esm/components/Builder/Builder.js.map +1 -1
- package/lib/esm/components/Builder/BuilderWrapper.js +31 -6
- package/lib/esm/components/Builder/BuilderWrapper.js.map +1 -1
- package/lib/esm/components/Builder/PageActions.js +65 -57
- package/lib/esm/components/Builder/PageActions.js.map +1 -1
- package/lib/esm/components/Builder/Scene.js +45 -31
- package/lib/esm/components/Builder/Scene.js.map +1 -1
- package/lib/esm/components/Builder/SlidesNavigatorToggle.js +39 -0
- package/lib/esm/components/Builder/SlidesNavigatorToggle.js.map +1 -0
- package/lib/esm/components/PageItemResizer.js +1 -1
- package/lib/esm/components/PageItemResizer.js.map +1 -1
- package/lib/esm/components/Panels/LeftPanel/LeftPanelOpener.js +5 -7
- package/lib/esm/components/Panels/LeftPanel/LeftPanelOpener.js.map +1 -1
- package/lib/esm/components/Panels/RightPanel/RightPanel.js +1 -1
- package/lib/esm/components/Panels/RightPanel/RightPanel.js.map +1 -1
- package/lib/esm/components/Panels/SlidesNavigator/MoreMenu/SlideItemMoreMenu.js +251 -0
- package/lib/esm/components/Panels/SlidesNavigator/MoreMenu/SlideItemMoreMenu.js.map +1 -0
- package/lib/esm/components/Panels/SlidesNavigator/SlideItem.js +134 -0
- package/lib/esm/components/Panels/SlidesNavigator/SlideItem.js.map +1 -0
- package/lib/esm/components/Panels/SlidesNavigator/SlideItemDragOverlay.js +61 -0
- package/lib/esm/components/Panels/SlidesNavigator/SlideItemDragOverlay.js.map +1 -0
- package/lib/esm/components/Panels/SlidesNavigator/SlideItemsList.js +232 -0
- package/lib/esm/components/Panels/SlidesNavigator/SlideItemsList.js.map +1 -0
- package/lib/esm/components/Panels/SlidesNavigator/SlidesNavigator.js +52 -0
- package/lib/esm/components/Panels/SlidesNavigator/SlidesNavigator.js.map +1 -0
- package/lib/esm/components/Panels/SlidesNavigator/StaticSlideItem.js +91 -0
- package/lib/esm/components/Panels/SlidesNavigator/StaticSlideItem.js.map +1 -0
- package/lib/esm/components/Panels/SlidesPanel/SlidesPanel.js +7 -18
- package/lib/esm/components/Panels/SlidesPanel/SlidesPanel.js.map +1 -1
- package/lib/esm/components/ReportWrapper.js +4 -4
- package/lib/esm/components/ReportWrapper.js.map +1 -1
- package/lib/esm/components/TextEditor/TextEditor.js +2 -2
- package/lib/esm/components/TextEditor/TextEditor.js.map +1 -1
- package/lib/esm/constants/panel.js +7 -0
- package/lib/esm/constants/panel.js.map +1 -0
- package/lib/esm/constants/texts.js +6 -1
- package/lib/esm/constants/texts.js.map +1 -1
- package/lib/esm/contexts/BuilderContext.js +111 -19
- package/lib/esm/contexts/BuilderContext.js.map +1 -1
- package/lib/esm/contexts/Providers.js +8 -1
- package/lib/esm/contexts/Providers.js.map +1 -1
- package/lib/esm/styles/_jfReportsFloatings.scss +51 -8
- package/lib/esm/styles/_jfReportsHelpers.scss +1 -1
- package/lib/esm/styles/_jfReportsMain.scss +8 -0
- package/lib/esm/styles/_jfReportsPanels.scss +10 -7
- package/lib/esm/styles/_jfReportsReportItem.scss +2 -2
- package/lib/esm/styles/_jfReportsSlides.scss +2 -2
- package/lib/esm/styles/_jfReportsVariables.scss +1 -0
- package/lib/esm/styles/_jfReportsViewModes.scss +1 -0
- package/lib/esm/styles/jfReportsBundle.scss +1 -0
- package/lib/esm/styles/slides-navigator.scss +240 -0
- package/lib/esm/utils/functions.js +8 -27
- package/lib/esm/utils/functions.js.map +1 -1
- package/lib/esm/utils/hooks.js +3 -1
- package/lib/esm/utils/hooks.js.map +1 -1
- package/lib/esm/utils/icons.js +0 -1
- package/lib/esm/utils/icons.js.map +1 -1
- package/package.json +3 -1
- package/lib/cjs/assets/svg/all_slides.svg.js +0 -23
- package/lib/cjs/assets/svg/all_slides.svg.js.map +0 -1
- package/lib/cjs/components/Panels/AllSlidesPanel/AllSlidesPanel.js +0 -148
- package/lib/cjs/components/Panels/AllSlidesPanel/AllSlidesPanel.js.map +0 -1
- package/lib/cjs/components/Panels/AllSlidesPanel/AllSlidesPanelToggler.js +0 -29
- package/lib/cjs/components/Panels/AllSlidesPanel/AllSlidesPanelToggler.js.map +0 -1
- package/lib/cjs/components/Panels/AllSlidesPanel/PageActionsBar.js +0 -107
- package/lib/cjs/components/Panels/AllSlidesPanel/PageActionsBar.js.map +0 -1
- package/lib/cjs/components/Panels/AllSlidesPanel/PageItem.js +0 -102
- package/lib/cjs/components/Panels/AllSlidesPanel/PageItem.js.map +0 -1
- package/lib/cjs/components/Panels/AllSlidesPanel/PageItemDragOverlay.js.map +0 -1
- package/lib/cjs/components/Panels/AllSlidesPanel/PageList.js +0 -178
- package/lib/cjs/components/Panels/AllSlidesPanel/PageList.js.map +0 -1
- package/lib/cjs/components/Panels/AllSlidesPanel/PageThumbnailActions.js +0 -95
- package/lib/cjs/components/Panels/AllSlidesPanel/PageThumbnailActions.js.map +0 -1
- package/lib/cjs/components/Panels/AllSlidesPanel/index.js +0 -8
- package/lib/cjs/components/Panels/AllSlidesPanel/index.js.map +0 -1
- package/lib/cjs/components/Settings/Button.js +0 -44
- package/lib/cjs/components/Settings/Button.js.map +0 -1
- package/lib/esm/assets/svg/all_slides.svg.js +0 -21
- package/lib/esm/assets/svg/all_slides.svg.js.map +0 -1
- package/lib/esm/components/Panels/AllSlidesPanel/AllSlidesPanel.js +0 -142
- package/lib/esm/components/Panels/AllSlidesPanel/AllSlidesPanel.js.map +0 -1
- package/lib/esm/components/Panels/AllSlidesPanel/AllSlidesPanelToggler.js +0 -23
- package/lib/esm/components/Panels/AllSlidesPanel/AllSlidesPanelToggler.js.map +0 -1
- package/lib/esm/components/Panels/AllSlidesPanel/PageActionsBar.js +0 -101
- package/lib/esm/components/Panels/AllSlidesPanel/PageActionsBar.js.map +0 -1
- package/lib/esm/components/Panels/AllSlidesPanel/PageItem.js +0 -95
- package/lib/esm/components/Panels/AllSlidesPanel/PageItem.js.map +0 -1
- package/lib/esm/components/Panels/AllSlidesPanel/PageItemDragOverlay.js +0 -48
- package/lib/esm/components/Panels/AllSlidesPanel/PageItemDragOverlay.js.map +0 -1
- package/lib/esm/components/Panels/AllSlidesPanel/PageList.js +0 -172
- package/lib/esm/components/Panels/AllSlidesPanel/PageList.js.map +0 -1
- package/lib/esm/components/Panels/AllSlidesPanel/PageThumbnailActions.js +0 -89
- package/lib/esm/components/Panels/AllSlidesPanel/PageThumbnailActions.js.map +0 -1
- package/lib/esm/components/Panels/AllSlidesPanel/index.js +0 -3
- package/lib/esm/components/Panels/AllSlidesPanel/index.js.map +0 -1
- package/lib/esm/components/Settings/Button.js +0 -38
- package/lib/esm/components/Settings/Button.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"functions.js","sources":["../../../src/utils/functions.js"],"sourcesContent":["/* global Image */\nimport objectDiff from './object-diff';\n\n/**\n * Rounds position/dimension values to integers before sending to service\n * This prevents decimal values from being sent when zoom is not 1\n * Should only be used at the final step before service calls\n */\nexport const roundPositionValues = ({\n height,\n left,\n top,\n width,\n ...rest\n}) => ({\n ...rest,\n ...(height !== undefined && { height: Math.round(height) }),\n ...(left !== undefined && { left: Math.round(left) }),\n ...(top !== undefined && { top: Math.round(top) }),\n ...(width !== undefined && { width: Math.round(width) }),\n});\n\nexport const getCorrectDroppedOffsetValue = (finalOffset, initialOffset, dropTargetPosition, zoom = 1) => {\n const { x: finalX, y: finalY } = finalOffset;\n const { x: initialX, y: initialY } = initialOffset;\n\n const newYposition = finalY > initialY\n ? (initialY + (finalY - initialY)) - dropTargetPosition.top\n : initialY - (initialY - finalY) - dropTargetPosition.top;\n\n const newXposition = finalX > initialX\n ? (initialX + (finalX - initialX)) - dropTargetPosition.left\n : initialX - (initialX - finalX) - dropTargetPosition.left;\n\n return {\n left: newXposition / zoom,\n top: newYposition / zoom,\n };\n};\n\nexport const getStyles = (left, top, isDragging) => {\n return {\n height: isDragging ? 0 : '',\n left,\n opacity: isDragging ? 0 : 1,\n position: 'absolute',\n top,\n };\n};\n\nexport const isSelectedItem = (id, activeElements) => {\n return activeElements.includes(id);\n};\n\nexport const findItemById = (itemID, pages) => {\n const page = pages.find(p => p.items.find(item => item.id === itemID));\n if (!page) return null;\n return page.items.find(item => item.id === itemID);\n};\n\nconst traverse = (obj, condition) => condition.split('.').reduce((cur, key) => cur[key], obj);\n\nconst hideOrShowWhen = (selectedItem, setting, itemAccessor) => {\n if (selectedItem.hideSettings && setting.key !== 'showWarning') {\n return false;\n }\n\n if (setting.visible) {\n return typeof setting.visible === 'function'\n ? setting.visible({ item: selectedItem, itemAccessor })\n : !!setting.visible;\n }\n\n if (setting.hideWhen || setting.showWhen) {\n const hideCondition = !!setting.hideWhen === true;\n const conditionType = hideCondition ? 'hideWhen' : 'showWhen';\n const conditions = setting[conditionType];\n\n return Object.keys(conditions).every(conditionKey => {\n const condition = conditions[conditionKey];\n const conditionOfSelectedItem = conditionKey.split('.').length > 1\n ? traverse(selectedItem, conditionKey) : selectedItem[conditionKey];\n\n if (Array.isArray(condition)) {\n const returnValue = condition.includes(conditionOfSelectedItem);\n return hideCondition ? !returnValue : returnValue;\n }\n\n const returnValue = condition === conditionOfSelectedItem;\n return hideCondition ? !returnValue : returnValue;\n });\n }\n\n return true;\n};\n\nexport const getTabsWithSettings = (element, selectedItem, itemAccessor) => {\n const settings = element.settings || element;\n return settings.reduce((tabsWithSettings, setting) => {\n const _tabsWithSettings = tabsWithSettings;\n const defaultItem = element.defaultItem || {};\n const item = { ...defaultItem, ...selectedItem };\n if (hideOrShowWhen(item, setting, itemAccessor)) {\n const settingSection = setting.section || 'GENERAL';\n if (!_tabsWithSettings[settingSection]) {\n _tabsWithSettings[settingSection] = [];\n }\n _tabsWithSettings[settingSection].push(setting);\n }\n return _tabsWithSettings;\n }, {});\n};\n\nexport const getTabsWithElements = leftPanelConfig => {\n return leftPanelConfig.reduce((tabsWithSettings, config) => {\n const _tabsWithSettings = tabsWithSettings;\n const settingSection = config.section || 'GENERAL';\n _tabsWithSettings[settingSection] = config;\n return _tabsWithSettings;\n }, {});\n};\n\nexport const calculateGuidePositions = (dimensions, axis, zoom = 1, direction = null) => {\n const isItem = dimensions && dimensions.id;\n\n if (axis === 'x') {\n const start = dimensions.left;\n const middle = dimensions.left + parseInt(dimensions.width / 2, 10);\n const end = dimensions.left + dimensions.width;\n\n if (isItem) {\n const result = [start, middle, end].map(p => p * zoom);\n if (direction) {\n if (direction === 'bottom') return [];\n if (direction === 'top') return [];\n if (/left/i.test(direction)) return [result[0]];\n if (/right/i.test(direction)) return [result[2]];\n }\n return result;\n }\n return [start, middle, end];\n }\n\n const start = dimensions.top;\n const middle = dimensions.top + parseInt(dimensions.height / 2, 10);\n const end = dimensions.top + dimensions.height;\n\n if (isItem) {\n const result = [start, middle, end].map(p => p * zoom);\n if (direction) {\n if (direction === 'left') return [];\n if (direction === 'right') return [];\n if (/top/i.test(direction)) return [result[0]];\n if (/bottom/i.test(direction)) return [result[2]];\n }\n return result;\n }\n return [start, middle, end];\n};\n\nexport const getAllGuidesForGivenAxisExceptActiveBox = (\n allGuides,\n guidesForActiveBoxAlongGivenAxis,\n axis,\n) => {\n const result = Object.keys(allGuides).map(box => {\n const currentBoxGuidesAlongGivenAxis = allGuides[box][axis];\n if (currentBoxGuidesAlongGivenAxis !== guidesForActiveBoxAlongGivenAxis) {\n return currentBoxGuidesAlongGivenAxis;\n }\n return undefined;\n });\n\n return result.filter(guides => guides !== undefined);\n};\n\nexport const checkValueProximities = (activeBoxGuidesInOneAxis, allOtherGuidesInOneAxis) => {\n let proximity = null;\n let intersection = null;\n let matchedArray = [];\n const snapThreshold = 5;\n for (let index = 0; index < allOtherGuidesInOneAxis.length; index += 1) {\n let index2 = 0;\n let index3 = 0;\n\n while (index2 < activeBoxGuidesInOneAxis.length\n && index3 < allOtherGuidesInOneAxis[index].length) {\n const diff = Math.abs(activeBoxGuidesInOneAxis[index2]\n - allOtherGuidesInOneAxis[index][index3]);\n if (diff <= snapThreshold) {\n proximity = { activeBoxIndex: index2, matchedBoxIndex: index3, value: diff };\n matchedArray = allOtherGuidesInOneAxis[index];\n intersection = allOtherGuidesInOneAxis[index][index3];\n }\n\n if (activeBoxGuidesInOneAxis[index2] < allOtherGuidesInOneAxis[index][index3]) {\n index2 += 1;\n } else {\n index3 += 1;\n }\n }\n }\n\n return { intersection, matchedArray, proximity };\n};\n\nexport const proximityListener = (active, allGuides) => {\n const xAxisGuidesForActiveBox = allGuides[active].x;\n const yAxisGuidesForActiveBox = allGuides[active].y;\n const xAxisAllGuides = getAllGuidesForGivenAxisExceptActiveBox(\n allGuides,\n xAxisGuidesForActiveBox,\n 'x',\n );\n const yAxisAllGuides = getAllGuidesForGivenAxisExceptActiveBox(\n allGuides,\n yAxisGuidesForActiveBox,\n 'y',\n );\n const xAxisMatchedGuides = checkValueProximities(xAxisGuidesForActiveBox, xAxisAllGuides);\n const yAxisMatchedGuides = checkValueProximities(yAxisGuidesForActiveBox, yAxisAllGuides);\n\n const allMatchedGuides = {};\n\n if (xAxisMatchedGuides.proximity) {\n allMatchedGuides.x = {\n ...xAxisMatchedGuides,\n activeBoxGuides: xAxisGuidesForActiveBox,\n };\n }\n\n if (yAxisMatchedGuides.proximity) {\n allMatchedGuides.y = {\n ...yAxisMatchedGuides,\n activeBoxGuides: yAxisGuidesForActiveBox,\n };\n }\n\n return allMatchedGuides;\n};\n\nexport const getMatchesForItem = (item, guides, zoom, direction = null) => {\n const pageGuides = guides[item.pageID];\n const _guides = {\n ...pageGuides,\n [item.id]: {\n ...pageGuides[item.id],\n x: calculateGuidePositions(item, 'x', zoom, direction),\n y: calculateGuidePositions(item, 'y', zoom, direction),\n },\n };\n return proximityListener(item.id, _guides);\n};\n\nexport const getCoordinatesFromMatches = (item, matches, zoom = 1) => {\n let newActiveBoxLeft = item.left;\n let newActiveBoxTop = item.top;\n Object.keys(matches).forEach(axis => {\n const { activeBoxGuides, matchedArray, proximity } = matches[axis];\n const activeBoxProximityIndex = proximity.activeBoxIndex;\n const matchedBoxProximityIndex = proximity.matchedBoxIndex;\n // proximity.value is in zoomed pixels, divide by zoom to get canvas coordinates\n const adjustedValue = proximity.value / zoom;\n if (axis === 'x') {\n if (activeBoxGuides[activeBoxProximityIndex] > matchedArray[matchedBoxProximityIndex]) {\n newActiveBoxLeft = item.left - adjustedValue;\n } else {\n newActiveBoxLeft = item.left + adjustedValue;\n }\n } else if (activeBoxGuides[activeBoxProximityIndex] > matchedArray[matchedBoxProximityIndex]) {\n newActiveBoxTop = item.top - adjustedValue;\n } else {\n newActiveBoxTop = item.top + adjustedValue;\n }\n });\n\n return {\n left: newActiveBoxLeft,\n top: newActiveBoxTop,\n };\n};\n\nexport const getPosition = e => {\n var posx = 0;\n var posy = 0;\n\n if (e.pageX || e.pageY) {\n posx = e.pageX;\n posy = e.pageY;\n } else if (e.clientX || e.clientY) {\n posx = e.clientX + document.body.scrollLeft\n + document.documentElement.scrollLeft;\n posy = e.clientY + document.body.scrollTop\n + document.documentElement.scrollTop;\n }\n\n return {\n x: posx,\n y: posy,\n };\n};\n\nexport const getContainerPositions = (container, positions) => {\n const windowWidth = global.innerWidth\n || global.document.documentElement.clientWidth\n || global.document.body.clientWidth;\n\n const windowHeight = global.innerHeight\n || global.document.documentElement.clientHeight\n || global.document.body.clientHeight;\n\n const newPosition = { ...positions };\n const {\n height: contextHeight,\n width: contextWidth,\n } = container.getBoundingClientRect();\n\n if (contextWidth + newPosition.x > (windowWidth - 8)) {\n newPosition.x = windowWidth - contextWidth - 5;\n }\n\n if (contextHeight + newPosition.y > (windowHeight - 8)) {\n newPosition.y = windowHeight - contextHeight - 30;\n }\n\n const newPositions = {\n x: newPosition.x += 5,\n y: newPosition.y += 3,\n };\n\n return newPositions;\n};\n\nexport const moveItemInArrayFromIndexToIndex = (array, fromIndex, toIndex) => {\n if (fromIndex === toIndex) return array;\n const newArray = [...array];\n const target = newArray[fromIndex];\n const inc = toIndex < fromIndex ? -1 : 1;\n for (let i = fromIndex; i !== toIndex; i += inc) {\n newArray[i] = newArray[i + inc];\n }\n newArray[toIndex] = target;\n return newArray;\n};\n\nexport const findItemsOnPage = (pageID, pages) => {\n const foundPage = pages.find(page => page.id === pageID);\n if (foundPage && foundPage.items) {\n return foundPage.items;\n }\n return [];\n};\n\n// https://github.com/unclecheese/react-selectable/blob/master/src/doObjectsCollide.js\nconst coordsCollide = (aTop, aLeft, bTop, bLeft, aWidth, aHeight, bWidth, bHeight, tolerance) => {\n const toleranceDistance = (typeof tolerance === 'undefined') ? 0 : tolerance;\n\n return !(\n (((aTop + aHeight) - toleranceDistance) < bTop)\n || ((aTop + toleranceDistance) > (bTop + bHeight))\n || (((aLeft + aWidth) - toleranceDistance) < bLeft)\n || ((aLeft + toleranceDistance) > (bLeft + bWidth))\n );\n};\n\nexport const collisionCheck = (item, items, startIndex, direction) => {\n let colluded = false;\n let currIndex = startIndex;\n while (!colluded && items[currIndex + direction]) {\n currIndex += direction;\n colluded = coordsCollide(\n item.top,\n item.left,\n items[currIndex].top,\n items[currIndex].left,\n item.width,\n item.height,\n items[currIndex].width,\n items[currIndex].height,\n );\n }\n\n if (colluded) {\n return currIndex;\n }\n return null;\n};\n\nexport const moveArrayItem = (array, initialIndex, targetIndex) => {\n // mutates origin array\n array.splice(targetIndex, 0, array.splice(initialIndex, 1)[0]);\n};\n\nexport const getFileName = (url = '') => {\n return url.split('/').pop().split('?')[0];\n};\n\nexport const getImageSizes = (url, callback) => {\n const img = new Image();\n img.addEventListener('load', () => callback(img.width, img.height));\n img.src = url;\n};\n\nexport const getVisibleHeightPx = (element, viewportRect) => {\n const rect = element.getBoundingClientRect();\n const viewportHeight = viewportRect.bottom - viewportRect.top;\n const elRect = {\n bottom: viewportRect.bottom - rect.bottom,\n height: rect.bottom - rect.top,\n top: rect.top - viewportRect.top,\n };\n const visible = {\n bottom: elRect.bottom > 0 && elRect.bottom < viewportHeight,\n top: elRect.top >= 0 && elRect.top < viewportHeight,\n };\n let px = 0;\n if (visible.top && visible.bottom) {\n px = elRect.height;\n } else if (visible.top) {\n px = viewportHeight - elRect.top;\n } else if (visible.bottom) {\n px = elRect.height + elRect.top;\n } else if (elRect.height > viewportHeight && elRect.top < 0) {\n var absTop = Math.abs(elRect.top);\n if (absTop < elRect.height) {\n px = elRect.height - absTop;\n }\n }\n\n return { ...visible, px };\n};\n\nexport const getMostVisiblePage = (onlyId = false) => {\n const viewport = document.querySelector('.jfReport-viewport');\n if (viewport) {\n const viewportRect = viewport.getBoundingClientRect();\n const elements = Array.from(document.querySelectorAll('.jfReport-page'));\n const calculations = elements.reduce((acc, element) => {\n acc[element.getAttribute('data-id')] = getVisibleHeightPx(element, viewportRect);\n return acc;\n }, {});\n const pageID = Object.keys(calculations)\n .sort((p, n) => calculations[n].px - calculations[p].px)[0];\n if (onlyId) {\n return pageID;\n }\n return {\n attr: calculations[pageID],\n id: pageID,\n };\n }\n return false;\n};\n\nconst getAvailableInitialY = (page, attribute, zoom) => {\n const rect = page.getBoundingClientRect();\n const pageHeight = rect.bottom - rect.top;\n if (attribute.top) return 0;\n const originalPageHeight = pageHeight * (1 / zoom);\n const originalVisibleHeight = attribute.px * (1 / zoom);\n return (originalPageHeight - originalVisibleHeight);\n};\n\nexport const getAvailableCoordinate = (page, zoom) => {\n const isExistsPage = document.querySelector(`.jfReport-page[data-id=\"${page.id}\"]`);\n if (!isExistsPage) return [0, 0];\n\n // First get initial y for scrolled page\n const initialY = getAvailableInitialY(isExistsPage, page.attr, zoom);\n\n const pageItems = isExistsPage.querySelectorAll('.reportItemWrapper');\n if (!pageItems.length) return [0, initialY];\n\n // Then get available space if there any items\n return [...pageItems].reduce((accum, item) => {\n const _accum = accum;\n const { style: { left, top } } = item;\n const coordinate = [parseInt(left, 10), parseInt(top, 10)];\n if (_accum[0] === coordinate[0] && _accum[1] === coordinate[1]) {\n _accum[0] = _accum[0] + 50;\n _accum[1] = _accum[1] + 50;\n }\n return _accum;\n }, [0, initialY]);\n};\n\nexport function safeJSONParse(str, defVal = {}) {\n if (str) {\n try {\n return JSON.parse(str);\n } catch (ex) {\n return defVal;\n }\n } else {\n return defVal;\n }\n}\n\n/* View in fullscreen */\nexport const openFullscreenHelper = (elem = document.documentElement) => {\n if (elem.requestFullscreen) {\n return elem.requestFullscreen();\n } else if (elem.mozRequestFullScreen) { /* Firefox */\n return elem.mozRequestFullScreen();\n } else if (elem.webkitRequestFullscreen) { /* Chrome, Safari and Opera */\n return elem.webkitRequestFullscreen();\n } else if (elem.msRequestFullscreen) { /* IE/Edge */\n return elem.msRequestFullscreen();\n }\n return Promise.resolve();\n};\n\n/* Close fullscreen */\nexport const closeFullscreen = () => {\n if (document.fullscreenElement\n || document.webkitFullscreenElement\n || document.mozFullScreenElement) {\n if (document.exitFullscreen) {\n return document.exitFullscreen();\n } else if (document.mozCancelFullScreen) { /* Firefox */\n return document.mozCancelFullScreen();\n } else if (document.webkitExitFullscreen) { /* Chrome, Safari and Opera */\n return document.webkitExitFullscreen();\n } else if (document.msExitFullscreen) { /* IE/Edge */\n return document.msExitFullscreen();\n }\n }\n return Promise.resolve();\n};\n\nexport const imageSizeUpdater = (item, { objectURL, url }, updateFunc) => {\n const MAX_WIDTH = 700;\n const MAX_HEIGHT = 600;\n const image = new global.Image();\n image.src = objectURL || url;\n\n image.onerror = () => {\n updateFunc(item, { url });\n };\n\n image.onload = () => {\n const { naturalHeight, naturalWidth } = image;\n let _width = naturalWidth;\n let _height = naturalHeight;\n\n if (naturalWidth > MAX_WIDTH) {\n _height = parseInt((MAX_WIDTH * naturalHeight) / naturalWidth, 10);\n _width = MAX_WIDTH;\n }\n\n if (_height > MAX_HEIGHT) {\n _width = parseInt((_width * MAX_HEIGHT) / _height, 10);\n _height = MAX_HEIGHT;\n }\n\n if (objectURL) {\n URL.revokeObjectURL(objectURL);\n }\n\n updateFunc(\n item, {\n height: _height,\n url: url,\n width: _width,\n },\n );\n };\n};\n\nexport const onChangeFunction = (\n config,\n updateFunc,\n selectedItem,\n customUpdater,\n) => (item, setting) => {\n if (config && config.ifValueEquals) {\n const value = setting[config.key];\n if (config.ifValueEquals[value]) {\n const settingsWillBeChanged = Object.keys(config.ifValueEquals[value])\n .reduce(\n (newSettings,\n settingKey) => {\n const { ifIsEqualPreviousValue } = config.ifValueEquals[value][settingKey];\n const { cast } = config.ifValueEquals[value][settingKey];\n let { value: newSetting } = config.ifValueEquals[value][settingKey];\n const _newSettings = newSettings;\n if (typeof newSetting !== 'string') {\n _newSettings[settingKey] = newSetting;\n return _newSettings;\n }\n const matches = newSetting.match(/{.+?}/g);\n if (matches && matches.length > 0) {\n newSetting = matches.reduce((acc, curr) => {\n let _acc = acc;\n const newValue = selectedItem[\n curr.replace(/\\{|\\}/gi, '')\n ];\n _acc = newSetting.replace(curr, newValue);\n if (cast && cast === 'integer') {\n return parseInt(_acc, 10);\n }\n return _acc;\n }, newSetting);\n }\n if (ifIsEqualPreviousValue && ifIsEqualPreviousValue !== selectedItem[settingKey]) {\n return _newSettings;\n }\n _newSettings[settingKey] = newSetting;\n return _newSettings;\n }, {},\n );\n if (customUpdater) {\n customUpdater(item, {\n ...setting,\n ...settingsWillBeChanged,\n }, updateFunc);\n } else {\n updateFunc(item, {\n ...setting,\n ...settingsWillBeChanged,\n });\n }\n } else if (customUpdater) {\n customUpdater(item, setting, updateFunc);\n } else {\n updateFunc(item, setting);\n }\n } else if (config.useImageSizeUpdate) {\n imageSizeUpdater(item, setting, updateFunc);\n } else if (customUpdater) {\n customUpdater(item, setting, updateFunc);\n } else {\n updateFunc(item, setting);\n }\n};\n\nexport const exportPagesAsJSON = (acceptedItems, pages) => {\n const newPages = pages.map(page => {\n const items = page.items.map(pageItem => {\n const { details } = acceptedItems[pageItem.itemType];\n return {\n ...objectDiff(details, pageItem),\n type: details.itemType,\n };\n });\n return {\n items,\n type: 'regular',\n };\n });\n return JSON.stringify(newPages, null, 2);\n};\n\nexport const getExactIconType = iconType => {\n if (iconType.indexOf('_') > -1) {\n const splitIconType = iconType.split('_');\n return splitIconType[0] + splitIconType[1].charAt(0).toUpperCase() + splitIconType[1].slice(1);\n }\n return iconType;\n};\n\nexport function clipBoardHelper(string = '') {\n const urlElement = document.createElement('textarea');\n urlElement.value = string;\n document.body.appendChild(urlElement);\n urlElement.select();\n document.execCommand('Copy');\n document.body.removeChild(urlElement);\n}\n\nconst arrayMoveMutate = (array, from, to) => {\n const startIndex = from < 0 ? array.length + from : from;\n\n if (startIndex >= 0 && startIndex < array.length) {\n const endIndex = to < 0 ? array.length + to : to;\n\n const [item] = array.splice(from, 1);\n array.splice(endIndex, 0, item);\n }\n};\n\nexport const arrayMove = (array, from, to) => {\n const newArray = [...array];\n arrayMoveMutate(newArray, from, to);\n return newArray;\n};\n\nexport const getZoomValue = ({\n isFullscreen,\n limitZoom,\n settings,\n useFixedPresentationBar,\n useProgressBar,\n}) => {\n const { reportLayoutHeight = 794, reportLayoutWidth = 1123 } = settings;\n\n const { innerHeight, innerWidth } = window;\n\n let paddingValue = 0;\n\n if (!isFullscreen) { // We are not using fixed bar in fullscreen\n const padFixedBar = useFixedPresentationBar ? 50 : 0;\n const padProgressBar = useProgressBar ? 3 : 0;\n\n paddingValue += (padFixedBar + padProgressBar);\n }\n\n const _innerHeight = innerHeight - paddingValue;\n\n let newScale = Math.min(\n (innerWidth - (limitZoom ? 400 : 0)) / reportLayoutWidth,\n _innerHeight / reportLayoutHeight,\n );\n\n if (limitZoom) {\n newScale = Math.floor(newScale * 10) / 10;\n } else {\n // We need this to prevent scrollbars\n newScale = Math.floor(newScale * 100) / 100;\n }\n\n let newZoom = Number(newScale.toFixed(2));\n\n if (limitZoom && newZoom < 0.5) newZoom = 0.5;\n if (limitZoom && newZoom > 1) newZoom = 1;\n\n return newZoom;\n};\n\nexport const throttle = (fn, delay) => {\n let lastCall = 0;\n return (...args) => {\n const now = (new Date()).getTime();\n if (now - lastCall < delay) {\n return;\n }\n lastCall = now;\n return fn(...args);\n };\n};\n\nexport const roundForDecimalPart = num => {\n return +(`${Math.round(`${num}e+2`)}e-2`);\n};\n\nexport const changePage = ({\n action,\n currentPage,\n pageCount,\n setCurrentPage,\n}) => () => {\n if (currentPage + action > pageCount) {\n setCurrentPage(1);\n } else if (currentPage + action === 0) {\n setCurrentPage(pageCount);\n } else {\n setCurrentPage(currentPage + action);\n }\n};\n\nexport const getScaleForPageThumbnail = (width, height) => {\n const [thumbnailMaxHeight, thumbnailMaxWidth] = [110, 156];\n const scale = thumbnailMaxHeight / height;\n if (Math.ceil(width * scale) >= thumbnailMaxWidth) {\n const newScale = thumbnailMaxWidth / width;\n return {\n left: 0,\n scale: newScale,\n top: thumbnailMaxHeight > height * newScale\n ? (thumbnailMaxHeight - (height * newScale)) / 2 : 0,\n };\n }\n return {\n left: thumbnailMaxWidth > width * scale\n ? (thumbnailMaxWidth - (width * scale)) / 2 : 0,\n scale,\n top: 0,\n };\n};\n\nexport const getScaleForPageThumbnailLarge = (width, height) => {\n const thumbnailMaxHeight = 134;\n const thumbnailMaxWidth = 190;\n const defaultScaleRatio = thumbnailMaxHeight / height;\n if (width * defaultScaleRatio > thumbnailMaxWidth) {\n return thumbnailMaxWidth / width;\n }\n return defaultScaleRatio;\n};\n\nexport const scrollToTarget = (id, timeout = 0, options = { behavior: 'smooth' }) => {\n setTimeout(() => {\n const target = document.getElementById(id);\n if (target) {\n target.scrollIntoView(options);\n }\n }, timeout);\n};\n\nexport function normalizeHexColor(value) {\n let v = value.trim();\n if (!v.startsWith('#')) v = `#${v}`;\n return v;\n}\n\nexport function isValidHexColor(value) {\n return /^#(?:[0-9a-fA-F]{3}){1,2}$/.test(value);\n}\n\nexport const emptyFunction = f => f;\n\nexport const isItemInSelectionBox = (selectionBox, item, zoom = 1) => {\n const boxLeft = Math.min(selectionBox.startX, selectionBox.endX);\n const boxTop = Math.min(selectionBox.startY, selectionBox.endY);\n const boxRight = Math.max(selectionBox.startX, selectionBox.endX);\n const boxBottom = Math.max(selectionBox.startY, selectionBox.endY);\n\n const itemLeft = item.left * zoom;\n const itemTop = item.top * zoom;\n const itemRight = (item.left + item.width) * zoom;\n const itemBottom = (item.top + item.height) * zoom;\n\n // Check if rectangles intersect\n return !(\n boxRight < itemLeft\n || boxLeft > itemRight\n || boxBottom < itemTop\n || boxTop > itemBottom\n );\n};\n\nexport const getItemsInSelectionBox = (selectionBox, items, zoom = 1) => {\n return items\n .filter(item => !item.isLocked && isItemInSelectionBox(selectionBox, item, zoom))\n .map(item => item.id);\n};\n\nexport const getDimensions = ({\n height, left, top, width,\n}) => {\n return {\n height,\n left,\n top,\n width,\n };\n};\n"],"names":["roundPositionValues","height","left","top","width","rest","undefined","Math","round","getCorrectDroppedOffsetValue","finalOffset","initialOffset","dropTargetPosition","zoom","finalX","x","finalY","y","initialX","initialY","newYposition","newXposition","getStyles","isDragging","opacity","position","isSelectedItem","id","activeElements","includes","findItemById","itemID","pages","page","find","p","items","item","traverse","obj","condition","split","reduce","cur","key","hideOrShowWhen","selectedItem","setting","itemAccessor","hideSettings","visible","hideWhen","showWhen","hideCondition","conditionType","conditions","Object","keys","every","conditionKey","conditionOfSelectedItem","length","Array","isArray","returnValue","getTabsWithSettings","element","settings","tabsWithSettings","_tabsWithSettings","defaultItem","settingSection","section","push","getTabsWithElements","leftPanelConfig","config","calculateGuidePositions","dimensions","axis","direction","isItem","start","middle","parseInt","end","result","map","test","getAllGuidesForGivenAxisExceptActiveBox","allGuides","guidesForActiveBoxAlongGivenAxis","box","currentBoxGuidesAlongGivenAxis","filter","guides","checkValueProximities","activeBoxGuidesInOneAxis","allOtherGuidesInOneAxis","proximity","intersection","matchedArray","snapThreshold","index","index2","index3","diff","abs","activeBoxIndex","matchedBoxIndex","value","proximityListener","active","xAxisGuidesForActiveBox","yAxisGuidesForActiveBox","xAxisAllGuides","yAxisAllGuides","xAxisMatchedGuides","yAxisMatchedGuides","allMatchedGuides","activeBoxGuides","getMatchesForItem","pageGuides","pageID","_guides","getCoordinatesFromMatches","matches","newActiveBoxLeft","newActiveBoxTop","forEach","activeBoxProximityIndex","matchedBoxProximityIndex","adjustedValue","getPosition","e","posx","posy","pageX","pageY","clientX","clientY","document","body","scrollLeft","documentElement","scrollTop","getContainerPositions","container","positions","windowWidth","global","innerWidth","clientWidth","windowHeight","innerHeight","clientHeight","newPosition","getBoundingClientRect","contextHeight","contextWidth","newPositions","moveItemInArrayFromIndexToIndex","array","fromIndex","toIndex","newArray","target","inc","i","findItemsOnPage","foundPage","coordsCollide","aTop","aLeft","bTop","bLeft","aWidth","aHeight","bWidth","bHeight","tolerance","toleranceDistance","collisionCheck","startIndex","colluded","currIndex","moveArrayItem","initialIndex","targetIndex","splice","getFileName","url","pop","getImageSizes","callback","img","Image","addEventListener","src","getVisibleHeightPx","viewportRect","rect","viewportHeight","bottom","elRect","px","absTop","getMostVisiblePage","onlyId","viewport","querySelector","elements","from","querySelectorAll","calculations","acc","getAttribute","sort","n","attr","getAvailableInitialY","attribute","pageHeight","originalPageHeight","originalVisibleHeight","getAvailableCoordinate","isExistsPage","pageItems","accum","_accum","style","coordinate","safeJSONParse","str","defVal","JSON","parse","ex","openFullscreenHelper","elem","requestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","msRequestFullscreen","Promise","resolve","closeFullscreen","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","exitFullscreen","mozCancelFullScreen","webkitExitFullscreen","msExitFullscreen","imageSizeUpdater","updateFunc","objectURL","MAX_WIDTH","MAX_HEIGHT","image","onerror","onload","naturalHeight","naturalWidth","_width","_height","URL","revokeObjectURL","onChangeFunction","customUpdater","ifValueEquals","settingsWillBeChanged","newSettings","settingKey","ifIsEqualPreviousValue","cast","newSetting","_newSettings","match","curr","_acc","newValue","replace","useImageSizeUpdate","getExactIconType","iconType","indexOf","splitIconType","charAt","toUpperCase","slice","arrayMoveMutate","to","endIndex","arrayMove","getZoomValue","isFullscreen","limitZoom","useFixedPresentationBar","useProgressBar","reportLayoutHeight","reportLayoutWidth","window","paddingValue","padFixedBar","padProgressBar","_innerHeight","newScale","min","floor","newZoom","Number","toFixed","throttle","fn","delay","lastCall","now","Date","getTime","roundForDecimalPart","num","changePage","action","currentPage","pageCount","setCurrentPage","getScaleForPageThumbnail","thumbnailMaxHeight","thumbnailMaxWidth","scale","ceil","getScaleForPageThumbnailLarge","defaultScaleRatio","scrollToTarget","timeout","options","behavior","setTimeout","getElementById","scrollIntoView","normalizeHexColor","v","trim","startsWith","isValidHexColor","emptyFunction","f","isItemInSelectionBox","selectionBox","boxLeft","startX","endX","boxTop","startY","endY","boxRight","max","boxBottom","itemLeft","itemTop","itemRight","itemBottom","getItemsInSelectionBox","isLocked","getDimensions"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"functions.js","sources":["../../../src/utils/functions.js"],"sourcesContent":["/* global Image */\nimport { SLIDES_LIST_TYPE_MAP } from '../constants/panel';\nimport objectDiff from './object-diff';\n\n/**\n * Rounds position/dimension values to integers before sending to service\n * This prevents decimal values from being sent when zoom is not 1\n * Should only be used at the final step before service calls\n */\nexport const roundPositionValues = ({\n height,\n left,\n top,\n width,\n ...rest\n}) => ({\n ...rest,\n ...(height !== undefined && { height: Math.round(height) }),\n ...(left !== undefined && { left: Math.round(left) }),\n ...(top !== undefined && { top: Math.round(top) }),\n ...(width !== undefined && { width: Math.round(width) }),\n});\n\nexport const getCorrectDroppedOffsetValue = (finalOffset, initialOffset, dropTargetPosition, zoom = 1) => {\n const { x: finalX, y: finalY } = finalOffset;\n const { x: initialX, y: initialY } = initialOffset;\n\n const newYposition = finalY > initialY\n ? (initialY + (finalY - initialY)) - dropTargetPosition.top\n : initialY - (initialY - finalY) - dropTargetPosition.top;\n\n const newXposition = finalX > initialX\n ? (initialX + (finalX - initialX)) - dropTargetPosition.left\n : initialX - (initialX - finalX) - dropTargetPosition.left;\n\n return {\n left: newXposition / zoom,\n top: newYposition / zoom,\n };\n};\n\nexport const getStyles = (left, top, isDragging) => {\n return {\n height: isDragging ? 0 : '',\n left,\n opacity: isDragging ? 0 : 1,\n position: 'absolute',\n top,\n };\n};\n\nexport const isSelectedItem = (id, activeElements) => {\n return activeElements.includes(id);\n};\n\nexport const findItemById = (itemID, pages) => {\n const page = pages.find(p => p.items.find(item => item.id === itemID));\n if (!page) return null;\n return page.items.find(item => item.id === itemID);\n};\n\nconst traverse = (obj, condition) => condition.split('.').reduce((cur, key) => cur[key], obj);\n\nconst hideOrShowWhen = (selectedItem, setting, itemAccessor) => {\n if (selectedItem.hideSettings && setting.key !== 'showWarning') {\n return false;\n }\n\n if (setting.visible) {\n return typeof setting.visible === 'function'\n ? setting.visible({ item: selectedItem, itemAccessor })\n : !!setting.visible;\n }\n\n if (setting.hideWhen || setting.showWhen) {\n const hideCondition = !!setting.hideWhen === true;\n const conditionType = hideCondition ? 'hideWhen' : 'showWhen';\n const conditions = setting[conditionType];\n\n return Object.keys(conditions).every(conditionKey => {\n const condition = conditions[conditionKey];\n const conditionOfSelectedItem = conditionKey.split('.').length > 1\n ? traverse(selectedItem, conditionKey) : selectedItem[conditionKey];\n\n if (Array.isArray(condition)) {\n const returnValue = condition.includes(conditionOfSelectedItem);\n return hideCondition ? !returnValue : returnValue;\n }\n\n const returnValue = condition === conditionOfSelectedItem;\n return hideCondition ? !returnValue : returnValue;\n });\n }\n\n return true;\n};\n\nexport const getTabsWithSettings = (element, selectedItem, itemAccessor) => {\n const settings = element.settings || element;\n return settings.reduce((tabsWithSettings, setting) => {\n const _tabsWithSettings = tabsWithSettings;\n const defaultItem = element.defaultItem || {};\n const item = { ...defaultItem, ...selectedItem };\n if (hideOrShowWhen(item, setting, itemAccessor)) {\n const settingSection = setting.section || 'GENERAL';\n if (!_tabsWithSettings[settingSection]) {\n _tabsWithSettings[settingSection] = [];\n }\n _tabsWithSettings[settingSection].push(setting);\n }\n return _tabsWithSettings;\n }, {});\n};\n\nexport const getTabsWithElements = leftPanelConfig => {\n return leftPanelConfig.reduce((tabsWithSettings, config) => {\n const _tabsWithSettings = tabsWithSettings;\n const settingSection = config.section || 'GENERAL';\n _tabsWithSettings[settingSection] = config;\n return _tabsWithSettings;\n }, {});\n};\n\nexport const calculateGuidePositions = (dimensions, axis, zoom = 1, direction = null) => {\n const isItem = dimensions && dimensions.id;\n\n if (axis === 'x') {\n const start = dimensions.left;\n const middle = dimensions.left + parseInt(dimensions.width / 2, 10);\n const end = dimensions.left + dimensions.width;\n\n if (isItem) {\n const result = [start, middle, end].map(p => p * zoom);\n if (direction) {\n if (direction === 'bottom') return [];\n if (direction === 'top') return [];\n if (/left/i.test(direction)) return [result[0]];\n if (/right/i.test(direction)) return [result[2]];\n }\n return result;\n }\n return [start, middle, end];\n }\n\n const start = dimensions.top;\n const middle = dimensions.top + parseInt(dimensions.height / 2, 10);\n const end = dimensions.top + dimensions.height;\n\n if (isItem) {\n const result = [start, middle, end].map(p => p * zoom);\n if (direction) {\n if (direction === 'left') return [];\n if (direction === 'right') return [];\n if (/top/i.test(direction)) return [result[0]];\n if (/bottom/i.test(direction)) return [result[2]];\n }\n return result;\n }\n return [start, middle, end];\n};\n\nexport const getAllGuidesForGivenAxisExceptActiveBox = (\n allGuides,\n guidesForActiveBoxAlongGivenAxis,\n axis,\n) => {\n const result = Object.keys(allGuides).map(box => {\n const currentBoxGuidesAlongGivenAxis = allGuides[box][axis];\n if (currentBoxGuidesAlongGivenAxis !== guidesForActiveBoxAlongGivenAxis) {\n return currentBoxGuidesAlongGivenAxis;\n }\n return undefined;\n });\n\n return result.filter(guides => guides !== undefined);\n};\n\nexport const checkValueProximities = (activeBoxGuidesInOneAxis, allOtherGuidesInOneAxis) => {\n let proximity = null;\n let intersection = null;\n let matchedArray = [];\n const snapThreshold = 5;\n for (let index = 0; index < allOtherGuidesInOneAxis.length; index += 1) {\n let index2 = 0;\n let index3 = 0;\n\n while (index2 < activeBoxGuidesInOneAxis.length\n && index3 < allOtherGuidesInOneAxis[index].length) {\n const diff = Math.abs(activeBoxGuidesInOneAxis[index2]\n - allOtherGuidesInOneAxis[index][index3]);\n if (diff <= snapThreshold) {\n proximity = { activeBoxIndex: index2, matchedBoxIndex: index3, value: diff };\n matchedArray = allOtherGuidesInOneAxis[index];\n intersection = allOtherGuidesInOneAxis[index][index3];\n }\n\n if (activeBoxGuidesInOneAxis[index2] < allOtherGuidesInOneAxis[index][index3]) {\n index2 += 1;\n } else {\n index3 += 1;\n }\n }\n }\n\n return { intersection, matchedArray, proximity };\n};\n\nexport const proximityListener = (active, allGuides) => {\n const xAxisGuidesForActiveBox = allGuides[active].x;\n const yAxisGuidesForActiveBox = allGuides[active].y;\n const xAxisAllGuides = getAllGuidesForGivenAxisExceptActiveBox(\n allGuides,\n xAxisGuidesForActiveBox,\n 'x',\n );\n const yAxisAllGuides = getAllGuidesForGivenAxisExceptActiveBox(\n allGuides,\n yAxisGuidesForActiveBox,\n 'y',\n );\n const xAxisMatchedGuides = checkValueProximities(xAxisGuidesForActiveBox, xAxisAllGuides);\n const yAxisMatchedGuides = checkValueProximities(yAxisGuidesForActiveBox, yAxisAllGuides);\n\n const allMatchedGuides = {};\n\n if (xAxisMatchedGuides.proximity) {\n allMatchedGuides.x = {\n ...xAxisMatchedGuides,\n activeBoxGuides: xAxisGuidesForActiveBox,\n };\n }\n\n if (yAxisMatchedGuides.proximity) {\n allMatchedGuides.y = {\n ...yAxisMatchedGuides,\n activeBoxGuides: yAxisGuidesForActiveBox,\n };\n }\n\n return allMatchedGuides;\n};\n\nexport const getMatchesForItem = (item, guides, zoom, direction = null) => {\n const pageGuides = guides[item.pageID];\n const _guides = {\n ...pageGuides,\n [item.id]: {\n ...pageGuides[item.id],\n x: calculateGuidePositions(item, 'x', zoom, direction),\n y: calculateGuidePositions(item, 'y', zoom, direction),\n },\n };\n return proximityListener(item.id, _guides);\n};\n\nexport const getCoordinatesFromMatches = (item, matches, zoom = 1) => {\n let newActiveBoxLeft = item.left;\n let newActiveBoxTop = item.top;\n Object.keys(matches).forEach(axis => {\n const { activeBoxGuides, matchedArray, proximity } = matches[axis];\n const activeBoxProximityIndex = proximity.activeBoxIndex;\n const matchedBoxProximityIndex = proximity.matchedBoxIndex;\n // proximity.value is in zoomed pixels, divide by zoom to get canvas coordinates\n const adjustedValue = proximity.value / zoom;\n if (axis === 'x') {\n if (activeBoxGuides[activeBoxProximityIndex] > matchedArray[matchedBoxProximityIndex]) {\n newActiveBoxLeft = item.left - adjustedValue;\n } else {\n newActiveBoxLeft = item.left + adjustedValue;\n }\n } else if (activeBoxGuides[activeBoxProximityIndex] > matchedArray[matchedBoxProximityIndex]) {\n newActiveBoxTop = item.top - adjustedValue;\n } else {\n newActiveBoxTop = item.top + adjustedValue;\n }\n });\n\n return {\n left: newActiveBoxLeft,\n top: newActiveBoxTop,\n };\n};\n\nexport const getPosition = e => {\n var posx = 0;\n var posy = 0;\n\n if (e.pageX || e.pageY) {\n posx = e.pageX;\n posy = e.pageY;\n } else if (e.clientX || e.clientY) {\n posx = e.clientX + document.body.scrollLeft\n + document.documentElement.scrollLeft;\n posy = e.clientY + document.body.scrollTop\n + document.documentElement.scrollTop;\n }\n\n return {\n x: posx,\n y: posy,\n };\n};\n\nexport const getContainerPositions = (container, positions) => {\n const windowWidth = global.innerWidth\n || global.document.documentElement.clientWidth\n || global.document.body.clientWidth;\n\n const windowHeight = global.innerHeight\n || global.document.documentElement.clientHeight\n || global.document.body.clientHeight;\n\n const newPosition = { ...positions };\n const {\n height: contextHeight,\n width: contextWidth,\n } = container.getBoundingClientRect();\n\n if (contextWidth + newPosition.x > (windowWidth - 8)) {\n newPosition.x = windowWidth - contextWidth - 5;\n }\n\n if (contextHeight + newPosition.y > (windowHeight - 8)) {\n newPosition.y = windowHeight - contextHeight - 30;\n }\n\n const newPositions = {\n x: newPosition.x += 5,\n y: newPosition.y += 3,\n };\n\n return newPositions;\n};\n\nexport const moveItemInArrayFromIndexToIndex = (array, fromIndex, toIndex) => {\n if (fromIndex === toIndex) return array;\n const newArray = [...array];\n const target = newArray[fromIndex];\n const inc = toIndex < fromIndex ? -1 : 1;\n for (let i = fromIndex; i !== toIndex; i += inc) {\n newArray[i] = newArray[i + inc];\n }\n newArray[toIndex] = target;\n return newArray;\n};\n\nexport const findItemsOnPage = (pageID, pages) => {\n const foundPage = pages.find(page => page.id === pageID);\n if (foundPage && foundPage.items) {\n return foundPage.items;\n }\n return [];\n};\n\n// https://github.com/unclecheese/react-selectable/blob/master/src/doObjectsCollide.js\nconst coordsCollide = (aTop, aLeft, bTop, bLeft, aWidth, aHeight, bWidth, bHeight, tolerance) => {\n const toleranceDistance = (typeof tolerance === 'undefined') ? 0 : tolerance;\n\n return !(\n (((aTop + aHeight) - toleranceDistance) < bTop)\n || ((aTop + toleranceDistance) > (bTop + bHeight))\n || (((aLeft + aWidth) - toleranceDistance) < bLeft)\n || ((aLeft + toleranceDistance) > (bLeft + bWidth))\n );\n};\n\nexport const collisionCheck = (item, items, startIndex, direction) => {\n let colluded = false;\n let currIndex = startIndex;\n while (!colluded && items[currIndex + direction]) {\n currIndex += direction;\n colluded = coordsCollide(\n item.top,\n item.left,\n items[currIndex].top,\n items[currIndex].left,\n item.width,\n item.height,\n items[currIndex].width,\n items[currIndex].height,\n );\n }\n\n if (colluded) {\n return currIndex;\n }\n return null;\n};\n\nexport const moveArrayItem = (array, initialIndex, targetIndex) => {\n // mutates origin array\n array.splice(targetIndex, 0, array.splice(initialIndex, 1)[0]);\n};\n\nexport const getFileName = (url = '') => {\n return url.split('/').pop().split('?')[0];\n};\n\nexport const getImageSizes = (url, callback) => {\n const img = new Image();\n img.addEventListener('load', () => callback(img.width, img.height));\n img.src = url;\n};\n\nexport const getVisibleHeightPx = (element, viewportRect) => {\n const rect = element.getBoundingClientRect();\n const viewportHeight = viewportRect.bottom - viewportRect.top;\n const elRect = {\n bottom: viewportRect.bottom - rect.bottom,\n height: rect.bottom - rect.top,\n top: rect.top - viewportRect.top,\n };\n const visible = {\n bottom: elRect.bottom > 0 && elRect.bottom < viewportHeight,\n top: elRect.top >= 0 && elRect.top < viewportHeight,\n };\n let px = 0;\n if (visible.top && visible.bottom) {\n px = elRect.height;\n } else if (visible.top) {\n px = viewportHeight - elRect.top;\n } else if (visible.bottom) {\n px = elRect.height + elRect.top;\n } else if (elRect.height > viewportHeight && elRect.top < 0) {\n var absTop = Math.abs(elRect.top);\n if (absTop < elRect.height) {\n px = elRect.height - absTop;\n }\n }\n\n return { ...visible, px };\n};\n\nexport const getMostVisiblePage = (onlyId = false) => {\n const viewport = document.querySelector('.jfReport-viewport');\n if (viewport) {\n const viewportRect = viewport.getBoundingClientRect();\n const elements = Array.from(document.querySelectorAll('.jfReport-page'));\n const calculations = elements.reduce((acc, element) => {\n acc[element.getAttribute('data-id')] = getVisibleHeightPx(element, viewportRect);\n return acc;\n }, {});\n const pageID = Object.keys(calculations)\n .sort((p, n) => calculations[n].px - calculations[p].px)[0];\n if (onlyId) {\n return pageID;\n }\n return {\n attr: calculations[pageID],\n id: pageID,\n };\n }\n return false;\n};\n\nconst getAvailableInitialY = (page, attribute, zoom) => {\n const rect = page.getBoundingClientRect();\n const pageHeight = rect.bottom - rect.top;\n if (attribute.top) return 0;\n const originalPageHeight = pageHeight * (1 / zoom);\n const originalVisibleHeight = attribute.px * (1 / zoom);\n return (originalPageHeight - originalVisibleHeight);\n};\n\nexport const getAvailableCoordinate = (page, zoom) => {\n const isExistsPage = document.querySelector(`.jfReport-page[data-id=\"${page.id}\"]`);\n if (!isExistsPage) return [0, 0];\n\n // First get initial y for scrolled page\n const initialY = getAvailableInitialY(isExistsPage, page.attr, zoom);\n\n const pageItems = isExistsPage.querySelectorAll('.reportItemWrapper');\n if (!pageItems.length) return [0, initialY];\n\n // Then get available space if there any items\n return [...pageItems].reduce((accum, item) => {\n const _accum = accum;\n const { style: { left, top } } = item;\n const coordinate = [parseInt(left, 10), parseInt(top, 10)];\n if (_accum[0] === coordinate[0] && _accum[1] === coordinate[1]) {\n _accum[0] = _accum[0] + 50;\n _accum[1] = _accum[1] + 50;\n }\n return _accum;\n }, [0, initialY]);\n};\n\nexport function safeJSONParse(str, defVal = {}) {\n if (str) {\n try {\n return JSON.parse(str);\n } catch (ex) {\n return defVal;\n }\n } else {\n return defVal;\n }\n}\n\n/* View in fullscreen */\nexport const openFullscreenHelper = (elem = document.documentElement) => {\n if (elem.requestFullscreen) {\n return elem.requestFullscreen();\n } else if (elem.mozRequestFullScreen) { /* Firefox */\n return elem.mozRequestFullScreen();\n } else if (elem.webkitRequestFullscreen) { /* Chrome, Safari and Opera */\n return elem.webkitRequestFullscreen();\n } else if (elem.msRequestFullscreen) { /* IE/Edge */\n return elem.msRequestFullscreen();\n }\n return Promise.resolve();\n};\n\n/* Close fullscreen */\nexport const closeFullscreen = () => {\n if (document.fullscreenElement\n || document.webkitFullscreenElement\n || document.mozFullScreenElement) {\n if (document.exitFullscreen) {\n return document.exitFullscreen();\n } else if (document.mozCancelFullScreen) { /* Firefox */\n return document.mozCancelFullScreen();\n } else if (document.webkitExitFullscreen) { /* Chrome, Safari and Opera */\n return document.webkitExitFullscreen();\n } else if (document.msExitFullscreen) { /* IE/Edge */\n return document.msExitFullscreen();\n }\n }\n return Promise.resolve();\n};\n\nexport const imageSizeUpdater = (item, { objectURL, url }, updateFunc) => {\n const MAX_WIDTH = 700;\n const MAX_HEIGHT = 600;\n const image = new global.Image();\n image.src = objectURL || url;\n\n image.onerror = () => {\n updateFunc(item, { url });\n };\n\n image.onload = () => {\n const { naturalHeight, naturalWidth } = image;\n let _width = naturalWidth;\n let _height = naturalHeight;\n\n if (naturalWidth > MAX_WIDTH) {\n _height = parseInt((MAX_WIDTH * naturalHeight) / naturalWidth, 10);\n _width = MAX_WIDTH;\n }\n\n if (_height > MAX_HEIGHT) {\n _width = parseInt((_width * MAX_HEIGHT) / _height, 10);\n _height = MAX_HEIGHT;\n }\n\n if (objectURL) {\n URL.revokeObjectURL(objectURL);\n }\n\n updateFunc(\n item, {\n height: _height,\n url: url,\n width: _width,\n },\n );\n };\n};\n\nexport const onChangeFunction = (\n config,\n updateFunc,\n selectedItem,\n customUpdater,\n) => (item, setting) => {\n if (config && config.ifValueEquals) {\n const value = setting[config.key];\n if (config.ifValueEquals[value]) {\n const settingsWillBeChanged = Object.keys(config.ifValueEquals[value])\n .reduce(\n (newSettings,\n settingKey) => {\n const { ifIsEqualPreviousValue } = config.ifValueEquals[value][settingKey];\n const { cast } = config.ifValueEquals[value][settingKey];\n let { value: newSetting } = config.ifValueEquals[value][settingKey];\n const _newSettings = newSettings;\n if (typeof newSetting !== 'string') {\n _newSettings[settingKey] = newSetting;\n return _newSettings;\n }\n const matches = newSetting.match(/{.+?}/g);\n if (matches && matches.length > 0) {\n newSetting = matches.reduce((acc, curr) => {\n let _acc = acc;\n const newValue = selectedItem[\n curr.replace(/\\{|\\}/gi, '')\n ];\n _acc = newSetting.replace(curr, newValue);\n if (cast && cast === 'integer') {\n return parseInt(_acc, 10);\n }\n return _acc;\n }, newSetting);\n }\n if (ifIsEqualPreviousValue && ifIsEqualPreviousValue !== selectedItem[settingKey]) {\n return _newSettings;\n }\n _newSettings[settingKey] = newSetting;\n return _newSettings;\n }, {},\n );\n if (customUpdater) {\n customUpdater(item, {\n ...setting,\n ...settingsWillBeChanged,\n }, updateFunc);\n } else {\n updateFunc(item, {\n ...setting,\n ...settingsWillBeChanged,\n });\n }\n } else if (customUpdater) {\n customUpdater(item, setting, updateFunc);\n } else {\n updateFunc(item, setting);\n }\n } else if (config.useImageSizeUpdate) {\n imageSizeUpdater(item, setting, updateFunc);\n } else if (customUpdater) {\n customUpdater(item, setting, updateFunc);\n } else {\n updateFunc(item, setting);\n }\n};\n\nexport const exportPagesAsJSON = (acceptedItems, pages) => {\n const newPages = pages.map(page => {\n const items = page.items.map(pageItem => {\n const { details } = acceptedItems[pageItem.itemType];\n return {\n ...objectDiff(details, pageItem),\n type: details.itemType,\n };\n });\n return {\n items,\n type: 'regular',\n };\n });\n return JSON.stringify(newPages, null, 2);\n};\n\nexport const getExactIconType = iconType => {\n if (iconType.indexOf('_') > -1) {\n const splitIconType = iconType.split('_');\n return splitIconType[0] + splitIconType[1].charAt(0).toUpperCase() + splitIconType[1].slice(1);\n }\n return iconType;\n};\n\nexport function clipBoardHelper(string = '') {\n const urlElement = document.createElement('textarea');\n urlElement.value = string;\n document.body.appendChild(urlElement);\n urlElement.select();\n document.execCommand('Copy');\n document.body.removeChild(urlElement);\n}\n\nconst arrayMoveMutate = (array, from, to) => {\n const startIndex = from < 0 ? array.length + from : from;\n\n if (startIndex >= 0 && startIndex < array.length) {\n const endIndex = to < 0 ? array.length + to : to;\n\n const [item] = array.splice(from, 1);\n array.splice(endIndex, 0, item);\n }\n};\n\nexport const arrayMove = (array, from, to) => {\n const newArray = [...array];\n arrayMoveMutate(newArray, from, to);\n return newArray;\n};\n\nexport const getZoomValue = ({\n isFullscreen,\n limitZoom,\n settings,\n useFixedPresentationBar,\n useProgressBar,\n}) => {\n const { reportLayoutHeight = 794, reportLayoutWidth = 1123 } = settings;\n\n const { innerHeight, innerWidth } = window;\n\n let paddingValue = 0;\n\n if (!isFullscreen) { // We are not using fixed bar in fullscreen\n const padFixedBar = useFixedPresentationBar ? 50 : 0;\n const padProgressBar = useProgressBar ? 3 : 0;\n\n paddingValue += (padFixedBar + padProgressBar);\n }\n\n const _innerHeight = innerHeight - paddingValue;\n\n let newScale = Math.min(\n (innerWidth - (limitZoom ? 400 : 0)) / reportLayoutWidth,\n _innerHeight / reportLayoutHeight,\n );\n\n if (limitZoom) {\n newScale = Math.floor(newScale * 10) / 10;\n } else {\n // We need this to prevent scrollbars\n newScale = Math.floor(newScale * 100) / 100;\n }\n\n let newZoom = Number(newScale.toFixed(2));\n\n if (limitZoom && newZoom < 0.5) newZoom = 0.5;\n if (limitZoom && newZoom > 1) newZoom = 1;\n\n return newZoom;\n};\n\nexport const throttle = (fn, delay) => {\n let lastCall = 0;\n return (...args) => {\n const now = (new Date()).getTime();\n if (now - lastCall < delay) {\n return;\n }\n lastCall = now;\n return fn(...args);\n };\n};\n\nexport const roundForDecimalPart = num => {\n return +(`${Math.round(`${num}e+2`)}e-2`);\n};\n\nexport const changePage = ({\n action,\n currentPage,\n pageCount,\n setCurrentPage,\n}) => () => {\n if (currentPage + action > pageCount) {\n setCurrentPage(1);\n } else if (currentPage + action === 0) {\n setCurrentPage(pageCount);\n } else {\n setCurrentPage(currentPage + action);\n }\n};\n\nexport const getScaleForPageThumbnail = (width, height) => {\n const [thumbnailMaxHeight, thumbnailMaxWidth] = [110, 156];\n const scale = thumbnailMaxHeight / height;\n if (Math.ceil(width * scale) >= thumbnailMaxWidth) {\n const newScale = thumbnailMaxWidth / width;\n return {\n left: 0,\n scale: newScale,\n top: thumbnailMaxHeight > height * newScale\n ? (thumbnailMaxHeight - (height * newScale)) / 2 : 0,\n };\n }\n return {\n left: thumbnailMaxWidth > width * scale\n ? (thumbnailMaxWidth - (width * scale)) / 2 : 0,\n scale,\n top: 0,\n };\n};\n\nexport const getScaleForPageThumbnailLarge = (width, height) => {\n const thumbnailMaxHeight = 134;\n const thumbnailMaxWidth = 190;\n const defaultScaleRatio = thumbnailMaxHeight / height;\n if (width * defaultScaleRatio > thumbnailMaxWidth) {\n return thumbnailMaxWidth / width;\n }\n return defaultScaleRatio;\n};\n\nexport const scrollToTarget = (id, timeout = 0, options = { behavior: 'smooth' }) => {\n setTimeout(() => {\n const target = document.getElementById(id);\n if (target) {\n target.scrollIntoView(options);\n }\n }, timeout);\n};\n\nexport function normalizeHexColor(value) {\n let v = value.trim();\n if (!v.startsWith('#')) v = `#${v}`;\n return v;\n}\n\nexport function isValidHexColor(value) {\n return /^#(?:[0-9a-fA-F]{3}){1,2}$/.test(value);\n}\n\nexport const emptyFunction = f => f;\n\nexport const isItemInSelectionBox = (selectionBox, item, zoom = 1) => {\n const boxLeft = Math.min(selectionBox.startX, selectionBox.endX);\n const boxTop = Math.min(selectionBox.startY, selectionBox.endY);\n const boxRight = Math.max(selectionBox.startX, selectionBox.endX);\n const boxBottom = Math.max(selectionBox.startY, selectionBox.endY);\n\n const itemLeft = item.left * zoom;\n const itemTop = item.top * zoom;\n const itemRight = (item.left + item.width) * zoom;\n const itemBottom = (item.top + item.height) * zoom;\n\n // Check if rectangles intersect\n return !(\n boxRight < itemLeft\n || boxLeft > itemRight\n || boxBottom < itemTop\n || boxTop > itemBottom\n );\n};\n\nexport const getItemsInSelectionBox = (selectionBox, items, zoom = 1) => {\n return items\n .filter(item => !item.isLocked && isItemInSelectionBox(selectionBox, item, zoom))\n .map(item => item.id);\n};\n\nexport const getDimensions = ({\n height, left, top, width,\n}) => {\n return {\n height,\n left,\n top,\n width,\n };\n};\n\nexport const slidesAsNavigator = slidesListType => {\n return slidesListType === SLIDES_LIST_TYPE_MAP.NAVIGATOR;\n};\n\nexport const slidesAsPanel = slidesListType => {\n return slidesListType === SLIDES_LIST_TYPE_MAP.PANEL;\n};\n"],"names":["roundPositionValues","height","left","top","width","rest","undefined","Math","round","getCorrectDroppedOffsetValue","finalOffset","initialOffset","dropTargetPosition","zoom","finalX","x","finalY","y","initialX","initialY","newYposition","newXposition","getStyles","isDragging","opacity","position","isSelectedItem","id","activeElements","includes","findItemById","itemID","pages","page","find","p","items","item","traverse","obj","condition","split","reduce","cur","key","hideOrShowWhen","selectedItem","setting","itemAccessor","hideSettings","visible","hideWhen","showWhen","hideCondition","conditionType","conditions","Object","keys","every","conditionKey","conditionOfSelectedItem","length","Array","isArray","returnValue","getTabsWithSettings","element","settings","tabsWithSettings","_tabsWithSettings","defaultItem","settingSection","section","push","getTabsWithElements","leftPanelConfig","config","calculateGuidePositions","dimensions","axis","direction","isItem","start","middle","parseInt","end","result","map","test","getAllGuidesForGivenAxisExceptActiveBox","allGuides","guidesForActiveBoxAlongGivenAxis","box","currentBoxGuidesAlongGivenAxis","filter","guides","checkValueProximities","activeBoxGuidesInOneAxis","allOtherGuidesInOneAxis","proximity","intersection","matchedArray","snapThreshold","index","index2","index3","diff","abs","activeBoxIndex","matchedBoxIndex","value","proximityListener","active","xAxisGuidesForActiveBox","yAxisGuidesForActiveBox","xAxisAllGuides","yAxisAllGuides","xAxisMatchedGuides","yAxisMatchedGuides","allMatchedGuides","activeBoxGuides","getMatchesForItem","pageGuides","pageID","_guides","getCoordinatesFromMatches","matches","newActiveBoxLeft","newActiveBoxTop","forEach","activeBoxProximityIndex","matchedBoxProximityIndex","adjustedValue","getPosition","e","posx","posy","pageX","pageY","clientX","clientY","document","body","scrollLeft","documentElement","scrollTop","getContainerPositions","container","positions","windowWidth","global","innerWidth","clientWidth","windowHeight","innerHeight","clientHeight","newPosition","getBoundingClientRect","contextHeight","contextWidth","newPositions","findItemsOnPage","foundPage","coordsCollide","aTop","aLeft","bTop","bLeft","aWidth","aHeight","bWidth","bHeight","tolerance","toleranceDistance","collisionCheck","startIndex","colluded","currIndex","moveArrayItem","array","initialIndex","targetIndex","splice","getFileName","url","pop","getImageSizes","callback","img","Image","addEventListener","src","getVisibleHeightPx","viewportRect","rect","viewportHeight","bottom","elRect","px","absTop","getMostVisiblePage","onlyId","viewport","querySelector","elements","from","querySelectorAll","calculations","acc","getAttribute","sort","n","attr","getAvailableInitialY","attribute","pageHeight","originalPageHeight","originalVisibleHeight","getAvailableCoordinate","isExistsPage","pageItems","accum","_accum","style","coordinate","safeJSONParse","str","defVal","JSON","parse","ex","openFullscreenHelper","elem","requestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","msRequestFullscreen","Promise","resolve","closeFullscreen","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","exitFullscreen","mozCancelFullScreen","webkitExitFullscreen","msExitFullscreen","imageSizeUpdater","updateFunc","objectURL","MAX_WIDTH","MAX_HEIGHT","image","onerror","onload","naturalHeight","naturalWidth","_width","_height","URL","revokeObjectURL","onChangeFunction","customUpdater","ifValueEquals","settingsWillBeChanged","newSettings","settingKey","ifIsEqualPreviousValue","cast","newSetting","_newSettings","match","curr","_acc","newValue","replace","useImageSizeUpdate","getExactIconType","iconType","indexOf","splitIconType","charAt","toUpperCase","slice","arrayMoveMutate","to","endIndex","arrayMove","newArray","getZoomValue","isFullscreen","limitZoom","useFixedPresentationBar","useProgressBar","reportLayoutHeight","reportLayoutWidth","window","paddingValue","padFixedBar","padProgressBar","_innerHeight","newScale","min","floor","newZoom","Number","toFixed","throttle","fn","delay","lastCall","now","Date","getTime","roundForDecimalPart","num","changePage","action","currentPage","pageCount","setCurrentPage","getScaleForPageThumbnail","thumbnailMaxHeight","thumbnailMaxWidth","scale","ceil","scrollToTarget","timeout","options","behavior","setTimeout","target","getElementById","scrollIntoView","normalizeHexColor","v","trim","startsWith","isValidHexColor","emptyFunction","f","isItemInSelectionBox","selectionBox","boxLeft","startX","endX","boxTop","startY","endY","boxRight","max","boxBottom","itemLeft","itemTop","itemRight","itemBottom","getItemsInSelectionBox","isLocked","getDimensions","slidesAsNavigator","slidesListType","SLIDES_LIST_TYPE_MAP","NAVIGATOR","slidesAsPanel","PANEL"],"mappings":"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"}
|
package/lib/esm/utils/hooks.js
CHANGED
|
@@ -37,6 +37,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
37
37
|
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
38
38
|
|
|
39
39
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
40
|
+
var INITIAL_ZOOM_MAX = 0.8;
|
|
40
41
|
var useEventListener = function useEventListener(eventName, handler) {
|
|
41
42
|
var element = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : global;
|
|
42
43
|
var savedHandler = useRef();
|
|
@@ -89,13 +90,14 @@ var useFitZoom = function useFitZoom() {
|
|
|
89
90
|
return state.setZoom;
|
|
90
91
|
});
|
|
91
92
|
useEffect(function () {
|
|
92
|
-
var
|
|
93
|
+
var fitZoom = getZoomValue({
|
|
93
94
|
limitZoom: true,
|
|
94
95
|
settings: {
|
|
95
96
|
reportLayoutHeight: settings.reportLayoutHeight,
|
|
96
97
|
reportLayoutWidth: settings.reportLayoutWidth
|
|
97
98
|
}
|
|
98
99
|
});
|
|
100
|
+
var newZoom = Math.min(fitZoom, INITIAL_ZOOM_MAX);
|
|
99
101
|
setZoom(newZoom, settings.reportLayoutWidth);
|
|
100
102
|
}, [settings.reportLayoutHeight, settings.reportLayoutWidth, setZoom]);
|
|
101
103
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sources":["../../../src/utils/hooks.js"],"sourcesContent":["import {\n useEffect,\n useRef,\n useState,\n useMemo,\n useCallback,\n} from 'react';\nimport { getZoomValue } from './functions';\nimport { SharingTextsModule } from '../constants/texts';\nimport { usePropStore } from '../contexts/PropContext';\nimport { useBuilderStore } from '../contexts/BuilderContext';\nimport { usePresentationStore } from '../contexts/PresentationContext';\n\nexport const useStateWithCallback = (initialState, callback) => {\n const [state, setState] = useState(initialState);\n\n useEffect(() => callback(state), [state, callback]);\n\n return [state, setState];\n};\n\nexport const useEventListener = (eventName, handler, element = global) => {\n const savedHandler = useRef();\n\n useEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n\n useEffect(\n () => {\n const isSupported = element && element.addEventListener;\n if (!isSupported) return;\n\n const eventListener = event => savedHandler.current(event);\n element.addEventListener(eventName, eventListener);\n return () => {\n element.removeEventListener(eventName, eventListener);\n };\n },\n [eventName, element],\n );\n};\n\nexport const useInterval = (callback, delay) => {\n const savedCallback = useRef();\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n useEffect(() => {\n function tick() {\n savedCallback.current();\n }\n if (delay !== null) {\n const id = setInterval(tick, delay);\n return () => clearInterval(id);\n }\n }, [delay]);\n};\n\nexport const usePrevious = value => {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n};\n\nexport const usePropState = (propValue, transform = v => v) => {\n const [state, setState] = useState(() => transform(propValue));\n\n useEffect(() => {\n setState(transform(propValue));\n }, [propValue, transform]);\n\n return [state, setState];\n};\n\nexport const useFitZoom = () => {\n const settings = usePropStore(state => state.settings);\n const setZoom = useBuilderStore(state => state.setZoom);\n\n useEffect(() => {\n const newZoom = getZoomValue({\n limitZoom: true,\n settings: {\n reportLayoutHeight: settings.reportLayoutHeight,\n reportLayoutWidth: settings.reportLayoutWidth,\n },\n });\n setZoom(newZoom, settings.reportLayoutWidth);\n }, [\n settings.reportLayoutHeight,\n settings.reportLayoutWidth,\n setZoom,\n ]);\n};\n\nexport const usePageVisibility = (callback, pageCount, selectedPageIndex) => {\n const ratio = useRef({});\n const prevVisiblePageIndex = useRef(-1);\n const pageRefs = useRef([]);\n const observer = useMemo(() => new window.IntersectionObserver(entries => {\n entries.forEach(entry => {\n const order = entry.target.getAttribute('data-order');\n if (entry.intersectionRatio !== 0) {\n ratio.current[order] = entry.intersectionRatio;\n } else {\n delete ratio.current[order];\n }\n });\n const visiblePageIndex = parseInt(\n Object.keys(ratio.current)\n .find(key => ratio.current[key] === Math.max(...Object.values(ratio.current))),\n 10,\n );\n if (visiblePageIndex !== prevVisiblePageIndex.current) {\n prevVisiblePageIndex.current = visiblePageIndex;\n callback(visiblePageIndex);\n }\n },\n {\n delay: 100,\n root: document.querySelector('.jfReport-viewport'),\n threshold: [0, 0.25, 0.5, 0.75, 1],\n }), [callback]);\n\n useEffect(() => {\n ratio.current = {};\n pageRefs.current = document.querySelectorAll('.jfReport-page');\n }, [pageCount]);\n\n useEffect(() => {\n if (selectedPageIndex === -1) {\n pageRefs.current.forEach(page => {\n observer.observe(page);\n });\n }\n\n return () => {\n pageRefs.current.forEach(page => {\n observer.unobserve(page);\n });\n };\n }, [selectedPageIndex, observer]);\n};\n\nexport const useFullscreenChange = (isFullscreen, fitToScreen) => {\n /**\n * All this is just to cover if the user exits fullscreen via ESC key :(\n */\n const onAnEventTrigger = usePropStore(state => state.onAnEventTrigger);\n const setIsFullscreen = usePresentationStore(state => state.setIsFullscreen);\n\n const onFullscreenChange = useCallback(() => {\n if (!(\n document.fullScreen\n || document.mozFullScreen\n || document.webkitIsFullScreen\n )) {\n onAnEventTrigger('clickedFullscreen');\n setIsFullscreen(false);\n fitToScreen(500);\n } else {\n setIsFullscreen(true);\n fitToScreen(600);\n }\n }, [fitToScreen, setIsFullscreen, onAnEventTrigger]);\n\n useEventListener('fullscreenchange', onFullscreenChange);\n useEventListener('webkitfullscreenchange', onFullscreenChange);\n useEventListener('mozfullscreenchange', onFullscreenChange);\n useEventListener('MSFullscreenChange', onFullscreenChange);\n};\n\nexport const useTranslatedTexts = () => {\n return useMemo(() => SharingTextsModule.Texts, []);\n};\n\nexport const useClickOutsideListener = (classes, conditionValue, onClose) => {\n const onClickOutsideForPanel = useCallback(({ target: { classList } }) => {\n const shouldClose = classes.some(c => classList.contains(c));\n if (shouldClose) {\n onClose();\n }\n }, [classes, onClose]);\n\n useEffect(() => {\n if (conditionValue) window.addEventListener('click', onClickOutsideForPanel, false);\n return () => window.removeEventListener('click', onClickOutsideForPanel, false);\n }, [conditionValue, onClickOutsideForPanel]);\n};\n\nexport const usePageTransition = (style, currentPage) => {\n const finalStyle = useMemo(() => {\n switch (style) {\n case 'verticalSlide':\n return { transform: `translateY(-${(currentPage * 100).toString()}%)` };\n case 'scaleAndFade':\n return {};\n case 'rotate':\n return { '-webkit-perspective': 1000 };\n case 'scaleAndSlide':\n case 'horizontalSlide':\n default:\n return { transform: `translateX(-${(currentPage * 100).toString()}%)` };\n }\n }, [style, currentPage]);\n\n return finalStyle;\n};\n\nexport const useSelectedElements = () => {\n const pages = usePropStore(state => state.pages);\n const activeElements = useBuilderStore(state => state.activeElements);\n const acceptedItems = usePropStore(state => state.acceptedItems);\n\n return useMemo(() => {\n if (activeElements.length === 0) return [];\n const items = activeElements.map(itemID => {\n let foundItem = [];\n pages.forEach(page => {\n const item = page.items.find(el => el.id === itemID);\n if (item) {\n foundItem = item;\n }\n });\n const defItem = (acceptedItems[foundItem.itemType] && acceptedItems[foundItem.itemType].defaultItem) || {};\n return { ...defItem, ...foundItem };\n });\n return items;\n }, [pages, activeElements, acceptedItems]);\n};\n"],"names":["useEventListener","eventName","handler","element","global","savedHandler","useRef","useEffect","current","isSupported","addEventListener","eventListener","event","removeEventListener","usePrevious","value","ref","usePropState","propValue","transform","v","useState","state","setState","useFitZoom","settings","usePropStore","setZoom","useBuilderStore","newZoom","getZoomValue","limitZoom","reportLayoutHeight","reportLayoutWidth","usePageVisibility","callback","pageCount","selectedPageIndex","ratio","prevVisiblePageIndex","pageRefs","observer","useMemo","window","IntersectionObserver","entries","forEach","entry","order","target","getAttribute","intersectionRatio","visiblePageIndex","parseInt","Object","keys","find","key","Math","max","values","delay","root","document","querySelector","threshold","querySelectorAll","page","observe","unobserve","useFullscreenChange","isFullscreen","fitToScreen","onAnEventTrigger","setIsFullscreen","usePresentationStore","onFullscreenChange","useCallback","fullScreen","mozFullScreen","webkitIsFullScreen","useTranslatedTexts","SharingTextsModule","Texts","useClickOutsideListener","classes","conditionValue","onClose","onClickOutsideForPanel","classList","shouldClose","some","c","contains","usePageTransition","style","currentPage","finalStyle","toString","useSelectedElements","pages","activeElements","acceptedItems","length","items","map","itemID","foundItem","item","el","id","defItem","itemType","defaultItem"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hooks.js","sources":["../../../src/utils/hooks.js"],"sourcesContent":["import {\n useEffect,\n useRef,\n useState,\n useMemo,\n useCallback,\n} from 'react';\nimport { getZoomValue } from './functions';\nimport { SharingTextsModule } from '../constants/texts';\nimport { usePropStore } from '../contexts/PropContext';\nimport { useBuilderStore } from '../contexts/BuilderContext';\nimport { usePresentationStore } from '../contexts/PresentationContext';\n\nconst INITIAL_ZOOM_MAX = 0.8;\n\nexport const useStateWithCallback = (initialState, callback) => {\n const [state, setState] = useState(initialState);\n\n useEffect(() => callback(state), [state, callback]);\n\n return [state, setState];\n};\n\nexport const useEventListener = (eventName, handler, element = global) => {\n const savedHandler = useRef();\n\n useEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n\n useEffect(\n () => {\n const isSupported = element && element.addEventListener;\n if (!isSupported) return;\n\n const eventListener = event => savedHandler.current(event);\n element.addEventListener(eventName, eventListener);\n return () => {\n element.removeEventListener(eventName, eventListener);\n };\n },\n [eventName, element],\n );\n};\n\nexport const useInterval = (callback, delay) => {\n const savedCallback = useRef();\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n useEffect(() => {\n function tick() {\n savedCallback.current();\n }\n if (delay !== null) {\n const id = setInterval(tick, delay);\n return () => clearInterval(id);\n }\n }, [delay]);\n};\n\nexport const usePrevious = value => {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n};\n\nexport const usePropState = (propValue, transform = v => v) => {\n const [state, setState] = useState(() => transform(propValue));\n\n useEffect(() => {\n setState(transform(propValue));\n }, [propValue, transform]);\n\n return [state, setState];\n};\n\nexport const useFitZoom = () => {\n const settings = usePropStore(state => state.settings);\n const setZoom = useBuilderStore(state => state.setZoom);\n\n useEffect(() => {\n const fitZoom = getZoomValue({\n limitZoom: true,\n settings: {\n reportLayoutHeight: settings.reportLayoutHeight,\n reportLayoutWidth: settings.reportLayoutWidth,\n },\n });\n const newZoom = Math.min(fitZoom, INITIAL_ZOOM_MAX);\n setZoom(newZoom, settings.reportLayoutWidth);\n }, [\n settings.reportLayoutHeight,\n settings.reportLayoutWidth,\n setZoom,\n ]);\n};\n\nexport const usePageVisibility = (callback, pageCount, selectedPageIndex) => {\n const ratio = useRef({});\n const prevVisiblePageIndex = useRef(-1);\n const pageRefs = useRef([]);\n const observer = useMemo(() => new window.IntersectionObserver(entries => {\n entries.forEach(entry => {\n const order = entry.target.getAttribute('data-order');\n if (entry.intersectionRatio !== 0) {\n ratio.current[order] = entry.intersectionRatio;\n } else {\n delete ratio.current[order];\n }\n });\n const visiblePageIndex = parseInt(\n Object.keys(ratio.current)\n .find(key => ratio.current[key] === Math.max(...Object.values(ratio.current))),\n 10,\n );\n if (visiblePageIndex !== prevVisiblePageIndex.current) {\n prevVisiblePageIndex.current = visiblePageIndex;\n callback(visiblePageIndex);\n }\n },\n {\n delay: 100,\n root: document.querySelector('.jfReport-viewport'),\n threshold: [0, 0.25, 0.5, 0.75, 1],\n }), [callback]);\n\n useEffect(() => {\n ratio.current = {};\n pageRefs.current = document.querySelectorAll('.jfReport-page');\n }, [pageCount]);\n\n useEffect(() => {\n if (selectedPageIndex === -1) {\n pageRefs.current.forEach(page => {\n observer.observe(page);\n });\n }\n\n return () => {\n pageRefs.current.forEach(page => {\n observer.unobserve(page);\n });\n };\n }, [selectedPageIndex, observer]);\n};\n\nexport const useFullscreenChange = (isFullscreen, fitToScreen) => {\n /**\n * All this is just to cover if the user exits fullscreen via ESC key :(\n */\n const onAnEventTrigger = usePropStore(state => state.onAnEventTrigger);\n const setIsFullscreen = usePresentationStore(state => state.setIsFullscreen);\n\n const onFullscreenChange = useCallback(() => {\n if (!(\n document.fullScreen\n || document.mozFullScreen\n || document.webkitIsFullScreen\n )) {\n onAnEventTrigger('clickedFullscreen');\n setIsFullscreen(false);\n fitToScreen(500);\n } else {\n setIsFullscreen(true);\n fitToScreen(600);\n }\n }, [fitToScreen, setIsFullscreen, onAnEventTrigger]);\n\n useEventListener('fullscreenchange', onFullscreenChange);\n useEventListener('webkitfullscreenchange', onFullscreenChange);\n useEventListener('mozfullscreenchange', onFullscreenChange);\n useEventListener('MSFullscreenChange', onFullscreenChange);\n};\n\nexport const useTranslatedTexts = () => {\n return useMemo(() => SharingTextsModule.Texts, []);\n};\n\nexport const useClickOutsideListener = (classes, conditionValue, onClose) => {\n const onClickOutsideForPanel = useCallback(({ target: { classList } }) => {\n const shouldClose = classes.some(c => classList.contains(c));\n if (shouldClose) {\n onClose();\n }\n }, [classes, onClose]);\n\n useEffect(() => {\n if (conditionValue) window.addEventListener('click', onClickOutsideForPanel, false);\n return () => window.removeEventListener('click', onClickOutsideForPanel, false);\n }, [conditionValue, onClickOutsideForPanel]);\n};\n\nexport const usePageTransition = (style, currentPage) => {\n const finalStyle = useMemo(() => {\n switch (style) {\n case 'verticalSlide':\n return { transform: `translateY(-${(currentPage * 100).toString()}%)` };\n case 'scaleAndFade':\n return {};\n case 'rotate':\n return { '-webkit-perspective': 1000 };\n case 'scaleAndSlide':\n case 'horizontalSlide':\n default:\n return { transform: `translateX(-${(currentPage * 100).toString()}%)` };\n }\n }, [style, currentPage]);\n\n return finalStyle;\n};\n\nexport const useSelectedElements = () => {\n const pages = usePropStore(state => state.pages);\n const activeElements = useBuilderStore(state => state.activeElements);\n const acceptedItems = usePropStore(state => state.acceptedItems);\n\n return useMemo(() => {\n if (activeElements.length === 0) return [];\n const items = activeElements.map(itemID => {\n let foundItem = [];\n pages.forEach(page => {\n const item = page.items.find(el => el.id === itemID);\n if (item) {\n foundItem = item;\n }\n });\n const defItem = (acceptedItems[foundItem.itemType] && acceptedItems[foundItem.itemType].defaultItem) || {};\n return { ...defItem, ...foundItem };\n });\n return items;\n }, [pages, activeElements, acceptedItems]);\n};\n"],"names":["INITIAL_ZOOM_MAX","useEventListener","eventName","handler","element","global","savedHandler","useRef","useEffect","current","isSupported","addEventListener","eventListener","event","removeEventListener","usePrevious","value","ref","usePropState","propValue","transform","v","useState","state","setState","useFitZoom","settings","usePropStore","setZoom","useBuilderStore","fitZoom","getZoomValue","limitZoom","reportLayoutHeight","reportLayoutWidth","newZoom","Math","min","usePageVisibility","callback","pageCount","selectedPageIndex","ratio","prevVisiblePageIndex","pageRefs","observer","useMemo","window","IntersectionObserver","entries","forEach","entry","order","target","getAttribute","intersectionRatio","visiblePageIndex","parseInt","Object","keys","find","key","max","values","delay","root","document","querySelector","threshold","querySelectorAll","page","observe","unobserve","useFullscreenChange","isFullscreen","fitToScreen","onAnEventTrigger","setIsFullscreen","usePresentationStore","onFullscreenChange","useCallback","fullScreen","mozFullScreen","webkitIsFullScreen","useTranslatedTexts","SharingTextsModule","Texts","useClickOutsideListener","classes","conditionValue","onClose","onClickOutsideForPanel","classList","shouldClose","some","c","contains","usePageTransition","style","currentPage","finalStyle","toString","useSelectedElements","pages","activeElements","acceptedItems","length","items","map","itemID","foundItem","item","el","id","defItem","itemType","defaultItem"],"mappings":"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"}
|
package/lib/esm/utils/icons.js
CHANGED
|
@@ -5,7 +5,6 @@ export { default as close } from '../assets/svg/close.svg.js';
|
|
|
5
5
|
export { default as rotate } from '../assets/svg/rotate.svg.js';
|
|
6
6
|
export { default as customize } from '../assets/svg/customize.svg.js';
|
|
7
7
|
export { default as slides } from '../assets/svg/slides.svg.js';
|
|
8
|
-
export { default as allSlides } from '../assets/svg/all_slides.svg.js';
|
|
9
8
|
export { default as settingsToggle } from '../assets/svg/settings_toggle.svg.js';
|
|
10
9
|
export { default as header } from '../assets/svg/toolbox/header.svg.js';
|
|
11
10
|
export { default as icon } from '../assets/svg/toolbox/icon.svg.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icons.js","sources":["../../../src/utils/icons.js"],"sourcesContent":["// General //\n\nexport { default as down } from '../assets/svg/arrow_down.svg';\nexport { default as drag } from '../assets/svg/settings/drag.svg';\nexport { default as trash } from '../assets/svg/trash.svg';\nexport { default as close } from '../assets/svg/close.svg';\nexport { default as rotate } from '../assets/svg/rotate.svg';\nexport { default as customize } from '../assets/svg/customize.svg';\nexport { default as slides } from '../assets/svg/slides.svg';\nexport { default as
|
|
1
|
+
{"version":3,"file":"icons.js","sources":["../../../src/utils/icons.js"],"sourcesContent":["// General //\n\nexport { default as down } from '../assets/svg/arrow_down.svg';\nexport { default as drag } from '../assets/svg/settings/drag.svg';\nexport { default as trash } from '../assets/svg/trash.svg';\nexport { default as close } from '../assets/svg/close.svg';\nexport { default as rotate } from '../assets/svg/rotate.svg';\nexport { default as customize } from '../assets/svg/customize.svg';\nexport { default as slides } from '../assets/svg/slides.svg';\nexport { default as settingsToggle } from '../assets/svg/settings_toggle.svg';\n\n// Elements //\n\nexport { default as header } from '../assets/svg/toolbox/header.svg';\nexport { default as icon } from '../assets/svg/toolbox/icon.svg';\nexport { default as image } from '../assets/svg/toolbox/image.svg';\nexport { default as label } from '../assets/svg/toolbox/label.svg';\nexport { default as shapes } from '../assets/svg/toolbox/shapes.svg';\nexport { default as table } from '../assets/svg/toolbox/table.svg';\nexport { default as textElement } from '../assets/svg/toolbox/text_element.svg';\nexport { default as text } from '../assets/svg/toolbox/text.svg';\nexport { default as star } from '../assets/svg/toolbox/star.svg';\nexport { default as email } from '../assets/svg/toolbox/email.svg';\nexport { default as singleChoice } from '../assets/svg/toolbox/single_choice.svg';\nexport { default as multipleChoice } from '../assets/svg/toolbox/multiple_choice.svg';\nexport { default as lock } from '../assets/svg/settings/lock.svg';\nexport { default as unlock } from '../assets/svg/settings/unlock.svg';\n\n// Settings //\n\nexport { default as bold } from '../assets/svg/settings/font_bold.svg';\nexport { default as italic } from '../assets/svg/settings/font_italic.svg';\nexport { default as underline } from '../assets/svg/settings/font_underline.svg';\nexport { default as alignLeft } from '../assets/svg/settings/align_left.svg';\nexport { default as alignCenter } from '../assets/svg/settings/align_center.svg';\nexport { default as alignRight } from '../assets/svg/settings/align_right.svg';\n\n// Chart Settings //\n\nexport { default as pie } from '../assets/svg/settings/chart_pie.svg';\nexport { default as bar } from '../assets/svg/settings/chart_bar.svg';\nexport { default as line } from '../assets/svg/settings/chart_line.svg';\nexport { default as basic } from '../assets/svg/settings/chart_basic.svg';\nexport { default as donut } from '../assets/svg/settings/chart_donut.svg';\nexport { default as grid } from '../assets/svg/settings/chart_grid.svg';\nexport { default as textGrid } from '../assets/svg/settings/chart_textGrid.svg';\nexport { default as column } from '../assets/svg/settings/chart_column.svg';\nexport { default as layout } from '../assets/svg/settings/layout.svg';\nexport { default as starRating } from '../assets/svg/star_rating.svg';\nexport { default as heartRating } from '../assets/svg/heart_rating.svg';\n\n// Shape Settings //\n\nexport { default as rectangleIcon } from '../assets/svg/settings/rectangle.svg';\nexport { default as ellipseIcon } from '../assets/svg/settings/ellipse.svg';\nexport { default as triangleIcon } from '../assets/svg/settings/triangle.svg';\nexport { default as starIcon } from '../assets/svg/settings/star.svg';\nexport { default as lineIcon } from '../assets/svg/settings/line.svg';\n\n// Element Menu //\n\nexport { default as duplicate } from '../assets/svg/duplicate.svg';\nexport { default as settings } from '../assets/svg/settings.svg';\n\n// Page Menu //\n\nexport { default as arrowDown } from '../assets/svg/arrow_down.svg';\nexport { default as arrowUp } from '../assets/svg/arrow_up.svg';\nexport { default as arrowLeft } from '../assets/svg/arrow_left.svg';\nexport { default as arrowRight } from '../assets/svg/arrow_right.svg';\nexport { default as angleDown } from '../assets/svg/angle_down.svg';\nexport { default as angleUp } from '../assets/svg/angle_up.svg';\nexport { default as angleLeft } from '../assets/svg/angle_left.svg';\nexport { default as angleRight } from '../assets/svg/angle_right.svg';\nexport { default as duplicateLine } from '../assets/svg/page-actions/duplicate_line.svg';\nexport { default as plus } from '../assets/svg/plus.svg';\nexport { default as minus } from '../assets/svg/minus.svg';\nexport { default as trashLine } from '../assets/svg/page-actions/trash_line.svg';\nexport { default as pageSettings } from '../assets/svg/page_settings.svg';\n\n// Context Menu //\n\nexport { default as moveToFront } from '../assets/svg/contextmenu/moveToFront.svg';\nexport { default as moveToForward } from '../assets/svg/contextmenu/moveToForward.svg';\nexport { default as moveToBackward } from '../assets/svg/contextmenu/moveToBackward.svg';\nexport { default as moveToBack } from '../assets/svg/contextmenu/moveToBack.svg';\n\n// Presentation //\n\nexport { default as print } from '../assets/svg/presentation/print.svg';\nexport { default as download } from '../assets/svg/presentation/download.svg';\nexport { default as play } from '../assets/svg/presentation/play.svg';\nexport { default as enterFullscreen } from '../assets/svg/presentation/enter_fullscreen.svg';\nexport { default as exitFullscreen } from '../assets/svg/presentation/exit_fullscreen.svg';\nexport { default as pause } from '../assets/svg/presentation/pause.svg';\nexport { default as share } from '../assets/svg/presentation/share.svg';\nexport { default as attachment } from '../assets/svg/presentation/attachment.svg';\nexport { default as pen } from '../assets/svg/presentation/pen.svg';\n\n// Password Modal //\n\nexport { default as key } from '../assets/svg/presentation/key.svg';\nexport { default as eye } from '../assets/svg/presentation/eye.svg';\n\n// Placeholder //\n\nexport { default as piePlaceholder } from '../assets/svg/placeholder/pie.svg';\nexport { default as barPlaceholder } from '../assets/svg/placeholder/bar.svg';\nexport { default as linePlaceholder } from '../assets/svg/placeholder/bar.svg';\nexport { default as columnPlaceholder } from '../assets/svg/placeholder/column.svg';\nexport { default as basicPlaceholder } from '../assets/svg/placeholder/basic.svg';\nexport { default as donutPlaceholder } from '../assets/svg/placeholder/donut.svg';\nexport { default as textGridPlaceholder } from '../assets/svg/placeholder/grid.svg';\n\n// Placeholder //\n\n// Zoom //\n\nexport { default as fit } from '../assets/svg/fit_screen.svg';\n\n// Zoom //\n\n// Loading //\nexport { default as loadingCircle } from '../assets/svg/loading_circle.svg';\n\n// Error Boundary //\n\nexport { default as exclamationIcon } from '../assets/svg/exclamation.svg';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jotforminc/dnd-builder",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.6.2",
|
|
4
4
|
"files": [
|
|
5
5
|
"lib",
|
|
6
6
|
"index.d.ts"
|
|
@@ -13,10 +13,12 @@
|
|
|
13
13
|
"@dnd-kit/core": "^6.1.0",
|
|
14
14
|
"@dnd-kit/sortable": "^8.0.0",
|
|
15
15
|
"@dnd-kit/utilities": "^3.2.2",
|
|
16
|
+
"@floating-ui/react": "^0.27.19",
|
|
16
17
|
"@use-gesture/react": "10.2.24",
|
|
17
18
|
"classnames": "2.2.6",
|
|
18
19
|
"core-js": "3.9.0",
|
|
19
20
|
"dompurify": "3.2.3",
|
|
21
|
+
"framer-motion": "^11.11.17",
|
|
20
22
|
"lodash.isequal": "4.5.0",
|
|
21
23
|
"memoize-one": "5.1.1",
|
|
22
24
|
"nanoid": "3.1.31",
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var React = require('react');
|
|
4
|
-
|
|
5
|
-
var _path;
|
|
6
|
-
|
|
7
|
-
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
8
|
-
|
|
9
|
-
function SvgAllSlides(props) {
|
|
10
|
-
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
11
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
12
|
-
fill: "currentColor",
|
|
13
|
-
viewBox: "0 0 24 24"
|
|
14
|
-
}, props), _path || (_path = /*#__PURE__*/React.createElement("path", {
|
|
15
|
-
fill: "#fff",
|
|
16
|
-
fillRule: "evenodd",
|
|
17
|
-
d: "M17.467 2.293a1 1 0 00-1.414 0L11.81 6.536a1 1 0 000 1.414l4.243 4.242a1 1 0 001.414 0L21.71 7.95a1 1 0 000-1.414l-4.243-4.243zM3 4a1 1 0 00-1 1v6a1 1 0 001 1h6a1 1 0 001-1V5a1 1 0 00-1-1H3zm0 10a1 1 0 00-1 1v6a1 1 0 001 1h6a1 1 0 001-1v-6a1 1 0 00-1-1H3zm9 1a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1h-6a1 1 0 01-1-1v-6z",
|
|
18
|
-
clipRule: "evenodd"
|
|
19
|
-
})));
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
module.exports = SvgAllSlides;
|
|
23
|
-
//# sourceMappingURL=all_slides.svg.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"all_slides.svg.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;"}
|