@jotforminc/dnd-builder 3.2.1 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/lib/cjs/components/Builder/Builder.js +6 -0
  3. package/lib/cjs/components/Builder/Builder.js.map +1 -1
  4. package/lib/cjs/components/Builder/BuilderWrapper.js +12 -0
  5. package/lib/cjs/components/Builder/BuilderWrapper.js.map +1 -1
  6. package/lib/cjs/components/Panels/LeftPanel/LeftPanelCloser.js +1 -4
  7. package/lib/cjs/components/Panels/LeftPanel/LeftPanelCloser.js.map +1 -1
  8. package/lib/cjs/components/Panels/RightPanel/RightPanel.js +1 -3
  9. package/lib/cjs/components/Panels/RightPanel/RightPanel.js.map +1 -1
  10. package/lib/cjs/components/Panels/SlidesPanel/ListWrapper.js +9 -7
  11. package/lib/cjs/components/Panels/SlidesPanel/ListWrapper.js.map +1 -1
  12. package/lib/cjs/contexts/PropContext.js +15 -20
  13. package/lib/cjs/contexts/PropContext.js.map +1 -1
  14. package/lib/cjs/utils/hooks.js +17 -3
  15. package/lib/cjs/utils/hooks.js.map +1 -1
  16. package/lib/esm/components/Builder/Builder.js +6 -0
  17. package/lib/esm/components/Builder/Builder.js.map +1 -1
  18. package/lib/esm/components/Builder/BuilderWrapper.js +12 -1
  19. package/lib/esm/components/Builder/BuilderWrapper.js.map +1 -1
  20. package/lib/esm/components/Panels/LeftPanel/Elements.js +2 -2
  21. package/lib/esm/components/Panels/LeftPanel/Elements.js.map +1 -1
  22. package/lib/esm/components/Panels/LeftPanel/LeftPanelCloser.js +1 -4
  23. package/lib/esm/components/Panels/LeftPanel/LeftPanelCloser.js.map +1 -1
  24. package/lib/esm/components/Panels/RightPanel/RightPanel.js +2 -4
  25. package/lib/esm/components/Panels/RightPanel/RightPanel.js.map +1 -1
  26. package/lib/esm/components/Panels/SlidesPanel/ListWrapper.js +10 -8
  27. package/lib/esm/components/Panels/SlidesPanel/ListWrapper.js.map +1 -1
  28. package/lib/esm/contexts/PropContext.js +14 -20
  29. package/lib/esm/contexts/PropContext.js.map +1 -1
  30. package/lib/esm/utils/hooks.js +17 -4
  31. package/lib/esm/utils/hooks.js.map +1 -1
  32. package/package.json +1 -1
