@jotforminc/dnd-builder 3.3.0 → 3.4.1

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 (82) hide show
  1. package/CHANGELOG.md +34 -1
  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/BuilderWrapper.js +5 -2
  5. package/lib/cjs/components/Builder/BuilderWrapper.js.map +1 -1
  6. package/lib/cjs/components/Builder/Element.js +6 -3
  7. package/lib/cjs/components/Builder/Element.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 +92 -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 +122 -0
  17. package/lib/cjs/components/ErrorBoundary/ErrorFallbackWrapper.js.map +1 -0
  18. package/lib/cjs/components/Panels/RightPanel/Settings.js +3 -1
  19. package/lib/cjs/components/Panels/RightPanel/Settings.js.map +1 -1
  20. package/lib/cjs/components/Preview/StaticItem.js +10 -7
  21. package/lib/cjs/components/Preview/StaticItem.js.map +1 -1
  22. package/lib/cjs/components/Preview/StaticPage.js +26 -21
  23. package/lib/cjs/components/Preview/StaticPage.js.map +1 -1
  24. package/lib/cjs/components/TextEditor/QuillEditor.js +10 -8
  25. package/lib/cjs/components/TextEditor/QuillEditor.js.map +1 -1
  26. package/lib/cjs/components/TextEditor/TextEditor.js +15 -6
  27. package/lib/cjs/components/TextEditor/TextEditor.js.map +1 -1
  28. package/lib/cjs/constants/texts.js +6 -0
  29. package/lib/cjs/constants/texts.js.map +1 -1
  30. package/lib/cjs/contexts/BuilderContext.js +3 -0
  31. package/lib/cjs/contexts/BuilderContext.js.map +1 -1
  32. package/lib/cjs/contexts/Providers.js +6 -1
  33. package/lib/cjs/contexts/Providers.js.map +1 -1
  34. package/lib/cjs/styles/_jfReportsMain.scss +157 -0
  35. package/lib/cjs/styles/_jfReportsPanels.scss +0 -1
  36. package/lib/cjs/utils/hooks.js +26 -0
  37. package/lib/cjs/utils/hooks.js.map +1 -1
  38. package/lib/cjs/utils/icons.js +2 -0
  39. package/lib/cjs/utils/icons.js.map +1 -1
  40. package/lib/esm/assets/svg/exclamation.svg.js +20 -0
  41. package/lib/esm/assets/svg/exclamation.svg.js.map +1 -0
  42. package/lib/esm/components/Builder/BuilderWrapper.js +5 -2
  43. package/lib/esm/components/Builder/BuilderWrapper.js.map +1 -1
  44. package/lib/esm/components/Builder/Element.js +6 -3
  45. package/lib/esm/components/Builder/Element.js.map +1 -1
  46. package/lib/esm/components/Builder/Page.js +4 -2
  47. package/lib/esm/components/Builder/Page.js.map +1 -1
  48. package/lib/esm/components/DraggableItem/DraggableItem.js +31 -20
  49. package/lib/esm/components/DraggableItem/DraggableItem.js.map +1 -1
  50. package/lib/esm/components/ErrorBoundary/ErrorBoundary.js +86 -0
  51. package/lib/esm/components/ErrorBoundary/ErrorBoundary.js.map +1 -0
  52. package/lib/esm/components/ErrorBoundary/ErrorDetails.js +75 -0
  53. package/lib/esm/components/ErrorBoundary/ErrorDetails.js.map +1 -0
  54. package/lib/esm/components/ErrorBoundary/ErrorFallbackWrapper.js +116 -0
  55. package/lib/esm/components/ErrorBoundary/ErrorFallbackWrapper.js.map +1 -0
  56. package/lib/esm/components/Panels/RightPanel/Settings.js +4 -2
  57. package/lib/esm/components/Panels/RightPanel/Settings.js.map +1 -1
  58. package/lib/esm/components/Preview/StaticItem.js +10 -7
  59. package/lib/esm/components/Preview/StaticItem.js.map +1 -1
  60. package/lib/esm/components/Preview/StaticPage.js +26 -21
  61. package/lib/esm/components/Preview/StaticPage.js.map +1 -1
  62. package/lib/esm/components/TextEditor/QuillEditor.js +10 -8
  63. package/lib/esm/components/TextEditor/QuillEditor.js.map +1 -1
  64. package/lib/esm/components/TextEditor/TextEditor.js +16 -7
  65. package/lib/esm/components/TextEditor/TextEditor.js.map +1 -1
  66. package/lib/esm/constants/texts.js +6 -0
  67. package/lib/esm/constants/texts.js.map +1 -1
  68. package/lib/esm/contexts/BuilderContext.js +3 -0
  69. package/lib/esm/contexts/BuilderContext.js.map +1 -1
  70. package/lib/esm/contexts/Providers.js +6 -1
  71. package/lib/esm/contexts/Providers.js.map +1 -1
  72. package/lib/esm/styles/_jfReportsMain.scss +157 -0
  73. package/lib/esm/styles/_jfReportsPanels.scss +0 -1
  74. package/lib/esm/utils/hooks.js +27 -2
  75. package/lib/esm/utils/hooks.js.map +1 -1
  76. package/lib/esm/utils/icons.js +1 -0
  77. package/lib/esm/utils/icons.js.map +1 -1
  78. package/package.json +4 -3
  79. package/lib/cjs/components/ErrorBoundary.js +0 -101
  80. package/lib/cjs/components/ErrorBoundary.js.map +0 -1
  81. package/lib/esm/components/ErrorBoundary.js +0 -95
  82. package/lib/esm/components/ErrorBoundary.js.map +0 -1
