@jotforminc/dnd-builder 3.6.4 → 3.6.5

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 CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
4
4
 
5
+ ## [3.6.5](https://github.com/jotform/dnd-builder/compare/v3.6.4...v3.6.5) (2026-04-14)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * **dnd-builder:** remove text object memoization ([f87c108](https://github.com/jotform/dnd-builder/commit/f87c108991b78c60164e20e88bf30b8ec3dade22))
11
+
5
12
  ## [3.6.4](https://github.com/jotform/dnd-builder/compare/v3.6.3...v3.6.4) (2026-04-13)
6
13
 
7
14
 
@@ -202,9 +202,7 @@ var useFullscreenChange = function useFullscreenChange(isFullscreen, fitToScreen
202
202
  useEventListener('MSFullscreenChange', onFullscreenChange);
203
203
  };
204
204
  var useTranslatedTexts = function useTranslatedTexts() {
205
- return React.useMemo(function () {
206
- return texts.SharingTextsModule.Texts;
207
- }, []);
205
+ return texts.SharingTextsModule.Texts;
208
206
  };
209
207
  var useClickOutsideListener = function useClickOutsideListener(classes, conditionValue, onClose) {
210
208
  var onClickOutsideForPanel = React.useCallback(function (_ref) {
@@ -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\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 useResizeListener = (condition = true) => {\n const [innerWidth, setInnerWidth] = useState(() => (\n typeof window !== 'undefined' ? window.innerWidth : 0\n ));\n\n const handleResize = useCallback(() => {\n if (typeof window !== 'undefined') {\n setInnerWidth(window.innerWidth);\n }\n }, []);\n\n useEffect(() => {\n if (condition && typeof window !== 'undefined') {\n setInnerWidth(window.innerWidth);\n }\n }, [condition]);\n\n const target = condition && typeof window !== 'undefined' ? window : null;\n useEventListener('resize', handleResize, target);\n\n return innerWidth;\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","useResizeListener","condition","useState","window","innerWidth","setInnerWidth","handleResize","useCallback","target","usePrevious","value","ref","usePropState","propValue","transform","v","state","setState","useFitZoom","settings","usePropStore","setZoom","useBuilderStore","fitZoom","getZoomValue","limitZoom","reportLayoutHeight","reportLayoutWidth","newZoom","Math","min","usePageVisibility","callback","pageCount","selectedPageIndex","ratio","prevVisiblePageIndex","pageRefs","observer","useMemo","IntersectionObserver","entries","forEach","entry","order","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","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 useResizeListener = (condition = true) => {\n const [innerWidth, setInnerWidth] = useState(() => (\n typeof window !== 'undefined' ? window.innerWidth : 0\n ));\n\n const handleResize = useCallback(() => {\n if (typeof window !== 'undefined') {\n setInnerWidth(window.innerWidth);\n }\n }, []);\n\n useEffect(() => {\n if (condition && typeof window !== 'undefined') {\n setInnerWidth(window.innerWidth);\n }\n }, [condition]);\n\n const target = condition && typeof window !== 'undefined' ? window : null;\n useEventListener('resize', handleResize, target);\n\n return innerWidth;\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 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","useResizeListener","condition","useState","window","innerWidth","setInnerWidth","handleResize","useCallback","target","usePrevious","value","ref","usePropState","propValue","transform","v","state","setState","useFitZoom","settings","usePropStore","setZoom","useBuilderStore","fitZoom","getZoomValue","limitZoom","reportLayoutHeight","reportLayoutWidth","newZoom","Math","min","usePageVisibility","callback","pageCount","selectedPageIndex","ratio","prevVisiblePageIndex","pageRefs","observer","useMemo","IntersectionObserver","entries","forEach","entry","order","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","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,4 +1,4 @@
1
- import { useTranslatedTexts, useSelectedElements } from '../../utils/hooks.js';
1
+ import { useSelectedElements, useTranslatedTexts } from '../../utils/hooks.js';
2
2
  import { usePropStore } from '../../contexts/PropContext.js';
3
3
  import { useBuilderStore } from '../../contexts/BuilderContext.js';
4
4
  import generateId from '../../utils/generateId.js';
@@ -5,7 +5,7 @@ import 'core-js/modules/es.object.to-string.js';
5
5
  import 'core-js/modules/es.object.values.js';
6
6
  import 'core-js/modules/es.regexp.to-string.js';
7
7
  import 'core-js/modules/web.dom-collections.for-each.js';
8
- import { useMemo, useState, useEffect, useRef, useCallback } from 'react';
8
+ import { useState, useEffect, useMemo, useRef, useCallback } from 'react';
9
9
  import { getZoomValue } from './functions.js';
10
10
  import { SharingTextsModule } from '../constants/texts.js';
11
11
  import { usePropStore } from '../contexts/PropContext.js';
@@ -198,9 +198,7 @@ var useFullscreenChange = function useFullscreenChange(isFullscreen, fitToScreen
198
198
  useEventListener('MSFullscreenChange', onFullscreenChange);
199
199
  };
200
200
  var useTranslatedTexts = function useTranslatedTexts() {
201
- return useMemo(function () {
202
- return SharingTextsModule.Texts;
203
- }, []);
201
+ return SharingTextsModule.Texts;
204
202
  };
205
203
  var useClickOutsideListener = function useClickOutsideListener(classes, conditionValue, onClose) {
206
204
  var onClickOutsideForPanel = useCallback(function (_ref) {
@@ -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\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 useResizeListener = (condition = true) => {\n const [innerWidth, setInnerWidth] = useState(() => (\n typeof window !== 'undefined' ? window.innerWidth : 0\n ));\n\n const handleResize = useCallback(() => {\n if (typeof window !== 'undefined') {\n setInnerWidth(window.innerWidth);\n }\n }, []);\n\n useEffect(() => {\n if (condition && typeof window !== 'undefined') {\n setInnerWidth(window.innerWidth);\n }\n }, [condition]);\n\n const target = condition && typeof window !== 'undefined' ? window : null;\n useEventListener('resize', handleResize, target);\n\n return innerWidth;\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","useResizeListener","condition","useState","window","innerWidth","setInnerWidth","handleResize","useCallback","target","usePrevious","value","ref","usePropState","propValue","transform","v","state","setState","useFitZoom","settings","usePropStore","setZoom","useBuilderStore","fitZoom","getZoomValue","limitZoom","reportLayoutHeight","reportLayoutWidth","newZoom","Math","min","usePageVisibility","callback","pageCount","selectedPageIndex","ratio","prevVisiblePageIndex","pageRefs","observer","useMemo","IntersectionObserver","entries","forEach","entry","order","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","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 useResizeListener = (condition = true) => {\n const [innerWidth, setInnerWidth] = useState(() => (\n typeof window !== 'undefined' ? window.innerWidth : 0\n ));\n\n const handleResize = useCallback(() => {\n if (typeof window !== 'undefined') {\n setInnerWidth(window.innerWidth);\n }\n }, []);\n\n useEffect(() => {\n if (condition && typeof window !== 'undefined') {\n setInnerWidth(window.innerWidth);\n }\n }, [condition]);\n\n const target = condition && typeof window !== 'undefined' ? window : null;\n useEventListener('resize', handleResize, target);\n\n return innerWidth;\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 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","useResizeListener","condition","useState","window","innerWidth","setInnerWidth","handleResize","useCallback","target","usePrevious","value","ref","usePropState","propValue","transform","v","state","setState","useFitZoom","settings","usePropStore","setZoom","useBuilderStore","fitZoom","getZoomValue","limitZoom","reportLayoutHeight","reportLayoutWidth","newZoom","Math","min","usePageVisibility","callback","pageCount","selectedPageIndex","ratio","prevVisiblePageIndex","pageRefs","observer","useMemo","IntersectionObserver","entries","forEach","entry","order","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","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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jotforminc/dnd-builder",
3
- "version": "3.6.4",
3
+ "version": "3.6.5",
4
4
  "files": [
5
5
  "lib",
6
6
  "index.d.ts"