@jotforminc/dnd-builder 3.2.0 → 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 (42) hide show
  1. package/CHANGELOG.md +23 -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/Builder/Tabs.js +15 -20
  7. package/lib/cjs/components/Builder/Tabs.js.map +1 -1
  8. package/lib/cjs/components/PageItemResizer.js +4 -0
  9. package/lib/cjs/components/PageItemResizer.js.map +1 -1
  10. package/lib/cjs/components/Panels/LeftPanel/LeftPanelCloser.js +1 -4
  11. package/lib/cjs/components/Panels/LeftPanel/LeftPanelCloser.js.map +1 -1
  12. package/lib/cjs/components/Panels/RightPanel/RightPanel.js +1 -3
  13. package/lib/cjs/components/Panels/RightPanel/RightPanel.js.map +1 -1
  14. package/lib/cjs/components/Panels/SlidesPanel/ListWrapper.js +9 -7
  15. package/lib/cjs/components/Panels/SlidesPanel/ListWrapper.js.map +1 -1
  16. package/lib/cjs/contexts/PropContext.js +15 -20
  17. package/lib/cjs/contexts/PropContext.js.map +1 -1
  18. package/lib/cjs/styles/_jfReportsPanels.scss +4 -2
  19. package/lib/cjs/utils/hooks.js +17 -3
  20. package/lib/cjs/utils/hooks.js.map +1 -1
  21. package/lib/esm/components/Builder/Builder.js +6 -0
  22. package/lib/esm/components/Builder/Builder.js.map +1 -1
  23. package/lib/esm/components/Builder/BuilderWrapper.js +12 -1
  24. package/lib/esm/components/Builder/BuilderWrapper.js.map +1 -1
  25. package/lib/esm/components/Builder/Tabs.js +15 -20
  26. package/lib/esm/components/Builder/Tabs.js.map +1 -1
  27. package/lib/esm/components/PageItemResizer.js +4 -0
  28. package/lib/esm/components/PageItemResizer.js.map +1 -1
  29. package/lib/esm/components/Panels/LeftPanel/Elements.js +2 -2
  30. package/lib/esm/components/Panels/LeftPanel/Elements.js.map +1 -1
  31. package/lib/esm/components/Panels/LeftPanel/LeftPanelCloser.js +1 -4
  32. package/lib/esm/components/Panels/LeftPanel/LeftPanelCloser.js.map +1 -1
  33. package/lib/esm/components/Panels/RightPanel/RightPanel.js +2 -4
  34. package/lib/esm/components/Panels/RightPanel/RightPanel.js.map +1 -1
  35. package/lib/esm/components/Panels/SlidesPanel/ListWrapper.js +10 -8
  36. package/lib/esm/components/Panels/SlidesPanel/ListWrapper.js.map +1 -1
  37. package/lib/esm/contexts/PropContext.js +14 -20
  38. package/lib/esm/contexts/PropContext.js.map +1 -1
  39. package/lib/esm/styles/_jfReportsPanels.scss +4 -2
  40. package/lib/esm/utils/hooks.js +17 -4
  41. package/lib/esm/utils/hooks.js.map +1 -1
  42. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,29 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ## [3.3.0](https://github.com/jotform/dnd-builder/compare/v3.2.1...v3.3.0) (2026-02-12)