@@ -0,0 +1,81 @@
1
+ 'use strict';
2
+
3
+ require('core-js/modules/es.object.to-string.js');
4
+ require('core-js/modules/es.regexp.to-string.js');
5
+ var PropTypes = require('prop-types');
6
+ var close = require('../../assets/svg/close.svg.js');
7
+ var jsxRuntime = require('react/jsx-runtime');
8
+
9
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
+
11
+ var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
12
+
13
+ var ErrorDetails = function ErrorDetails(_ref) {
14
+ var _ref$error = _ref.error,
15
+ error = _ref$error === void 0 ? null : _ref$error,
16
+ _ref$errorInfo = _ref.errorInfo,
17
+ errorInfo = _ref$errorInfo === void 0 ? null : _ref$errorInfo,
18
+ _ref$handleCloseDetai = _ref.handleCloseDetails,
19
+ handleCloseDetails = _ref$handleCloseDetai === void 0 ? function () {} : _ref$handleCloseDetai;
20
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
21
+ className: "errorBoundary-details-overlay",
22
+ onClick: handleCloseDetails,
23
+ role: "presentation",
24
+ children: /*#__PURE__*/jsxRuntime.jsxs("div", {
25
+ className: "errorBoundary-details-wrapper",
26
+ onClick: function onClick(e) {
27
+ return e.stopPropagation();
28
+ },
29
+ role: "presentation",
30
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
31
+ className: "errorBoundary-details-header",
32
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
33
+ style: {
34
+ marginRight: '24px',
35
+ minWidth: '0'
36
+ },
37
+ children: [/*#__PURE__*/jsxRuntime.jsx("h2", {
38
+ children: "Error Details"
39
+ }), /*#__PURE__*/jsxRuntime.jsx("p", {
40
+ style: {
41
+ color: '#6C73A8',
42
+ fontSize: '14px',
43
+ lineHeight: '20px',
44
+ marginTop: '8px',
45
+ whiteSpace: 'pre-wrap'
46
+ },
47
+ children: error && error.toString()
48
+ })]
49
+ }), /*#__PURE__*/jsxRuntime.jsx("button", {
50
+ "aria-label": "Close Button",
51
+ className: "errorBoundary-details-close-button",
52
+ onClick: handleCloseDetails,
53
+ type: "button",
54
+ children: /*#__PURE__*/jsxRuntime.jsx(close, {
55
+ style: {
56
+ height: '24px',
57
+ width: '24px'
58
+ }
59
+ })
60
+ })]
61
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
62
+ className: "errorBoundary-details-content",
63
+ children: /*#__PURE__*/jsxRuntime.jsxs("div", {
64
+ className: "errorBoundary-details-content-inner",
65
+ children: [error && error.toString(), errorInfo && (errorInfo === null || errorInfo === void 0 ? void 0 : errorInfo.componentStack)]
66
+ })
67
+ })]
68
+ })
69
+ });
70
+ };
71
+
72
+ ErrorDetails.propTypes = {
73
+ error: PropTypes__default['default'].instanceOf(Error),
74
+ errorInfo: PropTypes__default['default'].shape({
75
+ componentStack: PropTypes__default['default'].string
76
+ }),
77
+ handleCloseDetails: PropTypes__default['default'].func
78
+ };
79
+
80
+ module.exports = ErrorDetails;
81
+ //# sourceMappingURL=ErrorDetails.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorDetails.js","sources":["../../../../src/components/ErrorBoundary/ErrorDetails.js"],"sourcesContent":["import PropTypes from 'prop-types';\nimport CrossIcon from '../../assets/svg/close.svg';\n\nconst ErrorDetails = ({\n error = null,\n errorInfo = null,\n handleCloseDetails = () => {},\n}) => {\n return (\n <div\n className=\"errorBoundary-details-overlay\"\n onClick={handleCloseDetails}\n role=\"presentation\"\n >\n <div\n className=\"errorBoundary-details-wrapper\"\n onClick={e => e.stopPropagation()}\n role=\"presentation\"\n >\n <div className=\"errorBoundary-details-header\">\n <div style={{ marginRight: '24px', minWidth: '0' }}>\n <h2>Error Details</h2>\n <p\n style={{\n color: '#6C73A8',\n fontSize: '14px',\n lineHeight: '20px',\n marginTop: '8px',\n whiteSpace: 'pre-wrap',\n }}\n >\n {error && error.toString()}\n </p>\n </div>\n <button\n aria-label=\"Close Button\"\n className=\"errorBoundary-details-close-button\"\n onClick={handleCloseDetails}\n type=\"button\"\n >\n <CrossIcon style={{ height: '24px', width: '24px' }} />\n </button>\n </div>\n <div\n className=\"errorBoundary-details-content\"\n >\n <div className=\"errorBoundary-details-content-inner\">\n {error && error.toString()}\n {errorInfo && errorInfo?.componentStack}\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nErrorDetails.propTypes = {\n error: PropTypes.instanceOf(Error),\n errorInfo: PropTypes.shape({\n componentStack: PropTypes.string,\n }),\n handleCloseDetails: PropTypes.func,\n};\n\nexport default ErrorDetails;\n"],"names":["ErrorDetails","error","errorInfo","handleCloseDetails","_jsx","_jsxs","e","stopPropagation","marginRight","minWidth","color","fontSize","lineHeight","marginTop","whiteSpace","toString","CrossIcon","height","width","componentStack","propTypes","PropTypes","instanceOf","Error","shape","string","func"],"mappings":";;;;;;;;;;;;IAGMA,YAAY,GAAG,SAAfA,YAAe,OAIf;AAAA,wBAHJC,KAGI;AAAA,MAHJA,KAGI,2BAHI,IAGJ;AAAA,4BAFJC,SAEI;AAAA,MAFJA,SAEI,+BAFQ,IAER;AAAA,mCADJC,kBACI;AAAA,MADJA,kBACI,sCADiB,YAAM,EACvB;AACJ,sBACEC;AACE,IAAA,SAAS,EAAC,+BADZ;AAEE,IAAA,OAAO,EAAED,kBAFX;AAGE,IAAA,IAAI,EAAC,cAHP;AAAA,2BAKEE;AACE,MAAA,SAAS,EAAC,+BADZ;AAEE,MAAA,OAAO,EAAE,iBAAAC,CAAC;AAAA,eAAIA,CAAC,CAACC,eAAF,EAAJ;AAAA,OAFZ;AAGE,MAAA,IAAI,EAAC,cAHP;AAAA,8BAKEF;AAAK,QAAA,SAAS,EAAC,8BAAf;AAAA,gCACEA;AAAK,UAAA,KAAK,EAAE;AAAEG,YAAAA,WAAW,EAAE,MAAf;AAAuBC,YAAAA,QAAQ,EAAE;AAAjC,WAAZ;AAAA,kCACEL;AAAA;AAAA,YADF,eAEEA;AACE,YAAA,KAAK,EAAE;AACLM,cAAAA,KAAK,EAAE,SADF;AAELC,cAAAA,QAAQ,EAAE,MAFL;AAGLC,cAAAA,UAAU,EAAE,MAHP;AAILC,cAAAA,SAAS,EAAE,KAJN;AAKLC,cAAAA,UAAU,EAAE;AALP,aADT;AAAA,sBASGb,KAAK,IAAIA,KAAK,CAACc,QAAN;AATZ,YAFF;AAAA,UADF,eAeEX;AACE,wBAAW,cADb;AAEE,UAAA,SAAS,EAAC,oCAFZ;AAGE,UAAA,OAAO,EAAED,kBAHX;AAIE,UAAA,IAAI,EAAC,QAJP;AAAA,iCAMEC,eAACY,KAAD;AAAW,YAAA,KAAK,EAAE;AAAEC,cAAAA,MAAM,EAAE,MAAV;AAAkBC,cAAAA,KAAK,EAAE;AAAzB;AAAlB;AANF,UAfF;AAAA,QALF,eA6BEd;AACE,QAAA,SAAS,EAAC,+BADZ;AAAA,+BAGEC;AAAK,UAAA,SAAS,EAAC,qCAAf;AAAA,qBACGJ,KAAK,IAAIA,KAAK,CAACc,QAAN,EADZ,EAEGb,SAAS,KAAIA,SAAJ,aAAIA,SAAJ,uBAAIA,SAAS,CAAEiB,cAAf,CAFZ;AAAA;AAHF,QA7BF;AAAA;AALF,IADF;AA8CD;;AAEDnB,YAAY,CAACoB,SAAb,GAAyB;AACvBnB,EAAAA,KAAK,EAAEoB,6BAAS,CAACC,UAAV,CAAqBC,KAArB,CADgB;AAEvBrB,EAAAA,SAAS,EAAEmB,6BAAS,CAACG,KAAV,CAAgB;AACzBL,IAAAA,cAAc,EAAEE,6BAAS,CAACI;AADD,GAAhB,CAFY;AAKvBtB,EAAAA,kBAAkB,EAAEkB,6BAAS,CAACK;AALP,CAAzB;;;;"}
@@ -0,0 +1,122 @@
1
+ 'use strict';
2
+
3
+ require('core-js/modules/es.symbol.js');
4
+ require('core-js/modules/es.symbol.description.js');
5
+ var PropTypes = require('prop-types');
6
+ var reactDom = require('react-dom');
7
+ var React = require('react');
8
+ var ErrorDetails = require('./ErrorDetails.js');
9
+ var jsxRuntime = require('react/jsx-runtime');
10
+ var exclamation = require('../../assets/svg/exclamation.svg.js');
11
+
12
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
+
14
+ var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
15
+
16
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
17
+
18
+ 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."); }
19
+
20
+ 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); }
21
+
22
+ 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; }
23
+
24
+ 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; }
25
+
26
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
27
+
28
+ var ErrorFallbackWrapper = function ErrorFallbackWrapper(_ref) {
29
+ var _ref$error = _ref.error,
30
+ error = _ref$error === void 0 ? null : _ref$error,
31
+ _ref$errorInfo = _ref.errorInfo,
32
+ errorInfo = _ref$errorInfo === void 0 ? null : _ref$errorInfo,
33
+ _ref$isStatic = _ref.isStatic,
34
+ isStatic = _ref$isStatic === void 0 ? false : _ref$isStatic,
35
+ _ref$item = _ref.item,
36
+ item = _ref$item === void 0 ? null : _ref$item,
37
+ _ref$level = _ref.level,
38
+ level = _ref$level === void 0 ? 'page' : _ref$level,
39
+ _ref$textConfig = _ref.textConfig,
40
+ textConfig = _ref$textConfig === void 0 ? {
41
+ item: {
42
+ description: '',
43
+ title: ''
44
+ },
45
+ page: {
46
+ description: '',
47
+ title: ''
48
+ }
49
+ } : _ref$textConfig;
50
+
51
+ var _ref2 = textConfig[level] || textConfig.page || {},
52
+ _ref2$description = _ref2.description,
53
+ description = _ref2$description === void 0 ? '' : _ref2$description,
54
+ _ref2$title = _ref2.title,
55
+ title = _ref2$title === void 0 ? '' : _ref2$title;
56
+
57
+ var _useState = React.useState(false),
58
+ _useState2 = _slicedToArray(_useState, 2),
59
+ isDetailsOpen = _useState2[0],
60
+ setIsDetailsOpen = _useState2[1];
61
+
62
+ var handleOpenDetails = function handleOpenDetails() {
63
+ setIsDetailsOpen(true);
64
+ };
65
+
66
+ var handleCloseDetails = function handleCloseDetails() {
67
+ setIsDetailsOpen(false);
68
+ };
69
+
70
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
71
+ className: "errorBoundary-wrapper",
72
+ children: [/*#__PURE__*/jsxRuntime.jsx(exclamation, {
73
+ className: isStatic ? 'errorBoundary-icon-static' : 'errorBoundary-icon'
74
+ }), /*#__PURE__*/jsxRuntime.jsx("strong", {
75
+ style: {
76
+ fontSize: !isStatic ? '20px' : '12px'
77
+ },
78
+ children: title
79
+ }), !isStatic && /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
80
+ children: [item && /*#__PURE__*/jsxRuntime.jsxs("span", {
81
+ children: ["Item:", ' ', item.itemType || 'unknown', ' ', item.id ? "(".concat(item.id, ")") : '']
82
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
83
+ children: description
84
+ }), /*#__PURE__*/jsxRuntime.jsx("button", {
85
+ className: "errorBoundary-view-details-button",
86
+ onClick: handleOpenDetails,
87
+ type: "button",
88
+ children: "View"
89
+ }), isDetailsOpen && /*#__PURE__*/reactDom.createPortal( /*#__PURE__*/jsxRuntime.jsx(ErrorDetails, {
90
+ error: error,
91
+ errorInfo: errorInfo,
92
+ handleCloseDetails: handleCloseDetails
93
+ }), document.body)]
94
+ })]
95
+ });
96
+ };
97
+
98
+ ErrorFallbackWrapper.propTypes = {
99
+ error: PropTypes__default['default'].instanceOf(Error),
100
+ errorInfo: PropTypes__default['default'].shape({
101
+ componentStack: PropTypes__default['default'].string
102
+ }),
103
+ isStatic: PropTypes__default['default'].bool,
104
+ item: PropTypes__default['default'].shape({
105
+ id: PropTypes__default['default'].string,
106
+ itemType: PropTypes__default['default'].string
107
+ }),
108
+ level: PropTypes__default['default'].oneOf(['item', 'page']),
109
+ textConfig: PropTypes__default['default'].shape({
110
+ item: PropTypes__default['default'].shape({
111
+ description: PropTypes__default['default'].string,
112
+ title: PropTypes__default['default'].string
113
+ }),
114
+ page: PropTypes__default['default'].shape({
115
+ description: PropTypes__default['default'].string,
116
+ title: PropTypes__default['default'].string
117
+ })
118
+ })
119
+ };
120
+
121
+ module.exports = ErrorFallbackWrapper;
122
+ //# sourceMappingURL=ErrorFallbackWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorFallbackWrapper.js","sources":["../../../../src/components/ErrorBoundary/ErrorFallbackWrapper.js"],"sourcesContent":["import PropTypes from 'prop-types';\nimport { createPortal } from 'react-dom';\nimport { useState } from 'react';\nimport { exclamationIcon as ExclamationIcon } from '../../utils/icons';\nimport ErrorDetails from './ErrorDetails';\n\nconst ErrorFallbackWrapper = ({\n error = null,\n errorInfo = null,\n isStatic = false,\n item = null,\n level = 'page',\n textConfig = {\n item: {\n description: '',\n title: '',\n },\n page: {\n description: '',\n title: '',\n },\n },\n}) => {\n const { description = '', title = '' } = textConfig[level] || textConfig.page || {};\n const [isDetailsOpen, setIsDetailsOpen] = useState(false);\n\n const handleOpenDetails = () => {\n setIsDetailsOpen(true);\n };\n\n const handleCloseDetails = () => {\n setIsDetailsOpen(false);\n };\n\n return (\n <div\n className=\"errorBoundary-wrapper\"\n >\n <ExclamationIcon\n className={isStatic ? 'errorBoundary-icon-static' : 'errorBoundary-icon'}\n />\n <strong style={{ fontSize: !isStatic ? '20px' : '12px' }}>{title}</strong>\n {!isStatic && (\n <>\n {item && (\n <span>\n Item:\n {' '}\n {item.itemType || 'unknown'}\n {' '}\n {item.id ? `(${item.id})` : ''}\n </span>\n )}\n <span>{description}</span>\n <button\n className=\"errorBoundary-view-details-button\"\n onClick={handleOpenDetails}\n type=\"button\"\n >\n View\n </button>\n {isDetailsOpen && createPortal(\n <ErrorDetails\n error={error}\n errorInfo={errorInfo}\n handleCloseDetails={handleCloseDetails}\n />,\n document.body,\n )}\n </>\n )}\n </div>\n );\n};\n\nErrorFallbackWrapper.propTypes = {\n error: PropTypes.instanceOf(Error),\n errorInfo: PropTypes.shape({\n componentStack: PropTypes.string,\n }),\n isStatic: PropTypes.bool,\n item: PropTypes.shape({\n id: PropTypes.string,\n itemType: PropTypes.string,\n }),\n level: PropTypes.oneOf(['item', 'page']),\n textConfig: PropTypes.shape({\n item: PropTypes.shape({\n description: PropTypes.string,\n title: PropTypes.string,\n }),\n page: PropTypes.shape({\n description: PropTypes.string,\n title: PropTypes.string,\n }),\n }),\n};\n\nexport default ErrorFallbackWrapper;\n"],"names":["ErrorFallbackWrapper","error","errorInfo","isStatic","item","level","textConfig","description","title","page","useState","isDetailsOpen","setIsDetailsOpen","handleOpenDetails","handleCloseDetails","_jsxs","_jsx","ExclamationIcon","fontSize","itemType","id","createPortal","document","body","propTypes","PropTypes","instanceOf","Error","shape","componentStack","string","bool","oneOf"],"mappings":"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"}
@@ -11,7 +11,7 @@ var BuilderContext = require('../../../contexts/BuilderContext.js');
11
11
  var PropContext = require('../../../contexts/PropContext.js');