@@ -79,12 +79,18 @@ Builder.propTypes = {
79
79
  /** Function called upon removing a page */
80
80
  onPageRemove: PropTypes.func,
81
81
 
82
+ /** Function called upon page visibility changed */
83
+ onPageVisibilityChanged: PropTypes.func,
84
+
82
85
  /** Function called when the slides or the right panel is
83
86
  * toggled takes a boolean value to indicate whether or
84
87
  * not the panel is toggled open.
85
88
  */
86
89
  onRightPanelsToggled: PropTypes.func,
87
90
 
91
+ /** Function called upon selecting items */
92
+ onSelectedItemsChanged: PropTypes.func,
93
+
88
94
  /** Function called upon editing a general report setting */
89
95
  onSettingChange: PropTypes.func,
90
96
 
@@ -1 +1 @@
1
- {"version":3,"file":"Builder.js","sources":["../../../../src/components/Builder/Builder.js"],"sourcesContent":["import PropTypes from 'prop-types';\nimport DndWrapper from './DndWrapper';\nimport Scene from './Scene';\nimport RightPanel from '../Panels/RightPanel';\nimport LeftPanel from '../Panels/LeftPanel';\nimport SlidesPanel from '../Panels/SlidesPanel';\nimport AllSlidesPanel from '../Panels/AllSlidesPanel';\nimport { leftPanelConfigPropType } from '../../constants/propTypes';\nimport '../../styles/jfReportsBundle.scss';\nimport BuilderWrapper from './BuilderWrapper';\nimport Providers from '../../contexts/Providers';\n\nconst Builder = props => {\n const { useExperimentalFeatures } = props;\n return (\n <Providers\n mode=\"customize\"\n {...props}\n >\n <BuilderWrapper>\n <DndWrapper>\n <LeftPanel />\n <Scene />\n </DndWrapper>\n <RightPanel />\n <SlidesPanel />\n {useExperimentalFeatures && (\n <AllSlidesPanel />\n )}\n </BuilderWrapper>\n </Providers>\n\n );\n};\n\nBuilder.propTypes = {\n /** Items for to render in the report */\n acceptedItems: PropTypes.shape({}),\n /** Array of React components to render statically on each page (eg. watermark) */\n additionalPageItems: PropTypes.arrayOf(PropTypes.node),\n disableInteraction: PropTypes.arrayOf(PropTypes.string),\n /** To pass in extra props to items selectively */\n itemAccessor: PropTypes.func,\n /** Last scroll position */\n lastScrollPosition: PropTypes.number,\n leftPanelConfig: leftPanelConfigPropType,\n /** To track and log user actions */\n onAnEventTrigger: PropTypes.func,\n /** Function called upon adding an item */\n onItemAdd: PropTypes.func,\n /** Function called upon editing an item */\n onItemChange: PropTypes.func,\n /** Function called upon moving an item */\n onItemMove: PropTypes.func,\n /** Function called upon removing an item */\n onItemRemove: PropTypes.func,\n /** Function called upon resizing an item */\n onItemResize: PropTypes.func,\n onItemsMove: PropTypes.func,\n /** Function called upon adding a page */\n onPageAdd: PropTypes.func,\n /** Function called upon editing a page */\n onPageChange: PropTypes.func,\n /** Function called upon duplicating a page */\n onPageDuplicate: PropTypes.func,\n /** Function called upon reordering pages */\n onPageOrdersChange: PropTypes.func,\n /** Function called upon removing a page */\n onPageRemove: PropTypes.func,\n /** Function called when the slides or the right panel is\n * toggled takes a boolean value to indicate whether or\n * not the panel is toggled open.\n */\n onRightPanelsToggled: PropTypes.func,\n /** Function called upon editing a general report setting */\n onSettingChange: PropTypes.func,\n /** Array of pages with their settings and items */\n pages: PropTypes.arrayOf(\n PropTypes.shape({}),\n ),\n /** General report settings such as layout size and background color */\n settings: PropTypes.shape({}),\n /** Theme */\n theme: PropTypes.oneOf(['lightMode', 'darkMode']),\n useExperimentalFeatures: PropTypes.bool,\n};\n\nexport default Builder;\n"],"names":["Builder","props","useExperimentalFeatures","_jsx","_jsxs","propTypes","acceptedItems","PropTypes","shape","additionalPageItems","arrayOf","node","disableInteraction","string","itemAccessor","func","lastScrollPosition","number","leftPanelConfig","leftPanelConfigPropType","onAnEventTrigger","onItemAdd","onItemChange","onItemMove","onItemRemove","onItemResize","onItemsMove","onPageAdd","onPageChange","onPageDuplicate","onPageOrdersChange","onPageRemove","onRightPanelsToggled","onSettingChange","pages","settings","theme","oneOf","bool"],"mappings":";;;;;;;;;;;;;;;;;;;IAYMA,OAAO,GAAG,SAAVA,OAAU,CAAAC,KAAK,EAAI;AACvB,MAAQC,uBAAR,GAAoCD,KAApC,CAAQC,uBAAR;AACA,sBACEC,IAAC,SAAD;AACE,IAAA,IAAI,EAAC;AADP,KAEMF,KAFN;AAAA,2BAIEG,KAAC,cAAD;AAAA,8BACEA,KAAC,UAAD;AAAA,gCACED,IAAC,SAAD,KADF,eAEEA,IAAC,KAAD,KAFF;AAAA,QADF,eAKEA,IAAC,UAAD,KALF,eAMEA,IAAC,WAAD,KANF,EAOGD,uBAAuB,iBACtBC,IAAC,cAAD,KARJ;AAAA;AAJF,KADF;AAmBD;;AAEDH,OAAO,CAACK,SAAR,GAAoB;AAClB;AACAC,EAAAA,aAAa,EAAEC,SAAS,CAACC,KAAV,CAAgB,EAAhB,CAFG;;AAGlB;AACAC,EAAAA,mBAAmB,EAAEF,SAAS,CAACG,OAAV,CAAkBH,SAAS,CAACI,IAA5B,CAJH;AAKlBC,EAAAA,kBAAkB,EAAEL,SAAS,CAACG,OAAV,CAAkBH,SAAS,CAACM,MAA5B,CALF;;AAMlB;AACAC,EAAAA,YAAY,EAAEP,SAAS,CAACQ,IAPN;;AAQlB;AACAC,EAAAA,kBAAkB,EAAET,SAAS,CAACU,MATZ;AAUlBC,EAAAA,eAAe,EAAEC,uBAVC;;AAWlB;AACAC,EAAAA,gBAAgB,EAAEb,SAAS,CAACQ,IAZV;;AAalB;AACAM,EAAAA,SAAS,EAAEd,SAAS,CAACQ,IAdH;;AAelB;AACAO,EAAAA,YAAY,EAAEf,SAAS,CAACQ,IAhBN;;AAiBlB;AACAQ,EAAAA,UAAU,EAAEhB,SAAS,CAACQ,IAlBJ;;AAmBlB;AACAS,EAAAA,YAAY,EAAEjB,SAAS,CAACQ,IApBN;;AAqBlB;AACAU,EAAAA,YAAY,EAAElB,SAAS,CAACQ,IAtBN;AAuBlBW,EAAAA,WAAW,EAAEnB,SAAS,CAACQ,IAvBL;;AAwBlB;AACAY,EAAAA,SAAS,EAAEpB,SAAS,CAACQ,IAzBH;;AA0BlB;AACAa,EAAAA,YAAY,EAAErB,SAAS,CAACQ,IA3BN;;AA4BlB;AACAc,EAAAA,eAAe,EAAEtB,SAAS,CAACQ,IA7BT;;AA8BlB;AACAe,EAAAA,kBAAkB,EAAEvB,SAAS,CAACQ,IA/BZ;;AAgClB;AACAgB,EAAAA,YAAY,EAAExB,SAAS,CAACQ,IAjCN;;AAkClB;AACF;AACA;AACA;AACEiB,EAAAA,oBAAoB,EAAEzB,SAAS,CAACQ,IAtCd;;AAuClB;AACAkB,EAAAA,eAAe,EAAE1B,SAAS,CAACQ,IAxCT;;AAyClB;AACAmB,EAAAA,KAAK,EAAE3B,SAAS,CAACG,OAAV,CACLH,SAAS,CAACC,KAAV,CAAgB,EAAhB,CADK,CA1CW;;AA6ClB;AACA2B,EAAAA,QAAQ,EAAE5B,SAAS,CAACC,KAAV,CAAgB,EAAhB,CA9CQ;;AA+ClB;AACA4B,EAAAA,KAAK,EAAE7B,SAAS,CAAC8B,KAAV,CAAgB,CAAC,WAAD,EAAc,UAAd,CAAhB,CAhDW;AAiDlBnC,EAAAA,uBAAuB,EAAEK,SAAS,CAAC+B;AAjDjB,CAApB;;;;"}
1
+ {"version":3,"file":"Builder.js","sources":["../../../../src/components/Builder/Builder.js"],"sourcesContent":["import PropTypes from 'prop-types';\nimport DndWrapper from './DndWrapper';\nimport Scene from './Scene';\nimport RightPanel from '../Panels/RightPanel';\nimport LeftPanel from '../Panels/LeftPanel';\nimport SlidesPanel from '../Panels/SlidesPanel';\nimport AllSlidesPanel from '../Panels/AllSlidesPanel';\nimport { leftPanelConfigPropType } from '../../constants/propTypes';\nimport '../../styles/jfReportsBundle.scss';\nimport BuilderWrapper from './BuilderWrapper';\nimport Providers from '../../contexts/Providers';\n\nconst Builder = props => {\n const { useExperimentalFeatures } = props;\n return (\n <Providers\n mode=\"customize\"\n {...props}\n >\n <BuilderWrapper>\n <DndWrapper>\n <LeftPanel />\n <Scene />\n </DndWrapper>\n <RightPanel />\n <SlidesPanel />\n {useExperimentalFeatures && (\n <AllSlidesPanel />\n )}\n </BuilderWrapper>\n </Providers>\n\n );\n};\n\nBuilder.propTypes = {\n /** Items for to render in the report */\n acceptedItems: PropTypes.shape({}),\n /** Array of React components to render statically on each page (eg. watermark) */\n additionalPageItems: PropTypes.arrayOf(PropTypes.node),\n disableInteraction: PropTypes.arrayOf(PropTypes.string),\n /** To pass in extra props to items selectively */\n itemAccessor: PropTypes.func,\n /** Last scroll position */\n lastScrollPosition: PropTypes.number,\n leftPanelConfig: leftPanelConfigPropType,\n /** To track and log user actions */\n onAnEventTrigger: PropTypes.func,\n /** Function called upon adding an item */\n onItemAdd: PropTypes.func,\n /** Function called upon editing an item */\n onItemChange: PropTypes.func,\n /** Function called upon moving an item */\n onItemMove: PropTypes.func,\n /** Function called upon removing an item */\n onItemRemove: PropTypes.func,\n /** Function called upon resizing an item */\n onItemResize: PropTypes.func,\n onItemsMove: PropTypes.func,\n /** Function called upon adding a page */\n onPageAdd: PropTypes.func,\n /** Function called upon editing a page */\n onPageChange: PropTypes.func,\n /** Function called upon duplicating a page */\n onPageDuplicate: PropTypes.func,\n /** Function called upon reordering pages */\n onPageOrdersChange: PropTypes.func,\n /** Function called upon removing a page */\n onPageRemove: PropTypes.func,\n /** Function called upon page visibility changed */\n onPageVisibilityChanged: PropTypes.func,\n /** Function called when the slides or the right panel is\n * toggled takes a boolean value to indicate whether or\n * not the panel is toggled open.\n */\n onRightPanelsToggled: PropTypes.func,\n /** Function called upon selecting items */\n onSelectedItemsChanged: PropTypes.func,\n /** Function called upon editing a general report setting */\n onSettingChange: PropTypes.func,\n /** Array of pages with their settings and items */\n pages: PropTypes.arrayOf(\n PropTypes.shape({}),\n ),\n /** General report settings such as layout size and background color */\n settings: PropTypes.shape({}),\n /** Theme */\n theme: PropTypes.oneOf(['lightMode', 'darkMode']),\n useExperimentalFeatures: PropTypes.bool,\n};\n\nexport default Builder;\n"],"names":["Builder","props","useExperimentalFeatures","_jsx","_jsxs","propTypes","acceptedItems","PropTypes","shape","additionalPageItems","arrayOf","node","disableInteraction","string","itemAccessor","func","lastScrollPosition","number","leftPanelConfig","leftPanelConfigPropType","onAnEventTrigger","onItemAdd","onItemChange","onItemMove","onItemRemove","onItemResize","onItemsMove","onPageAdd","onPageChange","onPageDuplicate","onPageOrdersChange","onPageRemove","onPageVisibilityChanged","onRightPanelsToggled","onSelectedItemsChanged","onSettingChange","pages","settings","theme","oneOf","bool"],"mappings":";;;;;;;;;;;;;;;;;;;IAYMA,OAAO,GAAG,SAAVA,OAAU,CAAAC,KAAK,EAAI;AACvB,MAAQC,uBAAR,GAAoCD,KAApC,CAAQC,uBAAR;AACA,sBACEC,IAAC,SAAD;AACE,IAAA,IAAI,EAAC;AADP,KAEMF,KAFN;AAAA,2BAIEG,KAAC,cAAD;AAAA,8BACEA,KAAC,UAAD;AAAA,gCACED,IAAC,SAAD,KADF,eAEEA,IAAC,KAAD,KAFF;AAAA,QADF,eAKEA,IAAC,UAAD,KALF,eAMEA,IAAC,WAAD,KANF,EAOGD,uBAAuB,iBACtBC,IAAC,cAAD,KARJ;AAAA;AAJF,KADF;AAmBD;;AAEDH,OAAO,CAACK,SAAR,GAAoB;AAClB;AACAC,EAAAA,aAAa,EAAEC,SAAS,CAACC,KAAV,CAAgB,EAAhB,CAFG;;AAGlB;AACAC,EAAAA,mBAAmB,EAAEF,SAAS,CAACG,OAAV,CAAkBH,SAAS,CAACI,IAA5B,CAJH;AAKlBC,EAAAA,kBAAkB,EAAEL,SAAS,CAACG,OAAV,CAAkBH,SAAS,CAACM,MAA5B,CALF;;AAMlB;AACAC,EAAAA,YAAY,EAAEP,SAAS,CAACQ,IAPN;;AAQlB;AACAC,EAAAA,kBAAkB,EAAET,SAAS,CAACU,MATZ;AAUlBC,EAAAA,eAAe,EAAEC,uBAVC;;AAWlB;AACAC,EAAAA,gBAAgB,EAAEb,SAAS,CAACQ,IAZV;;AAalB;AACAM,EAAAA,SAAS,EAAEd,SAAS,CAACQ,IAdH;;AAelB;AACAO,EAAAA,YAAY,EAAEf,SAAS,CAACQ,IAhBN;;AAiBlB;AACAQ,EAAAA,UAAU,EAAEhB,SAAS,CAACQ,IAlBJ;;AAmBlB;AACAS,EAAAA,YAAY,EAAEjB,SAAS,CAACQ,IApBN;;AAqBlB;AACAU,EAAAA,YAAY,EAAElB,SAAS,CAACQ,IAtBN;AAuBlBW,EAAAA,WAAW,EAAEnB,SAAS,CAACQ,IAvBL;;AAwBlB;AACAY,EAAAA,SAAS,EAAEpB,SAAS,CAACQ,IAzBH;;AA0BlB;AACAa,EAAAA,YAAY,EAAErB,SAAS,CAACQ,IA3BN;;AA4BlB;AACAc,EAAAA,eAAe,EAAEtB,SAAS,CAACQ,IA7BT;;AA8BlB;AACAe,EAAAA,kBAAkB,EAAEvB,SAAS,CAACQ,IA/BZ;;AAgClB;AACAgB,EAAAA,YAAY,EAAExB,SAAS,CAACQ,IAjCN;;AAkClB;AACAiB,EAAAA,uBAAuB,EAAEzB,SAAS,CAACQ,IAnCjB;;AAoClB;AACF;AACA;AACA;AACEkB,EAAAA,oBAAoB,EAAE1B,SAAS,CAACQ,IAxCd;;AAyClB;AACAmB,EAAAA,sBAAsB,EAAE3B,SAAS,CAACQ,IA1ChB;;AA2ClB;AACAoB,EAAAA,eAAe,EAAE5B,SAAS,CAACQ,IA5CT;;AA6ClB;AACAqB,EAAAA,KAAK,EAAE7B,SAAS,CAACG,OAAV,CACLH,SAAS,CAACC,KAAV,CAAgB,EAAhB,CADK,CA9CW;;AAiDlB;AACA6B,EAAAA,QAAQ,EAAE9B,SAAS,CAACC,KAAV,CAAgB,EAAhB,CAlDQ;;AAmDlB;AACA8B,EAAAA,KAAK,EAAE/B,SAAS,CAACgC,KAAV,CAAgB,CAAC,WAAD,EAAc,UAAd,CAAhB,CApDW;AAqDlBrC,EAAAA,uBAAuB,EAAEK,SAAS,CAACiC;AArDjB,CAApB;;;;"}
@@ -1,9 +1,10 @@
1
1
  import { useRef, useEffect } from 'react';
2
2
  import PropTypes from 'prop-types';
3
+ import isEqual from 'lodash.isequal';
3
4
  import ReportWrapper from '../ReportWrapper.js';
4
5
  import { usePropStore } from '../../contexts/PropContext.js';
5
6
  import { useBuilderStore } from '../../contexts/BuilderContext.js';
6
- import { useFitZoom } from '../../utils/hooks.js';
7
+ import { useSelectedElements, usePrevious, useFitZoom } from '../../utils/hooks.js';
7
8
  import { jsx } from 'react/jsx-runtime';
8
9
 
9
10
  var BuilderWrapper = function BuilderWrapper(_ref) {
@@ -24,6 +25,16 @@ var BuilderWrapper = function BuilderWrapper(_ref) {
24
25
  var setIsSlidesPanelOpen = useBuilderStore(function (state) {
25
26
  return state.setIsSlidesPanelOpen;
26
27
  });
28
+ var onSelectedItemsChanged = usePropStore(function (state) {
29
+ return state.onSelectedItemsChanged;
30
+ });
31
+ var selectedItems = useSelectedElements();
32
+ var prevSelectedItems = usePrevious(selectedItems);
33
+ useEffect(function () {
34
+ if (prevSelectedItems && !isEqual(prevSelectedItems, selectedItems)) {
35
+ onSelectedItemsChanged(selectedItems);
36
+ }
37
+ }, [selectedItems, onSelectedItemsChanged, prevSelectedItems]);
27
38
  useFitZoom();
28
39
  useEffect(function () {
29
40
  if (!decidedWhichPanelToOpen.current) {
@@ -1 +1 @@
1
- {"version":3,"file":"BuilderWrapper.js","sources":["../../../../src/components/Builder/BuilderWrapper.js"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport ReportWrapper from '../ReportWrapper';\nimport { usePropStore } from '../../contexts/PropContext';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport { useFitZoom } from '../../utils/hooks';\n\nconst BuilderWrapper = ({ children }) => {\n const decidedWhichPanelToOpen = useRef(false);\n\n const pageCount = usePropStore(state => state.pages.length);\n const isLeftPanelOpen = useBuilderStore(state => state.isLeftPanelOpen);\n const isSlidesPanelOpen = useBuilderStore(state => state.isSlidesPanelOpen);\n const setIsLeftPanelOpen = useBuilderStore(state => state.setIsLeftPanelOpen);\n const setIsSlidesPanelOpen = useBuilderStore(state => state.setIsSlidesPanelOpen);\n\n useFitZoom();\n\n useEffect(() => {\n if (!decidedWhichPanelToOpen.current) {\n if (pageCount > 1) {\n if (isLeftPanelOpen) {\n setIsLeftPanelOpen(false);\n }\n setIsSlidesPanelOpen(true);\n } else {\n if (isSlidesPanelOpen) {\n setIsSlidesPanelOpen(false);\n }\n setIsLeftPanelOpen(true);\n }\n\n decidedWhichPanelToOpen.current = true;\n }\n }, [\n pageCount,\n isLeftPanelOpen,\n isSlidesPanelOpen,\n setIsLeftPanelOpen,\n setIsSlidesPanelOpen,\n ]);\n\n return (\n <ReportWrapper mode=\"customize\">\n {children}\n </ReportWrapper>\n );\n};\n\nBuilderWrapper.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default BuilderWrapper;\n"],"names":["BuilderWrapper","children","decidedWhichPanelToOpen","useRef","pageCount","usePropStore","state","pages","length","isLeftPanelOpen","useBuilderStore","isSlidesPanelOpen","setIsLeftPanelOpen","setIsSlidesPanelOpen","useFitZoom","useEffect","current","_jsx","propTypes","PropTypes","node","isRequired"],"mappings":";;;;;;;;IAOMA,cAAc,GAAG,SAAjBA,cAAiB,OAAkB;AAAA,MAAfC,QAAe,QAAfA,QAAe;AACvC,MAAMC,uBAAuB,GAAGC,MAAM,CAAC,KAAD,CAAtC;AAEA,MAAMC,SAAS,GAAGC,YAAY,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACC,KAAN,CAAYC,MAAhB;AAAA,GAAN,CAA9B;AACA,MAAMC,eAAe,GAAGC,eAAe,CAAC,UAAAJ,KAAK;AAAA,WAAIA,KAAK,CAACG,eAAV;AAAA,GAAN,CAAvC;AACA,MAAME,iBAAiB,GAAGD,eAAe,CAAC,UAAAJ,KAAK;AAAA,WAAIA,KAAK,CAACK,iBAAV;AAAA,GAAN,CAAzC;AACA,MAAMC,kBAAkB,GAAGF,eAAe,CAAC,UAAAJ,KAAK;AAAA,WAAIA,KAAK,CAACM,kBAAV;AAAA,GAAN,CAA1C;AACA,MAAMC,oBAAoB,GAAGH,eAAe,CAAC,UAAAJ,KAAK;AAAA,WAAIA,KAAK,CAACO,oBAAV;AAAA,GAAN,CAA5C;AAEAC,EAAAA,UAAU;AAEVC,EAAAA,SAAS,CAAC,YAAM;AACd,QAAI,CAACb,uBAAuB,CAACc,OAA7B,EAAsC;AACpC,UAAIZ,SAAS,GAAG,CAAhB,EAAmB;AACjB,YAAIK,eAAJ,EAAqB;AACnBG,UAAAA,kBAAkB,CAAC,KAAD,CAAlB;AACD;;AACDC,QAAAA,oBAAoB,CAAC,IAAD,CAApB;AACD,OALD,MAKO;AACL,YAAIF,iBAAJ,EAAuB;AACrBE,UAAAA,oBAAoB,CAAC,KAAD,CAApB;AACD;;AACDD,QAAAA,kBAAkB,CAAC,IAAD,CAAlB;AACD;;AAEDV,MAAAA,uBAAuB,CAACc,OAAxB,GAAkC,IAAlC;AACD;AACF,GAhBQ,EAgBN,CACDZ,SADC,EAEDK,eAFC,EAGDE,iBAHC,EAIDC,kBAJC,EAKDC,oBALC,CAhBM,CAAT;AAwBA,sBACEI,IAAC,aAAD;AAAe,IAAA,IAAI,EAAC,WAApB;AAAA,cACGhB;AADH,IADF;AAKD;;AAEDD,cAAc,CAACkB,SAAf,GAA2B;AACzBjB,EAAAA,QAAQ,EAAEkB,SAAS,CAACC,IAAV,CAAeC;AADA,CAA3B;;;;"}
1
+ {"version":3,"file":"BuilderWrapper.js","sources":["../../../../src/components/Builder/BuilderWrapper.js"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport isEqual from 'lodash.isequal';\nimport ReportWrapper from '../ReportWrapper';\nimport { usePropStore } from '../../contexts/PropContext';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport { useFitZoom, usePrevious, useSelectedElements } from '../../utils/hooks';\n\nconst BuilderWrapper = ({ children }) => {\n const decidedWhichPanelToOpen = useRef(false);\n\n const pageCount = usePropStore(state => state.pages.length);\n const isLeftPanelOpen = useBuilderStore(state => state.isLeftPanelOpen);\n const isSlidesPanelOpen = useBuilderStore(state => state.isSlidesPanelOpen);\n const setIsLeftPanelOpen = useBuilderStore(state => state.setIsLeftPanelOpen);\n const setIsSlidesPanelOpen = useBuilderStore(state => state.setIsSlidesPanelOpen);\n const onSelectedItemsChanged = usePropStore(state => state.onSelectedItemsChanged);\n const selectedItems = useSelectedElements();\n const prevSelectedItems = usePrevious(selectedItems);\n\n useEffect(() => {\n if (prevSelectedItems && !isEqual(prevSelectedItems, selectedItems)) {\n onSelectedItemsChanged(selectedItems);\n }\n }, [\n selectedItems,\n onSelectedItemsChanged,\n prevSelectedItems,\n ]);\n\n useFitZoom();\n\n useEffect(() => {\n if (!decidedWhichPanelToOpen.current) {\n if (pageCount > 1) {\n if (isLeftPanelOpen) {\n setIsLeftPanelOpen(false);\n }\n setIsSlidesPanelOpen(true);\n } else {\n if (isSlidesPanelOpen) {\n setIsSlidesPanelOpen(false);\n }\n setIsLeftPanelOpen(true);\n }\n\n decidedWhichPanelToOpen.current = true;\n }\n }, [\n pageCount,\n isLeftPanelOpen,\n isSlidesPanelOpen,\n setIsLeftPanelOpen,\n setIsSlidesPanelOpen,\n ]);\n\n return (\n <ReportWrapper mode=\"customize\">\n {children}\n </ReportWrapper>\n );\n};\n\nBuilderWrapper.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default BuilderWrapper;\n"],"names":["BuilderWrapper","children","decidedWhichPanelToOpen","useRef","pageCount","usePropStore","state","pages","length","isLeftPanelOpen","useBuilderStore","isSlidesPanelOpen","setIsLeftPanelOpen","setIsSlidesPanelOpen","onSelectedItemsChanged","selectedItems","useSelectedElements","prevSelectedItems","usePrevious","useEffect","isEqual","useFitZoom","current","_jsx","propTypes","PropTypes","node","isRequired"],"mappings":";;;;;;;;;IAQMA,cAAc,GAAG,SAAjBA,cAAiB,OAAkB;AAAA,MAAfC,QAAe,QAAfA,QAAe;AACvC,MAAMC,uBAAuB,GAAGC,MAAM,CAAC,KAAD,CAAtC;AAEA,MAAMC,SAAS,GAAGC,YAAY,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACC,KAAN,CAAYC,MAAhB;AAAA,GAAN,CAA9B;AACA,MAAMC,eAAe,GAAGC,eAAe,CAAC,UAAAJ,KAAK;AAAA,WAAIA,KAAK,CAACG,eAAV;AAAA,GAAN,CAAvC;AACA,MAAME,iBAAiB,GAAGD,eAAe,CAAC,UAAAJ,KAAK;AAAA,WAAIA,KAAK,CAACK,iBAAV;AAAA,GAAN,CAAzC;AACA,MAAMC,kBAAkB,GAAGF,eAAe,CAAC,UAAAJ,KAAK;AAAA,WAAIA,KAAK,CAACM,kBAAV;AAAA,GAAN,CAA1C;AACA,MAAMC,oBAAoB,GAAGH,eAAe,CAAC,UAAAJ,KAAK;AAAA,WAAIA,KAAK,CAACO,oBAAV;AAAA,GAAN,CAA5C;AACA,MAAMC,sBAAsB,GAAGT,YAAY,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACQ,sBAAV;AAAA,GAAN,CAA3C;AACA,MAAMC,aAAa,GAAGC,mBAAmB,EAAzC;AACA,MAAMC,iBAAiB,GAAGC,WAAW,CAACH,aAAD,CAArC;AAEAI,EAAAA,SAAS,CAAC,YAAM;AACd,QAAIF,iBAAiB,IAAI,CAACG,OAAO,CAACH,iBAAD,EAAoBF,aAApB,CAAjC,EAAqE;AACnED,MAAAA,sBAAsB,CAACC,aAAD,CAAtB;AACD;AACF,GAJQ,EAIN,CACDA,aADC,EAEDD,sBAFC,EAGDG,iBAHC,CAJM,CAAT;AAUAI,EAAAA,UAAU;AAEVF,EAAAA,SAAS,CAAC,YAAM;AACd,QAAI,CAACjB,uBAAuB,CAACoB,OAA7B,EAAsC;AACpC,UAAIlB,SAAS,GAAG,CAAhB,EAAmB;AACjB,YAAIK,eAAJ,EAAqB;AACnBG,UAAAA,kBAAkB,CAAC,KAAD,CAAlB;AACD;;AACDC,QAAAA,oBAAoB,CAAC,IAAD,CAApB;AACD,OALD,MAKO;AACL,YAAIF,iBAAJ,EAAuB;AACrBE,UAAAA,oBAAoB,CAAC,KAAD,CAApB;AACD;;AACDD,QAAAA,kBAAkB,CAAC,IAAD,CAAlB;AACD;;AAEDV,MAAAA,uBAAuB,CAACoB,OAAxB,GAAkC,IAAlC;AACD;AACF,GAhBQ,EAgBN,CACDlB,SADC,EAEDK,eAFC,EAGDE,iBAHC,EAIDC,kBAJC,EAKDC,oBALC,CAhBM,CAAT;AAwBA,sBACEU,IAAC,aAAD;AAAe,IAAA,IAAI,EAAC,WAApB;AAAA,cACGtB;AADH,IADF;AAKD;;AAEDD,cAAc,CAACwB,SAAf,GAA2B;AACzBvB,EAAAA,QAAQ,EAAEwB,SAAS,CAACC,IAAV,CAAeC;AADA,CAA3B;;;;"}
@@ -10,7 +10,7 @@ import PropTypes from 'prop-types';
10
10
  import Section from '../../Builder/Section.js';
11
11
  import Element from '../../Builder/Element.js';
12
12
  import { leftPanelConfigPropType } from '../../../constants/propTypes.js';
13
- import LeftPanelCloser from './LeftPanelCloser.js';
13
+ import LeftPanelToggler from './LeftPanelCloser.js';
14
14
  import { useBuilderStore } from '../../../contexts/BuilderContext.js';
15
15
  import Tabs from '../../Builder/Tabs.js';
16
16
  import { getTabsWithElements } from '../../../utils/functions.js';
@@ -88,7 +88,7 @@ var Elements = function Elements() {
88
88
  }, [elementWillBeUsed]);
89
89
  return /*#__PURE__*/jsxs("div", {
90
90
  className: "toolItemWrapper f-height d-flex dir-col o-auto p-relative",
91
- children: [/*#__PURE__*/jsx(LeftPanelCloser, {}), /*#__PURE__*/jsxs(Section, {
91
+ children: [/*#__PURE__*/jsx(LeftPanelToggler, {}), /*#__PURE__*/jsxs(Section, {
92
92
  title: ADD_ELEMENT,
93
93
  children: [/*#__PURE__*/jsx(Tabs, {
94
94
  panel: "left",
@@ -1 +1 @@
1
- {"version":3,"file":"Elements.js","sources":["../../../../../src/components/Panels/LeftPanel/Elements.js"],"sourcesContent":["import {\n memo,\n useState,\n useMemo,\n useCallback,\n useEffect,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport Section from '../../Builder/Section';\nimport Element from '../../Builder/Element';\nimport { leftPanelConfigPropType } from '../../../constants/propTypes';\nimport LeftPanelCloser from './LeftPanelCloser';\nimport { useBuilderStore } from '../../../contexts/BuilderContext';\nimport Tabs from '../../Builder/Tabs';\nimport { getTabsWithElements } from '../../../utils/functions';\nimport { useTranslatedTexts } from '../../../utils/hooks';\nimport SearchInput from '../../Builder/SearchInput';\nimport { usePropStore } from '../../../contexts/PropContext';\n\nconst Elements = () => {\n const leftPanelConfig = usePropStore(state => state.leftPanelConfig);\n const activeTab = useBuilderStore(state => state.activeTab);\n const { ADD_ELEMENT, NO_RESULT } = useTranslatedTexts();\n\n // Tabs\n const tabDetails = getTabsWithElements(leftPanelConfig);\n const tabs = useMemo(() => {\n return Object.keys(tabDetails);\n }, [tabDetails]);\n\n const {\n elements = {},\n hasSearch = false,\n } = useMemo(() => {\n return tabDetails[tabs[activeTab.left]] || {};\n }, [activeTab.left, tabDetails, tabs]);\n\n const elementWillBeUsed = useMemo(() => {\n return Array.isArray(elements) ? elements : [];\n }, [elements]);\n\n const [searchElements, setSearchElements] = useState(elementWillBeUsed);\n\n useEffect(() => {\n setSearchElements(elementWillBeUsed);\n }, [elementWillBeUsed]);\n\n const filterElementsBySearch = useCallback(value => {\n if (value === '') {\n setSearchElements(elementWillBeUsed);\n return;\n }\n const filteredElements = elementWillBeUsed?.filter(element => element.title.toLowerCase().includes(value.toLowerCase()));\n setSearchElements(filteredElements);\n }, [elementWillBeUsed]);\n\n return (\n <div className=\"toolItemWrapper f-height d-flex dir-col o-auto p-relative\">\n <LeftPanelCloser />\n <Section\n title={ADD_ELEMENT}\n >\n <Tabs\n panel=\"left\"\n tabs={tabs}\n />\n {hasSearch && (\n <SearchInput onSearch={filterElementsBySearch} />\n )}\n <div className=\"toolItem-tabContent\">\n {searchElements.length > 0 ? searchElements.map((element, index) => (\n <Element\n key={index.toString()}\n {...element}\n />\n )) : (\n <div className=\"no-search-result-text\">{NO_RESULT}</div>\n )}\n </div>\n </Section>\n </div>\n );\n};\n\nElements.propTypes = {\n acceptedItems: PropTypes.shape({}),\n leftPanelConfig: leftPanelConfigPropType,\n onAnEventTrigger: PropTypes.func,\n onItemAdd: PropTypes.func,\n};\n\nexport default memo(Elements);\n"],"names":["Elements","leftPanelConfig","usePropStore","state","activeTab","useBuilderStore","useTranslatedTexts","ADD_ELEMENT","NO_RESULT","tabDetails","getTabsWithElements","tabs","useMemo","Object","keys","left","elements","hasSearch","elementWillBeUsed","Array","isArray","useState","searchElements","setSearchElements","useEffect","filterElementsBySearch","useCallback","value","filteredElements","filter","element","title","toLowerCase","includes","_jsxs","_jsx","length","map","index","toString","propTypes","acceptedItems","PropTypes","shape","leftPanelConfigPropType","onAnEventTrigger","func","onItemAdd","memo"],"mappings":"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"}
1
+ {"version":3,"file":"Elements.js","sources":["../../../../../src/components/Panels/LeftPanel/Elements.js"],"sourcesContent":["import {\n memo,\n useState,\n useMemo,\n useCallback,\n useEffect,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport Section from '../../Builder/Section';\nimport Element from '../../Builder/Element';\nimport { leftPanelConfigPropType } from '../../../constants/propTypes';\nimport LeftPanelCloser from './LeftPanelCloser';\nimport { useBuilderStore } from '../../../contexts/BuilderContext';\nimport Tabs from '../../Builder/Tabs';\nimport { getTabsWithElements } from '../../../utils/functions';\nimport { useTranslatedTexts } from '../../../utils/hooks';\nimport SearchInput from '../../Builder/SearchInput';\nimport { usePropStore } from '../../../contexts/PropContext';\n\nconst Elements = () => {\n const leftPanelConfig = usePropStore(state => state.leftPanelConfig);\n const activeTab = useBuilderStore(state => state.activeTab);\n const { ADD_ELEMENT, NO_RESULT } = useTranslatedTexts();\n\n // Tabs\n const tabDetails = getTabsWithElements(leftPanelConfig);\n const tabs = useMemo(() => {\n return Object.keys(tabDetails);\n }, [tabDetails]);\n\n const {\n elements = {},\n hasSearch = false,\n } = useMemo(() => {\n return tabDetails[tabs[activeTab.left]] || {};\n }, [activeTab.left, tabDetails, tabs]);\n\n const elementWillBeUsed = useMemo(() => {\n return Array.isArray(elements) ? elements : [];\n }, [elements]);\n\n const [searchElements, setSearchElements] = useState(elementWillBeUsed);\n\n useEffect(() => {\n setSearchElements(elementWillBeUsed);\n }, [elementWillBeUsed]);\n\n const filterElementsBySearch = useCallback(value => {\n if (value === '') {\n setSearchElements(elementWillBeUsed);\n return;\n }\n const filteredElements = elementWillBeUsed?.filter(element => element.title.toLowerCase().includes(value.toLowerCase()));\n setSearchElements(filteredElements);\n }, [elementWillBeUsed]);\n\n return (\n <div className=\"toolItemWrapper f-height d-flex dir-col o-auto p-relative\">\n <LeftPanelCloser />\n <Section\n title={ADD_ELEMENT}\n >\n <Tabs\n panel=\"left\"\n tabs={tabs}\n />\n {hasSearch && (\n <SearchInput onSearch={filterElementsBySearch} />\n )}\n <div className=\"toolItem-tabContent\">\n {searchElements.length > 0 ? searchElements.map((element, index) => (\n <Element\n key={index.toString()}\n {...element}\n />\n )) : (\n <div className=\"no-search-result-text\">{NO_RESULT}</div>\n )}\n </div>\n </Section>\n </div>\n );\n};\n\nElements.propTypes = {\n acceptedItems: PropTypes.shape({}),\n leftPanelConfig: leftPanelConfigPropType,\n onAnEventTrigger: PropTypes.func,\n onItemAdd: PropTypes.func,\n};\n\nexport default memo(Elements);\n"],"names":["Elements","leftPanelConfig","usePropStore","state","activeTab","useBuilderStore","useTranslatedTexts","ADD_ELEMENT","NO_RESULT","tabDetails","getTabsWithElements","tabs","useMemo","Object","keys","left","elements","hasSearch","elementWillBeUsed","Array","isArray","useState","searchElements","setSearchElements","useEffect","filterElementsBySearch","useCallback","value","filteredElements","filter","element","title","toLowerCase","includes","_jsxs","_jsx","LeftPanelCloser","length","map","index","toString","propTypes","acceptedItems","PropTypes","shape","leftPanelConfigPropType","onAnEventTrigger","func","onItemAdd","memo"],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- import { memo } from 'react';
2
1
  import { useBuilderStore } from '../../../contexts/BuilderContext.js';
3
2
  import { jsx, Fragment } from 'react/jsx-runtime';
4
3
  import SvgClose from '../../../assets/svg/close.svg.js';
@@ -21,7 +20,5 @@ var LeftPanelToggler = function LeftPanelToggler() {
21
20
  });
22
21
  };
23
22
 
24
- var LeftPanelCloser = /*#__PURE__*/memo(LeftPanelToggler);
25
-
26
- export default LeftPanelCloser;
23
+ export default LeftPanelToggler;
27
24
  //# sourceMappingURL=LeftPanelCloser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LeftPanelCloser.js","sources":["../../../../../src/components/Panels/LeftPanel/LeftPanelCloser.js"],"sourcesContent":["import { memo } from 'react';\nimport { useBuilderStore } from '../../../contexts/BuilderContext';\nimport * as icons from '../../../utils/icons';\n\nconst LeftPanelToggler = () => {\n const setIsLeftPanelOpen = useBuilderStore(state => state.setIsLeftPanelOpen);\n return (\n <>\n <button\n className=\"paneClose p-absolute\"\n onClick={() => { setIsLeftPanelOpen(false); }}\n type=\"button\"\n >\n <icons.close className=\"jfReportSVG\" />\n </button>\n </>\n );\n};\n\nexport default memo(LeftPanelToggler);\n"],"names":["LeftPanelToggler","setIsLeftPanelOpen","useBuilderStore","state","_jsx","icons.close","memo"],"mappings":";;;;;AAIA,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAmB,GAAM;AAC7B,MAAMC,kBAAkB,GAAGC,eAAe,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACF,kBAAV;AAAA,GAAN,CAA1C;AACA,sBACEG;AAAA,2BACEA;AACE,MAAA,SAAS,EAAC,sBADZ;AAEE,MAAA,OAAO,EAAE,mBAAM;AAAEH,QAAAA,kBAAkB,CAAC,KAAD,CAAlB;AAA4B,OAF/C;AAGE,MAAA,IAAI,EAAC,QAHP;AAAA,6BAKEG,IAACC,QAAD;AAAa,QAAA,SAAS,EAAC;AAAvB;AALF;AADF,IADF;AAWD,CAbD;;AAeA,mCAAeC,IAAI,CAACN,gBAAD,CAAnB;;;;"}
1
+ {"version":3,"file":"LeftPanelCloser.js","sources":["../../../../../src/components/Panels/LeftPanel/LeftPanelCloser.js"],"sourcesContent":["import { useBuilderStore } from '../../../contexts/BuilderContext';\nimport * as icons from '../../../utils/icons';\n\nconst LeftPanelToggler = () => {\n const setIsLeftPanelOpen = useBuilderStore(state => state.setIsLeftPanelOpen);\n return (\n <>\n <button\n className=\"paneClose p-absolute\"\n onClick={() => { setIsLeftPanelOpen(false); }}\n type=\"button\"\n >\n <icons.close className=\"jfReportSVG\" />\n </button>\n </>\n );\n};\n\nexport default LeftPanelToggler;\n"],"names":["LeftPanelToggler","setIsLeftPanelOpen","useBuilderStore","state","_jsx","icons.close"],"mappings":";;;;IAGMA,gBAAgB,GAAG,SAAnBA,gBAAmB,GAAM;AAC7B,MAAMC,kBAAkB,GAAGC,eAAe,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACF,kBAAV;AAAA,GAAN,CAA1C;AACA,sBACEG;AAAA,2BACEA;AACE,MAAA,SAAS,EAAC,sBADZ;AAEE,MAAA,OAAO,EAAE,mBAAM;AAAEH,QAAAA,kBAAkB,CAAC,KAAD,CAAlB;AAA4B,OAF/C;AAGE,MAAA,IAAI,EAAC,QAHP;AAAA,6BAKEG,IAACC,QAAD;AAAa,QAAA,SAAS,EAAC;AAAvB;AALF;AADF,IADF;AAWD;;;;"}
@@ -4,7 +4,7 @@ import 'core-js/modules/es.array.includes.js';
4
4
  import 'core-js/modules/es.array.map.js';
5
5
  import 'core-js/modules/es.object.keys.js';
6
6
  import 'core-js/modules/es.string.iterator.js';
7
- import { memo, useRef, useMemo, useEffect, useCallback } from 'react';
7
+ import { useRef, useMemo, useEffect, useCallback } from 'react';
8
8
  import classNames from 'classnames';
9
9
  import Panel from '../../Builder/Panel.js';
10
10
  import Section from '../../Builder/Section.js';
@@ -223,7 +223,5 @@ var RightPanel = function RightPanel() {
223
223
  });
224
224
  };
225
225
 
226
- var RightPanel$1 = /*#__PURE__*/memo(RightPanel);
227
-
228
- export default RightPanel$1;
226
+ export default RightPanel;
229
227
  //# sourceMappingURL=RightPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RightPanel.js","sources":["../../../../../src/components/Panels/RightPanel/RightPanel.js"],"sourcesContent":["import {\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n} from 'react';\nimport classNames from 'classnames';\nimport Panel from '../../Builder/Panel';\nimport Section from '../../Builder/Section';\nimport Layout from '../../../constants/reportSettings';\nimport Page from '../../../constants/pageSettings';\nimport { useBuilderStore } from '../../../contexts/BuilderContext';\nimport { usePropStore } from '../../../contexts/PropContext';\nimport { findItemById, getTabsWithSettings } from '../../../utils/functions';\nimport { useTranslatedTexts } from '../../../utils/hooks';\nimport {\n REPORT_SETTINGS_ITEM_TYPE, PAGE_SETTINGS_ITEM_TYPE,\n} from '../../../constants/itemTypes';\nimport Tabs from '../../Builder/Tabs';\nimport Settings from './Settings';\nimport RightPanelToggler from './RightPanelToggler';\n\nconst exceptionalClasses = [\n 'pageSettingSideBtn', 'paneClose', 'paneToggler', 'forZoom', 'jSheetContextMenu',\n];\n\nconst RightPanel = () => {\n const activeTab = useBuilderStore(state => state.activeTab);\n const editedElement = useBuilderStore(state => state.editedElement);\n const isRightPanelOpen = useBuilderStore(state => state.isRightPanelOpen);\n const isSlidesPanelOpen = useBuilderStore(state => state.isSlidesPanelOpen);\n const resetActiveElements = useBuilderStore(state => state.resetActiveElements);\n const setActiveTab = useBuilderStore(state => state.setActiveTab);\n const setIsRightPanelOpen = useBuilderStore(state => state.setIsRightPanelOpen);\n\n const acceptedItems = usePropStore(state => state.acceptedItems);\n const layoutSettings = usePropStore(state => state.settings);\n const onItemChange = usePropStore(state => state.onItemChange);\n const onPageChange = usePropStore(state => state.onPageChange);\n const onSettingChange = usePropStore(state => state.onSettingChange);\n const pages = usePropStore(state => state.pages);\n const itemAccessor = usePropStore(state => state.itemAccessor);\n\n const panelRef = useRef(null);\n const translatedTexts = useTranslatedTexts();\n\n const settingMap = useMemo(() => ({\n i_: {\n details: id => {\n const item = findItemById(id, pages);\n return item;\n },\n settings: item => {\n return acceptedItems[item.itemType];\n },\n title: item => {\n const textKey = `${(acceptedItems[item.itemType].title || item.itemType).toLocaleUpperCase()}_SETTINGS`;\n return translatedTexts[textKey] || acceptedItems[item.itemType].title;\n },\n updater: onItemChange,\n },\n l_: {\n details: () => {\n return {\n ...layoutSettings,\n id: REPORT_SETTINGS_ITEM_TYPE,\n itemType: REPORT_SETTINGS_ITEM_TYPE,\n };\n },\n settings: () => {\n return acceptedItems[REPORT_SETTINGS_ITEM_TYPE] || Layout;\n },\n title: () => translatedTexts.LAYOUT_SETTINGS,\n updater: onSettingChange,\n },\n p_: {\n details: id => {\n return {\n backgroundColor: layoutSettings.reportBackgroundColor,\n ...pages.find(page => page.id === id),\n itemType: PAGE_SETTINGS_ITEM_TYPE,\n };\n },\n settings: () => {\n const pageItem = acceptedItems[PAGE_SETTINGS_ITEM_TYPE] || Page;\n return {\n ...pageItem,\n settings: pageItem.settings.map(setting => {\n if (setting.key === 'pageLayer') {\n return { ...setting, updater: onItemChange };\n }\n return setting;\n }) || Page.settings,\n };\n },\n title: () => translatedTexts.PAGE_SETTINGS,\n updater: onPageChange,\n },\n }), [\n acceptedItems,\n layoutSettings,\n onItemChange,\n onPageChange,\n onSettingChange,\n translatedTexts,\n pages,\n ]);\n\n const editedEl = useMemo(() => {\n return settingMap[editedElement.substr(0, 2)] || settingMap.l_;\n }, [editedElement, settingMap]);\n\n const {\n element, selectedItem, title, updateFunc,\n } = useMemo(() => {\n const editedElId = editedElement.substr(2);\n const _selectedItem = editedEl.details(editedElId);\n\n if (!_selectedItem) {\n const fallbackEditedEl = settingMap.l_;\n return {\n element: fallbackEditedEl.settings(),\n selectedItem: fallbackEditedEl.details(),\n title: fallbackEditedEl.title(),\n updateFunc: fallbackEditedEl.updater,\n };\n }\n\n return {\n element: editedEl.settings(_selectedItem),\n selectedItem: _selectedItem,\n title: editedEl.title(_selectedItem),\n updateFunc: editedEl.updater,\n };\n }, [editedEl, editedElement, settingMap.l_]);\n\n // Tabs\n const tabsWithSettings = getTabsWithSettings(element, selectedItem, itemAccessor);\n const tabs = Object.keys(tabsWithSettings);\n\n useEffect(() => {\n const currentTab = tabs[activeTab.right];\n if (!tabsWithSettings[currentTab]) {\n // This is due to conditionaly hiding tabs\n setActiveTab('right', 0);\n }\n }, [activeTab, tabs, tabsWithSettings, setActiveTab]);\n\n // Panel className\n const panelAdditionalClassName = classNames(\n 'jfReport-settings forSettings f-height',\n {\n isIdle: !isRightPanelOpen,\n otherOpened: isSlidesPanelOpen,\n },\n );\n\n const onClickOutsideForPanel = useCallback(e => {\n if (editedElement.substr(0, 2) === 'i_'\n || panelRef.current.contains(e.target)\n || panelRef.current.contains(document.activeElement)\n || Array.from(e.target.classList).some(xClass => exceptionalClasses.includes(xClass))\n || exceptionalClasses.some(xClass => e.target.closest(`.${xClass}`))\n ) {\n return;\n }\n setIsRightPanelOpen(false);\n resetActiveElements();\n }, [editedElement, setIsRightPanelOpen, resetActiveElements]);\n\n useEffect(() => {\n if (isRightPanelOpen) window.addEventListener('click', onClickOutsideForPanel, false);\n return () => {\n window.removeEventListener('click', onClickOutsideForPanel, false);\n };\n }, [isRightPanelOpen, onClickOutsideForPanel]);\n\n return (\n <>\n <Panel\n ref={panelRef}\n additionalClassName={panelAdditionalClassName}\n >\n {isSlidesPanelOpen ? null : <RightPanelToggler />}\n <div className=\"toolItemWrapper f-height d-flex dir-col\">\n <Section title={title}>\n <Tabs\n panel=\"right\"\n tabs={tabs}\n />\n <Settings\n key={selectedItem.id}\n element={element}\n item={selectedItem}\n onChange={updateFunc}\n settings={tabsWithSettings}\n tabs={tabs}\n />\n </Section>\n </div>\n </Panel>\n </>\n );\n};\n\nexport default memo(RightPanel);\n"],"names":["exceptionalClasses","RightPanel","activeTab","useBuilderStore","state","editedElement","isRightPanelOpen","isSlidesPanelOpen","resetActiveElements","setActiveTab","setIsRightPanelOpen","acceptedItems","usePropStore","layoutSettings","settings","onItemChange","onPageChange","onSettingChange","pages","itemAccessor","panelRef","useRef","translatedTexts","useTranslatedTexts","settingMap","useMemo","i_","details","id","item","findItemById","itemType","title","textKey","toLocaleUpperCase","updater","l_","REPORT_SETTINGS_ITEM_TYPE","Layout","LAYOUT_SETTINGS","p_","backgroundColor","reportBackgroundColor","find","page","PAGE_SETTINGS_ITEM_TYPE","pageItem","Page","map","setting","key","PAGE_SETTINGS","editedEl","substr","editedElId","_selectedItem","fallbackEditedEl","element","selectedItem","updateFunc","tabsWithSettings","getTabsWithSettings","tabs","Object","keys","useEffect","currentTab","right","panelAdditionalClassName","classNames","isIdle","otherOpened","onClickOutsideForPanel","useCallback","e","current","contains","target","document","activeElement","Array","from","classList","some","xClass","includes","closest","window","addEventListener","removeEventListener","_jsx","_jsxs","memo"],"mappings":"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"}
1
+ {"version":3,"file":"RightPanel.js","sources":["../../../../../src/components/Panels/RightPanel/RightPanel.js"],"sourcesContent":["import {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n} from 'react';\nimport classNames from 'classnames';\nimport Panel from '../../Builder/Panel';\nimport Section from '../../Builder/Section';\nimport Layout from '../../../constants/reportSettings';\nimport Page from '../../../constants/pageSettings';\nimport { useBuilderStore } from '../../../contexts/BuilderContext';\nimport { usePropStore } from '../../../contexts/PropContext';\nimport { findItemById, getTabsWithSettings } from '../../../utils/functions';\nimport { useTranslatedTexts } from '../../../utils/hooks';\nimport {\n REPORT_SETTINGS_ITEM_TYPE, PAGE_SETTINGS_ITEM_TYPE,\n} from '../../../constants/itemTypes';\nimport Tabs from '../../Builder/Tabs';\nimport Settings from './Settings';\nimport RightPanelToggler from './RightPanelToggler';\n\nconst exceptionalClasses = [\n 'pageSettingSideBtn', 'paneClose', 'paneToggler', 'forZoom', 'jSheetContextMenu',\n];\n\nconst RightPanel = () => {\n const activeTab = useBuilderStore(state => state.activeTab);\n const editedElement = useBuilderStore(state => state.editedElement);\n const isRightPanelOpen = useBuilderStore(state => state.isRightPanelOpen);\n const isSlidesPanelOpen = useBuilderStore(state => state.isSlidesPanelOpen);\n const resetActiveElements = useBuilderStore(state => state.resetActiveElements);\n const setActiveTab = useBuilderStore(state => state.setActiveTab);\n const setIsRightPanelOpen = useBuilderStore(state => state.setIsRightPanelOpen);\n\n const acceptedItems = usePropStore(state => state.acceptedItems);\n const layoutSettings = usePropStore(state => state.settings);\n const onItemChange = usePropStore(state => state.onItemChange);\n const onPageChange = usePropStore(state => state.onPageChange);\n const onSettingChange = usePropStore(state => state.onSettingChange);\n const pages = usePropStore(state => state.pages);\n const itemAccessor = usePropStore(state => state.itemAccessor);\n\n const panelRef = useRef(null);\n const translatedTexts = useTranslatedTexts();\n\n const settingMap = useMemo(() => ({\n i_: {\n details: id => {\n const item = findItemById(id, pages);\n return item;\n },\n settings: item => {\n return acceptedItems[item.itemType];\n },\n title: item => {\n const textKey = `${(acceptedItems[item.itemType].title || item.itemType).toLocaleUpperCase()}_SETTINGS`;\n return translatedTexts[textKey] || acceptedItems[item.itemType].title;\n },\n updater: onItemChange,\n },\n l_: {\n details: () => {\n return {\n ...layoutSettings,\n id: REPORT_SETTINGS_ITEM_TYPE,\n itemType: REPORT_SETTINGS_ITEM_TYPE,\n };\n },\n settings: () => {\n return acceptedItems[REPORT_SETTINGS_ITEM_TYPE] || Layout;\n },\n title: () => translatedTexts.LAYOUT_SETTINGS,\n updater: onSettingChange,\n },\n p_: {\n details: id => {\n return {\n backgroundColor: layoutSettings.reportBackgroundColor,\n ...pages.find(page => page.id === id),\n itemType: PAGE_SETTINGS_ITEM_TYPE,\n };\n },\n settings: () => {\n const pageItem = acceptedItems[PAGE_SETTINGS_ITEM_TYPE] || Page;\n return {\n ...pageItem,\n settings: pageItem.settings.map(setting => {\n if (setting.key === 'pageLayer') {\n return { ...setting, updater: onItemChange };\n }\n return setting;\n }) || Page.settings,\n };\n },\n title: () => translatedTexts.PAGE_SETTINGS,\n updater: onPageChange,\n },\n }), [\n acceptedItems,\n layoutSettings,\n onItemChange,\n onPageChange,\n onSettingChange,\n translatedTexts,\n pages,\n ]);\n\n const editedEl = useMemo(() => {\n return settingMap[editedElement.substr(0, 2)] || settingMap.l_;\n }, [editedElement, settingMap]);\n\n const {\n element, selectedItem, title, updateFunc,\n } = useMemo(() => {\n const editedElId = editedElement.substr(2);\n const _selectedItem = editedEl.details(editedElId);\n\n if (!_selectedItem) {\n const fallbackEditedEl = settingMap.l_;\n return {\n element: fallbackEditedEl.settings(),\n selectedItem: fallbackEditedEl.details(),\n title: fallbackEditedEl.title(),\n updateFunc: fallbackEditedEl.updater,\n };\n }\n\n return {\n element: editedEl.settings(_selectedItem),\n selectedItem: _selectedItem,\n title: editedEl.title(_selectedItem),\n updateFunc: editedEl.updater,\n };\n }, [editedEl, editedElement, settingMap.l_]);\n\n // Tabs\n const tabsWithSettings = getTabsWithSettings(element, selectedItem, itemAccessor);\n const tabs = Object.keys(tabsWithSettings);\n\n useEffect(() => {\n const currentTab = tabs[activeTab.right];\n if (!tabsWithSettings[currentTab]) {\n // This is due to conditionaly hiding tabs\n setActiveTab('right', 0);\n }\n }, [activeTab, tabs, tabsWithSettings, setActiveTab]);\n\n // Panel className\n const panelAdditionalClassName = classNames(\n 'jfReport-settings forSettings f-height',\n {\n isIdle: !isRightPanelOpen,\n otherOpened: isSlidesPanelOpen,\n },\n );\n\n const onClickOutsideForPanel = useCallback(e => {\n if (editedElement.substr(0, 2) === 'i_'\n || panelRef.current.contains(e.target)\n || panelRef.current.contains(document.activeElement)\n || Array.from(e.target.classList).some(xClass => exceptionalClasses.includes(xClass))\n || exceptionalClasses.some(xClass => e.target.closest(`.${xClass}`))\n ) {\n return;\n }\n setIsRightPanelOpen(false);\n resetActiveElements();\n }, [editedElement, setIsRightPanelOpen, resetActiveElements]);\n\n useEffect(() => {\n if (isRightPanelOpen) window.addEventListener('click', onClickOutsideForPanel, false);\n return () => {\n window.removeEventListener('click', onClickOutsideForPanel, false);\n };\n }, [isRightPanelOpen, onClickOutsideForPanel]);\n\n return (\n <>\n <Panel\n ref={panelRef}\n additionalClassName={panelAdditionalClassName}\n >\n {isSlidesPanelOpen ? null : <RightPanelToggler />}\n <div className=\"toolItemWrapper f-height d-flex dir-col\">\n <Section title={title}>\n <Tabs\n panel=\"right\"\n tabs={tabs}\n />\n <Settings\n key={selectedItem.id}\n element={element}\n item={selectedItem}\n onChange={updateFunc}\n settings={tabsWithSettings}\n tabs={tabs}\n />\n </Section>\n </div>\n </Panel>\n </>\n );\n};\n\nexport default RightPanel;\n"],"names":["exceptionalClasses","RightPanel","activeTab","useBuilderStore","state","editedElement","isRightPanelOpen","isSlidesPanelOpen","resetActiveElements","setActiveTab","setIsRightPanelOpen","acceptedItems","usePropStore","layoutSettings","settings","onItemChange","onPageChange","onSettingChange","pages","itemAccessor","panelRef","useRef","translatedTexts","useTranslatedTexts","settingMap","useMemo","i_","details","id","item","findItemById","itemType","title","textKey","toLocaleUpperCase","updater","l_","REPORT_SETTINGS_ITEM_TYPE","Layout","LAYOUT_SETTINGS","p_","backgroundColor","reportBackgroundColor","find","page","PAGE_SETTINGS_ITEM_TYPE","pageItem","Page","map","setting","key","PAGE_SETTINGS","editedEl","substr","editedElId","_selectedItem","fallbackEditedEl","element","selectedItem","updateFunc","tabsWithSettings","getTabsWithSettings","tabs","Object","keys","useEffect","currentTab","right","panelAdditionalClassName","classNames","isIdle","otherOpened","onClickOutsideForPanel","useCallback","e","current","contains","target","document","activeElement","Array","from","classList","some","xClass","includes","closest","window","addEventListener","removeEventListener","_jsx","_jsxs"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import 'core-js/modules/es.number.constructor.js';
2
2
  import 'core-js/modules/es.number.is-nan.js';
3
- import { memo, useMemo, useRef, useState, useCallback, useEffect } from 'react';
3
+ import { memo, useRef, useState, useMemo, useCallback, useEffect } from 'react';
4
4
  import PropTypes from 'prop-types';
5
5
  import PageAdder from '../../Builder/PageAdder.js';
6
6
  import { scrollToTarget, getScaleForPageThumbnail } from '../../../utils/functions.js';
@@ -27,12 +27,9 @@ var ListWrapper = function ListWrapper(_ref) {
27
27
  onSortEnd = _ref$onSortEnd === void 0 ? function () {} : _ref$onSortEnd,
28
28
  _ref$pageGetter = _ref.pageGetter,
29
29
  pageGetter = _ref$pageGetter === void 0 ? function () {} : _ref$pageGetter;
30
- var pages = usePropStore(function (state) {
31
- return state.pages;
30
+ var pageCount = usePropStore(function (state) {
31
+ return state.pages.length;
32
32
  });
33
- var pageCount = useMemo(function () {
34
- return pages.length;
35
- }, [pages]);
36
33
  var onPageAdd = usePropStore(function (state) {
37
34
  return state.onPageAdd;
38
35
  });
@@ -45,6 +42,9 @@ var ListWrapper = function ListWrapper(_ref) {
45
42
  var reportSettings = usePropStore(function (state) {
46
43
  return state.settings;
47
44
  });
45
+ var onPageVisibilityChanged = usePropStore(function (state) {
46
+ return state.onPageVisibilityChanged;
47
+ });
48
48
  var listRef = useRef(null);
49
49
 
50
50
  var _useState = useState(-1),
@@ -94,7 +94,7 @@ var ListWrapper = function ListWrapper(_ref) {
94
94
  listRef.current = outerRef;
95
95
  }
96
96
  }, []);
97
- usePageVisibility(function (index) {
97
+ var handlePageVisibility = useCallback(function (index) {
98
98
  if (index && !Number.isNaN(index)) {
99
99
  var _listRef$current;
100
100
 
@@ -112,9 +112,11 @@ var ListWrapper = function ListWrapper(_ref) {
112
112
 
113
113
  if (nextSelectedThumbnail) {
114
114
  nextSelectedThumbnail.classList.add('isSelected');
115
+ onPageVisibilityChanged(index);
115
116
  }
116
117
  }
117
- }, pageCount, selectedPageIndex); // TODO: could be better than now. scrollend listener is a choice for some cases
118
+ }, [onPageVisibilityChanged]);
119
+ usePageVisibility(handlePageVisibility, pageCount, selectedPageIndex); // TODO: could be better than now. scrollend listener is a choice for some cases
118
120
 
119
121
  var resetSelectedPageIndex = useCallback(function () {
120
122
  setTimeout(function () {
@@ -1 +1 @@
1
- {"version":3,"file":"ListWrapper.js","sources":["../../../../../src/components/Panels/SlidesPanel/ListWrapper.js"],"sourcesContent":["import {\n memo, useCallback, useRef, useState, useMemo, useEffect,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport PageAdder from '../../Builder/PageAdder';\nimport { getScaleForPageThumbnail, scrollToTarget } from '../../../utils/functions';\nimport { usePageVisibility } from '../../../utils/hooks';\nimport { usePropStore } from '../../../contexts/PropContext';\n\nconst ListWrapper = ({\n component: Component = null,\n onSortEnd = () => {},\n pageGetter = () => {},\n}) => {\n const pages = usePropStore(state => state.pages);\n const pageCount = useMemo(() => pages.length, [pages]);\n const onPageAdd = usePropStore(state => state.onPageAdd);\n const onPageDuplicate = usePropStore(state => state.onPageDuplicate);\n const onPageRemove = usePropStore(state => state.onPageRemove);\n const reportSettings = usePropStore(state => state.settings);\n\n const listRef = useRef(null);\n const [selectedPageIndex, setSelectedPageIndex] = useState(-1);\n const {\n reportBackgroundColor,\n reportLayoutHeight = 794,\n reportLayoutWidth = 1123,\n } = reportSettings;\n const width = parseInt(reportLayoutWidth, 10);\n const height = parseInt(reportLayoutHeight, 10);\n const { left, scale, top } = getScaleForPageThumbnail(width, height);\n\n const pageContainerStyles = useMemo(() => ({\n backgroundColor: reportBackgroundColor || '#fff',\n height: height,\n left,\n top,\n transform: `scale(${scale})`,\n transformOrigin: '0 0',\n width: width,\n }), [height, left, scale, top, width, reportBackgroundColor]);\n\n const _onSortEnd = useCallback(({ newIndex, oldIndex }) => {\n if (onSortEnd) {\n onSortEnd({ newIndex, oldIndex }, null, listRef.current);\n }\n }, [onSortEnd]);\n\n const refSetter = useCallback(outerRef => {\n if (outerRef) {\n listRef.current = outerRef;\n }\n }, []);\n\n usePageVisibility(index => {\n if (index && !Number.isNaN(index)) {\n if (listRef.current?.scrollToIndex) {\n listRef.current.scrollToIndex(index, 'center');\n }\n\n const prevSelectedThumbnail = document.querySelector('.thumbnailWrapper.isSelected');\n if (prevSelectedThumbnail) {\n prevSelectedThumbnail.classList.remove('isSelected');\n }\n\n const nextSelectedThumbnail = document\n .querySelector(`.thumbnailWrapper[data-order=\"${index}\"]`);\n if (nextSelectedThumbnail) {\n nextSelectedThumbnail.classList.add('isSelected');\n }\n }\n }, pageCount, selectedPageIndex);\n\n // TODO: could be better than now. scrollend listener is a choice for some cases\n const resetSelectedPageIndex = useCallback(() => {\n setTimeout(() => {\n setSelectedPageIndex(-1);\n }, 1000);\n }, []);\n\n const onPageClick = useCallback(e => {\n const order = e.target.getAttribute('data-order');\n setSelectedPageIndex(parseInt(order, 10));\n if (!e.target.classList.contains('controllerItem')) { // for page thumbnails actions\n scrollToTarget(`pageActions-id-${order}`);\n }\n resetSelectedPageIndex();\n }, [resetSelectedPageIndex]);\n\n const handlePageAdd = useCallback(index => {\n setSelectedPageIndex(index);\n onPageAdd(index);\n }, [onPageAdd]);\n\n const handlePageDuplicate = useCallback(index => {\n setSelectedPageIndex(index);\n onPageDuplicate(index);\n }, [onPageDuplicate]);\n\n const handlePageRemove = useCallback(index => {\n setSelectedPageIndex(index);\n onPageRemove(index);\n }, [onPageRemove]);\n\n useEffect(() => { // after new page added\n scrollToTarget(`pageActions-id-${selectedPageIndex}`, 0, { behavior: 'smooth' });\n resetSelectedPageIndex();\n }, [resetSelectedPageIndex, selectedPageIndex]);\n\n return (\n <>\n <div\n style={{\n height: '100%', margin: '25px 10px', position: 'relative', width: '100%',\n }}\n >\n <Component\n ref={refSetter}\n height=\"100%\"\n onPageAdd={handlePageAdd}\n onPageClick={onPageClick}\n onPageDuplicate={handlePageDuplicate}\n onPageRemove={handlePageRemove}\n onSortEnd={_onSortEnd}\n pageContainerStyle={pageContainerStyles}\n pageCount={pageCount}\n pageGetter={pageGetter}\n width=\"100%\"\n />\n </div>\n <div className=\"jfReport-pane-footer\">\n <PageAdder additionalClass=\"forOptions\" />\n </div>\n </>\n );\n};\n\nListWrapper.propTypes = {\n component: PropTypes.any,\n onSortEnd: PropTypes.func,\n pageGetter: PropTypes.func,\n};\n\nexport default memo(ListWrapper);\n"],"names":["ListWrapper","component","Component","onSortEnd","pageGetter","pages","usePropStore","state","pageCount","useMemo","length","onPageAdd","onPageDuplicate","onPageRemove","reportSettings","settings","listRef","useRef","useState","selectedPageIndex","setSelectedPageIndex","reportBackgroundColor","reportLayoutHeight","reportLayoutWidth","width","parseInt","height","getScaleForPageThumbnail","left","scale","top","pageContainerStyles","backgroundColor","transform","transformOrigin","_onSortEnd","useCallback","newIndex","oldIndex","current","refSetter","outerRef","usePageVisibility","index","Number","isNaN","scrollToIndex","prevSelectedThumbnail","document","querySelector","classList","remove","nextSelectedThumbnail","add","resetSelectedPageIndex","setTimeout","onPageClick","e","order","target","getAttribute","contains","scrollToTarget","handlePageAdd","handlePageDuplicate","handlePageRemove","useEffect","behavior","_jsxs","_jsx","margin","position","propTypes","PropTypes","any","func","memo"],"mappings":"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"}
1
+ {"version":3,"file":"ListWrapper.js","sources":["../../../../../src/components/Panels/SlidesPanel/ListWrapper.js"],"sourcesContent":["import {\n memo, useCallback, useRef, useState, useMemo, useEffect,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport PageAdder from '../../Builder/PageAdder';\nimport { getScaleForPageThumbnail, scrollToTarget } from '../../../utils/functions';\nimport { usePageVisibility } from '../../../utils/hooks';\nimport { usePropStore } from '../../../contexts/PropContext';\n\nconst ListWrapper = ({\n component: Component = null,\n onSortEnd = () => {},\n pageGetter = () => {},\n}) => {\n const pageCount = usePropStore(state => state.pages.length);\n const onPageAdd = usePropStore(state => state.onPageAdd);\n const onPageDuplicate = usePropStore(state => state.onPageDuplicate);\n const onPageRemove = usePropStore(state => state.onPageRemove);\n const reportSettings = usePropStore(state => state.settings);\n const onPageVisibilityChanged = usePropStore(state => state.onPageVisibilityChanged);\n\n const listRef = useRef(null);\n const [selectedPageIndex, setSelectedPageIndex] = useState(-1);\n const {\n reportBackgroundColor,\n reportLayoutHeight = 794,\n reportLayoutWidth = 1123,\n } = reportSettings;\n const width = parseInt(reportLayoutWidth, 10);\n const height = parseInt(reportLayoutHeight, 10);\n const { left, scale, top } = getScaleForPageThumbnail(width, height);\n\n const pageContainerStyles = useMemo(() => ({\n backgroundColor: reportBackgroundColor || '#fff',\n height: height,\n left,\n top,\n transform: `scale(${scale})`,\n transformOrigin: '0 0',\n width: width,\n }), [height, left, scale, top, width, reportBackgroundColor]);\n\n const _onSortEnd = useCallback(({ newIndex, oldIndex }) => {\n if (onSortEnd) {\n onSortEnd({ newIndex, oldIndex }, null, listRef.current);\n }\n }, [onSortEnd]);\n\n const refSetter = useCallback(outerRef => {\n if (outerRef) {\n listRef.current = outerRef;\n }\n }, []);\n\n const handlePageVisibility = useCallback(index => {\n if (index && !Number.isNaN(index)) {\n if (listRef.current?.scrollToIndex) {\n listRef.current.scrollToIndex(index, 'center');\n }\n\n const prevSelectedThumbnail = document.querySelector('.thumbnailWrapper.isSelected');\n if (prevSelectedThumbnail) {\n prevSelectedThumbnail.classList.remove('isSelected');\n }\n\n const nextSelectedThumbnail = document\n .querySelector(`.thumbnailWrapper[data-order=\"${index}\"]`);\n if (nextSelectedThumbnail) {\n nextSelectedThumbnail.classList.add('isSelected');\n onPageVisibilityChanged(index);\n }\n }\n }, [onPageVisibilityChanged]);\n\n usePageVisibility(handlePageVisibility, pageCount, selectedPageIndex);\n\n // TODO: could be better than now. scrollend listener is a choice for some cases\n const resetSelectedPageIndex = useCallback(() => {\n setTimeout(() => {\n setSelectedPageIndex(-1);\n }, 1000);\n }, []);\n\n const onPageClick = useCallback(e => {\n const order = e.target.getAttribute('data-order');\n setSelectedPageIndex(parseInt(order, 10));\n if (!e.target.classList.contains('controllerItem')) { // for page thumbnails actions\n scrollToTarget(`pageActions-id-${order}`);\n }\n resetSelectedPageIndex();\n }, [resetSelectedPageIndex]);\n\n const handlePageAdd = useCallback(index => {\n setSelectedPageIndex(index);\n onPageAdd(index);\n }, [onPageAdd]);\n\n const handlePageDuplicate = useCallback(index => {\n setSelectedPageIndex(index);\n onPageDuplicate(index);\n }, [onPageDuplicate]);\n\n const handlePageRemove = useCallback(index => {\n setSelectedPageIndex(index);\n onPageRemove(index);\n }, [onPageRemove]);\n\n useEffect(() => { // after new page added\n scrollToTarget(`pageActions-id-${selectedPageIndex}`, 0, { behavior: 'smooth' });\n resetSelectedPageIndex();\n }, [resetSelectedPageIndex, selectedPageIndex]);\n\n return (\n <>\n <div\n style={{\n height: '100%', margin: '25px 10px', position: 'relative', width: '100%',\n }}\n >\n <Component\n ref={refSetter}\n height=\"100%\"\n onPageAdd={handlePageAdd}\n onPageClick={onPageClick}\n onPageDuplicate={handlePageDuplicate}\n onPageRemove={handlePageRemove}\n onSortEnd={_onSortEnd}\n pageContainerStyle={pageContainerStyles}\n pageCount={pageCount}\n pageGetter={pageGetter}\n width=\"100%\"\n />\n </div>\n <div className=\"jfReport-pane-footer\">\n <PageAdder additionalClass=\"forOptions\" />\n </div>\n </>\n );\n};\n\nListWrapper.propTypes = {\n component: PropTypes.any,\n onSortEnd: PropTypes.func,\n pageGetter: PropTypes.func,\n};\n\nexport default memo(ListWrapper);\n"],"names":["ListWrapper","component","Component","onSortEnd","pageGetter","pageCount","usePropStore","state","pages","length","onPageAdd","onPageDuplicate","onPageRemove","reportSettings","settings","onPageVisibilityChanged","listRef","useRef","useState","selectedPageIndex","setSelectedPageIndex","reportBackgroundColor","reportLayoutHeight","reportLayoutWidth","width","parseInt","height","getScaleForPageThumbnail","left","scale","top","pageContainerStyles","useMemo","backgroundColor","transform","transformOrigin","_onSortEnd","useCallback","newIndex","oldIndex","current","refSetter","outerRef","handlePageVisibility","index","Number","isNaN","scrollToIndex","prevSelectedThumbnail","document","querySelector","classList","remove","nextSelectedThumbnail","add","usePageVisibility","resetSelectedPageIndex","setTimeout","onPageClick","e","order","target","getAttribute","contains","scrollToTarget","handlePageAdd","handlePageDuplicate","handlePageRemove","useEffect","behavior","_jsxs","_jsx","margin","position","propTypes","PropTypes","any","func","memo"],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { useRef, useEffect, createContext, useContext } from 'react';
2
2
  import PropTypes from 'prop-types';
3
+ import isEqual from 'lodash.isequal';
3
4
  import { createStore, useStore } from 'zustand';
4
5
  import { jsx } from 'react/jsx-runtime';
5
6
 
@@ -32,6 +33,8 @@ var propStore = function propStore(props) {
32
33
  onPageDuplicate: props.onPageDuplicate || fn,
33
34
  onPageOrdersChange: props.onPageOrdersChange || fn,
34
35
  onPageRemove: props.onPageRemove || fn,
36
+ onPageVisibilityChanged: props.onPageVisibilityChanged || fn,
37
+ onSelectedItemsChanged: props.onSelectedItemsChanged || fn,
35
38
  onSettingChange: props.onSettingChange || fn,
36
39
  pages: props.pages || [],
37
40
  setAcceptedItems: function setAcceptedItems(acceptedItems) {
@@ -79,34 +82,25 @@ var PropProvider = function PropProvider(_ref) {
79
82
  pages = props.pages,
80
83
  settings = props.settings;
81
84
  useEffect(function () {
82
- var _storeRef$current$get = storeRef.current.getState(),
83
- setPages = _storeRef$current$get.setPages;
84
-
85
- if (pages) {
86
- setPages(pages);
87
- }
85
+ var state = storeRef.current.getState();
86
+ if (!pages || isEqual(state.pages, pages)) return;
87
+ state.setPages(pages);
88
88
  }, [pages]);
89
89
  useEffect(function () {
90
- var _storeRef$current$get2 = storeRef.current.getState(),
91
- setItemAccessor = _storeRef$current$get2.setItemAccessor;
90
+ var _storeRef$current$get = storeRef.current.getState(),
91
+ setItemAccessor = _storeRef$current$get.setItemAccessor;
92
92
 
93
93
  setItemAccessor(itemAccessor);
94
94
  }, [itemAccessor]);
95
95
  useEffect(function () {
96
- var _storeRef$current$get3 = storeRef.current.getState(),
97
- setAcceptedItems = _storeRef$current$get3.setAcceptedItems;
98
-
99
- if (acceptedItems) {
100
- setAcceptedItems(acceptedItems);
101
- }
96
+ var state = storeRef.current.getState();
97
+ if (!acceptedItems || isEqual(state.acceptedItems, acceptedItems)) return;
98
+ state.setAcceptedItems(acceptedItems);
102
99
  }, [acceptedItems]);
103
100
  useEffect(function () {
104
- var _storeRef$current$get4 = storeRef.current.getState(),
105
- setSettings = _storeRef$current$get4.setSettings;
106
-
107
- if (settings) {
108
- setSettings(settings);
109
- }
101
+ var state = storeRef.current.getState();
102
+ if (!settings || isEqual(state.settings, settings)) return;
103
+ state.setSettings(settings);
110
104
  }, [settings]);
111
105
  return /*#__PURE__*/jsx(PropContext.Provider, {
112
106
  value: storeRef.current,
@@ -1 +1 @@
1
- {"version":3,"file":"PropContext.js","sources":["../../../src/contexts/PropContext.js"],"sourcesContent":["import {\n createContext, useContext, useEffect, useRef,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { createStore, useStore } from 'zustand';\n\nconst fn = () => {};\n\nconst propStore = props => {\n // eslint-disable-next-line complexity\n return createStore(set => ({\n acceptedItems: props.acceptedItems || {},\n additionalPageItems: props.additionalPageItems || [],\n disableInteraction: props.disableInteraction || [],\n itemAccessor: props.itemAccessor || fn,\n leftPanelConfig: props.leftPanelConfig || [],\n onAnEventTrigger: props.onAnEventTrigger || (() => {}),\n onItemAdd: props.onItemAdd || fn,\n onItemChange: props.onItemChange || fn,\n onItemMove: props.onItemMove || fn,\n onItemRemove: props.onItemRemove || fn,\n onItemResize: props.onItemResize || fn,\n onItemsMove: props.onItemsMove || fn,\n onPageAdd: props.onPageAdd || fn,\n onPageChange: props.onPageChange || fn,\n onPageDuplicate: props.onPageDuplicate || fn,\n onPageOrdersChange: props.onPageOrdersChange || fn,\n onPageRemove: props.onPageRemove || fn,\n onSettingChange: props.onSettingChange || fn,\n pages: props.pages || [],\n setAcceptedItems: acceptedItems => { set({ acceptedItems }); },\n setItemAccessor: itemAccessor => { set({ itemAccessor }); },\n setPages: pages => { set({ pages }); },\n setSettings: settings => { set({ settings }); },\n settings: props.settings || {\n reportLayout: 'A4 Landscape',\n },\n theme: props.theme || 'lightMode',\n useExperimentalFeatures: props.useExperimentalFeatures || false,\n }));\n};\n\nconst PropContext = createContext(null);\n\nexport const PropProvider = ({ children, ...props }) => {\n const storeRef = useRef();\n if (!storeRef.current) {\n storeRef.current = propStore(props);\n }\n\n const {\n acceptedItems, itemAccessor, pages, settings,\n } = props;\n\n useEffect(() => {\n const { setPages } = storeRef.current.getState();\n if (pages) {\n setPages(pages);\n }\n }, [pages]);\n\n useEffect(() => {\n const { setItemAccessor } = storeRef.current.getState();\n setItemAccessor(itemAccessor);\n }, [itemAccessor]);\n\n useEffect(() => {\n const { setAcceptedItems } = storeRef.current.getState();\n if (acceptedItems) {\n setAcceptedItems(acceptedItems);\n }\n }, [acceptedItems]);\n\n useEffect(() => {\n const { setSettings } = storeRef.current.getState();\n if (settings) {\n setSettings(settings);\n }\n }, [settings]);\n\n return (\n <PropContext.Provider value={storeRef.current}>\n {children}\n </PropContext.Provider>\n );\n};\n\nPropProvider.propTypes = {\n acceptedItems: PropTypes.shape({}),\n children: PropTypes.any,\n itemAccessor: PropTypes.func,\n pages: PropTypes.arrayOf(PropTypes.object),\n settings: PropTypes.shape({}),\n};\n\nexport const PropConsumer = PropContext.Consumer;\n\nexport const usePropStore = selector => {\n const context = useContext(PropContext);\n if (!context) {\n throw new Error('usePropStore must be used with PropProvider!');\n }\n return useStore(context, selector);\n};\n"],"names":["fn","propStore","props","createStore","set","acceptedItems","additionalPageItems","disableInteraction","itemAccessor","leftPanelConfig","onAnEventTrigger","onItemAdd","onItemChange","onItemMove","onItemRemove","onItemResize","onItemsMove","onPageAdd","onPageChange","onPageDuplicate","onPageOrdersChange","onPageRemove","onSettingChange","pages","setAcceptedItems","setItemAccessor","setPages","setSettings","settings","reportLayout","theme","useExperimentalFeatures","PropContext","createContext","PropProvider","children","storeRef","useRef","current","useEffect","getState","_jsx","propTypes","PropTypes","shape","any","func","arrayOf","object","Consumer","usePropStore","selector","context","useContext","Error","useStore"],"mappings":"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"}
1
+ {"version":3,"file":"PropContext.js","sources":["../../../src/contexts/PropContext.js"],"sourcesContent":["import {\n createContext, useContext, useEffect, useRef,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport isEqual from 'lodash.isequal';\nimport { createStore, useStore } from 'zustand';\n\nconst fn = () => {};\n\nconst propStore = props => {\n // eslint-disable-next-line complexity\n return createStore(set => ({\n acceptedItems: props.acceptedItems || {},\n additionalPageItems: props.additionalPageItems || [],\n disableInteraction: props.disableInteraction || [],\n itemAccessor: props.itemAccessor || fn,\n leftPanelConfig: props.leftPanelConfig || [],\n onAnEventTrigger: props.onAnEventTrigger || (() => {}),\n onItemAdd: props.onItemAdd || fn,\n onItemChange: props.onItemChange || fn,\n onItemMove: props.onItemMove || fn,\n onItemRemove: props.onItemRemove || fn,\n onItemResize: props.onItemResize || fn,\n onItemsMove: props.onItemsMove || fn,\n onPageAdd: props.onPageAdd || fn,\n onPageChange: props.onPageChange || fn,\n onPageDuplicate: props.onPageDuplicate || fn,\n onPageOrdersChange: props.onPageOrdersChange || fn,\n onPageRemove: props.onPageRemove || fn,\n onPageVisibilityChanged: props.onPageVisibilityChanged || fn,\n onSelectedItemsChanged: props.onSelectedItemsChanged || fn,\n onSettingChange: props.onSettingChange || fn,\n pages: props.pages || [],\n setAcceptedItems: acceptedItems => { set({ acceptedItems }); },\n setItemAccessor: itemAccessor => { set({ itemAccessor }); },\n setPages: pages => { set({ pages }); },\n setSettings: settings => { set({ settings }); },\n settings: props.settings || {\n reportLayout: 'A4 Landscape',\n },\n theme: props.theme || 'lightMode',\n useExperimentalFeatures: props.useExperimentalFeatures || false,\n }));\n};\n\nconst PropContext = createContext(null);\n\nexport const PropProvider = ({ children, ...props }) => {\n const storeRef = useRef();\n if (!storeRef.current) {\n storeRef.current = propStore(props);\n }\n\n const {\n acceptedItems, itemAccessor, pages, settings,\n } = props;\n\n useEffect(() => {\n const state = storeRef.current.getState();\n if (!pages || isEqual(state.pages, pages)) return;\n state.setPages(pages);\n }, [pages]);\n\n useEffect(() => {\n const { setItemAccessor } = storeRef.current.getState();\n setItemAccessor(itemAccessor);\n }, [itemAccessor]);\n\n useEffect(() => {\n const state = storeRef.current.getState();\n if (!acceptedItems || isEqual(state.acceptedItems, acceptedItems)) return;\n state.setAcceptedItems(acceptedItems);\n }, [acceptedItems]);\n\n useEffect(() => {\n const state = storeRef.current.getState();\n if (!settings || isEqual(state.settings, settings)) return;\n state.setSettings(settings);\n }, [settings]);\n\n return (\n <PropContext.Provider value={storeRef.current}>\n {children}\n </PropContext.Provider>\n );\n};\n\nPropProvider.propTypes = {\n acceptedItems: PropTypes.shape({}),\n children: PropTypes.any,\n itemAccessor: PropTypes.func,\n pages: PropTypes.arrayOf(PropTypes.object),\n settings: PropTypes.shape({}),\n};\n\nexport const PropConsumer = PropContext.Consumer;\n\nexport const usePropStore = selector => {\n const context = useContext(PropContext);\n if (!context) {\n throw new Error('usePropStore must be used with PropProvider!');\n }\n return useStore(context, selector);\n};\n"],"names":["fn","propStore","props","createStore","set","acceptedItems","additionalPageItems","disableInteraction","itemAccessor","leftPanelConfig","onAnEventTrigger","onItemAdd","onItemChange","onItemMove","onItemRemove","onItemResize","onItemsMove","onPageAdd","onPageChange","onPageDuplicate","onPageOrdersChange","onPageRemove","onPageVisibilityChanged","onSelectedItemsChanged","onSettingChange","pages","setAcceptedItems","setItemAccessor","setPages","setSettings","settings","reportLayout","theme","useExperimentalFeatures","PropContext","createContext","PropProvider","children","storeRef","useRef","current","useEffect","state","getState","isEqual","_jsx","propTypes","PropTypes","shape","any","func","arrayOf","object","Consumer","usePropStore","selector","context","useContext","Error","useStore"],"mappings":"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"}
@@ -49,6 +49,13 @@ var useEventListener = function useEventListener(eventName, handler) {
49
49
  };
50
50
  }, [eventName, element]);
51
51
  };
52
+ var usePrevious = function usePrevious(value) {
53
+ var ref = useRef();
54
+ useEffect(function () {
55
+ ref.current = value;
56
+ });
57
+ return ref.current;
58
+ };
52
59
  var useFitZoom = function useFitZoom() {
53
60
  var settings = usePropStore(function (state) {
54
61
  return state.settings;
@@ -69,6 +76,7 @@ var useFitZoom = function useFitZoom() {
69
76
  };
70
77
  var usePageVisibility = function usePageVisibility(callback, pageCount, selectedPageIndex) {
71
78
  var ratio = useRef({});
79
+ var prevVisiblePageIndex = useRef(-1);
72
80
  var pageRefs = useRef([]);
73
81
  var observer = useMemo(function () {
74
82
  return new window.IntersectionObserver(function (entries) {
@@ -81,13 +89,18 @@ var usePageVisibility = function usePageVisibility(callback, pageCount, selected
81
89
  delete ratio.current[order];
82
90
  }
83
91
  });
84
- callback(parseInt(Object.keys(ratio.current).find(function (key) {
92
+ var visiblePageIndex = parseInt(Object.keys(ratio.current).find(function (key) {
85
93
  return ratio.current[key] === Math.max.apply(Math, _toConsumableArray(Object.values(ratio.current)));
86
- }), 10));
94
+ }), 10);
95
+
96
+ if (visiblePageIndex !== prevVisiblePageIndex.current) {
97
+ prevVisiblePageIndex.current = visiblePageIndex;
98
+ callback(visiblePageIndex);
99
+ }
87
100
  }, {
88
101
  delay: 100,
89
102
  root: document.querySelector('.jfReport-viewport'),
90
- threshold: [0, 0.5, 1]
103
+ threshold: [0, 0.25, 0.5, 0.75, 1]
91
104
  });
92
105
  }, [callback]);
93
106
  useEffect(function () {
@@ -212,5 +225,5 @@ var useSelectedElements = function useSelectedElements() {
212
225
  }, [pages, activeElements, acceptedItems]);
213
226
  };
214
227
 
215
- export { useClickOutsideListener, useEventListener, useFitZoom, useFullscreenChange, usePageTransition, usePageVisibility, useSelectedElements, useTranslatedTexts };
228
+ export { useClickOutsideListener, useEventListener, useFitZoom, useFullscreenChange, usePageTransition, usePageVisibility, usePrevious, useSelectedElements, useTranslatedTexts };
216
229
  //# sourceMappingURL=hooks.js.map