@jotforminc/dnd-builder 3.2.1 → 3.4.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 (90) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/lib/cjs/assets/svg/exclamation.svg.js +22 -0
  3. package/lib/cjs/assets/svg/exclamation.svg.js.map +1 -0
  4. package/lib/cjs/components/Builder/Builder.js +6 -0
  5. package/lib/cjs/components/Builder/Builder.js.map +1 -1
  6. package/lib/cjs/components/Builder/BuilderWrapper.js +17 -2
  7. package/lib/cjs/components/Builder/BuilderWrapper.js.map +1 -1
  8. package/lib/cjs/components/Builder/Page.js +3 -1
  9. package/lib/cjs/components/Builder/Page.js.map +1 -1
  10. package/lib/cjs/components/DraggableItem/DraggableItem.js +30 -19
  11. package/lib/cjs/components/DraggableItem/DraggableItem.js.map +1 -1
  12. package/lib/cjs/components/ErrorBoundary/ErrorBoundary.js +94 -0
  13. package/lib/cjs/components/ErrorBoundary/ErrorBoundary.js.map +1 -0
  14. package/lib/cjs/components/ErrorBoundary/ErrorDetails.js +81 -0
  15. package/lib/cjs/components/ErrorBoundary/ErrorDetails.js.map +1 -0
  16. package/lib/cjs/components/ErrorBoundary/ErrorFallbackWrapper.js +129 -0
  17. package/lib/cjs/components/ErrorBoundary/ErrorFallbackWrapper.js.map +1 -0
  18. package/lib/cjs/components/Panels/LeftPanel/LeftPanelCloser.js +1 -4
  19. package/lib/cjs/components/Panels/LeftPanel/LeftPanelCloser.js.map +1 -1
  20. package/lib/cjs/components/Panels/RightPanel/RightPanel.js +1 -3
  21. package/lib/cjs/components/Panels/RightPanel/RightPanel.js.map +1 -1
  22. package/lib/cjs/components/Panels/RightPanel/Settings.js +3 -1
  23. package/lib/cjs/components/Panels/RightPanel/Settings.js.map +1 -1
  24. package/lib/cjs/components/Panels/SlidesPanel/ListWrapper.js +9 -7
  25. package/lib/cjs/components/Panels/SlidesPanel/ListWrapper.js.map +1 -1
  26. package/lib/cjs/components/Preview/StaticItem.js +10 -7
  27. package/lib/cjs/components/Preview/StaticItem.js.map +1 -1
  28. package/lib/cjs/components/Preview/StaticPage.js +26 -21
  29. package/lib/cjs/components/Preview/StaticPage.js.map +1 -1
  30. package/lib/cjs/constants/texts.js +5 -0
  31. package/lib/cjs/constants/texts.js.map +1 -1
  32. package/lib/cjs/contexts/BuilderContext.js +3 -0
  33. package/lib/cjs/contexts/BuilderContext.js.map +1 -1
  34. package/lib/cjs/contexts/PropContext.js +15 -20
  35. package/lib/cjs/contexts/PropContext.js.map +1 -1
  36. package/lib/cjs/contexts/Providers.js +6 -1
  37. package/lib/cjs/contexts/Providers.js.map +1 -1
  38. package/lib/cjs/styles/_jfReportsMain.scss +150 -0
  39. package/lib/cjs/utils/hooks.js +17 -3
  40. package/lib/cjs/utils/hooks.js.map +1 -1
  41. package/lib/cjs/utils/icons.js +2 -0
  42. package/lib/cjs/utils/icons.js.map +1 -1
  43. package/lib/esm/assets/svg/exclamation.svg.js +20 -0
  44. package/lib/esm/assets/svg/exclamation.svg.js.map +1 -0
  45. package/lib/esm/components/Builder/Builder.js +6 -0
  46. package/lib/esm/components/Builder/Builder.js.map +1 -1
  47. package/lib/esm/components/Builder/BuilderWrapper.js +17 -3
  48. package/lib/esm/components/Builder/BuilderWrapper.js.map +1 -1
  49. package/lib/esm/components/Builder/Page.js +4 -2
  50. package/lib/esm/components/Builder/Page.js.map +1 -1
  51. package/lib/esm/components/DraggableItem/DraggableItem.js +31 -20
  52. package/lib/esm/components/DraggableItem/DraggableItem.js.map +1 -1
  53. package/lib/esm/components/ErrorBoundary/ErrorBoundary.js +88 -0
  54. package/lib/esm/components/ErrorBoundary/ErrorBoundary.js.map +1 -0
  55. package/lib/esm/components/ErrorBoundary/ErrorDetails.js +75 -0
  56. package/lib/esm/components/ErrorBoundary/ErrorDetails.js.map +1 -0
  57. package/lib/esm/components/ErrorBoundary/ErrorFallbackWrapper.js +123 -0
  58. package/lib/esm/components/ErrorBoundary/ErrorFallbackWrapper.js.map +1 -0
  59. package/lib/esm/components/Panels/LeftPanel/Elements.js +2 -2
  60. package/lib/esm/components/Panels/LeftPanel/Elements.js.map +1 -1
  61. package/lib/esm/components/Panels/LeftPanel/LeftPanelCloser.js +1 -4
  62. package/lib/esm/components/Panels/LeftPanel/LeftPanelCloser.js.map +1 -1
  63. package/lib/esm/components/Panels/RightPanel/RightPanel.js +2 -4
  64. package/lib/esm/components/Panels/RightPanel/RightPanel.js.map +1 -1
  65. package/lib/esm/components/Panels/RightPanel/Settings.js +4 -2
  66. package/lib/esm/components/Panels/RightPanel/Settings.js.map +1 -1
  67. package/lib/esm/components/Panels/SlidesPanel/ListWrapper.js +10 -8
  68. package/lib/esm/components/Panels/SlidesPanel/ListWrapper.js.map +1 -1
  69. package/lib/esm/components/Preview/StaticItem.js +10 -7
  70. package/lib/esm/components/Preview/StaticItem.js.map +1 -1
  71. package/lib/esm/components/Preview/StaticPage.js +26 -21
  72. package/lib/esm/components/Preview/StaticPage.js.map +1 -1
  73. package/lib/esm/constants/texts.js +5 -0
  74. package/lib/esm/constants/texts.js.map +1 -1
  75. package/lib/esm/contexts/BuilderContext.js +3 -0
  76. package/lib/esm/contexts/BuilderContext.js.map +1 -1
  77. package/lib/esm/contexts/PropContext.js +14 -20
  78. package/lib/esm/contexts/PropContext.js.map +1 -1
  79. package/lib/esm/contexts/Providers.js +6 -1
  80. package/lib/esm/contexts/Providers.js.map +1 -1
  81. package/lib/esm/styles/_jfReportsMain.scss +150 -0
  82. package/lib/esm/utils/hooks.js +17 -4
  83. package/lib/esm/utils/hooks.js.map +1 -1
  84. package/lib/esm/utils/icons.js +1 -0
  85. package/lib/esm/utils/icons.js.map +1 -1
  86. package/package.json +2 -1
  87. package/lib/cjs/components/ErrorBoundary.js +0 -101
  88. package/lib/cjs/components/ErrorBoundary.js.map +0 -1
  89. package/lib/esm/components/ErrorBoundary.js +0 -95
  90. package/lib/esm/components/ErrorBoundary.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,34 @@
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.4.0](https://github.com/jotform/dnd-builder/compare/v3.3.0...v3.4.0) (2026-02-18)
6
+
7
+
8
+ ### Features
9
+
10
+ * **error-boundary:** new error screen and item and page diff ([52bc053](https://github.com/jotform/dnd-builder/commit/52bc053c15ef76fc4712f4d55b278ad33074c3bd))
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * **dnd-builder:** control right panel visibility ([c985243](https://github.com/jotform/dnd-builder/commit/c985243adc6d074b9c599362f26304bacb7a96a1))
16
+ * **error-boundary:** update for ErrorBoundary component and error details ([0aa8d0e](https://github.com/jotform/dnd-builder/commit/0aa8d0ecbcb87910e71f4eb457d2c48dc1f32924))
17
+ * **knip:** add ignores ([c4e0796](https://github.com/jotform/dnd-builder/commit/c4e07967823924976bcbf9680e9d1dfc5d3f9f5d))
18
+ * **knip:** add ignores types ([3907435](https://github.com/jotform/dnd-builder/commit/39074359c79c05c9deabcf882c128ffe41eb893c))
19
+
20
+ ## [3.3.0](https://github.com/jotform/dnd-builder/compare/v3.2.1...v3.3.0) (2026-02-12)
21
+
22
+
23
+ ### Features
24
+
25
+ * adds callback for page visibility changes ([543a49e](https://github.com/jotform/dnd-builder/commit/543a49e62e3be52907d40df6de8f86dc09ae917c))
26
+ * passes selected items to a callback function ([22e801b](https://github.com/jotform/dnd-builder/commit/22e801b27f980b7aae39ce85fe35c02c3f7d9ab9))
27
+
28
+
29
+ ### Bug Fixes
30
+
31
+ * renames and memoizes selected items handler ([78d347b](https://github.com/jotform/dnd-builder/commit/78d347b04009a5d880b827356a0ad29e44f058e1))
32
+
5
33
  ### [3.2.1](https://github.com/jotform/dnd-builder/compare/v3.2.0...v3.2.1) (2026-02-10)
6
34
 
7
35
 
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+
5
+ var _path;
6
+
7
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
8
+
9
+ function SvgExclamation(props) {
10
+ return /*#__PURE__*/React.createElement("svg", _extends({
11
+ xmlns: "http://www.w3.org/2000/svg",
12
+ fill: "currentColor",
13
+ viewBox: "0 0 24 24"
14
+ }, props), _path || (_path = /*#__PURE__*/React.createElement("path", {
15
+ fillRule: "evenodd",
16
+ d: "M13.78 3.101c-.737-1.474-2.84-1.473-3.576.001L2.21 19.106A2 2 0 003.998 22h15.996a2 2 0 001.788-2.894L13.78 3.1zM11.995 17a1 1 0 100 2 1 1 0 000-2zm-1-2a1 1 0 102 0V9a1 1 0 10-2 0v6z",
17
+ clipRule: "evenodd"
18
+ })));
19
+ }
20
+
21
+ module.exports = SvgExclamation;
22
+ //# sourceMappingURL=exclamation.svg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exclamation.svg.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;"}
@@ -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,19 @@ var BuilderWrapper = function BuilderWrapper(_ref) {
30
32
  var setIsSlidesPanelOpen = BuilderContext.useBuilderStore(function (state) {
31
33
  return state.setIsSlidesPanelOpen;
32
34
  });
35
+ var shouldShowRightPanelInitially = BuilderContext.useBuilderStore(function (state) {
36
+ return state.shouldShowRightPanelInitially;
37
+ });
38
+ var onSelectedItemsChanged = PropContext.usePropStore(function (state) {
39
+ return state.onSelectedItemsChanged;
40
+ });
41
+ var selectedItems = hooks.useSelectedElements();
42
+ var prevSelectedItems = hooks.usePrevious(selectedItems);
43
+ React.useEffect(function () {
44
+ if (prevSelectedItems && !isEqual__default['default'](prevSelectedItems, selectedItems)) {
45
+ onSelectedItemsChanged(selectedItems);
46
+ }
47
+ }, [selectedItems, onSelectedItemsChanged, prevSelectedItems]);
33
48
  hooks.useFitZoom();
34
49
  React.useEffect(function () {
35
50
  if (!decidedWhichPanelToOpen.current) {
@@ -38,7 +53,7 @@ var BuilderWrapper = function BuilderWrapper(_ref) {
38
53
  setIsLeftPanelOpen(false);
39
54
  }
40
55
 
41
- setIsSlidesPanelOpen(true);
56
+ setIsSlidesPanelOpen(shouldShowRightPanelInitially);
42
57
  } else {
43
58
  if (isSlidesPanelOpen) {
44
59
  setIsSlidesPanelOpen(false);
@@ -49,7 +64,7 @@ var BuilderWrapper = function BuilderWrapper(_ref) {
49
64
 
50
65
  decidedWhichPanelToOpen.current = true;
51
66
  }
52
- }, [pageCount, isLeftPanelOpen, isSlidesPanelOpen, setIsLeftPanelOpen, setIsSlidesPanelOpen]);
67
+ }, [pageCount, isLeftPanelOpen, isSlidesPanelOpen, setIsLeftPanelOpen, setIsSlidesPanelOpen, shouldShowRightPanelInitially]);
53
68
  return /*#__PURE__*/jsxRuntime.jsx(ReportWrapper, {
54
69
  mode: "customize",
55
70
  children: children
@@ -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 shouldShowRightPanelInitially = useBuilderStore(state => state.shouldShowRightPanelInitially);\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(shouldShowRightPanelInitially);\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 shouldShowRightPanelInitially,\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","shouldShowRightPanelInitially","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,6BAA6B,GAAGJ,8BAAe,CAAC,UAAAJ,KAAK;AAAA,WAAIA,KAAK,CAACQ,6BAAV;AAAA,GAAN,CAArD;AACA,MAAMC,sBAAsB,GAAGV,wBAAY,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACS,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,CAAClB,uBAAuB,CAACqB,OAA7B,EAAsC;AACpC,UAAInB,SAAS,GAAG,CAAhB,EAAmB;AACjB,YAAIK,eAAJ,EAAqB;AACnBG,UAAAA,kBAAkB,CAAC,KAAD,CAAlB;AACD;;AACDC,QAAAA,oBAAoB,CAACC,6BAAD,CAApB;AACD,OALD,MAKO;AACL,YAAIH,iBAAJ,EAAuB;AACrBE,UAAAA,oBAAoB,CAAC,KAAD,CAApB;AACD;;AACDD,QAAAA,kBAAkB,CAAC,IAAD,CAAlB;AACD;;AAEDV,MAAAA,uBAAuB,CAACqB,OAAxB,GAAkC,IAAlC;AACD;AACF,GAhBQ,EAgBN,CACDnB,SADC,EAEDK,eAFC,EAGDE,iBAHC,EAIDC,kBAJC,EAKDC,oBALC,EAMDC,6BANC,CAhBM,CAAT;AAyBA,sBACEU,eAAC,aAAD;AAAe,IAAA,IAAI,EAAC,WAApB;AAAA,cACGvB;AADH,IADF;AAKD;;AAEDD,cAAc,CAACyB,SAAf,GAA2B;AACzBxB,EAAAA,QAAQ,EAAEyB,6BAAS,CAACC,IAAV,CAAeC;AADA,CAA3B;;;;"}
@@ -13,6 +13,7 @@ var functions = require('../../utils/functions.js');
13
13
  var classNames = require('../../constants/classNames.js');
14
14
  var generateId = require('../../utils/generateId.js');
15
15
  var hooks = require('../../utils/hooks.js');
16
+ var ErrorBoundary = require('../ErrorBoundary/ErrorBoundary.js');
16
17
  var jsxRuntime = require('react/jsx-runtime');
17
18
 
18
19
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -225,7 +226,8 @@ var Page = function Page(_ref) {
225
226
  var reportBackgroundColor = settings.reportBackgroundColor;
226
227
  var backgroundColor = page.backgroundColor;
227
228
  var bgColor = backgroundColor ? backgroundColor : reportBackgroundColor || '#fff';
228
- return /*#__PURE__*/jsxRuntime.jsx(jsxRuntime.Fragment, {
229
+ return /*#__PURE__*/jsxRuntime.jsx(ErrorBoundary, {
230
+ level: "page",
229
231
  children: /*#__PURE__*/jsxRuntime.jsx("div", {
230
232
  ref: combinedRef,
231
233
  className: classNames.pageContainer,
@@ -1 +1 @@
1
- {"version":3,"file":"Page.js","sources":["../../../../src/components/Builder/Page.js"],"sourcesContent":["import {\n useRef,\n memo,\n useCallback,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { useDrop } from 'react-dnd';\nimport {\n ACCEPTED_TYPES,\n DRAGGABLE_ITEM_TYPE,\n DROPPABLE_ITEM_TYPE,\n} from '../../constants/itemTypes';\nimport AlignmentGuides from '../AlignmentGuides';\nimport ReportItemsWrapper from '../ReportItemsWrapper';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport { usePropStore } from '../../contexts/PropContext';\nimport {\n getCorrectDroppedOffsetValue,\n findItemById,\n getMatchesForItem,\n roundPositionValues,\n getCoordinatesFromMatches,\n} from '../../utils/functions';\nimport * as classNames from '../../constants/classNames';\nimport generateId from '../../utils/generateId';\nimport { useSelectedElements } from '../../utils/hooks';\n\nconst axes = ['x', 'y'];\n\nconst Page = ({\n items = [],\n page = {},\n style = {},\n}) => {\n const activeElements = useBuilderStore(state => state.activeElements);\n const setActiveElements = useBuilderStore(state => state.setActiveElements);\n const setIsRightPanelOpen = useBuilderStore(state => state.setIsRightPanelOpen);\n const zoom = useBuilderStore(state => state.zoom);\n const isResize = useBuilderStore(state => state.isResize);\n const guides = useBuilderStore(state => state.guides);\n const matches = useBuilderStore(state => state.matches);\n const setMatches = useBuilderStore(state => state.setMatches);\n\n const onItemAdd = usePropStore(state => state.onItemAdd);\n const onItemMove = usePropStore(state => state.onItemMove);\n const onItemsMove = usePropStore(state => state.onItemsMove);\n const additionalPageItems = usePropStore(state => state.additionalPageItems);\n const onAnEventTrigger = usePropStore(state => state.onAnEventTrigger);\n const settings = usePropStore(state => state.settings);\n const acceptedItems = usePropStore(state => state.acceptedItems);\n const pages = usePropStore(state => state.pages);\n\n const requestRef = useRef();\n const dropRef = useRef(null); // for getting the bounding client rect\n\n const drawAlignmentGuides = (item, monitor) => {\n return () => {\n try {\n if (!monitor || monitor.getSourceClientOffset() === null) {\n requestRef.current = undefined;\n return;\n }\n const coords = getCorrectDroppedOffsetValue(\n monitor.getSourceClientOffset(),\n monitor.getInitialSourceClientOffset(),\n dropRef.current.getBoundingClientRect(),\n zoom,\n );\n const activeItem = {\n ...item, ...coords,\n };\n if (activeItem.id && activeItem.pageID) {\n const newMatches = getMatchesForItem(activeItem, guides, zoom);\n setMatches(newMatches);\n }\n requestRef.current = undefined;\n } catch (error) {\n setMatches({});\n }\n };\n };\n\n const isMultipleItemSelected = activeElements.length > 1;\n\n const onHover = (item, monitor) => {\n if (!requestRef.current) {\n requestRef.current = global.requestAnimationFrame(drawAlignmentGuides(item, monitor));\n }\n };\n\n const selectedElements = useSelectedElements();\n\n const [{ isOver }, drop] = useDrop({\n accept: ACCEPTED_TYPES,\n collect: monitor => {\n return {\n isOver: monitor.isOver(),\n };\n },\n drop: (item, monitor) => {\n setMatches({});\n const coords = getCorrectDroppedOffsetValue(\n monitor.getSourceClientOffset(),\n monitor.getInitialSourceClientOffset(),\n dropRef.current?.getBoundingClientRect(),\n zoom,\n );\n const type = monitor.getItemType();\n const {\n id, itemType, pageID, ...additionalData\n } = item;\n const newCoords = {};\n if (type === DROPPABLE_ITEM_TYPE) {\n const itemID = generateId();\n const roundedCoords = roundPositionValues(coords);\n onItemAdd({\n ...acceptedItems[itemType].details,\n id: itemID,\n pageID: page.id,\n ...roundedCoords,\n ...additionalData,\n });\n onAnEventTrigger('reportItemAdd', itemType);\n setActiveElements(itemID);\n setIsRightPanelOpen(true);\n newCoords[itemID] = roundedCoords;\n } else if (type === DRAGGABLE_ITEM_TYPE) {\n const newItem = { ...item, ...coords };\n const newMatches = getMatchesForItem(newItem, guides, zoom);\n const dragCoords = getCoordinatesFromMatches(newItem, newMatches, zoom);\n const roundedDragCoords = roundPositionValues(dragCoords);\n if (isMultipleItemSelected) {\n const leftDifference = additionalData.left - roundedDragCoords.left;\n const topDifference = additionalData.top - roundedDragCoords.top;\n const _items = activeElements.reduce((acc, curr) => {\n const tempItem = findItemById(curr, pages);\n const itemLeft = Math.round(tempItem.left - leftDifference);\n const itemTop = Math.round(tempItem.top - topDifference);\n acc[curr] = {\n id: curr,\n left: itemLeft,\n pageID: page.id,\n top: itemTop,\n };\n newCoords[curr] = {\n left: itemLeft,\n top: itemTop,\n };\n return acc;\n }, {});\n onItemsMove({ items: _items });\n } else {\n onItemMove({\n id,\n pageID: page.id,\n ...roundedDragCoords,\n });\n newCoords[id] = roundedDragCoords;\n }\n }\n\n return newCoords;\n },\n hover: onHover,\n });\n\n const combinedRef = useCallback(node => {\n dropRef.current = node;\n drop(node);\n }, [drop]);\n\n const { reportBackgroundColor } = settings;\n const { backgroundColor } = page;\n const bgColor = backgroundColor ? backgroundColor : reportBackgroundColor || '#fff';\n\n return (\n <>\n <div\n ref={combinedRef}\n className={classNames.pageContainer}\n style={{\n backgroundColor: bgColor,\n ...style,\n }}\n >\n <div className=\"jfReport-hider o-hidden f-all p-relative\">\n <ReportItemsWrapper\n items={items}\n />\n {additionalPageItems}\n {/* when isOver is true, the alignment guides are shown completely */}\n {/* when isResize is true, the alignment guides are shown only for the page of the selected element */}\n {(isOver || (isResize && selectedElements[0]?.pageID === page.id)) && axes.map(axis => {\n if (!matches[axis]) return null;\n return (\n <AlignmentGuides\n key={axis}\n axis={axis}\n guides={guides[page.id]}\n matches={matches[axis]}\n />\n );\n })}\n </div>\n </div>\n </>\n );\n};\n\nPage.propTypes = {\n items: PropTypes.arrayOf(\n PropTypes.shape({}),\n ),\n page: PropTypes.shape({\n backgroundColor: PropTypes.string,\n }),\n style: PropTypes.shape({}),\n};\n\nexport default memo(Page);\n"],"names":["axes","Page","items","page","style","activeElements","useBuilderStore","state","setActiveElements","setIsRightPanelOpen","zoom","isResize","guides","matches","setMatches","onItemAdd","usePropStore","onItemMove","onItemsMove","additionalPageItems","onAnEventTrigger","settings","acceptedItems","pages","requestRef","useRef","dropRef","drawAlignmentGuides","item","monitor","getSourceClientOffset","current","undefined","coords","getCorrectDroppedOffsetValue","getInitialSourceClientOffset","getBoundingClientRect","activeItem","id","pageID","newMatches","getMatchesForItem","error","isMultipleItemSelected","length","onHover","global","requestAnimationFrame","selectedElements","useSelectedElements","useDrop","accept","ACCEPTED_TYPES","collect","isOver","drop","type","getItemType","itemType","additionalData","newCoords","DROPPABLE_ITEM_TYPE","itemID","generateId","roundedCoords","roundPositionValues","details","DRAGGABLE_ITEM_TYPE","newItem","dragCoords","getCoordinatesFromMatches","roundedDragCoords","leftDifference","left","topDifference","top","_items","reduce","acc","curr","tempItem","findItemById","itemLeft","Math","round","itemTop","hover","combinedRef","useCallback","node","reportBackgroundColor","backgroundColor","bgColor","_jsx","classNames","_jsxs","map","axis","propTypes","PropTypes","arrayOf","shape","string","memo"],"mappings":"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"}
1
+ {"version":3,"file":"Page.js","sources":["../../../../src/components/Builder/Page.js"],"sourcesContent":["import {\n useRef,\n memo,\n useCallback,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { useDrop } from 'react-dnd';\nimport {\n ACCEPTED_TYPES,\n DRAGGABLE_ITEM_TYPE,\n DROPPABLE_ITEM_TYPE,\n} from '../../constants/itemTypes';\nimport AlignmentGuides from '../AlignmentGuides';\nimport ReportItemsWrapper from '../ReportItemsWrapper';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport { usePropStore } from '../../contexts/PropContext';\nimport {\n getCorrectDroppedOffsetValue,\n findItemById,\n getMatchesForItem,\n roundPositionValues,\n getCoordinatesFromMatches,\n} from '../../utils/functions';\nimport * as classNames from '../../constants/classNames';\nimport generateId from '../../utils/generateId';\nimport { useSelectedElements } from '../../utils/hooks';\nimport ErrorBoundary from '../ErrorBoundary/ErrorBoundary';\n\nconst axes = ['x', 'y'];\n\nconst Page = ({\n items = [],\n page = {},\n style = {},\n}) => {\n const activeElements = useBuilderStore(state => state.activeElements);\n const setActiveElements = useBuilderStore(state => state.setActiveElements);\n const setIsRightPanelOpen = useBuilderStore(state => state.setIsRightPanelOpen);\n const zoom = useBuilderStore(state => state.zoom);\n const isResize = useBuilderStore(state => state.isResize);\n const guides = useBuilderStore(state => state.guides);\n const matches = useBuilderStore(state => state.matches);\n const setMatches = useBuilderStore(state => state.setMatches);\n\n const onItemAdd = usePropStore(state => state.onItemAdd);\n const onItemMove = usePropStore(state => state.onItemMove);\n const onItemsMove = usePropStore(state => state.onItemsMove);\n const additionalPageItems = usePropStore(state => state.additionalPageItems);\n const onAnEventTrigger = usePropStore(state => state.onAnEventTrigger);\n const settings = usePropStore(state => state.settings);\n const acceptedItems = usePropStore(state => state.acceptedItems);\n const pages = usePropStore(state => state.pages);\n\n const requestRef = useRef();\n const dropRef = useRef(null); // for getting the bounding client rect\n\n const drawAlignmentGuides = (item, monitor) => {\n return () => {\n try {\n if (!monitor || monitor.getSourceClientOffset() === null) {\n requestRef.current = undefined;\n return;\n }\n const coords = getCorrectDroppedOffsetValue(\n monitor.getSourceClientOffset(),\n monitor.getInitialSourceClientOffset(),\n dropRef.current.getBoundingClientRect(),\n zoom,\n );\n const activeItem = {\n ...item, ...coords,\n };\n if (activeItem.id && activeItem.pageID) {\n const newMatches = getMatchesForItem(activeItem, guides, zoom);\n setMatches(newMatches);\n }\n requestRef.current = undefined;\n } catch (error) {\n setMatches({});\n }\n };\n };\n\n const isMultipleItemSelected = activeElements.length > 1;\n\n const onHover = (item, monitor) => {\n if (!requestRef.current) {\n requestRef.current = global.requestAnimationFrame(drawAlignmentGuides(item, monitor));\n }\n };\n\n const selectedElements = useSelectedElements();\n\n const [{ isOver }, drop] = useDrop({\n accept: ACCEPTED_TYPES,\n collect: monitor => {\n return {\n isOver: monitor.isOver(),\n };\n },\n drop: (item, monitor) => {\n setMatches({});\n const coords = getCorrectDroppedOffsetValue(\n monitor.getSourceClientOffset(),\n monitor.getInitialSourceClientOffset(),\n dropRef.current?.getBoundingClientRect(),\n zoom,\n );\n const type = monitor.getItemType();\n const {\n id, itemType, pageID, ...additionalData\n } = item;\n const newCoords = {};\n if (type === DROPPABLE_ITEM_TYPE) {\n const itemID = generateId();\n const roundedCoords = roundPositionValues(coords);\n onItemAdd({\n ...acceptedItems[itemType].details,\n id: itemID,\n pageID: page.id,\n ...roundedCoords,\n ...additionalData,\n });\n onAnEventTrigger('reportItemAdd', itemType);\n setActiveElements(itemID);\n setIsRightPanelOpen(true);\n newCoords[itemID] = roundedCoords;\n } else if (type === DRAGGABLE_ITEM_TYPE) {\n const newItem = { ...item, ...coords };\n const newMatches = getMatchesForItem(newItem, guides, zoom);\n const dragCoords = getCoordinatesFromMatches(newItem, newMatches, zoom);\n const roundedDragCoords = roundPositionValues(dragCoords);\n if (isMultipleItemSelected) {\n const leftDifference = additionalData.left - roundedDragCoords.left;\n const topDifference = additionalData.top - roundedDragCoords.top;\n const _items = activeElements.reduce((acc, curr) => {\n const tempItem = findItemById(curr, pages);\n const itemLeft = Math.round(tempItem.left - leftDifference);\n const itemTop = Math.round(tempItem.top - topDifference);\n acc[curr] = {\n id: curr,\n left: itemLeft,\n pageID: page.id,\n top: itemTop,\n };\n newCoords[curr] = {\n left: itemLeft,\n top: itemTop,\n };\n return acc;\n }, {});\n onItemsMove({ items: _items });\n } else {\n onItemMove({\n id,\n pageID: page.id,\n ...roundedDragCoords,\n });\n newCoords[id] = roundedDragCoords;\n }\n }\n\n return newCoords;\n },\n hover: onHover,\n });\n\n const combinedRef = useCallback(node => {\n dropRef.current = node;\n drop(node);\n }, [drop]);\n\n const { reportBackgroundColor } = settings;\n const { backgroundColor } = page;\n const bgColor = backgroundColor ? backgroundColor : reportBackgroundColor || '#fff';\n\n return (\n <ErrorBoundary level=\"page\">\n <div\n ref={combinedRef}\n className={classNames.pageContainer}\n style={{\n backgroundColor: bgColor,\n ...style,\n }}\n >\n <div className=\"jfReport-hider o-hidden f-all p-relative\">\n <ReportItemsWrapper\n items={items}\n />\n {additionalPageItems}\n {/* when isOver is true, the alignment guides are shown completely */}\n {/* when isResize is true, the alignment guides are shown only for the page of the selected element */}\n {(isOver || (isResize && selectedElements[0]?.pageID === page.id)) && axes.map(axis => {\n if (!matches[axis]) return null;\n return (\n <AlignmentGuides\n key={axis}\n axis={axis}\n guides={guides[page.id]}\n matches={matches[axis]}\n />\n );\n })}\n </div>\n </div>\n </ErrorBoundary>\n );\n};\n\nPage.propTypes = {\n items: PropTypes.arrayOf(\n PropTypes.shape({}),\n ),\n page: PropTypes.shape({\n backgroundColor: PropTypes.string,\n }),\n style: PropTypes.shape({}),\n};\n\nexport default memo(Page);\n"],"names":["axes","Page","items","page","style","activeElements","useBuilderStore","state","setActiveElements","setIsRightPanelOpen","zoom","isResize","guides","matches","setMatches","onItemAdd","usePropStore","onItemMove","onItemsMove","additionalPageItems","onAnEventTrigger","settings","acceptedItems","pages","requestRef","useRef","dropRef","drawAlignmentGuides","item","monitor","getSourceClientOffset","current","undefined","coords","getCorrectDroppedOffsetValue","getInitialSourceClientOffset","getBoundingClientRect","activeItem","id","pageID","newMatches","getMatchesForItem","error","isMultipleItemSelected","length","onHover","global","requestAnimationFrame","selectedElements","useSelectedElements","useDrop","accept","ACCEPTED_TYPES","collect","isOver","drop","type","getItemType","itemType","additionalData","newCoords","DROPPABLE_ITEM_TYPE","itemID","generateId","roundedCoords","roundPositionValues","details","DRAGGABLE_ITEM_TYPE","newItem","dragCoords","getCoordinatesFromMatches","roundedDragCoords","leftDifference","left","topDifference","top","_items","reduce","acc","curr","tempItem","findItemById","itemLeft","Math","round","itemTop","hover","combinedRef","useCallback","node","reportBackgroundColor","backgroundColor","bgColor","_jsx","classNames","_jsxs","map","axis","propTypes","PropTypes","arrayOf","shape","string","memo"],"mappings":"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"}
@@ -9,7 +9,7 @@ var ItemPositioner = require('../ItemPositioner.js');
9
9
  var itemTypes = require('../../constants/itemTypes.js');
10
10
  var functions = require('../../utils/functions.js');
11
11
  var PageItemResizer = require('../PageItemResizer.js');
12
- var ErrorBoundary = require('../ErrorBoundary.js');
12
+ var ErrorBoundary = require('../ErrorBoundary/ErrorBoundary.js');
13
13
  var classNames = require('../../constants/classNames.js');
14
14
  var generateId = require('../../utils/generateId.js');
15
15
  var scrollZoneFunctions = require('../../utils/scrollZoneFunctions.js');
@@ -43,7 +43,7 @@ var reportItemStyle = {
43
43
  width: '100%'
44
44
  };
45
45
 
46
- var DraggableItem = function DraggableItem(_ref) {
46
+ var DraggableItemContent = function DraggableItemContent(_ref) {
47
47
  var _ref$children = _ref.children,
48
48
  children = _ref$children === void 0 ? null : _ref$children,
49
49
  _ref$item = _ref.item,
@@ -304,17 +304,18 @@ var DraggableItem = function DraggableItem(_ref) {
304
304
  width: stateWidth
305
305
  });
306
306
  }, [_item2, stateHeight, stateLeft, stateTop, stateWidth]);
307
- return /*#__PURE__*/jsxRuntime.jsxs(ErrorBoundary, {
308
- item: _item2,
309
- children: [/*#__PURE__*/jsxRuntime.jsx(ItemPositioner, {
310
- classNames: "reportItemWrapper".concat(isSelected ? ' isSelected' : ''),
311
- style: _objectSpread(_objectSpread({}, functions.getStyles(left, top, isDragging)), {}, {
312
- height: stateHeight,
313
- left: stateLeft,
314
- top: stateTop,
315
- width: stateWidth
316
- }),
317
- children: /*#__PURE__*/jsxRuntime.jsx("div", {
307
+ return /*#__PURE__*/jsxRuntime.jsx(ItemPositioner, {
308
+ classNames: "reportItemWrapper".concat(isSelected ? ' isSelected' : ''),
309
+ style: _objectSpread(_objectSpread({}, functions.getStyles(left, top, isDragging)), {}, {
310
+ height: stateHeight,
311
+ left: stateLeft,
312
+ top: stateTop,
313
+ width: stateWidth
314
+ }),
315
+ children: /*#__PURE__*/jsxRuntime.jsxs(ErrorBoundary, {
316
+ item: _item2,
317
+ level: "item",
318
+ children: [/*#__PURE__*/jsxRuntime.jsx("div", {
318
319
  ref: drag,
319
320
  className: "".concat(classNames.reportItem).concat(isLocked ? ' isLocked' : ''),
320
321
  onContextMenu: onContextMenuClick,
@@ -323,12 +324,21 @@ var DraggableItem = function DraggableItem(_ref) {
323
324
  onMouseDown: select,
324
325
  style: reportItemStyle,
325
326
  children: children
326
- })
327
- }), !isDragging && isSelected && /*#__PURE__*/jsxRuntime.jsx(PageItemResizer, {
328
- item: modifiedItem,
329
- onResize: onResize,
330
- onResizeStop: onResizeStop
331
- })]
327
+ }), !isDragging && isSelected && /*#__PURE__*/jsxRuntime.jsx(PageItemResizer, {
328
+ item: modifiedItem,
329
+ onResize: onResize,
330
+ onResizeStop: onResizeStop
331
+ })]
332
+ })
333
+ });
334
+ };
335
+
336
+ var DraggableItem = function DraggableItem(_ref2) {
337
+ var children = _ref2.children,
338
+ item = _ref2.item;
339
+ return /*#__PURE__*/jsxRuntime.jsx(DraggableItemContent, {
340
+ item: item,
341
+ children: children
332
342
  });
333
343
  };
334
344
 
@@ -345,6 +355,7 @@ DraggableItem.propTypes = {
345
355
  width: PropTypes__default['default'].oneOfType([PropTypes__default['default'].number, PropTypes__default['default'].string])
346
356
  })
347
357
  };
358
+ DraggableItemContent.propTypes = DraggableItem.propTypes;
348
359
  var DraggableItem$1 = /*#__PURE__*/React.memo(DraggableItem);
349
360
 
350
361
  module.exports = DraggableItem$1;
@@ -1 +1 @@
1
- {"version":3,"file":"DraggableItem.js","sources":["../../../../src/components/DraggableItem/DraggableItem.js"],"sourcesContent":["import {\n useEffect, useState, memo, useMemo,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { useDrag } from 'react-dnd';\nimport { getEmptyImage } from 'react-dnd-html5-backend';\nimport ItemPositioner from '../ItemPositioner';\nimport { DRAGGABLE_ITEM_TYPE } from '../../constants/itemTypes';\nimport {\n getStyles, getPosition, isSelectedItem, getMatchesForItem, roundPositionValues,\n} from '../../utils/functions';\nimport PageItemResizer from '../PageItemResizer';\nimport ErrorBoundary from '../ErrorBoundary';\nimport * as classNames from '../../constants/classNames';\nimport generateId from '../../utils/generateId';\nimport {\n addEventListenerForSidebar,\n removeEventListenerForSidebar,\n} from '../../utils/scrollZoneFunctions';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport { usePropStore } from '../../contexts/PropContext';\n\nconst reportItemStyle = {\n height: '100%',\n width: '100%',\n};\n\nconst DraggableItem = ({\n children = null,\n item = {},\n}) => {\n const {\n height,\n id,\n isLocked,\n left,\n pageID,\n top,\n width,\n } = item;\n\n const [\n {\n height: stateHeight,\n left: stateLeft,\n top: stateTop,\n width: stateWidth,\n },\n setResizeSize,\n ] = useState({\n height,\n left,\n top,\n width,\n });\n\n const onAnEventTrigger = usePropStore(state => state.onAnEventTrigger);\n const onItemAdd = usePropStore(state => state.onItemAdd);\n const onItemResize = usePropStore(state => state.onItemResize);\n\n const activeElements = useBuilderStore(state => state.activeElements);\n const setActiveElements = useBuilderStore(state => state.setActiveElements);\n const setContextMenuProps = useBuilderStore(state => state.setContextMenuProps);\n const isTextEditorOpen = useBuilderStore(state => state.isTextEditorOpen);\n const setIsRightPanelOpen = useBuilderStore(state => state.setIsRightPanelOpen);\n const setIsResize = useBuilderStore(state => state.setIsResize);\n const setMatches = useBuilderStore(state => state.setMatches);\n const guides = useBuilderStore(state => state.guides);\n const zoom = useBuilderStore(state => state.zoom);\n\n const isSelected = isSelectedItem(item.id, activeElements);\n\n const select = event => {\n if (!isSelected) {\n if (!event || !event.metaKey) { // Single item selected\n setActiveElements(id, true);\n if (isLocked) {\n setIsRightPanelOpen(false);\n }\n } else {\n // Multiple items selected\n setActiveElements(id, false, false);\n setIsRightPanelOpen(false);\n }\n }\n };\n\n const canDrag = !item.isLocked && !isTextEditorOpen;\n\n const [{ isDragging }, drag, preview] = useDrag(() => ({\n canDrag: () => canDrag,\n collect: monitor => ({\n isDragging: monitor.isDragging(),\n }),\n end: (_item, monitor) => {\n const dropResult = monitor.getDropResult();\n if (dropResult && dropResult[id]) {\n const { left: dropLeft, top: dropTop } = dropResult[id];\n setResizeSize(prev => {\n return {\n height: prev.height,\n left: dropLeft,\n top: dropTop,\n width: prev.width,\n };\n });\n }\n removeEventListenerForSidebar();\n },\n isDragging: () => isSelected,\n item: () => {\n select();\n addEventListenerForSidebar();\n return item;\n },\n type: DRAGGABLE_ITEM_TYPE,\n }), [\n item,\n canDrag,\n id,\n isSelected,\n ]);\n\n useEffect(() => {\n if (preview) {\n preview(getEmptyImage(), { captureDraggingState: true });\n }\n }, [preview]);\n\n useEffect(() => {\n setResizeSize(prev => {\n if (prev.left !== left || prev.top !== top || prev.width !== width || prev.height !== height) {\n return {\n ...prev,\n height,\n left,\n top,\n width,\n };\n }\n\n return prev;\n });\n }, [left, top, width, height]);\n\n const onResizeStop = () => {\n setIsResize(false);\n setMatches({});\n onItemResize(item, roundPositionValues({\n height: stateHeight,\n left: stateLeft,\n top: stateTop,\n width: stateWidth,\n }));\n };\n\n const onResize = (deltaWidth, deltaHeight, direction) => {\n setIsResize(true);\n\n const isLeft = /left/i.test(direction);\n const isTop = /top/i.test(direction);\n const isRight = /right/i.test(direction);\n const isBottom = /bottom/i.test(direction);\n\n const activeItem = {\n ...item,\n height: item.height + deltaHeight,\n left: isLeft ? item.left - deltaWidth : item.left,\n top: isTop ? item.top - deltaHeight : item.top,\n width: item.width + deltaWidth,\n };\n\n const newMatches = getMatchesForItem(activeItem, guides, zoom, direction);\n setMatches(newMatches);\n\n const snapX = newMatches?.x?.intersection / zoom;\n const snapY = newMatches?.y?.intersection / zoom;\n\n const rightEdge = item.left + item.width;\n const bottomEdge = item.top + item.height;\n\n const getWidth = () => {\n if (!snapX) return activeItem.width;\n return isRight ? snapX - item.left : rightEdge - snapX;\n };\n\n const getHeight = () => {\n if (!snapY) return activeItem.height;\n return isBottom ? snapY - item.top : bottomEdge - snapY;\n };\n\n const getLeft = () => {\n if (snapX && isLeft) return snapX;\n return isLeft ? activeItem.left : item.left;\n };\n\n const getTop = () => {\n if (snapY && isTop) return snapY;\n return isTop ? activeItem.top : item.top;\n };\n\n setResizeSize({\n height: getHeight(),\n left: getLeft(),\n top: getTop(),\n width: getWidth(),\n });\n };\n\n const onContextMenuClick = e => {\n if (\n e.target.contentEditable === 'true'\n || isTextEditorOpen\n ) {\n // Dont override behaviour on text edits.\n return;\n }\n\n e.preventDefault();\n onAnEventTrigger('openContextMenu', item.itemType);\n setContextMenuProps({\n id,\n pageID,\n position: getPosition(e),\n });\n };\n\n const onDoubleClick = e => {\n if (\n e.target.contentEditable === 'true'\n || isTextEditorOpen\n ) {\n // Dont override behaviour on text edits.\n return;\n }\n\n setIsRightPanelOpen(true);\n };\n\n const duplicateWithAltKey = e => {\n if (e.altKey) {\n const itemID = generateId();\n const itemToAdd = item;\n setTimeout(() => {\n onItemAdd({\n ...itemToAdd,\n id: itemID,\n left: itemToAdd.left,\n top: itemToAdd.top,\n });\n onAnEventTrigger('duplicateItem', itemToAdd.itemType);\n });\n }\n };\n\n const modifiedItem = useMemo(() => ({\n ...item,\n height: stateHeight,\n left: stateLeft,\n top: stateTop,\n width: stateWidth,\n }), [item, stateHeight, stateLeft, stateTop, stateWidth]);\n\n return (\n <ErrorBoundary item={item}>\n <ItemPositioner\n classNames={`reportItemWrapper${isSelected ? ' isSelected' : ''}`}\n style={{\n ...getStyles(left, top, isDragging),\n height: stateHeight,\n left: stateLeft,\n top: stateTop,\n width: stateWidth,\n }}\n >\n <div\n ref={drag}\n className={`${classNames.reportItem}${isLocked ? ' isLocked' : ''}`}\n onContextMenu={onContextMenuClick}\n onDoubleClick={onDoubleClick}\n onDragStart={duplicateWithAltKey}\n onMouseDown={select}\n style={reportItemStyle}\n >\n {children}\n </div>\n </ItemPositioner>\n {!isDragging && isSelected && (\n <PageItemResizer\n item={modifiedItem}\n onResize={onResize}\n onResizeStop={onResizeStop}\n />\n )}\n </ErrorBoundary>\n );\n};\n\nDraggableItem.propTypes = {\n children: PropTypes.any,\n item: PropTypes.shape({\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n id: PropTypes.string,\n isLocked: PropTypes.bool,\n itemType: PropTypes.string,\n left: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n pageID: PropTypes.string,\n top: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n width: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n }),\n};\n\nexport default memo(DraggableItem);\n"],"names":["reportItemStyle","height","width","DraggableItem","children","item","id","isLocked","left","pageID","top","useState","stateHeight","stateLeft","stateTop","stateWidth","setResizeSize","onAnEventTrigger","usePropStore","state","onItemAdd","onItemResize","activeElements","useBuilderStore","setActiveElements","setContextMenuProps","isTextEditorOpen","setIsRightPanelOpen","setIsResize","setMatches","guides","zoom","isSelected","isSelectedItem","select","event","metaKey","canDrag","useDrag","collect","monitor","isDragging","end","_item","dropResult","getDropResult","dropLeft","dropTop","prev","removeEventListenerForSidebar","addEventListenerForSidebar","type","DRAGGABLE_ITEM_TYPE","drag","preview","useEffect","getEmptyImage","captureDraggingState","onResizeStop","roundPositionValues","onResize","deltaWidth","deltaHeight","direction","isLeft","test","isTop","isRight","isBottom","activeItem","newMatches","getMatchesForItem","snapX","x","intersection","snapY","y","rightEdge","bottomEdge","getWidth","getHeight","getLeft","getTop","onContextMenuClick","e","target","contentEditable","preventDefault","itemType","position","getPosition","onDoubleClick","duplicateWithAltKey","altKey","itemID","generateId","itemToAdd","setTimeout","modifiedItem","useMemo","_jsxs","_jsx","getStyles","classNames","propTypes","PropTypes","any","shape","oneOfType","number","string","bool","memo"],"mappings":"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"}
1
+ {"version":3,"file":"DraggableItem.js","sources":["../../../../src/components/DraggableItem/DraggableItem.js"],"sourcesContent":["import {\n useEffect, useState, memo, useMemo,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { useDrag } from 'react-dnd';\nimport { getEmptyImage } from 'react-dnd-html5-backend';\nimport ItemPositioner from '../ItemPositioner';\nimport { DRAGGABLE_ITEM_TYPE } from '../../constants/itemTypes';\nimport {\n getStyles, getPosition, isSelectedItem, getMatchesForItem, roundPositionValues,\n} from '../../utils/functions';\nimport PageItemResizer from '../PageItemResizer';\nimport ErrorBoundary from '../ErrorBoundary/ErrorBoundary';\nimport * as classNames from '../../constants/classNames';\nimport generateId from '../../utils/generateId';\nimport {\n addEventListenerForSidebar,\n removeEventListenerForSidebar,\n} from '../../utils/scrollZoneFunctions';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport { usePropStore } from '../../contexts/PropContext';\n\nconst reportItemStyle = {\n height: '100%',\n width: '100%',\n};\n\nconst DraggableItemContent = ({\n children = null,\n item = {},\n}) => {\n const {\n height,\n id,\n isLocked,\n left,\n pageID,\n top,\n width,\n } = item;\n\n const [\n {\n height: stateHeight,\n left: stateLeft,\n top: stateTop,\n width: stateWidth,\n },\n setResizeSize,\n ] = useState({\n height,\n left,\n top,\n width,\n });\n\n const onAnEventTrigger = usePropStore(state => state.onAnEventTrigger);\n const onItemAdd = usePropStore(state => state.onItemAdd);\n const onItemResize = usePropStore(state => state.onItemResize);\n\n const activeElements = useBuilderStore(state => state.activeElements);\n const setActiveElements = useBuilderStore(state => state.setActiveElements);\n const setContextMenuProps = useBuilderStore(state => state.setContextMenuProps);\n const isTextEditorOpen = useBuilderStore(state => state.isTextEditorOpen);\n const setIsRightPanelOpen = useBuilderStore(state => state.setIsRightPanelOpen);\n const setIsResize = useBuilderStore(state => state.setIsResize);\n const setMatches = useBuilderStore(state => state.setMatches);\n const guides = useBuilderStore(state => state.guides);\n const zoom = useBuilderStore(state => state.zoom);\n\n const isSelected = isSelectedItem(item.id, activeElements);\n\n const select = event => {\n if (!isSelected) {\n if (!event || !event.metaKey) { // Single item selected\n setActiveElements(id, true);\n if (isLocked) {\n setIsRightPanelOpen(false);\n }\n } else {\n // Multiple items selected\n setActiveElements(id, false, false);\n setIsRightPanelOpen(false);\n }\n }\n };\n\n const canDrag = !item.isLocked && !isTextEditorOpen;\n\n const [{ isDragging }, drag, preview] = useDrag(() => ({\n canDrag: () => canDrag,\n collect: monitor => ({\n isDragging: monitor.isDragging(),\n }),\n end: (_item, monitor) => {\n const dropResult = monitor.getDropResult();\n if (dropResult && dropResult[id]) {\n const { left: dropLeft, top: dropTop } = dropResult[id];\n setResizeSize(prev => {\n return {\n height: prev.height,\n left: dropLeft,\n top: dropTop,\n width: prev.width,\n };\n });\n }\n removeEventListenerForSidebar();\n },\n isDragging: () => isSelected,\n item: () => {\n select();\n addEventListenerForSidebar();\n return item;\n },\n type: DRAGGABLE_ITEM_TYPE,\n }), [\n item,\n canDrag,\n id,\n isSelected,\n ]);\n\n useEffect(() => {\n if (preview) {\n preview(getEmptyImage(), { captureDraggingState: true });\n }\n }, [preview]);\n\n useEffect(() => {\n setResizeSize(prev => {\n if (prev.left !== left || prev.top !== top || prev.width !== width || prev.height !== height) {\n return {\n ...prev,\n height,\n left,\n top,\n width,\n };\n }\n\n return prev;\n });\n }, [left, top, width, height]);\n\n const onResizeStop = () => {\n setIsResize(false);\n setMatches({});\n onItemResize(item, roundPositionValues({\n height: stateHeight,\n left: stateLeft,\n top: stateTop,\n width: stateWidth,\n }));\n };\n\n const onResize = (deltaWidth, deltaHeight, direction) => {\n setIsResize(true);\n\n const isLeft = /left/i.test(direction);\n const isTop = /top/i.test(direction);\n const isRight = /right/i.test(direction);\n const isBottom = /bottom/i.test(direction);\n\n const activeItem = {\n ...item,\n height: item.height + deltaHeight,\n left: isLeft ? item.left - deltaWidth : item.left,\n top: isTop ? item.top - deltaHeight : item.top,\n width: item.width + deltaWidth,\n };\n\n const newMatches = getMatchesForItem(activeItem, guides, zoom, direction);\n setMatches(newMatches);\n\n const snapX = newMatches?.x?.intersection / zoom;\n const snapY = newMatches?.y?.intersection / zoom;\n\n const rightEdge = item.left + item.width;\n const bottomEdge = item.top + item.height;\n\n const getWidth = () => {\n if (!snapX) return activeItem.width;\n return isRight ? snapX - item.left : rightEdge - snapX;\n };\n\n const getHeight = () => {\n if (!snapY) return activeItem.height;\n return isBottom ? snapY - item.top : bottomEdge - snapY;\n };\n\n const getLeft = () => {\n if (snapX && isLeft) return snapX;\n return isLeft ? activeItem.left : item.left;\n };\n\n const getTop = () => {\n if (snapY && isTop) return snapY;\n return isTop ? activeItem.top : item.top;\n };\n\n setResizeSize({\n height: getHeight(),\n left: getLeft(),\n top: getTop(),\n width: getWidth(),\n });\n };\n\n const onContextMenuClick = e => {\n if (\n e.target.contentEditable === 'true'\n || isTextEditorOpen\n ) {\n // Dont override behaviour on text edits.\n return;\n }\n\n e.preventDefault();\n onAnEventTrigger('openContextMenu', item.itemType);\n setContextMenuProps({\n id,\n pageID,\n position: getPosition(e),\n });\n };\n\n const onDoubleClick = e => {\n if (\n e.target.contentEditable === 'true'\n || isTextEditorOpen\n ) {\n // Dont override behaviour on text edits.\n return;\n }\n\n setIsRightPanelOpen(true);\n };\n\n const duplicateWithAltKey = e => {\n if (e.altKey) {\n const itemID = generateId();\n const itemToAdd = item;\n setTimeout(() => {\n onItemAdd({\n ...itemToAdd,\n id: itemID,\n left: itemToAdd.left,\n top: itemToAdd.top,\n });\n onAnEventTrigger('duplicateItem', itemToAdd.itemType);\n });\n }\n };\n\n const modifiedItem = useMemo(() => ({\n ...item,\n height: stateHeight,\n left: stateLeft,\n top: stateTop,\n width: stateWidth,\n }), [item, stateHeight, stateLeft, stateTop, stateWidth]);\n\n return (\n <ItemPositioner\n classNames={`reportItemWrapper${isSelected ? ' isSelected' : ''}`}\n style={{\n ...getStyles(left, top, isDragging),\n height: stateHeight,\n left: stateLeft,\n top: stateTop,\n width: stateWidth,\n }}\n >\n <ErrorBoundary\n item={item}\n level=\"item\"\n >\n <div\n ref={drag}\n className={`${classNames.reportItem}${isLocked ? ' isLocked' : ''}`}\n onContextMenu={onContextMenuClick}\n onDoubleClick={onDoubleClick}\n onDragStart={duplicateWithAltKey}\n onMouseDown={select}\n style={reportItemStyle}\n >\n {children}\n </div>\n {!isDragging && isSelected && (\n <PageItemResizer\n item={modifiedItem}\n onResize={onResize}\n onResizeStop={onResizeStop}\n />\n )}\n </ErrorBoundary>\n </ItemPositioner>\n );\n};\n\nconst DraggableItem = ({ children, item }) => (\n <DraggableItemContent item={item}>\n {children}\n </DraggableItemContent>\n);\n\nDraggableItem.propTypes = {\n children: PropTypes.any,\n item: PropTypes.shape({\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n id: PropTypes.string,\n isLocked: PropTypes.bool,\n itemType: PropTypes.string,\n left: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n pageID: PropTypes.string,\n top: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n width: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n }),\n};\n\nDraggableItemContent.propTypes = DraggableItem.propTypes;\n\nexport default memo(DraggableItem);\n"],"names":["reportItemStyle","height","width","DraggableItemContent","children","item","id","isLocked","left","pageID","top","useState","stateHeight","stateLeft","stateTop","stateWidth","setResizeSize","onAnEventTrigger","usePropStore","state","onItemAdd","onItemResize","activeElements","useBuilderStore","setActiveElements","setContextMenuProps","isTextEditorOpen","setIsRightPanelOpen","setIsResize","setMatches","guides","zoom","isSelected","isSelectedItem","select","event","metaKey","canDrag","useDrag","collect","monitor","isDragging","end","_item","dropResult","getDropResult","dropLeft","dropTop","prev","removeEventListenerForSidebar","addEventListenerForSidebar","type","DRAGGABLE_ITEM_TYPE","drag","preview","useEffect","getEmptyImage","captureDraggingState","onResizeStop","roundPositionValues","onResize","deltaWidth","deltaHeight","direction","isLeft","test","isTop","isRight","isBottom","activeItem","newMatches","getMatchesForItem","snapX","x","intersection","snapY","y","rightEdge","bottomEdge","getWidth","getHeight","getLeft","getTop","onContextMenuClick","e","target","contentEditable","preventDefault","itemType","position","getPosition","onDoubleClick","duplicateWithAltKey","altKey","itemID","generateId","itemToAdd","setTimeout","modifiedItem","useMemo","_jsx","getStyles","_jsxs","classNames","DraggableItem","propTypes","PropTypes","any","shape","oneOfType","number","string","bool","memo"],"mappings":"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"}
@@ -0,0 +1,94 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var reactErrorBoundary = require('react-error-boundary');
5
+ var PropTypes = require('prop-types');
6
+ var hooks = require('../../utils/hooks.js');
7
+ var ErrorFallbackWrapper = require('./ErrorFallbackWrapper.js');
8
+ var jsxRuntime = require('react/jsx-runtime');
9
+
10
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
+
12
+ var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
13
+
14
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
15
+
16
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
17
+
18
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
19
+
20
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
21
+
22
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
23
+
24
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
25
+
26
+ function ErrorBoundary(_ref) {
27
+ var children = _ref.children,
28
+ isStatic = _ref.isStatic,
29
+ item = _ref.item,
30
+ level = _ref.level;
31
+
32
+ var _useState = React.useState(null),
33
+ _useState2 = _slicedToArray(_useState, 2),
34
+ errorInfo = _useState2[0],
35
+ setErrorInfo = _useState2[1];
36
+
37
+ var _useTranslatedTexts = hooks.useTranslatedTexts(),
38
+ ERROR_BOUNDARY_DESCRIPTION = _useTranslatedTexts.ERROR_BOUNDARY_DESCRIPTION,
39
+ ERROR_BOUNDARY_ITEM_DESCRIPTION = _useTranslatedTexts.ERROR_BOUNDARY_ITEM_DESCRIPTION,
40
+ ERROR_BOUNDARY_PAGE_DESCRIPTION = _useTranslatedTexts.ERROR_BOUNDARY_PAGE_DESCRIPTION,
41
+ ERROR_BOUNDARY_TITLE = _useTranslatedTexts.ERROR_BOUNDARY_TITLE;
42
+
43
+ var TEXT_CONFIG = {
44
+ item: {
45
+ description: ERROR_BOUNDARY_ITEM_DESCRIPTION,
46
+ title: ERROR_BOUNDARY_TITLE
47
+ },
48
+ page: {
49
+ description: ERROR_BOUNDARY_PAGE_DESCRIPTION,
50
+ title: ERROR_BOUNDARY_TITLE
51
+ },
52
+ settings: {
53
+ description: ERROR_BOUNDARY_DESCRIPTION,
54
+ title: ERROR_BOUNDARY_TITLE
55
+ }
56
+ };
57
+ return /*#__PURE__*/jsxRuntime.jsx(reactErrorBoundary.ErrorBoundary, {
58
+ fallbackRender: function fallbackRender(_ref2) {
59
+ var error = _ref2.error;
60
+ return /*#__PURE__*/jsxRuntime.jsx(ErrorFallbackWrapper, {
61
+ error: error,
62
+ errorInfo: errorInfo,
63
+ isStatic: isStatic,
64
+ item: item,
65
+ level: level,
66
+ textConfig: TEXT_CONFIG
67
+ });
68
+ },
69
+ onError: function onError(error, info) {
70
+ if (error && info) {
71
+ setErrorInfo(info);
72
+ }
73
+ },
74
+ children: children
75
+ });
76
+ }
77
+
78
+ ErrorBoundary.propTypes = {
79
+ children: PropTypes__default['default'].oneOfType([PropTypes__default['default'].arrayOf(PropTypes__default['default'].node), PropTypes__default['default'].node]).isRequired,
80
+ isStatic: PropTypes__default['default'].bool,
81
+ item: PropTypes__default['default'].shape({
82
+ id: PropTypes__default['default'].string,
83
+ itemType: PropTypes__default['default'].string
84
+ }),
85
+ level: PropTypes__default['default'].oneOf(['item', 'page'])
86
+ };
87
+ ErrorBoundary.defaultProps = {
88
+ isStatic: false,
89
+ item: null,
90
+ level: 'page'
91
+ };
92
+
93
+ module.exports = ErrorBoundary;
94
+ //# sourceMappingURL=ErrorBoundary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorBoundary.js","sources":["../../../../src/components/ErrorBoundary/ErrorBoundary.js"],"sourcesContent":["import { useState } from 'react';\nimport { ErrorBoundary as ReactErrorBoundary } from 'react-error-boundary';\nimport PropTypes from 'prop-types';\nimport { useTranslatedTexts } from '../../utils/hooks';\nimport ErrorFallbackWrapper from './ErrorFallbackWrapper';\n\nfunction ErrorBoundary({\n children, isStatic, item, level,\n}) {\n const [errorInfo, setErrorInfo] = useState(null);\n const {\n ERROR_BOUNDARY_DESCRIPTION,\n ERROR_BOUNDARY_ITEM_DESCRIPTION,\n ERROR_BOUNDARY_PAGE_DESCRIPTION,\n ERROR_BOUNDARY_TITLE,\n } = useTranslatedTexts();\n\n const TEXT_CONFIG = {\n item: {\n description: ERROR_BOUNDARY_ITEM_DESCRIPTION,\n title: ERROR_BOUNDARY_TITLE,\n },\n page: {\n description: ERROR_BOUNDARY_PAGE_DESCRIPTION,\n title: ERROR_BOUNDARY_TITLE,\n },\n settings: {\n description: ERROR_BOUNDARY_DESCRIPTION,\n title: ERROR_BOUNDARY_TITLE,\n },\n };\n return (\n <ReactErrorBoundary\n fallbackRender={({ error }) => (\n <ErrorFallbackWrapper\n error={error}\n errorInfo={errorInfo}\n isStatic={isStatic}\n item={item}\n level={level}\n textConfig={TEXT_CONFIG}\n />\n )}\n onError={(error, info) => {\n if (error && info) {\n setErrorInfo(info);\n }\n }}\n >\n {children}\n </ReactErrorBoundary>\n );\n}\n\nErrorBoundary.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]).isRequired,\n isStatic: PropTypes.bool,\n item: PropTypes.shape({\n id: PropTypes.string,\n itemType: PropTypes.string,\n }),\n level: PropTypes.oneOf(['item', 'page']),\n};\n\nErrorBoundary.defaultProps = {\n isStatic: false,\n item: null,\n level: 'page',\n};\n\nexport default ErrorBoundary;\n"],"names":["ErrorBoundary","children","isStatic","item","level","useState","errorInfo","setErrorInfo","useTranslatedTexts","ERROR_BOUNDARY_DESCRIPTION","ERROR_BOUNDARY_ITEM_DESCRIPTION","ERROR_BOUNDARY_PAGE_DESCRIPTION","ERROR_BOUNDARY_TITLE","TEXT_CONFIG","description","title","page","settings","_jsx","ReactErrorBoundary","error","info","propTypes","PropTypes","oneOfType","arrayOf","node","isRequired","bool","shape","id","string","itemType","oneOf","defaultProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAMA,SAASA,aAAT,OAEG;AAAA,MADDC,QACC,QADDA,QACC;AAAA,MADSC,QACT,QADSA,QACT;AAAA,MADmBC,IACnB,QADmBA,IACnB;AAAA,MADyBC,KACzB,QADyBA,KACzB;;AACD,kBAAkCC,cAAQ,CAAC,IAAD,CAA1C;AAAA;AAAA,MAAOC,SAAP;AAAA,MAAkBC,YAAlB;;AACA,4BAKIC,wBAAkB,EALtB;AAAA,MACEC,0BADF,uBACEA,0BADF;AAAA,MAEEC,+BAFF,uBAEEA,+BAFF;AAAA,MAGEC,+BAHF,uBAGEA,+BAHF;AAAA,MAIEC,oBAJF,uBAIEA,oBAJF;;AAOA,MAAMC,WAAW,GAAG;AAClBV,IAAAA,IAAI,EAAE;AACJW,MAAAA,WAAW,EAAEJ,+BADT;AAEJK,MAAAA,KAAK,EAAEH;AAFH,KADY;AAKlBI,IAAAA,IAAI,EAAE;AACJF,MAAAA,WAAW,EAAEH,+BADT;AAEJI,MAAAA,KAAK,EAAEH;AAFH,KALY;AASlBK,IAAAA,QAAQ,EAAE;AACRH,MAAAA,WAAW,EAAEL,0BADL;AAERM,MAAAA,KAAK,EAAEH;AAFC;AATQ,GAApB;AAcA,sBACEM,eAACC,gCAAD;AACE,IAAA,cAAc,EAAE;AAAA,UAAGC,KAAH,SAAGA,KAAH;AAAA,0BACdF,eAAC,oBAAD;AACE,QAAA,KAAK,EAAEE,KADT;AAEE,QAAA,SAAS,EAAEd,SAFb;AAGE,QAAA,QAAQ,EAAEJ,QAHZ;AAIE,QAAA,IAAI,EAAEC,IAJR;AAKE,QAAA,KAAK,EAAEC,KALT;AAME,QAAA,UAAU,EAAES;AANd,QADc;AAAA,KADlB;AAWE,IAAA,OAAO,EAAE,iBAACO,KAAD,EAAQC,IAAR,EAAiB;AACxB,UAAID,KAAK,IAAIC,IAAb,EAAmB;AACjBd,QAAAA,YAAY,CAACc,IAAD,CAAZ;AACD;AACF,KAfH;AAAA,cAiBGpB;AAjBH,IADF;AAqBD;;AAEDD,aAAa,CAACsB,SAAd,GAA0B;AACxBrB,EAAAA,QAAQ,EAAEsB,6BAAS,CAACC,SAAV,CAAoB,CAC5BD,6BAAS,CAACE,OAAV,CAAkBF,6BAAS,CAACG,IAA5B,CAD4B,EAE5BH,6BAAS,CAACG,IAFkB,CAApB,EAGPC,UAJqB;AAKxBzB,EAAAA,QAAQ,EAAEqB,6BAAS,CAACK,IALI;AAMxBzB,EAAAA,IAAI,EAAEoB,6BAAS,CAACM,KAAV,CAAgB;AACpBC,IAAAA,EAAE,EAAEP,6BAAS,CAACQ,MADM;AAEpBC,IAAAA,QAAQ,EAAET,6BAAS,CAACQ;AAFA,GAAhB,CANkB;AAUxB3B,EAAAA,KAAK,EAAEmB,6BAAS,CAACU,KAAV,CAAgB,CAAC,MAAD,EAAS,MAAT,CAAhB;AAViB,CAA1B;AAaAjC,aAAa,CAACkC,YAAd,GAA6B;AAC3BhC,EAAAA,QAAQ,EAAE,KADiB;AAE3BC,EAAAA,IAAI,EAAE,IAFqB;AAG3BC,EAAAA,KAAK,EAAE;AAHoB,CAA7B;;;;"}