12
12
  var SettingsItemRenderer = require('../../Settings/SettingsItemRenderer.js');
13
13
  var functions = require('../../../utils/functions.js');
14
- var ErrorBoundary = require('../../ErrorBoundary.js');
14
+ var ErrorBoundary = require('../../ErrorBoundary/ErrorBoundary.js');
15
15
  var jsxRuntime = require('react/jsx-runtime');
16
16
 
17
17
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -69,6 +69,8 @@ var Settings = function Settings(_ref) {
69
69
  settingValue: computedValue,
70
70
  children: function children(SettingItem) {
71
71
  return /*#__PURE__*/jsxRuntime.jsx(ErrorBoundary, {
72
+ item: newItem,
73
+ level: "settings",
72
74
  children: /*#__PURE__*/jsxRuntime.jsx(SettingItem, {
73
75
  config: setting,
74
76
  item: newItem,
@@ -1 +1 @@
1
- {"version":3,"file":"Settings.js","sources":["../../../../../src/components/Panels/RightPanel/Settings.js"],"sourcesContent":["import { memo } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { useBuilderStore } from '../../../contexts/BuilderContext';\nimport { usePropStore } from '../../../contexts/PropContext';\nimport SettingsItemRenderer from '../../Settings/SettingsItemRenderer';\nimport { onChangeFunction } from '../../../utils/functions';\nimport ErrorBoundary from '../../ErrorBoundary';\n\nconst Settings = ({\n element = {},\n item = {},\n onChange = () => {},\n settings = {},\n tabs = [],\n}) => {\n const itemAccessor = usePropStore(state => state.itemAccessor);\n const activeTab = useBuilderStore(state => state.activeTab);\n const useExperimentalFeatures = usePropStore(state => state.useExperimentalFeatures);\n\n return (tabs.map((tabKey, index) => {\n return (\n <div\n key={index.toString()}\n className={classNames(\n 'toolItem-tabContent',\n { hidden: index !== activeTab.right },\n { hasInnerScroll: tabKey === 'MY IMAGES' },\n )}\n >\n {settings[tabKey].map((setting, itemIndex) => {\n if (setting.experimental && !useExperimentalFeatures) {\n return null;\n }\n const customUpdaterFunction = setting.onChange ? setting.onChange : false;\n const defaultItem = element.defaultItem || {};\n const value = (item[setting.key] || item[setting.key] === 0)\n ? item[setting.key] : defaultItem[setting.key] || null;\n const computedValue = setting.value ? setting.value(value, item, itemAccessor) : value;\n const newItem = { ...defaultItem, ...item };\n return (\n <SettingsItemRenderer\n key={`${itemIndex.toString()}_${item.id}_${setting.key}_${setting.uniqueId}`}\n setting={setting}\n settingValue={computedValue}\n >\n {SettingItem => {\n return (\n <ErrorBoundary>\n <SettingItem\n config={setting}\n item={newItem}\n itemAccessor={itemAccessor}\n onItemChange={onChangeFunction(\n setting,\n onChange,\n newItem,\n customUpdaterFunction,\n )}\n value={computedValue}\n />\n </ErrorBoundary>\n );\n }}\n </SettingsItemRenderer>\n );\n })}\n </div>\n );\n }));\n};\n\nSettings.propTypes = {\n element: PropTypes.shape({}),\n item: PropTypes.shape({}),\n onChange: PropTypes.func,\n settings: PropTypes.shape({}),\n tabs: PropTypes.arrayOf(PropTypes.string),\n};\n\nexport default memo(Settings);\n"],"names":["Settings","element","item","onChange","settings","tabs","itemAccessor","usePropStore","state","activeTab","useBuilderStore","useExperimentalFeatures","map","tabKey","index","_jsx","classNames","hidden","right","hasInnerScroll","setting","itemIndex","experimental","customUpdaterFunction","defaultItem","value","key","computedValue","newItem","SettingItem","onChangeFunction","toString","id","uniqueId","propTypes","PropTypes","shape","func","arrayOf","string","memo"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,IAAMA,QAAQ,GAAG,SAAXA,QAAW,OAMX;AAAA,0BALJC,OAKI;AAAA,MALJA,OAKI,6BALM,EAKN;AAAA,uBAJJC,IAII;AAAA,MAJJA,IAII,0BAJG,EAIH;AAAA,2BAHJC,QAGI;AAAA,MAHJA,QAGI,8BAHO,YAAM,EAGb;AAAA,2BAFJC,QAEI;AAAA,MAFJA,QAEI,8BAFO,EAEP;AAAA,uBADJC,IACI;AAAA,MADJA,IACI,0BADG,EACH;AACJ,MAAMC,YAAY,GAAGC,wBAAY,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACF,YAAV;AAAA,GAAN,CAAjC;AACA,MAAMG,SAAS,GAAGC,8BAAe,CAAC,UAAAF,KAAK;AAAA,WAAIA,KAAK,CAACC,SAAV;AAAA,GAAN,CAAjC;AACA,MAAME,uBAAuB,GAAGJ,wBAAY,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACG,uBAAV;AAAA,GAAN,CAA5C;AAEA,SAAQN,IAAI,CAACO,GAAL,CAAS,UAACC,MAAD,EAASC,KAAT,EAAmB;AAClC,wBACEC;AAEE,MAAA,SAAS,EAAEC,8BAAU,CACnB,qBADmB,EAEnB;AAAEC,QAAAA,MAAM,EAAEH,KAAK,KAAKL,SAAS,CAACS;AAA9B,OAFmB,EAGnB;AAAEC,QAAAA,cAAc,EAAEN,MAAM,KAAK;AAA7B,OAHmB,CAFvB;AAAA,gBAQGT,QAAQ,CAACS,MAAD,CAAR,CAAiBD,GAAjB,CAAqB,UAACQ,OAAD,EAAUC,SAAV,EAAwB;AAC5C,YAAID,OAAO,CAACE,YAAR,IAAwB,CAACX,uBAA7B,EAAsD;AACpD,iBAAO,IAAP;AACD;;AACD,YAAMY,qBAAqB,GAAGH,OAAO,CAACjB,QAAR,GAAmBiB,OAAO,CAACjB,QAA3B,GAAsC,KAApE;AACA,YAAMqB,WAAW,GAAGvB,OAAO,CAACuB,WAAR,IAAuB,EAA3C;AACA,YAAMC,KAAK,GAAIvB,IAAI,CAACkB,OAAO,CAACM,GAAT,CAAJ,IAAqBxB,IAAI,CAACkB,OAAO,CAACM,GAAT,CAAJ,KAAsB,CAA5C,GACVxB,IAAI,CAACkB,OAAO,CAACM,GAAT,CADM,GACUF,WAAW,CAACJ,OAAO,CAACM,GAAT,CAAX,IAA4B,IADpD;AAEA,YAAMC,aAAa,GAAGP,OAAO,CAACK,KAAR,GAAgBL,OAAO,CAACK,KAAR,CAAcA,KAAd,EAAqBvB,IAArB,EAA2BI,YAA3B,CAAhB,GAA2DmB,KAAjF;;AACA,YAAMG,OAAO,mCAAQJ,WAAR,GAAwBtB,IAAxB,CAAb;;AACA,4BACEa,eAAC,oBAAD;AAEE,UAAA,OAAO,EAAEK,OAFX;AAGE,UAAA,YAAY,EAAEO,aAHhB;AAAA,oBAKG,kBAAAE,WAAW,EAAI;AACd,gCACEd,eAAC,aAAD;AAAA,qCACEA,eAAC,WAAD;AACE,gBAAA,MAAM,EAAEK,OADV;AAEE,gBAAA,IAAI,EAAEQ,OAFR;AAGE,gBAAA,YAAY,EAAEtB,YAHhB;AAIE,gBAAA,YAAY,EAAEwB,0BAAgB,CAC5BV,OAD4B,EAE5BjB,QAF4B,EAG5ByB,OAH4B,EAI5BL,qBAJ4B,CAJhC;AAUE,gBAAA,KAAK,EAAEI;AAVT;AADF,cADF;AAgBD;AAtBH,qBACUN,SAAS,CAACU,QAAV,EADV,cACkC7B,IAAI,CAAC8B,EADvC,cAC6CZ,OAAO,CAACM,GADrD,cAC4DN,OAAO,CAACa,QADpE,EADF;AA0BD,OApCA;AARH,OACOnB,KAAK,CAACiB,QAAN,EADP,CADF;AAgDD,GAjDO,CAAR;AAkDD,CA7DD;;AA+DA/B,QAAQ,CAACkC,SAAT,GAAqB;AACnBjC,EAAAA,OAAO,EAAEkC,6BAAS,CAACC,KAAV,CAAgB,EAAhB,CADU;AAEnBlC,EAAAA,IAAI,EAAEiC,6BAAS,CAACC,KAAV,CAAgB,EAAhB,CAFa;AAGnBjC,EAAAA,QAAQ,EAAEgC,6BAAS,CAACE,IAHD;AAInBjC,EAAAA,QAAQ,EAAE+B,6BAAS,CAACC,KAAV,CAAgB,EAAhB,CAJS;AAKnB/B,EAAAA,IAAI,EAAE8B,6BAAS,CAACG,OAAV,CAAkBH,6BAAS,CAACI,MAA5B;AALa,CAArB;AAQA,8BAAeC,UAAI,CAACxC,QAAD,CAAnB;;;;"}
1
+ {"version":3,"file":"Settings.js","sources":["../../../../../src/components/Panels/RightPanel/Settings.js"],"sourcesContent":["import { memo } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { useBuilderStore } from '../../../contexts/BuilderContext';\nimport { usePropStore } from '../../../contexts/PropContext';\nimport SettingsItemRenderer from '../../Settings/SettingsItemRenderer';\nimport { onChangeFunction } from '../../../utils/functions';\nimport ErrorBoundary from '../../ErrorBoundary/ErrorBoundary';\n\nconst Settings = ({\n element = {},\n item = {},\n onChange = () => {},\n settings = {},\n tabs = [],\n}) => {\n const itemAccessor = usePropStore(state => state.itemAccessor);\n const activeTab = useBuilderStore(state => state.activeTab);\n const useExperimentalFeatures = usePropStore(state => state.useExperimentalFeatures);\n\n return (tabs.map((tabKey, index) => {\n return (\n <div\n key={index.toString()}\n className={classNames(\n 'toolItem-tabContent',\n { hidden: index !== activeTab.right },\n { hasInnerScroll: tabKey === 'MY IMAGES' },\n )}\n >\n {settings[tabKey].map((setting, itemIndex) => {\n if (setting.experimental && !useExperimentalFeatures) {\n return null;\n }\n const customUpdaterFunction = setting.onChange ? setting.onChange : false;\n const defaultItem = element.defaultItem || {};\n const value = (item[setting.key] || item[setting.key] === 0)\n ? item[setting.key] : defaultItem[setting.key] || null;\n const computedValue = setting.value ? setting.value(value, item, itemAccessor) : value;\n const newItem = { ...defaultItem, ...item };\n return (\n <SettingsItemRenderer\n key={`${itemIndex.toString()}_${item.id}_${setting.key}_${setting.uniqueId}`}\n setting={setting}\n settingValue={computedValue}\n >\n {SettingItem => {\n return (\n <ErrorBoundary\n item={newItem}\n level=\"settings\"\n >\n <SettingItem\n config={setting}\n item={newItem}\n itemAccessor={itemAccessor}\n onItemChange={onChangeFunction(\n setting,\n onChange,\n newItem,\n customUpdaterFunction,\n )}\n value={computedValue}\n />\n </ErrorBoundary>\n );\n }}\n </SettingsItemRenderer>\n );\n })}\n </div>\n );\n }));\n};\n\nSettings.propTypes = {\n element: PropTypes.shape({}),\n item: PropTypes.shape({}),\n onChange: PropTypes.func,\n settings: PropTypes.shape({}),\n tabs: PropTypes.arrayOf(PropTypes.string),\n};\n\nexport default memo(Settings);\n"],"names":["Settings","element","item","onChange","settings","tabs","itemAccessor","usePropStore","state","activeTab","useBuilderStore","useExperimentalFeatures","map","tabKey","index","_jsx","classNames","hidden","right","hasInnerScroll","setting","itemIndex","experimental","customUpdaterFunction","defaultItem","value","key","computedValue","newItem","SettingItem","onChangeFunction","toString","id","uniqueId","propTypes","PropTypes","shape","func","arrayOf","string","memo"],"mappings":"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"}
@@ -6,7 +6,7 @@ var classNames$1 = require('classnames');
6
6
  var classNames = require('../../constants/classNames.js');
7
7
  var functions = require('../../utils/functions.js');
8
8
  var ItemPositioner = require('../ItemPositioner.js');
9
- var ErrorBoundary = require('../ErrorBoundary.js');
9
+ var ErrorBoundary = require('../ErrorBoundary/ErrorBoundary.js');
10
10
  var jsxRuntime = require('react/jsx-runtime');
11
11
 
12
12
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -33,12 +33,15 @@ var StaticItem = function StaticItem(_ref) {
33
33
  left = item.left,
34
34
  top = item.top,
35
35
  width = item.width;
36
- return /*#__PURE__*/jsxRuntime.jsx(ErrorBoundary, {
37
- children: /*#__PURE__*/jsxRuntime.jsx(ItemPositioner, {
38
- style: _objectSpread(_objectSpread({}, functions.getStyles(left, top, false)), {}, {
39
- height: height,
40
- width: width
41
- }),
36
+ return /*#__PURE__*/jsxRuntime.jsx(ItemPositioner, {
37
+ style: _objectSpread(_objectSpread({}, functions.getStyles(left, top, false)), {}, {
38
+ height: height,
39
+ width: width
40
+ }),
41
+ children: /*#__PURE__*/jsxRuntime.jsx(ErrorBoundary, {
42
+ isStatic: true,
43
+ item: item,
44
+ level: "item",
42
45
  children: /*#__PURE__*/jsxRuntime.jsx("div", {
43
46
  className: classNames.reportItemWrapper,
44
47
  children: /*#__PURE__*/jsxRuntime.jsx("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"StaticItem.js","sources":["../../../../src/components/Preview/StaticItem.js"],"sourcesContent":["import { memo } from 'react';\nimport PropTypes from 'prop-types';\nimport cn from 'classnames';\nimport * as classNames from '../../constants/classNames';\nimport { getStyles } from '../../utils/functions';\nimport ItemPositioner from '../ItemPositioner';\nimport ErrorBoundary from '../ErrorBoundary';\n\nconst elementStyle = {\n height: '100%',\n width: '100%',\n};\n\nconst StaticItem = ({\n children = null,\n item = {},\n}) => {\n const {\n height,\n left,\n top,\n width,\n } = item;\n return (\n <ErrorBoundary>\n <ItemPositioner\n style={{\n ...getStyles(left, top, false),\n height,\n width,\n }}\n >\n <div\n className={classNames.reportItemWrapper}\n >\n <div\n className={cn(\n `${classNames.reportItem}`,\n { hasChart: item.itemType === 'chart' },\n )}\n style={elementStyle}\n >\n {children}\n </div>\n </div>\n </ItemPositioner>\n </ErrorBoundary>\n );\n};\n\nStaticItem.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 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(StaticItem);\n"],"names":["elementStyle","height","width","StaticItem","children","item","left","top","_jsx","getStyles","classNames","cn","hasChart","itemType","propTypes","PropTypes","any","shape","oneOfType","number","string","id","pageID","memo"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAQA,IAAMA,YAAY,GAAG;AACnBC,EAAAA,MAAM,EAAE,MADW;AAEnBC,EAAAA,KAAK,EAAE;AAFY,CAArB;;AAKA,IAAMC,UAAU,GAAG,SAAbA,UAAa,OAGb;AAAA,2BAFJC,QAEI;AAAA,MAFJA,QAEI,8BAFO,IAEP;AAAA,uBADJC,IACI;AAAA,MADJA,IACI,0BADG,EACH;AACJ,MACEJ,MADF,GAKII,IALJ,CACEJ,MADF;AAAA,MAEEK,IAFF,GAKID,IALJ,CAEEC,IAFF;AAAA,MAGEC,GAHF,GAKIF,IALJ,CAGEE,GAHF;AAAA,MAIEL,KAJF,GAKIG,IALJ,CAIEH,KAJF;AAMA,sBACEM,eAAC,aAAD;AAAA,2BACEA,eAAC,cAAD;AACE,MAAA,KAAK,kCACAC,mBAAS,CAACH,IAAD,EAAOC,GAAP,EAAY,KAAZ,CADT;AAEHN,QAAAA,MAAM,EAANA,MAFG;AAGHC,QAAAA,KAAK,EAALA;AAHG,QADP;AAAA,6BAOEM;AACE,QAAA,SAAS,EAAEE,4BADb;AAAA,+BAGEF;AACE,UAAA,SAAS,EAAEG,8BAAE,WACRD,qBADQ,GAEX;AAAEE,YAAAA,QAAQ,EAAEP,IAAI,CAACQ,QAAL,KAAkB;AAA9B,WAFW,CADf;AAKE,UAAA,KAAK,EAAEb,YALT;AAAA,oBAOGI;AAPH;AAHF;AAPF;AADF,IADF;AAyBD,CAnCD;;AAqCAD,UAAU,CAACW,SAAX,GAAuB;AACrBV,EAAAA,QAAQ,EAAEW,6BAAS,CAACC,GADC;AAErBX,EAAAA,IAAI,EAAEU,6BAAS,CAACE,KAAV,CAAgB;AACpBhB,IAAAA,MAAM,EAAEc,6BAAS,CAACG,SAAV,CAAoB,CAC1BH,6BAAS,CAACI,MADgB,EAE1BJ,6BAAS,CAACK,MAFgB,CAApB,CADY;AAKpBC,IAAAA,EAAE,EAAEN,6BAAS,CAACK,MALM;AAMpBP,IAAAA,QAAQ,EAAEE,6BAAS,CAACK,MANA;AAOpBd,IAAAA,IAAI,EAAES,6BAAS,CAACG,SAAV,CAAoB,CACxBH,6BAAS,CAACI,MADc,EAExBJ,6BAAS,CAACK,MAFc,CAApB,CAPc;AAWpBE,IAAAA,MAAM,EAAEP,6BAAS,CAACK,MAXE;AAYpBb,IAAAA,GAAG,EAAEQ,6BAAS,CAACG,SAAV,CAAoB,CACvBH,6BAAS,CAACI,MADa,EAEvBJ,6BAAS,CAACK,MAFa,CAApB,CAZe;AAgBpBlB,IAAAA,KAAK,EAAEa,6BAAS,CAACG,SAAV,CAAoB,CACzBH,6BAAS,CAACI,MADe,EAEzBJ,6BAAS,CAACK,MAFe,CAApB;AAhBa,GAAhB;AAFe,CAAvB;AAyBA,gCAAeG,UAAI,CAACpB,UAAD,CAAnB;;;;"}
1
+ {"version":3,"file":"StaticItem.js","sources":["../../../../src/components/Preview/StaticItem.js"],"sourcesContent":["import { memo } from 'react';\nimport PropTypes from 'prop-types';\nimport cn from 'classnames';\nimport * as classNames from '../../constants/classNames';\nimport { getStyles } from '../../utils/functions';\nimport ItemPositioner from '../ItemPositioner';\nimport ErrorBoundary from '../ErrorBoundary/ErrorBoundary';\n\nconst elementStyle = {\n height: '100%',\n width: '100%',\n};\n\nconst StaticItem = ({\n children = null,\n item = {},\n}) => {\n const {\n height,\n left,\n top,\n width,\n } = item;\n return (\n <ItemPositioner\n style={{\n ...getStyles(left, top, false),\n height,\n width,\n }}\n >\n <ErrorBoundary\n isStatic={true}\n item={item}\n level=\"item\"\n >\n <div\n className={classNames.reportItemWrapper}\n >\n <div\n className={cn(\n `${classNames.reportItem}`,\n { hasChart: item.itemType === 'chart' },\n )}\n style={elementStyle}\n >\n {children}\n </div>\n </div>\n </ErrorBoundary>\n </ItemPositioner>\n );\n};\n\nStaticItem.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 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(StaticItem);\n"],"names":["elementStyle","height","width","StaticItem","children","item","left","top","_jsx","getStyles","classNames","cn","hasChart","itemType","propTypes","PropTypes","any","shape","oneOfType","number","string","id","pageID","memo"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAQA,IAAMA,YAAY,GAAG;AACnBC,EAAAA,MAAM,EAAE,MADW;AAEnBC,EAAAA,KAAK,EAAE;AAFY,CAArB;;AAKA,IAAMC,UAAU,GAAG,SAAbA,UAAa,OAGb;AAAA,2BAFJC,QAEI;AAAA,MAFJA,QAEI,8BAFO,IAEP;AAAA,uBADJC,IACI;AAAA,MADJA,IACI,0BADG,EACH;AACJ,MACEJ,MADF,GAKII,IALJ,CACEJ,MADF;AAAA,MAEEK,IAFF,GAKID,IALJ,CAEEC,IAFF;AAAA,MAGEC,GAHF,GAKIF,IALJ,CAGEE,GAHF;AAAA,MAIEL,KAJF,GAKIG,IALJ,CAIEH,KAJF;AAMA,sBACEM,eAAC,cAAD;AACE,IAAA,KAAK,kCACAC,mBAAS,CAACH,IAAD,EAAOC,GAAP,EAAY,KAAZ,CADT;AAEHN,MAAAA,MAAM,EAANA,MAFG;AAGHC,MAAAA,KAAK,EAALA;AAHG,MADP;AAAA,2BAOEM,eAAC,aAAD;AACE,MAAA,QAAQ,EAAE,IADZ;AAEE,MAAA,IAAI,EAAEH,IAFR;AAGE,MAAA,KAAK,EAAC,MAHR;AAAA,6BAKEG;AACE,QAAA,SAAS,EAAEE,4BADb;AAAA,+BAGEF;AACE,UAAA,SAAS,EAAEG,8BAAE,WACRD,qBADQ,GAEX;AAAEE,YAAAA,QAAQ,EAAEP,IAAI,CAACQ,QAAL,KAAkB;AAA9B,WAFW,CADf;AAKE,UAAA,KAAK,EAAEb,YALT;AAAA,oBAOGI;AAPH;AAHF;AALF;AAPF,IADF;AA6BD,CAvCD;;AAyCAD,UAAU,CAACW,SAAX,GAAuB;AACrBV,EAAAA,QAAQ,EAAEW,6BAAS,CAACC,GADC;AAErBX,EAAAA,IAAI,EAAEU,6BAAS,CAACE,KAAV,CAAgB;AACpBhB,IAAAA,MAAM,EAAEc,6BAAS,CAACG,SAAV,CAAoB,CAC1BH,6BAAS,CAACI,MADgB,EAE1BJ,6BAAS,CAACK,MAFgB,CAApB,CADY;AAKpBC,IAAAA,EAAE,EAAEN,6BAAS,CAACK,MALM;AAMpBP,IAAAA,QAAQ,EAAEE,6BAAS,CAACK,MANA;AAOpBd,IAAAA,IAAI,EAAES,6BAAS,CAACG,SAAV,CAAoB,CACxBH,6BAAS,CAACI,MADc,EAExBJ,6BAAS,CAACK,MAFc,CAApB,CAPc;AAWpBE,IAAAA,MAAM,EAAEP,6BAAS,CAACK,MAXE;AAYpBb,IAAAA,GAAG,EAAEQ,6BAAS,CAACG,SAAV,CAAoB,CACvBH,6BAAS,CAACI,MADa,EAEvBJ,6BAAS,CAACK,MAFa,CAApB,CAZe;AAgBpBlB,IAAAA,KAAK,EAAEa,6BAAS,CAACG,SAAV,CAAoB,CACzBH,6BAAS,CAACI,MADe,EAEzBJ,6BAAS,CAACK,MAFe,CAApB;AAhBa,GAAhB;AAFe,CAAvB;AAyBA,gCAAeG,UAAI,CAACpB,UAAD,CAAnB;;;;"}
@@ -9,6 +9,7 @@ var PropTypes = require('prop-types');
9
9
  var classNames = require('../../constants/classNames.js');
10
10
  var ReportItemRenderer = require('../Builder/ReportItemRenderer.js');
11
11
  var StaticItem = require('./StaticItem.js');
12
+ var ErrorBoundary = require('../ErrorBoundary/ErrorBoundary.js');
12
13
  var withZoomPanPinchHOC = require('../withZoomPanPinchHOC.js');
13
14
  var PropContext = require('../../contexts/PropContext.js');
14
15
  var jsxRuntime = require('react/jsx-runtime');
@@ -30,28 +31,32 @@ var StaticPage = function StaticPage(_ref) {
30
31
  var additionalPageItems = PropContext.usePropStore(function (state) {
31
32
  return state.additionalPageItems;
32
33
  });
33
- return /*#__PURE__*/jsxRuntime.jsx("div", {
34
- className: classNames.pageContainer,
35
- style: style,
36
- children: /*#__PURE__*/jsxRuntime.jsxs("div", {
37
- className: "jfReport-hider o-hidden f-all p-relative",
38
- children: [items.filter(function (item) {
39
- return item.isVisible !== undefined ? item.isVisible : true;
40
- }).map(function (item) {
41
- return /*#__PURE__*/jsxRuntime.jsx(StaticItem, {
42
- item: item,
43
- children: /*#__PURE__*/jsxRuntime.jsx(ReportItemRenderer, {
34
+ return /*#__PURE__*/jsxRuntime.jsx(ErrorBoundary, {
35
+ isStatic: true,
36
+ level: "page",
37
+ children: /*#__PURE__*/jsxRuntime.jsx("div", {
38
+ className: classNames.pageContainer,
39
+ style: style,
40
+ children: /*#__PURE__*/jsxRuntime.jsxs("div", {
41
+ className: "jfReport-hider o-hidden f-all p-relative",
42
+ children: [items.filter(function (item) {
43
+ return item.isVisible !== undefined ? item.isVisible : true;
44
+ }).map(function (item) {
45
+ return /*#__PURE__*/jsxRuntime.jsx(StaticItem, {
44
46
  item: item,
45
- children: function children(ReportItem, mergedItem) {
46
- return /*#__PURE__*/jsxRuntime.jsx(ReportItem, {
47
- isThumbnail: isThumbnail,
48
- item: mergedItem,
49
- itemAccessor: itemAccessor
50
- });
51
- }
52
- })
53
- }, item.id);
54
- }), additionalPageItems]
47
+ children: /*#__PURE__*/jsxRuntime.jsx(ReportItemRenderer, {
48
+ item: item,
49
+ children: function children(ReportItem, mergedItem) {
50
+ return /*#__PURE__*/jsxRuntime.jsx(ReportItem, {
51
+ isThumbnail: isThumbnail,
52
+ item: mergedItem,
53
+ itemAccessor: itemAccessor
54
+ });
55
+ }
56
+ })
57
+ }, item.id);
58
+ }), additionalPageItems]
59
+ })
55
60
  })
56
61
  });
57
62
  };
@@ -1 +1 @@
1
- {"version":3,"file":"StaticPage.js","sources":["../../../../src/components/Preview/StaticPage.js"],"sourcesContent":["import { memo } from 'react';\nimport PropTypes from 'prop-types';\nimport * as classNames from '../../constants/classNames';\nimport ReportItemRenderer from '../Builder/ReportItemRenderer';\nimport StaticItem from './StaticItem';\nimport withZoomPanPinchHOC from '../withZoomPanPinchHOC';\nimport { usePropStore } from '../../contexts/PropContext';\n\nconst StaticPage = ({\n isThumbnail = false,\n items = [],\n style = {},\n}) => {\n const itemAccessor = usePropStore(state => state.itemAccessor);\n const additionalPageItems = usePropStore(state => state.additionalPageItems);\n return (\n <div\n className={classNames.pageContainer}\n style={style}\n >\n <div className=\"jfReport-hider o-hidden f-all p-relative\">\n {items.filter(item => (\n item.isVisible !== undefined\n ? item.isVisible\n : true\n )).map(item => {\n return (\n <StaticItem\n key={item.id}\n item={item}\n >\n <ReportItemRenderer\n item={item}\n >\n {(ReportItem, mergedItem) => (\n <ReportItem\n isThumbnail={isThumbnail}\n item={mergedItem}\n itemAccessor={itemAccessor}\n />\n )}\n </ReportItemRenderer>\n </StaticItem>\n );\n })}\n {additionalPageItems}\n </div>\n </div>\n );\n};\n\nStaticPage.propTypes = {\n isThumbnail: PropTypes.bool,\n items: PropTypes.arrayOf(PropTypes.shape({})),\n style: PropTypes.shape({}),\n};\n\nexport default memo(StaticPage);\nexport const StaticPageWithZoomPanPinch = withZoomPanPinchHOC(StaticPage);\n"],"names":["StaticPage","isThumbnail","items","style","itemAccessor","usePropStore","state","additionalPageItems","_jsx","classNames","_jsxs","filter","item","isVisible","undefined","map","ReportItem","mergedItem","id","propTypes","PropTypes","bool","arrayOf","shape","memo","StaticPageWithZoomPanPinch","withZoomPanPinchHOC"],"mappings":";;;;;;;;;;;;;;;;;;;AAQA,IAAMA,UAAU,GAAG,SAAbA,UAAa,OAIb;AAAA,8BAHJC,WAGI;AAAA,MAHJA,WAGI,iCAHU,KAGV;AAAA,wBAFJC,KAEI;AAAA,MAFJA,KAEI,2BAFI,EAEJ;AAAA,wBADJC,KACI;AAAA,MADJA,KACI,2BADI,EACJ;AACJ,MAAMC,YAAY,GAAGC,wBAAY,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACF,YAAV;AAAA,GAAN,CAAjC;AACA,MAAMG,mBAAmB,GAAGF,wBAAY,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACC,mBAAV;AAAA,GAAN,CAAxC;AACA,sBACEC;AACE,IAAA,SAAS,EAAEC,wBADb;AAEE,IAAA,KAAK,EAAEN,KAFT;AAAA,2BAIEO;AAAK,MAAA,SAAS,EAAC,0CAAf;AAAA,iBACGR,KAAK,CAACS,MAAN,CAAa,UAAAC,IAAI;AAAA,eAChBA,IAAI,CAACC,SAAL,KAAmBC,SAAnB,GACIF,IAAI,CAACC,SADT,GAEI,IAHY;AAAA,OAAjB,EAIEE,GAJF,CAIM,UAAAH,IAAI,EAAI;AACb,4BACEJ,eAAC,UAAD;AAEE,UAAA,IAAI,EAAEI,IAFR;AAAA,iCAIEJ,eAAC,kBAAD;AACE,YAAA,IAAI,EAAEI,IADR;AAAA,sBAGG,kBAACI,UAAD,EAAaC,UAAb;AAAA,kCACCT,eAAC,UAAD;AACE,gBAAA,WAAW,EAAEP,WADf;AAEE,gBAAA,IAAI,EAAEgB,UAFR;AAGE,gBAAA,YAAY,EAAEb;AAHhB,gBADD;AAAA;AAHH;AAJF,WACOQ,IAAI,CAACM,EADZ,CADF;AAkBD,OAvBA,CADH,EAyBGX,mBAzBH;AAAA;AAJF,IADF;AAkCD,CAzCD;;AA2CAP,UAAU,CAACmB,SAAX,GAAuB;AACrBlB,EAAAA,WAAW,EAAEmB,6BAAS,CAACC,IADF;AAErBnB,EAAAA,KAAK,EAAEkB,6BAAS,CAACE,OAAV,CAAkBF,6BAAS,CAACG,KAAV,CAAgB,EAAhB,CAAlB,CAFc;AAGrBpB,EAAAA,KAAK,EAAEiB,6BAAS,CAACG,KAAV,CAAgB,EAAhB;AAHc,CAAvB;AAMA,gCAAeC,UAAI,CAACxB,UAAD,CAAnB;IACayB,0BAA0B,GAAGC,mBAAmB,CAAC1B,UAAD;;;;;"}
1
+ {"version":3,"file":"StaticPage.js","sources":["../../../../src/components/Preview/StaticPage.js"],"sourcesContent":["import { memo } from 'react';\nimport PropTypes from 'prop-types';\nimport * as classNames from '../../constants/classNames';\nimport ReportItemRenderer from '../Builder/ReportItemRenderer';\nimport StaticItem from './StaticItem';\nimport ErrorBoundary from '../ErrorBoundary/ErrorBoundary';\nimport withZoomPanPinchHOC from '../withZoomPanPinchHOC';\nimport { usePropStore } from '../../contexts/PropContext';\n\nconst StaticPage = ({\n isThumbnail = false,\n items = [],\n style = {},\n}) => {\n const itemAccessor = usePropStore(state => state.itemAccessor);\n const additionalPageItems = usePropStore(state => state.additionalPageItems);\n return (\n <ErrorBoundary\n isStatic={true}\n level=\"page\"\n >\n <div\n className={classNames.pageContainer}\n style={style}\n >\n <div className=\"jfReport-hider o-hidden f-all p-relative\">\n {items.filter(item => (\n item.isVisible !== undefined\n ? item.isVisible\n : true\n )).map(item => {\n return (\n <StaticItem\n key={item.id}\n item={item}\n >\n <ReportItemRenderer\n item={item}\n >\n {(ReportItem, mergedItem) => (\n <ReportItem\n isThumbnail={isThumbnail}\n item={mergedItem}\n itemAccessor={itemAccessor}\n />\n )}\n </ReportItemRenderer>\n </StaticItem>\n );\n })}\n {additionalPageItems}\n </div>\n </div>\n </ErrorBoundary>\n );\n};\n\nStaticPage.propTypes = {\n isThumbnail: PropTypes.bool,\n items: PropTypes.arrayOf(PropTypes.shape({})),\n style: PropTypes.shape({}),\n};\n\nexport default memo(StaticPage);\nexport const StaticPageWithZoomPanPinch = withZoomPanPinchHOC(StaticPage);\n"],"names":["StaticPage","isThumbnail","items","style","itemAccessor","usePropStore","state","additionalPageItems","_jsx","classNames","_jsxs","filter","item","isVisible","undefined","map","ReportItem","mergedItem","id","propTypes","PropTypes","bool","arrayOf","shape","memo","StaticPageWithZoomPanPinch","withZoomPanPinchHOC"],"mappings":";;;;;;;;;;;;;;;;;;;;AASA,IAAMA,UAAU,GAAG,SAAbA,UAAa,OAIb;AAAA,8BAHJC,WAGI;AAAA,MAHJA,WAGI,iCAHU,KAGV;AAAA,wBAFJC,KAEI;AAAA,MAFJA,KAEI,2BAFI,EAEJ;AAAA,wBADJC,KACI;AAAA,MADJA,KACI,2BADI,EACJ;AACJ,MAAMC,YAAY,GAAGC,wBAAY,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACF,YAAV;AAAA,GAAN,CAAjC;AACA,MAAMG,mBAAmB,GAAGF,wBAAY,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACC,mBAAV;AAAA,GAAN,CAAxC;AACA,sBACEC,eAAC,aAAD;AACE,IAAA,QAAQ,EAAE,IADZ;AAEE,IAAA,KAAK,EAAC,MAFR;AAAA,2BAIEA;AACE,MAAA,SAAS,EAAEC,wBADb;AAEE,MAAA,KAAK,EAAEN,KAFT;AAAA,6BAIEO;AAAK,QAAA,SAAS,EAAC,0CAAf;AAAA,mBACGR,KAAK,CAACS,MAAN,CAAa,UAAAC,IAAI;AAAA,iBAChBA,IAAI,CAACC,SAAL,KAAmBC,SAAnB,GACIF,IAAI,CAACC,SADT,GAEI,IAHY;AAAA,SAAjB,EAIEE,GAJF,CAIM,UAAAH,IAAI,EAAI;AACb,8BACEJ,eAAC,UAAD;AAEE,YAAA,IAAI,EAAEI,IAFR;AAAA,mCAIEJ,eAAC,kBAAD;AACE,cAAA,IAAI,EAAEI,IADR;AAAA,wBAGG,kBAACI,UAAD,EAAaC,UAAb;AAAA,oCACCT,eAAC,UAAD;AACE,kBAAA,WAAW,EAAEP,WADf;AAEE,kBAAA,IAAI,EAAEgB,UAFR;AAGE,kBAAA,YAAY,EAAEb;AAHhB,kBADD;AAAA;AAHH;AAJF,aACOQ,IAAI,CAACM,EADZ,CADF;AAkBD,SAvBA,CADH,EAyBGX,mBAzBH;AAAA;AAJF;AAJF,IADF;AAuCD,CA9CD;;AAgDAP,UAAU,CAACmB,SAAX,GAAuB;AACrBlB,EAAAA,WAAW,EAAEmB,6BAAS,CAACC,IADF;AAErBnB,EAAAA,KAAK,EAAEkB,6BAAS,CAACE,OAAV,CAAkBF,6BAAS,CAACG,KAAV,CAAgB,EAAhB,CAAlB,CAFc;AAGrBpB,EAAAA,KAAK,EAAEiB,6BAAS,CAACG,KAAV,CAAgB,EAAhB;AAHc,CAAvB;AAMA,gCAAeC,UAAI,CAACxB,UAAD,CAAnB;IACayB,0BAA0B,GAAGC,mBAAmB,CAAC1B,UAAD;;;;;"}
@@ -58,12 +58,10 @@ var QuillEditor = /*#__PURE__*/function (_React$PureComponent) {
58
58
 
59
59
  _this = _super.call(this, props);
60
60
 
61
- _defineProperty(_assertThisInitialized(_this), "saveAndQuit", function () {
61
+ _defineProperty(_assertThisInitialized(_this), "save", function () {
62
62
  var _this$props = _this.props,
63
63
  content = _this$props.content,
64
- handleSave = _this$props.handleSave,
65
- setIsTextEditorOpen = _this$props.setIsTextEditorOpen;
66
- setIsTextEditorOpen(false);
64
+ handleSave = _this$props.handleSave;
67
65
  handleSave(content);
68
66
  });
69
67
 
@@ -71,7 +69,11 @@ var QuillEditor = /*#__PURE__*/function (_React$PureComponent) {
71
69
  e.stopPropagation();
72
70
 
73
71
  if (e.keyCode === 27) {
74
- _this.saveAndQuit();
72
+ var onClose = _this.props.onClose;
73
+
74
+ _this.save();
75
+
76
+ onClose === null || onClose === void 0 ? void 0 : onClose();
75
77
  }
76
78
  });
77
79
 
@@ -98,7 +100,7 @@ var QuillEditor = /*#__PURE__*/function (_React$PureComponent) {
98
100
  }, {
99
101
  key: "componentWillUnmount",
100
102
  value: function componentWillUnmount() {
101
- this.saveAndQuit();
103
+ this.save();
102
104
  }
103
105
  }, {
104
106
  key: "render",
@@ -130,9 +132,9 @@ QuillEditor.formats = textEditorConstants.formats;
130
132
  QuillEditor.propTypes = {
131
133
  content: PropTypes__default['default'].string,
132
134
  handleSave: PropTypes__default['default'].func,
135
+ onClose: PropTypes__default['default'].func,
133
136
  placeholder: PropTypes__default['default'].string.isRequired,
134
- setContent: PropTypes__default['default'].func,
135
- setIsTextEditorOpen: PropTypes__default['default'].func
137
+ setContent: PropTypes__default['default'].func
136
138
  };
137
139
 
138
140
  module.exports = QuillEditor;
@@ -1 +1 @@
1
- {"version":3,"file":"QuillEditor.js","sources":["../../../../src/components/TextEditor/QuillEditor.js"],"sourcesContent":["import React from 'react';\nimport ReactQuill from 'react-quill';\nimport domPurify from 'dompurify';\nimport PropTypes from 'prop-types';\nimport { formats, modules } from './textEditorConstants';\nimport { fontSizes } from '../../constants/fonts';\nimport 'react-quill/dist/quill.snow.css';\n\nconst Size = ReactQuill.Quill.import('attributors/style/size');\nSize.whitelist = fontSizes.map(s => `${s}px`);\nReactQuill.Quill.register(Size, true);\n\nclass QuillEditor extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.quill = React.createRef();\n }\n\n componentDidMount() {\n if (this.quill.current !== null) {\n const { content } = this.props;\n const editor = this.quill.current.getEditor();\n editor.setSelection(0, content.length);\n }\n }\n\n componentWillUnmount() {\n this.saveAndQuit();\n }\n\n saveAndQuit = () => {\n const { content, handleSave, setIsTextEditorOpen } = this.props;\n setIsTextEditorOpen(false);\n handleSave(content);\n }\n\n handleKeyDown = e => {\n e.stopPropagation();\n if (e.keyCode === 27) {\n this.saveAndQuit();\n }\n }\n\n handleSetContent = (value, delta, source) => {\n if (source === 'user') {\n const { setContent } = this.props;\n setContent(domPurify.sanitize(value));\n }\n }\n\n render() {\n const { content, placeholder } = this.props;\n\n return (\n <div\n className=\"f-all\"\n onKeyDown={this.handleKeyDown}\n >\n <ReactQuill\n ref={this.quill}\n formats={QuillEditor.formats}\n modules={QuillEditor.modules}\n onChange={this.handleSetContent}\n placeholder={placeholder}\n preserveWhitespace\n value={content}\n />\n </div>\n );\n }\n}\n\nQuillEditor.modules = modules;\nQuillEditor.formats = formats;\n\nQuillEditor.propTypes = {\n content: PropTypes.string,\n handleSave: PropTypes.func,\n placeholder: PropTypes.string.isRequired,\n setContent: PropTypes.func,\n setIsTextEditorOpen: PropTypes.func,\n};\n\nexport default QuillEditor;\n"],"names":["Size","ReactQuill","Quill","import","whitelist","fontSizes","map","s","register","QuillEditor","props","content","handleSave","setIsTextEditorOpen","e","stopPropagation","keyCode","saveAndQuit","value","delta","source","setContent","domPurify","sanitize","quill","React","createRef","current","editor","getEditor","setSelection","length","placeholder","_jsx","handleKeyDown","formats","modules","handleSetContent","PureComponent","propTypes","PropTypes","string","func","isRequired"],"mappings":"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"}
1
+ {"version":3,"file":"QuillEditor.js","sources":["../../../../src/components/TextEditor/QuillEditor.js"],"sourcesContent":["import React from 'react';\nimport ReactQuill from 'react-quill';\nimport domPurify from 'dompurify';\nimport PropTypes from 'prop-types';\nimport { formats, modules } from './textEditorConstants';\nimport { fontSizes } from '../../constants/fonts';\nimport 'react-quill/dist/quill.snow.css';\n\nconst Size = ReactQuill.Quill.import('attributors/style/size');\nSize.whitelist = fontSizes.map(s => `${s}px`);\nReactQuill.Quill.register(Size, true);\n\nclass QuillEditor extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.quill = React.createRef();\n }\n\n componentDidMount() {\n if (this.quill.current !== null) {\n const { content } = this.props;\n const editor = this.quill.current.getEditor();\n editor.setSelection(0, content.length);\n }\n }\n\n componentWillUnmount() {\n this.save();\n }\n\n save = () => {\n const { content, handleSave } = this.props;\n handleSave(content);\n }\n\n handleKeyDown = e => {\n e.stopPropagation();\n if (e.keyCode === 27) {\n const { onClose } = this.props;\n this.save();\n onClose?.();\n }\n }\n\n handleSetContent = (value, delta, source) => {\n if (source === 'user') {\n const { setContent } = this.props;\n setContent(domPurify.sanitize(value));\n }\n }\n\n render() {\n const { content, placeholder } = this.props;\n\n return (\n <div\n className=\"f-all\"\n onKeyDown={this.handleKeyDown}\n >\n <ReactQuill\n ref={this.quill}\n formats={QuillEditor.formats}\n modules={QuillEditor.modules}\n onChange={this.handleSetContent}\n placeholder={placeholder}\n preserveWhitespace\n value={content}\n />\n </div>\n );\n }\n}\n\nQuillEditor.modules = modules;\nQuillEditor.formats = formats;\n\nQuillEditor.propTypes = {\n content: PropTypes.string,\n handleSave: PropTypes.func,\n onClose: PropTypes.func,\n placeholder: PropTypes.string.isRequired,\n setContent: PropTypes.func,\n};\n\nexport default QuillEditor;\n"],"names":["Size","ReactQuill","Quill","import","whitelist","fontSizes","map","s","register","QuillEditor","props","content","handleSave","e","stopPropagation","keyCode","onClose","save","value","delta","source","setContent","domPurify","sanitize","quill","React","createRef","current","editor","getEditor","setSelection","length","placeholder","_jsx","handleKeyDown","formats","modules","handleSetContent","PureComponent","propTypes","PropTypes","string","func","isRequired"],"mappings":"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"}
@@ -5,6 +5,7 @@ var PropTypes = require('prop-types');
5
5
  var domPurify = require('dompurify');
6
6
  var QuillEditor = require('./QuillEditor.js');
7
7
  var BuilderContext = require('../../contexts/BuilderContext.js');
8
+ var hooks = require('../../utils/hooks.js');
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 }; }
@@ -35,10 +36,10 @@ var TextEditor = function TextEditor(_ref) {
35
36
  isSelected = _ref$isSelected === void 0 ? false : _ref$isSelected,
36
37
  placeholder = _ref.placeholder;
37
38
 
38
- var _useState = React.useState(domPurify__default['default'].sanitize(content)),
39
- _useState2 = _slicedToArray(_useState, 2),
40
- _content = _useState2[0],
41
- setContent = _useState2[1];
39
+ var _usePropState = hooks.usePropState(content, domPurify__default['default'].sanitize),
40
+ _usePropState2 = _slicedToArray(_usePropState, 2),
41
+ _content = _usePropState2[0],
42
+ setContent = _usePropState2[1];
42
43
 
43
44
  var isTextEditorOpen = BuilderContext.useBuilderStore(function (state) {
44
45
  return state.isTextEditorOpen;
@@ -46,11 +47,19 @@ var TextEditor = function TextEditor(_ref) {
46
47
  var setIsTextEditorOpen = BuilderContext.useBuilderStore(function (state) {
47
48
  return state.setIsTextEditorOpen;
48
49
  });
50
+ React.useEffect(function () {
51
+ if (isTextEditorOpen && !isSelected) {
52
+ setIsTextEditorOpen(false);
53
+ }
54
+ }, [isSelected, isTextEditorOpen, setIsTextEditorOpen]);
49
55
  var onClick = React.useCallback(function () {
50
56
  if (isSelected && !isLocked) {
51
57
  setIsTextEditorOpen(true);
52
58
  }
53
59
  }, [isSelected, isLocked, setIsTextEditorOpen]);
60
+ var onClose = React.useCallback(function () {
61
+ setIsTextEditorOpen(false);
62
+ }, [setIsTextEditorOpen]);
54
63
  var isNotEmpty = React.useMemo(function () {
55
64
  var el = document.createElement('div');
56
65
  el.innerHTML = _content;
@@ -59,9 +68,9 @@ var TextEditor = function TextEditor(_ref) {
59
68
  return isSelected && isTextEditorOpen ? /*#__PURE__*/jsxRuntime.jsx(QuillEditor, {
60
69
  content: _content,
61
70
  handleSave: handleSave,
71
+ onClose: onClose,
62
72
  placeholder: placeholder,
63
- setContent: setContent,
64
- setIsTextEditorOpen: setIsTextEditorOpen
73
+ setContent: setContent
65
74
  }) : /*#__PURE__*/jsxRuntime.jsx("div", {
66
75
  className: "f-all ql-editor".concat(isNotEmpty ? '' : ' isEmptyTextElement'),
67
76
  dangerouslySetInnerHTML: {
@@ -1 +1 @@
1
- {"version":3,"file":"TextEditor.js","sources":["../../../../src/components/TextEditor/TextEditor.js"],"sourcesContent":["import { useCallback, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport domPurify from 'dompurify';\nimport QuillEditor from './QuillEditor';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\n\nconst TextEditor = ({\n content = '',\n handleSave = () => {},\n isLocked = false,\n isSelected = false,\n placeholder,\n}) => {\n const [_content, setContent] = useState(domPurify.sanitize(content));\n\n const isTextEditorOpen = useBuilderStore(state => state.isTextEditorOpen);\n const setIsTextEditorOpen = useBuilderStore(state => state.setIsTextEditorOpen);\n\n const onClick = useCallback(() => {\n if (isSelected && !isLocked) {\n setIsTextEditorOpen(true);\n }\n }, [isSelected, isLocked, setIsTextEditorOpen]);\n\n const isNotEmpty = useMemo(() => {\n const el = document.createElement('div');\n el.innerHTML = _content;\n return !!el.innerText;\n }, [_content]);\n\n return isSelected && isTextEditorOpen ? (\n <QuillEditor\n content={_content}\n handleSave={handleSave}\n placeholder={placeholder}\n setContent={setContent}\n setIsTextEditorOpen={setIsTextEditorOpen}\n />\n ) : (\n <div\n className={`f-all ql-editor${isNotEmpty ? '' : ' isEmptyTextElement'}`}\n dangerouslySetInnerHTML={{\n __html: isNotEmpty ? _content : placeholder,\n }}\n onClick={onClick}\n onKeyDown={() => {}}\n />\n );\n};\n\nTextEditor.propTypes = {\n content: PropTypes.string,\n handleSave: PropTypes.func,\n isLocked: PropTypes.bool,\n isSelected: PropTypes.bool,\n placeholder: PropTypes.string.isRequired,\n};\n\nexport default TextEditor;\n"],"names":["TextEditor","content","handleSave","isLocked","isSelected","placeholder","useState","domPurify","sanitize","_content","setContent","isTextEditorOpen","useBuilderStore","state","setIsTextEditorOpen","onClick","useCallback","isNotEmpty","useMemo","el","document","createElement","innerHTML","innerText","_jsx","__html","propTypes","PropTypes","string","func","bool","isRequired"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;IAMMA,UAAU,GAAG,SAAbA,UAAa,OAMb;AAAA,0BALJC,OAKI;AAAA,MALJA,OAKI,6BALM,EAKN;AAAA,6BAJJC,UAII;AAAA,MAJJA,UAII,gCAJS,YAAM,EAIf;AAAA,2BAHJC,QAGI;AAAA,MAHJA,QAGI,8BAHO,KAGP;AAAA,6BAFJC,UAEI;AAAA,MAFJA,UAEI,gCAFS,KAET;AAAA,MADJC,WACI,QADJA,WACI;;AACJ,kBAA+BC,cAAQ,CAACC,6BAAS,CAACC,QAAV,CAAmBP,OAAnB,CAAD,CAAvC;AAAA;AAAA,MAAOQ,QAAP;AAAA,MAAiBC,UAAjB;;AAEA,MAAMC,gBAAgB,GAAGC,8BAAe,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACF,gBAAV;AAAA,GAAN,CAAxC;AACA,MAAMG,mBAAmB,GAAGF,8BAAe,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACC,mBAAV;AAAA,GAAN,CAA3C;AAEA,MAAMC,OAAO,GAAGC,iBAAW,CAAC,YAAM;AAChC,QAAIZ,UAAU,IAAI,CAACD,QAAnB,EAA6B;AAC3BW,MAAAA,mBAAmB,CAAC,IAAD,CAAnB;AACD;AACF,GAJ0B,EAIxB,CAACV,UAAD,EAAaD,QAAb,EAAuBW,mBAAvB,CAJwB,CAA3B;AAMA,MAAMG,UAAU,GAAGC,aAAO,CAAC,YAAM;AAC/B,QAAMC,EAAE,GAAGC,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAX;AACAF,IAAAA,EAAE,CAACG,SAAH,GAAeb,QAAf;AACA,WAAO,CAAC,CAACU,EAAE,CAACI,SAAZ;AACD,GAJyB,EAIvB,CAACd,QAAD,CAJuB,CAA1B;AAMA,SAAOL,UAAU,IAAIO,gBAAd,gBACLa,eAAC,WAAD;AACE,IAAA,OAAO,EAAEf,QADX;AAEE,IAAA,UAAU,EAAEP,UAFd;AAGE,IAAA,WAAW,EAAEG,WAHf;AAIE,IAAA,UAAU,EAAEK,UAJd;AAKE,IAAA,mBAAmB,EAAEI;AALvB,IADK,gBASLU;AACE,IAAA,SAAS,2BAAoBP,UAAU,GAAG,EAAH,GAAQ,qBAAtC,CADX;AAEE,IAAA,uBAAuB,EAAE;AACvBQ,MAAAA,MAAM,EAAER,UAAU,GAAGR,QAAH,GAAcJ;AADT,KAF3B;AAKE,IAAA,OAAO,EAAEU,OALX;AAME,IAAA,SAAS,EAAE,qBAAM;AANnB,IATF;AAkBD;;AAEDf,UAAU,CAAC0B,SAAX,GAAuB;AACrBzB,EAAAA,OAAO,EAAE0B,6BAAS,CAACC,MADE;AAErB1B,EAAAA,UAAU,EAAEyB,6BAAS,CAACE,IAFD;AAGrB1B,EAAAA,QAAQ,EAAEwB,6BAAS,CAACG,IAHC;AAIrB1B,EAAAA,UAAU,EAAEuB,6BAAS,CAACG,IAJD;AAKrBzB,EAAAA,WAAW,EAAEsB,6BAAS,CAACC,MAAV,CAAiBG;AALT,CAAvB;;;;"}
1
+ {"version":3,"file":"TextEditor.js","sources":["../../../../src/components/TextEditor/TextEditor.js"],"sourcesContent":["import {\n useCallback,\n useMemo,\n useEffect,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport domPurify from 'dompurify';\nimport QuillEditor from './QuillEditor';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport { usePropState } from '../../utils/hooks';\n\nconst TextEditor = ({\n content = '',\n handleSave = () => {},\n isLocked = false,\n isSelected = false,\n placeholder,\n}) => {\n const [_content, setContent] = usePropState(content, domPurify.sanitize);\n\n const isTextEditorOpen = useBuilderStore(state => state.isTextEditorOpen);\n const setIsTextEditorOpen = useBuilderStore(state => state.setIsTextEditorOpen);\n\n useEffect(() => {\n if (isTextEditorOpen && !isSelected) {\n setIsTextEditorOpen(false);\n }\n }, [isSelected, isTextEditorOpen, setIsTextEditorOpen]);\n\n const onClick = useCallback(() => {\n if (isSelected && !isLocked) {\n setIsTextEditorOpen(true);\n }\n }, [isSelected, isLocked, setIsTextEditorOpen]);\n\n const onClose = useCallback(() => {\n setIsTextEditorOpen(false);\n }, [setIsTextEditorOpen]);\n\n const isNotEmpty = useMemo(() => {\n const el = document.createElement('div');\n el.innerHTML = _content;\n return !!el.innerText;\n }, [_content]);\n\n return isSelected && isTextEditorOpen ? (\n <QuillEditor\n content={_content}\n handleSave={handleSave}\n onClose={onClose}\n placeholder={placeholder}\n setContent={setContent}\n />\n ) : (\n <div\n className={`f-all ql-editor${isNotEmpty ? '' : ' isEmptyTextElement'}`}\n dangerouslySetInnerHTML={{\n __html: isNotEmpty ? _content : placeholder,\n }}\n onClick={onClick}\n onKeyDown={() => {}}\n />\n );\n};\n\nTextEditor.propTypes = {\n content: PropTypes.string,\n handleSave: PropTypes.func,\n isLocked: PropTypes.bool,\n isSelected: PropTypes.bool,\n placeholder: PropTypes.string.isRequired,\n};\n\nexport default TextEditor;\n"],"names":["TextEditor","content","handleSave","isLocked","isSelected","placeholder","usePropState","domPurify","sanitize","_content","setContent","isTextEditorOpen","useBuilderStore","state","setIsTextEditorOpen","useEffect","onClick","useCallback","onClose","isNotEmpty","useMemo","el","document","createElement","innerHTML","innerText","_jsx","__html","propTypes","PropTypes","string","func","bool","isRequired"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;IAWMA,UAAU,GAAG,SAAbA,UAAa,OAMb;AAAA,0BALJC,OAKI;AAAA,MALJA,OAKI,6BALM,EAKN;AAAA,6BAJJC,UAII;AAAA,MAJJA,UAII,gCAJS,YAAM,EAIf;AAAA,2BAHJC,QAGI;AAAA,MAHJA,QAGI,8BAHO,KAGP;AAAA,6BAFJC,UAEI;AAAA,MAFJA,UAEI,gCAFS,KAET;AAAA,MADJC,WACI,QADJA,WACI;;AACJ,sBAA+BC,kBAAY,CAACL,OAAD,EAAUM,6BAAS,CAACC,QAApB,CAA3C;AAAA;AAAA,MAAOC,QAAP;AAAA,MAAiBC,UAAjB;;AAEA,MAAMC,gBAAgB,GAAGC,8BAAe,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACF,gBAAV;AAAA,GAAN,CAAxC;AACA,MAAMG,mBAAmB,GAAGF,8BAAe,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACC,mBAAV;AAAA,GAAN,CAA3C;AAEAC,EAAAA,eAAS,CAAC,YAAM;AACd,QAAIJ,gBAAgB,IAAI,CAACP,UAAzB,EAAqC;AACnCU,MAAAA,mBAAmB,CAAC,KAAD,CAAnB;AACD;AACF,GAJQ,EAIN,CAACV,UAAD,EAAaO,gBAAb,EAA+BG,mBAA/B,CAJM,CAAT;AAMA,MAAME,OAAO,GAAGC,iBAAW,CAAC,YAAM;AAChC,QAAIb,UAAU,IAAI,CAACD,QAAnB,EAA6B;AAC3BW,MAAAA,mBAAmB,CAAC,IAAD,CAAnB;AACD;AACF,GAJ0B,EAIxB,CAACV,UAAD,EAAaD,QAAb,EAAuBW,mBAAvB,CAJwB,CAA3B;AAMA,MAAMI,OAAO,GAAGD,iBAAW,CAAC,YAAM;AAChCH,IAAAA,mBAAmB,CAAC,KAAD,CAAnB;AACD,GAF0B,EAExB,CAACA,mBAAD,CAFwB,CAA3B;AAIA,MAAMK,UAAU,GAAGC,aAAO,CAAC,YAAM;AAC/B,QAAMC,EAAE,GAAGC,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAX;AACAF,IAAAA,EAAE,CAACG,SAAH,GAAef,QAAf;AACA,WAAO,CAAC,CAACY,EAAE,CAACI,SAAZ;AACD,GAJyB,EAIvB,CAAChB,QAAD,CAJuB,CAA1B;AAMA,SAAOL,UAAU,IAAIO,gBAAd,gBACLe,eAAC,WAAD;AACE,IAAA,OAAO,EAAEjB,QADX;AAEE,IAAA,UAAU,EAAEP,UAFd;AAGE,IAAA,OAAO,EAAEgB,OAHX;AAIE,IAAA,WAAW,EAAEb,WAJf;AAKE,IAAA,UAAU,EAAEK;AALd,IADK,gBASLgB;AACE,IAAA,SAAS,2BAAoBP,UAAU,GAAG,EAAH,GAAQ,qBAAtC,CADX;AAEE,IAAA,uBAAuB,EAAE;AACvBQ,MAAAA,MAAM,EAAER,UAAU,GAAGV,QAAH,GAAcJ;AADT,KAF3B;AAKE,IAAA,OAAO,EAAEW,OALX;AAME,IAAA,SAAS,EAAE,qBAAM;AANnB,IATF;AAkBD;;AAEDhB,UAAU,CAAC4B,SAAX,GAAuB;AACrB3B,EAAAA,OAAO,EAAE4B,6BAAS,CAACC,MADE;AAErB5B,EAAAA,UAAU,EAAE2B,6BAAS,CAACE,IAFD;AAGrB5B,EAAAA,QAAQ,EAAE0B,6BAAS,CAACG,IAHC;AAIrB5B,EAAAA,UAAU,EAAEyB,6BAAS,CAACG,IAJD;AAKrB3B,EAAAA,WAAW,EAAEwB,6BAAS,CAACC,MAAV,CAAiBG;AALT,CAAvB;;;;"}
@@ -23,6 +23,10 @@ var ALL_TEXTS = {
23
23
  DUPLICATE_ITEM: 'Duplicate Item',
24
24
  DUPLICATE_PAGE: 'Duplicate Slide',
25
25
  ELEMENTS: 'Elements',
26
+ ERROR_BOUNDARY_DESCRIPTION: 'We\'ve been notified of the issue and aim to fix it shortly. Please try again later.',
27
+ ERROR_BOUNDARY_ITEM_DESCRIPTION: 'Please try removing and re-adding the item.',
28
+ ERROR_BOUNDARY_PAGE_DESCRIPTION: 'An unexpected error occurred on this page.',
29
+ ERROR_BOUNDARY_TITLE: 'Something went wrong!.',
26
30
  FIT_TO_PAGE: 'Fit to Slide',
27
31
  FIT_TO_SCENE: 'Fit to Screen',
28
32
  GENERAL: 'GENERAL',
@@ -51,12 +55,14 @@ var ALL_TEXTS = {
51
55
  REMOVE_PAGE: 'Remove Slide',
52
56
  SEARCH: 'Search',
53
57
  SETTINGS: 'Settings',
58
+ SHAPES_SETTINGS: 'Shape Settings',
54
59
  SHOW_ALL: 'Show All',
55
60
  SLIDES: 'Slides',
56
61
  TEXT_SETTINGS: 'Text Settings',
57
62
  TOGGLE_OFF: 'OFF',
58
63
  TOGGLE_ON: 'ON',
59
64
  UNLOCK_ITEM: 'Unlock Item',
65
+ VIEW_ERROR_DETAILS: 'View Details',
60
66
  WIDTH: 'Width',
61
67
  ZOOM_IN: 'Zoom In',
62
68
  ZOOM_OUT: 'Zoom Out'