6
+
7
+
8
+ ### Features
9
+
10
+ * adds callback for page visibility changes ([543a49e](https://github.com/jotform/dnd-builder/commit/543a49e62e3be52907d40df6de8f86dc09ae917c))
11
+ * passes selected items to a callback function ([22e801b](https://github.com/jotform/dnd-builder/commit/22e801b27f980b7aae39ce85fe35c02c3f7d9ab9))
12
+
13
+
14
+ ### Bug Fixes
15
+
16
+ * renames and memoizes selected items handler ([78d347b](https://github.com/jotform/dnd-builder/commit/78d347b04009a5d880b827356a0ad29e44f058e1))
17
+
18
+ ### [3.2.1](https://github.com/jotform/dnd-builder/compare/v3.2.0...v3.2.1) (2026-02-10)
19
+
20
+
21
+ ### Bug Fixes
22
+
23
+ * corrects tab indicator positioning ([95c8b59](https://github.com/jotform/dnd-builder/commit/95c8b59480bdc3d189baf2aae15863c9a4419cc4))
24
+ * preventing focus-stayed element ([3999359](https://github.com/jotform/dnd-builder/commit/39993593f34ca4be44a40c38a23313b49f709b7a))
25
+ * tests ([83ab97c](https://github.com/jotform/dnd-builder/commit/83ab97c3a0669a436fb18c66bafef9f98e6fc4dd))
26
+ * unnecessary css line is removed ([485f38d](https://github.com/jotform/dnd-builder/commit/485f38db46a07eb1d440f64478b1ee4b3f24a9ab))
27
+
5
28
  ## [3.2.0](https://github.com/jotform/dnd-builder/compare/v3.1.1...v3.2.0) (2026-02-06)
6
29
 
7
30
 
@@ -85,12 +85,18 @@ Builder.propTypes = {
85
85
  /** Function called upon removing a page */
86
86
  onPageRemove: PropTypes__default['default'].func,
87
87
 
88
+ /** Function called upon page visibility changed */
89
+ onPageVisibilityChanged: PropTypes__default['default'].func,
90
+
88
91
  /** Function called when the slides or the right panel is
89
92
  * toggled takes a boolean value to indicate whether or
90
93
  * not the panel is toggled open.
91
94
  */
92
95
  onRightPanelsToggled: PropTypes__default['default'].func,
93
96
 
97
+ /** Function called upon selecting items */
98
+ onSelectedItemsChanged: PropTypes__default['default'].func,
99
+
94
100
  /** Function called upon editing a general report setting */
95
101
  onSettingChange: PropTypes__default['default'].func,
96
102
 
@@ -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,eAAC,SAAD;AACE,IAAA,IAAI,EAAC;AADP,KAEMF,KAFN;AAAA,2BAIEG,gBAAC,cAAD;AAAA,8BACEA,gBAAC,UAAD;AAAA,gCACED,eAAC,SAAD,KADF,eAEEA,eAAC,KAAD,KAFF;AAAA,QADF,eAKEA,eAAC,UAAD,KALF,eAMEA,eAAC,WAAD,KANF,EAOGD,uBAAuB,iBACtBC,eAAC,cAAD,KARJ;AAAA;AAJF,KADF;AAmBD;;AAEDH,OAAO,CAACK,SAAR,GAAoB;AAClB;AACAC,EAAAA,aAAa,EAAEC,6BAAS,CAACC,KAAV,CAAgB,EAAhB,CAFG;;AAGlB;AACAC,EAAAA,mBAAmB,EAAEF,6BAAS,CAACG,OAAV,CAAkBH,6BAAS,CAACI,IAA5B,CAJH;AAKlBC,EAAAA,kBAAkB,EAAEL,6BAAS,CAACG,OAAV,CAAkBH,6BAAS,CAACM,MAA5B,CALF;;AAMlB;AACAC,EAAAA,YAAY,EAAEP,6BAAS,CAACQ,IAPN;;AAQlB;AACAC,EAAAA,kBAAkB,EAAET,6BAAS,CAACU,MATZ;AAUlBC,EAAAA,eAAe,EAAEC,iCAVC;;AAWlB;AACAC,EAAAA,gBAAgB,EAAEb,6BAAS,CAACQ,IAZV;;AAalB;AACAM,EAAAA,SAAS,EAAEd,6BAAS,CAACQ,IAdH;;AAelB;AACAO,EAAAA,YAAY,EAAEf,6BAAS,CAACQ,IAhBN;;AAiBlB;AACAQ,EAAAA,UAAU,EAAEhB,6BAAS,CAACQ,IAlBJ;;AAmBlB;AACAS,EAAAA,YAAY,EAAEjB,6BAAS,CAACQ,IApBN;;AAqBlB;AACAU,EAAAA,YAAY,EAAElB,6BAAS,CAACQ,IAtBN;AAuBlBW,EAAAA,WAAW,EAAEnB,6BAAS,CAACQ,IAvBL;;AAwBlB;AACAY,EAAAA,SAAS,EAAEpB,6BAAS,CAACQ,IAzBH;;AA0BlB;AACAa,EAAAA,YAAY,EAAErB,6BAAS,CAACQ,IA3BN;;AA4BlB;AACAc,EAAAA,eAAe,EAAEtB,6BAAS,CAACQ,IA7BT;;AA8BlB;AACAe,EAAAA,kBAAkB,EAAEvB,6BAAS,CAACQ,IA/BZ;;AAgClB;AACAgB,EAAAA,YAAY,EAAExB,6BAAS,CAACQ,IAjCN;;AAkClB;AACF;AACA;AACA;AACEiB,EAAAA,oBAAoB,EAAEzB,6BAAS,CAACQ,IAtCd;;AAuClB;AACAkB,EAAAA,eAAe,EAAE1B,6BAAS,CAACQ,IAxCT;;AAyClB;AACAmB,EAAAA,KAAK,EAAE3B,6BAAS,CAACG,OAAV,CACLH,6BAAS,CAACC,KAAV,CAAgB,EAAhB,CADK,CA1CW;;AA6ClB;AACA2B,EAAAA,QAAQ,EAAE5B,6BAAS,CAACC,KAAV,CAAgB,EAAhB,CA9CQ;;AA+ClB;AACA4B,EAAAA,KAAK,EAAE7B,6BAAS,CAAC8B,KAAV,CAAgB,CAAC,WAAD,EAAc,UAAd,CAAhB,CAhDW;AAiDlBnC,EAAAA,uBAAuB,EAAEK,6BAAS,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,eAAC,SAAD;AACE,IAAA,IAAI,EAAC;AADP,KAEMF,KAFN;AAAA,2BAIEG,gBAAC,cAAD;AAAA,8BACEA,gBAAC,UAAD;AAAA,gCACED,eAAC,SAAD,KADF,eAEEA,eAAC,KAAD,KAFF;AAAA,QADF,eAKEA,eAAC,UAAD,KALF,eAMEA,eAAC,WAAD,KANF,EAOGD,uBAAuB,iBACtBC,eAAC,cAAD,KARJ;AAAA;AAJF,KADF;AAmBD;;AAEDH,OAAO,CAACK,SAAR,GAAoB;AAClB;AACAC,EAAAA,aAAa,EAAEC,6BAAS,CAACC,KAAV,CAAgB,EAAhB,CAFG;;AAGlB;AACAC,EAAAA,mBAAmB,EAAEF,6BAAS,CAACG,OAAV,CAAkBH,6BAAS,CAACI,IAA5B,CAJH;AAKlBC,EAAAA,kBAAkB,EAAEL,6BAAS,CAACG,OAAV,CAAkBH,6BAAS,CAACM,MAA5B,CALF;;AAMlB;AACAC,EAAAA,YAAY,EAAEP,6BAAS,CAACQ,IAPN;;AAQlB;AACAC,EAAAA,kBAAkB,EAAET,6BAAS,CAACU,MATZ;AAUlBC,EAAAA,eAAe,EAAEC,iCAVC;;AAWlB;AACAC,EAAAA,gBAAgB,EAAEb,6BAAS,CAACQ,IAZV;;AAalB;AACAM,EAAAA,SAAS,EAAEd,6BAAS,CAACQ,IAdH;;AAelB;AACAO,EAAAA,YAAY,EAAEf,6BAAS,CAACQ,IAhBN;;AAiBlB;AACAQ,EAAAA,UAAU,EAAEhB,6BAAS,CAACQ,IAlBJ;;AAmBlB;AACAS,EAAAA,YAAY,EAAEjB,6BAAS,CAACQ,IApBN;;AAqBlB;AACAU,EAAAA,YAAY,EAAElB,6BAAS,CAACQ,IAtBN;AAuBlBW,EAAAA,WAAW,EAAEnB,6BAAS,CAACQ,IAvBL;;AAwBlB;AACAY,EAAAA,SAAS,EAAEpB,6BAAS,CAACQ,IAzBH;;AA0BlB;AACAa,EAAAA,YAAY,EAAErB,6BAAS,CAACQ,IA3BN;;AA4BlB;AACAc,EAAAA,eAAe,EAAEtB,6BAAS,CAACQ,IA7BT;;AA8BlB;AACAe,EAAAA,kBAAkB,EAAEvB,6BAAS,CAACQ,IA/BZ;;AAgClB;AACAgB,EAAAA,YAAY,EAAExB,6BAAS,CAACQ,IAjCN;;AAkClB;AACAiB,EAAAA,uBAAuB,EAAEzB,6BAAS,CAACQ,IAnCjB;;AAoClB;AACF;AACA;AACA;AACEkB,EAAAA,oBAAoB,EAAE1B,6BAAS,CAACQ,IAxCd;;AAyClB;AACAmB,EAAAA,sBAAsB,EAAE3B,6BAAS,CAACQ,IA1ChB;;AA2ClB;AACAoB,EAAAA,eAAe,EAAE5B,6BAAS,CAACQ,IA5CT;;AA6ClB;AACAqB,EAAAA,KAAK,EAAE7B,6BAAS,CAACG,OAAV,CACLH,6BAAS,CAACC,KAAV,CAAgB,EAAhB,CADK,CA9CW;;AAiDlB;AACA6B,EAAAA,QAAQ,EAAE9B,6BAAS,CAACC,KAAV,CAAgB,EAAhB,CAlDQ;;AAmDlB;AACA8B,EAAAA,KAAK,EAAE/B,6BAAS,CAACgC,KAAV,CAAgB,CAAC,WAAD,EAAc,UAAd,CAAhB,CApDW;AAqDlBrC,EAAAA,uBAAuB,EAAEK,6BAAS,CAACiC;AArDjB,CAApB;;;;"}
@@ -2,6 +2,7 @@
2
2
 
3
3
  var React = require('react');
4
4
  var PropTypes = require('prop-types');
5
+ var isEqual = require('lodash.isequal');
5
6
  var ReportWrapper = require('../ReportWrapper.js');
6
7
  var PropContext = require('../../contexts/PropContext.js');
7
8
  var BuilderContext = require('../../contexts/BuilderContext.js');
@@ -11,6 +12,7 @@ var jsxRuntime = require('react/jsx-runtime');
11
12
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
13
 
13
14
  var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
15
+ var isEqual__default = /*#__PURE__*/_interopDefaultLegacy(isEqual);
14
16
 
15
17
  var BuilderWrapper = function BuilderWrapper(_ref) {
16
18
  var children = _ref.children;
@@ -30,6 +32,16 @@ var BuilderWrapper = function BuilderWrapper(_ref) {
30
32
  var setIsSlidesPanelOpen = BuilderContext.useBuilderStore(function (state) {
31
33
  return state.setIsSlidesPanelOpen;
32
34
  });
35
+ var onSelectedItemsChanged = PropContext.usePropStore(function (state) {
36
+ return state.onSelectedItemsChanged;
37
+ });
38
+ var selectedItems = hooks.useSelectedElements();
39
+ var prevSelectedItems = hooks.usePrevious(selectedItems);
40
+ React.useEffect(function () {
41
+ if (prevSelectedItems && !isEqual__default['default'](prevSelectedItems, selectedItems)) {
42
+ onSelectedItemsChanged(selectedItems);
43
+ }
44
+ }, [selectedItems, onSelectedItemsChanged, prevSelectedItems]);
33
45
  hooks.useFitZoom();
34
46
  React.useEffect(function () {
35
47
  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,YAAM,CAAC,KAAD,CAAtC;AAEA,MAAMC,SAAS,GAAGC,wBAAY,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACC,KAAN,CAAYC,MAAhB;AAAA,GAAN,CAA9B;AACA,MAAMC,eAAe,GAAGC,8BAAe,CAAC,UAAAJ,KAAK;AAAA,WAAIA,KAAK,CAACG,eAAV;AAAA,GAAN,CAAvC;AACA,MAAME,iBAAiB,GAAGD,8BAAe,CAAC,UAAAJ,KAAK;AAAA,WAAIA,KAAK,CAACK,iBAAV;AAAA,GAAN,CAAzC;AACA,MAAMC,kBAAkB,GAAGF,8BAAe,CAAC,UAAAJ,KAAK;AAAA,WAAIA,KAAK,CAACM,kBAAV;AAAA,GAAN,CAA1C;AACA,MAAMC,oBAAoB,GAAGH,8BAAe,CAAC,UAAAJ,KAAK;AAAA,WAAIA,KAAK,CAACO,oBAAV;AAAA,GAAN,CAA5C;AAEAC,EAAAA,gBAAU;AAEVC,EAAAA,eAAS,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,eAAC,aAAD;AAAe,IAAA,IAAI,EAAC,WAApB;AAAA,cACGhB;AADH,IADF;AAKD;;AAEDD,cAAc,CAACkB,SAAf,GAA2B;AACzBjB,EAAAA,QAAQ,EAAEkB,6BAAS,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,YAAM,CAAC,KAAD,CAAtC;AAEA,MAAMC,SAAS,GAAGC,wBAAY,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACC,KAAN,CAAYC,MAAhB;AAAA,GAAN,CAA9B;AACA,MAAMC,eAAe,GAAGC,8BAAe,CAAC,UAAAJ,KAAK;AAAA,WAAIA,KAAK,CAACG,eAAV;AAAA,GAAN,CAAvC;AACA,MAAME,iBAAiB,GAAGD,8BAAe,CAAC,UAAAJ,KAAK;AAAA,WAAIA,KAAK,CAACK,iBAAV;AAAA,GAAN,CAAzC;AACA,MAAMC,kBAAkB,GAAGF,8BAAe,CAAC,UAAAJ,KAAK;AAAA,WAAIA,KAAK,CAACM,kBAAV;AAAA,GAAN,CAA1C;AACA,MAAMC,oBAAoB,GAAGH,8BAAe,CAAC,UAAAJ,KAAK;AAAA,WAAIA,KAAK,CAACO,oBAAV;AAAA,GAAN,CAA5C;AACA,MAAMC,sBAAsB,GAAGT,wBAAY,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACQ,sBAAV;AAAA,GAAN,CAA3C;AACA,MAAMC,aAAa,GAAGC,yBAAmB,EAAzC;AACA,MAAMC,iBAAiB,GAAGC,iBAAW,CAACH,aAAD,CAArC;AAEAI,EAAAA,eAAS,CAAC,YAAM;AACd,QAAIF,iBAAiB,IAAI,CAACG,2BAAO,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,gBAAU;AAEVF,EAAAA,eAAS,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,eAAC,aAAD;AAAe,IAAA,IAAI,EAAC,WAApB;AAAA,cACGtB;AADH,IADF;AAKD;;AAEDD,cAAc,CAACwB,SAAf,GAA2B;AACzBvB,EAAAA,QAAQ,EAAEwB,6BAAS,CAACC,IAAV,CAAeC;AADA,CAA3B;;;;"}
@@ -1,5 +1,6 @@
1
1
  'use strict';
2
2
 
3
+ require('core-js/modules/es.array.concat.js');
3
4
  require('core-js/modules/es.array.map.js');
4
5
  var React = require('react');
5
6
  var PropTypes = require('prop-types');
@@ -18,46 +19,40 @@ var Tabs = function Tabs(_ref) {
18
19
  var activeTab = BuilderContext.useBuilderStore(function (state) {
19
20
  return state.activeTab;
20
21
  });
21
- var isLeftPanelOpen = BuilderContext.useBuilderStore(function (state) {
22
- return state.isLeftPanelOpen;
23
- });
24
- var isRightPanelOpen = BuilderContext.useBuilderStore(function (state) {
25
- return state.isRightPanelOpen;
26
- });
27
22
  var setActiveTab = BuilderContext.useBuilderStore(function (state) {
28
23
  return state.setActiveTab;
29
24
  });
30
25
  var onAnEventTrigger = PropContext.usePropStore(function (state) {
31
26
  return state.onAnEventTrigger;
32
27
  });
33
- var setCurrentTab = React.useCallback(function (index, tab) {
34
- setActiveTab(panel, index);
35
- onAnEventTrigger('settingTabChanged', tab);
36
- }, [setActiveTab, onAnEventTrigger, panel]);
28
+ var setCurrentTab = React.useCallback(function (index) {
29
+ return function () {
30
+ setActiveTab(panel, index);
31
+ onAnEventTrigger('settingTabChanged', tabs[index]);
32
+ };
33
+ }, [setActiveTab, onAnEventTrigger, panel, tabs]);
37
34
  return tabs.length > 1 && /*#__PURE__*/jsxRuntime.jsxs("div", {
38
35
  className: "toolTabs d-flex p-relative ".concat(panel),
39
36
  "data-tab": tabs.length,
40
37
  children: [tabs.map(function (tab, index) {
41
- var checked = activeTab[panel] === index && (panel === 'left' && isLeftPanelOpen || panel === 'right' && isRightPanelOpen);
38
+ var inputId = "tabs-".concat(panel, "-").concat(index);
42
39
  return /*#__PURE__*/jsxRuntime.jsxs(React.Fragment, {
43
40
  children: [/*#__PURE__*/jsxRuntime.jsx("input", {
44
- checked: checked,
45
- className: "toolTabs-tab",
46
- id: tab,
47
- name: "tabs",
48
- onChange: function onChange() {
49
- return setCurrentTab(index, tab);
50
- },
41
+ checked: activeTab[panel] === index,
42
+ className: "toolTabs-tab ".concat(panel),
43
+ id: inputId,
44
+ name: "tabs-".concat(panel),
45
+ onChange: setCurrentTab(index),
51
46
  "tab-count": index,
52
47
  type: "radio"
53
48
  }), /*#__PURE__*/jsxRuntime.jsx("label", {
54
49
  className: "t-normal js-tabLabel",
55
- htmlFor: tab,
50
+ htmlFor: inputId,
56
51
  children: /*#__PURE__*/jsxRuntime.jsx("span", {
57
52
  children: tab
58
53
  })
59
54
  })]
60
- }, tab);
55
+ }, inputId);
61
56
  }), /*#__PURE__*/jsxRuntime.jsx("div", {
62
57
  className: "toolTabs-indicator p-absolute",
63
58
  "data-tab": tabs.length
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.js","sources":["../../../../src/components/Builder/Tabs.js"],"sourcesContent":["import { Fragment, memo, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport { usePropStore } from '../../contexts/PropContext';\n\nconst Tabs = ({ panel, tabs = [] }) => {\n const activeTab = useBuilderStore(state => state.activeTab);\n const isLeftPanelOpen = useBuilderStore(state => state.isLeftPanelOpen);\n const isRightPanelOpen = useBuilderStore(state => state.isRightPanelOpen);\n const setActiveTab = useBuilderStore(state => state.setActiveTab);\n const onAnEventTrigger = usePropStore(state => state.onAnEventTrigger);\n\n const setCurrentTab = useCallback((index, tab) => {\n setActiveTab(panel, index);\n onAnEventTrigger('settingTabChanged', tab);\n }, [setActiveTab, onAnEventTrigger, panel]);\n\n return (\n tabs.length > 1 && (\n <div\n className={`toolTabs d-flex p-relative ${panel}`}\n data-tab={tabs.length}\n >\n { tabs.map((tab, index) => {\n const checked = activeTab[panel] === index\n && ((panel === 'left' && isLeftPanelOpen) || (panel === 'right' && isRightPanelOpen));\n return (\n <Fragment key={tab}>\n <input\n checked={checked}\n className=\"toolTabs-tab\"\n id={tab}\n name=\"tabs\"\n onChange={() => setCurrentTab(index, tab)}\n tab-count={index}\n type=\"radio\"\n />\n <label\n className=\"t-normal js-tabLabel\"\n htmlFor={tab}\n >\n <span>\n {tab}\n </span>\n </label>\n </Fragment>\n );\n })}\n <div\n className=\"toolTabs-indicator p-absolute\"\n data-tab={tabs.length}\n />\n </div>\n )\n );\n};\n\nTabs.propTypes = {\n panel: PropTypes.string.isRequired,\n tabs: PropTypes.arrayOf(PropTypes.string),\n};\n\nexport default memo(Tabs);\n"],"names":["Tabs","panel","tabs","activeTab","useBuilderStore","state","isLeftPanelOpen","isRightPanelOpen","setActiveTab","onAnEventTrigger","usePropStore","setCurrentTab","useCallback","index","tab","length","_jsxs","map","checked","Fragment","_jsx","propTypes","PropTypes","string","isRequired","arrayOf","memo"],"mappings":";;;;;;;;;;;;;AAKA,IAAMA,IAAI,GAAG,SAAPA,IAAO,OAA0B;AAAA,MAAvBC,KAAuB,QAAvBA,KAAuB;AAAA,uBAAhBC,IAAgB;AAAA,MAAhBA,IAAgB,0BAAT,EAAS;AACrC,MAAMC,SAAS,GAAGC,8BAAe,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACF,SAAV;AAAA,GAAN,CAAjC;AACA,MAAMG,eAAe,GAAGF,8BAAe,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACC,eAAV;AAAA,GAAN,CAAvC;AACA,MAAMC,gBAAgB,GAAGH,8BAAe,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACE,gBAAV;AAAA,GAAN,CAAxC;AACA,MAAMC,YAAY,GAAGJ,8BAAe,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACG,YAAV;AAAA,GAAN,CAApC;AACA,MAAMC,gBAAgB,GAAGC,wBAAY,CAAC,UAAAL,KAAK;AAAA,WAAIA,KAAK,CAACI,gBAAV;AAAA,GAAN,CAArC;AAEA,MAAME,aAAa,GAAGC,iBAAW,CAAC,UAACC,KAAD,EAAQC,GAAR,EAAgB;AAChDN,IAAAA,YAAY,CAACP,KAAD,EAAQY,KAAR,CAAZ;AACAJ,IAAAA,gBAAgB,CAAC,mBAAD,EAAsBK,GAAtB,CAAhB;AACD,GAHgC,EAG9B,CAACN,YAAD,EAAeC,gBAAf,EAAiCR,KAAjC,CAH8B,CAAjC;AAKA,SACEC,IAAI,CAACa,MAAL,GAAc,CAAd,iBACEC;AACE,IAAA,SAAS,uCAAgCf,KAAhC,CADX;AAEE,gBAAUC,IAAI,CAACa,MAFjB;AAAA,eAIIb,IAAI,CAACe,GAAL,CAAS,UAACH,GAAD,EAAMD,KAAN,EAAgB;AACzB,UAAMK,OAAO,GAAGf,SAAS,CAACF,KAAD,CAAT,KAAqBY,KAArB,KACTZ,KAAK,KAAK,MAAV,IAAoBK,eAArB,IAA0CL,KAAK,KAAK,OAAV,IAAqBM,gBADrD,CAAhB;AAEA,0BACES,gBAACG,cAAD;AAAA,gCACEC;AACE,UAAA,OAAO,EAAEF,OADX;AAEE,UAAA,SAAS,EAAC,cAFZ;AAGE,UAAA,EAAE,EAAEJ,GAHN;AAIE,UAAA,IAAI,EAAC,MAJP;AAKE,UAAA,QAAQ,EAAE;AAAA,mBAAMH,aAAa,CAACE,KAAD,EAAQC,GAAR,CAAnB;AAAA,WALZ;AAME,uBAAWD,KANb;AAOE,UAAA,IAAI,EAAC;AAPP,UADF,eAUEO;AACE,UAAA,SAAS,EAAC,sBADZ;AAEE,UAAA,OAAO,EAAEN,GAFX;AAAA,iCAIEM;AAAA,sBACGN;AADH;AAJF,UAVF;AAAA,SAAeA,GAAf,CADF;AAqBD,KAxBC,CAJJ,eA6BEM;AACE,MAAA,SAAS,EAAC,+BADZ;AAEE,kBAAUlB,IAAI,CAACa;AAFjB,MA7BF;AAAA,IAFJ;AAsCD,CAlDD;;AAoDAf,IAAI,CAACqB,SAAL,GAAiB;AACfpB,EAAAA,KAAK,EAAEqB,6BAAS,CAACC,MAAV,CAAiBC,UADT;AAEftB,EAAAA,IAAI,EAAEoB,6BAAS,CAACG,OAAV,CAAkBH,6BAAS,CAACC,MAA5B;AAFS,CAAjB;AAKA,0BAAeG,UAAI,CAAC1B,IAAD,CAAnB;;;;"}
1
+ {"version":3,"file":"Tabs.js","sources":["../../../../src/components/Builder/Tabs.js"],"sourcesContent":["import { Fragment, memo, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport { usePropStore } from '../../contexts/PropContext';\n\nconst Tabs = ({ panel, tabs = [] }) => {\n const activeTab = useBuilderStore(state => state.activeTab);\n const setActiveTab = useBuilderStore(state => state.setActiveTab);\n const onAnEventTrigger = usePropStore(state => state.onAnEventTrigger);\n\n const setCurrentTab = useCallback(index => () => {\n setActiveTab(panel, index);\n onAnEventTrigger('settingTabChanged', tabs[index]);\n }, [setActiveTab, onAnEventTrigger, panel, tabs]);\n\n return (\n tabs.length > 1 && (\n <div\n className={`toolTabs d-flex p-relative ${panel}`}\n data-tab={tabs.length}\n >\n {tabs.map((tab, index) => {\n const inputId = `tabs-${panel}-${index}`;\n return (\n <Fragment key={inputId}>\n <input\n checked={activeTab[panel] === index}\n className={`toolTabs-tab ${panel}`}\n id={inputId}\n name={`tabs-${panel}`}\n onChange={setCurrentTab(index)}\n tab-count={index}\n type=\"radio\"\n />\n <label\n className=\"t-normal js-tabLabel\"\n htmlFor={inputId}\n >\n <span>\n {tab}\n </span>\n </label>\n </Fragment>\n );\n })}\n <div\n className=\"toolTabs-indicator p-absolute\"\n data-tab={tabs.length}\n />\n </div>\n )\n );\n};\n\nTabs.propTypes = {\n panel: PropTypes.string.isRequired,\n tabs: PropTypes.arrayOf(PropTypes.string),\n};\n\nexport default memo(Tabs);\n"],"names":["Tabs","panel","tabs","activeTab","useBuilderStore","state","setActiveTab","onAnEventTrigger","usePropStore","setCurrentTab","useCallback","index","length","_jsxs","map","tab","inputId","Fragment","_jsx","propTypes","PropTypes","string","isRequired","arrayOf","memo"],"mappings":";;;;;;;;;;;;;;AAKA,IAAMA,IAAI,GAAG,SAAPA,IAAO,OAA0B;AAAA,MAAvBC,KAAuB,QAAvBA,KAAuB;AAAA,uBAAhBC,IAAgB;AAAA,MAAhBA,IAAgB,0BAAT,EAAS;AACrC,MAAMC,SAAS,GAAGC,8BAAe,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACF,SAAV;AAAA,GAAN,CAAjC;AACA,MAAMG,YAAY,GAAGF,8BAAe,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACC,YAAV;AAAA,GAAN,CAApC;AACA,MAAMC,gBAAgB,GAAGC,wBAAY,CAAC,UAAAH,KAAK;AAAA,WAAIA,KAAK,CAACE,gBAAV;AAAA,GAAN,CAArC;AAEA,MAAME,aAAa,GAAGC,iBAAW,CAAC,UAAAC,KAAK;AAAA,WAAI,YAAM;AAC/CL,MAAAA,YAAY,CAACL,KAAD,EAAQU,KAAR,CAAZ;AACAJ,MAAAA,gBAAgB,CAAC,mBAAD,EAAsBL,IAAI,CAACS,KAAD,CAA1B,CAAhB;AACD,KAHsC;AAAA,GAAN,EAG9B,CAACL,YAAD,EAAeC,gBAAf,EAAiCN,KAAjC,EAAwCC,IAAxC,CAH8B,CAAjC;AAKA,SACEA,IAAI,CAACU,MAAL,GAAc,CAAd,iBACEC;AACE,IAAA,SAAS,uCAAgCZ,KAAhC,CADX;AAEE,gBAAUC,IAAI,CAACU,MAFjB;AAAA,eAIGV,IAAI,CAACY,GAAL,CAAS,UAACC,GAAD,EAAMJ,KAAN,EAAgB;AACxB,UAAMK,OAAO,kBAAWf,KAAX,cAAoBU,KAApB,CAAb;AACA,0BACEE,gBAACI,cAAD;AAAA,gCACEC;AACE,UAAA,OAAO,EAAEf,SAAS,CAACF,KAAD,CAAT,KAAqBU,KADhC;AAEE,UAAA,SAAS,yBAAkBV,KAAlB,CAFX;AAGE,UAAA,EAAE,EAAEe,OAHN;AAIE,UAAA,IAAI,iBAAUf,KAAV,CAJN;AAKE,UAAA,QAAQ,EAAEQ,aAAa,CAACE,KAAD,CALzB;AAME,uBAAWA,KANb;AAOE,UAAA,IAAI,EAAC;AAPP,UADF,eAUEO;AACE,UAAA,SAAS,EAAC,sBADZ;AAEE,UAAA,OAAO,EAAEF,OAFX;AAAA,iCAIEE;AAAA,sBACGH;AADH;AAJF,UAVF;AAAA,SAAeC,OAAf,CADF;AAqBD,KAvBA,CAJH,eA4BEE;AACE,MAAA,SAAS,EAAC,+BADZ;AAEE,kBAAUhB,IAAI,CAACU;AAFjB,MA5BF;AAAA,IAFJ;AAqCD,CA/CD;;AAiDAZ,IAAI,CAACmB,SAAL,GAAiB;AACflB,EAAAA,KAAK,EAAEmB,6BAAS,CAACC,MAAV,CAAiBC,UADT;AAEfpB,EAAAA,IAAI,EAAEkB,6BAAS,CAACG,OAAV,CAAkBH,6BAAS,CAACC,MAA5B;AAFS,CAAjB;AAKA,0BAAeG,UAAI,CAACxB,IAAD,CAAnB;;;;"}
@@ -130,6 +130,10 @@ var PageItemResizer = function PageItemResizer(_ref) {
130
130
 
131
131
  setIsRightPanelOpen(false);
132
132
  resetActiveElements();
133
+
134
+ if (document.activeElement) {
135
+ document.activeElement.blur();
136
+ }
133
137
  };
134
138
 
135
139
  var itemPositionerStyle = React.useMemo(function () {
@@ -1 +1 @@
1
- {"version":3,"file":"PageItemResizer.js","sources":["../../../src/components/PageItemResizer.js"],"sourcesContent":["import {\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { Resizable } from 're-resizable';\nimport { createPortal } from 'react-dom';\nimport classNames from 'classnames';\nimport { resizeStaticProps } from '../constants/staticProps';\nimport TextEditorToolbar from './TextEditor/CustomToolbar';\n\nimport DraggableItemActions from './DraggableItem/DraggableItemActions';\nimport ItemPositioner from './ItemPositioner';\nimport withClickOutside from './withClickOutside';\nimport { useBuilderStore } from '../contexts/BuilderContext';\n\nconst exceptionalClassesForClickOutside = ['contextMenu-itemLabel', 'contextMenu-item'];\nconst ResizableWithClickOutside = withClickOutside(Resizable);\n\nconst enableResize = {\n bottom: true,\n bottomLeft: true,\n bottomRight: true,\n left: true,\n right: true,\n top: true,\n topLeft: true,\n topRight: true,\n};\nconst lockAspectRatioTypes = ['image', 'icon'];\nconst exceptionalClasses = [\n 'reportHandle',\n 'reportItemMenu',\n 'jfReport-pane',\n 'pageSettingSideBtn',\n 'reportItemWrapper',\n 'reportRotater',\n 'forZoom',\n 'ql-toolbar',\n 'jSheetContextMenu',\n 'reset-default-contextMenu',\n];\n\nconst PageItemResizer = ({\n item,\n onResize,\n onResizeStop,\n}) => {\n const zoom = useBuilderStore(state => state.zoom);\n const setIsRightPanelOpen = useBuilderStore(state => state.setIsRightPanelOpen);\n const resetActiveElements = useBuilderStore(state => state.resetActiveElements);\n const isMultipleItemSelected = useBuilderStore(state => state.activeElements.length > 1);\n const isTextEditorOpen = useBuilderStore(state => state.isTextEditorOpen);\n\n const requestRef = useRef();\n const [lockAspectRatio, setLockAspectRatio] = useState(false);\n\n const handleKeyUp = e => {\n if (!e.shiftKey) setLockAspectRatio(false);\n };\n\n const handleKeyDown = e => {\n if (e.shiftKey) setLockAspectRatio(true);\n };\n\n const seriousResize = (deltaWidth, deltaHeight, direction) => {\n return () => {\n onResize(deltaWidth, deltaHeight, direction);\n requestRef.current = undefined;\n };\n };\n\n const onResizeStart = e => {\n e.preventDefault();\n window.addEventListener('keydown', handleKeyDown);\n window.addEventListener('keyup', handleKeyUp);\n };\n\n const onResizeRAF = (e, direction, ref, { height: deltaHeight, width: deltaWidth }) => {\n if (!requestRef.current) {\n requestRef.current = global\n .requestAnimationFrame(\n seriousResize(\n Math.round(deltaWidth * (1 / zoom)),\n Math.round(deltaHeight * (1 / zoom)),\n direction,\n ),\n );\n }\n };\n\n const onResizeEnd = (e, direction, ref, { height: deltaHeight, width: deltaWidth }) => {\n onResizeStop(\n Math.round(deltaWidth * (1 / zoom)),\n Math.round(deltaHeight * (1 / zoom)),\n direction,\n );\n window.removeEventListener('keydown', handleKeyDown);\n window.removeEventListener('keyup', handleKeyUp);\n };\n\n const onClickOutside = event => {\n // clickoutside should not work for scrollbar\n const viewPort = document.querySelector('.jfReport-viewport');\n const { clientHeight, offsetHeight } = viewPort;\n const headerHeight = window.innerHeight - offsetHeight;\n if (event.clientY - headerHeight >= clientHeight\n || Array.from(event.target.classList)\n .some(xClass => exceptionalClassesForClickOutside.includes(xClass))) {\n return;\n }\n setIsRightPanelOpen(false);\n resetActiveElements();\n };\n\n const itemPositionerStyle = useMemo(() => ({\n height: Math.round(item.height * zoom),\n left: Math.round(item.left * zoom),\n pointerEvents: 'none',\n position: 'absolute',\n top: Math.round(item.top * zoom),\n touchAction: 'none',\n width: Math.round(item.width * zoom),\n }), [item.height, item.left, item.top, item.width, zoom]);\n\n const size = useMemo(() => ({\n height: Math.round(item.height * zoom),\n width: Math.round(item.width * zoom),\n }), [item.height, item.width, zoom]);\n\n const { isLocked } = item;\n\n return createPortal(\n <ItemPositioner\n style={itemPositionerStyle}\n >\n <ResizableWithClickOutside\n className={classNames(\n 'reportItemResizer',\n { hideVerticalHandle: !(item.height > 50) },\n { hideHorizontalHandle: !(item.width > 50) },\n )}\n enable={!item.isLocked && enableResize}\n exceptionalClasses={exceptionalClasses}\n lockAspectRatio={lockAspectRatioTypes.includes(item.itemType) || lockAspectRatio}\n onClickOutside={onClickOutside}\n onResize={onResizeRAF}\n onResizeStart={onResizeStart}\n onResizeStop={onResizeEnd}\n size={size}\n {...resizeStaticProps}\n withClickOutsideWrapperClass={`reportItemResizer-wrapper${isLocked ? ' isLocked' : ''}`}\n />\n {!isMultipleItemSelected && <DraggableItemActions />}\n {isTextEditorOpen && (\n <TextEditorToolbar\n itemWidth={item.width * zoom}\n />\n )}\n </ItemPositioner>,\n document.querySelector(`.jfReport-page[data-id=\"${item.pageID}\"]`),\n );\n};\n\nexport default PageItemResizer;\n"],"names":["exceptionalClassesForClickOutside","ResizableWithClickOutside","withClickOutside","Resizable","enableResize","bottom","bottomLeft","bottomRight","left","right","top","topLeft","topRight","lockAspectRatioTypes","exceptionalClasses","PageItemResizer","item","onResize","onResizeStop","zoom","useBuilderStore","state","setIsRightPanelOpen","resetActiveElements","isMultipleItemSelected","activeElements","length","isTextEditorOpen","requestRef","useRef","useState","lockAspectRatio","setLockAspectRatio","handleKeyUp","e","shiftKey","handleKeyDown","seriousResize","deltaWidth","deltaHeight","direction","current","undefined","onResizeStart","preventDefault","window","addEventListener","onResizeRAF","ref","height","width","global","requestAnimationFrame","Math","round","onResizeEnd","removeEventListener","onClickOutside","event","viewPort","document","querySelector","clientHeight","offsetHeight","headerHeight","innerHeight","clientY","Array","from","target","classList","some","xClass","includes","itemPositionerStyle","useMemo","pointerEvents","position","touchAction","size","isLocked","createPortal","_jsxs","_jsx","classNames","hideVerticalHandle","hideHorizontalHandle","itemType","resizeStaticProps","TextEditorToolbar","pageID"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,IAAMA,iCAAiC,GAAG,CAAC,uBAAD,EAA0B,kBAA1B,CAA1C;AACA,IAAMC,yBAAyB,GAAGC,gBAAgB,CAACC,qBAAD,CAAlD;AAEA,IAAMC,YAAY,GAAG;AACnBC,EAAAA,MAAM,EAAE,IADW;AAEnBC,EAAAA,UAAU,EAAE,IAFO;AAGnBC,EAAAA,WAAW,EAAE,IAHM;AAInBC,EAAAA,IAAI,EAAE,IAJa;AAKnBC,EAAAA,KAAK,EAAE,IALY;AAMnBC,EAAAA,GAAG,EAAE,IANc;AAOnBC,EAAAA,OAAO,EAAE,IAPU;AAQnBC,EAAAA,QAAQ,EAAE;AARS,CAArB;AAUA,IAAMC,oBAAoB,GAAG,CAAC,OAAD,EAAU,MAAV,CAA7B;AACA,IAAMC,kBAAkB,GAAG,CACzB,cADyB,EAEzB,gBAFyB,EAGzB,eAHyB,EAIzB,oBAJyB,EAKzB,mBALyB,EAMzB,eANyB,EAOzB,SAPyB,EAQzB,YARyB,EASzB,mBATyB,EAUzB,2BAVyB,CAA3B;;IAaMC,eAAe,GAAG,SAAlBA,eAAkB,OAIlB;AAAA,MAHJC,IAGI,QAHJA,IAGI;AAAA,MAFJC,QAEI,QAFJA,QAEI;AAAA,MADJC,YACI,QADJA,YACI;AACJ,MAAMC,IAAI,GAAGC,8BAAe,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACF,IAAV;AAAA,GAAN,CAA5B;AACA,MAAMG,mBAAmB,GAAGF,8BAAe,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACC,mBAAV;AAAA,GAAN,CAA3C;AACA,MAAMC,mBAAmB,GAAGH,8BAAe,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACE,mBAAV;AAAA,GAAN,CAA3C;AACA,MAAMC,sBAAsB,GAAGJ,8BAAe,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACI,cAAN,CAAqBC,MAArB,GAA8B,CAAlC;AAAA,GAAN,CAA9C;AACA,MAAMC,gBAAgB,GAAGP,8BAAe,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACM,gBAAV;AAAA,GAAN,CAAxC;AAEA,MAAMC,UAAU,GAAGC,YAAM,EAAzB;;AACA,kBAA8CC,cAAQ,CAAC,KAAD,CAAtD;AAAA;AAAA,MAAOC,eAAP;AAAA,MAAwBC,kBAAxB;;AAEA,MAAMC,WAAW,GAAG,SAAdA,WAAc,CAAAC,CAAC,EAAI;AACvB,QAAI,CAACA,CAAC,CAACC,QAAP,EAAiBH,kBAAkB,CAAC,KAAD,CAAlB;AAClB,GAFD;;AAIA,MAAMI,aAAa,GAAG,SAAhBA,aAAgB,CAAAF,CAAC,EAAI;AACzB,QAAIA,CAAC,CAACC,QAAN,EAAgBH,kBAAkB,CAAC,IAAD,CAAlB;AACjB,GAFD;;AAIA,MAAMK,aAAa,GAAG,SAAhBA,aAAgB,CAACC,UAAD,EAAaC,WAAb,EAA0BC,SAA1B,EAAwC;AAC5D,WAAO,YAAM;AACXvB,MAAAA,QAAQ,CAACqB,UAAD,EAAaC,WAAb,EAA0BC,SAA1B,CAAR;AACAZ,MAAAA,UAAU,CAACa,OAAX,GAAqBC,SAArB;AACD,KAHD;AAID,GALD;;AAOA,MAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAAAT,CAAC,EAAI;AACzBA,IAAAA,CAAC,CAACU,cAAF;AACAC,IAAAA,MAAM,CAACC,gBAAP,CAAwB,SAAxB,EAAmCV,aAAnC;AACAS,IAAAA,MAAM,CAACC,gBAAP,CAAwB,OAAxB,EAAiCb,WAAjC;AACD,GAJD;;AAMA,MAAMc,WAAW,GAAG,SAAdA,WAAc,CAACb,CAAD,EAAIM,SAAJ,EAAeQ,GAAf,SAAmE;AAAA,QAArCT,WAAqC,SAA7CU,MAA6C;AAAA,QAAjBX,UAAiB,SAAxBY,KAAwB;;AACrF,QAAI,CAACtB,UAAU,CAACa,OAAhB,EAAyB;AACvBb,MAAAA,UAAU,CAACa,OAAX,GAAqBU,MAAM,CACxBC,qBADkB,CAEjBf,aAAa,CACXgB,IAAI,CAACC,KAAL,CAAWhB,UAAU,IAAI,IAAInB,IAAR,CAArB,CADW,EAEXkC,IAAI,CAACC,KAAL,CAAWf,WAAW,IAAI,IAAIpB,IAAR,CAAtB,CAFW,EAGXqB,SAHW,CAFI,CAArB;AAQD;AACF,GAXD;;AAaA,MAAMe,WAAW,GAAG,SAAdA,WAAc,CAACrB,CAAD,EAAIM,SAAJ,EAAeQ,GAAf,SAAmE;AAAA,QAArCT,WAAqC,SAA7CU,MAA6C;AAAA,QAAjBX,UAAiB,SAAxBY,KAAwB;AACrFhC,IAAAA,YAAY,CACVmC,IAAI,CAACC,KAAL,CAAWhB,UAAU,IAAI,IAAInB,IAAR,CAArB,CADU,EAEVkC,IAAI,CAACC,KAAL,CAAWf,WAAW,IAAI,IAAIpB,IAAR,CAAtB,CAFU,EAGVqB,SAHU,CAAZ;AAKAK,IAAAA,MAAM,CAACW,mBAAP,CAA2B,SAA3B,EAAsCpB,aAAtC;AACAS,IAAAA,MAAM,CAACW,mBAAP,CAA2B,OAA3B,EAAoCvB,WAApC;AACD,GARD;;AAUA,MAAMwB,cAAc,GAAG,SAAjBA,cAAiB,CAAAC,KAAK,EAAI;AAC9B;AACA,QAAMC,QAAQ,GAAGC,QAAQ,CAACC,aAAT,CAAuB,oBAAvB,CAAjB;AACA,QAAQC,YAAR,GAAuCH,QAAvC,CAAQG,YAAR;AAAA,QAAsBC,YAAtB,GAAuCJ,QAAvC,CAAsBI,YAAtB;AACA,QAAMC,YAAY,GAAGnB,MAAM,CAACoB,WAAP,GAAqBF,YAA1C;;AACA,QAAIL,KAAK,CAACQ,OAAN,GAAgBF,YAAhB,IAAgCF,YAAhC,IACGK,KAAK,CAACC,IAAN,CAAWV,KAAK,CAACW,MAAN,CAAaC,SAAxB,EACAC,IADA,CACK,UAAAC,MAAM;AAAA,aAAIxE,iCAAiC,CAACyE,QAAlC,CAA2CD,MAA3C,CAAJ;AAAA,KADX,CADP,EAE2E;AACzE;AACD;;AACDlD,IAAAA,mBAAmB,CAAC,KAAD,CAAnB;AACAC,IAAAA,mBAAmB;AACpB,GAZD;;AAcA,MAAMmD,mBAAmB,GAAGC,aAAO,CAAC;AAAA,WAAO;AACzC1B,MAAAA,MAAM,EAAEI,IAAI,CAACC,KAAL,CAAWtC,IAAI,CAACiC,MAAL,GAAc9B,IAAzB,CADiC;AAEzCX,MAAAA,IAAI,EAAE6C,IAAI,CAACC,KAAL,CAAWtC,IAAI,CAACR,IAAL,GAAYW,IAAvB,CAFmC;AAGzCyD,MAAAA,aAAa,EAAE,MAH0B;AAIzCC,MAAAA,QAAQ,EAAE,UAJ+B;AAKzCnE,MAAAA,GAAG,EAAE2C,IAAI,CAACC,KAAL,CAAWtC,IAAI,CAACN,GAAL,GAAWS,IAAtB,CALoC;AAMzC2D,MAAAA,WAAW,EAAE,MAN4B;AAOzC5B,MAAAA,KAAK,EAAEG,IAAI,CAACC,KAAL,CAAWtC,IAAI,CAACkC,KAAL,GAAa/B,IAAxB;AAPkC,KAAP;AAAA,GAAD,EAQ/B,CAACH,IAAI,CAACiC,MAAN,EAAcjC,IAAI,CAACR,IAAnB,EAAyBQ,IAAI,CAACN,GAA9B,EAAmCM,IAAI,CAACkC,KAAxC,EAA+C/B,IAA/C,CAR+B,CAAnC;AAUA,MAAM4D,IAAI,GAAGJ,aAAO,CAAC;AAAA,WAAO;AAC1B1B,MAAAA,MAAM,EAAEI,IAAI,CAACC,KAAL,CAAWtC,IAAI,CAACiC,MAAL,GAAc9B,IAAzB,CADkB;AAE1B+B,MAAAA,KAAK,EAAEG,IAAI,CAACC,KAAL,CAAWtC,IAAI,CAACkC,KAAL,GAAa/B,IAAxB;AAFmB,KAAP;AAAA,GAAD,EAGhB,CAACH,IAAI,CAACiC,MAAN,EAAcjC,IAAI,CAACkC,KAAnB,EAA0B/B,IAA1B,CAHgB,CAApB;AAKA,MAAQ6D,QAAR,GAAqBhE,IAArB,CAAQgE,QAAR;AAEA,sBAAOC,qBAAY,eACjBC,gBAAC,cAAD;AACE,IAAA,KAAK,EAAER,mBADT;AAAA,4BAGES,eAAC,yBAAD;AACE,MAAA,SAAS,EAAEC,8BAAU,CACnB,mBADmB,EAEnB;AAAEC,QAAAA,kBAAkB,EAAE,EAAErE,IAAI,CAACiC,MAAL,GAAc,EAAhB;AAAtB,OAFmB,EAGnB;AAAEqC,QAAAA,oBAAoB,EAAE,EAAEtE,IAAI,CAACkC,KAAL,GAAa,EAAf;AAAxB,OAHmB,CADvB;AAME,MAAA,MAAM,EAAE,CAAClC,IAAI,CAACgE,QAAN,IAAkB5E,YAN5B;AAOE,MAAA,kBAAkB,EAAEU,kBAPtB;AAQE,MAAA,eAAe,EAAED,oBAAoB,CAAC4D,QAArB,CAA8BzD,IAAI,CAACuE,QAAnC,KAAgDxD,eARnE;AASE,MAAA,cAAc,EAAE0B,cATlB;AAUE,MAAA,QAAQ,EAAEV,WAVZ;AAWE,MAAA,aAAa,EAAEJ,aAXjB;AAYE,MAAA,YAAY,EAAEY,WAZhB;AAaE,MAAA,IAAI,EAAEwB;AAbR,OAcMS,6BAdN;AAeE,MAAA,4BAA4B,qCAA8BR,QAAQ,GAAG,WAAH,GAAiB,EAAvD;AAf9B,OAHF,EAoBG,CAACxD,sBAAD,iBAA2B2D,eAAC,oBAAD,KApB9B,EAqBGxD,gBAAgB,iBACfwD,eAACM,oBAAD;AACE,MAAA,SAAS,EAAEzE,IAAI,CAACkC,KAAL,GAAa/B;AAD1B,MAtBJ;AAAA,IADiB,EA4BjByC,QAAQ,CAACC,aAAT,oCAAkD7C,IAAI,CAAC0E,MAAvD,SA5BiB,CAAnB;AA8BD;;;;"}
1
+ {"version":3,"file":"PageItemResizer.js","sources":["../../../src/components/PageItemResizer.js"],"sourcesContent":["import {\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { Resizable } from 're-resizable';\nimport { createPortal } from 'react-dom';\nimport classNames from 'classnames';\nimport { resizeStaticProps } from '../constants/staticProps';\nimport TextEditorToolbar from './TextEditor/CustomToolbar';\n\nimport DraggableItemActions from './DraggableItem/DraggableItemActions';\nimport ItemPositioner from './ItemPositioner';\nimport withClickOutside from './withClickOutside';\nimport { useBuilderStore } from '../contexts/BuilderContext';\n\nconst exceptionalClassesForClickOutside = ['contextMenu-itemLabel', 'contextMenu-item'];\nconst ResizableWithClickOutside = withClickOutside(Resizable);\n\nconst enableResize = {\n bottom: true,\n bottomLeft: true,\n bottomRight: true,\n left: true,\n right: true,\n top: true,\n topLeft: true,\n topRight: true,\n};\nconst lockAspectRatioTypes = ['image', 'icon'];\nconst exceptionalClasses = [\n 'reportHandle',\n 'reportItemMenu',\n 'jfReport-pane',\n 'pageSettingSideBtn',\n 'reportItemWrapper',\n 'reportRotater',\n 'forZoom',\n 'ql-toolbar',\n 'jSheetContextMenu',\n 'reset-default-contextMenu',\n];\n\nconst PageItemResizer = ({\n item,\n onResize,\n onResizeStop,\n}) => {\n const zoom = useBuilderStore(state => state.zoom);\n const setIsRightPanelOpen = useBuilderStore(state => state.setIsRightPanelOpen);\n const resetActiveElements = useBuilderStore(state => state.resetActiveElements);\n const isMultipleItemSelected = useBuilderStore(state => state.activeElements.length > 1);\n const isTextEditorOpen = useBuilderStore(state => state.isTextEditorOpen);\n\n const requestRef = useRef();\n const [lockAspectRatio, setLockAspectRatio] = useState(false);\n\n const handleKeyUp = e => {\n if (!e.shiftKey) setLockAspectRatio(false);\n };\n\n const handleKeyDown = e => {\n if (e.shiftKey) setLockAspectRatio(true);\n };\n\n const seriousResize = (deltaWidth, deltaHeight, direction) => {\n return () => {\n onResize(deltaWidth, deltaHeight, direction);\n requestRef.current = undefined;\n };\n };\n\n const onResizeStart = e => {\n e.preventDefault();\n window.addEventListener('keydown', handleKeyDown);\n window.addEventListener('keyup', handleKeyUp);\n };\n\n const onResizeRAF = (e, direction, ref, { height: deltaHeight, width: deltaWidth }) => {\n if (!requestRef.current) {\n requestRef.current = global\n .requestAnimationFrame(\n seriousResize(\n Math.round(deltaWidth * (1 / zoom)),\n Math.round(deltaHeight * (1 / zoom)),\n direction,\n ),\n );\n }\n };\n\n const onResizeEnd = (e, direction, ref, { height: deltaHeight, width: deltaWidth }) => {\n onResizeStop(\n Math.round(deltaWidth * (1 / zoom)),\n Math.round(deltaHeight * (1 / zoom)),\n direction,\n );\n window.removeEventListener('keydown', handleKeyDown);\n window.removeEventListener('keyup', handleKeyUp);\n };\n\n const onClickOutside = event => {\n // clickoutside should not work for scrollbar\n const viewPort = document.querySelector('.jfReport-viewport');\n const { clientHeight, offsetHeight } = viewPort;\n const headerHeight = window.innerHeight - offsetHeight;\n if (event.clientY - headerHeight >= clientHeight\n || Array.from(event.target.classList)\n .some(xClass => exceptionalClassesForClickOutside.includes(xClass))) {\n return;\n }\n setIsRightPanelOpen(false);\n resetActiveElements();\n if (document.activeElement) {\n document.activeElement.blur();\n }\n };\n\n const itemPositionerStyle = useMemo(() => ({\n height: Math.round(item.height * zoom),\n left: Math.round(item.left * zoom),\n pointerEvents: 'none',\n position: 'absolute',\n top: Math.round(item.top * zoom),\n touchAction: 'none',\n width: Math.round(item.width * zoom),\n }), [item.height, item.left, item.top, item.width, zoom]);\n\n const size = useMemo(() => ({\n height: Math.round(item.height * zoom),\n width: Math.round(item.width * zoom),\n }), [item.height, item.width, zoom]);\n\n const { isLocked } = item;\n\n return createPortal(\n <ItemPositioner\n style={itemPositionerStyle}\n >\n <ResizableWithClickOutside\n className={classNames(\n 'reportItemResizer',\n { hideVerticalHandle: !(item.height > 50) },\n { hideHorizontalHandle: !(item.width > 50) },\n )}\n enable={!item.isLocked && enableResize}\n exceptionalClasses={exceptionalClasses}\n lockAspectRatio={lockAspectRatioTypes.includes(item.itemType) || lockAspectRatio}\n onClickOutside={onClickOutside}\n onResize={onResizeRAF}\n onResizeStart={onResizeStart}\n onResizeStop={onResizeEnd}\n size={size}\n {...resizeStaticProps}\n withClickOutsideWrapperClass={`reportItemResizer-wrapper${isLocked ? ' isLocked' : ''}`}\n />\n {!isMultipleItemSelected && <DraggableItemActions />}\n {isTextEditorOpen && (\n <TextEditorToolbar\n itemWidth={item.width * zoom}\n />\n )}\n </ItemPositioner>,\n document.querySelector(`.jfReport-page[data-id=\"${item.pageID}\"]`),\n );\n};\n\nexport default PageItemResizer;\n"],"names":["exceptionalClassesForClickOutside","ResizableWithClickOutside","withClickOutside","Resizable","enableResize","bottom","bottomLeft","bottomRight","left","right","top","topLeft","topRight","lockAspectRatioTypes","exceptionalClasses","PageItemResizer","item","onResize","onResizeStop","zoom","useBuilderStore","state","setIsRightPanelOpen","resetActiveElements","isMultipleItemSelected","activeElements","length","isTextEditorOpen","requestRef","useRef","useState","lockAspectRatio","setLockAspectRatio","handleKeyUp","e","shiftKey","handleKeyDown","seriousResize","deltaWidth","deltaHeight","direction","current","undefined","onResizeStart","preventDefault","window","addEventListener","onResizeRAF","ref","height","width","global","requestAnimationFrame","Math","round","onResizeEnd","removeEventListener","onClickOutside","event","viewPort","document","querySelector","clientHeight","offsetHeight","headerHeight","innerHeight","clientY","Array","from","target","classList","some","xClass","includes","activeElement","blur","itemPositionerStyle","useMemo","pointerEvents","position","touchAction","size","isLocked","createPortal","_jsxs","_jsx","classNames","hideVerticalHandle","hideHorizontalHandle","itemType","resizeStaticProps","TextEditorToolbar","pageID"],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  'use strict';
2
2
 
3
- var React = require('react');
4
3
  var BuilderContext = require('../../../contexts/BuilderContext.js');
5
4
  var jsxRuntime = require('react/jsx-runtime');
6
5
  var close = require('../../../assets/svg/close.svg.js');
@@ -23,7 +22,5 @@ var LeftPanelToggler = function LeftPanelToggler() {
23
22
  });
24
23
  };
25
24
 
26
- var LeftPanelCloser = /*#__PURE__*/React.memo(LeftPanelToggler);
27
-
28
- module.exports = LeftPanelCloser;
25
+ module.exports = LeftPanelToggler;
29
26
  //# 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,8BAAe,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,eAACC,KAAD;AAAa,QAAA,SAAS,EAAC;AAAvB;AALF;AADF,IADF;AAWD,CAbD;;AAeA,mCAAeC,UAAI,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,8BAAe,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,eAACC,KAAD;AAAa,QAAA,SAAS,EAAC;AAAvB;AALF;AADF,IADF;AAWD;;;;"}
@@ -229,7 +229,5 @@ var RightPanel = function RightPanel() {
229
229
  });
230
230
  };
231
231
 
232
- var RightPanel$1 = /*#__PURE__*/React.memo(RightPanel);
233
-
234
- module.exports = RightPanel$1;
232
+ module.exports = RightPanel;
235
233
  //# 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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"}
@@ -33,12 +33,9 @@ var ListWrapper = function ListWrapper(_ref) {
33
33
  onSortEnd = _ref$onSortEnd === void 0 ? function () {} : _ref$onSortEnd,
34
34
  _ref$pageGetter = _ref.pageGetter,
35
35
  pageGetter = _ref$pageGetter === void 0 ? function () {} : _ref$pageGetter;
36
- var pages = PropContext.usePropStore(function (state) {
37
- return state.pages;
36
+ var pageCount = PropContext.usePropStore(function (state) {
37
+ return state.pages.length;
38
38
  });
39
- var pageCount = React.useMemo(function () {
40
- return pages.length;
41
- }, [pages]);
42
39
  var onPageAdd = PropContext.usePropStore(function (state) {
43
40
  return state.onPageAdd;
44
41
  });
@@ -51,6 +48,9 @@ var ListWrapper = function ListWrapper(_ref) {
51
48
  var reportSettings = PropContext.usePropStore(function (state) {
52
49
  return state.settings;
53
50
  });
51
+ var onPageVisibilityChanged = PropContext.usePropStore(function (state) {
52
+ return state.onPageVisibilityChanged;
53
+ });
54
54
  var listRef = React.useRef(null);
55
55
 
56
56
  var _useState = React.useState(-1),
@@ -100,7 +100,7 @@ var ListWrapper = function ListWrapper(_ref) {
100
100
  listRef.current = outerRef;
101
101
  }
102
102
  }, []);
103
- hooks.usePageVisibility(function (index) {
103
+ var handlePageVisibility = React.useCallback(function (index) {
104
104
  if (index && !Number.isNaN(index)) {
105
105
  var _listRef$current;
106
106
 
@@ -118,9 +118,11 @@ var ListWrapper = function ListWrapper(_ref) {
118
118
 
119
119
  if (nextSelectedThumbnail) {
120
120
  nextSelectedThumbnail.classList.add('isSelected');
121
+ onPageVisibilityChanged(index);
121
122
  }
122
123
  }
123
- }, pageCount, selectedPageIndex); // TODO: could be better than now. scrollend listener is a choice for some cases
124
+ }, [onPageVisibilityChanged]);
125
+ hooks.usePageVisibility(handlePageVisibility, pageCount, selectedPageIndex); // TODO: could be better than now. scrollend listener is a choice for some cases
124
126
 
125
127
  var resetSelectedPageIndex = React.useCallback(function () {
126
128
  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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"}
@@ -4,12 +4,14 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
6
  var PropTypes = require('prop-types');
7
+ var isEqual = require('lodash.isequal');
7
8
  var zustand = require('zustand');
8
9
  var jsxRuntime = require('react/jsx-runtime');
9
10
 
10
11
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
12
 
12
13
  var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
14
+ var isEqual__default = /*#__PURE__*/_interopDefaultLegacy(isEqual);
13
15
 
14
16
  var _excluded = ["children"];
15
17
 
@@ -40,6 +42,8 @@ var propStore = function propStore(props) {
40
42
  onPageDuplicate: props.onPageDuplicate || fn,
41
43
  onPageOrdersChange: props.onPageOrdersChange || fn,
42
44
  onPageRemove: props.onPageRemove || fn,
45
+ onPageVisibilityChanged: props.onPageVisibilityChanged || fn,
46
+ onSelectedItemsChanged: props.onSelectedItemsChanged || fn,
43
47
  onSettingChange: props.onSettingChange || fn,
44
48
  pages: props.pages || [],
45
49
  setAcceptedItems: function setAcceptedItems(acceptedItems) {
@@ -87,34 +91,25 @@ var PropProvider = function PropProvider(_ref) {
87
91
  pages = props.pages,
88
92
  settings = props.settings;
89
93
  React.useEffect(function () {
90
- var _storeRef$current$get = storeRef.current.getState(),
91
- setPages = _storeRef$current$get.setPages;
92
-
93
- if (pages) {
94
- setPages(pages);
95
- }
94
+ var state = storeRef.current.getState();
95
+ if (!pages || isEqual__default['default'](state.pages, pages)) return;
96
+ state.setPages(pages);
96
97
  }, [pages]);
97
98
  React.useEffect(function () {
98
- var _storeRef$current$get2 = storeRef.current.getState(),
99
- setItemAccessor = _storeRef$current$get2.setItemAccessor;
99
+ var _storeRef$current$get = storeRef.current.getState(),
100
+ setItemAccessor = _storeRef$current$get.setItemAccessor;
100
101
 
101
102
  setItemAccessor(itemAccessor);
102
103
  }, [itemAccessor]);
103
104
  React.useEffect(function () {
104
- var _storeRef$current$get3 = storeRef.current.getState(),
105
- setAcceptedItems = _storeRef$current$get3.setAcceptedItems;
106
-
107
- if (acceptedItems) {
108
- setAcceptedItems(acceptedItems);
109
- }
105
+ var state = storeRef.current.getState();
106
+ if (!acceptedItems || isEqual__default['default'](state.acceptedItems, acceptedItems)) return;
107
+ state.setAcceptedItems(acceptedItems);
110
108
  }, [acceptedItems]);
111
109
  React.useEffect(function () {
112
- var _storeRef$current$get4 = storeRef.current.getState(),
113
- setSettings = _storeRef$current$get4.setSettings;
114
-
115
- if (settings) {
116
- setSettings(settings);
117
- }
110
+ var state = storeRef.current.getState();
111
+ if (!settings || isEqual__default['default'](state.settings, settings)) return;
112
+ state.setSettings(settings);
118
113
  }, [settings]);
119
114
  return /*#__PURE__*/jsxRuntime.jsx(PropContext.Provider, {
120
115
  value: storeRef.current,